martes, 16 de octubre de 2012

Sistemas distribuidos - Frameworks


Sistemas distribuidos - Frameworks

Sin duda la gran mayoría de las aplicaciones que se desarrollan actualmente son aplicaciones distribuidas. El framework de .Net nos proporciona un poderoso marco para el desarrollo de este tipo de aplicaciones. Veremos como .NET remoting permite desarrollar, desplegar y configurar con facilidad aplicaciones distribuidas sin los quebraderos de cabeza y las limitaciones que presentaban anteriores soluciones.
Tecnologías para el desarrollo de aplicaciones distribuidas El desarrollo de aplicaciones distribuidas sería una tarea prácticamente impracticable sin la existencia de diferentes tecnologías o frameworks que hacen la tarea más llevadera proveyendo una serie de servicios básicos a toda aplicación distribuida.
A lo largo de los últimos tiempos se han desarrollado diferentes de estos frameworks; a menudo unos son evolución lógica de otros añadiendo una nueva capa de abstracción y simplicidad. DCE/RPC Disctributed Computing Environment (DCE) fue diseñando por la Open Software Fundation, a principios de los años 90, en un intento de proveer una serie de herramientas y servicios (llamadas a procedimientos remotos, seguridad, etc...) que facilitasen el desarrollo de sistemas distribuidos. Sin embargo aunque DCE/RPC ha sido una tecnología ampliamente usada y válida, nunca se ha caracterizado por su facilidad de implementación. Otro importante problema es que la implementación ha estado restringida a lenguajes diferentes de C/C++. Otra carencia de este entorno es la ausencia total de orientación a objetos. A pesar de estos problemas, DCE/RPC es la base para algunos de los frameworks más usados como son COM+ y DCOM. Muchas aplicaciones distribuidas de amplio uso, también tienen como base DCE/RPC, por ejemplo, MS SQL Server, Exchange Server, SMB (Server Message Block) y NFS (Network File System).

CORBA (Common Object Requets Broker Arquitectura) es un estándar definido por el consorcio OMG (Object Management Group), formado por más de 800 empresas. CORBA es solamente una colección de estándares; la implementación es realizada por todas aquellas terceras compañías que lo deseen. Esto unido a que partes del estándar es opcional y a que a menudo las compañías que implementan el estándar añaden extensiones propietarias incompatibles con otras implementaciones, han hecho que el objetivo de interoperabilidad con el que nació CORBA no se haya alcanzado de manera plena. A pesar de estos problemas, dejando aparte SOAP, CORBA es el único entorno multiplataforma y multilenguaje para aplicaciones distribuidas. Existen ORBs (Object Request Brokers) para la totalidad de sistemas operativos y librerías para el desarrollo en la mayoría de los lenguajes. También existen capas para integrar CORBA con otras tecnologías como COM y EJB. COM/DCOM (Distributed Component Object Model) A veces llamado oRPC (Object RPC).

DCOM (Distributed Component Object Model) es una extensión de RPC orientada a objetos. COM nace a raíz de la necesidad de compartir objetos entre aplicaciones, ya sean objetos visibles (componentes ActiveX) u objetos sin parte visual (librerías ActiveX). DCOM es una extensión de COM que permite desplegar los componentes de una aplicación de manera transparente sobre una red para formar un sistema distribuido. DCOM presenta problemas en lo relativo a su uso sobre redes dispersas, al usar un formato binario (DCE/RPC) para transmitir la información y realizar la asignación de puertos para comunicaciones de manera dinámica, hace difícil su uso si hay firewalls de por medio. Existen implementaciones de DCOM para Windows y Unix, sin embargo, su uso está casi restringido a sistemas Windows donde, con anterioridad a .NET, constituía un marco tecnológico casi omnipresente. COM+ COM+ fue el primer intento serio de Microsoft de proveer un servidor de aplicaciones de nivel empresarial. En esencia, COM+ es una serie de servicios (eventos distribuidos, pool de objetos, transacciones distribuidas, mensajería entre aplicaciones, eventos bajo suscripción, administración de seguridad, balanceo de carga, etc...) construidos sobre DCOM y que extienden sus posibilidades. La principal pega de este marco tecnológico es que está íntimamente ligado a sistemas Windows y la dificultad de una correcta configuración, aunque ésta no es mayor que la habitual en otros sistemas distribuidos. La total integración con los sistemas Windows es sin duda el punto fuerte de COM+. Mencionar por último que .NET delega en COM+ cuando necesita los servicios anteriormente citados.

Java EJB Entrerprise Java Beans (EJB) fue la respuesta que SUN dio a COM+. EJB es un estándar pero al contrario que CORBA, que es sólo un estándar, SUN proporciona una implementación de referencia, lo que garantiza que un sistema que corra sobre esta implementación lo hará sobre cualquier otra que esté de acuerdo al estándar. EJB ha sido ampliamente aceptado por la industria informática, de manera que existen implementaciones del estándar realizadas por numerosas empresas e incluso implementaciones Open Source muy dignas (www.jboos.org). El principal problema con EJB es que a menudo las empresas implementan contenedores que aportan características más allá del estándar, y si las usamos, nuestro sistema estará ligado a un contendor determinado. Otro problema es que el despliegue de la aplicación y la configuración del contendor es un proceso bastante complicado. Web Services/SOAP/XML-RPC.
Sin duda los servicios Web son el primer entorno que realmente logra una verdadera solución a la integración entre sistemas heterogéneos, gracias al uso de estándares ampliamente extendidos y ya existentes en la mayoría de las plataformas. Los servicios Web usan HTTP POST para realizar llamadas a componentes remotos, usando XML para codificar la información necesaria para realizar la llamada, pasar parámetros y recibir resultados.

SOAP es el protocolo más usado a la hora de codificar la información necesaria para realizar la llamada. SOAP (Simple Object Access Protrocol), WSDL (Web Service Description Language) y UDDI (Universal Dscription, Discovery and Integration) constituyen una serie de estándares basados en XML y HTTP que forman un marco tecnológico que permite de una manera sencilla la comunicación entre sistemas heterogéneos gracias a la amplia disponibilidad de HTTP y XML, únicas tecnologías necesarias para la implementación de estos estándares. La principal carencia de los servicios Web es la imposibilidad de mantener el estado de los objetos entre llamadas y el menor rendimiento.

No hay comentarios:

Publicar un comentario