You are on page 1of 32

Fundamentos de SOA

Javier Lacherre
Joel Moreno

Agenda
Interoperabilidad en el marco de los
servicios web
El estndar WSDL
Parte abstracta
Parte concreta

El estndar SOAP
Ejercicio individual

Los servicios son bloques de


construccin

Los servicios son los bloques bsicos de construccin


de un arquitectura orientada a servicios

Los servicios tienen que ser


interoperables
Los servicios tienen que ser interoperables para
que pueden combinarse y reutilizarse
rpidamente
Interoperabilidad
Capacidad de los sistemas de tecnologas de la informacin y las
comunicaciones (TIC), y de los procesos empresariales a los que
apoyan, de:
Intercambiar datos
Compartir informacin y conocimiento

La solucin a la interoperabilidad es el uso de


estndares

Los estndares
Los estndares son normas:
Adoptadas y utilizas ampliamente
Creadas para permitir un alto grado de
interoperabilidad entre los sistemas en entornos
heterogneos
Definidas como acuerdos oficiales entre los diferentes
actores de implementaciones especficas

Son requeridos por SOA y son aplicados a las


diferentes capas de aplicacin, tales como:

Protocolos de transporte
Formatos de mensajes
Descubrimiento de servicios
Descripcin del servicio

Estndares requeridos por SOA


Estndares
Specifications
forming a
collection of
standards

Categora
Service Component Architecture
(SCA)

Assembly
Model

Service Data Objects (SDO)

Data Access

Orchestration: Business Process Execution


Language (BPEL4WS)
Management
WS-Policy
WS-Security

WS-Reliable Messaging

WS-Security

Business
processes
Quality of
service

Universal Description, Discovery, and Integration


(UDDI)

Discovery

Web Services Description Language (WSDL)

Description

SOAP
Message
XML
HTTP(S), IIOP, JMS, SMTP

Transport

Servicios Web
Los servicios permiten una comunicacin
interoperable a travs de la Internet.
Los principales estndares son:

XML
SOAP
WSDL
UDDI

UDDI no ser utilizado en el desarrollo del


curso

Servicios Web

WS-I: Web Services Interoperability


La interoperabilidad es esencial para el
xito de los servicios Web:
Las especificaciones respectivas para SOAP, WSDL
y UDDI dejan demasiado espacio para la
interpretacin
La Organizacin Web Services Interoperability (WS-I)
fue fundada para ayudar a garantizar la
interoperabilidad al acordar una interpretacin comn
de SOAP, WSDL y UDDI (http://www.ws-i.org)
La Organizacin WS-I define el estndar WS-I Basic
Profile, un conjunto de normas, para garantizar la
interoperabilidad a travs de una amplia gama de
plataformas.

WS-I Basic Profile


The WS-I Basic Profile 1.0 provides
interoperability guidance for a core set of nonproprietary Web services specifications, such as
SOAP, WSDL and UDDI, along with
interoperability-promoting clarifications and
amendments to those specifications
Abarca: SOAP 1.1, WSDL 1.1
Ms informacin: http://www.wsi.org/Profiles/BasicProfile-1.0-2004-04-16.html

Estndar WSDL
Son las siglas de Web Service Description
Language
Un documento WSDL proporciona los metadatos
bsicos sobre un servicio web
WSDL es un lenguaje basado en XML
Es una recomendacin de W3C
Ms informacin:
http://www.w3schools.com/wsdl/wsdl_intro.asp

Estructura de un documento WSDL


Un documento WSDL describe un servicio
web usando los siguientes elementos:
<types> especifica los tipos de datos usados por el
Servicio Web.
<message> especifica los parmetros (mensajes) de
entrada y los valores (mensajes) que retornan las
operaciones
<portType> describe el servicio y sus operaciones
<binding> indica cul es el protocolo de mensajera y
de transporte que debemos usar para invocar al
servicio
<service> la ubicacin del servicio o endpoint

Estructura de un documento WSDL

Abstracta

Concreta

WSDL Types
El elemento <types> define los tipos de datos
que sern usados en los mensajes
Los tipos bsicos por defecto son los definidos:
http://www.w3.org/2001/XMLSchema
Alternativas:
1. No crear nuevos tipos, utilizar los tipos bsicos
2. Importar tipos de datos definidos en otros esquemas
(recomendable)
3. Crear nuevos tipos de datos en un esquema en el
mismo documento

Ejemplo de Esquema: Biblioteca.xsd

Ejemplo con los tipos de datos


definidos en un esquema independiente

Se ha importado el contenido del archivo Biblioteca.xsd

Ejemplo con los tipos de datos


definidos en el WSDL

http://www2.roguewave.com/support/docs/leif/leif/html/soapworxug/A-2.html

WSDL Messages
Cada mensaje puede consistir de una o ms
partes. Las partes pueden ser comparadas a los
parmetros de una funcin en un lenguaje de
programacin tradicional

Ejemplo de un servicio con una


operacin de tipo Request-response

Ejemplo de un servicio en el cual los tipos de los


mensajes han sido definidos en un esquema

WSDL Ports
El <portType> es el elemento ms importante del WSDL porque
describe las operaciones que realiza y los mensajes que usa.
Una <operation> recibe opcionalmente un mensaje de entrada y
devuelve opcionalmente un mensaje de salida.
En un lenguaje de programacin tradicional, el PortType puede ser
comparado con una Clase en el enfoque OO.

Estructura de un documento WSDL

Abstracta

Concreta

Definicin de la parte concreta


Conformada por las
secciones <binding>
y <service>
Resumidamente
indican al
consumidor del
servicio:
El protocolo de
mensajera a
utilizar
El protocolo de
transporte a utilizar
El nombre del
servicio
La ubicacin del
servicio (endpoint)

Ejemplo: SOAP sobre HTTP

Estndar para el diseo del


servicios
Se requiere un estndar para el nombrado
de los mensajes, las operaciones, etc
El uso de estndares promueve la
interoperabilidad
Ejemplo:
http://www.labor.state.ny.us/cioshares/pdf/
Service%20Contract%20Standards1-2.pdf

Estndar SOAP
Son las siglas de Simple Object Access
Protocol
SOAP es un estndar basado en XML para el
intercambio de mensajes
Es una recomendacin de W3C
El propsito de SOAP es el intercambio de
informacin estructurada sobre la red:
Intercambio de documentos.
Invocar operaciones entre aplicaciones.

HTTP es el protocolo de transporte ms utilizado


para el intercambio de mensajes SOAP.

Comunicacin con SOAP


Una comunicacin con SOAP incluye:
Un mensaje de solicitud al servicio invocado
Un mensaje de respuesta del servicio invocado

Request
Service
Client
Response

Server

Estructura bsica de un mensaje SOAP


Un mensaje SOA se
divide: cabecera
<header> y cuerpo
<body>
La cabecera que
contiene la
informacin crtica
acerca de hacia
donde va el mensaje y
de quien viene.
El cuerpo del mensaje
incluye la data.

Communication
protocol envelope (HTTP)
SOAP envelope
SOAP header
Headers

SOAP body
Message name,
data, and
fault element

Response

Request

SOAP Messages: Example


<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/
envelope/"
Xmlns:ns="http://mypackage/">
<soap:Body>
<ns:add>
<num1>1</num1>
<num2>1.1f</num2>
</ns:add>
</soap:Body>
</soap:Envelope>
<soap:Envelope ...
xmlns:ns="http://mypackage/">
<soap:Body>
<ns:addResponse>
<result>2.1</result>
</ns:addResponse>
</soap:Body>
</soap:Envelope>

SOAP
namespace
Application
namespace
SOAP
Operation
(RPC style)

Nodo SOAP
Un nodo SOAP representa
el procesamiento lgico
que es responsable de
transmitir, recibir y ejecutar
una serie de
procesamiento de tareas
sobre mensajes SOAP.
Es conocido como un
Servidor SOAP

Preguntas de autoevaluacin
Por qu los servicios deben ser interoperables?
Para qu se cre la organizacin WS-I?
Qu es WSDL?
Qu es SOAP?
Cmo se inicia la plataforma SOA? Cmo
puedo estar seguro que la plataforma est
funcionando correctamente?

Cul estilo de WSDL usar?


<soap:binding>: RPC Document
It merely dictates how to translate a WSDL
binding to a SOAP message
Referencia:
http://www.ibm.com/developerworks/webs
ervices/library/ws-whichwsdl/
Se recomienda Document

You might also like