Quick Upload

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
Post to Twitter Post to Twitter
Share on Facebook
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

Ruby y las arquitecturas orientadas a servicios

from jsalvachua, 3 years ago Add as contact

3636 views | 0 comments | 0 favorites | 1 embeds (Stats)

Desc: Se presentan diversas soluciones para la integracion de aplicaciones web usando ruby y Rails

Embed customize close
 

Categories

Technology

Groups/Events

More Info

This slideshow is Public

Views: 3636 Comments: 0 Favorites: 0 Downloads: 0

View Details: 3624 on Slideshare 12 from embeds
Most viewed embeds (Top 5): More
Flagged as inappropriate Flag as inappropriate

Flag as inappropriate

Select your reason for flagging this slideshow as inappropriate.

If needed, use the feedback form to let us know more details.

Slideshow Transcript

  1. Slide 1: Ruby y las arquitecturas orientadas a servicios (SOA) Joaquín Salvachúa Dit UPM Jsalvachua@dit.upm.es dit -1- UPM
  2. Slide 2: RAILS Y SOAP ¿Tranquilidad? dit -2- UPM
  3. 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
  4. Slide 4: ¿cómo integrar aplicaciones distribuidas? dit -4- UPM
  5. Slide 5: dit -5- UPM
  6. Slide 6: USO de “SOCKETS” dit -6- UPM
  7. 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
  8. 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
  9. 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
  10. Slide 10: XML-RPC dit - 10 - UPM
  11. 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
  12. 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
  13. Slide 13: Aspectos de diseño x Filosofia Rest vs. Soap Recursos URLs Op. Simples dit - 13 - UPM
  14. 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
  15. 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
  16. Slide 16: Arquitectura orientada a servicios I Service Registry Find Publish Service Service Provider Bind (HTTP) Requestor dit - 16 - UPM
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. 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
  33. 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
  34. Slide 34: Seguridad WS no integrada dit - 34 - UPM
  35. Slide 35: En desarrollo x Integración real con Rails. x Anoche liberada la aplicación…. dit - 35 - UPM
  36. 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
  37. 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
  38. 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