Athento Runtime

18

Click here to load reader

description

Athento Runtime

Transcript of Athento Runtime

Page 1: Athento Runtime

Yerbabuena Software ~ 2013

Athento RuntimeAthento Platform v1.3.3Víctor Sánchez ~ R&DYerbabuena Software

Page 2: Athento Runtime

Yerbabuena Software ~ 2013

Runtime OSGi✔ Basada en NXRuntime.✔ Provee:

✔ 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.

Page 3: Athento Runtime

Yerbabuena Software ~ 2013

Runtime OSGi (2)✔ Ensambla

✔ Athento Core✔ Athento Services

✔ + HLS✔ Tecnologías de presentación✔ Hot-deploy

Page 4: Athento Runtime

Yerbabuena Software ~ 2013

¿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

Page 5: Athento Runtime

Yerbabuena Software ~ 2013

¿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.

Page 6: Athento Runtime

Yerbabuena Software ~ 2013

¿Qué contiene un bundle?✔ Fuentes Java para compilación y test.

✔ src/main/java y src/test/java✔ Recursos para compilación y test.

✔ src/main/resources y src/test/resources✔ Definición del bundle

✔ src/main/resources/META-INF/MANIFEST.MF✔ Definición de componentes del bundle

✔ src/main/resources/OSGI-INF

Page 7: Athento Runtime

Yerbabuena Software ~ 2013

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!

Page 8: Athento Runtime

Yerbabuena Software ~ 2013

Modelo de componentes

Page 9: Athento Runtime

Yerbabuena Software ~ 2013

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 (NO-intrusismo)

✔ Simplemente configurar mediante declaración XML.

Page 10: Athento Runtime

Yerbabuena Software ~ 2013

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.

Page 11: Athento Runtime

Yerbabuena Software ~ 2013

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.

Page 12: Athento Runtime

Yerbabuena Software ~ 2013

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.

Page 13: Athento Runtime

Yerbabuena Software ~ 2013

Puntos de extensión

Page 14: Athento Runtime

Yerbabuena Software ~ 2013

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

Page 15: Athento Runtime

Yerbabuena Software ~ 2013

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.

Page 16: Athento Runtime

Yerbabuena Software ~ 2013

deployment-fragment.xml✔ Describe cómo desplegar el bundle.

✔ Ejecuta comandos batch.<?xml version="1.0"?><fragment version="1">

<extension target="application#MODULE"> <module> <ejb>${bundle.fileName}</ejb> </module> </extension>

<install> <unzip from="${bundle.fileName}" to="/" prefix="web"> <include>web/athento.war/**</include> </unzip> </install>

</fragment>

Page 17: Athento Runtime

Yerbabuena Software ~ 2013

Ejercicio

Mi primer bundle

Page 18: Athento Runtime

Yerbabuena Software ~ 2013

Athento Platform

¡Gracias!