Agenda
Introduccin
o
Web Services
o o
REST
o o
Conclusiones
INCO - Facultad de Ingeniera Montevideo, Uruguay 2
Definicin
A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Webrelated standards. o World Wide Web Consortium (W3C), 2006
Evolucin Middleware
Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006. INCO - Facultad de Ingeniera Montevideo, Uruguay 4
Web Services
El trmino Web Service nace aproximadamente en el ao 2000 por iniciativa de MS e IBM Surgen como una necesidad de la industria en las reas:
o o
Motivacin (1)
Motivacin (1)
Motivacin (2)
Motivacin (2)
Los procesos B2B se llevaban a cabo de forma manual va Web, fax o e-mail Algunos problemas de automatizacin en transacciones B2B incluan:
o
Un tercero deba hostear el middleware Todos los involucrados deben acordar usar el middleware
9
Motivacin (2)
10
Motivacin (2)
es baja y a veces, inexistente. Las empresas desean ser lo ms autnomas posibles unas de otras Las empresas no quieren guardar sus datos y transacciones en middleware de terceros
Autonoma
o
Confidencialidad
o
11
Sin embargo
12
Problema
No es escalable Suposicin falsa o Una plataforma de integracin basada en middleware puede ser centralizada, en donde todos los componentes (de diferentes empresas) que integra confan en ella. El surgimiento de las tecnologas Web y de protocolos de comunicacin (HTTP) y formatos (primero HTML y luego XML) estndares, posibilitaron la creacin de un middleware convencional denominado Web Services, que posibilita la integracin de aplicaciones en escenarios B2B
13
14
WS & EAI
15
WS & EAI
El objetivo principal de los Web Services es proveer una forma sencilla de exponer los sistemas de informacin de la empresa de una forma controlada y estndar De alcanzar este objetivo, los Web Services pueden ser utilizados para posibilitar EAI entre empresas sin la necesidad del uso de adaptadores especficos. De esta forma, los Web Services permiten a los clientes acceder a los sistemas de informacin internos de la empresa de una forma estndar
INCO - Facultad de Ingeniera Montevideo, Uruguay 16
17
Dentro de una empresa, los Web Services permiten una integracin EAI sin la necesidad de costosos adaptadores
o
Conectar aplicaciones .NET con JEE Conectar aplicaciones .NET con Cobol
18
Simples o de informacin
o
Pedido-Espera-Respuesta
19
Simples o de Informacin
o o
Son stateless
o
Coordinacin de operaciones Transacciones de larga duracin Mecanismos de comunicacin asincrnicos Servicios de alta granularidad Stateful
Granularidad fina: son servicios que proveen un acceso bsico a datos u operaciones rudimentarias. Este tipo de servicios tiene poco valor para aplicaciones de negocios.
SubmitPO
22
Ejemplo
23
Por ejemplo: identificacin clara de conceptos de negocio, alta usabilidad y reusabilidad de los conceptos, conceptos de alta cohesin y bajo acoplamiento, etc
Sectores verticales de negocios (p. ej: autombiles, turismo, etc) tienen estandarizado las entidades y procesos de negocio utilizando sus propios niveles de granularidad
INCO - Facultad de Ingeniera Montevideo, Uruguay 25
Acoplamiento
Direccionamiento de mensajes
Plataforma Protocolos asociados Objetivo
Hard coded
Homognea Esttico Reuso
Dirigido
Heterognea Dinmico Flexibilidad, uso amplio
26
Web Services
Iniciativa de Microsoft e IBM en el ao 2000 para resolver necesidades de las reas EAI y B2B Resultado:
o o
Primera generacin de Web Services Un conjunto de estndares de comunicacin basado en XML y tecnologas Web (http, tcp, smtp, etc)
o
Sintaxis
Formato
Transporte
Interfaces
o
Descubirimiento/Bsqueda
29
Sintaxis
o
Formato
o
Transporte
o
Interfaces
o
Descubrimiento/Bsqueda
o
31
Los registros pblicos no fueron exitosos Los estndares existentes (UDDI y ebXML) son demasiado pesados Buenas prcticas: Intercambiar los WSDLs y endpoints por e-mail
INCO - Facultad de Ingeniera Montevideo, Uruguay 32
SOAP
Estndar de la W3C que describe un formato de mensaje (basado en XML) y mecanismos para intercambiar informacin entre aplicaciones, en un ambiente distribuido y descentralizado. Actualmente, se encuentra en la versin 1.2.
34
SOAP
Define mecanismos para utilizar distintos protocolos de transporte para el envo de mensajes
Especifica un modelo de procesamiento que indica cmo se deben procesar los mensajes Una forma de adjuntar datos no-XML a los mensajes.
35
Mensaje SOAP
36
Un ejemplo
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soapenvelope"> <env:Header> <pns:qualityOfService xmlns:pns="http://example.org/qos"> <pns:priority>3</pns:priority> <pns:timestamp>2004-02-25T01:00:00-03:00</pns:timestamp> <pns:persist>true</pns:persist> </pns:qualityOfService> Header </env:Header> <env:Body> <bmns:businessPO xmlns:env="http://example.org/po"> <bmns:description>Widgets</bmns:description> <bmns:quantity>100</bmns:quantity> <bmns:price>20.5</bmns:price> </bmns:businessPO> </env:Body> Body </env:Envelope>
Envelope
INCO - Facultad de Ingeniera Montevideo, Uruguay 37
Mensaje SOAP
un elemento opcional Header un elemento requerido Body que puede incluir un elemento Fault
El Envelope es el elemento raz de todo mensaje SOAP e identifica un documento XML como un mensaje SOAP
38
El Header, de estar presente, debe ser el primer elemento del Envelope Provee un mecanismo de extensin que permite incluir informacin extra en mensajes SOAP (seguridad, transacciones, etc) Puede contener varios header blocks que son una forma de agrupar lgicamente la informacin
39
40
Contiene la informacin a ser intercambiada entre el cliente y servicio En el Body tpicamente se especifica:
o
una solicitud para efectuar cierta operacin la respuesta a cierta solicitud que puede ser:
41
solicitud
resultado
42
Error de sintaxis Error de red: HTTP 500 Internal Server Error No existe la cuenta con nmero X
Infraestructura
Negocio
43
Tiene 5 sub-elementos:
o
o
o o o
44
Ejemplo
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" m="http://www.plastics-suply.com/product-prices"> <env:Header/> <env:Body> <env:Fault> <env:Code> <env:Value>env:Sender</env:Value> <env:Subcode> <env:Value>m:InvalidPurchaseOrder</env:Value> </env:Subcode> </env:Code> <env:Reason> <env:Text xml:lang="en-UK"> Specified product did not exist </env:Text> <env:Text xml:lang="es"> El producto solicitado no existe </env:Text> </env:Reason> </env:Fault> </env:Body> </env:Envelope>
INCO - Facultad de Ingeniera Montevideo, Uruguay 45
Procesamiento de Mensajes
En el modelo SOAP pueden existir varios nodos intermediarios que procesan los mensajes Usos comunes: auditora, compresin, seguridad, etc.
Transporte de Mensajes
SOAP no impone el uso de un determinado protocolo para el intercambio de mensajes A travs del concepto de binding SOAP permite especificar:
o
cmo los mensajes SOAP se encapsulan en un protocolo de transporte cmo los mensajes SOAP deben ser tratados con las primitivas del protocolo
INCO - Facultad de Ingeniera Montevideo, Uruguay 48
SOAP Bindings
En el estndar SOAP se incluye la especificacin de un bindings para los protocolos http y smtp Se dan un conjunto de reglas para definir nuevos bindings
o
49
SOAP Bindings
50
51
WSDL
Estndar de la W3C que define un lenguaje basado en XML que permite describir la interfaz, formas de acceso y ubicacin de un Web Service
53
Para qu sirve?
Dnde est ubicado el servicio? Qu operaciones tiene? Qu mensajes de entrada/salida recibe/responde? Cul es la estructura de los mensajes? Qu protocolos de transporte hay que usar (bindings)?
54
o o o
<wsdl:operation>
55
WSDL types
<wsdl:types> <xsd:schema targetNamespace=http://..../weatherService/wsdl xmlns:xsd=http://www.w3.org/2001/XMLSchema> <xsd:element name=City type=xsd:string/> <xsd:element name=Country type=xsd:string/> </schema> <wsdl:types>
56
WSDL messages
El elemento messages representa de forma abstracta los parmetros de entrada y salida para una operacin
57
WSDL portType
El elemento portType es el contenedor de todas las operaciones abstractas y describe una interfaz especfica del servicio
<portType name=getWeatherPortType"> <operation name="getWeather"> <input message="getWeatherIn"/> <output message="getWeatherOut"/> </operation> </portType>
58
o o
<wsdl:binding> <wsdl:service>
<wsdl:port>
59
WSDL binding
Este elemento asocia un portType, y sus mensajes y operaciones, a un protocolo de transporte y un formato de mensaje
<binding name=weatherServiceSoapBinding type=getWeatherPortType > <soap:binding style=rpc transport=http/> <operation name=getWeather> <input soap:body use=encoded/> <output soap:body use=encoded/> </operation> </binding>
60
61
Cmo lo uso?
Jugar con WS
Seekda
o
.NET
o o
JBoss
o
UDDI
Estndar de la OASIS que provee una forma estndar de publicar, categorizar y buscar Web Services
o
Actualmente en la versin 3.0.2 Un directorio y un modelo de datos para almacenar informacin de servicios y negocios tres interfaces para utilizar el registro UDDI Inquiry (Bsqueda de servicios) Publish (Publicacin de servicios) Subscribe (Notificacin de cambios)
INCO - Facultad de Ingeniera Montevideo, Uruguay 65
UDDI define
o
Registro UDDI
Pginas blancas - direccin, contacto y otros identificadores conocidos. Pginas amarillas - categorizacin industrial basada en taxonomas. Pginas verdes - informacin tcnica sobre los servicios que aportan las propias empresas.
66
Registro UDDI
El esquema original de classificacin de UDDI estaba basado en una taxonoma de negocios del gobierno de US Las versiones recientes de UDDI tienen soporte para la definicin de taxonomas personalizadas
67
Developing Java Web Services. Ramesh Nagappan, Robert Skoczylas, Rima Patel Sriganesh. Wiley Publishing. 2003. INCO - Facultad de Ingeniera Montevideo, Uruguay 68
Interfaces UDDI
El estndar UDDI define interfaces que pueden ser utilizadas, por proveedores y consumidores de Web Services Dichas interfaces estn descriptas utilizando WSDL y pueden ser accedidas a travs de mensajes SOAP sobre HTTP
69
Interfaces UDDI
Un proveedor de Web Services utiliza esta interfaz para publicar, actualizar o eliminar informacin en el registro UDDI Dos tipos de operaciones: save y delete
Un consumidor de Web Services utiliza esta interfaz para buscar Web Services, proveedores de Web Services e informacin de los mismos Dos tipos de operaciones: find y get
INCO - Facultad de Ingeniera Montevideo, Uruguay 70
Objetivo: proveer un mecanismo a los clientes, para recibir informacin concerniente a los cambios que se realizan en el registro UDDI Dos mecanismos de comunicacin
o
Sincrnico Operacin getSubscriptionResults Asincrnico Va mail o Web Services SOAP Clientes pueden implementar la operacin notify_subscriptionListener
INCO - Facultad de Ingeniera Montevideo, Uruguay 71
Resumen
SOAP
o
Define el formato y transporte de los mensajes Describe las interfaces de los servicios Describe operaciones, mensajes, estructuras de datos, protocolos de transporte, etc Permite el desarrollo de directorios de Web Services Clasificacin de servicios por parte de proveedores Bsqueda de servicios por clientes/consumidores
WSDL
o o
UDDI
o o o
72
Limitaciones
Serializacin a SOAP
Los Web Services bsicos no proveen soluciones a este tipo de requerimientos empresariales
73
Estndares Avanzados de WS
Surgen entonces un conjunto de nuevas especificaciones (conocidas como WS-* o segunda generacin de estndares) Cada una aborda una problemtica especfica y estn orientadas a bloques y a su composicin
INCO - Facultad de Ingeniera Montevideo, Uruguay 75
Estndares Avanzados de WS
http://www.innoq.com/soa/ws-standards/poster/
INCO - Facultad de Ingeniera Montevideo, Uruguay 76
77
Introduccin
79
Confidencialidad
Cifrado simtrico
Cifrado asimtrico
80
Cifrado simtrico
Es la forma tradicional de la criptografa o Su origen conocido se remonta al menos a la poca de los romanos Los algoritmos simtricos utilizan la misma clave para encriptar y desencriptar la informacin o Dk(Ek(x)) = x A la clave se le denomina clave secreta, Llave secreta, secreto compartido (Secret-Key o shared key en ingls) Requieren una comunicacin previa de la clave entre las entidades participantes de forma segura (secreta)
81
Data de la poca de Julio Csar (siglo I A. C.) Es un tipo de cifrado por sustitucin en el que una letra en el texto original es reemplazada por otra letra que se encuentra un nmero fijo de posiciones ms adelante en el alfabeto.
Ejemplo:
Texto original: WIKIPEDIA, LA ENCICLOPEDIA LIBRE Texto codificado: CPVKJG, QG KSIIQUVKJG QHXK
82
Cifrado asimtrico
Los mtodos asimtricos, conocidos como de clave pblica, se basan en encontrar un criptosistema donde se tienen dos claves distintas para encriptar y desencriptar, y es computacionalmente imposible obtener la clave de descifrado (dk) a partir de la clave de cifrado(ek) (o viceversa)
83
Cifrado asimtrico
84
Firma digital
85
Firma digital
Si encriptamos mensaje con la clave privada, alcanza con verificar que es desencriptado correctamente con la clave pblica
No repudio
Servicio de seguridad que previene que un emisor niegue haber remitido un mensaje (cuando realmente lo ha emitido) y que un receptor niegue su recepcin (cuando realmente lo ha recibido). En el primer caso el no repudio se denomina en origen y en el segundo en destino. [Ribagorda:1997]
INCO - Facultad de Ingeniera Montevideo, Uruguay 87
Seguridad en WS
Introduccin
89
SSL & TLS Essentials: Securing the Web. Stephen A. Thomas. John Wiley & Sons. 2000. INCO - Facultad de Ingeniera Montevideo, Uruguay
91
Sin embargo
HTTP
92
Sin embargo
Intermediarios pueden dejar huecos de seguridad Autenticacin del usuarios trabajosa si hay intermediarios
93
Toda la informacin de seguridad es encapsulada en el propio mensaje Estndares que dan soporte a este mecanismo:
o
o o
94
WS-Security
Seguridad a nivel de mensaje, no transporte Garantiza la confidencialidad e integridad de los mensajes SOAP Brinda mecanismos para adjuntar tokens de seguridad a los mensajes SOAP
o
o
Es un estndar
INCO - Facultad de Ingeniera Montevideo, Uruguay 95
<fecha>09-03-2009</fecha>
</depositar> </body> Certificado del
cliente </envelope>
INCO - Facultad de Ingeniera Montevideo, Uruguay
<envelope>
Firma
SSL vs WS-Security
Caractersticas Estndar S SSL S WS-Security
Seguridad
Confidencialidad/ Integridad Autenticacin de clientes Protocolo Algoritmos de cifrado Sesiones seguras
A nivel de transporte
Todo el mensaje. X.509, Basic Authentication Potencialmente varios. HTTP el ms popular. Simtricos
A nivel de applicacin
Todo o partes del mensaje Usuario/Contrasea, X.509, Kerberos, SAML. Potencialmente varios. HTTP el ms popular. Simtricos y asimtricos En gral, asimtrico No, pero WS-SecureConversation
99
Costos: Performance
http://www.ibm.com/developerworks/java/library/j-jws6/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay 100
Adems
Small responses
101
Large responses
http://www.ibm.com/developerworks/java/library/j-jws14/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay 102
Gran volumen de transacciones (Rapido y escalable) No hay procesamiento por parte de intermediarios
o
SSL es un estndar maduro e interopera razonablemente bien entre diferentes proveedores SSL encripta todos los paquetes a nivel de transporte El header, body y attachments SOAP estn todos asegurados
103
Los intermediarios encriptan partes de los mensajes y deben dejar otras en texto plano
Desarrollos futuros
o
Habilitar la federacin, sesiones seguras y seguridad basada en polticas segn el roadmap de Web Services
INCO - Facultad de Ingeniera Montevideo, Uruguay 104
Fin