2010-10-31 16 views
15

¿Alguien ha implementado una aplicación corporativa en OSGi y la ha encontrado útil?¿Alguien ha encontrado que OSGi es útil en aplicaciones corporativas?

Puedo ver los beneficios, la modularidad forzada, las buenas definiciones de dependencia, etc. Pero estas parecen ser principalmente mejoras relacionadas con la construcción.

¿Alguien ha encontrado útil reemplazar dinámicamente un módulo existente? Tendemos a dividir nuestra aplicación por proceso y, para ser honestos, no es tan difícil iniciar una nueva instancia de la aplicación con bibliotecas actualizadas. OSGi sería útil para esto?

¿Qué tan confiable es la sustitución de un módulo? Me parece que si tienes un proceso muy ocupado con muchas cosas sucediendo, reemplazar un módulo en ejecución está plagado de peligros.

+0

Buena pregunta +1 – Ramp

Respuesta

9

acabo en blogs acerca de por qué we didn't go with OSGi

En pocas palabras, creo que los fundamentos de la OSGi son sólidos, pero no fue construido para el desarrollo de aplicaciones de masas. Introduce la fricción en el proceso de desarrollo/implementación que ya está lleno de desafíos. Me gustaría ver que las especificaciones de OSGi se centren más en el desarrollador/usuario de OSGi para hacerlo invisible al proceso de desarrollo. También me horroriza que la JVM aún no tenga un estándar de módulo transparente.

+1

No sé si estoy totalmente de acuerdo con todo lo que dices, pero de todos modos sacas algunos buenos puntos. (+1) – javamonkey79

7

La mayoría de nuestras aplicaciones son aplicaciones web.

Tenemos un cliente grueso OSGi que reúne información biométrica. Fotografías y huellas dactilares a través del escaneo de tarjetas de huellas dactilares, actualmente.

La ventaja de OSGi para nosotros es que podemos actualizar los plug-ins desde un sitio web central, en lugar de usar un proceso de desinstalación/instalación. Nuestro cliente grueso estará en más de 100 ubicaciones en todo Estados Unidos, por lo que esto fue importante para nosotros.

+0

¿Puede actualizar el cliente mientras se está ejecutando y más al grano, ¿verdad? – Fortyrunner

+0

El cliente debe estar ejecutándose para realizar la actualización. El proceso de actualización es parte del cliente. Habiendo dicho eso, aconsejamos no hacer nada más con el cliente durante una actualización. Nuestro cliente es un RCP de Eclipse, y hay algunos cambios que se pueden realizar "sobre la marcha" y algunos cambios que no se pueden realizar. Para nuestra aplicación, no valía la pena averiguar qué cambios eran cuáles. –

4

Trabajo en un entorno de telecomunicaciones. Algo como OSGi nos será muy útil. Implementamos aplicaciones para clientes que no pueden desconectarse sin tener un impacto en los ingresos. Procesan miles de llamadas por segundo. En este momento, tienen que hacer las actualizaciones en su ventana de mantenimiento para tomar nuevas correcciones o actualizaciones.

Si podemos entregar arreglos y mejoras como una implementación en caliente, será de gran beneficio. Pero, por supuesto, hay un factor de riesgo y esfuerzos de prueba adicionales con la prueba de tráfico simulado antes de que podamos hacerlo.

OSGi no es solo para actualizaciones dinámicas, es bueno para cosas como el control de versiones para asegurar que la versión correcta se está recogiendo en un entorno complejo.

Estamos empezando a investigar OSGi, publicaré actualizaciones si encuentro algo más interesante.


+0

Este es el tipo de caso de uso que imaginé. Me interesaría saber si alguien realmente lo está usando en una de las situaciones y qué tan fácil es para la administración. – Fortyrunner

3

Lo estamos utilizando en una gran empresa de telecomunicaciones. Lo tenemos en producción durante 2 años y seguimos agregando paquetes ahora que tenemos alrededor de 110 paquetes.

Operación chicos están encantados por el buen control que les da a ellos: pueden comenzar a detener las funcionalidades individuales y su control. Teóricamente, también podríamos implementar una nueva versión en producción, pero en realidad usamos esa función solo cuando hacemos pruebas y preprocesamos.

Nuestra amplia arquitectura de cepillo se basa en éste: http://servicemix.apache.org/home.html

Nuestro principal problema es siempre tratar de usar marco de Java estándar dentro de OSGi. El segundo problema es la gestión de importación/exportación del paquete en sí. Estamos usando el plugin maven.

En general, estamos contentos con esta opción, pero debes considerar 2 cosas: 1. ¿Estás dispuesto a luchar con cualquier marco de Java que quieras agregar? 2. ¿Eres lo suficientemente disciplinado como para no estropear tu dependencia?

Cuestiones relacionadas