servicios soa

16
1 WebServices bajo SOA SOAagenda team Chile

Upload: soaagenda-team

Post on 31-May-2015

3.346 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Servicios SOA

1

WebServices bajo SOA

SOAagenda team Chile

Page 2: Servicios SOA

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

Page 3: Servicios 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>

Page 4: Servicios SOA

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

Page 5: Servicios SOA

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

Page 6: Servicios SOA

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)

Page 7: Servicios SOA

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

Page 8: Servicios SOA

8

WS-I Compliant

Page 9: Servicios SOA

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)

Page 10: Servicios SOA

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

Page 11: Servicios SOA

11

DemoCrear un WebService (a partir de una Clase Java)

Clase

Java

FrameworkSUN

Web

Service

WSDLIngeniero(IDE) Servidor Web

Deploy

Page 12: Servicios SOA

12

¿Consultas?

Visual Time

<VBasic>

PIN<Java>

ServiciosVida

<WebService>

WSDL<xml>

creaPolizaVida()

<SOAP>

Page 13: Servicios SOA

13

WSDLWSDL (http://localhost:8080/WServiceSOA/ServiciosVidaService?WSDL)

Page 14: Servicios SOA

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

Page 15: Servicios SOA

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

Page 16: Servicios SOA

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/