El Comunicaciones motor de , o hielo , es una de código abierto RPC marco 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]
Desarrollador (es) | ZeroC |
---|---|
Lanzamiento estable | 3.7.5 / 26 de enero de 2021 |
Repositorio | |
Plataforma | Multiplataforma |
Tipo | Marco de llamada a procedimiento remoto |
Licencia | GPL / Propietario |
Sitio web | zeroc |
Ice implementa un protocolo de comunicaciones de capa de aplicación patentado , llamado protocolo Ice, que puede ejecutarse a través de 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
Lanzado inicialmente en febrero de 2003, [4] Ice fue influenciado por Common Object Request Broker Architecture (CORBA) en su diseño, y de hecho fue creado por varios desarrolladores de CORBA influyentes, 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" por una compañía llamada Mutable Realms usaba Ice. [6] En 2008, se informó que Big Bear Solar Observatory había utilizado 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 invocación de objetos remotos orientados a objetos, replicación, computación en red, conmutación por error, equilibrio de carga, recorridos de firewall y servicios de publicación y suscripción. Para obtener acceso a esos servicios, las aplicaciones están vinculadas a una biblioteca de códigos auxiliares o ensamblado, que se genera a partir de una sintaxis similar a IDL independiente del lenguaje llamada segmento .
Tormenta de nieve
es un marco de publicación y suscripción orientado a objetos que también admite la federación y la calidad de servicio. A diferencia de otros marcos de publicación-suscripción como Tibco Software 's Rendezvous o SmartSockets , el contenido del mensaje consiste en objetos de clases bien definidas y no de texto estructurado.
IceGrid
es un conjunto de marcos que proporcionan orientado a objetos de equilibrio de carga , conmutación por error de los servicios, objeto de descubrimiento y registro.
IcePatch
facilita la implementación de software basado en ICE. Por ejemplo, un usuario que desee implementar nuevas funciones y / o parches en varios servidores puede usar IcePatch.
glaciar
es un servicio basado en proxy para permitir la comunicación a través de cortafuegos, lo que convierte a ICE en un motor de comunicación por Internet .
Nevera
Icebox es un contenedor de arquitectura orientada a servicios de servicios ejecutables implementados en bibliotecas .dll o .so. Esta es una alternativa más ligera a la creación de ejecutables completos para cada servicio.
Rodaja
Slice es un formato de archivo propietario de ZeroC que los programadores siguen para editar declaraciones y definiciones de clases, interfaces, estructuras y enumeraciones independientes del lenguaje informático. Los archivos de definición de sectores se utilizan como entrada para el proceso de generación de códigos auxiliares. El stub, a su vez, está vinculado a aplicaciones y servidores que deben comunicarse entre sí según las interfaces y clases declaradas / definidas por las definiciones de segmento.
Además de CORBA, las clases y las interfaces admiten clases heredadas y 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 en list
lugar de la predeterminada, que es generar una vector
plantilla STL .
Ver también
- Cisco 's Etch
- Google 's GRPC
- JABÓN
- Apache Thrift
- Microsoft 's WCF
Notas
- ^ http://zeroc.com/products/ice#everywhere Consultado el 27 de abril de 2018.
- ^ https://zeroc.com/products/ice#flexible Consultado el 8 de febrero de 2019
- ^ "¿ICE utiliza algún protocolo http para la comunicación?" . ZeroC . Consultado el 13 de agosto de 2019 .
- ^ Laukien, Marc. "Proyecto: El motor de comunicaciones de Internet" . Foros de ZeroC . Consultado el 16 de enero de 2021 .
- ^ "Diferencias entre Ice y CORBA" . Archivado desde el original el 18 de marzo de 2013 . Consultado el 17 de julio de 2013 .
- ^ Michi Henning (1 de febrero de 2004). "Middleware masivamente multijugador" . Cola . ACM . Consultado el 17 de julio de 2013 .
- ^ Sergij Shumko (2 de noviembre de 2008). "Middleware de hielo en el sistema de control del telescopio del nuevo telescopio solar" (PDF) . Software y sistemas de análisis de datos astronómicos XVII, Serie de conferencias ASP, 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 .
- ^ Normier, Bernard. "¡Ice se ha trasladado a GitHub!" . Foros de ZeroC . Consultado el 8 de febrero de 2019 .
enlaces externos
- https://github.com/zeroc-ice/ice