1 / 10

Internet Communication Engine

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.

pabla
Download Presentation

Internet Communication Engine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet Communication Engine Maciej 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 Adapterzamiast POA • Protokół ICE • Bezpieczeństwo • Zarządzanie wersjami • Komunikaty asynchroniczne

  4. 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

  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 • www.zeroC.com

More Related