2. Conceptos
… WebService
… Servicio SOA
• Funcionalidades
Una tarea de negocio disponibles vía Web,
repetitiva – “validar implementadas bajo
Crédito Cliente”, que estándares específicos
cumple estándares (WSDL, SOAP)
SOA
… WebService SOA
Implementación vía WebService de un
servicio que cumple los estándares SOA
2
3. WebService
Tecnología que permite ejecutar
operaciones en forma remota.
Tecnología que permite
comunicación entre
aplicaciones ( de distintas
Tecnología). creaPolizaVida() Servicios
Componente de Software que Vida
<WebService>
<SOAP>
es descrito por un contrato WSDL
Aplicación <xml> Sistema
(WSDL), y se puede acceder en Cliente Operacional
<Java> <VBasic>
la Web a través de un protocolo
definido (SOAP).
Componente de Software
identificado por una dirección
Web (URL), cuyas interfaces
http://SOAagenda.com/sistemaSOA/services/ServiciosVida
(forma de ejecutar) están
definidas usando XML. WSDL
<xml>
http://SOAagenda.com/sistemaSOA/services/ServiciosVida?WSDL
3
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 SQL SAP
People
– Bases de Datos Server Soft Data
Stage (ETL)
– Orquestador Servicios (ESB) Oracle
– Orquestador Procesos Negocio (BPM)
Servicios
Vida
– Orquestador Procesos Datos y Batch (ETL) Exchange <WebService>
GlassFish
– Servidores de Reportes (ESB)
Principales Herramientas manejan
WebServices
RAD BPM
– Ambientes de Desarrollo (IDE)
– Diseño Procesos (BPEL) JBuilder
NetBeans Eclipse Office
– Microsoft Office
Principales Sistemas WordClass se
Integran vía WebServices.
– SAP
– PeopleSoft
4
5. WSDL (WebService Description Language)
Documento en XML que describe un
WSDL
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
5
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)
6
7. 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 Servicios Servicios
Vida Vida
uso adecuado. <WebService> <WebService>
Un Webservice es “WS-I compliant” WS-I
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”.
7
10. Etapas Implementación WebService
Crear un WebService (a partir de una Clase Java)
Web
Framework Service Deploy
Clase
Java WebServices
Ingeniero
WSDL
(IDE) Servidor Web
Crear un Cliente WebService
Integra
Framework Stub
WSDL WebServices <clase Java>
Ingeniero
(IDE) Aplicación Cliente
Ejecutar un WebService
Framework Web
Stub WebServices Service
Usuario
Servidor Web Sistemas Operacionales
Aplicación Cliente
10
11. Demo
Crear un WebService (a partir de una Clase Java)
Web
Framework Service Deploy
Clase
Java SUN
Ingeniero
WSDL
(IDE) Servidor Web
11
12. ¿Consultas?
creaPolizaVida() Servicios
Vida
<WebService>
<SOAP>
WSDL
PIN <xml> Visual
<Java>
Time
<VBasic>
12
14. Conceptos SOA
Servicio: componentes reutilizables de negocio, con interfaces bien FrameWork: conjunto de herramientas y motor (engine) que permite
definidas, ej. “consultaCarteraAgente”, generalmente se refiere a “Servicio habilitar alguna tecnología.
de Negocio”. AXIS: framework que permite generar Webservices.
Sistemas Operacionales: sistemas legados (heredados) de una empresa, WorkFlow: flujo de trabajo, permite implementar procesos de negocio,
sistemas BackOffice, sistemas aislados orientados a un aspecto especifico pero no soporta actividades automatizadas (servicios).
del negocio. Ej. “PSoft CRM”. BPM: (Business Process Management) tecnologia que permite
Servicios de Información: Servicio de mas bajo nivel, encapsula lógica implementar procesos de negocio. Apoya todo el ciclo de vida de un
para acceder a funcionalidades de los sistemas operacionales. ej. proceso: modelar, integrar, ejecutar, y monitorear. Implementación clara
“obtieneClienteCRM”. de SOA, ej. “WorkFlow + WebServices”.
Proceso de Negocio: secuencia de actividades que forma un proceso del BPMS: (BPM Suite) framework que permite implementar BPM y SOA,
negocio, contempla actividades manuales y automatizadas, ej. “Proceso ej. “BEA Aqualogic”, “IBM WebSphere BPMS”.
Cotizar Producto Vida”. Lista Pendientes: portlet que lista las tareas pendientes de un usuario
SOA: (Service Oriented Architecture) arquitectura basada en componentes que participa en un proceso de negocio, lo facilita BPMS.
reutilizables: procesos de negocio y servicios. Estrategia con visión de MQ: (Websphere Message Queues) framework de IBM para
Empresa y de largo plazo. implementar colas de mensajes.
Portlet: sección o módulo gráfico con una funcionalidad bien definida, Java: lenguage de programación orientado a objetos.
servicio de presentación, componente gráfico reutilizable, ej. “Calendario Clase Java: componente funcional programado en Java, esta
Agente Ventas”. compuesto por funciones, y variables.
Portal: aplicación Web compuesta por Portlets, ej. “www.emol.cl”. J2EE (Java 2 Enterprise Edition) framework para implementar
Aplicación SOA: aplicación compuesta de servicios: portlets, procesos de aplicaciones de complejidad empresarial, estandar e independiente de
negocio, servicios de negocio. plataforma (Windows, Mac, Linux, Unix).
XML: (eXtensible Markup Language) estructura de datos basada en tags, ETL: (Extract, Transform, and Load) framework que permite
ej. “<rut>8602345-K</rut>” implementar procesos basados en fuentes de datos (principalmente
SOAP: (Simple Object Access Protocol) protocolo estandar basado en XML bases de datos), permite implementar “servicios de información”.
para implementar servicios. Basado en modelamiento del proceso (simil BPMS pero solo procesos
WebService: implementación de un servicio, basado en SOAP, totalmente Base de Datos). Ej. “IBM Datastage”.
estandar. Deploy: publicar un componente en el servidor web, subir un
Stub: modulo que permite ejecutar (consumir) un WebService. componente a producción, ej. “subir webservice a producción”.
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”.
14
15. Algunos Principios SOA
ES: NO ES:
Una Pieza de Lego: sirve para Una Pieza de Rompecabezas:
crear varios juegos distintos. sirve para crear un solo juego.
Una funcionalidad del negocio. Funcionalidad genérica: Ej.
Ej.“dar de alta un cliente”, “validar Rut”
“consulta pólizas vida de un
cliente”
Aislado: solo sirve para una
Reutilizable: se puede utilizar en aplicación. Ej. “consulta pólizas por
otros aplicaciones. Ej. “consulta id SAP”
cliente”, “consulta pólizas grles de
un rut” Propietario: solo se puede usar
bajo una tecnología. Ej. “una clase
Estándar: independiente de Java”, “un Webservice que
plataforma, se puede integrar a devuelve dato tipo Visual Basic”
distintos tecnologias. Ej.
“Webservices” cumple SOA. Rígido: fuerte impacto de los
cambios. Ejemplo “consulta cliente
Flexible: impacto de los cambios con campo entrada solo rut”.
es menor. “XML” marca la
diferencia. Ej.:“Consulta clientes
con objeto cliente como entrada”
15
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/
16