Vous êtes sur la page 1sur 44

Desarrollo de Aplicaciones para Ambientes Distribuidos

PANORAMA GENERAL DE LAS APLICACIONES DISTRIBUIDAS


DZUL

1.1.1 Aplicaciones monolticas


En los das del mainframe o del computador personal de escritorio, cuando una aplicacin era almacenada en una nica mquina, era

comn encontrar aplicaciones monolticas que contenan toda la funcionalidad de la aplicacin en una gran y frecuentemente difcilmente mantenible pieza de software .
DZUL

1.1.1 Aplicaciones monolticas


Todas las entradas de usuario, verificacin, lgica de negocio y acceso de datos podran encontrarse juntas. Esto era apropiado en el

mundo del mainframe y centros de datos corporativos porque todo era controlado y los mismos sistemas tendan a evolucionar lentamente.
DZUL

1.1.1 Aplicaciones monolticas


Sin embargo, cualquier cambio requerido a cualquier parte de la funcionalidad podra potencialmente afectar otras partes. Porque

DZUL

la presentacin, negocio, y la lgica de acceso a datos estn localizados dentro de la misma pieza de cdigo de aplicacin, la recompilacin de varias partes del cdigo podra ser necesaria, incrementando la sobrecarga de nueva o cambios de funcionalidad.

1.1.1 Aplicaciones monolticas


Incluso, los cambios en partes del cdigo podra introducir bugs no intencionales en otras partes aparentemente no relacionadas.

DZUL

1.1.2 Aplicaciones cliente/servidor


Conceptos Es un modelo para construir sistemas de informacin, que se sustenta en la idea de repartir el tratamiento de la informacin y los datos por todo el sistema informtico, permitiendo mejorar el rendimiento del sistema global de informacin.
DZUL

1.1.2 Aplicaciones cliente/servidor


Arquitectura Los distintos aspectos que caracterizan a una aplicacin (proceso, almacenamiento, control y operaciones de entrada y salida de datos) en el sentido ms amplio, estn situados en ms de una computadora, los cuales se encuentran interconectados mediante una red de comunicaciones.
DZUL

1.1.2 Aplicaciones cliente/servidor


IBM Es la tecnologa que proporciona al usuario final el acceso transparente a las aplicaciones, datos, servicios de cmputo o cualquier otro recurso del grupo de trabajo y/o, a travs de la organizacin, en mltiples plataformas. El modelo soporta un medio ambiente distribuido en el cual los requerimientos de servicio hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo realizado por otras computadoras llamados servidores.

DZUL

1.1.2 Aplicaciones cliente/servidor


Cliente Es el que inicia un requerimiento de servicio. El requerimiento inicial puede convertirse en mltiples requerimientos de trabajo a travs de redes LAN o WAN. La ubicacin de los datos o de las aplicaciones es totalmente transparente para el cliente.
DZUL

1.1.2 Aplicaciones cliente/servidor


Servidor Es cualquier recurso de cmputo dedicado a responder a los requerimientos del cliente. Los servidores pueden estar conectados a los clientes a travs de redes LANs o WANs, para proporcionar mltiples servicios a los clientes tales como impresin, acceso a bases de datos, procesamiento de imgenes, etc.
DZUL

1.1.2 Aplicaciones cliente/servidor


Qu es un proceso distribuido? Es un modelo de sistemas y/o de aplicaciones, en el cual las funciones y los datos pueden estar dispersos a travs de mltiples recursos de cmputo, conectados en un ambiente de redes LAN o WAN.

DZUL

1.1.2 Aplicaciones cliente/servidor


Caractersticas del Modelo
El Cliente y el Servidor pueden actuar como una sola entidad

DZUL

y tambin pueden actuar como entidades separadas, realizando actividades o tareas independientes. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma. Un servidor da servicio a mltiples clientes en forma concurrente. Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualizacin o por reemplazo tecnolgico, se realizan de una manera transparente para el usuario final.

1.1.3 Aplicaciones de 2,3 y n capas


El modelo ntier (ncapas) de informtica distribuida ha emergido como la arquitectura predominante para la construccin de

aplicaciones multiplataforma en la mayor parte de las empresas.

DZUL

1.1.3 Aplicaciones de 2,3 y n capas


Este cambio radical en los modelos de computacin, desde los sistemas monolticos basados en mainframe y los tradicionales sistemas clienteservidor, hacia sistemas distribuidos multiplataforma altamente modulables, representa simplemente la punta del iceberg de lo que est por llegar en el mundo del desarrollo de aplicaciones, tal y como se pone de manifiesto en las ltimas tendencias de las grandes empresas de tecnologa, como Sun con su estrategia Sun Tone, o Microsoft con DotNET (.Net).

DZUL

1.1.3 Aplicaciones de 2,3 y n capas


Ventajas del modelo Desarrollos paralelos (en cada capa) Aplicaciones ms robustas debido al encapsulamiento Mantenimiento y soporte ms sencillo (es ms sencillo cambiar un componente que modificar una aplicacin monoltica) Mayor flexibilidad (se pueden aadir nuevos mdulos para dotar al sistema de nueva funcionalidad) Alta escalabilidad . La principal ventaja de una aplicacin distribuida bien diseada es su buen escalado, es decir, que puede manejar muchas peticiones con el mismo rendimiento simplemente aadiendo ms hardware. El crecimiento es casi lineal y no es necesario aadir ms cdigo para conseguir esta escalabilidad.

DZUL

1.1.3 Aplicaciones de 2,3 y n capas


Arquitectura lgica clsica

Presentacin

Lgica de negocio

Datos

DZUL

Fuentes de datos

1.1.3 Aplicaciones de 2,3 y n capas


Usuarios y dispositivos

Arquitectura lgica ampliada


Presentacin
Componentes IU Componentes de proceso de IU

Gestin de operaciones

Comunicaciones

Seguridad

Lgica de negocio
Componentes de negocio Entidades de negocio
Svc Agents

Business Workflows

Svc Interfaces

Servicios

Componentes de acceso a datos

Datos

DZUL

Fuentes de datos

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas.

DZUL

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas.


Sistema

Distribuido: Coleccin de mquinas/procesos que colaborar para cumplir un objetivo Inicio con Aplicaciones Centralizadas. Todo lo hacia un mismo equipo. Primer servicio telemtico: Emulacin de Terminal Hay distribucin, pero todo lo sigue haciendo el Servidor.
Ej: telnet, Xwindows, Windows Terminal, VNC, etc.
DZUL

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas.


Cliente/Servidor con Bases de Datos

DZUL

Modelo de 2 niveles Aparicin de n-lgicas Presentacin Comunicaciones Lgica del Negocio Datos En el Cliente se haya la Presentacin y la Lgica del Negocio En el Servidor se hayan los Datos (Bases de Datos) Se supone que las entidades intercambian sentencias SQL NO orientado a transacciones Muy orientado a 4GL Procedimientos almacenados. Lgica del negocio en la base de datos. Dependiente.

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas.


Cliente/Servidor con bases de datos
Cliente (presentacin + lgica) RED

Servidor (Datos + SP)

Trans. Fondos

DZUL

Select * from empleados Pedro, Juan, Camilo, Consulta cuenta 1 Consulta cuenta 2 Actualizacin cuenta1 Actualizacin cuenta2 Adicionar movimientos

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas.

Procesadores de Transacciones:

Orientado a transacciones 3 niveles Procesador


de transacciones SQL

Servidor RED
DZUL Cliente

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas.


Objetos Distribuidos
Primeros pasos en RPCs A finales de los 80s emergi DCE (Distributed Computing


DZUL

Environment) como una iniciativa para estandarizar las diferentes tecnologas de RPC. No considera tecnologas de Mensajera. xito del modelo Orientado a Objetos tanto en Anlisis/Diseo como en Desarrollo. Por qu no extender este modelo a un ambiente distribuido Un cliente en cualquier parte de la red, invoca un mtodo de un objeto remoto. Adecuados en comunicaciones: Cliente a Servidor Servidor a Servidor

1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas.

DZUL

1.3 Escenarios de la utilizacin de las aplicaciones distribuidas.

DZUL

1.3 Escenarios de la utilizacin de las aplicaciones distribuidas.

DZUL

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


El desarrollo de aplicaciones distribuidas requiri de

nuevas tcnicas de diseo y de generacin de modelos. Tambin trajo nuevos problemas. Existen 2 tipos distintos de arquitecturas que se utilizaron antes de .NET para hacer aplicaciones distribuidas:
Llamadas a Procedimiento Remoto (RPC) Arquitecturas basadas en mensajes

Se vern los problemas tcnicos que este tipo de


DZUL

arquitecturas tiene y finalmente como los Estndares Web son utilizados para hacer la nueva generacin de aplicaciones distribuidas

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


Hay una serie de problemas comunes en el diseo 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. ser remotos, una falla de cualquiera de ellos puede hacer que toda la aplicacin falle . las fallas del cliente.

Fallas del Servidor: Debido a que los componentes pueden

Fallas del Cliente: El servidor debe saber como responder a


DZUL

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


Reintento de llamadas: Si por ejemplo, se hace una llamada a un mtodo 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 informacin que viaja por la red Evitar ataques de denegacin de servicio

DZUL

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

Sincronizacin de la hora: Hay operaciones que dependen de la fecha y la hora. Por ejemplo, no es lgico en una aplicacin

DZUL

procesar un envo de mercadera antes de haber recibido la orden de compra. Si el cliente y el servidor tienen fechas distintas, se debe generar un mecanismo de sincronizacin de hora para evitar este problema.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

DZUL

La arquitectura basada en RPC Qu es RPC: RPC son llamadas a procedimientos o funciones en sistemas remotos, es decir en mquinas distintas a la mquina local. Transparencia de localizacin: El desarrollador utiliza los componentes sin necesidad de saber su ubicacin fsica. Con RPC tanto en el cliente como en la mquina donde reside el componente hay subsistemas que se ocupan de la comunicacin y el intercambio de datos.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

Llamadas Sincrnicas: En RPC las llamadas a los procedimientos son sincrnicas. Esto quiere decir que cuando una

DZUL

aplicacin hace una llamada a un procedimiento RPC debe esperar que el servidor le responda para poder continuar con el procesamiento. Esto presenta problemas en un entorno distribuido, mucho ms si pensamos en distribuir los componentes en Internet.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


Las llamadas sincrnicas con RPC tienen desventajas: Uso de mltiples componentes: Si su aplicacin distribuida depende de muchos componentes que se llaman entre s, esto hace que la aplicacin sea ms susceptible a fallas. Balanceo de Carga y Tolerancia a fallos: Es el problema de como las aplicaciones descubren la informacin necesaria para poder conectarse otros servidores en el caso de que el que esta utilizando falle. O de como balancean el procesamiento entre varios servidores Esto no es posible con RPC.

DZUL

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

Priorizacin: Con RPC es muy difcil detectar que servidores estn con mucha carga de trabajo y derivar la llamada RPC a otro

servidor menos ocupado.


Picos de carga de Trabajo: RPC no puede

DZUL

manejar los picos de carga de trabajo que puede tener un servidor si tiene llamadas RPC de muchos clientes.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

La arquitectura basada en Mensajes Otra arquitectura para desarrollar aplicaciones distribuidas es la basada en mensajes.
Esta tecnologa es asincrnica. Lo que significa que el cliente puede seguir con el procesamiento mientras espera la respuesta del servidor. Utiliza mensajes en vez de llamadas a funciones.

DZUL

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


Tiene desventajas: Procesamiento del Mensaje: El programador debe manejar en el cdigo el empaquetamiento y des empaquetamiento de los mensajes. Adems debe controlar su validez Interoperabilidad: Los sistemas de mensajera utilizan tecnologa propietaria. Se necesita software para permitir el envo de mensajes y la comunicacin los distintos sistemas. Flujo de Carga y secuenciamiento de los mensajes: Se necesita de algn mecanismo para coordinar el flujo y la secuencia de los mensajes. Por ejemplo, no se puede procesar una orden de envo de un producto antes de que se procesa la orden de pedido del producto.

DZUL

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

Los estndares Web Tanto RPC como la arquitectura basada en mensajes han sido implementados en forma exitosa por muchas organizaciones. Sin embargo su uso tiene dificultades que se resuelven con la utilizacin de los protocolos Web estndares.
DZUL

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

Problemas con los Protocolos Binarios: Existen varias tecnologas RPC, ninguna estndar, por ejemplo. COM de Microsoft, CORBA y RMI. Todas estas tecnologas utilizan protocolos binarios. Los protocolos binarios tienen desventajas:
Firewall:

DZUL

Para permitir la comunicacin entre un cliente y un servidor que se encuentra detrs de un firewall los administradores deben dejar un rango variable de puertos abiertos. Esto es un riesgo de seguridad muy alto.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


Interoperatividad: Las distintas tecnologas RPC

implican protocolos binarios de comunicacin distintos. Para que interoperen entre s se deben traducir los paquetes de red lo que puede significar prdida de informacin. Para evitar este problema las organizaciones utilizan un solo modelo RPC.
Formato de los Datos: Cada protocolo RPC utiliza
DZUL

un formato de datos distintos. La traduccin de un formato a otro presenta dificultades.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

La nueva arquitectura: Los protocolos que utiliza Internet resuelven muchos de los problemas anteriormente

mencionados.
Internet y la Web: Los protocolos TCP e IP fueron

DZUL

desarrollados originalmente para conectar redes distintas y crear una red de redes. Esta red de redes termin convirtindose en el Internet que conocemos hoy. A finales de 1990, Tim Berners-Lee invent WWW (World Wide Web).

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


WWW es lo que hoy conocemos como la Web. La Web es una red globalmente interconectada de documentos hipertexto. Utiliza 2 tecnologas principales: El lenguaje HTML y el protocolo HTTP para la comunicacin.
HTML: Es un lenguaje de marcas (Tags). Las

DZUL

marcas definen como el Explorador de Internet presenta la informacin. Los documentos que tienen estas marcas son llamados documentos hipertexto.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


Ventajas de HTTP: Es el protocolo utilizado

para pedir y recibir documentos. El formato de estos documentos puede ser HTML pero tambin muchos otros ms como por ejemplo XML.

Los Servicios Web y los clientes pueden

DZUL

intercambiar documentos XML utilizando el protocolo HTTP. HTTP es un Standard usado universalmente

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.


XML- Un formato de datos universal: A pesar

DZUL

de que HTML permite presentar datos, HTML no permite comunicar la estructura de los datos y su relacin. XML naci en 1996 para permitir describir la estructura de los datos en un documento. Firewall: Los servidores Web son los responsables de administrar los documentos, que pueden ser accedidos desde Internet pasando por el firewall de la organizacin y utilizando el protocolo HTTP.

1.4 Problemas comunes en el desarrollo y uso de las aplicaciones distribuidas.

Problemas con la Web: Como la Web es una red pblica se presentan algunos problemas.
Seguridad: Entre otros problemas se encuentran: el robo de informacin o la modificacin de los datos Performance: Algunos clientes acceden con conexiones telefnicas lo que puede limitar por su baja velocidad la complejidad de las aplicaciones. Por lo tanto algunas aplicaciones se deben limitar a la Intranet
DZUL

Vous aimerez peut-être aussi