Publicado el 15 de Octubre del 2020
615 visualizaciones desde el 15 de Octubre del 2020
479,7 KB
66 paginas
Creado hace 21a (07/12/2003)
Bases de datos
avanzadas
Universidad de Los Andes
Postgrado en Computación
Prof. Isabel M. Besembel Carrera
Unidad II. Sesión 15. Servicios Web .
1
Introducción
B2B
Servidor de empresa
XML
XML
fábricas
XML
Interfaz
XML
WEB
XML
ERP
proveedor
XML
e
t
n
e
i
l
c
mainframe
Dec. 2003
Isabel Besembel. ULA-PGCOMP
2
Arquitectura de los servicios web
Servicio web: módulo aplicación web que ofrece una interfaz programable
accesible por XML
Descripción del servicio: definición de las interfaces de servicio en términos de
operaciones y parámetros en WSDL (Web Service Definition Language)
Protocolo SOAP (Single Object Application Protocol): introducido en 1999 por
Don Box de DevelopMentor, Dave Winer de Userland y un equipo de Microsoft
COM.
Protocolo de invocación de servicios y respuesta en XML usado arriba de http
Componentes:
o Sobre contentivo del mensaje y cómo debe ser tratado
o Especificación de enlace a un protocolo transporte para intercambio de mensajes
o Conjunto de reglas de codificación para representar los datos de la aplicación
o Representación de las llamadas y respuestas
Dec. 2003
Isabel Besembel. ULA-PGCOMP
3
Componentes de la arquitectura
Basado en la arquitectura CORBA para objetos distribuidos, pero usa
XML para la descripción e invocación de los servicios
Proveedor de servicio (service provider): aplicación que se ejecuta en
el servidor que contiene un módulo accesible por el cliente web vía el
protocolo SOAP
Registro de servicio (service registry): catálogo de los proveedores de
servicio gestionado por un servidor a nivel aplicación
Solicitador de servicio (service requester): aplicación cliente ligada a
un servicio que invoca las funciones por mensajes XML
intercambiados vía protocolo SOAP
Arquitectura recursiva: una aplicación solicitadora de servicio puede a
su vez ser una aplicación proveedora de servicio
Dec. 2003
Isabel Besembel. ULA-PGCOMP
4
Arquitectura de servicios web
servidor
Service
provider
Service
provider
servidor
publish
publish
servidor
Service
provider
servidor
Service
provider
request
publish
publish
request
request
request
Service
registry
servidor
find
publish
Service
requester
Service
provider
servidor
cliente
Dec. 2003
Isabel Besembel. ULA-PGCOMP
5
Servicios con WSDL …
WSDL: lenguaje con sintaxis XML para describir los servicios web
Cliente: el compilador WSDL genera el código de invocación de
servicio
Servidor: genera el código de interfaz entre el protocolo y el servicio
Modelo de intercambio inspirado en la navegación marítima: mensajes
contenidos en sobres intercambiados de puerto en puerto
Puerto WSDL: nombre que identifica un grupo de operaciones que
permiten el acceso al servicio web vía un protocolo específico (SOAP,
HTTP, SMTP, etc.)
Enlace WSDL: especificación del tipo de acceso, del protocolo de
transporte y de la codificación de los parámetros en el mensaje para
un tipo de puerto dado
Dec. 2003
Isabel Besembel. ULA-PGCOMP
6
Servicios con WSDL
Mensaje WSDL: grupo de datos codificados en XML que permiten la invocación de una
operación asignada a un puerto cliente o de responder (servidor)
Elementos:
o Type: define el conjunto de tipos de los parámetros, estándar XML
o Message: describe los parámetros de entrada y salida por cada operación
o Port: define un grupo de operaciones bajo un puerto
o Binding: especifica un enlace entre el tipo de puerto y el protocolo de acceso
o Service: especifica la colección de puertos y sus URLs de acceso
mensaje
sobre
cliente
puerto
operaciones
servicio
mensaje
sobre
Dec. 2003
Isabel Besembel. ULA-PGCOMP
7
Ejemplo WSDL
<definitions name=“Hotel” targetNamespace=“http://ejemplo.com/hotel.wsdl”
xmlns:wns=“http://ejemplo.com/hotel.wsdl” xmlns:xsd=“http://www.w3.org/2001/XMLSchema”
xmlns:soap=“http://schemas.xmlsoap.org/wsdl/soap/” xmlns=“http://schemas.xmlsoap.org/wsdl/”>
<types>
definición de los tipos de datos
-->
declaración de los mensajes entrada y salida por separado
declaración de las operaciones asociación con los mensajes
<!--
</types>
<message>
<!--
</message>
<portType>
<!--
</portType>
<binding>
<!--
</binding>
<service name=“Hotel”>
</service>
</definitions>
definición del enlace wsdl – soap acciones y codificaciones
<!-- declaración de los puertos (grupo de operaciones y protocolos de acceso)
-->
-->
-->
-->
Dec. 2003
Isabel Besembel. ULA-PGCOMP
8
Catálogo de servicios UDDI
Catálogo UDDI (Universal Description,
Discovery, and Integration Registry): catálogo
de servicio accesible en web que describe las
empresas y sus servicios, tanto a nivel
funcional como técnico, que permite a los
usuarios descubrir los servicios disponibles
Funciones:
o Registrar su empresa dando su identidad,
descripción, lista de categorías y tipos de servicios
ofertados
o Registro de los servicios que ofrece la empresa
con sus nombres. Descripción y categorías
o Registro de las operaciones para cada uno de los
servicios definidos con sus datos técnicos
correspondientes
Catálogo
UDDI
maestro
copia
Catálogo
UDDI
segundario
Gerencia de
pedidos
Solicitud
de
servicio
documento
programa
Dec. 2003
Isabel Besembel. ULA-PGCOMP
9
Contenido del catálogo
Páginas blancas
BusinessKey, AuthorizedName,
Operator, Name, Description,
CategoryBag, BusinessServices
Páginas amarillas
ServiceKey, BusinessKey, Name,
Description, CategoryBag,
BindingTemplates
Páginas verdes
BindingKey, ServiceKey,
Description, AccessPoint,
TModelInstances
El descubrimiento de los servicios se
hace con el comando find emitido por
la gerencia de pedidos
www.uddi.org
BusinessEntity
tModel
BusinessService
PublisherAssertion
BindingTemplates
Dec. 2003
Isabel Besembel. ULA-PGCOMP
10
Técnica introducida en la arquitectura
distribuida DCE en 1980
Ofrece las funciones de llamador y de
llamado en el site del llamador
El origen de procuración (proxy)
transforma la invocación al
procedimiento en el envío de un
mensaje desde el sitio llamador al sitio
llamado, donde lo recibe un
transformador simétrico que hace la
invocación al llamado
RPC
Llamador
proxy
Red de interconexión
proxy
Llamado
Dec. 2003
Isabel Besembel. ULA-PGCOMP
11
David Winer, Userland, 1998
introdujo dos tipos de documentos
<methodCall> y <methodResponse>
sobre http en formato MIME text/xml
Extendido y estandarizado en 2001
por W3C como la versión 2.1 de
SOAP
Objetivo:
Permitir la invocación sobre los
puertos de conexión de servicios web
que ofrecen operaciones dándoles la
ilusión de ser locales
Arquitectura de un servidor SOAP
XML - RPC
Ixxnet
Servidor
http
Otro servidor
Aplicación Java
Navegador
Cliente
….
Servidor SOAP
Documents handlers
SOAP
runtime
WSDL
creation
Data
Transaction
Translation
logic
Datos y acceso a
los objetos
Núcleo de
servicios XML
Parser, DOM,
XSL, XQL,
XPointer,
DOMlets
Clases
Java,
seguridad,
gestión de
memoria
escondida
BD XML, email, CORBA, COM, EJB
Dec. 2003
Isabel Besembel. ULA-PGCOMP
12
SOAP…
Codificación universal de llamadas y respuestas de procedimientos de
tipo RPC
Protocolo independiente de plataforma y de lenguaje de programación
Partes:
Construcción del sobre “envelope”: define el contenido del mensaje, quien
debe tratarlo y si es opcional u obligatorio
Enlace: define cómo intercambiar los sobres entre los participantes usando
un protocolo de transporte (http, smtp, etc.)
Reglas de codificación: definen el mecanismo de serialización que puede
ser utilizado para intercambiar instancias de los tipos de datos de la
aplicación
Representación RPC: define una convención para representar el llamdo a
procedimientos distantes en SOAP
Dec. 2003
Isabel Besembel. ULA-PGCOMP
13
SOAP…
Mensaje SOAP: documento XML cuya raíz es <envelope> que
contiene un elemento <Heading> y uno <Body> que permite invocar
una operación distante o transmitir la respuesta de la operación
Sobre SOAP: raíz del documento XML que contiene el mensaje SOAP
definiendo el espacio de nombres, el estilo de codificación, etc.
cortafuego
cortafuego
Puerto de conexión
proxy
Mensajes
SOAP
HTTP
llamada
Translator
SOAP
RPC
local
Aplicación
cliente
Parser
XML
respuesta
Parser
XML
Servidor
de
aplicación
Dec. 2003
Isabel Besembel. ULA-PGCOMP
14
SOAP…
Sobre de mensajes: elementos que definen la estructura de los
mensajes SOAP que deben estar asociados al espacio de nombres
www.w3.org/2001/09/soap-envelope
Atributo encodingStyle en www.w3.org/2001/06/soap-encoding
Ejemplo:
<env:Envelope xmlns:env=“http://www.w3.org/2001/09/soap-envelope”>
<env:Header> …..
<env:Body> ….
</env:Header>
</env:Body>
Solicitud de paso de
la transacción 7
Tomar en cuenta
obligatoriamente
</env:Envelope>
<env:Header>
</t:Transaction>
</env:Header>
<t:Transaction xmlns:t=“http://ejemplo.org/tx” env:mustUnderstand=“1”>
<t:trid>7</t:trid>
<t:action>commit</t:action>
Dec. 2003
Isabel Besembel. ULA-PGCOMP
15
SOAP…
Cuerpo del mensaje: puede contener 0 o más elementos hijos llamados bloques
Bloque de manejo de errores:
Obligatorio
o
o
<faultcode> valores (VersionMismatch, Client, Server, MustUnderstand, DataEncodingUnknown)
<faultstring> documentación del error
Opcionales
o
o
<faultfactor> precisa el autor del error
<detail> transmisión de un código de error de la aplicación
<env:Body>
</hotel:CualHotel>
<env:Fault>
</env:Fault>
</env
Comentarios de: Unidad II. Sesión 15. Servicios Web - Bases de datos avanzadas (0)
No hay comentarios