Está en la página 1de 50

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

Tesina de Grado: Romn Rolli Director: Lic. Patricia Bazn

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Introduccin
Anlisis de la evolucin de las principales tecnologas destinadas a la implementacin de arquitecturas orientadas a servicios. Desarrollo de los conceptos relacionados al modelo SOA, los Servicios Web como herramienta de implementacin y el lenguaje BPEL para la gestin de los procesos de negocios y orquestacin de los Servicios Web involucrados en el proceso. Aplicacin prctica en un caso de estudio para un Sistema de Ventanilla nica.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Introduccin
Motivacin

La creciente necesidad de las organizaciones por establecer la interaccin entre sus sistemas legacy y aprovechar los activos de software existentes concebidos como servicios.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Evolucin de las arquitecturas distribuidas


En que consiste?

Orientacin a un diseo cada vez ms dbilmente acoplado a la arquitectura subyacente. Distribucin de las tareas a realizar entre varios computadores. Lograr independencia de la plataforma. Alcanzar un menor costo de desarrollo. Soluciones alcanzables por algunos paradigmas: CORBA / DCOM RMI RPC

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Arquitectura Orientada a Servicios


SOA es una metodologa cuyo propsito es establecer la composicin de servicios de software, entre empresas, PC, dispositivos mviles, etc., con el objetivo de lograr la reusabilidad de las aplicaciones existentes. Reusalibilidad. Modularidad.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Arquitectura Orientada a Servicios


Beneficios de SOA

Reutilizacin de servicios en mltiples aplicaciones. Creacin de nuevos servicios de manera rpida y sencilla a partir de servicios existentes. Abstraccin del entorno de ejecucin, concentrndonos en el desarrollo del servicio. Divisin de tareas, asignando responsabilidades particulares a cada grupo de desarrollo.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Arquitectura Orientada a Servicios


Modelo de desarrollo
El desarrollo de un modelo SOA respetar un ciclo de vida en el cual algunos de los aspectos de control sern: Determinar como el proyecto SOA ser puesto en produccin, controlado y consumido desde otras aplicaciones. Desarrollar e implementar las prcticas correctas para alcanzar la interoperabilidad. Asegurar el crecimiento del proyecto y promover la reutilizacin de servicios. Definir la granularidad correcta de los servicios.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

Romn Rolli

Arquitectura Orientada a Servicios


Modelo Operacional
SOA sigue un paradigma de bsqueda, enlace y ejecucin. Quienes proveen servicios los publican en registros pblicos. Los registros pblicos son utilizados por quienes buscan algn servicio. El registro le devolver a quien consulte por un servicio su interfaz y ubicacin.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Los Servicios Web son bsicamente componentes de software que pueden ser accedidos a travs de Internet por protocolos que forman parte de un estndar creado para tal fin. Los mismos, deben ser lo suficientemente flexibles como para hacer de forma casi transparente el cambio de servidor de ejecucin sin tener que modificar demasiados aspectos.
Independencia del lenguaje de programacin y de la plataforma. Permiten abstraernos de las capas subyacentes. Interoperabilidad por medio de la utilizacin de estndares para la comunicacin: XML, SOAP, WSDL, UDDI. Dbil acoplamiento, la interaccin entre los sistemas se hace a travs de Internet por medio de mensajes (interacciones sncronas y asncronas), sin control centralizado. Modularidad y reusabilidad el desarrollo SOA facilita la reutilizacin de los servicios de negocio. las funciones de negocio pueden ser expuestas como Servicios Web y ser reutilizadas para cubrir nuevas necesidades de negocio. Escalabilidad las aplicaciones que usan Servicios Web escalan fcilmente debido a que se encuentran dbilmente acoplados.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Modelo operacional basado en Servicios Web
UDDI centraliza los servicios en un registro comn (publish / find) WSDL define la interfaz de los Servicios Web SOAP codifica los mensajes en un formato comn de intercambio HTTP, SMTP, FTP son algunos de los protocolos de transporte posibles

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Invocacin de un Servicio Web
Aplicacin cliente Servidor

Contenedor de servicios WEB

Stub Servicio Web

Implementacin del servicio

UDDI
Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones -Romn Rolli

Servicios Web
Invocacin de un Servicio Web (2)
Aplicacin cliente

Proxy Servicio Web

Servidor

Contenedor de servicios WEB

El cliente busca informacin de un servicio determinado

Stub Servicio Web

Implementacin del servicio

UDDI
Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones -Romn Rolli

Servicios Web
Invocacin de un Servicio Web(3)
SOAP/HTTP

SOLICITUD Aplicacin cliente Proxy Servicio Web

Servidor

Contenedor de servicios WEB

Stub Servicio Web

Implementacin del servicio

UDDI
Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones -Romn Rolli

Servicios Web
Invocacin de un Servicio Web(4)
SOAP/HTTP

Aplicacin cliente

Proxy Servicio Web

El stubSOLICITUDdel cliente Servicio Web formatea la invocacin al servicio dentro de un Servidor mensaje SOAP.

Contenedor de servicios WEB

Stub Servicio Web

Implementacin del servicio

UDDI
Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones -Romn Rolli

Servicios Web
Invocacin de un Servicio Web(5)
SOAP/HTTP

SOLICITUD Aplicacin cliente Proxy Servicio Web El stub servidor convertir el mensaje SOAP hacia un formato que pueda ser interpretado por la aplicacin servidora (este proceso es llamado unmarshaling o deserializacin) servicios WEB Contenedor de Stub Servicio Web

Servidor

Implementacin del servicio

UDDI
Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones -Romn Rolli

Servicios Web
Invocacin de un Servicio Web(6)

Aplicacin cliente

Proxy Servicio Web

Servidor

RESPUESTA

Contenedor de servicios WEB

Stub Servicio Web

Implementacin del servicio

UDDI

SOAP/HTTP
-Romn Rolli

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

Servicios Web
Invocacin de un Servicio Web(7)

Aplicacin cliente

Proxy Servicio Web

Servidor

RESPUESTA El formateo del mensaje de respuesta se vuelve a repetir en el camino inverso.

Contenedor de servicios WEB

Stub Servicio Web

Implementacin del servicio

UDDI

SOAP/HTTP
-Romn Rolli

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

Servicios Web
Tecnologa utilizada
Lenguaje de programacin JAVA. API JAX-WS para la creacin de Servicios Web sobre JAVA. Servidor de aplicaciones JBOSS 2.3.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Generacin de Servicios Web con la API JAX-WS
1.

Definicin de encabezado. Protocolo comunicacin a utilizar. Mtodos a exponer. Generacin de proxy cliente.

2.

3.

4.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Generacin sobre clase JAVA

La anotacin @WebService indicar que la clase JAVA definida implementa un Servicio Web.

Atributos
name define el nombre de wsdl:portType. portName determina la definicin del wsdl:portName. serviceName especifica el nombre del Servicio Web: wsdl:service. wsdlLocation especifica la direccin Web del documento WSDL que define el Servicio Web.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Generacin sobre clase JAVA(2)
La anotacin @SOAPBinding especifica el protocolo de mensajes SOAP utilizado en la comunicacin con el Servicio Web.

Atributos
style define el estilo de codificacin para los mensajes enviados a y desde el Servicio Web. use define el formato utilizado para los mensajes enviados a y desde el Servicio Web. parameterStyle determina si los parmetros del mtodo representan todo el cuerpo del mensaje o si los parmetros son elementos envueltos en el elemento.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Generacin sobre clase JAVA(3)
La anotacin @WebMethod permite poder exponer un mtodo de una clase java como una operacin del Servicio Web.

Atributo
operationName especifica el nombre de wsdl:operation que coincide con este mtodo. La anotacin @WebResult personaliza la correlacin de un valor de retorno con una parte WSDL o elemento XML.

Atributo
name especifica el nombre del valor de retorno como figura en el archivo WSDL y aparece en los mensajes de la comunicacin.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Generacin del proxy cliente

Para poder realizar la generacin del proxy cliente, se deber tener informacin acerca de la ubicacin del documento WSDL que define al Servicio. Por medio de la instruccin wsimport de la API JAX-WS se generarn las clases representantes del servicio y aquellas que llevaran a cabo la conversiones entre objeto Java y documento XML.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Generacin del proxy cliente(2)
JAX-WS: WSIMPORT

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Servicios Web
Generacin del proxy cliente(3)
Tags principales del documento XML en formato WSDL: <types> Define los tipos de datos utilizados por el Servicio Web. <message> Mensajes que conocer el Servicio Web. <portType> Operaciones ejecutadas por el Servicio Web. <binding> Detalles sobre los protocolos de comunicacin utilizados por cada port. <service> Define la ubicacin en la cual invocar al servicio.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

BPM (Business Process Management)


Un proceso de negocios consta de un conjunto de tareas lgicamente relacionadas que cuando son ejecutadas en un orden apropiado y siguiendo alguna regla de negocio producen una salida de negocio. Caractersticas BPM: Reduccin de las posibles diferencias entre los requerimientos del negocio y los sistemas IT. Aumento en la productividad y disminucin de los costos operacionales debido a la automatizacin de los procesos de negocio. Aumento en la flexibilidad y agilidad de la corporacin gracias a la separacin de la lgica de procesos de negocios. Reduce los costos de desarrollo y esfuerzo mediante el uso de herramientas de programacin grfica.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

BPM (Business Process Management)


Ciclo de vida BPM
Modelado: Un BPM consta de herramientas visuales que nos permiten diagramar el flujo de comunicacin entre los procesos de negocios y tener una visin ms clara de la lgica que lleva a cabo cada proceso. Integracin: La integracin de los procesos de negocios, se puede llevar a cabo por medio del lenguaje estndar para la ejecucin de procesos de negocios, BPEL. Ejecucin: Cada BPM consta de un motor de BPM el cual es capaz de ejecutar los procesos de negocios. Control: La ejecucin de cada proceso de negocio puede ser monitorizada por lo que es posible obtener mtricas de estos procesos para poder ser analizadas y comparadas.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

BPM (Business Process Management)


Definicin de un proceso BPEL
partner link

Por qu utilizar BPEL ? Nos permite trabajar sobre la lgica de procesos. Invocaciones sincronas y asncronas de Servicios Web. Los programas se definen sobre XML.

cliente

partner link Servicio Web 1

Orquesta las invocaciones a los Servicios Web. Servicio


Web 2

partner link

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

BPM (Business Process Management)


Tecnologas empleadas

JBPM motor de ejecucin de procesos BPM. Eclipse BPEL designer. Modelador grfico de procesos de negocios.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

BPM (Business Process Management)


Composicin de un proceso BPEL
import Lista todos los documentos wsdl de los servicios web utilizados en el proceso BPEL

PartnerLink Lista los servicios participantes en el flujo del proceso de negocio, los roles que cumplen y partnerLinkType asociados
Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones -Romn Rolli

BPM (Business Process Management)


Composicin de un proceso BPEL(2)
Variables Sirven para mantener el estado de los proceso de negocio. permiten almacenar mensajes que mantendrn los valores recibidos y enviados por los servicios. Los tipos de cada variable pueden ser mensajes WSDL, un tipo de dato simple definido en XML o un elemento XML.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

BPM (Business Process Management)


Composicin de un proceso BPEL(3)
Lgica del proceso Dentro del tag <bpel:sequence> se define la lgica de proceso de negocios, y la declaracin de los receive, invoke, assign, ... de los procesos de negocios

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Sistema de ventanilla nica


Planteo del problema
El Sistema de Ventanilla nica, consiste en la gestin de trmites de habilitacin de actividades econmicas comerciales. El proceso de habilitacin de cada uno de estos locales comerciales, consta de una serie de pasos en los cuales el trmite ir pasando por diferentes etapas y tomando diferentes estados definidos por el circuito de negocio. Los cambios de estado que sufren los documentos, ocurren como resultado de la validacin de la informacin asociada y la informacin requerida para el traspaso al siguiente estado.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Sistema de ventanilla nica


Uso de Servicios Web y BPEL
Para resolver el problema planteado se utilizo una arquitectura orientada a servicios para: Integrar los diferentes sistemas legacy involucrados en el proceso de habilitacin comercial. Administrar la lgica de negocios de manera centralizada.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Lista los tramites pendientes de habilitacin, de acuerdo al perfil del usuario.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Estando en el estado de Viabilidad legal paga, el trmite estar listo para comprobar si se encuentra en condiciones para su habilitacin

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Invocacin al proceso de negocio

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Representacin grafica del diagrama BPEL para el estado De viabilidad.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Representacin por medio del lenguaje XML

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Conclusin
El potencial alcanzado combinando tecnologas como Servicios Web y BPM en el desarrollo de una arquitectura orientada a servicios (SOA) conforma un aporte en cuanto a: Abstraccin. Rpido desarrollo. Definicin de procesos de negocios.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Conclusin (2)
Se realiz un anlisis que muestra de que manera el desarrollo de una aplicacin SOA mediante Servicios Web y el lenguaje de orquestacin BPEL permiten obtener una forma ms organizada y eficiente para la integracin de sistemas. El desarrollo prctico de un caso real, mostr la manera en la cual estas tecnologas interactan. El desarrollo de los temas muestra la gran diversidad de aspectos y tecnologas que involucra una arquitectura orientada a servicios.

Temario
Introduccin Evolucin de las arquitecturas distribuidas Arquitectura Orientada a Servicios Servicios Web BMP (Business Process Management) Sistema de Ventanilla nica Conclusin Lneas de trabajo futuras

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

Lneas de trabajo futuras


Anlisis de herramientas BPMN y su mapeo hacia un proceso de negocios sobre el lenguaje BPEL. Estndares de seguridad propuestos por W3C y OASIS. Transacciones distribuidas entre Servicios Web.

Arquitectura Orientada a Servicios y su impacto en el desarrollo de aplicaciones

-Romn Rolli

También podría gustarte