stringtranslate.com

Motor de comunicaciones por Internet

Internet Communications Engine , o Ice , es un marco RPC de código abierto desarrollado por ZeroC . Proporciona SDK para C++ , C# , Java , JavaScript , MATLAB , Objective-C , PHP , Python , Ruby y Swift , y puede ejecutarse en varios sistemas operativos, incluidos Linux , Windows , macOS , iOS y Android . [1]

Ice implementa un protocolo de comunicaciones de capa de aplicación propietario , llamado protocolo Ice, que puede ejecutarse sobre TCP , TLS , UDP , WebSocket y Bluetooth . [2] [3] Como su nombre lo indica, Ice puede ser adecuado para aplicaciones que se comunican a través de Internet, e incluye funcionalidad para atravesar firewalls .

Historia

Inicialmente lanzado en febrero de 2003, [4] Ice estuvo influenciado por la Common Object Request Broker Architecture (CORBA) en su diseño, y de hecho fue creado por varios desarrolladores influyentes de CORBA, incluido Michi Henning.

Sin embargo, según ZeroC, era más pequeño y menos complejo que CORBA porque fue diseñado por un pequeño grupo de desarrolladores experimentados, en lugar de sufrir un diseño por comité . [5]

En 2004, se informó que un juego llamado "Wish" de una empresa llamada Mutable Realms usaba Ice. [6] En 2008, se informó que Big Bear Solar Observatory había usado el software desde 2005. [7] El repositorio de código fuente de Ice está en GitHub desde mayo de 2015. [8]

Componentes

Los componentes de Ice incluyen servicios de invocación remota de objetos, replicación, computación en red, conmutación por error, equilibrio de carga, cruces de cortafuegos y publicación-suscripción orientados a objetos. Para obtener acceso a esos servicios, las aplicaciones se vinculan a una biblioteca o ensamblaje de código auxiliar, que se genera a partir de una sintaxis similar a IDL independiente del lenguaje denominada slice .

Tormenta de hielo

es un marco de publicación y suscripción orientado a objetos que también admite la federación y la calidad del servicio. A diferencia de otros marcos de publicación y suscripción, como Rendezvous o SmartSockets de Tibco Software , el contenido del mensaje consta de objetos de clases bien definidas en lugar de texto estructurado.

Red de hielo

Es un conjunto de marcos que proporcionan equilibrio de carga orientado a objetos , conmutación por error , descubrimiento de objetos y servicios de registro.

Parche de hielo

Facilita la implementación de software basado en ICE. Por ejemplo, un usuario que desee implementar nuevas funcionalidades y/o parches en varios servidores puede utilizar IcePatch.

Glaciar

es un servicio basado en proxy que permite la comunicación a través de firewalls, convirtiendo así a ICE en un motor de comunicación de Internet .

Nevera

Icebox es un contenedor de servicios ejecutables con arquitectura orientada a servicios implementados en bibliotecas .dll o .so. Es una alternativa más liviana a la creación de un ejecutable completo para cada servicio.

Rebanada

Slice es un formato de archivo propiedad de ZeroC que los programadores siguen para editar declaraciones y definiciones de clases, interfaces, estructuras y enumeraciones independientes del lenguaje de programación. Los archivos de definición de Slice se utilizan como entrada para el proceso de generación de stubs. A su vez, los stubs están vinculados a aplicaciones y servidores que deberían comunicarse entre sí en función de las interfaces y clases declaradas o definidas por las definiciones de Slice.

Además de CORBA, las clases e interfaces admiten herencia y clases abstractas. Además, Slice proporciona opciones de configuración en forma de macros y atributos para dirigir el proceso de generación de código. Un ejemplo es la directiva para generar una determinada plantilla STL list<double> en lugar de la opción predeterminada, que es generar una vector<double>plantilla STL.

Véase también

Notas

  1. ^ "Ice - Marco de trabajo RPC completo". zeroc.com . Consultado el 27 de abril de 2018 .
  2. ^ "Ice - Marco integral de RPC". zeroc.com . Consultado el 8 de febrero de 2019 .
  3. ^ "¿ICE utiliza algún protocolo http para comunicarse?". ZeroC . Consultado el 13 de agosto de 2019 .
  4. ^ Laukien, Marc. "Proyecto: El motor de comunicaciones de Internet". Foros ZeroC . Consultado el 16 de enero de 2021 .
  5. ^ "Diferencias entre Ice y CORBA". Archivado desde el original el 18 de marzo de 2013 . Consultado el 17 de julio de 2013 .
  6. ^ Michi Henning (1 de febrero de 2004). "Massively Multiplayer Middleware". Cola . ACM . Consultado el 17 de julio de 2013 .
  7. ^ Sergij Shumko (2 de noviembre de 2008). "Middleware Ice en el sistema de control del telescopio del nuevo telescopio solar" (PDF) . Astronomical Data Analysis Software and Systems XVII, ASP Conference Series, vol. XXX, 2008. Ciudad de Quebec, Canadá. Archivado desde el original (PDF) el 25 de agosto de 2012. Consultado el 17 de julio de 2013 .
  8. ^ Normier, Bernard. "¡Ice se ha mudado a GitHub!". Foros de ZeroC . Consultado el 8 de febrero de 2019 .

Enlaces externos