Silnik komunikacji internetowej
Deweloperzy | Zero C |
---|---|
Wersja stabilna | 3.7.8 / 27 lipca 2022 r
|
Magazyn | |
Platforma | Międzyplatformowe |
Typ | Struktura zdalnego wywoływania procedur |
Licencja | GPL / Zastrzeżony |
Strona internetowa |
Internet Communications Engine lub Ice to framework RPC o otwartym kodzie źródłowym opracowany przez ZeroC . Zapewnia SDK dla C++ , C# , Java , JavaScript , MATLAB , Objective-C , PHP , Python , Ruby i Swift i może działać na różnych systemach operacyjnych, w tym Linux , Windows , macOS , iOS i Android .
Ice implementuje zastrzeżony protokół komunikacyjny warstwy aplikacji , zwany protokołem Ice, który może działać przez TCP , TLS , UDP , WebSocket i Bluetooth . Jak sama nazwa wskazuje, Ice może być odpowiedni dla aplikacji komunikujących się przez Internet i zawiera funkcje umożliwiające przechodzenie przez zapory ogniowe .
Historia
Pierwotnie wydany w lutym 2003 r., Ice był pod wpływem architektury Common Object Request Broker Architecture (CORBA) w swoim projekcie i rzeczywiście został stworzony przez kilku wpływowych programistów CORBA, w tym Michi Henning. Jednak według ZeroC był mniejszy i mniej skomplikowany niż CORBA, ponieważ został zaprojektowany przez niewielką grupę doświadczonych programistów, zamiast cierpieć z powodu projektowania przez komitet .
W 2004 roku zgłoszono, że gra o nazwie „Wish” firmy Mutable Realms wykorzystywała lód. W 2008 roku zgłoszono, że Big Bear Solar Observatory korzysta z oprogramowania od 2005 roku. Repozytorium kodu źródłowego Ice znajduje się na GitHub od maja 2015 roku.
składniki
Komponenty Ice obejmują zorientowane obiektowo zdalne wywoływanie obiektów, replikację, przetwarzanie sieciowe, przełączanie awaryjne, równoważenie obciążenia, przechodzenie przez zaporę ogniową i usługi publikowania i subskrybowania. Aby uzyskać dostęp do tych usług, aplikacje są łączone z biblioteką pośredniczącą lub zestawem, który jest generowany z niezależnej od języka IDL , zwanej plasterkiem .
Lodowa Burza
to zorientowana obiektowo struktura publikowania i subskrybowania, która obsługuje również federację i jakość usług. W przeciwieństwie do innych platform publikowania i subskrybowania, takich jak Rendezvous lub SmartSockets firmy Tibco Software , treść wiadomości składa się z obiektów o dobrze zdefiniowanych klasach, a nie z tekstu strukturalnego.
IceGrid
to zestaw platform, które zapewniają zorientowane obiektowo usługi równoważenia obciążenia , przełączania awaryjnego , wykrywania obiektów i usług rejestru.
IcePatch
ułatwia wdrażanie oprogramowania opartego na ICE. Na przykład użytkownik, który chce wdrożyć nowe funkcje i/lub poprawki na kilku serwerach, może użyć IcePatch.
Lodowiec
to usługa oparta na serwerze proxy umożliwiająca komunikację przez zapory ogniowe, dzięki czemu ICE jest silnikiem komunikacji internetowej .
Lodówka
Icebox to zorientowany na usługi kontener usług wykonywalnych zaimplementowanych w bibliotekach .dll lub .so. Jest to lżejsza alternatywa dla budowania całego pliku wykonywalnego dla każdej usługi.
Plasterek
Slice to zastrzeżony format pliku ZeroC, którego programiści używają do edytowania niezależnych od języka komputerowego deklaracji i definicji klas, interfejsów, struktur i wyliczeń. Pliki definicji wycinka są używane jako dane wejściowe do procesu generowania kodu pośredniczącego. Z kolei kod pośredniczący jest połączony z aplikacjami i serwerami, które powinny komunikować się ze sobą w oparciu o interfejsy i klasy zadeklarowane/zdefiniowane przez definicje plasterków.
Oprócz CORBA, klasy i interfejsy obsługują dziedziczenie i klasy abstrakcyjne. Ponadto plasterek zapewnia opcje konfiguracyjne w postaci makr i atrybutów, aby pokierować procesem generowania kodu. Przykładem jest dyrektywa generowania określonego STL list<double>
zamiast domyślnego, który ma generować szablon STL vector<double>
.
Zobacz też
Notatki
- ^ „Ice - kompleksowa struktura RPC” . zeroc.com . Źródło 2018-04-27 .
- ^ „Ice - kompleksowa struktura RPC” . zeroc.com . Źródło 2019-02-08 .
- ^ „Czy ICE używa dowolnego protokołu http do komunikacji” . zero C . Źródło 2019-08-13 .
- Bibliografia _ „Projekt: silnik komunikacji internetowej” . Forum ZeroC . Źródło 16 stycznia 2021 r .
- ^ „Różnice między lodem a CORBA” . Zarchiwizowane od oryginału w dniu 18 marca 2013 r . Źródło 17 lipca 2013 r .
- ^ Michi Henning (1 lutego 2004). „Oprogramowanie pośrednie dla wielu graczy” . Kolejka . ACM . Źródło 17 lipca 2013 r .
- ^ Sergij Szumko (2 listopada 2008). „Lodowe oprogramowanie pośrednie w systemie sterowania teleskopem nowego teleskopu słonecznego” (PDF) . Oprogramowanie i systemy do analizy danych astronomicznych XVII, seria konferencji ASP, tom. XXX, 2008 . Miasto Quebec, Kanada. Zarchiwizowane od oryginału (PDF) w dniu 25 sierpnia 2012 r . Źródło 17 lipca 2013 r .
- Bibliografia _ „Ice przeniósł się do GitHub!” . Forum ZeroC . Źródło 8 lutego 2019 r .