OSGi
Ahora existen diferentes generaciones de OSGi, todas las cuales fueron especificadas por OSGi Alliance, un consorcio de la industria . La alianza está formada por grandes empresas como IBM , Deutsche Telekom , NTT y Oracle , pero también por muchas empresas más pequeñas, entre otras. A. desde el área de software de código abierto (área OSS). Por lo tanto, el estándar OSGi definido conjuntamente está abierto a todas las partes interesadas, y también existe una ley de patentes liberal correspondiente.
La propia OSGi Alliance solo especifica las interfaces de programación (API) y los casos de prueba para implementaciones OSGi de terceros y también proporciona una implementación de referencia como parte de esto. Esto no está diseñado para un uso productivo, sino que solo sirve como plantilla para alternativas comerciales y de OSS.
La plataforma de software genérica OSGi, que como resultado es independiente del fabricante, se puede utilizar para controlar o conectar en red todo tipo de dispositivos, p. Ej. B. en la industria automotriz , en teléfonos celulares, en la automatización de edificios , para el control remoto inteligente de electrodomésticos o en el área de "vida asistida". El principio de la puerta de enlace juega un papel particularmente importante en el hogar. H. Aquí, un marco OSGi a menudo no se instala directamente en los dispositivos respectivos, sino en las llamadas puertas de enlace residenciales ; pueden entenderse como un sistema integrado que (comparable a un enrutador DSL ) brinda a los dispositivos individuales acceso a ciertos servicios o los abstractos desde el exterior Permite el acceso a determinados dispositivos. Los frameworks OSGi se usan de manera diferente en automóviles y teléfonos móviles ; aquí se ejecutan directamente en el potente hardware integrado sin una puerta de enlace adicional.
y sus servicios básicos. Una característica importante de la plataforma de servicio es la posibilidad de que las aplicaciones de servicio controladas y dinámicamente (los llamados paquetes) se carguen durante el tiempo de ejecución y, sobre todo, se actualicen y eliminen nuevamente. El modelo de la plataforma de servicio OSGi permite que varias aplicaciones modulares y en gran parte independientes se ejecuten en paralelo en la misma máquina virtual y las administren y actualicen (de forma remota) durante todo el ciclo de vida de la aplicación. Las dependencias entre paquetes se resuelven automáticamente y está disponible una gestión de versiones inteligente. los respectivos fabricantes consisten principalmente en el marco OSGi e idealmente una gran cantidad de paquetes de servicios (paquetes) que también se pueden agregar dinámicamente debido a la arquitectura modular.Un marco OSGi es una “Plataforma de prestación de servicios” abierta, modular y escalable basada en Java. Es un modelo de componentes con un registro de componentes (= "registro de servicios"). El término "servicio", que se utiliza a menudo en el contexto OSGi, apenas va más allá del término general de "interfaz" de un componente.
Si bien las arquitecturas orientadas a servicios como paradigma para la estructuración de entornos de sistemas en toda la empresa requieren transparencia de ubicación y transparencia de acceso, las posibilidades de programar sistemas distribuidos no son una parte integral del marco OSGi, que tiene su origen en los sistemas integrados. En el marco OSGi, la atención se centra en el componente (= "paquete"), que publica su interfaz (= "servicio") a través del registro (= "registro de servicio") localmente en la JVM y admite la re / implementación durante el ciclo de vida del componente. Sin embargo, en última instancia, es posible utilizar el marco OSGi como modelo de componente subyacente de una SOA en un entorno Java.
a estos dispositivos es posible mediante protocolos adecuados.En su forma de contenedor de aplicaciones en el área empresarial, permite la implementación de una plataforma SOA a través de sus correspondientes especificaciones detalladas de Java basadas en servicios. Las aplicaciones que se ejecutan en los clientes individuales también se pueden administrar a través de la gestión remota utilizando protocolos adecuados.
OSGi se utiliza normalmente en vehículos ( telemática ), dispositivos móviles (teléfonos móviles, PDA ) y en redes domésticas ( puertas de enlace residenciales , enrutadores ), también en las áreas de redes inteligentes , vivienda asistida o gestión de edificios ( gestión de instalaciones ). Además, también se utiliza en soluciones de automatización industrial o en tipos completamente diferentes de sistemas integrados ( aviación , sistemas de estacionamiento, etc.), a menudo junto con soluciones de gestión remota adecuadas.
Una de las aplicaciones más nuevas de OSGi es el entorno de desarrollo integrado (IDE) Eclipse, donde OSGi en forma de Equinox - framework actúa como una plataforma más orientada al escritorio y a la empresa, mientras que el relativamente nuevo paradigma operado por Rich Client (RCP) . Eclipse fue desarrollado originalmente por IBM, miembro de OSGi; ahora Eclipse es de código abierto ( OSS ), y los complementos para Eclipse son (de la versión 3) paquetes OSGi. Eclipse en sí mismo es, por lo tanto, un ejemplo de una aplicación empresarial de OSGi que va más allá de la orientación integrada original; esto también tiene un impacto en el desarrollo posterior de la especificación.
Además, OSGi también se utiliza hoy en día para la modularización de servidores de aplicaciones basados en Java (J2EE), donde sirve como base para marcos más complejos.
A través de diversas actividades en el Proceso de la Comunidad Java (JSR-232, 246 y 248/9), que están a cargo y a. estaban controlados por Nokia y Motorola, OSGi también se abrió camino en los teléfonos móviles como parte de una "Arquitectura de servicio móvil" (MSA). Para ello, se adaptó especialmente a los requisitos de estos entornos y se integró con estándares como OMA-DM . Sin embargo, este desarrollo ha quedado desactualizado en esta forma desde Android y HTML5.
En el área de banda ancha, muchos productos ya combinan un marco OSGi del lado del cliente (posiblemente con un cliente TR-069 integrado ) con un servidor de administración remota OSGi (o un ACS TR-069 convencional) para permitir la configuración y administración remota de equipos de usuario final de gran ancho de banda ( por ejemplo, enrutadores DSL, decodificadores, pasarelas de medidores inteligentes , pasarelas de hogares inteligentes, pasarelas de gestión de energía, etc.) y, por otro lado, la gestión de aplicaciones locales para combinar en una solución integral de extremo a extremo. Como protocolo alternativo para el área telemática, se aplica lo mismo a las soluciones basadas en OMA-DM .
A través de la estandarización como una extensión genérica de Java (JSR-291) por un lado y a través de la cooperación con HGI (Home Gateway Initiative) , se esperan nuevas aplicaciones en el entorno integrado. El sector empresarial, a su vez, se beneficia de un mayor interés por parte de los proveedores de servidores de aplicaciones y el entorno RCP / Eclipse.
El sitio web de OSGi enumera muchos otros ejemplos de aplicaciones.
- La figura muestra la estructura de capas de una arquitectura OSGi típica.
- En este contexto, servidor generalmente significa un sistema integrado clásico, no necesariamente un servidor empresarial o un cliente de escritorio (RCP), aunque OSGi también se está desarrollando en esta dirección, consulte Eclipse y Equinox .
- Spring Dynamic Modules - por Spring Source (hoy: Pivotal), ahora continúa como Gemini Blueprint por Eclipse
- Plano de Géminis - por Eclipse
- JOnAS - de Bull, OW2
- WebSphere Application Server: de IBM, a través de JSR-291, como paquete de características para aplicaciones OSGi
- Licencia gratuita de WebSphere Application Server Community Edition. - de IBM, a través de JSR-291, como paquete de características para aplicaciones OSGi
- BEA WebLogic: de BEA, a través de microService Architecture, ahora se ha hecho cargo de Oracle
- Glassfish - por Sun, luego adquirido por Oracle, ahora Eclipse Foundation
- WildFly : de JBoss o Red Hat
- Eclipse: IDE genérico de la Fundación Eclipse
- Plataforma empresarial Nuxeo: sistema de gestión de contenido
- MHP / OCAP
- UPnP
- InicioPlug
- Red operativa local (LON)
- CORBA
- CEBus
- TR-069
RFC relevantes y estándares Java
- RFC 2608 ( Protocolo de ubicación de servicios )
- Sun Jini (infraestructura de red inteligente de Java)
- Bernd Weber, Patrick Baumgartner, Oliver Braun: OSGi para profesionales: principios, herramientas e instrucciones prácticas en el camino hacia la "pequeña SOA". Hanser Verlag, 2010, ISBN 978-3-446-42094-6 .
- Gerd Wütherich, Nils Hartmann, Bernd Kolb, Matthias Lübken: La plataforma de servicio OSGi: una introducción a Eclipse Equinox. dpunkt.verlag, 2008, ISBN 978-3-89864-457-0 .
- Neil Bartlett: OSGi In Practice (DRAFT ed.) 10 de enero de 2009, ( njbartlett.name , libro disponible gratuitamente, en la etapa de redacción, con ejemplos prácticos, inglés).
- Holly Cummins, Timothy Ward Enterprise Osgi en acción: con ejemplos usando Apache Aries. (Inglés), ISBN 978-1-61729-013-8 .
- Richard S. Hall, Karl Pauls, Stuart McCulloch, David Savage: OSGi en acción: creación de aplicaciones modulares en Java. Manning, Nueva York, abril de 2011, ISBN 1-933988-91-6 .
- Alexandre De Castro Alves, OSGi en profundidad. Manning, Nueva York, diciembre de 2011, ISBN 978-1-935182-17-7 .
RFC relevantes y estándares Java
- Sun JCP JSR-277 (sistema de módulos Java)
- Sun JCP JSR-232 (Gestión operativa móvil - OSGi R4 MEG)
- Sun JCP JSR-246 (API de administración de dispositivos)
- Sun JCP JSR-249 (Arquitectura de servicios móviles para CDC)
- Sun JCP JSR-291 (Compatibilidad con componentes dinámicos para Java SE - OSGi R4.1)
-
Abril de 2018.
-
JSR 291.Consultado el 15 de enero de 2020.
-
Junta y funcionarios - OSGi ™ Alliance.Consultado el 18 de octubre de 2019.
-
OSGi Core Release 7 y Compendium Release 7 ya están disponibles - OSGi ™ Alliance.Consultado el 9 de abril de 2019.