Está en la página 1de 23

2013

Contexto de la Programacin Cliente/Servidor

MODELOS DE COMPUTACION DISTRIBUIDA, RMI, COM/DCOM/ACTIVE X/COM+, SERVICIOS WEB


GERARDO SANCHEZ GUTIERREZ

INSTITUTO TECNOLOGICO VALLE DEL GUADIANA | INGENIERIA INGORMATICA SEPTIMO SEMESTRE

Estamos en la etapa inicial de la computacin distribuida. La idea bsica de nuestro enfoque es el desarrollo de la infraestructura de aplicaciones de tal manera que el usuario no necesite saber nada sobre computadoras, redes, sistemas operativos, lenguajes de programacin, componentes, mdulos, etctera. Para resolver este problema ofrecemos una organizacin basada en interfaces de los componentes para la computacin distribuida que hemos usado para el desarrollo de sistemas de configuracin de objetos complejos. Para lograr esta meta proponemos una arquitectura sofisticada de ambiente de aplicaciones distribuidas donde agentes de toma de decisiones interoperan y cooperan sobre objetos distribuidos y configurados a travs de middleware especial. La arquitectura de este middleware se ha desarrollado como ambiente distribuido apoyado por agentes inteligentes de proyectos. La integridad de propiedades y consistencia parcial de proyectos distribuidos complejos estn soportados por mtodos especiales basados en la integracin de bases de datos y bases de conocimiento, as como en reglas de gramtica de grafos. Sistema distribuido _ Sistema en el cual componentes de hardware y software, localizadas en computadores en red, se comunican y coordinan sus acciones slo por paso de mensajes (Coulouris, 2002) _ Conjunto de computadores independientes que se muestran al usuario como un sistema nico coherente (Tanenbaum, 2001) Computacin distribuida Sistema distribuido Esquemas de computacin: Monoltica Paralela Paralela Distribuida Cooperativa Computacin distribuida: Servicio de red Aplicacin de red

Computacin distribuida Reduccin del coste del computador y del acceso a la red. Ventajas: Comparticin de recursos. Escalabilidad. Tolerancia a fallos. Inconvenientes: Mltiples puntos de fallo. Seguridad.

Computacin distribuida Conectividad (usuarios y recursos) Desempeo (tiempo de respuesta, productividad) Robustez (disponibilidad y consistencia) Seguridad (autenticacin, privacidad y control de acceso Transparencia (ubicacin, acceso, fallas, particin, replicacin, migracin, etc.) Escalabilidad (tamao, distancia y gestin) Apertura (Openess) (interfaces, interoperabilidad y portabilidad) Capas de servicios hardware y software en un Sistema Distribuido

(Vinoski, 2002)

Qu es y dnde est el Middleware?

Cules tecnologas han soportado el Middleware? CORBA/DCOM RMI de Java XML-RPC (Progenitor de los servicios Web) Objetos y Agentes de Software Mviles Remote Procedure Call Pipes Sockets

REMOTE PROCEDURE CALL(I)

REMOTE PROCEDURE CALL(II)

PIPES: CANALES (I) * Forma de comunicacin de procesos. * Un proceso enva datos por un extremo del tubo y otro proceso lee los datos en el otro extremo.

ANONYMOUS PIPES (I) * Pipes sin nombre * En una sola direccin * No trabajan sobre la red, el cliente y el servidor deben habitar la misma mquina. * Procesos relacionados: Padre Hijo

SOCKETS

SOCKETS (II)

SOCKETS EN EL MODELO OSI

INTERACCIN SOCKETs CLIENTE/SERVIDOR

LOS NUMEROS DE PUERTO

REMOTE METHOD INVOCATION RMI permite que un objeto que se ejecuta bajo el control de una JVM pueda invocar mtodos de un objeto que se encuentre en ejecucin bajo el control de una JVM instalada en un host diferente. La mquina que contiene el objeto cuyos mtodos se pueden invocar se llama servidor. La mquina que invoca mtodos sobre el objeto remoto se llama cliente.

ARQUITECTURA RMI

(Arcos, 2009)

SEGURIDAD RMI no implementa ninguna poltica de seguridad en la capa de transporte. Las comunicaciones se realizan en "texto se tienen en cuenta. El servidor RMI no autentifica las peticiones de acceso sobre sus objetos, de forma que un posible cliente ilcito podra tener acceso a los objetos. MODELOS FUNDAMENTALES PARA RAZONAR SOBRE SISTEMAS DISTRIBUIDOS 1. Modelo de Interaccin: Aborda las prestaciones y dificultad de poner lmites temporales en un sistema distribuido. 2. Modelo de fallos: Intenta dar una especificacin precisa de los posibles fallos en procesos y canales de comunicacin. 3. Modelo de seguridad: Discute sobre las posibles amenazas para los procesos y canales de comunicacin. VARIANTES DEL MODELO DE INTERACCIN 1. Sistemas distribuidos sncronos: 1. Tiempo de ejecucin de cada etapa de un proceso tiene ciertos lmites inferior y superior. 2. Cada mensaje transmitido sobre un canal se recibe en un tiempo limitado conocido. 3. Cada proceso tiene un reloj local cuya tasa de deriva sobre el tiempo real tiene un lmite conocido. 2. Sistemas distribuidos asncronos. No hay limitaciones sobre: 1. La velocidad de procesamiento. 2. Los retardos de transmisin de mensajes. 3. Las tasas de deriva de reloj son arbitrarias. plano", por lo que, conceptos de seguridad no

COM / DCOM / ActiveX / COM+

Introduccin

DCOM (Distributed Component Object Model) es el resultado de la evolucin y convergencia de dos tecnologas: la comunicacin inter-procesos en los ambientes Windows de Microsoft y los esfuerzos del la OSF (Open Software Foundation) para desarrollar un ambiente de computacin distribuido (DCE, Distributed Computing Environment), en particular un protocolo para la invocacin de procesos remotos (RPC, Remote Procedure Calls).

La Figura 1 muestra la evolucin de DCOM

Los primeros computadores personales tenan capacidades limitadas y empleaban sistemas operativos simples que solo podan ejecutar un proceso (programa) a la vez. Con el desarrollo de procesadores ms poderosos y de sistemas operativos ms sofisticados se hizo posible la ejecucin de varios procesos de forma (aparentemente) simultnea incorporando tcnicas de tiempo compartido. Debido a la modalidad de uso de los computadores personales (interaccin directa hombre-mquina) pronto se sinti la necesidad de contar con mecanismos de intercambio de informacin entre procesos.

Los primeros intentos de ofrecer comunicacin entre procesos en los ambientes Windows fueron el DDE (Dynamic Data Exchange) y el Clipboard. El DDE era un mecanismo de intercambio de mensajes que result complejo para los programadores y muy pocas aplicaciones lo usaron exitosamente. El Clipboard, por otra parte, permiti a los usuarios de una forma simple la creacin de documentos compuestos, es decir, con diferentes tipos de contenidos generados por diversos procesos.

La principal limitacin del Clipboard es que los documentos creados son estticos: si cualquiera de los elementos de un documento compuesto cambia, se deber modificar el documento compuesto manualmente. Para atacar este problema, Microsoft introdujo en 1992 la tecnologa OLE (Object Linking and Embedding). OLE introduce los conceptos de objeto y componente, acordes con los paradigmas modernos de programacin.

COM surge para satisfacer la necesidad de Microsoft de modularizar las complejas aplicaciones modernas, incluyendo sistemas operativos tales como Windows 9x/ME/NT/2000. COM permite la creacin de componentes reutilizables que pueden ser desarrollados de manera independiente los unos de los otros. Con esto se logra dividir sistemas complejos en subsistemas que pueden ser asignados a diferentes grupos de programadores. Un componente COM puede contener uno o ms objetos.

Por otra parte la OSF se estableci en los aos 1980s como un consorcio de empresas del ramo de tecnologas de informacin con la misin de definir estndares independientes en el rea. DCE es de los estndares propuestos por la OSF cuyo objetivo es la de proveer un ambiente para el desarrollo de sistemas distribuidos. Uno de los componentes de DCE es una especificacin para la comunicacin entre computadores. Esta especificacin, conocida como RPC, permite que aplicaciones en computadores diferentes se comuniquen.

La integracin de COM y RPC dio origen a DCOM. Este ltimo permite crear aplicaciones cuyos componentes no necesariamente residen en un computador sino que pueden estar distribuidos en varios computadores conectados en red.

Los componentes ActiveX se basan en COM/DCOM y sustituyen/incluyen a OLE. La funcionalidad de ActiveX se implementa mediante un conjunto especfico de interfaces

definidas sobre diversos objetos y secuencias de operacin especficas, tanto en clientes como en servidores.

Qu es COM? Esta pregunta puede responderse de cualquiera de las siguientes maneras: COM es una especificacin. COM es una porcin de cdigo que forma parte de varios sistemas operativos. COM es una filosofa para el desarrollo de aplicaciones. COM es un estndar binario para la construccin de componentes.

La

especificacin

de

COM

es

un

documento

que

puede

obtenerse

de

http://www.microsoft.com/com/. Este documento describe todos los aspectos que un programador debe conocer para desarrollar aplicaciones COM.

Por otra parte, el sistema operativo debe proveer un nmero de facilidades para que las aplicaciones COM puedan ejecutarse. En la actualidad solo algunas versiones de Windows proveen este soporte en modo nativo.

Otra forma de describir COM es como una filosofa para el diseo y desarrollo de aplicaciones. En la medida en que las aplicaciones se hacen ms grandes y complejas, el desarrollo de programas monolticos se vuelve imprctica. El desarrollo de aplicaciones se facilita si stas se modularizan dividindolas en componentes que pueden ser desarrollados de manera independiente y que adems pueden reutilizarse en el futuro.

Por ltimo, COM es un estndar binario porque los componentes pueden ser utilizados sin necesidad de tener acceso al cdigo fuente: solo se requiere acceso al componente en

forma binaria. Esto permite que componentes elaborados por diversos proveedores puedan conectarse e interactuar en forma significativa. ActiveX

ActiveX ha sido definido de varias formas:

Un trmino de mercadeo de Microsoft. Un trmino de Microsoft para identificar sus tecnologas que pueden aplicarse al Internet. Un componente COM que implementa IUnknown y tiene capacidad para auto-registrarse. El nuevo nombre de los controles OLE.

El hecho de que las ltimas dos definiciones son contradictorias (los controles OLE son objetos COM que se comunican con su entorno mediante un conjunto de interfaces bien definidas) hace pensar que probablemente la primera definicin sea la ms correcta, sobre todo si se toma en cuenta que la gente de mercadeo ha acogido ampliamente la idea (inicialmente propuesta por Humpty Dumpty) de que las palabras significan cualquier cosa que se desee que signifiquen.

Tomando la definicin ms amplia de AvtiveX, se puede representar la relacin entre COM, OLE y ActiveX como se muestra en la figura 3

La funcionalidad de ActiveX incluye tres reas:

Automatizacin, Documentos ActiveX, y Objetos (controles) ActiveX.

La automatizacin ActiveX permite una capacidad de programacin a nivel de Macro que pueda abarcar varias aplicaciones.

Los documentos ActiveX proveen la habilidad de alojar informacin de otras aplicaciones en un documento central, promoviendo una interface de usuario centrada en documentos.

Por ltimo los controles ActiveX (antes controles OLE) definen un conjunto de interfaces que deben ser implementadas para que un objeto pueda calificar como un ActiveX, as como las interfaces necesarias para crear un contenedor de controles ActiveX. Los controles ActiveX se implementan como componentes COM InProcess. COM+

COM+ se distribuye a partir de 1.999 con la introduccin de Windows 2000. COM+ integra el modelo de objetos de COM con algunos servicios que son necesarios para la creacin de aplicaciones empresariales, de una forma tal que los programadores puedan concentrarse en la lgica del negocio y no tengan que gastar tiempo y esfuerzos en desarrollar infraestructura ni otros servicios comunes. Com+ trata de lograr esto de forma tal que sea fcil de usar, implementar y mantener. En cierto modo COM+ es la convergencia de COM, MTS (Microsoft Trasaction Server) y otros.

Para permitir que los componentes COM+ participen en servicios, se agregan dos elementos adicionales a los componentes COM: un contexto y un conjunto de atributos. Esto permite determinar las caractersticas de ejecucin del objeto: si es transaccional, si se va usar balance de carga, si se va a usar una cola de componentes, etc. Cuando se invoca un objeto, COM+ intercepta la llamada para examinar el contexto y ejecuta cualquier accin necesaria antes de invocar al objeto. Al terminar el objeto su trabajo, el interceptor examina nuevamente el contexto para determinar si se requiere alguna otra accin antes de retornar el control a la aplicacin. La figura 5 ilustra la estructura de un componente COM+ y su interaccin con un cliente.

Ente los beneficios de COM+ el primero es la simplificacin mediante reduccin. Se proveen nuevos servicios mediante un modelo basado en atributos en vez de un API tradicional. COM+ tambin intenta reducir al mnimo la infraestructura de programacin de forma que los clientes no tengan que preocuparse de cosas tales como aspectos transaccionales, entre otros.

En segundo lugar se est tratando de imponer un modelo simple y escalable. Los clientes crean objetos, los usan y los liberan inmediatamente. Tambin se intenta que los clientes no tengan mucho que hacer, que los servidores se hagan cargo del trabajo.

Por ltimo, COM+ es una arquitectura simple y extensible. Los interceptores examinan el contexto y hacen lo que sea necesario. Para agregar nuevos servicios solo debe ingresarse la informacin necesaria al contexto.

La funcionalidad de COM+ se puede describir en siete categoras bsicas:

Desarrollo de servidores Servicios transaccionales

Seguridad Administracin Colas de componentes (procesamiento diferido) Manejo de eventos Balance de carga (Microsoft, 2000)

Servicios Web Aplicaciones auto-contenidas, auto-descritas que pueden ser publicadas, localizadas e invocadas a travs de la Web

Una vez desarrolladas, otras aplicaciones (y otros servicios Web) pueden descubrirlas e invocar el servicio dado Posible definicin:

Aplicaciones auto-contenidas, auto-descritas que pueden ser publicadas, localizadas e invocadas a travs de la Web. Una vez desarrolladas, otras aplicaciones (y otros servicios Web) pueden descubrirlas e invocar el servicio dado. Nota: No todos los servicios Web estn publicados para ser descubiertos automticamente (Gayo, 2006) Qu son los Servicios Web? Existen mltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definicin que englobe todo lo que son e implican. Una posible sera hablar de ellos como un conjunto de aplicaciones o de tecnologas con capacidad para interoperar en la Web. Estas aplicaciones o tecnologas intercambian datos entre s con el objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamando a estos procedimientos a travs de la Web. Para qu sirven? Estos servicios proporcionan mecanismos de comunicacin estndares entre diferentes aplicaciones, que interactan entre s para presentar informacin dinmica al usuario. Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinacin para realizar operaciones complejas, es necesaria una arquitectura de referencia estndar. Cmo funcionan? El siguiente grfico muestra cmo interacta un conjunto de Servicios Web:

Figura 1 - Los servicios Web en Funcionamiento

Segn el ejemplo del grfico, un usuario (que juega el papel de cliente dentro de los Servicios Web), a travs de una aplicacin, solicita informacin sobre un viaje que desea realizar haciendo una peticin a una agencia de viajes que ofrece sus servicios a travs de Internet. La agencia de viajes ofrecer a su cliente (usuario) la informacin requerida. Para proporcionar al cliente la informacin que necesita, esta agencia de viajes solicita a su vez informacin a otros recursos (otros Servicios Web) en relacin con el hotel y la compaa area. La agencia de viajes obtendr informacin de estos recursos, lo que la convierte a su vez en cliente de esos otros Servicios Web que le van a proporcionar la informacin solicitada sobre el hotel y la lnea area. Por ltimo, el usuario realizar el pago del viaje a travs de la agencia de viajes que servir de intermediario entre el usuario y el servicio Web que gestionar el pago. En todo este proceso intervienen una serie de tecnologas que hacen posible esta circulacin de informacin. Por un lado, estara SOAP (Protocolo Simple de Acceso a Objetos). Se trata de un protocolo basado en XML, que permite la interaccin entre varios dispositivos y que tiene la capacidad de transmitir informacin compleja. Los datos pueden ser transmitidos a travs de HTTP , SMTP , etc. SOAP especifica el formato de los mensajes. El mensaje SOAP est compuesto por un envelope (sobre), cuya estructura est formada por los siguientes elementos: header (cabecera)

y body (cuerpo).

Figura 2 - Estructura de los mensajes Para optimizar el rendimiento de las aplicaciones basadas en Servicios Web, se han desarrollado tecnologas complementarias a SOAP, que agilizan el envo de los mensajes (MTOM) y los recursos que se transmiten en esos mensajes (SOAP-RRSHB). Por otro lado, WSDL (Lenguaje de Descripcin de Servicios Web), permite que un servicio y un cliente establezcan un acuerdo en lo que se refiere a los detalles de transporte de mensajes y su contenido, a travs de un documento procesable por dispositivos. WSDL representa una especie de contrato entre el proveedor y el que solicita. WSDL especifica la sintaxis y los mecanismos de intercambio de mensajes. Durante la evolucin de las necesidades de las aplicaciones basadas en Servicios Web de las grandes organizaciones, se han desarrollado mecanismos que permiten enriquecer las descripciones de las operaciones que realizan sus servicios mediante anotaciones semnticas y con directivas que definen el comportamiento. Esto permitira encontrar los Servicios Web que mejor se adapten a los objetivos deseados. Adems, ante la complejidad de los procesos de las grandes aplicaciones empresariales, existe una tecnologa que permite una definicin de estos procesos mediante la composicin de varios Servicios Web individuales, lo que se conoce como coreografa. (http://www.w3c.es/, 2013)

Referencias
Arcos, G. (2009). Computacion Distribuida. Universidad Carlos III de Madrid. Coulouris. (2002). Sistema Distribuido. Gayo, J. E. (2006). Introduccion a los Sevicios Web. http://www.w3c.es/. (8 de Septiembre de 2013). Gua Breve de Servicios Web. Obtenido de http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb Microsoft. (2000). COM/DCOM/Active X/ COM+. Tanenbaum. (2001). Sistema Distribuido. Vinoski, S. (2002). Where is Middleware? IEEE Internet Computing.