servicios soa
TRANSCRIPT
1
WebServices bajo SOA
SOAagenda team Chile
2
… Servicio SOA
Una tarea de negociorepetitiva – “validar Crédito Cliente”, que cumple estándares
SOA
Conceptos
… WebService
• Funcionalidades disponibles vía Web, implementadas bajo
estándares específicos (WSDL, SOAP)
… WebService SOA
Implementación vía WebService de un servicio que cumple los estándares SOA
3
Sistema
Operacional<VBasic>
WebService
� Tecnología que permite ejecutar operaciones en forma remota.
� Tecnología que permite comunicación entre aplicaciones ( de distintas Tecnología).
� Componente de Software que es descrito por un contrato (WSDL), y se puede acceder en la Web a través de un protocolo definido (SOAP).
� Componente de Software identificado por una dirección Web (URL), cuyas interfaces (forma de ejecutar) están definidas usando XML.
Aplicación
Cliente<Java>
ServiciosVida
<WebService>
WSDL<xml>
creaPolizaVida()
<SOAP>
http://SOAagenda.com/sistemaSOA/services/ServiciosVida
http://SOAagenda.com/sistemaSOA/services/ServiciosVida?WSDLWSDL<xml>
4
Globalización WebService
� Principales lenguajes de programación
permiten crear y ejecutar Web Services.
� Principales servidores y motores (engine)
permiten ejecutar y publicar WebServices
– Bases de Datos
– Orquestador Servicios (ESB)
– Orquestador Procesos Negocio (BPM)
– Orquestador Procesos Datos y Batch (ETL)
– Servidores de Reportes
� Principales Herramientas manejan
WebServices
– Ambientes de Desarrollo (IDE)
– Diseño Procesos (BPEL)
– Microsoft Office
� Principales Sistemas WordClass se
Integran vía WebServices.
– SAP
– PeopleSoft
Servicios
Vida<WebService>
Oracle
SQL
Server
SAPPeople
Soft Data
Stage (ETL)
GlassFish
(ESB)
BPM
Exchange
RAD
JBuilder
NetBeans EclipseOffice
5
WSDL (WebService Description Language)
� Documento en XML que describe un WebService, describe sus operaciones y determina su ubicación.
� Uso principal WSDL: permite herramientas generar (automáticamente) el cliente para ejecutar el WebService (clase Java, clase .Net, nodo en flujo, etc.).
� Define:– <types> Tipos de datos que usa el WebService
(en los parámetros), puede indicar ubicación de un schema (xml que define estructura).
– <message> Mensajes que maneja el WebService, 2 por cada operación (request, response)
– <portType> Operaciones (funcionalidades) que atiende el WebService
– <binding> define protocolo con que se implementan operaciones (SOAP)
– <service> define ubicación del WebService
WSDL
6
Directorios de Servicios
� UDDI: (Universal Description,
Discovery, and Integration)
permite publicar los servicios
catalogados en términos de
negocio (Industria, Empresa,
Líneas de Negocio)
� UDDI privadas sirven para que
herramientas de desarrollo
manejen catalogo de servicios.
� UDDI publicas sirven para las
empresas ofrezcan servicios a
terceros.
� WSIL define las ubicaciones en
un sitio Web donde se pueden
buscar descripciones del
servicio Web (Directorio de
Directorios)
7
Servicios
Vida<WebService>
Interoperabilidad WebServices (WS-I)
� Conjunto de especificaciones (guías y buenas practicas) para implementar WebServices que puedan operar entre distintas tecnologías (Profiles)
� No define nuevos estándares tecnológicos, solo los perfila, define uso adecuado.
� Un Webservice es “WS-I compliant”si cumple con el “profile” . Y así nos aseguramos que opera en .Net y Java.
� WS-I provee herramientas para validar que un WebService es “WS-I compliant”.
ServiciosVida
<WebService>
WS-I
8
WS-I Compliant
9
Sistema
Operacional<VBasic>
Ejemplo Servicio SOA
Aplicación
Cliente<Java>
ServiciosVida
<WebService>
WSDL<xml>
creaPoliza()
<SOAP>
Cliente
•String rut
•String nombre
Póliza
•String nroPoliza
•String estadoPropuesta
•String nombreProducto
ResultadoCreaPoliza
•String codError
•String msgError
•Poliza poliza
ServiciosVida
�ResultadoCreaPoliza creaPoliza( Cliente, Propuesta)
10
Etapas Implementación WebService
Ejecutar un WebService
Crear un Cliente WebService
Crear un WebService (a partir de una Clase Java)
ClaseJava
FrameworkWebServices
WebService
WSDLIngeniero
(IDE) Servidor Web
Stub<clase Java>
FrameworkWebServicesWSDL
Ingeniero
(IDE) Aplicación Cliente
Usuario
Aplicación Cliente
Stub
Servidor Web
FrameworkWebServices
WebService
Sistemas Operacionales
Deploy
Integra
11
DemoCrear un WebService (a partir de una Clase Java)
Clase
Java
FrameworkSUN
Web
Service
WSDLIngeniero(IDE) Servidor Web
Deploy
12
¿Consultas?
Visual Time
<VBasic>
PIN<Java>
ServiciosVida
<WebService>
WSDL<xml>
creaPolizaVida()
<SOAP>
13
WSDLWSDL (http://localhost:8080/WServiceSOA/ServiciosVidaService?WSDL)
14
Conceptos SOA
� Servicio: componentes reutilizables de negocio, con interfaces bien definidas, ej. “consultaCarteraAgente”, generalmente se refiere a “Servicio de Negocio”.
� Sistemas Operacionales: sistemas legados (heredados) de una empresa, sistemas BackOffice, sistemas aislados orientados a un aspecto especifico del negocio. Ej. “PSoft CRM”.
� Servicios de Información: Servicio de mas bajo nivel, encapsula lógica para acceder a funcionalidades de los sistemas operacionales. ej. “obtieneClienteCRM”.
� Proceso de Negocio: secuencia de actividades que forma un proceso del negocio, contempla actividades manuales y automatizadas, ej. “Proceso Cotizar Producto Vida”.
� SOA: (Service Oriented Architecture) arquitectura basada en componentes reutilizables: procesos de negocio y servicios. Estrategia con visión de Empresa y de largo plazo.
� Portlet: sección o módulo gráfico con una funcionalidad bien definida, servicio de presentación, componente gráfico reutilizable, ej. “Calendario Agente Ventas”.
� Portal: aplicación Web compuesta por Portlets, ej. “www.emol.cl”.� Aplicación SOA: aplicación compuesta de servicios: portlets, procesos de
negocio, servicios de negocio.� XML: (eXtensible Markup Language) estructura de datos basada en tags,
ej. “<rut>8602345-K</rut>”� SOAP: (Simple Object Access Protocol) protocolo estandar basado en XML
para implementar servicios.� WebService: implementación de un servicio, basado en SOAP, totalmente
estandar.� Stub: modulo que permite ejecutar (consumir) un WebService.� WSDL: (WebService Definition Language) documento XML que describe la
estructura de un WebService, contrato que define como implementar y ejecutar un WebService.
� IDE: (Integrated Development Enviroment) herramienta de desarrollo integrada, ej. “Visual Studio”, “JBuilder”, “Eclipse”.
� FrameWork: conjunto de herramientas y motor (engine) que permite habilitar alguna tecnología.
� AXIS: framework que permite generar Webservices.� WorkFlow: flujo de trabajo, permite implementar procesos de negocio,
pero no soporta actividades automatizadas (servicios).� BPM: (Business Process Management) tecnologia que permite
implementar procesos de negocio. Apoya todo el ciclo de vida de un proceso: modelar, integrar, ejecutar, y monitorear. Implementación clara de SOA, ej. “WorkFlow + WebServices”.
� BPMS: (BPM Suite) framework que permite implementar BPM y SOA, ej. “BEA Aqualogic”, “IBM WebSphere BPMS”.
� Lista Pendientes: portlet que lista las tareas pendientes de un usuario que participa en un proceso de negocio, lo facilita BPMS.
� MQ: (Websphere Message Queues) framework de IBM para implementar colas de mensajes.
� Java: lenguage de programación orientado a objetos.� Clase Java: componente funcional programado en Java, esta
compuesto por funciones, y variables.� J2EE (Java 2 Enterprise Edition) framework para implementar
aplicaciones de complejidad empresarial, estandar e independiente de plataforma (Windows, Mac, Linux, Unix).
� ETL: (Extract, Transform, and Load) framework que permite implementar procesos basados en fuentes de datos (principalmentebases de datos), permite implementar “servicios de información”. Basado en modelamiento del proceso (simil BPMS pero solo procesos Base de Datos). Ej. “IBM Datastage”.
� Deploy: publicar un componente en el servidor web, subir un componente a producción, ej. “subir webservice a producción”.
15
Algunos Principios SOA
ES:� Una Pieza de Lego: sirve para
crear varios juegos distintos.
� Una funcionalidad del negocio. Ej.“dar de alta un cliente”, “consulta pólizas vida de un cliente”
� Reutilizable: se puede utilizar en otros aplicaciones. Ej. “consulta cliente”, “consulta pólizas grles de un rut”
� Estándar: independiente de plataforma, se puede integrar a distintos tecnologias. Ej. “Webservices” cumple SOA.
� Flexible: impacto de los cambios es menor. “XML” marca la diferencia. Ej.:“Consulta clientes con objeto cliente como entrada”
NO ES:� Una Pieza de Rompecabezas:
sirve para crear un solo juego.
� Funcionalidad genérica: Ej. “validar Rut”
� Aislado: solo sirve para una aplicación. Ej. “consulta pólizas por id SAP”
� Propietario: solo se puede usar bajo una tecnología. Ej. “una clase Java”, “un Webservice que devuelve dato tipo Visual Basic”
� Rígido: fuerte impacto de los cambios. Ejemplo “consulta cliente con campo entrada solo rut”.
16
Algunos Patrones Diseño Servicios SOA
� Servicio se nombra para maximizar consumo.– Erróneo: insertarRegistroCliente()
– Correcto: crearNuevoCliente()
� Servicio tienen parámetros abultados (coarse grained)– Erróneo : crearNuevoCliente (rut, nombre, apellidos, email, fono, direccion)
– Correcto: crearNuevoCliente (objetoCliente)
� Servicio encapsula detalles de implementación.– Erróneo : crearNuevoClientePsoft (schemaOracle, registroTablaCliente )
– Correcto: crearNuevoCliente (objetoCliente)
� AntiPatrón, Servicio Parlanchines (Chatty Services)– Erróneo: consultaUF()
– Correcto: (NO implementar ese tipo funciones como servicios)
IBM SOA Antipatterns
http://www.ibm.com/developerworks/webservices/library/ws-antipatterns/IBM SOA realization, Service design principles
http://www-128.ibm.com/developerworks/webservices/library/ws-soa-design/