konto usunięte

Temat: aplikacje rozproszone

Cześć jestem początkującym programistą javy
W jednej z ofert pracy znalazłem wymaganą umiejętność programowania rozproszonego w javie. O jakie technologie/algorytmy może chodzić?
Jakie rozwiązania stosuje się obecnie?Ten post został edytowany przez Autora dnia 07.08.16 o godzinie 18:33
Kamil Mikołajczyk

Kamil Mikołajczyk programista Java /
Grails

Temat: aplikacje rozproszone

zapewne chodzi o rzeczy działające na klastrach i w chmurze
przykładowe technologie: hadoop, hive, apache spark

konto usunięte

Temat: aplikacje rozproszone

Wymienione technologie to raczej bigdata, niby też rozproszone, ale... nie każda aplikacja, która działa w klastrze jest big data. Chodzi o umiejętność pisania aplikacji tak, żeby się łatwo skalowały. Czyli muszą działać niezależnie, z minimalną ilością punków wspólnych. Zwykle pojawiają się kolejki - kafka, *-MQ. Bazy noSQL. Z innych rzeczy można mieć rozproszony cache - https://www.terracotta.org Ostatnio modne stają się mikro-serwisy - całość od bazy danych po punkt dostępu jest niezależne i zrobione tak, żeby się dało zduplikować.
Kamil Mikołajczyk

Kamil Mikołajczyk programista Java /
Grails

Temat: aplikacje rozproszone

good point

konto usunięte

Temat: aplikacje rozproszone

A nie chodzi po prostu o java RMI, programowanie sieciowe, webservices itp.?
Kamil Mikołajczyk

Kamil Mikołajczyk programista Java /
Grails

Temat: aplikacje rozproszone

raczej jednak to co opisał Michał

konto usunięte

Temat: aplikacje rozproszone

System rozproszony to taki, w którym poszczególne elementy traktowane są jak czarne skrzynki... Jak się do tego doda automatyczne skalowanie, gdzie serwery mogą się pojawiać i znikać - robi się dość ciekawie. Zwykle jest tak, że wszystkie te serwery rejestrują się / wyrejestrowują się z jakiegoś miejsca - np. w zookeeperze. Osobną sprawą jest kto podejmuje decyzję gdzie słać requesty. Ten centralny punkt, czy każdy z klientów z osobna...
Z punktu widzenia aplikacji. Nie da się polegać na tym, że ten zdalny element, inny serwer, zrobi co ma zrobić. Tak jak pisałem - te czarne skrzynki. Czasem też jest tak, że np. aplikacja w Springu powstaje jako jeden klocek, a potem rozrzuca się beany - w zależności jak to akurat pasuje. Wiadomo, że lepiej najpierw, ale nie zawsze to jest tak doprecyzowane...
Kolejna sprawa to sam protokół. Dziś zwykle używa się protokołów z metadanymi - np. JSON. Wcześniej popularne były rozwiązania w stylu CORBA. Trzeba było wiedzieć co gdzie leży, ale brak metadanych dawał oszczędność. Dziś proto buffers od google'a tak chodzą. W sumie to patrząc po popularności jednej gry VR - to chyba podział na było-jest - jest mało trafiony :)

Następna dyskusja:

java i aplikacje terminalowe




Wyślij zaproszenie do