Este documento describe la plataforma Athento desarrollada por Yerbabuena Software. Athento se basa en la tecnología OSGi y proporciona un modelo de componentes, servicios y capacidades de despliegue. El documento explica conceptos clave como bundles, puntos de extensión, dependencias y el archivo MANIFEST.MF para registrar componentes.
2. ✔
✔
Basada en NXRuntime.
Provee:
Runtime OSGi
Soporte OSGI nativo.
✔ Modelo de componentes basado en OSGi.
✔ Modelo de Servicio.
✔ Sistema de puntos de extensión.
✔ Modelo de despliegue.
✔ Gestión de dependencias.
✔
Yerbabuena Software ~ 2013
4. ¿Qué es OSGI?
OSGI: Open Services Gateway Initiative
✔ http://www.osgi.org
✔ Plataforma de servicios modulares basados en
Java.
✔ Características en Athento:
✔
✔
✔
✔
Modelo de componentes basado en bundles
Registro de servicios
Gestión de dependencias entre componentes
Yerbabuena Software ~ 2013
5. ¿Qué es un bundle?
Todos los módulos de Athento son bundles.
✔ Tienen un único ID.
✔ Declara sus dependencias
✔
✔
✔
Un bundle no se activa hasta que se resuelvan sus
dependencias.
Declara un conjunto de componentes.
Yerbabuena Software ~ 2013
6. ¿Qué contiene un bundle?
✔
Fuentes Java para compilación y test.
✔
✔
Recursos para compilación y test.
✔
✔
src/main/resources y src/test/resources
Definición del bundle
✔
✔
src/main/java y src/test/java
src/main/resources/META-INF/MANIFEST.MF
Definición de componentes del bundle
✔
src/main/resources/OSGI-INF
Yerbabuena Software ~ 2013
7. Modelo de componentes
✔ Los componentes son declarados en
un bundle con descriptores XML.
✔ Cada componente de Athento puede:
✔ Declarar sus dependencias.
✔ Definir sus puntos de extensión.
✔ Contribuir a puntos de extensión
existentes.
✔ Definir servicios.
Nota: no olvidar estos 4 puntos!
Yerbabuena Software ~ 2013
9. Tecnologías a destacar: extensible
Creación de puntos de extensión en
cualquier componente.
✔
Añadir nuevas funcionalidades justo cuando
se necesite.
✔ No necesitamos tocar código fuente (NOintrusismo)
✔ Simplemente configurar mediante declaración
XML.
✔
Yerbabuena Software ~ 2013
10. Tecnologías a destacar: flexible y ágil
Sólo desplegamos los servicios
necesitados.
✔ Desplegable en múltiples JVMs.
✔ Soporta clustering.
✔ Transparencia en despliegue
cliente/servidor.
✔ Uso de múltiples opciones de despliegue.
✔
Yerbabuena Software ~ 2013
11. Componentes en Athento
Definidos en descriptores XML.
✔ Declarados en el archivo
META-INF/MANIFEST.MF del
bundle.
✔ Provee:
✔ Uno o más servicios.
✔ Uno o más puntos de extensión.
✔
Yerbabuena Software ~ 2013
12. Puntos de extensión
✔ Contribuir configuración de puntos
de extensión existentes.
✔
✔
Contribuir en código y
comportamiento de puntos de
extensión existentes.
Extender otros componentes y
personalizar nuestro servicio.
Yerbabuena Software ~ 2013
14. MANIFEST.MF
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Líneas requeridas
Manifest-Version: 1.0
Bundle-ManifestVersion: 1
Bundle-Version: 1.0.0
Específicas en nuestro bundle
Bundle-Name: nombre del bundle
Bundle-SymbolicName: nombre único de
representación del bundle. Pon siempre al final
;singleton:=true
Bundle-Vendor: nombre de la compañía
Provide-Package: paquetes que provee el bundle.
Dependencies
✔
Require-Bundle: bundles requeridos por este bundle
Yerbabuena Software ~ 2013
15. MANIFEST.MF
✔
Registro de componentes:
✔
✔
Nuxeo-Component: añadimos todos los componentes
que queremos desplegar.
Buenas prácticas:
✔
✔
✔
Cuidado con los espacios y las comas.
Asegúrate de que el SymbolicName sea único:
✔ Una buena elección es el nombre del paquete que provee.
✔ No olvidar añadir ;singleton:=true al final.
Añade al final del archivo una nueva línea en blanco.
Yerbabuena Software ~ 2013