Internet Communication Engine

10
Internet Communication Engine Maciej Górnicki

description

Internet Communication Engine. Maciej Górnicki. Czym jest ICE ?. ICE to nowa platforma dla oprogramowania pośredniczące pozwalająca na tworzenie rozproszonych aplikacji klient-serwer. Dostarcza prostszy i skuteczniejszy model obiektowy niż Corba. - PowerPoint PPT Presentation

Transcript of Internet Communication Engine

Page 1: Internet  Communication  Engine

Internet Communication Engine

Maciej Górnicki

Page 2: Internet  Communication  Engine

Czym jest ICE ?

ICE to nowa platforma dla oprogramowania pośredniczące pozwalająca na tworzenie rozproszonych aplikacji klient-serwer.

Dostarcza prostszy i skuteczniejszy model obiektowy niż Corba.

ICE to podejście do oprogramowania pośredniczącego oparte na Corbie, ale unikające jej słabości.

Page 3: Internet  Communication  Engine

ICE vs Corba Brak typu ‘Any’

Ice Object Adapter zamiast POA

Protokół ICE

Bezpieczeństwo

Zarządzanie wersjami

Komunikaty asynchroniczne

Page 4: Internet  Communication  Engine

SLICESpecification Language for ICE

Podobny do IDL’a Obsługiowane typy :

Integer : short (16 bitów), int (32 bity), long (64 bity) Float i double Byte (8 bitów) String (Unicode) Object Bool Const Enumeration, sequence, structure, module

Page 5: Internet  Communication  Engine

Dodatkowo SLICE dostarcza nowe typy :

Dictionary – kolekcja par klucz-wartość

Klasy (class) – podobnie jak struktury są przekazywane przez wartosć. Dodatkowo pozwalają na jedno-dziedziczenie implementacji i wielo-dziedziczenie interfejsów. W przeciwieństwie do struktur mogą posiadać operacje.

Page 6: Internet  Communication  Engine

Twórcy SLICE zdecydowali się na

pominięcie pewnych rzeczy :

Brak typów zagnieżdżonych Brak unii Brak rozróżnienia typu String na narrow i wide Brak typów anonimowych (zasady składni

wymuszają, aby wszystkie typy były nazwane) Brak parametru ‘inout’ Brak atrybutów (tylko operacje) (!)

Page 7: Internet  Communication  Engine

Protokół ICE

Różnica pomiędzy ICE i IIOP polega na zaimplementowaniu w ICE możliwości komunikacji poprzez UDP (datagramy)

Implementacja nowych możliwości na zasadzie plugin-ów (nie ma potrzeby ingerencji w kod źródłowy ICE)

Page 8: Internet  Communication  Engine

Wielowątkowość

ICE w przeciwieństwie do Corby wspomaga wielowątkowość

Po stronie serwera znajduje się pula wątków (thread pool). Konfiguracja pozwala na ustawienie rozmiaru puli (pula o rozmiarze równym 1 oznacza jednowątkowość). Istnieje możliwość powoływania dodatkowych pul wątków przez serwery, co pozwala na dzielenie wykonywania żądanych przez klienta operacji na różne pule. (uniknięcie zakleszczenia/zagłodzenia wątków)

Page 9: Internet  Communication  Engine

Firewall – rozwiązanie (?) Glacier (lodowiec) jest firewall’em dla ICE – pozwala klientom i

serwerom na bezpieczną komunikację poprzez firewall’a. Ruch pomiędzy klientem i serwerem szyfrowany.

Interfejs Ice::Router pozwala na przechwycenie żądania i dostarczenie go do serwera. W rzeczywistości Glacier jest implementacją tego serwisu.

Glacier powinien działać na hoście z dostępem do sieci prywatnej jak i publicznej. W pewnych przypadkach możliwe jest uruchomienie Glacier’a poza firewallem, ale preferowanym jest, aby to Glacier był firewallem dla aplikacji ICE.

Klient podłącza się do Glacier’a i wysyła żądanie tak, jakby to Glacier był serwerem. Ustanawiane jest połączenie klienckie z serwerem, przekazanie żądanie i ewentualne przekazanie odpowiedzi serwera do klienta.

Page 10: Internet  Communication  Engine

Materiały

www.zeroC.com