PDF de programación - Introducción a los Servicios Web (Web Services) - Sistemas Operativos Distribuidos

Imágen de pdf Introducción a los Servicios Web (Web Services) - Sistemas Operativos Distribuidos

Introducción a los Servicios Web (Web Services) - Sistemas Operativos Distribuidosgráfica de visualizaciones

Publicado el 12 de Mayo del 2019
918 visualizaciones desde el 12 de Mayo del 2019
189,6 KB
17 paginas
Creado hace 12a (07/03/2012)
Sistemas Operativos Distribuidos

Introducción a los Servicios Web
Introducción a los Servicios Web
(Web Services)
(Web Services)

Evolución de la Web

• 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 añadido (Business to business, B2B)
– Base de Sistemas distribuidos sobre Internet
• Servicio web: RPC sobre la Web usando XML

Sistemas Operativos Distribuidos
2

Fernando Pérez Costoya
José María Peña Sánchez

Aplicaciones web: Escenario típico

Figura extraída de “Understanding Web Services”: http://www7.software.ibm.com/vad.nsf/Data/Document4362

Sistemas Operativos Distribuidos
3

Fernando Pérez Costoya
José María Peña Sánchez

Servicios web: Escenario típico

Sistemas Operativos Distribuidos
4

Figura extraída de “Understanding Web Services”:
http://www7.software.ibm.com/vad.nsf/Data/Document4362
Fernando Pérez Costoya
José María Peña Sánchez

Integración de servicios web

Sistemas Operativos Distribuidos
5

Figura extraída de “Understanding Web Services”:
http://www7.software.ibm.com/vad.nsf/Data/Document4362
Fernando Pérez Costoya
José María Peña Sánchez

Definición de servicio web

• Módulo que exporta un conjunto de funciones (métodos) a

aplicaciones a través de la Web proporcionando
independencia de plataformas hardware/software

• Similar a RPC o RMI pero integrado en la Web

– ¿Reinventando la rueda? → ¿Por qué no usar CORBA?
• Estandarización controlada por un grupo del W3C:

– http://www.w3.org/2002/ws/

• Mismas cuestiones que con RPC/RMI:

– ¿Qué protocolo de transporte se usa? → HTTP
– ¿Qué formato de representación se utiliza? → XML
– ¿Qué protocolo de comunicación se usa? → SOAP
– ¿Cómo se especifican los servicios exportados (IDL)? → WSDL
– ¿Cómo localiza el cliente al servidor (binding)? → UDDI

Sistemas Operativos Distribuidos
6

Fernando Pérez Costoya
José María Peña Sánchez

Protocolo de transporte: HTTP

• Uso típico de operación POST de HTTP:
– datos de formulario y página de respuesta

POST /~ssoo/consultaBD.cgi HTTP/1.0
Content-length: 76
.....................

DNI=87654321&MAT=980000&Asignatura=sod&Curso=2002&Convocatoria=Jun&Tipo=acta

HTTP/1.1 200 OK
Content-Type: text/html; charset=iso-8859-1
.....................

<HTML>

• Uso de POST para petición y respuesta de RPC

– Universalmente disponible
– Atraviesa el firewall de la organización

Sistemas Operativos Distribuidos
7

Fernando Pérez Costoya
José María Peña Sánchez

Formato de representación: XML



Información de RPC codificada en XML
– Muy flexible y potente
– XML Schema permite definir con precisión los tipos de datos

• Ej: float GetLastTradePrice(string symbol);

Petición:
<GetLastTradePrice>

<symbol>DIS</symbol>

</GetLastTradePrice>

Respuesta:
<GetLastTradePriceResponse>

<Price>34.5</Price>

</GetLastTradePriceResponse>

Esquema:
<element name="GetLastTradePrice">
<complexType><all>

<element name="symbol" type="string"/>

</all></complexType>
</element>
<element name="GetLastTradePriceResponse">
<complexType><all>

<element name="Price" type="float"/>

</all></complexType>
</element>

Sistemas Operativos Distribuidos
8

Fernando Pérez Costoya
José María Peña Sánchez

Protocolo de comunicación: SOAP

• Simple Object Access Protocol (Candidate Recommendation)
• SOAP = HTTP + XML

– Especifica cómo mandar mensajes XML sobre HTTP
– Define el contenedor del mensaje (tambien en XML)
– Protocolo general, no sólo para RPC, también unidireccional

• Estructura de mensaje contenedor SOAP:

– Sobre (Envelope): Cabecera (Header) [opcional] + Cuerpo (Body)
• Cabecera : info. complementaria (p.ej. en RPC un ID de transacción)
• Cuerpo: contiene el mensaje original

– En petición: Identificador en POST identifica destino de RPC

• SOAP para RPC:

• Seguridad:

– Usando HTTPS (SSL)
– Nueva propuesta: WS-Security

Sistemas Operativos Distribuidos
9

Fernando Pérez Costoya
José María Peña Sánchez

Un ejemplo de SOAP en RPC

POST /StockQuote HTTP/1.1
......................
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>

<m:GetLastTradePrice xmlns:m="http://example.com/stockquote.xsd">

<symbol>DIS</symbol>

</m:GetLastTradePrice>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

HTTP/1.1 200 OK
...............
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="http://example.com/stockquote.xsd">

<Price>34.5</Price>

</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

P
e
t
i
c
ó
n

i

R
e
s
p
u
e
s
t

a

Sistemas Operativos Distribuidos
10

Fernando Pérez Costoya
José María Peña Sánchez

Definición de interfaz de servicio: WSDL

• Web Service Description Language (Working Draft)

IDL para servicios Web basado en XML
• Documento WSDL describe servicio web:

– Tipos de datos (XML Schema)
– Funciones exportadas y sus mensajes de petición y respuesta
– Protocolos usados: típicamente SOAP sobre HTTP
– Dirección de servicio → URL con servidor y “componente”

• P. ej. http://www.stockquoteserver.com/StockQuote

• Normalmente, generado automáticamente a partir de código

de servicios

Sistemas Operativos Distribuidos
11

Fernando Pérez Costoya
José María Peña Sánchez

Desarrollo de un servicio Web

• Programación de biblioteca de servicio

– En algunos entornos hay que incluir información específica

• En VisualStudio .Net: etiqueta [WebMethod] sobre métodos exportados

• Generación automática de fichero WSDL

– Generalmente, dentro de la generación de aplicación de servicio

• En VisualStudio .Net: Proyecto de tipo Web Service

• En servidor: fichero WSDL informa sobre cómo activar servicio
– Normalmente, lo hace un servidor web con soporte de servicios web

• Desarrollo de cliente:

– Obtener fichero WSDL y generar proxy para aplicación cliente

• En VisualStudio .Net: “Add Web Reference”

Sistemas Operativos Distribuidos
12

Fernando Pérez Costoya
José María Peña Sánchez

Localización del servicio: UDDI
• Universal Description, Discovery, and Integration

– No estándar: Propuesta inicial de Microsoft, IBM y Ariba

• Registro distribuido de servicios web ofrecidos por empresas


Información clasificada en 3 categorías (guías):
– Páginas blancas: Datos de la empresa
– Páginas amarillas: Clasificación por tipo de actividas
– Páginas verdes: Descripción de servicios web (WSDL)

• Se accede a su vez como un servicio web
• Puede consultarse en tiempo de desarrollo o incluso

dinámicamente en tiempo de ejecución
• Permite búsquedas por distintos criterios

– Tipo de actividad, tipo de servicio, localización geográfica

Sistemas Operativos Distribuidos
13

Fernando Pérez Costoya
José María Peña Sánchez

Registro de un servicio web

Sistemas Operativos Distribuidos
14

Fernando Pérez Costoya
José María Peña Sánchez

Extesiones de protocolos

• ASAP (Asynchronous Service Access Protocol):
– Solicitudes asíncronas (envío cliente -> servidor).
– Extensión de SOAP.
– Pensadas para transacciones de larga duración.

• DIME (Direct Internet Message Encapsulation):

– Optimización seleccionando la codificación de porciones del

mensaje.

– Extensión de SOAP / SOAP MTOM.
– Empaquetado más ligero.

Sistemas Operativos Distribuidos
15

Fernando Pérez Costoya
José María Peña Sánchez

Servicios web vs. RPC/RMI
• Servicio Web similar a RPC/RMI (Corba, DCOM)

– ¿Hay un “ganador”? ¿Reinventando la rueda?
• Convivencia: Distintos ámbitos de aplicación
• Servicios web

– Entornos de interacción “débilmente acoplados”

• Exportar servicios fuera de la organización
• Integrar apliaciones de la empresa

– Más estándar y extendido, menos problemas con firewalls

• RPC/RMI “tradicionales”

– Aplicación distribuida “fuertemente acoplada”
– Más funcionalidad y eficiencia

• Ejemplo de escenario de convivencia:

– Exportar un servicio interno CORBA mediante un servicio web

Sistemas Operativos Distribuidos
16

Fernando Pérez Costoya
José María Peña Sánchez

Entornos de desarrollo de servicios web

• Número creciente de entornos de desarrollo
• Algunas implementaciones de interés:

– .Net de Microsoft
– Web Services Project de Apache
– Java Web Services Developer Pack
– IBM WebSphere SDK for Web services (WSDK)
– WASP de Systinet

• Cursos sobre SOAP, WSDL y otras tecnologías web:

– http://www.w3schools.com/

Sistemas Operativos Distribuidos
17

Fernando Pérez Costoya
José María Peña Sánchez
  • Links de descarga
http://lwp-l.com/pdf15904

Comentarios de: Introducción a los Servicios Web (Web Services) - Sistemas Operativos Distribuidos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad