(w Polsce niekiedy mylnie nazywany siatką komputerową, a poprawnie przetwarzaniem sieciowymNowoczesne technologie informacyjne w zarządzaniu, Mieczysław L. Owoc, Jacek Sachanbinski, PRACE NAUKOWE AKADEMII EKONOMICZNEJ WE WROCŁAWIU; nr 1081; 2005.) – system, który zarządza zasobami będącymi pod kontrolą różnych komputerów i połączonymi siecią komputerową, używa otwartych protokołów i interfejsów ogólnego przeznaczenia (odkrywania i dostępu do zasobów, autoryzacji, uwierzytelniania) oraz dostarcza usług odpowiedniej jakości (, oferuje usługi wyższego poziomu).

Celem technologii gridowej jest stworzenie prostego, lecz mimo to wielkiego i potężnego, wirtualnego komputera z ogromnej ilości połączonych, niejednorodnych systemów współdzielących różnego rodzaju zasoby. Wyłaniający się standard dla współdzielenia zasobów wraz z dostępnością większych szerokości pasm transmisyjnych stanowią szansę na duży ewolucyjny krok w obliczeniach gridowych. W sensie ogólnym „” oznacza przetwarzanie danych traktowane jako usługa użyteczności publicznej. Inaczej mówiąc, dla klienta nie jest ważne, gdzie są przechowywane jego dane ani który komputer wykonuje zlecenie. Natomiast koncepcja widziana od strony usługodawcy oznacza alokację zasobów, współużytkowanie informacji oraz konieczność zapewnienia wysokiej dostępności.

Pojęcia tego jako pierwszy użył Ian Foster, profesor na Uniwersytecie w Chicago, naukowiec pracujący w (). Idea ta ciągle ewoluuje, znajdowane są nowe obszary jej potencjalnego zastosowania.

Grid jest rozwinięciem idei klastra poza tradycyjne granice domeny.

Pierwsze inicjatywy Za pierwszy przejaw idei gridu uważa się inicjatywę SETI@home (), mającą na celu przyspieszenie poszukiwań śladów życia we Wszechświecie. Dowolny posiadacz komputera mógł pobrać fragment danych (sygnałów odbieranych przez radioteleskopy) i przeprowadzać obliczenia w czasie wolnym od własnych obliczeń (wykorzystując wolne cykle CPU). To nowatorskie podejście do problemu pozwoliło na równoczesne wykorzystanie milionów komputerów rozproszonych po całym świecie. Udało się w ten sposób zidentyfikować potencjalnie interesujące fragmenty sygnału, które następnie poddawane są dalszym analizom.

Zasoby Zasoby gridu mogą być administrowane przez różne organizacje. Udostępnianie zasobów przebiega zgodnie z lokalną polityką zarządzania zasobami stosowaną w danej organizacji.

Zasoby posiadają przynajmniej niektóre z poniższych cech: rozproszone geograficzne heterogeniczne sprzętowo i programowo dynamiczne (dostępność zmienna w czasie) potencjalnie zawodne posiadane i zarządzane przez różne organizacje różne wymagania i polityki bezpieczeństwa różne polityki zarządzania zasobami połączone heterogeniczną siecią (różne warstwy, protokoły komunikacyjne, topologie)

Współdzielenie zasobów Warstwę fizyczną środowiska gridowego stanowią połączone siecią zasoby sprzętowe wielu organizacji stanowiących , które wyrażą chęć współtworzenia takiej struktury.

Ponad warstwą sprzętową musi istnieć warstwa programowa, która pozwoli na udostępnianie i współdzielenie zasobów oraz umożliwi rozliczanie członków z użycia zasobów (tzw. ).

Przezroczysty dostęp do zasobów Użytkownik systemu gridowego nie musi wiedzieć: skąd pobrane zostaną potrzebne mu dane, na którym serwerze wykonają się jego obliczenia, które dokładnie fragmenty infrastruktury będą zaangażowane w wykonanie jego zadania.

Cała infrastruktura sprzętowo-programowa, poza interfejsem dostępowym (np. portalem), powinna być przed użytkownikiem ukryta tak, aby mógł on w prosty sposób zlecić swoje zadanie i otrzymać wyniki.

Cechy charakterystyczne systemu gridowego Kładzie nacisk na autonomię zasobu (pozwala na zachowanie lokalnej kontroli nad zasobami, lokalnych polityki dostępu). Zasoby nie są zarządzane centralnie, w przeciwnym razie jest to lokalny system zarządzania zasobami (np. SGE, LSF, PBS) Zasobami gridu mogą być nie tylko komputery i sieci, także specjalistyczne urządzenia, zbiory danych. Grid skupia się na użytkowniku, patrzy się nie tylko z punktu widzenia posiadacza zasobu, ale głównie z punktu widzenia użytkownika zlecającego zadanie do wykonania, aby zoptymalizować wykonanie aplikacji, a nie użycie systemu. Używa standardowych i otwartych protokołów, w przeciwnym razie mamy do czynienia z systemem dedykowanym, zamkniętym. Dostarcza nietrywialnych usług (odpowiednie ), nie może wymagać od użytkownika specjalistycznej wiedzy i skomplikowanych procedur.

Wirtualne organizacje Wyobraźmy sobie wiele organizacji rozproszonych po całym świecie, każda posiada pewne zasoby komputerowe, programowe, sprzęt specjalistyczny i cenne dane, np. pomiarowe. Żadnej z tych organizacji nie stać na zakup wszystkich najnowszych osiągnięć technologicznych, każda z nich posiada pewien ich podzbiór i wykorzystuje w różnym czasie i z różnym natężeniem.

Celem tworzenia gridu jest umożliwienie organizacjom wzajemnej wymiany np. mocy obliczeniowej i innych zasobów z zachowaniem lokalnych polityk dostępu i bezpieczeństwa. Tworzone są w ten sposób Wirtualne Organizacje (, ang. ).

Rozwiązywanie problemów dużej skali Grid ma pozwolić na rozwiązywanie problemów dużej skali, w zakresie znacznie większym niż pozwalają na to wieloprocesorowe superkomputery lub lokalne klastry komputerowe.

Dzięki udostępnianiu własnych zasobów w ramach Wirtualnej Organizacji, można mieć okresowo dostęp do wszystkich jej zasobów, co daje niewątpliwą szansę na wykonanie bardziej skomplikowanych obliczeń w krótszym czasie (zasoby na żądanie).

Technologie programowe Najbardziej znane realizacje koncepcji gridu to Legion i Globus Toolkit.

Globus Toolkit jest to oprogramowanie warstwy pośredniej (ang. ) opracowywane w ramach projektu Globus Alliance. Celem projektu jest dostarczenie środowiska do uruchamiania i tworzenia aplikacji gridowych. Ponadto w ramach projektu powstają przykładowe implementacje usług potrzebnych w tym środowisku. Globus Toolkit uważany jest za implementację referencyjną.

Architektura i implementacja sieci GRID Lp.Warstwy Modelu OSIWarstwy Modelu GRID 1. Fizyczna IP 2. Łącza danych TCP 3. Sieci HTTP 4. Transportowa SOAP 5. Sesji WS-RF 6. Prezentacji oprogramowanie pośredniczące 7. Aplikacji Grid Apps

Technika oparta jest na idei łączenia zasobów danych w metasystem, obejmujący różnorodne architektury, platformy i lokalizacje fizyczne, z zachowaniem lokalnych reguł dostępu i bezpieczeństwa w obrębie utworzonej organizacji wirtualnej (, ang. ). Zastosowanie techniki sieci grid wymaga zatem stworzenia wszechstronnego systemu połączeniowego, jak i zaawansowanej infrastruktury oprogramowania. Opracowywaniem standardów dotyczących techniki zajmują się organizacje Global Grid Forum i OASIS.

Architektura środowiska gridowego zdefiniowana została w standardach OGSA (ang. ), OGSI (ang. ) oraz WSRF (ang. ) określającym wymagania dla interfejsu sieciowego i sposób budowania oprogramowania dla środowiska z wykorzystaniem usług sieciowych. Jest to architektura zbliżona strukturą do sieci Internet. Najniższą warstwę tworzą zasoby sprzętowe organizacji (komputery, systemy przechowywania danych, sieci, klastry). Warstwa łącza definiuje protokoły komunikacji i uwierzytelniania. Kolejna warstwa określa protokoły kontroli i bezpiecznego dostępu do lokalnych zasobów sieci. Wyższa warstwa dostarczająca mechanizmy udostępniania i współdzielenia globalnych zasobów gridu.

Najwyżej znajduje się warstwa aplikacji, którą stanowią oprogramowanie użytkownika oraz portale dostępowe. Jest to właściwie jedyna warstwa widoczna dla użytkownika. Zespół wszystkich usług realizujących współpracę aplikacji w środowisku rozproszonym i umożliwiający konsolidację różnorodnych elementów sieci tworzy tzw. oprogramowanie pośredniczące. Jest to rodzaj oprogramowania pośredniczącego, stanowiący pomost umożliwiający komunikację między aplikacją użytkownika a zewnętrznymi bazami danych lub serwerami.

Najbardziej znane realizacje koncepcji gridu to m.in. Legion, Globe, Unicore i Globus. Są to platformy programistyczne realizujące funkcję warstwy oprogramowania pośredniczącego. Przykładowo Globus Toolkit, opracowywany w ramach projektu Globus Alliance, stanowi pakiet składający się z kilku modułów pozwalających na implementację podstawowych usług, umożliwiających pracę w techniki grid. W skład Globus Toolkit wchodzą programy realizujące takie funkcje jak: lokalizowanie i monitorowanie zasobów, zapewnianie bezpieczeństwa, transmisję danych użytkowych, czy komunikację. W odróżnieniu od realizacji w postaci pakietu modułów, oprogramowanie Legion bazuje na zunifikowanej architekturze, w której wszystkie funkcje zbudowane są w oparciu o jeden model. Wszelkie nowe aplikacje włączane są do istniejącego interfejsu programistycznego. Takie rozwiązanie pozwala na efektywną współpracę nowych modułów z resztą systemu.

W implementacji infrastruktury grid najbardziej popularnymi technikami i językami programowania są te, bazujące na modelu obiektowym i udostępniające usługi sieciowe. Do najczęściej używanych przy tworzeniu oprogramowania dla sieci grid technik należy Microsoft Net Framework (.NET). Jest to platforma programistyczna opracowana przez Microsoft, obejmująca środowisko uruchomieniowe (CLR, ang. ) oraz biblioteki klas dostarczające standardowej funkcjonalności dla aplikacji. Przykładem zastosowania powyższej techniki jest oprogramowanie Alchemi – programistyczny szkielet ułatwiający tworzenie samego gridu, jak i aplikacji działających na nim. Innymi technikami są Java i jej pochodna JINI. Język programowania Java jest językiem zorientowanym obiektowo, dobrze nadającym się do tworzenia systemów grid, a także programów pracujących na gridzie. Co ważne, programy napisane w nim są niezależne od systemu operacyjnego, na którym są wykonywane. Technika JINI zapewnia natomiast dodatkowo takie funkcje jak: wykrywanie usług (ang. ), system powiadamiania bazujący na zdarzeniach, system zarządzania zasobami rozproszonymi i zapewnianie bezpieczeństwa. Z tego powodu jest to świetna technika przydatna do tworzenia systemów . Przykładem gridu zbudowanego z wykorzystaniem języka Java i techniki JINI jest JGrid.

Bezpieczeństwo w sieciach GRID W środowisku sieci obliczeniowych grid kluczowym wymaganiem jest niewątpliwie bezpieczeństwo, co niesie ze sobą konieczność występowania mechanizmów takich jak: autoryzacja, uwierzytelnianie, pewność dostępności oraz integralność danych, szczególnie z punktu widzenia użytkownika. W czasie wykonywania zadań przez użytkownika najczęściej wymagana jest forma komunikacji „” – z ang.; w naukach technicznych jest formą komunikacji używaną w obliczeniach równoległych, symultanicznych, programowaniu zorientowanym obiektowo i w komunikacji między procesami. Komunikacja polega na wysyłaniu wiadomości do odbiorców. Ramka wiadomości zawiera: nagłówek, sygnalizację oraz dane.. Może być to relacja krótkotrwała lub długotrwała. Jednakże w każdej sytuacji aplikacja musi być zaprojektowana z pełną funkcjonalnością bezpieczeństwa. Wymagane jest także stworzenie wysokiego bezpieczeństwa w ramach organizacji należących do sieci obliczeniowej. System scentralizowany staje się bardzo niepraktyczny. Infrastruktura jest tak tworzona, aby zezwalała na jednokrotne, wszędzie akceptowalne logowanie, które pozwala na lokalną kontrolę nad prawami dostępu w całej sieci globalnej.

Jednocześnie w każdym węźle sieci występuje blok bezpieczeństwa umożliwiający komunikację między wewnętrznymi elementami sieci. Dzieje się tak, gdyż grid jest połączeniem oprogramowania oraz fizycznego sprzętu komputerowego, którego lokalizacja nie jest znana przez użytkownika. Gdy użytkownik pragnie wykonać jakąś pracę na konkretnym procesorze, musi mieć pewność, że jego prywatne dane, jak i aplikacje nie będą dostępne dla nikogo niepożądanego oraz nie będą zmienione w czasie wysyłania, jak i odbierania. W innym przypadku użytkownik i administrator są narażeni na duże ryzyko złośliwego działania innych osób.