Академический Документы
Профессиональный Документы
Культура Документы
Web Services
l l l l l
EDWIN MONTOYA
emontoya@eafit.edu.co
l l
Universidad EAFIT
Evolucin de las Aplicaciones Distribuidas Soluciones propuestas para Interoperabilidad Modelo de Aplicaciones Web Que son los Servicios Web Cuales son los protocolos y tecnologas relacionados con los Servicios Web Algunas aplicaciones claves de los Servicios Web Conclusiones
Antecedentes (1/2)
La idea general alrededor de Web Services no es algo nuevo. Antecesores en el tema de computacin distribuida han existido y funcionado: RPC, EDI, CORBA, COM, APPC La diferencia se encuentra en el alto nivel de encapsulacin e independencia entre las aplicaciones. El gestor de la iniciativa es W3C, garante de evolucin y futuro. Programa a usuario Semantic Web
Antecedentes (2/2)
Evolucin tecnolgica: Cdigo libre Programacin estructurada Programacin orientada a objetos Objetos distribuidos - Componentes Evolucin de integracin de aplicaciones: Computacin por departamentos Interfaces punto a punto (spaguetti code) Sistemas ERP Soluciones de middleware Necesidad de establecer conexines tanto entre aplicaciones internas como B2B.
Hay distribucin, pero todo lo sigue haciendo el Servidor. Este modelo no es malo, como se critico en su momento, de hecho el mismo Web simula esta situacin Ej: telnet, Xwindows, Windows Terminal, VNC, etc.
Cliente
(presentacin)
Servidor
(Aplicacin + Datos)
RED
RED Select * from empleados Pedro, Juan, Camilo, Consulta cuenta 1 Consulta cuenta 2 Actualizacin cuenta1 Actualizacion cuenta2 Adicionar movimientos
l l l l l l
En el Cliente se haya la Presentacin y la Lgica del Negocio En el Servidor se hayan los Datos (Bases de Datos) Se supone que las entidades intercambian sentencias SQL NO orientado a transacciones Muy orientado a 4GL Procedimientos almacenados. Lgica del negocio en la base de datos. Dependiente.
Objetos Distribuidos
l l
Procesadores de Transacciones:
SQL
Servidor
(Datos + SP)
Primeros pasos en RPCs A finales de los 80s emergi DCE (Distributed Computing Environment) como una iniciativa para estandarizar las diferentes tecnologas de RPC. No considera tecnologas de Mensajera. xito del modelo Orientado a Objetos tanto en Anlisis/Diseo como en Desarrollo. Por qu no extender este modelo a un ambiente distribuido Un cliente en cualquier parte de la red, invoca un mtodo de un objeto remoto. Adecuados en comunicaciones:
RED
Objetos Distribuidos
Objetos Distribuidos
Arquitecturas propuestas
RMI (Invocacin Remota de Mtodos)
Independiente del sistema operativo Solo un lenguaje: JAVA Un solo sistema operativo: Familia Microsoft Varios Lenguajes: Visual Basic, C++, C Independiente del Sistema Operativo Varios lenguajes: Java, c, c++, ada, cobol, vb,
DCOM de Microsoft
CORBA de la OMG
CORBA/RMI/DCOM CLIENTE
RMI/DCOM/CORBA
SERVIDOR
RMI/DCOM/CORBA
SERVIDOR
HTTP Request
HTTP Request
Proxy Server
Protocolo sin estado (stateless) Browser Servidor Web: GET recursos Servidor Web Browser: recurso esttico (html, imgenes, ) HTML, sintaxis y semntica de visualizacin MIME (texto, html, imgenes, binarios, videos, etc) Hipertexto Hipermedia
Formateo de datos
www.cs.huji.ac.il:80
File System
HTTP/CGI
l
Aplicaciones Web (Web Applications) HTTP/HTML fue diseado originalmente para acceder a recursos compartidos, NO para ejecucin de aplicaciones remotas
Recursos estticos
Web Form es una pgina HTML con uno o ms campos de entrada y un boton obligatorio Submit Una vez click sobre el boton Submit el browser envia el contenido de los campos de entrada hacia el servidor. Arma un mensaje HTTP para enviar el requerimiento y luego invoke un mtodo GET o POST en el lado del servidor. El servidor pasa el requerimiento y sus parametros a otro programa usando un protocolo llamado CGI
Web Server
HTML docs
Web Server
3
Variables Ambiente
Submit
HTTP
submit
1 2 POST
Web Client
Internet TCP/IP
HTTP
CGI
Programa CGI
6 Read Envirtonment
Apps
DBMS
7
Standard Input
8
9 Standard Output
BD
Componentes Distribuidos
l
HTTP/HTML
BROWSER
Web Server
l l
Evolucin de los Objetos Distribuidos Bloques de construccin de aplicaciones llamados COMPONENTES Conceptos de CONTENEDORES Servicios disponibles para los Componentes ofrecidos por el Contenedor
App Server
CORBA/RMI/DCOM
App Server
Comunicaciones Transacciones Ejecucin Ciclo de Vida Persistencia J2EE, con JSP/Servlets como tecnologas de Web Application DNA, con ASP como tecnologa Web Application
Plataformas ms representativas
Arquitectura J2EE
Browsers
PDAs
HTTP
HTTP
Servlets
Propietario
JDBC
Propietario
Web Services
Repositiorio de Contexto
Bases de Datos
Formas de Windows
Browsers
Dispositivos inalmbricos
HTTP
HTTP
Repositiorio de Contexto
Bases de Datos
Sistemas de socios
Source: TheServerSide.com
En HP Labs se comienza a mediados de los 90s se comienza a explorar alternativas para reducir los problemas bien conocidos tcnicos y de costos en los sistemas distribuidos. Esto condujo a e-Speak, como uno de las primeras tecnologas de precursoras de Web Services comerciales. (liberado en 1999) Utiliz HTTP como transporte y XML como representacin de datos y los servicios se conocian como e-services UserLand Community Protocolo Simple para realizar llamados a funciones sobre sistemas remotos. XML-RPC es an muy popular, en especial en la comunidad del Open Source Algunos problemas con el manejo de formatos de mensajes, ya que utiliza completamente XML.
Industria del EDI: EDI/SMTP y EDI/HTTP para realizacin de transacciones formateando los datos en XML Comunidades trabajando en los problemas de:
XML-RPC
E-Business XML (ebXML), liderado por SUN Microsoft comienza a trabajar en SOAP (1999) Primera guerra por dominacin del mercado precursor de WS
ebXML vs SOAP
Movimiento Actual
En abril de 1991, W3C WorkShop on Web Services (WSWS) trazo muchas de las directrices futuras de Web Services. Se propuso muchos trabajos futuros a considerar
WIDL (Web Interface Definition Languaje) by WebMethods Microsoft desarrollo SDL (Service Description Language) y SCL (SOAP Contract Language), 2000 Microsoft tambin desarrollo DISCO (Discovery of Web Services), localizar descriptores de servicios SCL IBM crea NASSL (Network Accessible Service Specification Language), hace lo mismo que SDL y SCL IBM crea ADS (Advertisement and Discovery of Services), hace lo mismo que DISCO Se finaliza con WSDL originalmente desarrollado por IBM, Microsoft y Ariba Igualmente se finaliza con UDDI (Universal Description, Discovery and Integration) un sistema para directorios (paginas amarillas, blancas y grises) de servicios Web.
l l
IBM con WSEL (web service endpoint language) (QoS) IBM con WSFL (web service flow language) HP con web semantica Verisign en Seguridad
2002 ao de consolidacin de los Web Services En Febrero de 2002, IBM, Microsoft, Intel, BEA y otras compaias formaron Web Services Interoperability Organization (WS-I),
Los Web Services son una arquitectura de computacin distribuida en evolucin que usan sus propias interfaces programa-programa, protocolos y servicios de registro de tal manera que posibilitan que aplicaciones de diferentes plataformas tecnolgicas puedan utilizar servicios de otras aplicaciones. Un Web Service se aprovecha de la especificacin de XML para definir tanto su descripcin, como los mensajes que recibe y produce al igual que en los servicios de registro del servicio.
l l l
Semnticamente encapsula funcionalidades discretas. Sistemas Debilmente-Acoplados, Componentes Reutilizables Accesibles programaticamente Distribuido Sobre Internet Dado que todas las comunicaciones se realizan en XML los Web Services no dependen de sistemas operativos especficos De acuerdo a esto, Java puede hablar con Perl, Windows con Unix.
Cont.
l
De la definicin anterior se desprende que los Web Services tienen dos propiedades adicionales:
1) Deben tener una interfaz pblica definida en una gramtica comn en XML, la interfase describe todos los METODOS disponibles a los clientes y especifica la firma para cada mtodo
FIND WDSL + UDDI
La definicin de esta interfaz se hace con el lenguaje WSDL (Web Service Description Language) 2) Si usted crea un servicio Web, debe tener una forma de publicarlo, debe existir una forma de localizar el servicio y localizar su interfase pblica, esto se hace con UDDI (Universal Description, Discovery, and Integration)
Flujo de servicios CALIDAD DE SERVICIO Descubrimiento de servicios ADMINISTRACIN Publicacin de servicios SEGURIDAD Descripcin de Servicios Mensajera basada en XML Servicios de Red
WSDL
(*) No es un estndar de la industria, ha sido propuesto por Microsoft e IBM entre otros. (**) Es una propuesta de IBM
Cont.
WSFL: Un marco de trabajo para describir la lgica de negocio requerida para ensamblar varios servicios en un proceso de negocio extremo a extremo.
* ebXML: Define los componentes core, procesos de negocio, registro y repositorios, servicios de mensajera.
Hasta hace poco, no se haba conseguido el objetivo de tener un protocolo adaptado de manera universal para la comunicacin entre aplicaciones: SNA, RPC, IIOP, COM El fundamento de la comunicacin de red en la arquitectura de Web Services son los protocolos de Internet, en especial HTTP.
Normalmente existen dos categoras de mensajes en la comunicacin entre aplicaciones: - Con documento a ser procesado remotamente. - Que contienen comandos a ser ejecutados. Soluciones utilizadas: MQSeries, Java RMI, Microsoft COM, etc. SOAP, basado en XML, define los estndares para el manejo de las dos categoras de mensajes, tanto para la invocacin de comandos, como para el procesamiento de documentos.
Se hace necesario el conocer con precisin cules son los servicios disponibles por parte de un proveedor de servicios, adems de la descripcin de la interfaz de cada uno de esos servicios. Esta descripcin de los servicios soportados por un Web Service se establece a travs de WSDL.
PUBLICACIN Y DESCUBRIMIENTO DE SERVICIOS
Aunque no hay un estndar definido para ello, la iniciativa de UDDI es el principio del trabajo de estandarizacin en esta va.
IBM
Discovery USML (multiple queries for service discovery) UDDI (service discovery from repository) WS-Inspection (inspection for available services)
Microsoft
Discovery UDDI (service discovery from repository) WS-Inspection (inspection for available services) Description XLANG (message exchange behavior) WSML (mapping service to methods of COM object) WSDL (service description)
Description WSCM (component model), plan to include WSXL, WSUI and other specs WSFL (composition, usage and interaction of services) WSEL (non-operational characteristics, like QoS) WSDL (service description)
Packaging/Extensions WS-Referral (configuration of SOAP nodes with routing rules) WS-Routing (rules for message routing) WS-Security (credentials exchange, confidentiality and integrity) WS-License (encoding of credentials) SOAP-DSIG (security) SWA (MIME packaging) DIME (binary packaging)
http://webservices.xml.com/pub/a/ws/2002/01/09/soap.html
Transport
MODELO WEB-SERVICES
Source: TheServerSide.com
Source: TheServerSide.com
Source: TheServerSide.com
La Suite JAX*
l
Qu es XML-RPC?
l
JAXR (Java API for XML Registries): para encontrar el web service del socio de negocio. JAX/RPC (Java API for XML RPC): para enviar requerimientos RPC a web services externos. JAXM (Java API for XML Messaging): para enviar mensajes SOAP/ebXML a web services externos. JAXP (Java API for XML Parsing) y JAXB (Java API for XML Binding): para transformar datos java en formato XML y viceversa y ejecuta transformaciones XSLT para convertir esquemas.
l l
Es un protocolo basado en XML que usa mensajes RPC. Los requerimientos son codificados en XML y enviados va HTTP POST, las respuestas vienen embebidas en mensajes RESPONSE de HTTP. XML-RPC = HTTP + XML + RPC XML-RPC es independiente de la plataforma: Un cliente Java, puede hablar con un servidor XML-RPC de perl.
</methodCall >
Explicacin: Se usa el mtodo methodcall el cual especifica el nombre del mtodo weather.getWeather y una direccin postal 10016
l l
Para intercambio de informacin en un ambiente distribuido Formato de mensajes basados en XML Puede ser combinado con varios protocolos de transporte Originalmente desarrollado por Microsoft
The SOAP envelope: describe Qu esta en un mensaje y Como procesarlo. The SOAP binding framework (adicionado en versin 1.2): Intercambia SOAP envelopes entre pares usando un protocolo de transporte inferior The SOAP encoding rules: Intercambia instancias de tipos de datos definidos por aplicacin. The SOAP RPC representation: Una convencin para representar llamadas a procedimientos remotos y sus respuestas.
Un Mensaje SOAP
<env:Envelope xmlns:env="http://www.w3.org/2001/09/soap-envelope"> <env:Header> <n:alertcontrol xmlns:n="http://example.org/alertcontrol"> <n:priority>1</n:priority> <n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol> </env:Header> <env:Body> <m:alert xmlns:m="http://example.org/alert"> <m:msg>Pick up Mary at school at 2pm</m:msg> </m:alert> </env:Body> </env:Envelope>
Source: http://www.w3.org/TR/soap12-part1/
10
Un Sobre SOAP
<env:Envelope xmlns:env="http://www.w3.org/2001/09/soapenvelope/" env:encodingStyle="http://www.w3.org/2001/09/soapencoding/"> <env:Header> <t:Transaction xmlns:t="some-URI"> env:mustUnderstand="1" 5 </t:Transaction> </env:Header> <env:Body> <m:GetLastTradePrice xmlns:m="some-URI"> <symbol>DEF</Symbol> </m:GetLastTradePrice> </env:Body> </env:Envelope>
Response (partial):
<env:Body> <m:GetLastTradePriceResponse xmlns:m="some-URI"> <price>22.50</price> </m: GetLastTradePriceResponse> </env:Body>
POST /StockQuote HTTP/1.1 HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <env:Envelope xmlns:env="http://www.w3.org/2001/09/soap-envelope" > <env:Body> <m:GetLastTradePriceResponse env:encodingStyle="http://www.w3.org/2001/09/soap-encoding" xmlns:m="http://example.org/2001/06/quotes"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </env:Body> </env:Envelope>
Tradicionalmente, antes de los Web Services una empresa deba decidir en que ambiente de desarrollo trabajar
Una vez se decida el Ambiente de Desarrollo, queda uno Cazado con dicha platarma. Con Web Services, desarrolle sus aplicaciones en lo que ms le guste e integrelas con Web Services. Una aplicacin que pareca Irreal:
La mayoria de los sistemas de Comerio Electrnico (Customer to Business, C2B) se realizaron con APLICACIONES WEB Las comunicaciones entre los servidores de aplicaciones involucrados eran Propietarios y alguna de las partes colocaba las condiciones. Ej: Los primeros pasos al Comercio Electrnico en Colombia, los Bancos determinaban los formatos, tecnologas, para comunicarse con ellos. Todas las Interacciones a nivel de servicio son entre Cliente y Proveedor.
Llamar desde una aplicacin hecha en Java y servicio hecho en ambiente Microsoft. Esto es posible gracias a los Web Services.
11
Se instala en Internet, una Agencia de Viajes Virtual Su funcin es principalmente como Broker Deseo realizar un viaje, en el cual obviamente necesito:
Inicio una transaccin en Internet para realizar mi viaje entre una fecha 1 y fecha 2 con algn nivel de holgura. Dicha transaccin es atendida por un Agente Inteligente de Software que realizar en mi nombre la transaccin. El Agente tiene toda la informacin para llevar a cabo la transaccin as como el manejo de restricciones y flujo de procesos.
Browser Cliente
Browser (Clientes)
Car Rental
Browser (Clientes)
12