servicios web 4pp
DESCRIPTION
Sistemas distribuidosTRANSCRIPT
-
Sistemas Operativos Distribuidos
2-Comunicaciones 1
Sistemas Operativos Distribuidos
Introduccin a los Servicios Web
(Web Services)
Introduccin a los Servicios Web
(Web Services)
Sistemas Operativos Distribuidos2
Fernando Prez CostoyaJos Mara Pea Snchez
Evolucin de la Web
Pasado: Web de documentos Pginas estticas Web como un enorme repositorio de informacin Tecnologas: HTTP + HTML
Presente: Web de aplicaciones Pginas dinmicamente generadas por aplicaciones web Aplicaciones exportan su interfaz a los usuarios a travs de la Web Entorno de transacciones comerciales (Business to consumer, B2C) Tecnologas: CGI, ASP, PHP, JSP, servlets, ...
Futuro (ya est aqu): Web de servicios (funciones/mtodos) Bibliotecas ofrecen servicios a programas (no a usuarios) Web como una enorme API de servicios (Web de componentes) Empresas de valor aadido (Business to business, B2B) Base de Sistemas distribuidos sobre Internet
Servicio web: RPC sobre la Web usando XML
Sistemas Operativos Distribuidos3
Fernando Prez CostoyaJos Mara Pea Snchez
Aplicaciones web: Escenario tpico
Figura extrada de Understanding Web Services: http://www7.software.ibm.com/vad.nsf/Data/Document4362Sistemas Operativos Distribuidos4
Fernando Prez CostoyaJos Mara Pea Snchez
Servicios web: Escenario tpico
Figura extrada de Understanding Web Services: http://www7.software.ibm.com/vad.nsf/Data/Document4362
-
Sistemas Operativos Distribuidos
2-Comunicaciones 2
Sistemas Operativos Distribuidos5
Fernando Prez CostoyaJos Mara Pea Snchez
Integracin de servicios web
Figura extrada de Understanding Web Services: http://www7.software.ibm.com/vad.nsf/Data/Document4362
Sistemas Operativos Distribuidos6
Fernando Prez CostoyaJos Mara Pea Snchez
Definicin de servicio web
Mdulo que exporta un conjunto de funciones (mtodos) a aplicaciones a travs 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?
Estandarizacin 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 representacin se utiliza? XML Qu protocolo de comunicacin se usa? SOAP Cmo se especifican los servicios exportados (IDL)? WSDL Cmo localiza el cliente al servidor (binding)? UDDI
Sistemas Operativos Distribuidos7
Fernando Prez CostoyaJos Mara Pea Snchez
Protocolo de transporte: HTTP
Uso tpico de operacin POST de HTTP: datos de formulario y pgina de respuesta
Uso de POST para peticin y respuesta de RPC Universalmente disponible Atraviesa el firewall de la organizacin
POST /~ssoo/consultaBD.cgi HTTP/1.0Content-length: 76.....................
DNI=87654321&MAT=980000&Asignatura=sod&Curso=2002&Convocatoria=Jun&Tipo=acta
HTTP/1.1 200 OKContent-Type: text/html; charset=iso-8859-1.....................
Sistemas Operativos Distribuidos8
Fernando Prez CostoyaJos Mara Pea Snchez
Formato de representacin: XML
Informacin de RPC codificada en XML Muy flexible y potente XML Schema permite definir con precisin los tipos de datos
Ej: float GetLastTradePrice(string symbol);
Peticin:
DIS
Respuesta:
34.5
Esquema:
-
Sistemas Operativos Distribuidos
2-Comunicaciones 3
Sistemas Operativos Distribuidos9
Fernando Prez CostoyaJos Mara Pea Snchez
Protocolo de comunicacin: SOAP
Simple Object Access Protocol (Candidate Recommendation) SOAP = HTTP + XML
Especifica cmo mandar mensajes XML sobre HTTP Define el contenedor del mensaje (tambien en XML) Protocolo general, no slo para RPC, tambin unidireccional
Estructura de mensaje contenedor SOAP: Sobre (Envelope): Cabecera (Header) [opcional] + Cuerpo (Body)
Cabecera : info. complementaria (p.ej. en RPC un ID de transaccin) Cuerpo: contiene el mensaje original
SOAP para RPC: En peticin: Identificador en POST identifica destino de RPC
Seguridad: Usando HTTPS (SSL) Nueva propuesta: WS-Security
Sistemas Operativos Distribuidos10
Fernando Prez CostoyaJos Mara Pea Snchez
Un ejemplo de SOAP en RPCPOST /StockQuote HTTP/1.1......................
DIS
HTTP/1.1 200 OK...............
34.5
Peticin
Respuesta
Sistemas Operativos Distribuidos11
Fernando Prez CostoyaJos Mara Pea Snchez
Definicin 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 peticin y respuesta Protocolos usados: tpicamente SOAP sobre HTTP Direccin de servicio URL con servidor y componente
P. ej. http://www.stockquoteserver.com/StockQuote Normalmente, generado automticamente a partir de cdigo
de servicios
Sistemas Operativos Distribuidos12
Fernando Prez CostoyaJos Mara Pea Snchez
Desarrollo de un servicio Web
Programacin de biblioteca de servicio En algunos entornos hay que incluir informacin especfica
En VisualStudio .Net: etiqueta [WebMethod] sobre mtodos exportados Generacin automtica de fichero WSDL
Generalmente, dentro de la generacin de aplicacin de servicio En VisualStudio .Net: Proyecto de tipo Web Service
En servidor: fichero WSDL informa sobre cmo activar servicio Normalmente, lo hace un servidor web con soporte de servicios web
Desarrollo de cliente: Obtener fichero WSDL y generar proxy para aplicacin cliente
En VisualStudio .Net: Add Web Reference
-
Sistemas Operativos Distribuidos
2-Comunicaciones 4
Sistemas Operativos Distribuidos13
Fernando Prez CostoyaJos Mara Pea Snchez
Localizacin del servicio: UDDI
Universal Description, Discovery, and Integration No estndar: Propuesta inicial de Microsoft, IBM y Ariba
Registro distribuido de servicios web ofrecidos por empresas Informacin clasificada en 3 categoras (guas):
Pginas blancas: Datos de la empresa Pginas amarillas: Clasificacin por tipo de actividas Pginas verdes: Descripcin de servicios web (WSDL)
Se accede a su vez como un servicio web Puede consultarse en tiempo de desarrollo o incluso
dinmicamente en tiempo de ejecucin Permite bsquedas por distintos criterios
Tipo de actividad, tipo de servicio, localizacin geogrfica
Sistemas Operativos Distribuidos14
Fernando Prez CostoyaJos Mara Pea Snchez
Registro de un servicio web
Sistemas Operativos Distribuidos15
Fernando Prez CostoyaJos Mara Pea Snchez
Extesiones de protocolos
ASAP (Asynchronous Service Access Protocol): Solicitudes asncronas (envo cliente -> servidor). Extensin de SOAP. Pensadas para transacciones de larga duracin.
DIME (Direct Internet Message Encapsulation): Optimizacin seleccionando la codificacin de porciones del
mensaje. Extensin de SOAP / SOAP MTOM. Empaquetado ms ligero.
Sistemas Operativos Distribuidos16
Fernando Prez CostoyaJos Mara Pea Snchez
Servicios web vs. RPC/RMI
Servicio Web similar a RPC/RMI (Corba, DCOM) Hay un ganador? Reinventando la rueda?
Convivencia: Distintos mbitos de aplicacin Servicios web
Entornos de interaccin dbilmente acoplados Exportar servicios fuera de la organizacin Integrar apliaciones de la empresa
Ms estndar y extendido, menos problemas con firewalls RPC/RMI tradicionales
Aplicacin distribuida fuertemente acoplada Ms funcionalidad y eficiencia
Ejemplo de escenario de convivencia: Exportar un servicio interno CORBA mediante un servicio web
-
Sistemas Operativos Distribuidos
2-Comunicaciones 5
Sistemas Operativos Distribuidos17
Fernando Prez CostoyaJos Mara Pea Snchez
Entornos de desarrollo de servicios web
Nmero creciente de entornos de desarrollo Algunas implementaciones de inters:
.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 tecnologas web: http://www.w3schools.com/