Translate
domingo, 16 de julio de 2017
El patrón de arquitectura microkernel
Leyendo el libro, "Software Architecture Patterns" les dejo este pequeño resumen:
El patrón de arquitectura microkernel (a veces denominado patrón de arquitectura de plug-in) es un patrón natural para implementar aplicaciones basadas en productos. Una aplicación basada en producto es una que está empaquetada y está disponible para su descarga en versiones como un producto de terceros típico. Sin embargo, muchas compañías también desarrollan y liberan sus aplicaciones empresariales internas, como productos de software, con versiones, notas de lanzamiento y características conectables. Estos son también un ajuste natural para este patrón. El patrón de arquitectura de microkernel le permite agregar funciones de aplicación adicionales como complementos a la aplicación principal, proporcionando extensibilidad, así como separación y aislamiento de características.
Esta arquitectura esta compuesta por 2 componentes, el sistema core y los modulos plug-in. El core contiene la minima funcionalidad y los módulos plug-in son componentes autónomos e independientes que contienen procesamiento especializado, características adicionales y código personalizado que está diseñado para mejorar o ampliar el sistema central para producir capacidades empresariales adicionales. Generalmente, los módulos plug-in deben ser independientes de otros módulos plug-in, pero ciertamente puede diseñar plug-ins que requieran que otros plug-ins estén presentes. De cualquier manera, es importante mantener la comunicación entre plug-ins a un mínimo para evitar problemas de dependencia.
Cuando leemos esto lo primero que se nos viene a la mente es OSGi, porque este estándar nació para darle soporte a este tipo de arquitecturas y el ejemplo más significativo de esta arquitectura sea eclipse.
Dejo link: https://www.oreilly.com/ideas/software-architecture-patterns/page/4/microkernel-architecture
domingo, 9 de septiembre de 2012
Apache Wicket 6.0
La verdad que me parece excelente la noticia y me parecen cambios esperados por la comunidad. Nunca me gusto el manejo de ajax de wiket, me parece poco flexible; con esta cambio se gano un seguidor más.
Dejo links:
http://wicket.apache.org/
http://wicket.apache.org/2012/09/05/wicket-6.0.0-released.html
jueves, 8 de marzo de 2012
Apache ServiceMix
Apache ServiceMix es un flexible ESB open source, que integra funcionalidad de diversos productos de Apache como Apache ActiveMQ, Camel, CXF, ODE y Karaf. Provee el funcionamiento de un ESB integrado a una herramienta OSGI.
Las características de Apache ServiceMix son:
- Mensajería segura gracias a Apache ActiveMQ
- Mensajería, enrrutamiento y patrones de integración para Empresas con Apache Camel
- ServiceMix NMR incluye eventos ricos, mensajería y auditoría lo que permite una integración con bajo acoplamiento.
- Completo WS-BPEL con Apache ODE.
- Basado en OSGI con la utilización Apache Karaf.
Además es licencia Apache 2.
Dejo Link:
http://servicemix.apache.org/
martes, 23 de noviembre de 2010
Spring Dynamic Modules for OSGi(tm) Service Platforms
lunes, 22 de noviembre de 2010
Apache Aries
El proyecto Aries ofrecerá un conjunto de componentes enchufables (plugins) Java que permite a una aplicación empresarial utilizar estos plugins usando modelo de programación OSGi . Esto incluye la implementación y extensión de las especificaciones definidas por OSGi Alliance Enterprise Expert Group (EEG)
Apache Aries nos permitirá consumir por medio de OSGI módulos que nos brinden la persistencia JPA por ejemplo. Pluging que le den valor agregado a la aplicaciones o frameworks que nos ayuden a desarrollar podrán ser utilizados usando OSGI.
OSGi es una tecnología de modularidad madura de Java, que es muy usado en muchos ambientes, pero, en el ámbito empresarial, ha sido tradicionalmente más explotados por la parte interna, infraestructura runtime. Esto es principalmente debido a la falta de un claro modelo de programación empresarial OSGi, y la falta de aplicación e implementación de OSGi para la tecnología JEE.
Especificaciones OSGi son dictadas y mantenidas por la OSGi Alliance, que reconoce este estado de cosas hace varios años y estableció un grupo de expertos en aplicaciones enterprice dentro de la Alianza para centrarse específicamente en las necesidades de aplicaciones empresariales. El objetivo de este proyecto es entregar implementaciones de código abierto de estas tecnologías centradas en la aplicación para permitir el desarrollo de componentes, en beneficio de la modularidad de OSGi en combinación con modelos de programación basados en estándares, que pueden ser desplegados en tiempo de ejecución.
Es un objetivo del proyecto Aries proporcionar un hogar natural para las implementaciones de código abierto de las actuales y futuras especificaciones OSGi EEG, incluyendo la oportunidad para el desarrollo colaborativo de pruebas de cumplimiento, y un entorno para demostrar la composición de estas tecnologías y explorar áreas EEG donde carecen de cobertura de las especificaciones. Otro objetivo de este proyecto es aprovechar la experiencia adquirida a informar a las contribuciones a OSGi requisitos EEG y documentos de especificaciones.
Apache Aries esta en la incubadora esperemos que pronto salga de ahí y nos sorprenda con nuevos módulos para nuestra aplicación.
OSGI y SCA
jueves, 18 de noviembre de 2010
Manual de OSGI
miércoles, 5 de mayo de 2010
Manual de Osgi
http://www.javahispano.org/contenidos/archivo/14922/OSGI_Roberto_Montero.pdf
viernes, 12 de febrero de 2010
Spring y OSGI, algo más?
- Spring-DM - http://www.springframework.org/osgi
- Spring - Osgi http://www.springframework.org/osgi/specification
- OSGi™ - http://www.osgi.org/Main/HomePage
- Eclipse IDE – http://eclipse.org
- Maven - http://maven.apache.org/
- Eclipse Equinox - http://www.eclipse.org/equinox/
- Ejemplos: http://www.springframework.org/osgi/sim ... ice-sample , test que prueba la integracion spring + osgi
domingo, 9 de agosto de 2009
¿Qué es OSGi?
Se preguntan ¿Qué es OSGi? y supongo que todos hemos usado eclipse alguna vez y con eclipse, equinox. Equinox es un contenedor OSGi implementado por eclipse.
Equinox, es el contenedor en donde viven los plugins, donde pueden convivir entre ellos y comunicarse con el core de eclipse.
Bueno en pocas palabras eso es OSGI, OSGi proporciona funciones más parecidas a un contenedor web, pero es más versatil. Un contenedor web (Tomcat) te permite cargar varias aplicaciones que trabajan de manera independiente. El aislamiento de las aplicaciones se logra a través de diferentes "class loaders" (cargadores de clases?). De esta forma, una aplicación queda aislada de los efectos de otras -ya que las clases son cargadas en memoria de manera independiente-. OSGi proporciona dicha función, pero no pone restricciones en las aplicaciones (no tienen que ser servlets o aplicaciones web). OSGi es más flexible. OSGi permite que aplicaciones cooperen con otras a través de interfaces declaradas en archivos de configuración. Así, por ejemplo, puedes cargar dos aplicaciones que comparten las mismas componentes comunes, sin que las clases se carguen independientemente en memoria pero sin que una afecte a la otra.
En otras palabras, OSGi te permite crear aplicaciones a partir de componentes. Estos componentes son cargados en distintos class loaders. Dos ( o mas componentes) pueden interactuar entre si únicamente a través de interfaces declaradas explícitamente en archivos de configuración (en xml).
OSGi te permite el cargar o descargar componentes. O cargar diferentes versiones de dos componentes y reemplazar los componentes existentes de manera dinámica. (Tal como Tomcat te permite el cargar y descargar una aplicación web, pero con mucha mayor flexibilidad)
OSGi es utilizado en teléfonos celulares y PDA; me parece que fue esta industria la que creo el concepto y las primeras especificaciones. El aislamiento proporcionado por OSGi permite que la falla en una aplicación o componente no afecte a las aplicaciones que no los usan.
Si has desarrollado plugins para Eclipse entonces ya te abras dado cuenta de que aporta OSGi. Netbeans usa un framework con funcionalidad similar, pero no es OSGi. Mientras que Eclipse esta basado en OSGi (por lo menos el kernel de Eclipse). Cabe mencionar que OSGi no tiene ninguna relación con desarrollo de IDEs o GUIs, pero que el concepto utilizado por Eclipse y/o Netbeans para cargar los plugins es similar a la funcionalidad proporcionada por OSGi.
OSGi también proporciona especificaciones para seguridad. (Por ejemplo, para cargar únicamente componentes que han sido firmados y verificados en su integridad).
Sin embargo, yo no he notado que se generalice el uso de OSGi. (Basta con buscar empleo con la palabra OSGi como termino de búsqueda para darse cuenta que aun no se usa mas que en ciertos nichos o en en algunos start-up).
OSGi es solo una especificación. Hay diferentes implementaciones. Wikipedia puede darte más información al respecto.
Existen varios frameworks OSGI como equinox, o apache felix. Ahí les dejo los links.