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 :)