Академический Документы
Профессиональный Документы
Культура Документы
Agenda
Introduccin
o
Web Services
o
o
Caractersticas
Tecnologas
Bsicas
Avanzados
REST
o
o
Caractersticas
Tecnologas
Conclusiones
INCO - Facultad de Ingeniera Montevideo, Uruguay
Motivacin (1)
Motivacin (1)
Motivacin (2)
Motivacin (2)
Motivacin (2)
Motivacin (2)
Autonoma
o
es baja y a veces,
inexistente.
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
16
Silos de informacin
Diferentes tecnologas
Contabilidad, inventario, logstica
Fusin de empresas
INCO - Facultad de Ingeniera Montevideo, Uruguay
17
18
Definicin
19
Evolucin Middleware
20
Simples o de informacin
o
o
Pedido-Espera-Respuesta
21
Simples o de Informacin
o
o
Son stateless
o
22
Compuestos o procesos de
negocios
Coordinacin de operaciones
Transacciones de larga duracin
Mecanismos de comunicacin asincrnicos
Servicios de alta granularidad
Stateful
23
Ejemplo
24
OrderGoods
25
Tecnologas para
el desarrollo de
Web Services
SOAP, WSDL, UDDI
Web Services
Resultado:
o
o
27
Sintaxis
Formato
Transporte
Interfaces
o
Descubirimiento/Bsqueda
28
Sintaxis
o
Formato
o
Interfaces
o
SOAP
Transporte
o
XML
WSDL
Descubrimiento/Bsqueda
o
UDDI
INCO - Facultad de Ingeniera Montevideo, Uruguay
29
30
31
SOAP
33
SOAP
34
Mensaje SOAP
35
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
36
Mensaje SOAP
37
38
39
un resultado o
un error (fault)
40
<soap:Body>
<t:TranslateResponse
xmlns:t="http://....../translations">
<t:Translation>rojo</t:Translation>
</t:TranslateResponse>
</soap:Body>
solicitud
resultado
41
Infraestructura
Error de sintaxis
Error de red: HTTP 500 Internal Server Error
Negocio
42
Tiene 5 sub-elementos:
o
o
o
o
o
Code
Reason
Detail
Node (opcional)
Role (opcional)
43
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
44
Procesamiento de Mensajes
http://www14.informatik.tu-muenchen.de/konferenzen/Jass05/courses/6/Papers/10.pdf
INCO - Facultad de Ingeniera Montevideo, Uruguay
45
Procesamiento de Mensajes
46
SOAP MEP
Son los message exchange patterns (MEP)
que soporta SOAP
Algunas posibilidades
Request/Response
One-way
47
Transporte de Mensajes
48
Transporte de Mensajes
Sams Teach Yourself Web Services in 24 Hours. Stephen Potts, Mike Kopack. Sams Publishing 2003.
INCO - Facultad de Ingeniera Montevideo, Uruguay
49
SOAP Bindings
50
51
Web Service
Description Language
(WSDL)
WSDL
53
Para qu sirve?
descripcin abstracta
descripcin concreta
54
o
o
<wsdl:types>
<wsdl:message>
<wsdl:portType>
<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
<message name="getWeatherIn">
<part name=CityIn element=tns:City"/>
<part name=CountryIn element=tns:Country"/>
</message>
57
WSDL portType
<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
<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
<service name=WeatherService>
<port name=weatherServicePort
type=tns:weatherServiceSoapBinding>
<soap:address
location=http://.../weather//>
</port>
</service>
61
Cmo lo uso?
62
Universal Description,
Discovery and
Integration (UDDI)
UDDI
UDDI define
o
64
Registro UDDI
65
Registro UDDI
66
Developing Java Web Services. Ramesh Nagappan, Robert Skoczylas, Rima Patel Sriganesh. Wiley Publishing. 2003.
INCO - Facultad de Ingeniera Montevideo, Uruguay
67
Interfaces UDDI
68
Interfaces UDDI
69
Sincrnico
Operacin getSubscriptionResults
Asincrnico
Va mail o Web Services SOAP
Clientes pueden implementar la operacin
notify_subscriptionListener
INCO - Facultad de Ingeniera Montevideo, Uruguay
70
Sin embargo
Complejo de consultar
o
Moraleja:
o
o
http://www.agesic.gub.uy/innovaportal/v/1602/1/agesi
c/catalogo_de_servicios.html
INCO - Facultad de Ingeniera Montevideo, Uruguay
71
Resumen
SOAP
o
WSDL
o
o
UDDI
o
o
o
o
81
Limitaciones
Serializacin a SOAP
82
Tecnologas avanzadas
para el desarrollo
de Web Services
Estndares Avanzados de WS
84
Estndares Avanzados de WS
http://www.innoq.com/soa/ws-standards/poster/
INCO - Facultad de Ingeniera Montevideo, Uruguay
85
Segunda Generacin de
Estndares para WS
86
Conceptos bsicos
en Seguridad
Confidencialidad, integridad,
autenticacin y no repudio
Requerimientos empresariales
Confidencialidad de la informacin
o
Integridad de la informacin
o
88
Requerimientos empresariales
Autenticacin de usuarios
o
No repudio
o
89
Confidencialidad
Cifrado simtrico
Cifrado asimtrico
90
Cifrado simtrico
91
92
Cifrado asimtrico
93
Cifrado asimtrico
94
Cifrado asimtrico
95
Firma digital
La autenticidad del
origen de la informacin
Que la informacin est
intacta
96
Firma digital
97
Firma digital
98
No repudio
99
Seguridad en WS
Escenario
El Web Service requiere autenticar de las
aplicaciones clientes
El Web Service requiere mantener la
confidencialidad de cierta informacin
intercambiada
El Web Service debe rechazar mensajes
enviados por el cliente hace ms de 5
minutos
101
Introduccin
102
Introduccin
103
10
4
INCO - Facultad de Ingeniera Montevideo, Uruguay
104
10
5
INCO - Facultad de Ingeniera Montevideo, Uruguay
105
Basic Authentication
10
6
106
Basic Authentication
107
Basic Authentication
1.
2.
3.
4.
10
8
108
Digest Authentication
Nonces, etc
10
9
INCO - Facultad de Ingeniera Montevideo, Uruguay
109
Es estndar
Autenticacin mutua
de servidores
Integridad y
confidencialidad de la
informacin.
Sesiones seguras
Transparente a las
aplicaciones
o
Configurado a nivel de
servidor Web
INCO - Facultad de Ingeniera Montevideo, Uruguay
11
0
110
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
111
Sin embargo
112
113
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
o
114
WS-Security
XML Encryption
o
o
XML Signature
o
o
o
11
5
115
XML Encryption
11
6
INCO - Facultad de Ingeniera Montevideo, Uruguay
116
XML Signature
11
7
INCO - Facultad de Ingeniera Montevideo, Uruguay
117
Adems
Autenticacin de usuarios!
Diferentes tipos de token:
Username Token
Binary Security Token
SAML (Security Assertion Markup Language)
Creacin y vencimiento
11
8
INCO - Facultad de Ingeniera Montevideo, Uruguay
118
<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>
INCO - Facultad de Ingeniera Montevideo, Uruguay
Certificado del
Cifrado
servicio
121
Ejemplo: Timestamp
12
2
INCO - Facultad de Ingeniera Montevideo, Uruguay
122
12
3
INCO - Facultad de Ingeniera Montevideo, Uruguay
123
SSL vs WS-Security
Caractersticas
SSL
WS-Security
Estndar
Seguridad
A nivel de transporte
A nivel de applicacin
Confidencialidad/
Integridad
Todo el mensaje.
Autenticacin de
clientes
Usuario/Contrasea, 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
124
125
Desarrollos futuros
o
126
Costos: Performance
http://www.ibm.com/developerworks/java/library/j-jws6/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay
127
Adems
Small responses
128
Large responses
http://www.ibm.com/developerworks/java/library/j-jws14/index.html
INCO - Facultad de Ingeniera Montevideo, Uruguay
129
Escenario
El Web Service requiere autenticar de las
aplicaciones clientes
El Web Service requiere mantener la
confidencialidad de cierta informacin
intercambiada
El Web Service debe rechazar mensajes
enviados por el cliente hace ms de 5
minutos
130
o
o
Autenticacin (WS-Security)
Integridad (WS-Security)
Confiabilidad (SSL)
No repudio (Firma digital)
Referencia: https://www.efactura.dgi.gub.uy/
Web Service:
https://efactura.dgi.gub.uy:6443/ePrueba/ws_eprueba?wsdl
INCO - Facultad de Ingeniera Montevideo, Uruguay
131
Ejemplo de request
SOAP:Envelope
SOAP:Header
WSS:Security
xmlsig:Signature
SOAP:Body
xml:e-factura
132
Fin