Desarrollo e implementacion de un WebService.pdf
-
Upload
raul-vasquez-sandoval -
Category
Documents
-
view
17 -
download
4
Transcript of Desarrollo e implementacion de un WebService.pdf
-
Web ServicesClase 3
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 2
Agenda Introduccin
o Definicin, historia y motivacin Web Services
o Caractersticaso Tecnologas
Bsicas Avanzados
RESTo Caractersticaso Tecnologas
Conclusiones
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 3
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 SOAPmessages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.
o World Wide Web Consortium (W3C), 2006
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 4
Evolucin Middleware
Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006.
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 5
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 Enterprise Application Integration (EAI)o Business to Business (B2B)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 6
Motivacin (1)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 7
Motivacin (1) Inters de atravesar los firewalls
Middlewares existentes no provean tales caractersticas
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 8
Motivacin (2) Confianza entre empresas
o es baja y a veces, inexistente.
Autonomao Las empresas desean ser
lo ms autnomas posibles unas de otras
Confidencialidado Las empresas no quieren
guardar sus datos y transacciones en middleware de terceros
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 9
Sin embargo
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 10
Problema No es escalable
Suposicin falsao 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
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 11
B2B integration via WS
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 12
WS & EAI
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 13
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 14
WS & EAI dentro de la compaa
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 15
WS & EAI dentro de la compaa
Dentro de una empresa, los Web Services permiten una integracin EAI sin la necesidad de costosos adaptadoreso Los Web Services toman el lugar de los
adaptadoreso Ejemplo
Conectar aplicaciones .NET con JEE Conectar aplicaciones .NET con Cobol
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 16
Tipos de Web Services
Simples o de informacino Operaciones de corta duracino Patrn de comunicacin Request/Response
Pedido-Espera-Respuesta
Complejos o de procesos de negocioso Operaciones de larga duracino Coordinacin de operaciones I/O
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 17
Simples o de Informacin
Exponen las funcionalidades de negocios de una aplicacin de forma estndaro Back End escritos en Java/EJB, VB, C#, C++,
Mecanismos de comunicacin sincrnicos Operaciones atmicas
o Una nica operacin por requesto No son transaccionales
Por ms que su backend si lo sea Son stateless
o No mantienen estado entre pedidos
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 18
Complejos o procesos de negocios Composicin de servicios simples para la
implementacin de procesos de negocioso P. ej: Procesos de compra
Coordinacin de operaciones Transacciones de larga duracin Mecanismos de comunicacin asincrnicos Servicios de alta granularidad Stateful
o Mantienen el estado entre pedidos
-
Tecnologas para el desarrollo de
Web ServicesSOAP, WSDL, UDDI
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 20
Web Services Iniciativa de Microsoft e IBM en el ao 2000
para resolver necesidades de las reas EAI y B2B
Resultado:o Primera generacin de Web Serviceso Un conjunto de estndares de comunicacin
basado en XML y tecnologas Web (http, tcp, smtp, etc)o WSDL, SOAP, UDDI
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 21
Requerimientos bsicos para llevar a cabo una comunicacin
Sintaxis
Formato
Transporte
Interfaceso Definicin de operaciones y parametros I/O
Descubirimiento/Bsqueda
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 22
Requerimientos bsicos para llevar a cabo una comunicacin
Sintaxiso XML
Formatoo SOAP
Transporteo Tecnologas Web (http, smtp, etc)
Interfaceso WSDL
Descubirimiento/Bsquedao UDDI
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 23
Cmo funciona?
-
Simple Object Access Protocol (SOAP)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 25
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.
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 26
SOAP Provee una forma estndar de estructurar mensajes
utilizando XML
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.
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 27
Mensaje SOAP
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 28
Un ejemplo
32004-02-25T01:00:00-03:00true
Widgets 100 20.5
Envelope
Body
Header
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 29
Mensaje SOAP La estructura bsica de un mensaje SOAP consiste
de un elemento Envelope el cual contieneo un elemento opcional Headero 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
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 30
Mensaje SOAP Header 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
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 31
Mensaje SOAP Header ... ... ...
12345
john1234
... ... ...
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 32
Mensaje SOAP Body Contiene la informacin a ser intercambiada
entre el cliente y servicio
En el Body tpicamente se especifica:o una solicitud para efectuar cierta operacino la respuesta a cierta solicitud que puede ser:
un resultado o un error (fault)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 33
Mensaje SOAP Body
red
rojo
resultado
solicitud
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 34
Mensaje SOAP Fault El elemento Fault indica la ocurrencia de un
error en el procesamiento del mensajeo Comprensin del mensaje
Error de sintaxiso Infraestructura
Error de red: HTTP 500 Internal Server Erroro Negocio
No existe la cuenta con nmero X
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 35
Mensaje SOAP Fault Tiene 5 sub-elementos:
o Codeo Reasono Detailo Node (opcional)o Role (opcional)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 36
Ejemplo
env:Sender
m:InvalidPurchaseOrder
Specified product did not exist
El producto solicitado no existe
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 37
Procesamiento de Mensajes En el modelo SOAP pueden existir varios nodos
intermediarios que procesan los mensajes
Usos comunes: auditora, compresin, seguridad, etc.
http://www14.informatik.tu-muenchen.de/konferenzen/Jass05/courses/6/Papers/10.pdf
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 38
Procesamiento de Mensajes Los header blocks pueden incluir informacin que
especifique para qu rol est destinado el bloque (atributo role)
SOAP define tres posibles valores para dicho atributo: none, ultimateReceiver y next
SOAP no incluye un mecanismo para especificar la ruta que debe seguir un mensaje SOAP hasta llegar al WS destino
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 39
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 transporteo cmo los mensajes SOAP deben ser tratados con
las primitivas del protocolo
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 40
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 Binding JMS (estndar) http://www.w3.org/TR/soapjms/
o Binding TCP (propietario) http://blogs.sun.com/oleksiys/entry/soap_tcp_makes_web
_services
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 41
SOAP Bindings
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 42
Implementacin simple sobre http
-
Web Service Description Language
(WSDL)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 44
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
Actualmente, en versin 2.0
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 45
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)?
Un documento WSDL se divide en dos partes:o descripcin abstractao descripcin concreta
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 46
WSDL Descripcin Abstracta La descripcin abstracta describe de forma
general la estructura de la interfaz del Web Service, que incluye operaciones, parmetros y tipos de datos abstractos
Los cuatro elementos XML que componen la descripcin abstracta son:o o o
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 47
WSDL types
El elemento types encapsula todas las definiciones abstractas de tipos de datos
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 48
WSDL messages El elemento messages representa de forma
abstracta los parmetros de entrada y salida para una operacin
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 49
WSDL portType
El elemento portType es el contenedor de todas las operaciones abstractas y describe una interfaz especfica del servicio
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 50
WSDL Descripcin Concreta La descripcin concreta asocia a una
descripcin abstracta una direccin de red concreta, un protocolo de comunicacin y estructuras de datos concretas
Los tres elementos XML que componen la descripcin concreta son:o o
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 51
WSDL binding Este elemento asocia un portType, y sus
mensajes y operaciones, a un protocolo de transporte y un formato de mensaje
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 52
WSDL service y port
El elemento port especifica la direccin de red para un determinado binding
El elemento service es un contenedor de elementos port
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 53
Cmo lo uso?
Proporcionado por plataformas de desarrollo
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 54
Jugar con WS Seekda
o http://webservices.seekda.com/providers/webservicex.com/GlobalWeather
.NETo Getting Started Tutorialo http://msdn.microsoft.com/en-
us/library/ms734712.aspx JBoss
o http://community.jboss.org/wiki/JBossWS-UserGuide
-
Universal Description, Discovery and
Integration (UDDI)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 56
UDDI Estndar de la OASIS que provee una forma
estndar de publicar, categorizar y buscar Web Services
UDDI defineo Un directorio y un modelo de datos para almacenar
informacin de servicios y negocioso 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 57
Registro UDDI El registro de un negocio en UDDI tiene tres
partes:o Pginas blancas - direccin, contacto y otros
identificadores conocidos.o Pginas amarillas - categorizacin industrial
basada en taxonomas.o Pginas verdes - informacin tcnica sobre los
servicios que aportan las propias empresas.
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 58
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
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 59
Modelo de Datos UDDI
Developing Java Web Services. Ramesh Nagappan, Robert Skoczylas, Rima Patel Sriganesh. Wiley Publishing. 2003.
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 60
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
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 61
Interfaces UDDI Interfaz de Publicacin (publish)
o Un proveedor de Web Services utiliza esta interfaz para publicar, actualizar o eliminar informacin en el registro UDDI
o Dos tipos de operaciones: save y delete
Interfaz de Bsqueda (inquiry)o Un consumidor de Web Services utiliza esta interfaz para
buscar Web Services, proveedores de Web Services e informacin de los mismos
o Dos tipos de operaciones: find y get
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 62
Interfaces UDDI: Subscripcin Objetivo: proveer un mecanismo a los clientes, para
recibir informacin concerniente a los cambios que se realizan en el registro UDDI
Dos mecanismos de comunicacino Sincrnico
Operacin getSubscriptionResultso Asincrnico
Va mail o Web Services SOAP Clientes pueden implementar la operacin
notify_subscriptionListener
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 63
Resumen
SOAPo Define el formato y transporte de los mensajes
WSDLo Describe las interfaces de los servicioso Describe operaciones, mensajes, estructuras de datos,
protocolos de transporte, etc UDDI
o Permite el desarrollo de directorios de Web Serviceso Clasificacin de servicios por parte de proveedoreso Bsqueda de servicios por clientes/consumidores
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 64
Limitaciones
Serializacin a SOAP
Descripcin de caractersticas no funcionales en un WSDL
Seguridad? Transacciones? Mensajera?o Los Web Services bsicos no proveen soluciones
a este tipo de requerimientos empresariales
-
Tecnologas avanzadas para el desarrollo de Web Services
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 66
Estndares Avanzados de WS Los estndares bsicos no abordan problemticas
comunes en contextos empresarialeso Confiabilidad, seguridad, transacciones, etc.
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 67
Estndares Avanzados de WS
http://www.innoq.com/soa/ws-standards/poster/
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 68
Segunda Generacin de Estndares para WS
-
Conceptos bsicosen Seguridad
Confidencialidad, integridad, autenticacin y no repudio
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 70
Introduccin Algunos requerimientos empresariales
en seguridado Confidencialidad de la informacino Integridad de la informacino Autenticacin de usuarioso No repudio
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 71
Confidencialidad
Cifrado simtrico
Cifrado asimtrico
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 72
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 informacino 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)
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 73
Ejemplo: Cifrado Csar 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 LIBRETexto codificado: CPVKJG, QG KSIIQUVKJG QHXK
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 74
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)
De esa forma, una de las claves puede ser hecha pblica
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 75
Cifrado asimtrico
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 76
Firma digital Las firmas digitales
permiten al receptor de la informacin verificaro La autenticidad del
origen de la informacin o Que la informacin est
intacta
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 77
Firma digital En muchos sistemas prcticos, se utiliza
criptografa asimtricao Si encriptamos mensaje con la clave privada,
alcanza con verificar que es desencriptado correctamente con la clave pblica
Los algoritmos asimtricos son lentoso Se encripta un hash del mensaje con la clave
privada
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 78
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]
-
Seguridad en WS
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 80
Introduccin Dos alternativas para proveer seguridad
entre Web Services:o Seguridad en Capa de Transporte (SSL/TLS)
Seguridad provista por el canal de comunicacino Seguridad a nivel de Mensaje SOAP
Seguridad incluida en el propio mensaje
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 81
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
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 82
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 83
Sin embargo
HTTP
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 84
Sin embargo Cifrado y firmado de mensajes punto a punto
o Intermediarios pueden dejar huecos de seguridad
Autenticacin de usuarios punto a puntoo Autenticacin del usuarios trabajosa si hay
intermediarios Cifrado de todo el mensaje Dependiente del protocolo de transporte
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 85
Seguridad a nivel de mensaje Toda la informacin de seguridad es
encapsulada en el propio mensaje
Estndares que dan soporte a este mecanismo:o WS-Securityo WS-SecureConversationo WS-Trust
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 86
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 SOAPo Usuario/Password, certificados X.509, etco Permite la autenticacin de usuarios!
Es un estndar
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 87
Escenario: Deposito en cuenta bancaria
Mensajes SOAP encriptados y firmados va certificados X.509 Servicio y cliente autenticados
va certificados X.509
Certificado del servicio
Certificado del cliente
123459
100.000
pesos-uy
09-03-2009
A23B45C56
09-03-2009
Security Token
Firma
Cifrado
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 88
WS+SSL vs WS-SecurityCaractersticas WS+SSL WS-Security
Estndar S S
Seguridad A nivel de transporte A nivel de applicacin
Confidencialidad Todo el mensaje. Todo o partes del mensajeAutenticacin 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 asimtricosEn gral, asimtrico
Sesiones seguras S No, pero WS-SecureConversation
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 89
Costos: Performance
http://www.ibm.com/developerworks/java/library/j-jws6/index.html
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 90
Sin embargo Small responses
-
INCO - Facultad de Ingeniera Montevideo, Uruguay 91
Large responses
http://www.ibm.com/developerworks/java/library/j-jws14/index.html
-
Fin