14 Współczesne Technologie Informatyczne. Technologie MDE w projektowaniu aplikacji internetowych
1.1 ŚRODOWISKO ROZPROSZONE
Rozproszone środowisko przetwarzania, to środowisko złożone z infrastruktury technicznej (węzłów i łączy) oraz zbioru procesów wspólnie realizujących pewne cele. W skład infrastruktury technicznej wchodzą węzły (jednostki przetwarzające dane) oraz łącza komunikacyjne spinające węzły funkcjonujące w rozproszonym systemie informatycznym. Poprzez łącza odbywa się komunikacja pomiędzy węzłami. Przesyłane pakiety danych mogą stanowić dane bazowe, wyniki przetwarzania oraz informacje: o z mianie statusu węzła, o statusie przetwarzania, o realizowanym zadaniu lub synchronizujące przetwarzanie. Z kolei poszczególne węzły dysponują własnym procesorem, lokalną pamięcią oraz interfejsem komunikacyjnym(Tanenbaum i van Steen, 2002).
Zaletami systemów rozproszonych jest m.in.: wydajność, opłacalność, wykorzystanie zasobów, skalowalność i niezawodność. Niestety jednocześnie pojawia się problem: optymalnego zrównoleglenia przetwarzania, oceny poprawności i efektywności algorytmów, alokacji zasobów, synchronizacji procesów oraz zapewnienia bezpieczeństwa i niezawodności. Dąży się do tego, aby systemy rozproszone: umożliwiały rozproszenie geograficzne węzłów, były w stanie pracować w środowisku heterogenicznym (uwzględniając sprzęt, oprogramowanie oraz łącze), korzystały z uniwersalnych protokołów i interfejsów oraz były odporne na awarie(Tanenbaum i van Steen, 2002).
Z punktu widzenia użytkownika, upraszczając pewne kwestie, środowisko rozproszone funkcjonuje na zasadzie architektury klient - serwer, gdzie serwer jest siecią rozległą świadczącą pewne usługi, a klient jest aplikacją konkurującą z innymi o dostęp do pewnego typu usług (usługą może być np. zapisanie informacji w bazie danych). Serwer zapewnia usługi biernieoczekując na żądaniazgłaszane przez klientów. Po otrzymaniu żądania serwer wykonuje określone operacjei odsyła wynik do odpowiedniego klienta(rys 2.1). Z usług jednego serwera może korzystać wielu klientów, co nie przeszkadza, aby jednocześnie jeden klient korzystał z usług wielu serwerów oferujących zróżnicowane usługi.