Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 3
Agenda
Introduccin
o
Web Services
o
o
Caractersticas
Tecnologas
Bsicas
Avanzados
REST
o
o
Caractersticas
Tecnologas
Conclusiones
INCO - Facultad de Ingeniera Montevideo, Uruguay
Definicin
Evolucin Middleware
Web Services
Motivacin (1)
Motivacin (1)
Motivacin (2)
Autonoma
o
es baja y a veces,
inexistente.
Las empresas desean ser
lo ms autnomas posibles
unas de otras
Confidencialidad
o
Sin embargo
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.
10
11
WS & EAI
12
WS & EAI
13
14
15
Simples o de informacin
o
o
Pedido-Espera-Respuesta
16
Simples o de Informacin
o
o
Son stateless
o
17
Coordinacin de operaciones
Transacciones de larga duracin
Mecanismos de comunicacin asincrnicos
Servicios de alta granularidad
Stateful
18
Tecnologas para
el desarrollo de
Web Services
SOAP, WSDL, UDDI
Web Services
Resultado:
o
o
20
Sintaxis
Formato
Transporte
Interfaces
o
Descubirimiento/Bsqueda
21
Sintaxis
o
Formato
o
Interfaces
o
SOAP
Transporte
o
XML
WSDL
Descubirimiento/Bsqueda
o
UDDI
INCO - Facultad de Ingeniera Montevideo, Uruguay
22
Cmo funciona?
23
SOAP
25
SOAP
26
Mensaje SOAP
27
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
28
Mensaje SOAP
29
30
31
un resultado o
un error (fault)
32
<soap:Body>
<t:TranslateResponse
xmlns:t="http://....../translations">
<t:Translation>rojo</t:Translation>
</t:TranslateResponse>
</soap:Body>
solicitud
resultado
33
Infraestructura
Error de sintaxis
Error de red: HTTP 500 Internal Server Error
Negocio
34
Tiene 5 sub-elementos:
o
o
o
o
o
Code
Reason
Detail
Node (opcional)
Role (opcional)
35
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
36
Procesamiento de Mensajes
http://www14.informatik.tu-muenchen.de/konferenzen/Jass05/courses/6/Papers/10.pdf
INCO - Facultad de Ingeniera Montevideo, Uruguay
37
Procesamiento de Mensajes
38
Transporte de Mensajes
39
SOAP Bindings
40
SOAP Bindings
41
42
Web Service
Description Language
(WSDL)
WSDL
44
Para qu sirve?
descripcin abstracta
descripcin concreta
45
o
o
o
<wsdl:types>
<wsdl:message>
<wsdl:portType>
<wsdl:operation>
46
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>
47
WSDL messages
<message name="getWeatherIn">
<part name=CityIn element=tns:City"/>
<part name=CountryIn element=tns:Country"/>
</message>
48
WSDL portType
<portType name=getWeatherPortType">
<operation name="getWeather">
<input message="getWeatherIn"/>
<output message="getWeatherOut"/>
</operation>
</portType>
49
o
o
<wsdl:binding>
<wsdl:service>
<wsdl:port>
50
WSDL binding
<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>
51
<service name=WeatherService>
<port name=weatherServicePort
type=tns:weatherServiceSoapBinding>
<soap:address
location=http://.../weather//>
</port>
</service>
52
Cmo lo uso?
53
Jugar con WS
Seekda
o
.NET
o
o
http://webservices.seekda.com/providers/webserv
icex.com/GlobalWeather
Getting Started Tutorial
http://msdn.microsoft.com/enus/library/ms734712.aspx
JBoss
o
http://community.jboss.org/wiki/JBossWSUserGuide
INCO - Facultad de Ingeniera Montevideo, Uruguay
54
Universal Description,
Discovery and
Integration (UDDI)
UDDI
UDDI define
o
56
Registro UDDI
57
Registro UDDI
58
Developing Java Web Services. Ramesh Nagappan, Robert Skoczylas, Rima Patel Sriganesh. Wiley Publishing. 2003.
INCO - Facultad de Ingeniera Montevideo, Uruguay
59
Interfaces UDDI
60
Interfaces UDDI
61
Sincrnico
Operacin getSubscriptionResults
Asincrnico
Va mail o Web Services SOAP
Clientes pueden implementar la operacin
notify_subscriptionListener
INCO - Facultad de Ingeniera Montevideo, Uruguay
62
Resumen
SOAP
o
WSDL
o
o
UDDI
o
o
o
63
Limitaciones
Serializacin a SOAP
64
Tecnologas avanzadas
para el desarrollo
de Web Services
Estndares Avanzados de WS
66
Estndares Avanzados de WS
http://www.innoq.com/soa/ws-standards/poster/
INCO - Facultad de Ingeniera Montevideo, Uruguay
67
Segunda Generacin de
Estndares para WS
68
Conceptos bsicos
en Seguridad
Confidencialidad, integridad,
autenticacin y no repudio
Introduccin
Confidencialidad de la informacin
Integridad de la informacin
Autenticacin de usuarios
No repudio
70
Confidencialidad
Cifrado simtrico
Cifrado asimtrico
71
Cifrado simtrico
72
73
Cifrado asimtrico
74
Cifrado asimtrico
75
Firma digital
La autenticidad del
origen de la informacin
Que la informacin est
intacta
76
Firma digital
77
No repudio
78
Seguridad en WS
Introduccin
80
Seguridad en Capa de
Transporte (SSL/TLS)
Opcin estndar
Garantiza la autenticacin de usuarios, as
como la integridad y confidencialidad de la
informacin.
Permite establecimiento de sesiones seguras
Transparente a las aplicaciones
Soportado por varios proveedores
Tecnologa conocida y madura
81
Seguridad en Capa de
Transporte (SSL/TLS)
SSL & TLS Essentials: Securing the Web. Stephen A. Thomas. John Wiley & Sons. 2000.
INCO - Facultad de Ingeniera Montevideo, Uruguay
82
Sin embargo
HTTP
83
Sin embargo
84
WS-Security
WS-SecureConversation
WS-Trust
85
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
86
<envelope>
Escenario:
<header>
Security Token
Deposito
en cuenta bancaria
<security>
<envelope>
<binarysecuritytoken></binarysecuritytoken>
<header>
Mensajes SOAP
encriptados y
<signature></signature>
firmados va certificados
X.509
</security>
Servicio y cliente
autenticados
</header>
</header>
va certificados
X.509
Firma
<body>
<body>
<depositar>
<depositar>
<cuenta>123459</cuenta>
<EncryptedData><CipherData>
<monto>100.000</monto>
<CipherValue>A23B45C56</CipherValue>
<moneda>pesos-uy</moneda>
</CipherData></EncryptedData>
<fecha>09-03-2009</fecha>
<fecha>09-03-2009</fecha>
</depositar>
</depositar>
</body>
Certificado del
</body>
cliente
</envelope>
</envelope>
Certificado
Cifrado del
servicio
87
WS+SSL vs WS-Security
Caractersticas
WS+SSL
WS-Security
Estndar
Seguridad
A nivel de transporte
A nivel de applicacin
Confidencialidad
Todo el mensaje.
Autenticacin de
clientes
X.509
Usuario/Passwd, X.509,
Kerberos, SAML.
Protocolo
Potencialmente varios.
HTTP el ms popular.
Potencialmente varios.
HTTP el ms popular.
Algoritmos de
cifrado
Simtricos
Simtricos y asimtricos
En gral, asimtrico
Sesiones seguras
No, pero
WS-SecureConversation
88
Costos: Performance
http://www.ibm.com/developerworks/java/library/j-jws6/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay
89
Sin embargo
Small responses
90
Large responses
http://www.ibm.com/developerworks/java/library/j-jws14/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay
91
Fin