Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIN
Descripcin del problema Un mtodo invoca la ejecucin de otros mtodos para obtener algo que no puede alcanzar por s mismo.
public class Hello { public helloBuddy(String message){ System.out.println(message); } } Devuelve algo (opcional) Importa otra clase
import Hello; public class SaySomething { public static void main(String[] args) { Hello hello= new Hello(); hello.helloBuddy(I say: Hello World!); } }
Descripcin del problema Una clase usa los mtodos que ofrece otra clase para completar su funcionalidad.
public class Hello { public helloBuddy(String message){ System.out.println(message); } } Esta clase ofrece el servicio
import Hello; public class SaySomething { public static void main(String[] args) { Hello hello= new Hello(); hello.helloBuddy(I say: Hello World!); } }
Descripcin del problema Qu ocurre si las dos clases no estn en la misma mquina? Dnde estn las clases?
Cmo se pueden localizar o descubrir las clases con la funcionalidad que se necesita?
INFORMTICA DISTRIBUIDA
RPC RPC esconde los detalles de comunicacin e interaccin a la hora de invocar la ejecucin de un mtodo que se encuentra en una mquina diferente.
El mtodo del cliente hace una invocacin de un mtodo que est implementado en un servidor. El intercambio de datos tiene lugar a travs de los parmetros de entrada y salida del mtodo invocado.
Los mtodos se describen en un lenguaje IDL que hace al mecanismo RPC independiente del lenguaje de programacin. RPC
SOCKETS
TCP, UDP IP
RPC
A travs de un compilador se genera automticamente el cdigo del cliente y del servidor que facilita la invocacin entre los mtodos. Operaciones de codificacin y decodificacin de parmetros (marshalling / unmarshalling). El mtodo del cliente hace una invocacin de un mtodo que est implementado en un servidor. Los mtodos se dan de alta en un registro en el que se les asigna una direccin IP y un puerto.
Los clientes conocen de antemano la definicin del mtodo (parmetros de entrada/salida y nombre).
CLIE T call to remote procedure Client process
Communication module
Communication module
DCOM
Mquina A Mquina A
IDL IDL
Mquina B Mquina B
peticin
IDL proxy
respuesta
IDL stub
Inspeccin mquina B
1 2 3 4
CORBA
Mquina A Mquina A
Mquina B Mquina B
peticin
IDL Stub
respuesta
IDL Skeleton
Inspeccin mquina B
1 2 3 4
RMI
Mquina A Mquina A
Mquina B Mquina B
peticin
stub
Skeleton
respuesta
Registry Service Registry Service
Inspeccin mquina B
1 2 3 4
PROBLEMAS
Estas tecnologas no interoperan entre s. Es necesaria una arquitectura independiente Del lenguaje, De la plataforma, De las caractersticas de los objetos, y Del mecanismo de llamada.
Servlets: Web como capa software Aade una capa adicional a las soluciones basadas en RPC (servidor de aplicaciones)
Servlet call
Servlet call
Servlets: Problemas La interaccin entre los mtodos tiene lugar a travs de documentos o cadenas de texto.
No se manejan tipos de datos.
Los mtodos que se pueden invocar estn predefinidos (POST y GET) y no es posible indicar parmetros de entrada/salida que no sean cadenas de texto.
La ejecucin de otros mtodos requiere de un parmetro de entrada en el que vaya codificado un lenguaje de invocacin de los mtodos. (solucin ad hoc) No es lo suficientemente flexible para la integracin de aplicaciones o para la reutilizacin de la funcionalidad ofrecida por el servlet.
Solucin: Arquitectura SOA El trmino arquitectura orientada a servicio (SOA) no est ligado a ninguna tecnologa o a lenguajes de descripcin de protocolos de interaccin y de componentes.
Una arquitectura SOA no tiene por qu estar implementada con servicios web. No todo servicio es un servicio web.
Solucin: Arquitectura SOA / Servicios Web Los servicios web son interfaces que describen las caractersticas de una coleccin de operaciones (o mtodos). que son accesibles a travs de la red usando protocolos Web estandarizados que estn basados en formatos XML. (invocacin) y cuyas propiedades estn representadas usando un lenguaje estndar basado en un formato XML. (descripcin) Los formatos XML describen la estructura de los protocolos de invocacin y de la descripcin de los servicios.
Solucin: Arquitectura SOA / Servicios Web La institucin que se encarga de estandarizar los lenguajes y protocolos en la Web es el Consorcio W3C. En la tecnologa de servicios Web se hace uso de los siguientes estndares que estn representados en XML: Protocolo de comunicaciones: HTTP
(http://www.w3.org/Protocols)
Solucin: Arquitectura SOA / Servicios Web La arquitectura SOA "recuerda" a las soluciones basadas en la tecnologa RPC
Las principales diferencias se encuentran en la estandarizacin de protocolos y en el nfasis en la composicin de servicios.
Servicios publicados Servicios publicados
Registro UDDI
Solucin: Arquitectura SOA / Servicios Web El proveedor despliega el conjunto de operaciones que desea hacer accesibles a travs de Internet.
Son accesibles como direcciones URL que apuntan a recursos (ficheros) descritos en el lenguaje WSDL. Con WSDL solamente se describen las capacidades funcionales de cada una de las operaciones. Es decir: WSDL contiene interfaces en los que se indica el nombre, las entradas, y las salidas de las operaciones. WSDL tambin indica de qu modo se invocarn las operaciones. Estas operaciones son realmente accesibles por parte de los programas cliente? Lo sern si el cliente conoce las URLs.
Solucin: Arquitectura SOA / Servicios Web El proveedor publica a travs del protocolo UDDI las caractersticas de los servicios en un registro que puede ser consultado por los clientes (registro UDDI):
En el registro se indican las caractersticas no funcionales de los servicios, tales como la descripcin de la empresa que los ofrece, la categora a la que pertenecen, etc. En el registro tambin se indica la URL correspondiente al fichero WSDL que contiene las caractersticas funcionales del servicio deseado por el cliente. Para acceder al registro UDDI se utilizan un conjunto de APIs que permiten dar de alta y de baja los servicios que ofrece el proveedor. Un registro UDDI es a los servicios Web lo que los DNS a las direcciones Web.
Solucin: Arquitectura SOA / Servicios Web El consumidor busca los servicios en el registro UDDI los servicios que tienen las caractersticas deseadas:
La bsqueda se realiza indicando palabras clave que hacen referencia a las caractersticas funcionales y no funcionales de los servicios. Se pueden indicar las entradas y salidas que deben tener los servicios (TModel). Como resultado de la bsqueda se devuelve una URL apuntando al fichero WSDL que contiene la descripcin de las operaciones y la forma en la que pueden ser invocadas.
UDDI no es un estndar del Consorcio W3C por lo que es uno de los componentes de menor implantacin en el mercado.
Solucin: Arquitectura SOA / Servicios Web El consumidor obtiene el fichero WSDL y genera automticamente el cdigo necesario para realizar la invocacin de las operaciones descritas.
Se generan las clases que representan los tipos de datos de los parmetros de entrada/salida. Se generan las clases que codifican y decodifican los parmetros de entrada/salida de las operaciones.
El consumidor usa el protocolo SOAP para invocar la ejecucin de una de las operaciones definidas en el fichero WSDL que ha sido localizado en el registro UDDI.
Ventajas: Arquitectura SOA / Servicios Web El uso de formatos XML para describir e invocar las operaciones permite la integracin de aplicaciones que: Estn implementadas en lenguajes de programacin diferentes.
(Traduccin del formato XML al lenguaje de programacin)
El uso de servicios como componentes bajamente acoplados permite a los consumidores: Reutilizar las operaciones en diferentes aplicaciones. Combinar las operaciones entre s para obtener nuevas funcionalidades.