Publicado el 13 de Febrero del 2019
369 visualizaciones desde el 13 de Febrero del 2019
75,8 KB
12 paginas
Creado hace 22a (18/04/2002)
5.1 Introducción a Servicios Web
Introducción
n Continuando con el ejemplo de intercambio de información de
películas ... => Actualmente ya no es necesario implementar la
solución sugerida “a mano”
n Se han estandarizado una serie de protocolos basados en XML
que permiten el intercambio de información en un entorno
distribuido
n También existen APIs para los lenguajes de programación más
usuales, que facilitan el envío y recepción de mensajes
n En general, las APIs no son estándares, sin embargo ello no afecta
a la interoperabilidad
n En Java, se están estandarizando estas APIs
n Un Servicio Web es un servicio ofrecido a través del web
n Usa los anteriores protocolos para recibir peticiones y enviar las
correspondientes respuestas
SOAP (1)
n SOAP = Simple Object Access Protocol
n Protocolo basado en XML para el intercambio de
información en un entorno distribuido
n Conceptualmente permite enviar
peticiones/respuestas en XML
n Actualmente la información se puede enviar sobre
HTTP (la alternativa más frecuente) o SMTP
n Estandarizado por el W3C
n Analogía con CORBA: SOAP/IIOP
SOAP (y 2)
Portal especializado
en cine
SOAP
BD
Internet
Portal general 1
BD
Portal general 2
BD
SOAP
SOAP
. . .
Portal general N
BD
SOAP
UDDI (1)
n UDDI = Universal, Description, Discovery and
Integration
n Es una iniciativa de varias empresas (IBM, Microsoft,
etc.) que ofrece un servicio gratuito para registrar y
buscar servicios web
n http://www.uddi.org
n Registrar y buscar servicios web es gratuito
n Actualmente existen dos registros UDDI: el de IBM y el de
Microsoft (accesibles desde la anterior URL)
n Cuando se registra un servicio web en uno, se registra
automáticamente en el otro
UDDI (2)
n Cada servicio web se registra dando, entre otros
n (1) su nombre, (2) su(-s) punto(-s) de acceso (ej.: URL) y
una descripción del servicio (ej.: la URL de su WSDL, una
descripción textual, etc.)
n Concepto similar al de las páginas amarillas
n Una empresa proveedora de servicios web puede
publicitarse en UDDI
n Aparte de acceder un registro UDDI mediante un
navegador, es posible acceder a su funcionalidad
(registro y búsquedas) desde un programa
n Implementa un protocolo que funciona sobre SOAP
UDDI (y 3)
Registro UDDI
SOAP
Internet
Portal especializado
en cine
SOAP
BD
Portal general 1
BD
Portal general 2
BD
SOAP
SOAP
. . .
Portal general N
BD
SOAP
APIs de programación basadas en mensajes
n Permiten intercambio de documentos XML
n Tanto el emisor como el receptor disponen de un
proveedor de mensajería
n Cuando el emisor envía un mensaje, se lo pasa a su
proveedor, quién lo encamina al proveedor del receptor, y
éste al receptor
n Permiten
n Mensajes síncronos y asíncronos
n Posibilidad de enviar a más de un receptor
n Calidad de servicio (ej.: envío garantizado)
n Son APIs muy potentes, pero también complejas
APIs de programación basadas en RPCs (1)
n Usan el paradigma de los RPCs
n En el caso de un lenguaje orientado a objetos, estas
APIs permite definir interfaces cuyos métodos se
pueden invocar remotamente
n Idea similar a CORBA
n Las interfaces remotas se definen en WSDL (Web
Service Description Language)
n Es un documento XML que define los tipos de datos que
usan las operaciones del interfaz (ej.: mediante un esquema
XML) y las operaciones que ofrece
n Idea similar a IDL
n Es complejo, pero casi todos los lenguajes permiten definir
las interfaces remotas en el propio lenguaje y generar el
WSDL automáticamente
APIs de programación basadas en RPCs (y 2)
n Al igual que en CORBA, existe un compilador de
WSDL que permite generar
n El stub (proxy) para el cliente
n El skeleton para el servidor
n Los tipos de datos usados en las operaciones
n También define un API similar al DII de CORBA
n Es el API más sencilla de usar y se espera que sea la
más usada
n No es tan potente como las APIs basadas en
mensajes
n No permite mensajes asíncronos, envío a más de un
receptor, calidad de servicio, etc.
APIs de programación en Java
n Existen muchas APIs propietarias de distintos
fabricantes
n Actualmente las APIs están en proceso de
estandarización
n Permitirá construir aplicaciones Java que usan e
implementan servicios web de manera portable
n APIs
n JAXM (Java API for XML Messaging)
n JAX-RPC (Java API for XML-based RPC)
n JAXR (Java API for XML Registries)
n Estas APIs forman parte de J2EE
Uso de Servicios Web para integración de aplicaciones en una intranet
n Para casos sencillos de integración de aplicaciones (ej.:
intercambio de información) en una intranet, los Servicios Web
pueden ser una buena alternativa a CORBA
n Su ventaja: la sencillez
n Para casos más complejos, actualmente existen varios
problemas
n No tienen soporte para transacciones
n Ej.: Hacer que la invocación de dos operaciones de dos Servicios Web
se ejecuten dentro de una misma transacción
n No tienen soporte para seguridad
n Ej.: Restringir los usuarios que pueden invocar una operación de un
Servicio Web
n No son una alternativa tan eficiente como CORBA
n Todavía es una tecnología muy joven
n CORBA hace frente a todos los problemas anteriores y ofrece
una funcionalidad mucho más completa
Comentarios de: 5.1 Introducción a Servicios Web (0)
No hay comentarios