2008 03 Architektura CCA, czyli GRID prosto i przyjemnie

background image

www.hakin9.org

hakin9 Nr 3/2008

46

Obrona

S

ama technologia CCA (ang. Com-
mon Component Architecture
) ozna-
cza środowisko pozwalające na uru-

chamianie i łączenie programów w większe
i bardziej funkcjonalne systemy rozwiązy-
wania złożonych problemów poprzez dzier-
żawienie zasobów komputera. W przypadku
technologii GRID mamy do czynienia z sys-
temem zarządzającym zasobami będącymi
pod kontrolą różnych komputerów połączo-
nych siecią komputerową, który do swojej
pracy wykorzystuje otwarte protokoły i inter-
fejsy ogólnego przeznaczenia.

Systemy rozproszone tworzą stacje robo-

cze, minikomputery i wielkie systemy kompute-
rowe ogólnego przeznaczenia. Zadaniem sys-
temu rozproszonego jest tworzenie wydajnego
i wygodnego środowiska umożliwiającego dzie-
lenie zasobów. Rozproszony system operacyjny
umożliwia użytkownikom dostęp do różnorod-
nych zasobów, nad którymi sprawuje nadzór.
Każdy komputer podłączony do systemu udo-
stępnia procesory, które różnią się mocą obli-
czeniową i funkcjami. Procesory te określa się
za pomocą kilku różnych nazw, takich jak sta-
nowiska (ang. sites), węzły (ang. nodes), kom-
putery (ang. hosts) itp. - zależnie od kontek-

stu, w którym występują. Pojęcie zasób po-
winno tu być rozumiane szeroko: począwszy
od urządzeń (drukarki, skanery), a skończyw-
szy na plikach czy stronach WWW. Dostęp do
tych zasobów jest nadzorowany przez właści-
wy system operacyjny zainstalowany na stacji
roboczej. Istnieją dwa zasadnicze, uzupełniają-
ce się schematy dostarczania takich usług:

• sieciowe systemy operacyjne: użytkownicy

w celu dostępu do zasobów muszą rejestro-
wać się na zdalnych maszynach lub przesy-
łać dane z odległych maszyn do swoich;

Architektura CCA, czyli

GRID prosto i przyjemnie

Rafał Podsiadły

stopień trudności

Czy wiesz, że możesz pomóc w badaniach nad rakiem, nowymi

technologiami, badaniem kosmosu? Systemy oparte na

technologii CCA lub GRID są zespołami komputerów, na których

zainstalowane oprogramowanie pozwala na ścisłą współpracę

między wolnymi zasobami, tworząc w ten sposób superkomputer.

Z artykułu dowiesz się

• jak funkcjonują systemy rozproszone, do czego

są wykorzystywane.

Co powinieneś wiedzieć

• znać budowę sieci, szkielet TCP/IP,
• mieć ogólne wiadomości na temat algoryt-

mów,

• mieć ogólną wiedzę na temat systemów opera-

cyjnych.

background image

Jak funkcjonują systemy rozproszone?

hakin9 Nr 3/2008

www.hakin9.org

47

• rozproszone systemy operacyj-

ne: użytkownicy uzyskują dostęp
do zasobów zdalnych tak samo,
jak do zasobów lokalnych.

Komponenty mogą być dostarcza-
ne niezależnie. Definiuje się sposo-
by współdziałania poszczególnych
części (komponentów, zasobów),
które mogą znajdować się w syste-
mie lokalnym, równoległym czy być
rozproszone między zdalnymi sys-
temami obliczeniowymi. Sama ar-
chitektura opiera się o możliwość
rozwoju oraz wykorzystuje opro-
gramowanie na licencji Open So-
urce. Komponenty to samodzielne
jednostki obliczeniowe (fragmenty
oprogramowania), których szczegó-
ły implementacyjne nie są udostęp-
niane użytkownikom. Dzięki tej zasa-
dzie poszczególne komponenty mo-
gą być tworzone za pomocą innych
narzędzi. Komponenty mogą komu-
nikować się ze światem zewnętrz-
nym za pomocą interfejsów, w któ-
rych stosuje się model budowania
aplikacji typu plug and play. Do in-
terfejsów mogą być podłączone in-
ne komponenty lub dane wejścio-
we. Interfejs jest prostym opisem,
zawierającym informacje doty-
czące wywołania poszczególnych
usług. Standardy budowy kompo-
nentów, takie jak Object Manage-
ment Group, Common Object Re-
quest Broker Architecture, DCOM,
Microsoft Component Object Mo-
del czy Enterprise JavaBeans
(EJB), definiują prawa i obowiąz-

ki komponentów, sposób przygoto-
wania interfejsów, framework (czy-
li środowisko, w którym urucha-
miane są komponenty) oraz prawa
i obowiązki środowiska uruchomie-
niowego. Standardy te różnią się
pod względem wydajności działa-
nia, wymagań stawianych kompo-
nentom oraz platformy programo-
wej, na której mogą być uruchamia-
ne. Właściwości CCA:

• dodawanie, modyfikowanie lub

rozwijanie pojedynczych modu-
łów nie wpływa destabilizująco
na pozostałe elementy progra-
mu,

• możliwość aktualizacji pojedyn-

czych komponentów, bez ko-
nieczności wymiany całej apli-
kacji,

• zmiany wprowadzone wewnątrz

komponentu nie muszą mieć
wpływu na sposób jego interak-
cji z otoczeniem,

• użytkownik przy instalacji aplika-

cji może sam wybrać komponen-
ty, które będą mu potrzebne,

• zwiększenie produktywności ko-

du poprzez technikę wielokrotne-
go wykorzystania jego fragmen-
tów w innych, niezależnych pro-
jektach,

• możliwość składania dowolnych

projektów z istniejących już kom-
ponentów,

Pojęcia tego jako pierwszy użył Ian
Foster, profesor na Uniwersytecie
w Chicago, naukowiec pracujący

w ANL (Argonne National Laborato-
ry
). Idea ta ciągle ewoluuje, znajdo-
wane są nowe obszary jej potencjal-
nego zastosowania.

Za pierwszy przejaw idei gri-

du uważa się inicjatywę SETI@ho-
me
(ang. Search for Extra-Terre-
strial Intelligence
), mającą na celu
przyspieszenie poszukiwań śladów
życia we wszechświecie. Dowolny
posiadacz komputera mógł pobrać
fragment danych (sygnałów odbie-
ranych przez radioteleskopy) i prze-
prowadzać obliczenia w czasie wol-
nym od własnych obliczeń (wykorzy-
stując wolne cykle CPU). To nowa-
torskie podejście do problemu po-
zwoliło na równoczesne wykorzy-
stanie milionów komputerów rozpro-
szonych po całym świecie. Udało się
w ten sposób zidentyfikować poten-
cjalnie interesujące fragmenty sy-
gnału, które następnie poddawane
były dalszym analizom.

Zasoby gridu mogą być admini-

strowane przez różne organizacje.
Udostępnianie zasobów przebiega
zgodnie z lokalną polityką zarządza-
nia zasobami stosowaną w danej or-
ganizacji.

Zasoby posiadają przynajmniej

niektóre z poniższych cech:

• rozproszone geograficzne,
• heterogeniczne sprzętowo i pro-

gramowo,

• dynamiczne (dostępność zmien-

na w czasie),

• potencjalnie zawodne,
• posiadane i zarządzane przez

różne organizacje,

• różne wymagania i polityki bez-

pieczeństwa,

• różne polityki zarządzania za-

sobami,

• połączone heterogeniczną sie-

cią (różne warstwy, protokoły
komunikacyjne, topologie).

Grid kładzie nacisk na autono-
mię zasobu (pozwala na zachowa-
nie lokalnej kontroli nad zasoba-
mi i lokalnych polityk dostępu). Za-
soby nie są zarządzane centralnie,
w przeciwnym razie mamy do czy-
nienia z lokalnym systemem zarzą-
dzania zasobami (np. SGE, LSF,

Rysunek 1.

Schemat systemu GRID

�������

��������

��������

���������

���������������

���������

��������

������������

���������

���������

��������

���������

���������

���������

background image

hakin9 Nr 3/2008

www.hakin9.org

Obrona

48

PBS). Zasobami gridu mogą być
nie tylko komputery i sieci, ale tak-
że specjalistyczne urządzenia czy
zbiory danych. Grid skupia się na
użytkowniku, patrzy się nie tylko
z punktu widzenia posiadacza za-
sobu, ale głównie z punktu widze-
nia użytkownika zlecającego zada-
nie do wykonania – tak, aby zopty-
malizować wykonanie aplikacji, a nie
użycie systemu.

Jak to wygląda? Wyobraź-

my sobie wiele organizacji rozpro-
szonych po całym świecie. Każda
z nich posiada pewne zasoby kom-
puterowe, programowe, sprzęt spe-
cjalistyczny i cenne dane, np. po-
miarowe. Żadnej z tych organizacji
nie stać na zakup wszystkich naj-
nowszych osiągnięć technologicz-
nych, każda z nich posiada tylko
pewien ich podzbiór, który wyko-
rzystuje w różnym czasie i z róż-
nym natężeniem.

Celem tworzenia gridu jest

umożliwienie organizacjom wza-
jemnej wymiany np. mocy oblicze-
niowej, ale też i innych zasobów
z zachowaniem lokalnych polityk
dostępu i bezpieczeństwa. Tworzo-
ne są w ten sposób Wirtualne Or-
ganizacje (VO, ang. Virtual Orga-
nizations
).

Warstwę fizyczną środowiska

gridowego stanowią połączone sie-
cią zasoby sprzętowe wielu orga-
nizacji stanowiących VO, które wy-
rażają chęć współtworzenia takiej
struktury. Ponad warstwą sprzęto-
wą musi istnieć warstwa programo-
wa, która pozwoli na udostępnianie
i współdzielenie zasobów oraz
umożliwi rozliczanie członków VO
z użycia zasobów (tzw. accounting).

Uzyskanie spójnego i zwarte-

go obrazu systemu rozproszonego
wymaga ukrycia przed użytkowni-
kami wielu szczegółów związanych
z jego organizacją. Oznacza to, że
różnice pomiędzy komputerami (m.
in. architektura komputera, lokal-
ny system operacyjny), różne spo-
soby komunikowania się kompute-
rów (technologie komunikacyjne,
protokoły sieciowe) oraz organiza-
cja systemu rozproszonego są (lub
powinny być) niewidoczne dla użyt-

kownika końcowego. Ujednolice-
nie takie daje w efekcie możliwość
korzystania z zasobów systemu
w jednolity sposób, przy korzysta-
niu z tego samego interfejsu, nie-
zależnie od czasu i miejsca doko-
nywanej interakcji.

Grid pozwala na rozwiązywa-

nie problemów dużej skali w zakre-
sie znacznie większym, niż pozwa-
lają na to wieloprocesorowe super-
komputery lub lokalne klastry kom-
puterowe. Dzięki udostępnianiu
własnych zasobów w ramach Wirtu-
alnej Organizacji, można mieć okre-
sowo dostęp do wszystkich jej za-
sobów, co daje niewątpliwą szan-
sę na wykonanie bardziej skompli-
kowanych obliczeń w krótszym cza-
sie (zasoby na żądanie). Najbar-
dziej znanymi narzędziami realizu-
jącymi koncepcje gridu są Legion
i Globus Toolkit.

Globus Toolkit jest to oprogra-

mowanie warstwy pośredniej (ang.
middleware), opracowywane w ra-
mach projektu Globus Alliance. Ce-
lem projektu jest dostarczenie śro-
dowiska do uruchamiania i tworze-
nia aplikacji gridowych. Ponadto
w ramach projektu powstają przy-
kładowe implementacje usług po-
trzebnych w tym środowisku. Glo-
bus Toolkit uważany jest za imple-
mentację referencyjną. Architektu-
ra środowiska gridowego zdefinio-
wana została w standardzie OGSA

(ang. Open Grid Services Architec-
ture
). Standard WSRF (ang. Web
Services Resource Framework
)
określa otoczenie i sposób bu-
dowania oprogramowania dla te-
go środowiska z wykorzystaniem
usług sieciowych (ang. Web Servi-
ces
). Procesem standaryzacji zaj-
muje się organizacja standaryza-
cyjna Global Grid Forum. Globus
Toolkit, będący implementacją po-
wyższych standardów, sam uważa-
ny jest za de facto za standard.

Wrażenie jednolitości syste-

mu można uzyskać poprzez zasto-
sowanie architektury warstwowej
w odniesieniu do oprogramowania.
System taki bazuje na lokalnych
systemach operacyjnych i nadbu-
dowuje warstwę pośrednią (ang.
middleware), dostarczającą ujed-
noliconego interfejsu dostępu do
usług dla aplikacji rozproszonych.
Systemy rozproszone są tworzone
ze względu na swoje istotne poten-
cjalne zalety. Efektywne zagospo-
darowanie tych zalet może spra-
wić, że będą one bardziej atrakcyj-
ne dla użytkownika końcowego niż
systemy scentralizowane. Systemy
rozproszone powstają po to, by uła-
twić użytkownikom dostęp do zdal-
nych zasobów, ukrywając fakt ich
rozproszenia i umożliwiając współ-
dzielenie. Współdzielony dostęp do
zasobów jest uzasadniony głównie
ekonomicznie: wiele zasobów jest

Rysunek 2.

Schemat systemu CCA

��������

���������

���������

���������

��������

���������

���������������

���������

��������

���������

���������

���������

��������

���������

���������

���������

��������

���������

���������������

���������

��������

���������

���������

���������

background image

Jak funkcjonują systemy rozproszone?

hakin9 Nr 3/2008

www.hakin9.org

49

drogich – zarówno w zakupie, jak
i w późniejszym utrzymaniu. Korzy-
stanie ze wspólnych zasobów da-
je też możliwość szybkiej wymiany
informacji pomiędzy samymi użyt-
kownikami. Łatwy dostęp do za-
sobów nie powinien jednak ozna-
czać rezygnacji z zapewniania bez-
pieczeństwa realizowanych opera-
cji. Dotyczy to zarówno poufności,
spójności przesyłanych danych,
jak i niezaprzeczalności. Proble-
my bezpieczeństwa ujawniają się
również w kontekście samej komu-
nikacji. Monitorowanie aktywności
użytkowników i budowanie profili
zachowań również może naruszać
naszą prywatność. Rozprosze-
nie zasobów i procesów na fizycz-
nie rozłącznych maszynach może
być maskowane tak, aby system
był postrzegany jako jedna spój-
na całość. Mówimy o takim syste-
mie, że jest transparentny. Przezro-
czystość może być jednak postrze-
gana na różnych poziomach, a po-
ziomy te mogą być mniej lub bar-
dziej istotne dla użytkownika koń-
cowego. W dalszej części artykułu
przedstawiono podstawowe pozio-
my przezroczystości rozpatrywane
w systemach rozproszonych.

Kolejna cecha systemów roz-

proszonych to łatwość ich rozsze-
rzania, co w konsekwencji powin-
no prowadzić do zapewnienia ska-
lowalności systemu. Łatwość ta
jest efektem niezależności kompu-
terów, przy jednoczesnym ukrywa-
niu szczegółów dotyczących funk-
cji pełnionych przez poszczególne
komputery w systemie. Ze wzglę-
du na powielanie pewnych funkcji
przez wiele komputerów, system
rozproszony może sprawiać wra-
żenie nieustannej dostępności je-
go zasobów i usług. Dzieje się tak
pomimo przejściowych awarii po-
szczególnych jego komponentów,
które są jednak maskowane przeję-

ciem obsługi przez inne komputery.
Podobnie dodanie nowych kompu-
terów i/lub użytkowników pozostaje
niezauważone przez dotychczaso-
wych użytkowników.

Przezroczystość dostępu ozna-

cza ujednolicenie metod dostę-
pu do danych i ukrywanie różnic
w reprezentacji danych. Użytkow-
nik korzysta cały czas z tego sa-
mego interfejsu dostępu do da-
nych. Różnice w reprezentacji
danych mogą wynikać z zastoso-
wania różnych architektur kompu-
terowych. Przykładem jest repre-
zentacja liczb – procesory Inte-
la stosują tzw. kodowanie little en-
dian a np. procesory Sun SPARC
stosują kodowanie big endian. Róż-
nica polega na kolejności ułożenia
poszczególnych bajtów liczby w pa-
mięci. Innym przykładem różnic
w reprezentacji danych są odmien-
ne konwencje nazewnictwa plików
stosowane w poszczególnych sys-
temach operacyjnych.

Przezroczystość

położenia

oznacza, że użytkownicy nie mogą
określić fizycznego położenia za-
sobu (np. na podstawie jego nazwy
czy identyfikatora). Warunkiem ko-
niecznym osiągnięcia przezroczy-
stości położenia jest stosowanie
nazewnictwa zasobów, które abs-
trahuje od ich położenia. Z tego
między innymi powodu adresy do-
kumentów w usłudze WWW zaczę-
to określać nie jako adresy URL
(ang. Universal Resource Locator
– uniwersalny lokalizator zasobów),
a raczej jako adresy URI (ang. Uni-
versal Resource Identifier
– uni-
wersalny identyfikator zasobów).
Zaakcentowano w ten sposób bar-
dziej ogólny sposób interpreta-
cji elementów składowych adresu.
Np. adres: http://www.put.poznan.pl/
rekrutacja/rekrutacja.html
może być
interpretowany jako wskazanie na
dokument znajdujący się na serwe-

rze www.put.poznan.pl (URL) lub
po prostu całościowo jako identy-
fikator dokumentu (URI).
Przezroczystość wędrówki oznacza,
że zasoby mogą być przenoszone
pomiędzy serwerami bez potrzeby
zmiany sposobu odwoływania się
do nich. Uzyskanie przezroczystości
wędrówki zakłada oczywiście prze-
zroczystość położenia, gdyż w prze-
ciwnym wypadku po dokonaniu prze-
niesienia zasobu jego stary identyfi-
kator stawałby się nieaktualny.

Przezroczystość przemieszcza-

nia oznacza, że zasoby mogą być
przenoszone nawet wtedy, gdy są
używane przez użytkowników i nie
wymaga to informowania użytkow-
ników o zmianie położenia. Z ta-
ką sytuacją mamy do czynienia np.
w przypadku sieci komórkowych,
gdzie użytkownicy pomimo fizycz-
nego przemieszczania się mogą
prowadzić stale rozmowę (jest to
tzw. roaming).

W systemach rozproszonych

zwielokrotnianie (replikacja) jest
jednym z podstawowych mecha-
nizmów pozwalających na zwięk-
szenie wydajności i niezawodno-
ści. Stosowanie zwielokrotniania
może skutkować jednak znaczny-
mi utrudnieniami dla użytkowników
końcowych, wynikającymi m. in.
z niespójności współbieżnie mody-
fikowanych kopii.

Przezroczystość zwielokrotnia-

nia oznacza, że pomimo zwielokrot-
niania zasobów użytkownicy nie
zauważają tego faktu – korzysta-
ją z zasobów dokładnie w taki sam
sposób, jak w systemie nie stosu-
jącym zwielokrotniania. W praktyce
oznacza to, że przezroczystość
zwielokrotniania można uzyskać
w systemach gwarantujących prze-
zroczystość położenia, ponieważ
dostęp do każdej z kopii zasobu
powinien być realizowany z wyko-
rzystaniem tego samego identyfi-
katora.

System rozproszony umożliwia

współdzielenie zasobów. Współ-
dzielenie takie może być realizowa-
ne w sposób kooperatywny – jak to
ma miejsce np. w przypadku komu-
nikacji – lub w sposób rywalizacyj-

W Sieci

http://wazniak.mimuw.edu.pl – bardzo polecam ten odnośnik,
http://wikipedia.pl – ten odnośnik także powinien znać każdy.

background image

hakin9 Nr 3/2008

www.hakin9.org

Obrona

50

ny, kiedy wielu użytkowników jed-
nocześnie ubiega się o dostęp do
tego samego zasobu.
Przezroczystość

współbieżności

gwarantuje, że współbieżne odwo-
ływanie się do tego samego zasobu
realizowane przez wielu użytkowni-
ków nie będzie prowadziło do po-
wstania w systemie stanu niespój-
nego. Stan spójny można osiągnąć
poprzez blokowanie dostępu do
wspólnych danych (gwarantujące
wyłączny dostęp) lub poprzez za-
stosowanie mechanizmu przetwa-
rzania transakcyjnego, które jednak
jest trudne do zrealizowania w sys-
temie rozproszonym.

System jako całość powinien

działać nawet w przypadku awa-
rii pojedynczych jego komponen-
tów. Przezroczystość awarii ozna-
cza, że użytkownik nie zauważa
faktu uszkodzenia pojedynczych
węzłów. Wadliwy komponent po-
winien zostać zastąpiony popraw-
nym, a cała operacja nie powin-
na wpływać na sposób korzystania
z systemu. Maskowanie awarii jest
zadaniem trudnym, a przy przyjęciu
pewnych założeń – nawet niemoż-
liwym. Główna trudność polega
na odróżnieniu awarii zdalnego wę-
zła od awarii łączy komunikacyj-
nych. Przezroczystość trwałości
ukrywa mechanizmy zarządzania
zdalnymi zasobami. Przykładem
mogą tu być zdalne obiekty, na
rzecz których użytkownicy wywołu-
ją metody. Obiekt powinien trwale
przechować swój stan po zdalnym
wywołaniu jego metody. Z drugiej
strony odwołanie do tego obiektu
powinno być możliwe nawet wte-
dy, gdy nie jest przechowywany ak-
tualnie w pamięci. Oczekuje się, że
systemy rozproszone będą ukry-
wać przed użytkownikiem szczegó-
ły swojej wewnętrznej organizacji,
jednakże osiągnięcie wysokiego
poziomu przezroczystości wią-
że się z dużymi kosztami, głów-
nie związanymi z ogólną wydajno-
ścią systemu. W praktyce dąży się
do osiągnięcia racjonalnego kom-
promisu pomiędzy obserwowa-
ną przez użytkownika złożonością
systemu, a efektywnością jego pra-

cy. Systemy rozproszone, aby mo-
gły być rozbudowywane, muszą
być otwarte. Oznacza to koniecz-
ność standaryzacji stosowanych
protokołów i interfejsów komunika-
cyjnych. Definicje interfejsów obej-
mują najczęściej opis składni usług
(nazwy funkcji, typy parametrów
i zwracanych wyników). Semantyka
usług opisywana jest najczęściej
w sposób nieformalny, przy wyko-
rzystaniu języka naturalnego.

Specyfikacja interfejsu, aby mo-

gła być implementowana niezależnie
przez wielu dostawców oprogramo-
wania, musi być zupełna (kompletna)
i neutralna. Kompletność oznacza,
że opis jest wystarczający do stwo-
rzenia implementacji. Neutralność
oznacza, że specyfikacja nie narzu-
ca żadnych szczegółów dotyczą-
cych implementacji. Spełnienie tych
warunków jest konieczne dla osią-
gnięcia zdolności do współdziałania
(ang. interoperability), która oznacza
możliwość współpracy ze sobą kom-
ponentów programowych pochodzą-
cych od różnych dostawców, o ile im-
plementują one odpowiednie interfej-
sy programowe.

Przenośność (ang. portabili-

ty) oznacza możliwość uruchomie-
nia aplikacji stworzonej dla jedne-
go systemu w innym systemie bez
konieczności wprowadzania jakich-
kolwiek modyfikacji. Dobrze zapro-
jektowany system otwarty powinien
być elastyczny, co w praktyce ozna-
cza łatwość budowy i przebudowy
systemu składającego się z kom-
ponentów pochodzących od róż-
nych dostawców. Osiągnięcie wy-
sokiej elastyczności jest możliwe
poprzez podział systemu rozpro-
szonego na wysoce autonomiczne
komponenty komunikujące się po-
przez precyzyjnie opisane interfej-
sy. Daje to możliwość wymiany po-
szczególnych komponentów bez
konieczności wyłączania całego
systemu. Otwartość i elastyczność
systemów rozproszonych może być
wspierana poprzez oddzielenie
polityki od mechanizmu. Polityka
określa w sposób deklaratywny ce-
le, które chce osiągnąć użytkow-
nik, a mechanizm dostarcza na-

rzędzi do osiągania tych celów.
Przykładem może być stosowanie
pamięci podręcznych w przeglą-
darkach internetowych. Jest to me-
chanizm zwiększający dostępność
zasobów w usłudze WWW. Waż-
ne jednakże są tu parametry wej-
ściowe sterujące pracą tej pamięci
(czas przechowywania dokumen-
tów, strategia aktualizacji, wybór
dokumentów). Parametry te okre-
ślają właśnie politykę, jaką chce
narzucić użytkownik i która może
być potencjalnie realizowana z wy-
korzystaniem innego mechanizmu.

Rozwój sieci komputerowych

i liczba komputerów przyłączanych
do Internetu wzrastają tak szybko,
że jednym z najważniejszych ce-
lów projektowych staje się obec-
nie zapewnienie skalowalności.
Skalowalność może być rozważa-
na w trzech różnych wymiarach.
Po pierwsze – skalowalność pod
względem rozmiaru, oznaczająca
możliwość dodawania do systemu
nowych użytkowników i zasobów.
Po drugie – skalowalność geogra-
ficzna, umożliwiająca rozrzucenie
poszczególnych użytkowników po
całym świecie. Po trzecie wreszcie
– skalowalność pod względem ad-
ministracyjnym oznacza, że zarzą-
dzanie systemem pozostaje równie
proste pomimo zwiększania jego
rozmiaru i dystrybucji odpowiedzial-
ności na wiele jednostek administra-
cyjnych. Skalowalność pod wzglę-
dem rozmiaru może być ograni-
czona poprzez stosowanie rozwią-
zań scentralizowanych. Każdy ser-
wer, który jest jedynym pełniącym
określoną funkcję, staje się wąskim
gardłem w warunkach wzrastającej
liczby żądań. Stosowanie przetwa-
rzania scentralizowanego staje się
niekiedy jednak nieuniknione. Przy-
kładem może być przechowywanie
poufnych danych, których powiele-
nie powodowałoby zwiększenie ry-
zyka ich ujawnienia (centralizacja
danych). Z centralizacją usług ma-
my do czynienia wtedy, gdy prze-
twarzanie zleceń jest realizowane
przez pojedynczy serwer. Dobrym
przykładem usługi, która jest dosko-
nale zdecentralizowana, jest usługa

background image

hakin9 Nr 3/2008

51

DNS (ang. Domain Name Service), zajmująca się
m. in. odwzorowaniami nazw domenowych na ad-
resy IP. W usłudze tej grupa rozproszonych serwe-
rów realizuje wspólnie wspomnianą funkcję. Roz-
proszenie przetwarzania jest tu koniecznością, po-
nieważ liczba żądań przychodzących do systemu
jest tak duża, że żaden serwer nie byłby w stanie
jej obsłużyć.

Wysoką skalowalność systemów można osią-

gnąć poprzez zastosowanie algorytmów zdecen-
tralizowanych. Charakteryzują się one następują-
cymi własnościami:

• żadna z maszyn nie posiada pełnej informacji

o stanie systemu,

• decyzje podejmowane są tylko na podstawie in-

formacji lokalnych,

• uszkodzenie pojedynczych maszyn nie powo-

duje blokady całego systemu,

• nie ma niejawnych założeń dotyczących glo-

balnego zegara.

Ostatnie założenie jest konsekwencją ogólnie
przyjętej charakterystyki systemów rozproszo-
nych, w których komunikacja ma charakter asyn-
chroniczny. Oznacza to, że komunikaty docierają
do odbiorcy w czasie skończonym, ale bliżej nie-
określonym. Konsekwencją tego założenia jest
niemożliwość dokładnego zsynchronizowania lo-
kalnych zegarów komputerów pracujących w sie-
ci (przede wszystkim w sieci rozległej).

Skalowalność geograficzna jest ograniczana

głównie przez dostępne mechanizmy komunikacyj-
ne, które wprowadzają znaczne opóźnienia i charak-
teryzują się wysoką zawodnością. Opóźnienia po-
wodują, że akceptowalne w sieciach lokalnych prze-
twarzanie synchroniczne staje się nieakceptowalne
w sieciach rozległych, gdyż wprowadza zbyt duże
przestoje.

Ponieważ skalowalność jest tak wysoce pożąda-

ną cechą systemów rozproszonych, bardzo ważnym
staje się pytanie o ogólne metody zapewniania wy-
sokiej skalowalności. Generalnie istnieją trzy meto-
dy zwiększania skalowalności: ukrywanie opóźnień
komunikacyjnych, rozpraszanie i zwielokrotnianie.

Ukrywanie opóźnień komunikacyjnych oznacza

w praktyce stosowanie na szeroką skalę komunika-
cji asynchronicznej, w której zlecający operację nie
czeka na jej wynik, a wykonuje dalsze przetwarzanie
niewymagające wyniku ostatniej operacji. Efekt taki
można uzyskać stosując przetwarzanie współbież-
ne po stronie klienta, w którym oczekiwanie na wy-
nik będzie blokowało oddzielny wątek przetwarza-
nia. Niestety, komunikację asynchroniczną można
stosować jedynie w systemach nieinteraktywnych.
W systemach interaktywnych można próbować re-
dukować ilość przesyłanych informacji poprzez

background image

hakin9 Nr 3/2008

www.hakin9.org

Obrona

52

przeniesienie części przetwarzania
do klienta, np. w celu lepszej wery-
fikacji danych wejściowych. Można
w tym celu wykorzystać np. dyna-
miczne przesyłanie kodu weryfiku-
jącego z serwera (aplety Javy).

Rozpraszanie (ang. distribution)

polega na podziale zadań kompo-
nentu programowego na wiele jed-
nostek i rozproszenie tych jedno-
stek w sieci. Przykładem może być
system DNS, w którym nie wystę-
puje pojedynczy serwer przecho-
wujący całość informacji o konfi-
guracji odwzorowań nazw na ad-
resy. Informacja ta jest rozproszo-
na pomiędzy wszystkie serwery
nazw, które odpowiadają za obsłu-
gę pojedynczych domen nazewni-
czych. Translację wybranej nazwy
dokonuje serwer nazw dla domeny,
z której pochodzi testowana na-
zwa.

Zwielokrotnianie (ang. repli-

cation) daje możliwość nie tylko
zwiększenia dostępności zasobów,
ale także równoważenia obciąże-
nia. W efekcie systemy stosujące
replikację (potencjalnie) charakte-
ryzują się większą wydajnością. Co
więcej, zwielokrotniony serwer mo-
że być zastąpiony innym w przy-
padku awarii. Jeżeli zwielokrotnio-
ne serwery są dodatkowo rozpro-
szone, to średnia odległość do naj-
bliższego serwera ulega skróceniu,
co skutkuje dodatkowo możliwo-
ścią maskowania opóźnień komu-
nikacyjnych.

Pewną formę zwielokrotnia-

nia stanowi stosowanie pamię-
ci podręcznych (ang. cache), któ-
rych zawartość jest również ko-
pią oryginalnych danych. O ile
jednak przy zwielokrotnianiu de-
cyzję o utworzeniu kopii podej-
muje właściciel zasobu, o tyle
w przypadku przechowywania pod-
ręcznego decyzję taką podejmu-
je sam klient. Tworzenie kopii za-
sobów powoduje jednak powsta-
wanie problemu spójności danych,
jeżeli jedna z kopii zostanie zmo-
dyfikowana. Częste modyfikacje
i ich propagacje do pozostałych
serwerów

mogą

spowodować

znaczne ograniczenie skalowalno-

ści systemu stosującego replikację.
Z drugiej strony, użytkownicy mogą
odwoływać się do danych, które nie
są już aktualne, co nie zawsze bę-
dzie akceptowalne (np. w przypad-
ku operacji bankowych). Użytkow-
nicy mogą formułować swoje ocze-
kiwania co do spójności zwielokrot-
nianych danych poprzez tzw. mo-
dele spójności opisujące gwaran-
cje, których udziela system. Doty-
czą one propagacji zmian do pozo-
stałych kopii oraz uporządkowania
operacji realizowanych współbież-
nie na wielu serwerach. Globalne
porządkowanie operacji może jed-
nak wymagać stosowania scentra-
lizowanego przetwarzania, co oczy-
wiście jest rozwiązaniem nieska-
lowalnym. Nie zawsze więc zwie-
lokrotnianie jest właściwą metodą
na zwiększanie skalowalności sys-
temu.

Systemy rozproszone budowa-

ne są z pojedynczych komputerów
połączonych siecią. Z punktu wi-
dzenia programisty nie jest obojęt-
ne, jaka jest budowa pojedynczych
maszyn w systemie rozproszonym,
gdyż rzutuje to na sposób progra-
mowania takich systemów. Gene-
ralnie można wyróżnić dwie klasy
systemów komputerowych: wielo-
procesory i multikomputery. Zasad-
nicza różnica polega na innej orga-
nizacji dostępu do pamięci. W wie-
loprocesorach wszystkie procesory
mają dostęp do jednej, wspólnej
przestrzeni adresowej. W multikom-
puterach każda jednostka ma swoją
lokalną pamięć.

Drugim ważnym parametrem

wyznaczającym charakter syste-
mu rozproszonego jest architek-
tura połączeń pomiędzy poszcze-
gólnymi węzłami. Połączenia mo-
gą być realizowane poprzez central-
ną szynę lub w technologii przełą-
czanej. Połączenia szynowe w wie-
loprocesorach ułatwiają zarządza-
nie spójnością danych, ale z drugiej

strony bardzo ograniczają skalowal-
ność; szyna przy niedużej liczbie
procesorów staje się wąskim gar-
dłem. Często stosowanym rozwią-
zaniem w takim przypadku jest za-
stosowanie pamięci podręcznych.
Algorytmy wymiany zawartości pa-
mięci podręcznej pozwalają na uzy-
skiwanie wysokich współczynników
trafień (ang. hit rate), co pozwala
na znaczne ograniczenie częstotli-
wości odwołań do głównej szyny.
Z drugiej jednak strony stosowanie
pamięci podręcznej powoduje po-
wstawanie problemu spójności kopii
tych samych danych przechowywa-
nych na różnych węzłach.

Podsumowanie

Wieloprocesory budowane są po-
przez połączenie wielu autonomicz-
nych komputerów siecią. Jeżeli wyko-
rzystywane są komputery o tej samej
architekturze, to mamy do czynienia
z siecią systemową. Połączenia mo-
gą być również realizowane w archi-
tekturze szynowej lub przełączanej.
W przypadku architektury przełącza-
nej stosuje się wyznaczanie tras (tra-
sowanie) komunikatów przez sieć po-
łączeń. Dwie najpopularniejsze topo-
logie połączeń pomiędzy węzłami to
siatki (kraty) i hiperkostki. Kraty, po-
nieważ są dwuwymiarowe, są łatwiej-
sze do implementacji na płaskiej płyt-
ce obwodu drukowanego. Hiperkost-
ka jest sześcianem n-wymiarowym.
Praktyczne realizacje koncepcji mul-
tikomputera korzystają bądź ze spe-
cjalizowanej (często opatentowanej)
sieci połączeń bądź ze standardo-
wych rozwiązań stosowanych w sie-
ciach komputerowych (np. technolo-
gia Ethernet). Pierwsze podejście,
oczywiście dużo droższe, stosowa-
ne jest w komputerach o masywnej
równoległości. Multikomputery ba-
zujące na standardowych technolo-
giach zwane są z kolei gronami, gru-
pami stacji roboczych lub po prostu
klastrami. l

O autorze

Student informatyki który interesuje się logiką rozmytą.
Kontakt z autorem: spinacz24@gmailcom


Wyszukiwarka

Podobne podstrony:
2008 03 podst zestaw II
2008 03 15 alrauna hibernate
2008 03 05 0203
2008 03 Czujnik wilgociid 26450 Nieznany
Wykłady Maćkiewicza, 2008.03.05 Językoznawstwo ogólne - wykład 15, Językoznawstwo ogólne
2008 03 16 wycena akcji, FCFF, FCFF, dźwignie finansowe, progi rentowności
2008 03 Scalix – migracja z MS Exchange [Programowanie]
2008 03 17 prawdopodobie stwo i statystykaid 26449
2008 03 17 praid 26448 Nieznany
EZ1 PTŚ 2008 03 15 0 wstęp
2008 03 16 pieniądz
2008 03 17 matematyka finansowaid 26447
Egzamin 2008.03.17, rozwiazania zadań aktuarialnych matematyka finansowa
2008 03 Puppy Linux a Little Linux with More Bite than Bark
2008 03 03 Obw MON Kodeks honorowy żołnierza zawodowego WP
2008-03-26 Pozwali Skarb na 20 mld zł, materiały, Z PRASY
LM 2008 03

więcej podobnych podstron