Rozproszone systemy otwarte

Kilka firm komputerowych stworzyło na początku lat 90. wieloprocesorowe komputery w standardzie systemów otwartych, wykazujące cechy mainframe'ów (szybkie przetwarzanie, błyskawiczny dostęp on-line do olbrzymich zasobów pamięci masowej i rozbudowane możliwości komunikacyjne) bez tradycyjnych wad.

Kilka firm komputerowych stworzyło na początku lat 90. wieloprocesorowe komputery w standardzie systemów otwartych, wykazujące cechy mainframe'ów (szybkie przetwarzanie, błyskawiczny dostęp on-line do olbrzymich zasobów pamięci masowej i rozbudowane możliwości komunikacyjne) bez tradycyjnych wad.

Ceny tych komputerów kształtują się na poziomie setek tysięcy dolarów w kontraście z milionami dolarów, których wymaga jeszcze dziś tradycyjny mainframe, a koszty eksploatacji są niższe co najmniej o rząd wielkości.

Wszystkie te maszyny działają pod kontrolą wariantów systemu operacyjnego Unix, cechują się niewielkimi stosunkowo rozmiarami i wykorzystują standardowe urządzenia peryferyjne. EOS reprezentuje na rynku polskim Encore Computer Corporation, która jest twórcą otwartego, skalowalnego systemu komputerowego o cechach mainframe'a, znanego pod nazwą Infinity 90.

Infinity 90 jest systemem rozproszonym, składającym się z dedykowanych podsystemów przeznaczonych do wykonywania aplikacji, zadań we/wy i komunikacji. Każdy podsystem jest niezależnie zasilaną maszyną wieloprocesorową dysponującą własną kopią systemu operacyjnego UMAX (UNIX SVR4), wyposażoną we własną pamięć operacyjną i dysk systemowy. Obecna architektura systemu dopuszcza do 512 podsystemów, z punktu widzenia użytkownika Infinity stanowi jednak integralną całość.

W zależności od potrzeb można łączyć podsystemy dowolnych typów w dowolnych konfiguracjach. Oprogramowanie widzi architekturę systemu jako rozproszone środowisko wykorzystujące model wspólnej pamięci i zdalne wywołania procedur, które pozwalają wywołać usługę przez jeden odsystem na dowolnym innym podsystemie. W szczególności usługi/we/wy są wykonywane przez dedykowane podsystemy.

Oryginalnym, wydajnym mechanizmem połączeń między podsystemami jest skalowalna magistrala o nazwie Memory Channel, która ma przepustowość do 1,6 GB/s. Łączone podsystemy są wyposażone w adapter Memory Channel z pamięcią widzianą przez podsystem jako podzbiór własnej przestrzeni adresowej i z pamięci znajdującej się na płycie. Adaptery znajdujące się w różnych podsystemach są następnie łączone poprzez specjalny port. Dane zostają przesłane z pamięci do pamięci w tle jako uboczny efekt lokalnego zapisu do pamięci dokonanego przez któryś z podsystemów. Proces ten nie obciąża procesorów obliczeniowych znajdujących się w podsystemie, a mapowanie pamięci między dwoma lub wieloma podsystemami odbywa się sprzętowo. Połączenie między podsystemami za pomocą Memory Channel może być zrealizowane w wersji światłowodowej na odległość do 3 km.

System operacyjny

System operacyjny zgodny z UNIX SVR4 jest ściśle dopasowany do architektury i zastosowań sprzętu poprzez mechanizmy symetrycznego wieloprzetwarzania, wielowątkowość, zaawansowane algorytmy czasu rzeczywistego i wydajny, rozproszony system plików.

Wszelkie aplikacje zgodne ze standardem konsorcjum 88open mogą być uruchomione na Infinity bez potrzeby rekompilacji. W przypadku innych przenoszenie aplikacji jest stosunkowo proste z uwagi na standardowy charakter systemu operacyjnego i jego zgodność z SVR4. Oczywiście optymalne wykorzystanie zasobów systemu wymaga aplikacji wielowątkowej, i tu pomagają nowoczesne systemy zarządzania bazami danych. Wieloprocesorowa wersja bazy danych Oracle (Parallel Server) w pełni wykorzystuje wieloprocesorową i rozproszoną budowę Infinity. Możliwość uruchamiania równoległych instancji serwera baz danych na poszczególnych podsystemach przyspiesza czas wyszukiwania i gwarantuje ciągłość działania aplikacji nawet w wypadku awarii, zapewniając jednocześnie - przy wsparciu ze strony mechanizmów systemowych ý bezpieczeństwo danych.

Tworzenie aplikacji - SNAP

Tworzenie wydajnych aplikacji dla komputerów klasy Infinity 90 jest sprawą trudną. EOS oferuje narzędzie umożliwiające projektowanie i wdrażanie rozwiązań software'owych, które charakteryzują się rozproszoną i funkcjonalnie zróżnicowaną budową, dużymi potrzebami komunikacyjnymi, interakcją ze światem zewnętrznym w czasie rzeczywistym oraz logiką działań na podstawie reguły. SNAP jest generatorem aplikacji składających się ze współdziałających, asynchronicznych procesów wyposażonych we własne zasoby dyskowe, własny GUI oraz własny interfejs komunikacyjny. "Proces" należy tu rozumieć jako instancję zbioru obiektów, powiązań logicznych między nimi oraz metod, mogącą być wykonywaną wielowątkowo lub wieloprocesowo w sensie pojęć systemu UNIX. System przeznaczony jest do tworzenia wielodostępnych aplikacji wspierających kolektywną analizę czy proces decyzyjny i zapewniających dostęp do rozproszonych baz danych umieszczonych na maszynach o różnorodnej architekturze. SNAP zawiera metodologię tworzenia dynamicznych ekranów i środowisk GUI, model obiektowy z biblioteką klas, narzędzia do integracji istniejącego oprogramowania i baz danych z nową aplikacją, narzędzia komunikacji międzyprocesowej, metody współdzielenia obiektów przez procesy oraz "inference engine", czyli interpretator reguł logicznych pozwalający na budowanie aplikacji działających na podstawie bazy wiedzy.

Architektura SNAP opiera się na wzorcach ("templates") obejmujących dane, procesy, jak i mechanizmy współdziałania i komunikacji międzyprocesowej. Takie podejście umożliwia efektywniejszy proces projektowania niż wówczas, gdy wzorcami objęte są tylko niezależne elementy aplikacji (osobno ekrany, osobno dane itp.). System pozwala na stworzenie przenośnej aplikacji opartej na dowolnej kombinacji wspieranego sprzętu, systemów operacyjnych, systemów okien, baz danych i protokołów komunikacyjnych. Interfejs API pozwala innym aplikacjom na wywoływanie usług aplikacji SNAP. Narzędzia środowiska projektowego SNAP mogą być pozostawione wewnątrz gotowej aplikacji, co daje użytkownikowi końcowemu możliwość dokonywania zmian w aplikacji, np. zmian kształtu czy zawartości ekranu lub danych wyświetlanych w konkretnych obiektach graficznych.

Aplikacja SNAP zazwyczaj składa się z wielu współdziałających procesów. Pozwala to na dekompozycję zadań oraz lepszą adaptację aplikacji do zasobów sprzętowych, a w konsekwencji zwiększoną wydajność. Można wyróżnić trzy podstawowe typy procesów: standardowy, zewnętrzny i wspólną bazę informacyjną (Shared Information Base - SIB). Proces standardowy realizuje docelową funkcję aplikacyjną, natomiast proces SIB zapewnia współdzielenie informacji przez inne procesy na zasadzie peer-to-peer. Trzeci z procesów, zwany tu zewnętrznym, najczęściej oznacza dedykowany program sporządzony wcześniej poza środowiskiem SNAP (np. sterownik urządzenia). Każdy z procesów może rezydować na tym samym bądź innym komputerze lub być alokowany do innego procesora tej samej maszyny.

Warto zauważyć, że proces SIB sam zajmuje się koordynacją wymiany danych między procesami standardowymi, m.in. automatycznie propaguje wszelkie zmiany danych. Oznacza to, że projektant aplikacji definiuje tylko współzależność między danymi, natomiast nie musi tworzyć linii kodu w celu przesyłania lub aktualizacji danych. To, na jakich maszynach znajduje się proces i powiązane z nim dane jest bez znaczenia dla procesu SIB, a przez to bez znaczenia także dla pozostałych procesów. Dystrybucja aplikacji z jednego na kilka komputerów wymaga jedynie, aby SIB poznał nowe nazwy odpowiednich hostów. Ponadto w ramach aplikacji może występować dowolna liczba procesów typu SIB.

Omawiane narzędzie jest zatem przydatne szczególnie w aplikacjach wymagających asynchronicznego współdziałania równorzędnych procesów, często na różnych platformach sprzętowych, korzystających z jednej lub kilku wspólnych składnic informacji. Wśród istniejących zastosowań można znaleźć takie systemy, jak kontrola ruchu lotniczego, zarządzanie pracami technicznymi linii lotniczych, nadzór usług telekomunikacyjnych, administracja sieci rozległej, analiza ryzyka, dystrybucja energii czy planowanie logistyczne.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200