Вы находитесь на странице: 1из 12

Contenido

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.

HISTORY OF DISTRIBUTED COMPUTING


l

Evolucin de las Aplicaciones Distribuidas (1)


Sistema Distribuido: Coleccin de mquinas/procesos que colaborar para cumplir un objetivo Inicio con Aplicaciones Centralizadas. Todo lo hacia un mismo equipo. Primer servicio telemtico: Emulacin de Terminal

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

Evolucin de las Aplicaciones Distribuidas (2)


Cliente/Servidor con Bases de Datos
l l

Evolucin de las Aplicaciones Distribuidas (3)


l

Cliente/Servidor con bases de datos


Cliente Servidor
(Datos + SP) (presentacin + lgica)

Modelo de 2 niveles Aparicin de n-lgicas

Presentacin Comunicaciones Lgica del Negocio Datos Trans. Fondos

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.

Evolucin de las Aplicaciones Distribuidas (4)


l

Objetos Distribuidos
l l

Procesadores de Transacciones:

Orientado a transacciones 3 niveles OLTP


Procesador Transacciones T Cliente
(presentacin lg cliente) (Lgica)

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

Cliente a Servidor Servidor a Servidor

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

World Wide Web


l

HTTP Request

Llegada del Web

Diseado originalmente para acceder a recursos compartidos Protocolo de comunicacin HTTP

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

HTTP Response http://www.cs.huji.ac.il/~dbi

HTTP Response Web Server

Formateo de datos

Diferentes tipos de recursos Navegacin y localizacin NO lineal

www.cs.huji.ac.il:80

File System

Web como plataforma para Aplicaciones Distribuidas


l l

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

Porqu no permitir solicitar datos al usuario y ejecutar aplicaciones va web?

Como capturar entrada del usuario?

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

FORMAS: <FORM > <INPUT> </INPUT> </FORM>

El recurso es el nombre de una aplicacin

3-Tier Client/Server, Web-Style


Web Browser
HTML & Form

Ejecucin programa CGI


Web Browser

Web Server

HTML docs

Web Server
3

Variables Ambiente

Submit
HTTP

submit
1 2 POST

Write 4 Envirtonment Ejecutar


5

Web Client

Internet TCP/IP

HTTP
CGI

TP Mon Legacy App|

Programa CGI
6 Read Envirtonment

Apps
DBMS
7

Standard Input
8

Tier-1 Tier-2 Tier-3

9 Standard Output

Return HTML 10 File

BD

Integracin de Aplicaciones Web con Objetos Distribuidos


l

Componentes Distribuidos
l

HTTP/HTML
BROWSER

esttico HT TP /HT ML din mic o

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

Web App Server

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

Aplicacin N-Niveles en Java

ARQUITECTURAS DE COMPONENTES J2EE


Sistema Remoto
Web Services

Web Services on J2EE

Applets / Java Apps


IIOP

Browsers

PDAs

HTTP

HTTP

Servlets

Servlets / JSP Componentes EJBs Conectores

Propietario

JDBC

Propietario

Web Services

Repositiorio de Contexto

Bases de Datos

ERP, Legacy, Mainframe

Sistemas de socios Source: TheServerSide.com

ARQUITECTURAS DE COMPONENTES Microsoft .NET


Sistema Remoto
Web Services

Web Services on .NET

Formas de Windows

Browsers

Dispositivos inalmbricos
HTTP

HTTP

ASP.NET Componentes .NET Host Integration Server


Web Services ADO.NET Propietario Web Services

Repositiorio de Contexto

Bases de Datos

ERP, Legacy, Mainframe

Sistemas de socios

Source: TheServerSide.com

Precursores de Web Services


l l

Precursores de Web Services


l

Algunos trabajos importantes: HPs e-Speak

XML y los protocolos de Internet motivaron a diferentes grupos:

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:

Enterprise Application Integration (EAI) Business-to-Business (B2B)

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

Precursores de Web Services



SOAP es solo un protocolo de comunicacin, requiere de metadatos. Muchas iniciativas para metadatos:
l

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),

INTRODUCCIN A WEB SERVICES


l

Qu son los Web Services?


l l

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

INTRODUCCIN A WEB SERVICES Actores, Objetos y Operaciones

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

Registro del servicio

Descripcin del servicio

PUBLISH WDSL + UDDI Servicio

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)

Solicitante del servicio


BIND

Proveedor del Servicio


Descripcin del servicio

INTRODUCCIN A WEB SERVICES Stack de Componentes


l
WSFL(**)

Niveles Inferiores de Transporte


Protocolos Comunes Internet (HTTP, HTTPS, SMTP, FTP): son la base para el marco de trabajo para Web Services XML: Un formato ampliamente aceptado para intercambiar datos y su correspondiente semntica. SOAP: Un protocolo basado en XML-based para Mensajera y comunicaciones estilo RPC para comunicaciones entre aplicaciones (en un ambiente distribuido)

Flujo de servicios CALIDAD DE SERVICIO Descubrimiento de servicios ADMINISTRACIN Publicacin de servicios SEGURIDAD Descripcin de Servicios Mensajera basada en XML Servicios de Red

UDDI (*) UDDI (*)

WSDL

SOAP HTTP, FTP, SMTP, MQSeries, IIOP

(*) No es un estndar de la industria, ha sido propuesto por Microsoft e IBM entre otros. (**) Es una propuesta de IBM

Componentes de Web Services


UDDI: Universal Description, Discovery and Integration. Permite que las aplicaciones puedan ser listadas y localizadas de manera gil y eficaz. (No es un estndar actualmente). WDSL: Web Services Description Language. Es una plantilla o interfaz que permite a las aplicaciones el describirle a otras aplicaciones, las reglas para interactuar entre s. SOAP: Simple Object Access Protocol Provee los mecanismos para la ejecucin de llamadas a procedimientos remotos entre programas, de tal manera que se puedan establecer de manera eficiente las comunicaciones de tipo programa a programa.
l

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.

Problemas que ataca (1/3)


ESTANDARIZACIN DE COMUNICACIN DE RED

Problemas que ataca (2/3)


ESTANDARIZACIN DE MENSAJES

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.

Problemas que ataca (3/3)


ESTANDARIZACIN DE DESCRIPCIN DE SERVICIOS

Ventajas que ofrece


Facilita que los desarrolladores de aplicaciones se dejen de preocupar en los problemas de infraestructura y se focalicen en el desarrollo de aplicaciones colaborativas. Ayuda a la reduccin de costos en los ciclos de desarrollo de software, debido a la reutilizacin de esfuerzos. Se abren nuevas oportunidades de mercadeo, en donde se pueden vender Web services a terceros para su aprovechamiento. Ayuda a que clientes, empleados y socios de negocios a tener acceso personalizado en dispositivos diversos.

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 SOAP-DSIG (security) SWA (MIME packaging) Transport HTTPR (reliability)

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

Modelos de Implementacin de Web Services

Source: Sun Microsystems, Inc.

Un caso de uso de SOAP

Como trabaja WSDL

Source: Sun Microsystems, Inc.

Source: Sun Microsystems, Inc.

Como trabaja ebXML

Procesamiento de un Requerimiento Web Service

Source: Sun Microsystems, Inc.

Source: TheServerSide.com

Registrando/Descubriendo un Servicio Web

Requerimientos de Mensajera y Estilo RPC

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.

Ejemplo de requerimiento XML-RPC de servicios climatolgicos


(No se muestran los encabezados HTTP) <?xml version="1.0" encoding="ISO-8859-1"?> <methodCall> <methodName>weather.getWeather</methodName> <params>
<param><value>10016</value></param> </params>

Ejemplo de Respuesta XML-RPC de servicios climatolgicos


<?xml version="1.0" encoding="ISO-8859-1"?> <methodResponse> <params> <param> <value><int>65</int></value> </param> </params> </methodResponse> Explicacin: se usa el mtodo <methodResponse> el cual especifica el valor de retorno de la temperatura en F. de 65.

</methodCall >

Explicacin: Se usa el mtodo methodcall el cual especifica el nombre del mtodo weather.getWeather y una direccin postal 10016

Simple Object Access Protocol (SOAP)


l

Partes del SOAP


l

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>

Composicin de un Sobre SOAP

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>

SOAP Request and Response


Request (partial):
<env:Body> <m:GetLastTradePrice xmlns:m="some-URI"> <symbol>DEF</symbol> </m:GetLastTradePrice> </env:Body>

Response (partial):
<env:Body> <m:GetLastTradePriceResponse xmlns:m="some-URI"> <price>22.50</price> </m: GetLastTradePriceResponse> </env:Body>

Mensaje SOAP en un Requerimiento HTTP


POST /StockQuote HTTP/1.1 Host: www.example.org Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "http://example.org/2001/06/quotes" <env:Envelope xmlns:env="http://www.w3.org/2001/09/soapenvelope" > <env:Body> <m:GetLastTradePrice env:encodingStyle="http://www.w3.org/2001/09/soapencoding" xmlns:m="http://example.org/2001/06/quotes"> <symbol>DIS</symbol> </m:GetLastTradePrice> </env:Body> </env:Envelope>

Mensaje SOAP en una Respuesta HTTP

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>

Algunas de las Principales Aplicaciones de los Web Services


l

Ebussines y Agentes Inteligentes


l

Interoperabilidad entre ambientes de desarrollo

Antes de los Web Services

Tradicionalmente, antes de los Web Services una empresa deba decidir en que ambiente de desarrollo trabajar

Me voy por JAVA Me voy por Microsoft Me voy por Oracle

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

Ebussines y Agentes Inteligentes


l

Ebussines y Agentes Inteligentes


C2B BANCO Browser (Clientes)

Con los web services

Se instala en Internet, una Agencia de Viajes Virtual Su funcin es principalmente como Broker Deseo realizar un viaje, en el cual obviamente necesito:

Aerolinea Agencia Virtual de Viajes A A A WEB SERVICES B2B Hotel

Tiquetes Aereos Hotel Auto en la ciudad destino

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)

Web Services for B2Bi

12

Вам также может понравиться