






UNIDAD 1. Panorama general de las aplicaciones distribuidas.
1.1 Evolución de las aplicaciones informáticas.
La evolución de las aplicaciones informáticas se dio debido a los siguientes factores:
1 Trabajo a distancia.1.1.1 Aplicaciones Monolíticas.
1.1.3 Aplicaciones de 2, 3 y n Capas.
APLICACIONES DE 2 CAPAS.
La arquitectura de dos capas en la actualidad es muy utilizada, aunque con muchas fallas, todavía no se ha podido dejar de usar. Estas arquitecturas fueron las primeras en aprovecharse de la estructura cliente-servidor.
Las capas que esta arquitectura presenta son las siguientes:
Nivel de aplicación
Este nivel es en el que se encuentra toda la interfaz del sistema y es la que el usuario puede disponer para realizar su actividad con el sistema.
Nivel de la base de datos.
Este nivel de la Base de Datos también llamado el Repositorio de Datos, es la capa en donde se almacena toda la información ingresada en el sistema y que se deposita en forma permanente.
Existen herramientas para el desarrollo en dos capas por ejemplo Visual Basic, Access y SQL.
APLICACIONES DE TRES CAPAS
La arquitectura de dos capas si bien ayudó en unos años atrás, se vio la necesidad de crear una nueva arquitectura ya que en dos capas se tenía algunos problemas en la capa de aplicación ya que la principal desventaja de esta era el peso que tenia para el cliente, como se mencionó anteriormente.
Por estas razones, existe una fuerte y bien avanzada tendencia a adoptar una arquitectura de tres capas.
Y es así que se creó la arquitectura de tres capas las cuales son:
• Nivel de Aplicación La diferencia de este nivel aplicado ahora en una arquitectura de tres capas es que solo tiene que trabajar con la semántica propia de aplicación, sin tener que preocuparse de cómo esta implementado este ni de su estructura física.
• Nivel de Dominio de la aplicación.En cambio este nivel se encarga de toda la estructura física y el dominio de aplicación. Algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora únicamente se cambia la regla en el servidor de aplicación y esta actuará en todos los clientes, cosa que ni sucedía con la arquitectura en dos capas que si alguna regla se la cambia, se tenía que ir a cada cliente a realizar el cambio.
• Nivel de Repositorio. Sigue siendo la capa en donde se almacenan los datos y toda la información.
Las herramientas para el desarrollo de tres capas son:
• Visual Basic en lo que se refiere a la capa de Aplicación • SQL Server en lo que se refiere al repositorio de datos.
• MTS en lo que se refiere al nivel del dominio de Aplicación
APLICACIONES DE N CAPAS
En una aplicación distribuida en n-capas los diferentes procesos están distribuidos en diferentes capas no sólo lógicas, sino también físicas. Los procesos se ejecutan en diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos completamente distintos. Cada equipo posee una configuración distinta y está optimizado para realizar el papel que le ha sido asignado dentro de la estructura de la aplicación, de modo que tanto los recursos como la eficiencia global del sistema se optimicen.
El surgimiento de la tecnología de componentes distribuidos es la clave de las arquitecturas de n-capas. Estos sistemas de computación utilizan un número variable de componentes individuales que se comunican entre ellos utilizando estándares predefinidos y frameworks de comunicación como:
CORBA: (Common Object Request Broker Architecture) del Object Management Group (OMG).
DNA : (Distributed Network Applications) de Microsoft (incluye COM/DCOM y COM+ además de MTS, MSMQ, etc.
EJB : (Enterprise Java Beans) de Sun Microsystems
XML : (eXtensible Markup Language) del World Wide Web Consortium (W3)
NET: de Microsoft que incluye nuevos lenguajes como Visual Basic.net, C#.
1.1.4 Aplicaciones Distribuidas.
El diseño de aplicaciones modernas involucra la división de una aplicación en múltiples capas; la interfaz de usuario, la capa media de objetos de negocios, y la capa de acceso a datos. Puede ser útil identificar los tipos de procesamiento que podemos esperar que una aplicación realice. Muchas aplicaciones pueden, al menos, hacer lo siguiente:
Cálculos u otros procesos de negocios.
Ejecución de reglas de negocios.
Validación de datos relacionados al negocio.
Manipulación de datos.
Ejecución de las reglas de datos relacional.
Interactuar con aplicaciones externas o servicios.
Interactuar con otros usuarios.
Nosotros podemos tomar estos tipos de servicios y generalizarlos dentro de los tres grupos o capas que a continuación se resumen:
Interfase de usuario (Capa de Presentación)
Interactuar con otros usuarios.
Interactuar con aplicaciones externas o servicios.
Procesos de negocios (Capa de Negocios)
Cálculos u otros procesos de negocios.
Ejecución de reglas de negocios.
Validación de datos relacionados al negocio.
Procesos de datos (Capa de Servicios de Datos).
Manipulación de datos.
Ejecución de las reglas de datos relacional.
1.4 Problemas comunes en el desarrollo y uso de aplicaciones distribuidas.
Hay una serie de problemas comunes en el diseño de las aplicaciones distribuidas:
La compatibilidad de los Tipos de Datos: Distintos sistemas operativos tienen diferentes tipos de datos que no son siempre compatibles entre sí.
Fallas del Servidor: Debido a que los componentes pueden ser remotos, una falla de cualquiera de ellos puede hacer que toda la aplicación falle.
Fallas del Cliente: El servidor debe saber cómo responder a las fallas del cliente.
Reintento de llamadas: Si por ejemplo, se hace una llamada a un método en un servidor para generar una orden de compra muy grande, y el servidor responde pero se pierde la respuesta por fallas de red, no es muy eficiente volver a enviar la orden de compra.
Seguridad: En aplicaciones distribuidas los problemas de seguridad se multiplican. Por ejemplo, se debe considerar como: Autenticar a los usuarios Autorizarlos a acceder a los recursos, encriptar la información que viaja por la red, evitar ataques de denegación de servicio.
Sincronización de la hora: Hay operaciones que dependen de la fecha y la hora. Por ejemplo, no es lógico en una aplicación procesar un envío de mercadería antes de haber recibido la orden de compra. Si el cliente y el servidor tienen fechas distintas, se debe generar un mecanismo de sincronización de hora para evitar este problema.
La arquitectura basada en RPC Qué es RPC: RPC son llamadas a procedimientos o funciones en sistemas remotos, es decir en máquinas distintas a la máquina local. Transparencia de localización: El desarrollador utiliza los componentes sin necesidad de saber su ubicación física. Con RPC tanto en el cliente como en la máquina donde reside el componente hay subsistemas que se ocupan de la comunicación y el intercambio de datos.