Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
Slideshow Transcript
- Slide 1: Ruby y las arquitecturas orientadas a servicios (SOA) Joaquín Salvachúa Dit UPM Jsalvachua@dit.upm.es dit -1- UPM
- Slide 2: RAILS Y SOAP ¿Tranquilidad? dit -2- UPM
- Slide 3: RAILS x No tiene SOAP - XMLRPC integrado. x Existen versiones en Ruby. x Funcionan separadas de RAILS: * Problemas de integración. dit -3- UPM
- Slide 4: ¿cómo integrar aplicaciones distribuidas? dit -4- UPM
- Slide 5: dit -5- UPM
- Slide 6: USO de “SOCKETS” dit -6- UPM
- Slide 7: require "socket" host=(if ARGV.length == 2; ARGV.shift; else "localhost"; end) print("Trying ", host, " ...") STDOUT.flush s = TCPsocket.open(host, ARGV.shift) print(" done ") print("addr: ", s.addr.join(":"), " ") print("peer: ", s.peeraddr.join(":"), " ") while gets( ) s.write($_) print(s.readline) end s.close dit -7- UPM
- Slide 8: Necesidad de un protocolo estandard x No es un problema nuevo. x Necesidad de un entorno nuevo: • XML- RPC • SOAP dit -8- UPM
- Slide 9: Modelo de Llamada Remota a Procedimiento (RPC) 10 x = 5; 10 int SEND y = fxx (x); fxx (int a) { return a * 5; } RECV z = y +1; 25 .... 25 dit -9- UPM
- Slide 10: XML-RPC dit - 10 - UPM
- Slide 11: Ejemplo POST /RPC2 HTTP/1.0 User-Agent: Frontier/5.1.2 Host: xml.colorado.edu Content-Type: text/xml Content-length: 181 <?xml version=“1.0”?> <methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>41</i4></value> </param></params> </methodCall> dit - 11 - UPM
- Slide 12: Filosofia REST x Estado explicito en cada llamada. x Cada objeto tiene un URL. x Se lee y escribe objeto entero con : GET POST No es necesario mantener el estado. dit - 12 - UPM
- Slide 13: Aspectos de diseño x Filosofia Rest vs. Soap Recursos URLs Op. Simples dit - 13 - UPM
- Slide 14: Web Services ¿Qué es un servicio Web? Un servicio Web es una aplicación Web identificada por un URI, cuyos interfaces y enlaces pueden ser definidos, descritos y descubiertos mediante artefactos XML y que soporta la interacción directa con otras aplicaciones Web que interfaz que define una colección de operaciones que son accesibles de forma remota usando mensajes XML mediante protocolos estándar de Internet. dit - 14 - UPM
- Slide 15: Application Screen Scrape Download Application Message File Application Screen Queue Application Scrape Sockets Transaction Screen Transaction File Scrape File Application Sockets CICS Gateway Download RPC ORB File APPC Application Message Application ORB Message Application Transaction Queue File Application Message Queue CICS Gateway Screen Transaction Scrape File APPC Download Message RPC Application File dit - 15 - UPM
- Slide 16: Arquitectura orientada a servicios I Service Registry Find Publish Service Service Provider Bind (HTTP) Requestor dit - 16 - UPM
- Slide 17: Arquitectura orientada a servicios II Service Registry Find Publish W DI SD UD L Service Service SOAP / XML Provider Requestor Bind (to protocol) dit - 17 - UPM
- Slide 18: Tecnologías Usadas XML x Describe la información a ser usada. SOAP x Empaqueta la información y la transporta entre cliente y el proveedor del servicio. WSDL x Describe un servicio. UDDI x Proporciona una lista de servicios disponibles. dit - 18 - UPM
- Slide 19: XML – Describe estructuras de datos XML puede describir tanto datos como documentos: x Cual es la diferencia. Podemos manejar Ambos. XML se usa para datos y para metadatos. x Forma sencilla de describir estructuras de datos complejas y x jerárquicas (serizalizaciones). Flexibilidad, facilidad de procesado e independencia de x plataformas – arquitecturas. dit - 19 - UPM
- Slide 20: SOAP SOAP es un protocolo basado en XML para el intercambio de informacion de una forma descentralizada sobre entornos distribuidos. Define un mecanismo para el paso de instrucciones (comandos) y parametros entre clientes y servidores. Es totalmente independiente de la plataforma, el modelo de datos y el lenguaje de programación usado. dit - 20 - UPM
- Slide 21: Estructura de SOAP x Requiere un cuerpo (body) soap y un sobre (envelop). x Cabeceras (header) opcionales Modelo RPC vs. Documentos. dit - 21 - UPM
- Slide 22: Estructura de SOAP x Requiere un cuerpo (body) soap y un sobre (envelop). x Cabeceras (header) HTTP opcionales SOAP SOAP Body dit - 22 - UPM
- Slide 23: SOAP como protocolo SOAP Se basa sobre XML SOAP RPC SOAP Messaging SOAP Encoding Authentication Encryption BTF2.0 Attachments SOAP Envelope XML Framework dit - 23 - UPM
- Slide 24: Modelos de procesado de Servicios Web Servicio Web Orientado a Orientado a RPC documento Modelo de RPC RPC + XML interacción attachment Modelo de Centrado en Centrado en procesado objetos de Documento negocio Tipo de Básicamente Básicamente interacción. Síncrono Asíncrono dit - 24 - UPM
- Slide 25: WSDL (Web Services Description Language) x Información XML para la descripción de servicios de red y de un conjunto de puntos finales donde se dan los detalles de la conexión. x Informalmente: WSDL defines… Que operaciones puede realizar Donde está Como es necesario invocarlo dit - 25 - UPM
- Slide 26: Funcionamiento x Localización de un servicio. x Localización del interfaz WSDL. x Peticiones y respuestas codificadas dentro de “sobres” SOAP. x Uso típico de SOAP sobre HTTP. x Necesidad de nuevos tipos de firewalls dit - 26 - UPM
- Slide 27: Funcionamiento x Localización de un servicio. x Localización del interfaz WSDL. Petición SOAP: <?xmlPeticiones y respuestas codificadas dentro de “sobres” SOAP. x version="1.0" encoding="utf-8"?> <soap:Envelope …> <soap:Body> x Uso típico de SOAP sobre HTTP. <MakeEncRequest …> <principal>adg@microsoft.com</principal> <cipher>+oXHdaCXvK…=</cipher> x Necesidad de nuevos tipos de firewalls </MakeEncRequest> </soap:Body> </soap:Envelope> dit - 27 - UPM
- Slide 28: Funcionamiento x Localización de un servicio. x Localización del interfaz WSDL. Petición SOAP: <?xmlPeticiones y respuestas codificadas dentro de “sobres” SOAP. x version="1.0" encoding="utf-8"?> Respuesta SOAP: <soap:Envelope …> <soap:Body> <?xml version="1.0" encoding="utf-8"?> x Uso típico de SOAP sobre HTTP. <MakeEncRequest …> <soap:Envelope …> <principal>adg@microsoft.com</principal> <soap:Body> <cipher>+oXHdaCXvK…=</cipher> <MakeEncRequestResponse …> x Necesidad de nuevos tipos de firewalls </MakeEncRequest> <MakeEncRequestResult> </soap:Body> Accepted: with nonce=1 </soap:Envelope> </MakeEncRequestResult> </MakeEncRequestResponse> </soap:Body> dit </soap:Envelope> - 28 - UPM
- Slide 29: Descripción Interfaz WSDL : Funcionamiento … <s:element name="MakeEncRequest"> <s:complexType> <s:sequence> x Localización de <s:element … name="principal" type="s:string" /> un servicio. <s:element … name="cipher" type="s:base64Binary" /> </s:sequence> x Localización del interfaz WSDL. </s:complexType> Petición SOAP: </s:element> … x Peticiones y respuestas codificadas dentro de “sobres” SOAP. <?xml version="1.0" encoding="utf-8"?> Respuesta SOAP: <soap:Envelope …> <soap:Body> <?xml version="1.0" encoding="utf-8"?> x Uso típico de SOAP sobre HTTP. <MakeEncRequest …> <soap:Envelope …> <principal>adg@microsoft.com</principal> <soap:Body> <cipher>+oXHdaCXvK…=</cipher><MakeEncRequestResponse …> x Necesidad de nuevos tipos de firewalls </MakeEncRequest> <MakeEncRequestResult> </soap:Body> Accepted: with nonce=1 </soap:Envelope> </MakeEncRequestResult> </MakeEncRequestResponse> </soap:Body> dit </soap:Envelope> - 29 - UPM
- Slide 30: UDDI (Universal Description Discovery and Integration) x UDDI Estructura de Datos estándar. x UDDI XML Schema x UDDI Programmatic Interface (API) Utiliza XML and SOAP x Es un servicio Web. x Soporta: Gestión de taxonomía para ayudar las búsquedas. Búsquedas por personas y máquinas. dit - 30 - UPM
- Slide 31: Las nuevas especificaciones Web Services x Existe una gran actividad en multiples campos: Models and meta-models Repository Messaging Service Security and authorization Federated network identity User interface Workflow Application servers dit - 31 - UPM
- Slide 32: Todo esto nuevo queda fuera de RUBY - The Message Model in Concepts & relationships are defined x "mind map" diagrams (above) and in prose dit - 32 - UPM
- Slide 33: SOAP4R x Paquete Ruby x No termina de funcionar bien. x No Entiende bien todo el WSDL. Solo compatibilidad de .net. x Un poco pesadilla …. (ultima version 2005). dit - 33 - UPM
- Slide 34: Seguridad WS no integrada dit - 34 - UPM
- Slide 35: En desarrollo x Integración real con Rails. x Anoche liberada la aplicación…. dit - 35 - UPM
- Slide 36: VERSION ACTUAL x Integración REST con CRUD class WeblogController < ActionController::Base def index @posts = Post.find :all respond_to do |format| format.html format.xml { render :xml => @posts.to_xml } format.rss { render :action => "feed.rxml" } end end end GET /weblog # returns HTML from browser Accept header GET /weblog.xml # returns the XML GET /weblog.rss # returns the RSS dit - 36 - UPM
- Slide 37: SOAP Aun no integrado x ActiveWebServices. x Ya integrado en RAILS. x Aun en beta (esperando a la siguiente Release). x No está integrado con WSDL => generación un poco manual. dit - 37 - UPM
- Slide 38: Conclusiones x Lo están cocinando….. x Orientado a integración rapida de servidores. x Aun no da soporte a “los otros estandares” del W3C y Oasis. dit - 38 - UPM

