1 Internet Communication EngineMaciej Górnicki
2 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.
3 ICE vs Corba Brak typu ‘Any’ Ice Object Adapter zamiast POAProtokół ICE Bezpieczeństwo Zarządzanie wersjami Komunikaty asynchroniczne
4 SLICE Specification Language for ICEPodobny 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
5 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.
6 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) (!)
7 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)
8 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)
9 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.
10 Materiały