Conceptos y Aplicaciones bajo un enfoque de Web

Transcripción

Conceptos y Aplicaciones bajo un enfoque de Web
JITT'03
Conceptos y Aplicaciones bajo un
enfoque de Web Services
Parte I
Ing. Juan Carlos Corrales M
Grupo de Ingeniería Telemática
Universidad del Cauca
COLOMBIA
Departamento de Telemática
Temario
1.
2.
3.
4.
5.
6.
7.
Distribución de la Lógica de Aplicación sobre la red
Distribución de la Lógica de Aplicación sobre la Web
Los Beneficios de los Web Services
Arquitectura de los Web Services
Protocolos
•
SOAP (Simple Object Access Protocol)
•
WSDL (Web Services Description Languaje)
•
UDDI (Universal Description, Discovery and Integration)
•
WSFL (Web Services Flow Language)
Web Services Vs. Sistemas Distribuidos Tradicionales
Web Services --- J2EE
Distribución de la Lógica de Aplicación sobre la
red
1. CORBA (Common Object Request Broker Architecture)
2. COM/DCOM (Distributed Component Object Model)
3. RMI (Remote Method Invocation)
Arquitectura CORBA
Distribución de la Lógica de Aplicación sobre la
Web -- Antecedentes
Pasado: Web de documentos – Páginas estáticas
– Web como un enorme repositorio de información
– Tecnologías: HTTP + HTML
• Presente: Web de aplicaciones – Páginas dinámicamente generadas por aplicaciones web
– Aplicaciones exportan su interfaz a los usuarios a través de la Web
– Entorno de transacciones comerciales ( Business to consumer , B2C)
– Tecnologías: CGI, ASP, PHP, JSP, servlets , ...
• Futuro (ya está aquí): Web de servicios (funciones/ métodos)– “Bibliotecas” ofrecen servicios
a programas (no a usuarios)
– Web como una enorme API de servicios (Web de componentes)
– Empresas de valor agregado ( Business to business , B2B)
– Base de Sistemas distribuidos sobre Internet • Servicio web: RPC sobre la Web usando XML
Distribución de la Lógica de Aplicación sobre la
Web -- Antecedentes
Evolución: Desarrollo de Aplicaciones en la Web
Repositorio
Dinámica
API Servicios
Distribución de la Lógica de Aplicación sobre la
Web -- Antecedentes
Consideraciones: Aplicaciones Web
Durante el desarrollo
– aplicaciones críticas
• ciclos de vida más cortos
– equipos multidisciplinares
– ¿son validas las metodologías tradicionales?
Durante el mantenimiento
– rápida evolución
– el cliente ve los fallos
Distribución de la Lógica de Aplicación sobre la
Web -- Antecedentes
Algunos datos
Los grandes proyectos Web:
• No cumplen las expectativas de negocio: 84%
• No disponen de la funcionalidad requerida: 53%
• Retraso en el desarrollo: 79%
• Sobrepaso del presupuesto: 63%
Fuente: Cutter Consortium. Cited at the editorial of the IEEE Multimedia, issue
Jan-Feb, 2001
Distribución de la Lógica de Aplicación sobre la
Web -- Antecedentes
En los últimos años XML ha establecido un marco
heterogéneo para Compartir Información sobre la Web
XML ha sufrido una evolución
desde la simple representación de
información estructurada a una
posibilidad de Compartir Procesos.
Web Services
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Son aplicaciones modulares e independientes que pueden
ser descritas, publicadas, localizadas e invocadas a través de
una red.
Componentes que brindan un servicio
Disponibles vía Internet
Usan protocolos web estándares
Interconectan aplicaciones
Conectados en forma “débil”
Reutilizables
Interfaz
Operaciones
Sistemas
Componentes
Servicio
Los Beneficios de Web Services
Web Services
Exponer
Internet
aplicaciones
lógicas
Proporcionar
un
alto
nivel
integración e interoperabilidad
sobre
de
No requiere un conocimiento de la
implementación del servicio
Los Beneficios de Web Services XML
Web Services como solución
Consideraciones:
Requisitos de interoperabilidad para
aplicaciones empresariales que se
encuentran en sistemas heterogéneos
Requisitos de integración en ambientes
que contienen varios sistemas de
información empresariales.
Tipos de clientes a soprtar (dispositivos
móviles, PDA’s)
Disponibilidad de herraemientas
Empresa Generadora de Planes de Aventura
Proveer a los clientes un catalogo con
paquetes de aventura
Permitir que el cliente personalice su
experiencia, acomodación, transporte,
calendario de actividades y finalmente haga
la reserva de su viaje.
Proveer servicios adicionales: estado de la
orden y ofrecerle mas información de
lugares a visitar
Empresa Generadora de Planes de Aventura
Módulos
Web
Services
Cliente
Standalone
Cliente
Browser
Cliente
Handheld
Recepción
Órdenes
Procesamiento
Orden
Cliente Una
plataforma
Seguimiento
Orden
Sistema Gestión
Relación Cliente
Instituciones
Financieras
Aerolineas
Hoteles
Proveedores
Actividades
Empresa Generadora de Planes de Aventura
Beneficios de usar Web Services
Integración de los Socios:
• No utilización de EDI, facilitando la comunicación con
pequeños negocios.
• Integración de sistemas existentes en cada asociado, con los
sistemas externos.
Integración de SI:
• No existe inversión (dinero y tiempo) en los SI de cada
asociado, con objetivos de adaptación del consorcio.
Diversos Clientes
Adición de los datos de los asociados
• Actualización dinámica de los servicios mediante registro.
ADUANA
Organismos
Estatales
Webservices
Internet
X
Agencias Marítimas
y Aéreas
Mensajes / Seguridad
Redes de Valor
Agregado
VAN
M
Depósitos
L
Exportadores
Importadores
Sistemas Heterogéneos
Declarantes
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Entidad solicitante
Entidad Proveedora
SEMÁNTICA + DESCRIPCIÓN DEL SERVICIO
1. Acuerdo en cuanto a la semántica y la descripción del servicio
Semántica
+
Descripción del servicio
Semántica
+
Descripción del servicio
2. Adapta semántica y
descripción del servicio
Agente
Solicitante
2. Adapta semántica y
descripción del servicio
3. Interactúan
Agente
Proveedor
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
SOAP es un protocolo de comunicación
simple y extensible basado en mensajes, que
permiten el intercambio de información
estructurada y tipeada, entre aplicaciones
en un entorno distribuido
•Un mensaje es un documento XML
•Cabecera de protocolos de Transporte
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
HTTP Header
SOAP Envelope
Header
Body
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http: / / s chemas.xml.org /soap /envelope /" SOAPENV:encodingStyle="http: / / schemas.xml.org /soap /
encoding /" /> … < / SOAP:Envelope>
<SOAP-ENV:Header>
<t:transaction
SOAP-ENV
< / t:transaction>
< /SOAP -ENV:Header>
xmlns:t="http:/ /www.unicauca.edu.co"
:mustUnderstand="1">
Autenticación, autorización, manejo transaccional, trazabilidad y auditoria
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
<SOAP-ENV:Body>
<m:Cliente xmlns:m="Some-URI">
<Nombre>Carlos< /Nombre>
<Apellido>Orozco< /<apellido>
<Ciudad>Popayan< /Ciudad>
<Depto>Cauca< /Depto>
<Pais>Colombia< /Pais>
< /m:Cliente>
< /SOAP -ENV:Body>
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
SOAP no define el uso de un protocolo de transporte:
FTP (File Transfer Protocol)
SMTP (Simple Mail Transfer Protocol)
Contenido del mensaje SOAP, es independiente del protocolo
que los transporta.
Debido a HTTP es el protocolo de transporte más popular en
Internet, SOAP describe una convención a usar cuando el
transporte se realiza mediante HTTP.
Modelo de mensajes request (POST) y response de HTTP.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
POST / Computer HTTP /1.1
Host: www.unicauca.edu.co
Content -Type:
charset="utf - 8"
Content -Length: 10
text /xml;
SOAPAction="http: / / www.unicauca.edu.co#EventManager"
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
Aplicación
Cliente
SOAP
request
Servidor
Internet
SOAP
response
SOAP - RPC es ortogonal al protocolo usado para el
transporte del mensaje SOAP.
•La invocación RPC se mapea al request de HTTP.
•La respuesta RPC se mapea al response de HTTP.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
Aplicación
Cliente
SOAP
request
Servidor
Internet
SOAP
response
Para realizar una invocación RPC es necesaria la siguiente
información:
•La URI del receptor del mensaje.
•El nombre del procedimiento o método.
•Los parámetros del procedimiento o método
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
<SOAP-ENV:Body>
<m1:RemoteMethodName_1 xmlns:m1="http://example/2001/12/m1_method">
<arg1>valor1</arg1>
<arg2>valor2</arg2>
</m1:RemoteMethodName_1>
<m2:RemoteMethodName_2 xmlns:m2=" http://example/2001/12/m2_method">
<arg1>valor1</arg1>
</m2:RemoteMethodName_2>
</SOAP-ENV:Body>
POST /StockQuote HTTP/1.1
Host: www.example.org
Content-Type: text/xml;
charset="utf-8"
Protocolos: SOAP ( Simple Object Access Protocol )
Content-Length: nnnn
SOAPAction: "http://example.org/2001/06/quotes"
<SOAP-ENV:Envelope
xmlns:env="http://www.w3.org/2001/12/soap-envelope" >
< SOAP-ENV:Header>
<t:Transaction
xmlns:t="http://example.org/2001/06/tx"
env:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
env:mustUnderstand="1" >
</t:Transaction>
</SOAP-ENV:Header>
<SOAP-ENV:Body >
<m:GetLastTradePrice
env:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
xmlns:m="http://example.org/2001/06/quotes" >
<m:symbol>DEF</m:symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope >
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
HTTP/1.1 200 OK
Content-Type: text/xml;
charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:env="http://www.w3.org/2001/12/soap-envelope" >
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse
env:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
xmlns:m="http://example.org/2001/06/quotes" >
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Protocolos: SOAP ( Simple Object Access Protocol )
Proceso del Cliente
API SOAP Cliente
Aplicación Cliente
Invocación a
método
Respuesta
1
6
SOAP
Codificación
Decodificación
HTTP
Codificación
Decodificación
Codificar la
invocación del
método en un
mensaje
SOAP-XML
Codificar el
mensaje
SOAP-XML en un
mensaje HTTP
Decodificar la
respuesta SOAPXML en la
respuesta a la
invocación del
método
2
5
Extraer la
respuesta SOAPXML de la
respuesta HTTP
Mensaje
HTTP enviado al
servidor SOAP
3
Respuesta
HTTP recibido
del servidor
SOAP
4
Protocolos: SOAP
Proceso del Servidor
Servidor SOAP
Manejador de
eventos HTTTP
Mensaje
HTTP recibido
del cliente
SOAP
1
Canalizar
mensaje al
servidor SOAP
HTTP / SOAP
Codificación y
Decodificación
SOAP
Listener
2
Enviar
mensaje al
decodificador
3
4
Invocar al
método
Decodificar
el mensaje
HTTP y
decodificar
el mensaje
SOAP-XML
5
Aplicación
6
Respuesta
HTTP enviada
al cliente
SOAP
10
Enviar la
respuesta al
codificador
7
Canalizar la
respuesta al
Cliente
9
Enviar la
respuesta
8
Codificar la
respuesta del
método en una
respuesta SOAP-XML
y codificarlo en
una respuesta HTTP
Protocolos: SOAP (D.S)
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: SOAP ( Simple Object Access Protocol )
Ventajas
•Estándar abierto
•Simplicidad y extensibilidad
•Independiente de plataformas y lenguajes
•Interoperabilidad
•Firewalls
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: WSDL (Web Services Description Languaje)
WSDL es un documento XML que describe la interfaz,
semántica y administración de llamada al WS. Las
operaciones y los mensajes se describen de forma abstracta
y después se enlazan a un protocolo de red y a un formato
de mensaje concreto.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: WSDL (Web Services Description Languaje)
•Types: contenedor
de definiciones del
tipo de datos.
•Message:
definición abstracta
y escrita de los
datos que se están
comunicando.
•PortType:
conjunto abstracto
de
operaciones
admitidas por uno o
más puntos finales.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: WSDL (Web Services Description Languaje)
Binding:
especificación del
protocolo y del
formato de datos
para un tipo de
puerto
determinado.
Service: colección
de puntos finales
relacionados.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: WSDL (Web Services Description Languaje)
Web Service Requester
FIND
Socio de negocios u otro
sistema
2
Encontrar Web Service
UDDI Service
equest
REQUEST
3
1
4
PUBLISH
BIND
INVOCAR WS
Registrar Web Service
SOAP Request
(en tiempo de desarrollo
RECUPERAR
DEFINICIÓN EN
WSDL
Servlets
JAXR
SOAP Request
Documento WSDL
Web Service Provider
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: UDDI (Universal Description, Discovery and Integration )
Es un documento XML usado para describir las
entidades de negocio y su Servicio Web.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: UDDI (Universal Description, Discovery and Integration )
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: UDDI (Universal Description, Discovery and Integration )
ESTRUCTURAS DE DATOS
DEL UDDI
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: UDDI (Universal Description, Discovery and Integration )
Primer paso: Definir la entrada de UDDI
•Determine los tModels.
•Determine los servicios Web que la empresa ofrece a través de UDDI.
•Determine las categorías adecuadas para los servicios
•Determine el nombre de la empresa y una breve descripción de la
misma en varios idiomas.
•Determine las categorías e identificaciones adecuadas para la
empresa. North American Industry Classification System (NAICS), Universal Standard Products
and Services Codes (UNSPSC), ISO 3166, Standard Industry Classification (SIC) y GeoWeb Geographic
Classification.
Segundo paso: Registrar la entrada de UDDI
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: UDDI (Universal Description, Discovery and Integration )
UDDI
WSDL
Implementación del servicio
<import>
<service>
BusinessEntity
BusinessService
<port>
<port>
Interfaz del servicio
BindingTemplate
BindingTemplate
<message>
<portType>
<binding>
tModel
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: WSFL (Web Services Flow Language)
Se trata de un lenguaje muy sencillo y basado en XML creado
por IBM y diseñado exclusivamente para representar flujos
de servicios web que faciliten la creación de orquestaciones
de estos servicios.
Se define como orquestación de servicios web al concepto de
recoger un conjunto de servicios web para ofrecer una
solución que se adapta a algún proceso de negocio.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: WSFL (Web Services Flow Language)
Las actividades son las tareas a realizar mientras que los
proveedores de servicios son los roles encargados da realizar
dichas actividades.
<flowModelname="peticionCreditoFlow" serviceProviderType="creditosProcesador">
<serviceProvider name="cliente" type="cliente" />
<serviceProvider name="empleado" type="empleado" />
<serviceProfider name="supervisor" type="supervisor" / >
<activity name="realizarPeticion"
<performedBy serviceProvider="cliente" />
<implement>
.. Aquí vendría el servicio web que realizaría la actividad ..
< /implement>
< /activity>
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: WSFL (Web Services Flow Language)
<activity name="validarAvales" />
<performedBy serviceProvider="empleado" / >
<implement>
.. Aquí vendría el servicio web que realizaría la actividad ..
< /implement>
< /activity>
<activity name="concederCredito" / >
<performedBy serviceProvider="supervisor" / >
<implement>
.. Aquí vendría el servicio web que realizaría la actividad ..
< /implement>
< /activity>
< /flowModel>
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: Seguridad
Debe soportar los continuos cambios en las topologías de
red y proporcionar un modo de administrar tanto las
aplicaciones como las redes de un modo seguro.
Diversos estándares como PKI (Public Key Infrastructures),
SSL (Secure Sockets Layer) y X509 deben poder ser
utilizados para:
– firmas digitales, encriptación, autenticación, certificados,
etc.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: Gestión
Q
Q
Dado que los Web Services deben ser sencillos de desarrollar,
un entorno de administración puede añadir una
complejidad excesiva.
9 Esta complejidad debe ocultarse lo máximo posible.
Dicha arquitectura todavía está siendo definida.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Protocolos: Calidad Servicio
La capa QoS permite la especificación de información
relevante al nivel de implementación:
– enlace a través transaccional o SOAP seguro.
– duración máxima que el solicitante puede esperar de
una respuesta del proveedor.
– Etc.
Algunos atributos para esta capa están especificados por
WSDL mientras que otros actualmente todavía se están
definiendo.
Distribución de la Lógica de Aplicación sobre la
Web -- Web Services
Web Services Vs. Sistemas Distribuidos Tradicionales
Los servicios web presentan algunas diferencias sobre sistemas distribuidos tradicionales,
tales como EJB, COM/DCOM, CORBA, SOM/DSOM o DCE. Algunas de las diferencias son
las siguientes ( NOTA: Algunas diferencias sólo afectan a algunos sistemas, no a todos ):
•Escaso acoplamiento. El cliente no necesita conocer nada acerca
implementación del servicio al que está accediendo, salvo la definición WSDL
de
la
•Independencia del lenguaje de programación. El servidor y el cliente no necesitan
estar escritos en el mismo lenguaje
•Independencia del modo de transporte. SOAP puede funcionar sobre múltiples
protocolos de transoporte, como por ejemplo HTTP, HTTPS, HTTP-R, BEEP, JABBER,
IIOP, SMTP o FTP.
•Múltiples modos de invocación. Los servicios web soportan tanto invocación estática
como invocación dinámica.
•Múltiples estilos de comunicación. Los servicios web soportan tanto comunicación
síncrona ( RPC ) como comunicación asíncrona ( mensajería ).
•Extensibilidad. Al estar basados en XML, los servicios web son fáciles de adaptar,
extender y personalizar.
Fuente: Oracle 9i Architecture Series
Web Services --- J2EE
API Java – Web Services
Orientadas a Documentos
Java API for XML Processing (JAXP) -Procesa documentos XML usando varios
parsers.
Java Architecture for XML Binding (JAXB) -Procesa documentos XML usando schemaderivados de las clases que componen
JavaBeans.
Orientada a Procedimientos
Java API for XML-based RPC (JAX-RPC) –
Envia llamadas a métodos remotos sobre
SOAP, a través de Internet.
Java API for XML Messaging (JAXM) -- Envia
mensajes SOAP sobre Internet.
Java API for XML Registries (JAXR) – Provee
una via estandar para acceder a la información
de registros del negocio.
Web Services --- J2EE
API Java – Web Services
JAX-RPC
•En JAX-RPC, una llamada a un procedimiento remoto
es representada por un documento XML basado en el
protocolo SOAP.
•JAX-RPC es no restrictivo: un cliente JAX-RPC puede
acceder a un Web service que no necesariamente corre
en una plataforma Java.
Web Services --- J2EE
API Java – Web Services
JAXM
•Esta API hace posible crear y enviar mensajes
XML sobre Internet.
•Con el API JAXM, se puede crear mensajes XML
soportados en las especificaciones del protocolo
SOAP.
Web Services --- J2EE
API Java – Web Services
JAXR
Permite a las diferentes aplicaciones desarrolladas
en Java, acceder facilmente a una gran variedad de
registros XML, describiendo todos los metadatos
que se encuentran en el interior de estos
documentos.
Web Services --- J2EE
API Java – Web Services
JAXB
•Esta API, proporciona a una
manera rápida, de crear uniones de
dos vías entre los documentos XML
y los objetos Java.
•Las razón más importante para
utilizar JAXB se debe a que las
aplicaciones de JAXB están escritas
en el lenguaje de programación de
Java y pueden procesar datos XML.
Web Services --- J2EE
Web Services-J2EE
Web Services --- J2EE
Web Services-J2EE
Servidor Web
Servidor
Aplicaciones
Sistema de
Gestión de
Bases de Datos
Enlace documento de
entrada a Java
Documentos XML
JAXB-JAXP
JAXM
JAX-RPC
Enlace Objeto Java a
Salida del Documento
Cliente\Servicio
JAXR
Resgistro de
Servicios
Enterprise
JavaBeans
JDBC
Sistemas
Legados
JMS
Conector
J2EE
¿preguntas?

Documentos relacionados