Your SlideShare is downloading. ×
  • Like
  • Save
Ruby y las arquitecturas orientadas a servicios
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Ruby y las arquitecturas orientadas a servicios

  • 6,593 views
Published

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

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
6,593
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Ruby y las arquitecturas orientadas a servicios (SOA) Joaqu ín Salvachúa Dit UPM [email_address]
  • 2. RAILS Y SOAP ¿Tranquilidad?
  • 3. RAILS
    • No tiene SOAP - XMLRPC integrado.
    • Existen versiones en Ruby.
    • Funcionan separadas de RAILS:
      • * Problemas de integraci ón.
  • 4. ¿cómo integrar aplicaciones distribuidas?
  • 5.  
  • 6. USO de “SOCKETS”
  • 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
  • 8. Necesidad de un protocolo estandard
    • No es un problema nuevo.
    • Necesidad de un entorno nuevo:
      • XML- RPC
      • SOAP
  • 9. Modelo de Llamada Remota a Procedimiento (RPC) int fxx (int a) { return a * 5; } 10 25 10 25 x = 5; y = fxx (x); z = y +1; .... SEND RECV
  • 10. XML-RPC
  • 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>
  • 12. Filosofia REST
    • Estado explicito en cada llamada.
    • Cada objeto tiene un URL.
    • Se lee y escribe objeto entero con :
      • GET
      • POST
      • No es necesario mantener el estado.
  • 13. Aspectos de diseño
    • Filosofia Rest vs. Soap
    Recursos URLs Op. Simples
  • 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.
  • 15. Screen Scrape Screen Scrape Screen Scrape Screen Scrape Message Queue Message Queue Message Queue Download File Download File Download File Transaction File Transaction File Transaction File ORB ORB CICS Gateway CICS Gateway APPC APPC RPC RPC Transaction File Sockets Sockets Message Message Application Application Application Application Application Application Application Application Application Application
  • 16. Arquitectura orientada a servicios I Service Registry Service Provider Service Requestor Find Publish Bind (HTTP)
  • 17. Arquitectura orientada a servicios II Service Registry Service Provider Service Requestor Find Publish Bind (to protocol) UDDI SOAP / XML WSDL
  • 18. Tecnologías Usadas
    • XML
      • Describe la información a ser usada.
    • SOAP
      • Empaqueta la información y la transporta entre cliente y el proveedor del servicio.
    • WSDL
      • Describe un servicio.
    • UDDI
      • Proporciona una lista de servicios disponibles.
  • 19. XML – Describe estructuras de datos
    • XML puede describir tanto datos como documentos:
      • Cual es la diferencia.
      • Podemos manejar Ambos.
    • XML se usa para datos y para metadatos.
    • Forma sencilla de describir estructuras de datos complejas y jerárquicas (serizalizaciones).
    • Flexibilidad, facilidad de procesado e independencia de plataformas – arquitecturas.
  • 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.
  • 21. Estructura de SOAP
    • Requiere un cuerpo (body) soap y un sobre (envelop).
    • Cabeceras (header)
    • opcionales
    • Modelo RPC vs.
    • Documentos.
  • 22. Estructura de SOAP
    • Requiere un cuerpo (body) soap y un sobre (envelop).
    • Cabeceras (header)
    • opcionales
    HTTP SOAP SOAP Body
  • 23. SOAP como protocolo
    • SOAP Se basa sobre XML
    SOAP Envelope XML Framework SOAP Encoding SOAP RPC SOAP Messaging Authentication Encryption BTF2.0 Attachments
  • 24. Modelos de procesado de Servicios Web Básicamente Asíncrono Básicamente Síncrono Tipo de interacción. Centrado en Documento Centrado en objetos de negocio Modelo de procesado RPC + XML attachment RPC Modelo de interacción Orientado a documento Orientado a RPC Servicio Web
  • 25. WSDL ( Web Services Description Language)
    • 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.
    • Informalmente: WSDL defines…
      • Que operaciones puede realizar
      • Donde está
      • Como es necesario invocarlo
  • 26. Funcionamiento
    • Localización de un servicio.
    • Localización del interfaz WSDL.
    • Peticiones y respuestas codificadas dentro de “sobres” SOAP.
    • Uso típico de SOAP sobre HTTP.
    • Necesidad de nuevos tipos de firewalls
  • 27. Funcionamiento
    • Localización de un servicio.
    • Localización del interfaz WSDL.
    • Peticiones y respuestas codificadas dentro de “sobres” SOAP.
    • Uso típico de SOAP sobre HTTP.
    • Necesidad de nuevos tipos de firewalls
    Petición SOAP: <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <soap:Envelope …> <soap:Body> <MakeEncRequest …> <principal>adg@microsoft.com</principal> <cipher>+oXHdaCXvK…=</cipher> </MakeEncRequest> </soap:Body> </soap:Envelope>
  • 28. Funcionamiento
    • Localización de un servicio.
    • Localización del interfaz WSDL.
    • Peticiones y respuestas codificadas dentro de “sobres” SOAP.
    • Uso típico de SOAP sobre HTTP.
    • Necesidad de nuevos tipos de firewalls
    Petición SOAP: <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <soap:Envelope …> <soap:Body> <MakeEncRequest …> <principal>adg@microsoft.com</principal> <cipher>+oXHdaCXvK…=</cipher> </MakeEncRequest> </soap:Body> </soap:Envelope> Respuesta SOAP: <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <soap:Envelope …> <soap:Body> <MakeEncRequestResponse …> <MakeEncRequestResult> Accepted: with nonce=1 </MakeEncRequestResult> </MakeEncRequestResponse> </soap:Body> </soap:Envelope>
  • 29. Funcionamiento
    • Localización de un servicio.
    • Localización del interfaz WSDL.
    • Peticiones y respuestas codificadas dentro de “sobres” SOAP.
    • Uso típico de SOAP sobre HTTP.
    • Necesidad de nuevos tipos de firewalls
    Petición SOAP: <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <soap:Envelope …> <soap:Body> <MakeEncRequest …> <principal>adg@microsoft.com</principal> <cipher>+oXHdaCXvK…=</cipher> </MakeEncRequest> </soap:Body> </soap:Envelope> Respuesta SOAP: <?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <soap:Envelope …> <soap:Body> <MakeEncRequestResponse …> <MakeEncRequestResult> Accepted: with nonce=1 </MakeEncRequestResult> </MakeEncRequestResponse> </soap:Body> </soap:Envelope> Descripción Interfaz WSDL : … <s:element name=&quot;MakeEncRequest&quot;> <s:complexType> <s:sequence> <s:element … name=&quot;principal&quot; type=&quot;s:string&quot; /> <s:element … name=&quot;cipher&quot; type=&quot;s:base64Binary&quot; /> </s:sequence> </s:complexType> </s:element> …
  • 30. UDDI ( Universal Description Discovery and Integration)
    • UDDI Estructura de Datos estándar.
    • UDDI XML Schema
    • UDDI Programmatic Interface (API)
      • Utiliza XML and SOAP
    • Es un servicio Web.
    • Soporta:
      • Gestión de taxonomía para ayudar las búsquedas.
      • Búsquedas por personas y máquinas.
  • 31. Las nuevas especificaciones Web Services
    • 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
  • 32. Todo esto nuevo queda fuera de RUBY - The Message Model
    • Concepts & relationships are defined in &quot;mind map&quot; diagrams (above) and in prose
  • 33. SOAP4R
    • Paquete Ruby
    • No termina de funcionar bien.
    • No Entiende bien todo el WSDL. Solo compatibilidad de .net.
    • Un poco pesadilla …. (ultima version 2005).
  • 34. Seguridad WS no integrada
  • 35. En desarrollo
    • Integraci ón real con Rails.
    • Anoche liberada la aplicación….
  • 36. VERSION ACTUAL
    • 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 => &quot;feed.rxml&quot; }
    • end
    • end
    • end
    • GET /weblog # returns HTML from browser Accept header
    • GET /weblog.xml # returns the XML
    • GET /weblog.rss # returns the RSS
  • 37. SOAP Aun no integrado
    • ActiveWebServices.
    • Ya integrado en RAILS.
    • Aun en beta (esperando a la siguiente Release).
    • No est á integrado con WSDL => generación un poco manual.
  • 38. Conclusiones
    • Lo est án cocinando…..
    • Orientado a integración rapida de servidores.
    • Aun no da soporte a “los otros estandares” del W3C y Oasis.