SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
High-Level Services
Athento Platform v.1.3.3
Víctor Sánchez ~ R&D
Yerbabuena Software

Yerbabuena Software ~ 2013
¿Qué son?

Los high-level services de Athento son
servicios de la plataforma capaces de ser
accedidos mediante un conector de
entrada.
✔ Se definen en la capa de HLS que conecta
la capa de Core Service con los conectores
de entrada mediante el servicio de
interoperabilidad.
✔

Yerbabuena Software ~ 2013
Document Manager
✔ Workflow: JBPM5 ~ Drools
✔ Reporting
✔ Monitoring
✔ Export and import
✔ Sign
✔ Popmail
✔ Batch
✔ Notifier
✔ ENI
✔ Audit
✔ Search
✔ Publication ...
✔

●

Yerbabuena Software ~ 2013

Ejemplos
Servicio: ¿Cómo crear uno?
Para crear un servicio, siempre un nuevo
componente.
✔

<implementation class="org.yerbabuena.athento.MyServiceImplementation" />
<service>
<provide interface="org.yerbabuena.athento.MyServiceInterface" />
</service>
<extension-point name="anExtensionPoint">
<object class="org.yerbabuena.athento.YourObjectDescriptor" />
</extension-point>

Yerbabuena Software ~ 2013
¿Cómo acceder al servicio?
✔

Sólo necesitamos llamar al método:

Framework.getService(MyServiceInterface.class)

Si el servicio esta correctamente definido, se
devolverá una nueva instancia.
✔ No es necesario hacer ningún casting,
obtendremos el objeto MyServiceInterface.
✔

Yerbabuena Software ~ 2013
Servicios y puntos de extensión
La implementación de nuestro componente debe
extender de la clase DefaultComponent e
implementar la interfaz indicada en el XML definido.
✔ DefaultComponent provee de:
✔ Un método registerContribution(...)
✔ Un método activate(...)
✔

Yerbabuena Software ~ 2013
Puntos de extensión

Sabemos que para contribuir siempre es
necesario un EP.
✔ Cada contribución será mapeada con
descriptores de objeto.
✔ El mapeo será realizado con XMap.
✔

✔

Herramienta para mapear XML a objeto Java. (by Nuxeo)

El método registerContribution(...) será
llamado con el descriptor del punto de extensión.
✔

Yerbabuena Software ~ 2013
✔

Archivo XML

<persona nombre=”Juan”
apellidos=”Español”>
<edad>31</edad>
</persona>

Cómo mapea XMap
✔

Clase Java

@XObject("persona")
public class PersonaDescriptor {
@XNode("@nombre")
protected String nombre;
@XNode("@apellidos")
private String apellidos;
@XNode("edad")
private int edad;
// getters and setters
...
}

Yerbabuena Software ~ 2013
Registrando contribuciones
Cada vez que OSGi Runtime encuentra una
contribución de un EP, llama al método
registerContribution del servicio que lo
contiene.
✔ En el método, obtenemos el parámetro que será el
objeto java descriptor del XML que describe el EP.
✔ Podemos gestionarlo a nuestro gusto.
✔

Yerbabuena Software ~ 2013
Haciéndolo High-Level Service

Para hacer nuestro servicio high-level service de
Athento Manager debemos anotar nuestra interfaz de
servicio con la anotación @Service.
✔

Como hablamos al principio podemos restringir el
acceso a los servicios de Athento Manager a llamadas
en modo GET y/o POST. Para ello, usaremos las
anotaciones @Get ó @Post a nivel de método de la
implementación del servicio.
✔

Yerbabuena Software ~ 2013
@Service

High-Level Service: ejemplo

public interface DocumentManager {
PlatformFolder createFolder(String name, String
destinyPath) throws DocumentException;
DocumentRef copyDocument(String docId, String
destinyPath) throws DocumentException;
// More methods...
}

Yerbabuena Software ~ 2013
High-Level Service: ejemplo (2)

@AllowedAll

@AuthorizationRequired
public class DocumentManagerImpl extends
AthentoHighLevelService
implements DocumentManager {
@Get
PlatformFolder createFolder(String name, String
destinyPath) throws DocumentException {...}
@Post
DocumentRef copyDocument(String docId, String
destinyPath) throws DocumentException {..}
// More methods...
Yerbabuena Software ~ 2013
}
Anotando parámetros
Cuando queremos asociar el nombre a un parámetro
de un método de un servicio para poder asociarlo en
una llamada a conector de entrada usaremos la
anotación @ParamName.
✔

@Get
@Post
PlatformFolder createFolder(
@ParamName(“nombre”) String name,
@ParamName(“destino”) String destinyPath)
throws DocumentException;

Yerbabuena Software ~ 2013
Seguridad y acceso
Es posible aplicar control de acceso mediante
conectores a los high-level services de Athento
Manager:
✔ Podemos permitir acceso.
✔

<services allowedAll="true">
<allowed>org.yerbabuena.athento.manager.HighLevelServie</allowed>
</services>

✔

Podemos denegar acceso.

<services allowedAll="false">
<denied>org.yerbabuena.athento.manager.HighLevelServie</denied>
</services>

Yerbabuena Software ~ 2013
Representaciones
Las representaciones son utilizadas para definir
elementos que puedan usarse como elemento
interoperable en un HLS.
✔ Una representación podrá visualizarse en XML,
JSON, JavaObject, etc. (o cualquier mimetype definid
por el usuario).
✔ Toda representación debe implementar la interfaz
Representable, para visualizarse como elemento
en una operación resultado, o bien,
RepresentationAdapter, para manejarse como
argumento a la entrada de una funcionalidad de un
HLS.
✔

Yerbabuena Software ~ 2013
Representaciones (2)
✔

Ejemplos.

✔

Documento

public class PlatformDocument extends PlatformObject implements SingleDocument,
Representable, Serializable
@XmlAccessorType(value = XmlAccessType.PROPERTY)
@XmlType(name = "documentRepresentation")
@XmlRootElement(name = "document")
public class DocumentRepresentation extends CmisObjectRepresentation implements
RepresentationAdapter, Serializable {

Yerbabuena Software ~ 2013
Ejercicio

Creando un High-level service.

Yerbabuena Software ~ 2013
Athento Platform

¡Gracias!

Yerbabuena Software ~ 2013

Más contenido relacionado

Similar a High Level Services of Athento Platform

Terminal server 2008 iberico final
Terminal server 2008 iberico finalTerminal server 2008 iberico final
Terminal server 2008 iberico final
Carlos Iberico
 
Terminal server&services -exposición
Terminal server&services -exposiciónTerminal server&services -exposición
Terminal server&services -exposición
Alberto Pretto
 
Terminal Server
Terminal ServerTerminal Server
Terminal Server
cesartg65
 
Core Services
Core ServicesCore Services
Core Services
Athento
 
Programacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorProgramacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidor
Alejandro Hernandez
 

Similar a High Level Services of Athento Platform (20)

Terminal Server 2008 R2 por Fco. Javier Acero Lucena
Terminal Server 2008 R2  por Fco. Javier Acero LucenaTerminal Server 2008 R2  por Fco. Javier Acero Lucena
Terminal Server 2008 R2 por Fco. Javier Acero Lucena
 
Terminal server 2008 iberico final
Terminal server 2008 iberico finalTerminal server 2008 iberico final
Terminal server 2008 iberico final
 
Terminal server&services -exposición
Terminal server&services -exposiciónTerminal server&services -exposición
Terminal server&services -exposición
 
Terminal Server
Terminal ServerTerminal Server
Terminal Server
 
Presentación Tecnológica del ERP-I2E
Presentación Tecnológica del ERP-I2EPresentación Tecnológica del ERP-I2E
Presentación Tecnológica del ERP-I2E
 
terminal server
terminal serverterminal server
terminal server
 
Terminal services
Terminal servicesTerminal services
Terminal services
 
Terminal Services_Onofre
Terminal Services_OnofreTerminal Services_Onofre
Terminal Services_Onofre
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Terminal services
Terminal servicesTerminal services
Terminal services
 
Servicios web
Servicios webServicios web
Servicios web
 
Core Services
Core ServicesCore Services
Core Services
 
Presentacion remobjects
Presentacion remobjectsPresentacion remobjects
Presentacion remobjects
 
Hyperv Basico Integration Services
Hyperv Basico   Integration ServicesHyperv Basico   Integration Services
Hyperv Basico Integration Services
 
Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2Building Ria Applications With Silverlight 2
Building Ria Applications With Silverlight 2
 
Programacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidorProgramacion web c5 programacion del lado servidor
Programacion web c5 programacion del lado servidor
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
TERNIMAL SERVER
TERNIMAL SERVERTERNIMAL SERVER
TERNIMAL SERVER
 
Servicios web java, php, perl, google
Servicios web java, php, perl, googleServicios web java, php, perl, google
Servicios web java, php, perl, google
 
JUG DAY FLEX / JEE
JUG DAY FLEX / JEEJUG DAY FLEX / JEE
JUG DAY FLEX / JEE
 

Más de Athento

Brand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con AthentoBrand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con Athento
Athento
 
2.platform
2.platform2.platform
2.platform
Athento
 

Más de Athento (20)

Workflows en Athento
Workflows en AthentoWorkflows en Athento
Workflows en Athento
 
Prevencion fraude con Captura de Documentos
Prevencion fraude con Captura de DocumentosPrevencion fraude con Captura de Documentos
Prevencion fraude con Captura de Documentos
 
Webinar: La Seguridad de Mis Documentos en la Nube
Webinar:  La Seguridad de Mis Documentos en la NubeWebinar:  La Seguridad de Mis Documentos en la Nube
Webinar: La Seguridad de Mis Documentos en la Nube
 
Gestión de Documentación de Proyectos en SaaS
Gestión de Documentación de Proyectos en SaaS Gestión de Documentación de Proyectos en SaaS
Gestión de Documentación de Proyectos en SaaS
 
Gestion de Procedimientos de Compra con un Gestor Documental
Gestion de Procedimientos de Compra con un Gestor DocumentalGestion de Procedimientos de Compra con un Gestor Documental
Gestion de Procedimientos de Compra con un Gestor Documental
 
Cubriendo el ciclo de vida de facturas con Athento
Cubriendo el ciclo de vida de facturas con AthentoCubriendo el ciclo de vida de facturas con Athento
Cubriendo el ciclo de vida de facturas con Athento
 
File Sharing Vs Gestión Documental
File Sharing Vs Gestión DocumentalFile Sharing Vs Gestión Documental
File Sharing Vs Gestión Documental
 
¿Cómo acortar mi proyecto de digitalización y sus costes en un 30%?
¿Cómo acortar mi proyecto de digitalización y sus costes en un 30%?¿Cómo acortar mi proyecto de digitalización y sus costes en un 30%?
¿Cómo acortar mi proyecto de digitalización y sus costes en un 30%?
 
Problemas frecuentes de la gestión de documentos digitalizados y cómo resolve...
Problemas frecuentes de la gestión de documentos digitalizados y cómo resolve...Problemas frecuentes de la gestión de documentos digitalizados y cómo resolve...
Problemas frecuentes de la gestión de documentos digitalizados y cómo resolve...
 
Gestion Documental Cloud
Gestion Documental CloudGestion Documental Cloud
Gestion Documental Cloud
 
Gestión Documental en empresas de Ingeniería
Gestión Documental en empresas de IngenieríaGestión Documental en empresas de Ingeniería
Gestión Documental en empresas de Ingeniería
 
Digitalizacion y Oficina Cero Papel
Digitalizacion y Oficina Cero PapelDigitalizacion y Oficina Cero Papel
Digitalizacion y Oficina Cero Papel
 
Building your Brand Center with Athento -Smart Document Management-
Building your Brand Center with Athento -Smart Document Management- Building your Brand Center with Athento -Smart Document Management-
Building your Brand Center with Athento -Smart Document Management-
 
Brand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con AthentoBrand Asset Management y Gestión Documental con Athento
Brand Asset Management y Gestión Documental con Athento
 
Problemas Sin Resolver Del Software De Gestión Documental
Problemas Sin Resolver Del Software De Gestión DocumentalProblemas Sin Resolver Del Software De Gestión Documental
Problemas Sin Resolver Del Software De Gestión Documental
 
Athento Gestiona Documentos Del Personal De Vuelo De Volotea
Athento Gestiona Documentos Del Personal De Vuelo De Volotea Athento Gestiona Documentos Del Personal De Vuelo De Volotea
Athento Gestiona Documentos Del Personal De Vuelo De Volotea
 
JSF y Seam
JSF y SeamJSF y Seam
JSF y Seam
 
Athento Runtime
Athento RuntimeAthento Runtime
Athento Runtime
 
2.platform
2.platform2.platform
2.platform
 
Introducción a Athento Platform
Introducción a Athento PlatformIntroducción a Athento Platform
Introducción a Athento Platform
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

High Level Services of Athento Platform

  • 1. High-Level Services Athento Platform v.1.3.3 Víctor Sánchez ~ R&D Yerbabuena Software Yerbabuena Software ~ 2013
  • 2. ¿Qué son? Los high-level services de Athento son servicios de la plataforma capaces de ser accedidos mediante un conector de entrada. ✔ Se definen en la capa de HLS que conecta la capa de Core Service con los conectores de entrada mediante el servicio de interoperabilidad. ✔ Yerbabuena Software ~ 2013
  • 3. Document Manager ✔ Workflow: JBPM5 ~ Drools ✔ Reporting ✔ Monitoring ✔ Export and import ✔ Sign ✔ Popmail ✔ Batch ✔ Notifier ✔ ENI ✔ Audit ✔ Search ✔ Publication ... ✔ ● Yerbabuena Software ~ 2013 Ejemplos
  • 4. Servicio: ¿Cómo crear uno? Para crear un servicio, siempre un nuevo componente. ✔ <implementation class="org.yerbabuena.athento.MyServiceImplementation" /> <service> <provide interface="org.yerbabuena.athento.MyServiceInterface" /> </service> <extension-point name="anExtensionPoint"> <object class="org.yerbabuena.athento.YourObjectDescriptor" /> </extension-point> Yerbabuena Software ~ 2013
  • 5. ¿Cómo acceder al servicio? ✔ Sólo necesitamos llamar al método: Framework.getService(MyServiceInterface.class) Si el servicio esta correctamente definido, se devolverá una nueva instancia. ✔ No es necesario hacer ningún casting, obtendremos el objeto MyServiceInterface. ✔ Yerbabuena Software ~ 2013
  • 6. Servicios y puntos de extensión La implementación de nuestro componente debe extender de la clase DefaultComponent e implementar la interfaz indicada en el XML definido. ✔ DefaultComponent provee de: ✔ Un método registerContribution(...) ✔ Un método activate(...) ✔ Yerbabuena Software ~ 2013
  • 7. Puntos de extensión Sabemos que para contribuir siempre es necesario un EP. ✔ Cada contribución será mapeada con descriptores de objeto. ✔ El mapeo será realizado con XMap. ✔ ✔ Herramienta para mapear XML a objeto Java. (by Nuxeo) El método registerContribution(...) será llamado con el descriptor del punto de extensión. ✔ Yerbabuena Software ~ 2013
  • 8. ✔ Archivo XML <persona nombre=”Juan” apellidos=”Español”> <edad>31</edad> </persona> Cómo mapea XMap ✔ Clase Java @XObject("persona") public class PersonaDescriptor { @XNode("@nombre") protected String nombre; @XNode("@apellidos") private String apellidos; @XNode("edad") private int edad; // getters and setters ... } Yerbabuena Software ~ 2013
  • 9. Registrando contribuciones Cada vez que OSGi Runtime encuentra una contribución de un EP, llama al método registerContribution del servicio que lo contiene. ✔ En el método, obtenemos el parámetro que será el objeto java descriptor del XML que describe el EP. ✔ Podemos gestionarlo a nuestro gusto. ✔ Yerbabuena Software ~ 2013
  • 10. Haciéndolo High-Level Service Para hacer nuestro servicio high-level service de Athento Manager debemos anotar nuestra interfaz de servicio con la anotación @Service. ✔ Como hablamos al principio podemos restringir el acceso a los servicios de Athento Manager a llamadas en modo GET y/o POST. Para ello, usaremos las anotaciones @Get ó @Post a nivel de método de la implementación del servicio. ✔ Yerbabuena Software ~ 2013
  • 11. @Service High-Level Service: ejemplo public interface DocumentManager { PlatformFolder createFolder(String name, String destinyPath) throws DocumentException; DocumentRef copyDocument(String docId, String destinyPath) throws DocumentException; // More methods... } Yerbabuena Software ~ 2013
  • 12. High-Level Service: ejemplo (2) @AllowedAll @AuthorizationRequired public class DocumentManagerImpl extends AthentoHighLevelService implements DocumentManager { @Get PlatformFolder createFolder(String name, String destinyPath) throws DocumentException {...} @Post DocumentRef copyDocument(String docId, String destinyPath) throws DocumentException {..} // More methods... Yerbabuena Software ~ 2013 }
  • 13. Anotando parámetros Cuando queremos asociar el nombre a un parámetro de un método de un servicio para poder asociarlo en una llamada a conector de entrada usaremos la anotación @ParamName. ✔ @Get @Post PlatformFolder createFolder( @ParamName(“nombre”) String name, @ParamName(“destino”) String destinyPath) throws DocumentException; Yerbabuena Software ~ 2013
  • 14. Seguridad y acceso Es posible aplicar control de acceso mediante conectores a los high-level services de Athento Manager: ✔ Podemos permitir acceso. ✔ <services allowedAll="true"> <allowed>org.yerbabuena.athento.manager.HighLevelServie</allowed> </services> ✔ Podemos denegar acceso. <services allowedAll="false"> <denied>org.yerbabuena.athento.manager.HighLevelServie</denied> </services> Yerbabuena Software ~ 2013
  • 15. Representaciones Las representaciones son utilizadas para definir elementos que puedan usarse como elemento interoperable en un HLS. ✔ Una representación podrá visualizarse en XML, JSON, JavaObject, etc. (o cualquier mimetype definid por el usuario). ✔ Toda representación debe implementar la interfaz Representable, para visualizarse como elemento en una operación resultado, o bien, RepresentationAdapter, para manejarse como argumento a la entrada de una funcionalidad de un HLS. ✔ Yerbabuena Software ~ 2013
  • 16. Representaciones (2) ✔ Ejemplos. ✔ Documento public class PlatformDocument extends PlatformObject implements SingleDocument, Representable, Serializable @XmlAccessorType(value = XmlAccessType.PROPERTY) @XmlType(name = "documentRepresentation") @XmlRootElement(name = "document") public class DocumentRepresentation extends CmisObjectRepresentation implements RepresentationAdapter, Serializable { Yerbabuena Software ~ 2013
  • 17. Ejercicio Creando un High-level service. Yerbabuena Software ~ 2013