Механизм интернет-коммуникаций
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2009 г. ) |
Разработчик(и) | ЗероС |
---|---|
Стабильная версия | 3.7.10 / 7 ноября 2023 г |
Репозиторий | |
Платформа | Кросс-платформенный |
Тип | удаленного вызова процедур Платформа |
Лицензия | GPL /собственная лицензия |
Веб-сайт | нольc |
Internet Communications Engine , или Ice , — это с открытым исходным кодом, платформа RPC разработанная ZeroC . Он предоставляет SDK для C++ , C# , Java , JavaScript , MATLAB , Objective-C , PHP , Python , Ruby и Swift и может работать в различных операционных системах, включая Linux , Windows , macOS , iOS и Android . [1]
Ice реализует собственный протокол связи прикладного уровня , называемый протоколом Ice, который может работать через TCP , TLS , UDP , WebSocket и Bluetooth . [2] [3] Как следует из названия, Ice может подойти для приложений, взаимодействующих через Интернет, и включает в себя функции обхода межсетевых экранов .
История
[ редактировать ]Первоначально выпущенный в феврале 2003 года, [4] При разработке Ice на него повлияла архитектура Common Object Request Broker Architecture (CORBA), и он действительно был создан несколькими влиятельными разработчиками CORBA, включая Мичи Хеннинга . Однако, по словам ZeroC, он был меньше и менее сложным, чем CORBA, поскольку был разработан небольшой группой опытных разработчиков, а не страдал от разработки комитетом . [5]
В 2004 году сообщалось, что игра под названием «Wish», созданная компанией Mutable Realms, использовала Ice. [6] В 2008 году сообщалось, что Солнечная обсерватория Биг-Беар использует это программное обеспечение с 2005 года. [7] Репозиторий исходного кода Ice находится на GitHub с мая 2015 года. [8]
Компоненты
[ редактировать ]Компоненты Ice включают объектно-ориентированный вызов удаленных объектов, репликацию, грид-вычисления, аварийное переключение, балансировку нагрузки, обход межсетевого экрана и службы публикации-подписки. Чтобы получить доступ к этим службам, приложения связываются с библиотекой-заглушкой или сборкой, которая создается на основе независимого от языка IDL синтаксиса, подобного , называемого срезом .
Ледяной Шторм
[ редактировать ]— это объектно-ориентированная платформа публикации и подписки, которая также поддерживает федерацию и качество обслуживания. В отличие от других платформ публикации-подписки, таких как Tibco Software от Rendezvous или SmartSockets , содержимое сообщения состоит из объектов четко определенных классов, а не из структурированного текста.
IceGrid
[ редактировать ]представляет собой набор платформ, которые обеспечивают объектно-ориентированную балансировку нагрузки , аварийное переключение , обнаружение объектов и службы реестра.
Айспатч
[ редактировать ]облегчает развертывание программного обеспечения на базе ICE. Например, пользователь, желающий развернуть новые функции и/или исправления на нескольких серверах, может использовать IcePatch.
Ледник
[ редактировать ]— это служба на основе прокси -сервера, обеспечивающая связь через брандмауэры, что делает ICE механизмом интернет-коммуникаций .
IceBox
[ редактировать ]Icebox — это сервис-ориентированный контейнер с исполняемыми службами, реализованными в библиотеках .dll или .so. Это более легкая альтернатива созданию целого исполняемого файла для каждой службы.
Срез
[ редактировать ]Slice — это собственный формат файлов ZeroC, который программисты используют для редактирования независимых от компьютерного языка объявлений и определений классов, интерфейсов, структур и перечислений. Файлы определения срезов используются в качестве входных данных для процесса создания заглушки. Заглушка, в свою очередь, связана с приложениями и серверами, которые должны взаимодействовать друг с другом на основе интерфейсов и классов, объявленных/определенных определениями срезов.
Помимо CORBA, классы и интерфейсы поддерживают наследование и абстрактные классы. Кроме того, срез предоставляет параметры конфигурации в виде макросов и атрибутов для управления процессом генерации кода. Примером может служить директива для генерации определенного STL. list<double>
шаблон вместо шаблона по умолчанию, который предназначен для создания STL vector<double>
шаблон.
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ «Ice — комплексная структура RPC» . Zeroc.com . Проверено 27 апреля 2018 г.
- ^ «Ice — комплексная структура RPC» . Zeroc.com . Проверено 8 февраля 2019 г.
- ^ «Использует ли ICE какой-либо протокол http для связи» . ЗероС . Проверено 13 августа 2019 г.
- ^ Лаукин, Марк. «Проект: Механизм интернет-коммуникаций» . Форумы ZeroC . Проверено 16 января 2021 г.
- ^ «Различия между Ice и CORBA» . Архивировано из оригинала 18 марта 2013 года . Проверено 17 июля 2013 г.
- ^ Мичи Хеннинг (1 февраля 2004 г.). «Промежуточное ПО для массовой многопользовательской игры» . Очередь . АКМ . Проверено 17 июля 2013 г.
- ^ Сергей Шумко (2 ноября 2008 г.). «Промежуточное программное обеспечение Ice в системе управления телескопом Нового Солнечного телескопа» (PDF) . Программное обеспечение и системы для анализа астрономических данных XVII, Серия конференций ASP, Vol. ХХХ, 2008 г. Квебек, Канада. Архивировано из оригинала (PDF) 25 августа 2012 года . Проверено 17 июля 2013 г.
- ^ Нормье, Бернар. «Ice переехал на GitHub!» . Форумы ZeroC . Проверено 8 февраля 2019 г.