Sunteți pe pagina 1din 81

Diseo de Aplicaciones para Ambientes Distribuidos

Unidad 1. Panorama General de las Aplicaciones Distribuidas

LI Mara Elena Crdenas Mosqueda

Introduccin
Qu es un ambiente distribuido? Es una coleccin de computadoras separadas fsicamente y conectadas entre s por una red de comunicaciones distribuida, cada mquina hardware y software posee componentes que el usuario percibe como un solo sistema y accede a los recursos remotos (RPC) de la misma manera que a recursos locales Por qu evolucionaron las aplicaciones informticas?

Trabajo a distancia Compartir informacin Accesibilidad Seguridad en la proteccin de la informacin (tener la base de datos particionada en dos o ms nodos) Independencia de lugares.

Surgimiento de ambientes distribuidos


En 1970 Edgar Frank Codd escribi un artculo con nombre A relacional Model of Data for Large Shared Data Banks Informacin centralizada Almacenamiento distribuido Bases de datos Bases de datos distribuidas Avance tecnolgico: Globalizacin Fusin de empresas Creacin de tecnologas Web

1.1 Evolucin de las aplicaciones informticas

Actualmente cualquier aplicacin cuenta con: Interfaz de usuario Lgica de negocio Gestin de datos

1.1.1 Aplicaciones monolticas


Las tres partes forman un todo y se combinan en un solo programa de una plataforma nica, lo cual resulta costoso y de alto mantenimiento Estas aplicaciones duplican en cada computadora todos sus elementos

Interface de usuario Lgica de negocio

Datos

Aplicacin monoltica
Tambin se les llamada de una capa y los datos se encuentran mezclados o altamente mezclados lo que indica que no puede hacerse una separacin fsica o lgica para verificar si alguna de las partes puede ser reutilizable Ejemplos: Procesador de texto, MS-DOS Consulta BD 5Mb

Aplicaciones monolticas
Ventajas:
Rpida Fcil implementacin Difcil mantenimiento Poco escalable

Desventajas:
Requieren HW ms potente Congestionan la red local Difcil mantenimiento Poco escalable Solo la red local puede conectarse

1.1.2 Aplicaciones cliente/servidor


Cliente: Se le representa por un software de aplicacin que los
usuarios de Internet usan para acceder a un determinado servicio. Esto se conoce como: front-end El Cliente normalmente maneja todas las funciones relacionadas con la manipulacin y despliegue de datos Se desarrollan sobre plataformas que permiten construir interfaces grficas de usuario (GUI) y acceder a servicios distribuidos

Servidor: Un servidor tiene un software de servidor que usado


para ofrecer al cliente las funcionalidad requeridas. Se le conoce con el trmino back-end
El servidor normalmente maneja las funciones relacionadas con las reglas del negocio y los recursos de datos.

Funciones
Aceptar requerimientos de bases de datos y procesarlos Formatear datos para trasmitirlos a los clientes. Procesar la lgica de la aplicacin Realizar validaciones a nivel de bases de datos.

Este modelo provee: Usabilidad, flexibilidad, interoperabilidad y escalabilidad en las comunicaciones Se us a principios de los 80s

Cliente

Protocolo

Servidor

Definicin:
Sistema distribuido entre mltiples procesadores, donde hay clientes que solicitan servicios y servidores que los proporcionan. Cada uno de ellos est en la plataforma ms adecuada.

Modelo Cliente-Servidor
Es una arquitectura distribuida, que permite a usuarios en entornos multiplataforma tener acceso a los datos de forma transparente. La separacin Cliente-Servidor es lgica. Un mismo equipo puede realizar ambos roles, en momentos diferentes. Ejemplo: PCs & Mainframes

La arquitectura Cliente-Servidor & Programacin modular


Distribuye procesos y datos para reducir el trfico en la red La capacidad de procesamiento se distribuye entre clientes y servidores La gestin de informacin se centraliza

El ambiente es heterogneo

Algunos tipos especficos de servidores: o Servidor Web o Servidor de correo o Servidor de archivos

Servidor de Archivos:

Servidor de Bases de Datos:


Usuario
SOLICITUD DATOS LECTURA RESPUESTA

DBMS

Base de datos local

Componentes de las aplicaciones Cliente-Servidor:


Plataforma Operativa Entorno de Desarrollo de Aplicaciones Gestin de Sistemas.

Plataforma Operativa Soporta todos los modelos de


distribucin Cliente/Servidor, los diversos servicios de comunicacin, y utiliza, preferentemente, componentes estndar de la industria para los servicios de distribucin.

Entorno de Desarrollo de Aplicaciones Debe elegirse


despus de la plataforma operativa. Un entorno de aplicacin incremental, debe posibilitar la coexistencia de procesos cliente y servidor desarrollados con distintos lenguajes de programacin y/o herramientas, as como utilizar distintas tecnologas.

Gestin de Sistemas: Aumenta considerablemente el costo de


una solucin, pero no se pueden evitar. Siempre deben adaptarse a las necesidades de la organizacin.

Al decidir la plataforma operativa y el entorno de desarrollo, merece considerar:

Qu necesitamos gestionar? Dnde estarn situados los procesadores y estaciones de trabajo? Cuntos tipos distintos se soportarn? Qu tipo de soporte es necesario y quin lo proporciona?

Ventajas:
Las plataformas hardware son cada vez ms baratas Facilita integracin de sistemas para compartir informacin Favorece el uso de GUI Rpido desarrollo Favorece soluciones locales para su integracin global Evita duplicidad de datos

Desventajas:
Difcil mantenimiento de sistemas por la integracin de Hd-Sw Herramientas de administracin escasas Clientes y servidores deben usar los mismos mecanismos RPC sockets Se necesitan estrategias de manejo de errores (consistencia) La seguridad al verificar clientes o servidores El trfico en la red

Nivel de Abstraccin:
Aplicaciones del Usuario Reglas del Negocio Base de Datos Una de las principales aportaciones de esta arquitectura a los sistemas de informacin, es la interfaz grfica de usuario.

Para desarrollar un buen sistema ClienteServidor, se necesita especializacin en:

Hace posible crear un Sistema Distribuido

1. 2. 3. 4. 5. 6.

Interfaz grfica Redes de computadora Programacin de negocios Bases de datos Programacin de Bases de datos Distribucin de sistemas

1.1.3 Aplicaciones de 2, 3 y n capas


Aplicaciones de 2 capas
Fueron las primeras en aprovecharse de la estructura clienteservidor. Esta arquitectura es muy utilizada actualmente, aunque con muchas fallas, todava no se ha podido dejar de usar.

Las capas son:


Nivel de aplicacin. Se encarga de la interfaz del sistema, es el medio que tiene el usuario para realizar sus actividades con el sistema.
Nivel de la base de datos. Tambin llamado repositorio de datos. Etapa en que se almacena la informacin ingresada en el sistema y se deposita en forma permanente.
Herramientas tiles para el desarrollo en 2 capas pueden ser: Visual Basic, Access y SQL

Aplicacin de 2 capas:

Desventaja

Aplicaciones de 3 capas: Nivel de aplicacin.


Solo trabaja con la semntica propia de la aplicacin sin preocuparse de cmo esta implementado este ni de su estructura fsica

Nivel de dominio de la aplicacin.


Se encarga de la estructura fsica y el dominio de aplicacin. La mayor ventaja de esta arquitectura es que ahora nicamente se cambia la regla en el servidor de aplicacin y esta actuara en todos los clientes.

Nivel de repositorio.
Capa donde se almacenan los datos y la informacin procesada.

Aplicacin de 3 capas

1. Capa de Presentacin

2. Capa de negocio

3. Capa de datos

Servicio de Cargas ITC


Navegador Servidor Escolares

Navegador

Navegador

Aplicacin de n capas
Es una aplicacin distribuida en n capas, no solo lgicas, sino tambin fsicas, los procesos se ejecutan en diferentes equipos, de incluso diferentes plataformas o sistemas operativos. Equipo con configuracin distinta y optimizadas para realizar el papel asignado en la estructura de la aplicacin. Optimizando los recursos y la eficiencia global del sistema.

Nueva Economa
Las aplicaciones n-capas distribuidas es la arquitectura predominante en la construccin de aplicaciones multiplataforma en la mayor parte de las empresas

Ventajas de la Arquitectura n capas:


Desarrollos paralelos (en cada capa) Aplicaciones ms robustas debido al encapsulamiento Mantenimiento y soporte ms sencillo Mayor flexibilidad Alta escalabilidad Alto rendimiento Muy fiables

Aplicaciones distribuidas
Sus componentes se ejecutan en entornos separados, normalmente en diferentes plataformas conectadas a travs de una red. Las tpicas aplicaciones distribuidas son: Dos niveles (cliente-servidor) Tres niveles (cliente-middleware-servidor) Multinivel.

Componentes de una aplicacin distribuida


Una aplicacin distribuida que sigue el modelo cliente-servidor tiene los siguientes componentes:

Lado servidor: Programa que se ejecuta en un computador que esta


conectado a una red. Esta a la escucha en un puerto, ejemplo: un servidor Web escucha en el puerto 80

Lado cliente: Programa que ejecuta el usuario de la aplicacin. El


cliente hace sus peticiones al servidor a travs de la red.

Protocolo de aplicacin para la comunicacin entre el cliente y el


servidor. El protocolo define el tipo de mensajes intercambiados, por ejemplo, en la capa de aplicacin de la Web HTTP, define comunicacin entre el navegador y el servidor Web.

Formato de los mensajes que se intercambian, algunas veces forma


parte del servicio; por ejemplo, en el correo electrnico.

Ejemplos de aplicaciones distribuidas

Elementos a considerar al desarrollar aplicaciones distribuidas


1. Concurrencia: Transacciones,
bloqueos, uso CPU

2. Topologa de la red:
El ancho de banda y el trfico de red El tipo de red (LAN o WAN) La aplicacin ser o no accesible a travs de Internet. La distribucin de los procesos de la aplicacin

3. Ubicacin de la lgica: Es necesario decidir en cul de los


posibles procesos fsicos se sita cada componente lgico de la aplicacin. - Presentacin de datos o la recuperacin de los mismos - La validacin o la navegacin, La ubicacin de los componentes lgicos impacta sobre el rendimiento, sobre la reutilizacin del cdigo o sobre la facilidad de programacin.

4. Homogeneidad de las plataformas: La utilizacin de


estndares puede ser muy til a la hora de crear aplicaciones distribuidas que permanezcan abiertas a diversos sistemas heterogneos.

5. Seguridad: Las aplicaciones distribuidas son muy vulnerables. Es


necesario establecer polticas de seguridad que impidan el acceso no autorizado a los procesos. Pedir al usuario un nombre y una contrasea al iniciar el programa es probable que no sea suficiente. 6. Costo total de la aplicacin 7. La complejidad de la solucin respecto al problema planteado

1.2 Evolucin de las tecnologas para el desarrollo de Aplicaciones distribuidas

Interfaces
Seales de humo

Desarrollo de aplicaciones distribuidas?


Actualmente es difcil desarrollar y adaptar software que satisfaga todos los requerimientos de los usuarios generados por: La globalizacin La fusin de empresas El crecimiento de internet Aspectos a considerar: Integracin de datos heterogneos Interaccin entre diversos sistemas Distintos sistemas operativos Middleware Tecnologas web Escalabilidad y performance Entre otros El desarrollo de software que normalmente haba sido para una plataforma especfica, se ha cambiado a ambientes distribuidos y heterogneos.

1. Evolucin de la tecnologa de: interfaz de usuario


INTERFAZ DE USUARIO:
La interfaz grafica de usuario, es el artefacto tecnolgico de un sistema interactivo que brinda una interaccin amigable entre el sistema informtico y el usuario.

La evolucin de la interfaz de usuario no tiene mucho tiempo en desarrollo ya que anteriormente no haba interaccin entre el usuario y el lenguaje

En la actualidad realmente existe una interaccin usuario-maquina. Por medio de representaciones graficas y acciones podemos representar la informacin.

Cronologa
Hasta 1945
La interaccin era directa con el hardware

1945-1955
Programacin en modo catch o por lotes. Las interfaces no eran interactivas. Actualmente el correo electrnico les ha dado nueva vida

1955-1965
Aparecieron las interfaces en lnea. En 1960 Aparecen los sistemas de tiempo compartido. La interaccin era: Pregunta-respuesta

1980-1995
Ventanas, conos, mens y ratn GUI WIMP(Windows, Icons, Menus, Pointer) La interaccin: manipulacin directa

1995- El futuro
Interfaces no basadas en mandatos. Sistemas de realidad virtual: aaden tiempo, sonido y voz Sern altamente portables y personales

La

El sistema tomar las decisiones basado en las observaciones que haga al comportamiento del usuario, reconocimiento de gestos, emociones y dems.

interaccin:

Aqu es donde su aplicacin presenta informacin a los usuarios y acepta entradas o respuestas del usuario para usar su programa. La interfaz de usuario no debera desarrollar ningn procesamiento de negocios o reglas de validacin de los propios negocios.

Debe relegar a la capa de negocios la manipulacin de los diferentes asuntos que presentan los usuarios.
La aplicacin puede tener mltiples interfaces de usuario

Algunas tecnologas de interfaz de usuario son: 1. API Win 32 2. HTML 3. DELL HTML 4. Lenguajes Scripts

Domtica

Iron man Minority report

2. De aplicacin (Capa de aplicacin OSI o servicios de aplicacin)


El uso de aplicaciones empresariales distribuidas: Aumenta la reusabilidad Reduce la cantidad de recursos Reduce los costos de desarrollo y mantenimiento Este enfoque de diseo facilita a los desarrolladores: La funcionalidad demandada por las aplicaciones Seguridad y performance Rapidez y flexibilidad

Esta capa se encarga de la revisin de los aspectos de calidad Se encarga de la revisin del mantenimiento general, y lo que un servicio de calidad requiere. Manejo de las caches Gestin de excepciones Rendimiento, entre otros. Aplicaciones independientes del sistema que soportan usuarios reales o programas de aplicacin

La capa de aplicacin trata con los servicios OSI y la de comunicacin

La capa de aplicacin se define en trminos de:


ASEs (Application Service Elements) ASOs (Association Service Objects) CFs (Control Functions)

ASE (Association Service Element):


Se definen como un servicio o protocolo Son los elementos bsicos de la entidad Sirven para comunicacin o intercambio Se combinan para formar diferentes entidades de aplicacin

ASO (Association Service Object):


Se compone de una o ms ASEs y/o ASOs Su funcin es el control o encapsulamiento de ASEs

CF (Control Function):
Permite el dilogo y la administracin de ASOs

Entidad de Aplicacin:
Representa el conjunto de capacidades de comunicacin de un proceso de aplicacin en particular (intercambio de archivos o mensajes) Formado por un conjunto de ASEs (Application Service Elements)

Conexin (OSI): Es un servicio a usuarios, en una capa superior


La capa de aplicacin no tiene conexiones, sus entidades establecen asociaciones para intercambiar informacin entre ellas de APDUs en la capa de presentacin

Ejemplos:
- Soporte de red - DNS - Internet - Correo electrnico - Establecimiento conexin - Interrupcin de conexin - Telnet - Transferencia de archivos - Transferencia de hipertexto

Algunas tecnologas de aplicacin son:


CORBA DNA EJB XML

Ejemplo de interfaz de aplicacin

3. De Base de Datos
La evolucin de las bases de datos distribuidas se debe Demanda organizacional de mayor capacidad en BD Necesidad de integracin de informacin de distintos sitios La tecnologa de las bases de datos es el resultado de la evolucin que a lo largo de varias dcadas ha tenido lugar en el procesamiento de los datos y en la gestin de la informacin. La tecnologa de acceso a datos se ha desarrollado desde los mtodos primitivos de los aos 50 hasta los potentes e integrados sistemas de la actualidad

Los nuevos sistemas han surgido por necesidades de la sociedad, negocios y economa. La administracin solo acepta un sistema nuevo si mejora el anterior y es ms econmico que ste. Las nuevas tecnologas: BDOO y la plataforma Cliente-Servidor generan nuevos problemas y requieren soluciones verstiles

Necesidades de las empresas

Nuevas tecnologas de BD

Una clasificacin de los modelos de datos son:


Modelo relacional Base de datos relacional Modelo entidad-relacin Base de datos jerrquica Base de datos en red

Algunas tecnologas de base de datos son: OLEB ADO XML SQL Herramientas para modelado (UML)

4. De Comunicacin de Datos
La comunicacin entre distintos equipos informticos puede realizarse entre: Computadora y computadora Perifrico y computadora Perifrico y perifrico

Sistema Tele informtico: es el conjunto de recursos utilizados


para satisfacer las necesidades de transmisin de datos.

Red de Transmisin de Datos: es el


conjunto de elementos fsicos y lgicos que permiten la interconexin de equipos y satisfacen toda las necesidades de comunicacin del datos entre los mismos.

Elementos para la comunicacin de datos:

Emisor Receptor Medios o canales de comunicacin Protocolos de comunicacin Mensaje Dispositivos de comunicacin Operador

Tipos de redes

Redes de rea Local (RAL o LAN) creadas para responder a necesidades de tratamiento de informacin a pequeas distancias.

Redes de rea Extensa satisfacen necesidades de transmisin de datos a distancia superior a unos pocos kilmetros. Permite conexiones entre mltiples usuarios y dispositivos de todo tipo

Topologas de Redes:

Topologa Bus las estaciones se


conectan a un nico medio bidireccional o bus con puntos de terminacin bien definidos.

Topologa de Anillo forma un bucle


cerrado al que integra todas las estaciones de la red, un repetidor interrumpe el canal, para que cada estacin se mantenga conectada con las adyacentes.

Topologa de Estrella: La red se une en


un nico punto, normalmente con control centralizado. Todas las estaciones se conectan al concentrador y las seales son distribuidas a todas las estaciones especificas del concentrador.

La construccin de aplicaciones distribuidas


Actualmente la construccin de aplicaciones multiplataforma es la arquitectura predominante para en la mayor parte de las empresas. Esto genera un cambio radical en los modelos de computacin.

Las ltimas tendencias de las grandes empresas de tecnologa, como Sun con su estrategia Sun One, o Microsoft con DotNET (.Net)

Algunas tecnologas de comunicacin de datos son:

Intranet. Internet.

Cmo traducimos nuestras palabras para que las entienda la computadora?

00011001 00111010 00101100 10001100


http://www.w3it.org/programming/resources.php?name=ascii_code_table

Cdigo ASCII

ASCII no es el nico formato en uso. IBM en los 60s adopt EBCDIC (Extended Binary Coded cdigo de intercambio decimal) y todava se utiliza hoy en mainframes. Cdigos HTML Unicode: Los puntos del cdigo se representan utilizando notacin hexadecimal agregando el prefijo U+ . El valor hexadecimal se completa con ceros hasta 4 dgitos hexadecimales cuando es necesario, si la longitud es mayor a cuatro dgitos no se agregan ceros.

Codificacin Unicode (Hexadecimal)

5. De conexin entre capas o Aplicaciones en capas


Este modelo permite que los componentes de las aplicaciones puedan ser distribuidos, porque brindan soluciones flexibles y fiables para resolver problemas complejos inmersos en cambios constantes Todas las aplicaciones basadas en capas permitirn trabajar con clientes ligeros, tal como navegadores de Internet, WebTV, Telfonos Inteligentes, PDAs (Personal Digital Assistants o Asistentes Personales Digitales) y muchos otros dispositivos preparados para conectarse a Internet. Una tecnologa de conexin de capas es: Arquitectura DAO.

Ventajas de aplicaciones en capas:


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.

Caractersticas de Aplicaciones en capas


1. Acceso a bases de datos (BD) Normalmente BD relacionales 2. Escalables Deberan poder soportar ms carga de trabajo sin necesidad de modificar el software (slo aadir ms mquinas) 3. Disponibilidad Idealmente no deben dejar de prestar servicio 4. Seguras No todos los usuarios pueden acceder a la misma funcionalidad 5. Integracin Es preciso integrar aplicaciones construidas con distintas tecnologas

Caractersticas de Aplicaciones en capas


6. Tipo de interfaz De entorno de ventanas (clientes desktop): normalmente slo tiene sentido en intranets. Web: En Internet e intranets. 7. Separacin clara entre la interfaz grfica y la Capa de componentes Capa de componentes: encapsulan la lgica de negocio y deberan ser reusables con distintas interfaces grficas Ejemplo => aplicacin bancaria Capa de componentes: conjunto de clases que nos permiten: crear cuentas, eliminarlas, encontrarlas por distintos criterios, hacer transferencias bancarias, etc. En este ejemplo podra haber dos clientes: uno Web y otro desktop.

Caractersticas de Aplicaciones en capas


8. Transaccionales Propiedades ACID (Atomicity-Consistency-Isolation-Durability)

Operaciones atmicas (Atomicity) son operaciones que se


completan en su totalidad o no se completan en absoluto. Ejemplo en una transferencia el cargo y el abono deben ser exitosos para que el estado de transformacin sea exitoso, si hay alguna falla el sistema vuelve a su estado original.

Transformaciones consistentes (Consistency) preservan la


integridad interna de los recursos involucrados. Por ejemplo, el borrar registros de una tabla primaria viola la integridad referencial de la base de datos si hay registros relacionados que concuerden.

Transformaciones aisladas (Isolation) parecen ocurrir


serialmente, una detrs de otra, creando la ilusin de que ninguna transformacin est siendo ejecutada al mismo tiempo.

La durabilidad (Durability) se refiere a la habilidad para


almacenar los resultados de una transformacin de estado, usualmente en un disco, de tal modo que los resultados de una transformacin puedan ser recuperados en caso de una falla del sistema.

Aplicacin de 1 capa

Aplicacin de 2 capas

TAREA 1:
Investigar los principales problemas en el desarrollo y utilizacin de las aplicaciones distribuidas

1. 2. 3. 4. 5.

Qu problemas se presentan y con qu frecuencia? Cmo afectan al desarrollo de las aplicaciones distribuidas? Cmo se enfrentan? Qu se est haciendo para disminuirlos? Cules afectan ms al desempeo de las aplicaciones distribuidas?

Etc Los resultados de tu investigacin se comentarn en clase, en una mesa redonda, se tomar en cuenta la calidad de la informacin, las fuentes de la misma y tu participacin en el debate.

Aplicacin de 3 capas

La capa de servicios de presentacin es responsable de:


Obtener informacin del usuario. Enviar la informacin del usuario a los servicios de negocios para su procesamiento. Recibir los resultados del procesamiento de los servicios de negocios. Presentar estos resultados al usuario.

La capa de servicios de negocios es responsable de:


Recibir la entrada del nivel de presentacin. Interactuar con los servicios de datos para ejecutar las operaciones de negocios para los que la aplicacin fue diseada a automatizar (por ejemplo, la preparacin de impuestos por ingresos, el procesamiento de ordenes y as sucesivamente). Enviar el resultado procesado al nivel de presentacin.

La capa de servicios de datos es responsable de:


Almacenar los datos. Recuperar los datos. Mantener los datos. La integridad de los datos.

Requerimientos comunes en AD
Persistencia Transacciones Distribuidas Performance Sesin Reportes Balanceo de carga / Alta disponibilidad Concurrencia

1.3 Escenarios de utilizacin de las aplicaciones distribuidas


Actualmente no se necesita convencer a nadie de la utilidad de aplicaciones distribuidas para que las utilice.
PC
Hogares PC PC PC PC Empresas .

Existen soluciones de bajo costo y altas prestaciones. Las telecomunicaciones se han integrado a la informtica corporativa. Aplicaciones de comunicacin y de proceso de datos (telemtica). Aparicin de Internet reduce los costos en las tecnologas asociadas.

Ventajas del uso de aplicaciones distribuidas:


Mejora los procedimientos de trabajo interno de la empresa Mejora las relaciones con los clientes y los proveedores Nuevos canales de distribucin (telemarketing y telemercado) Los SI permiten mayor control del negocio Agiliza los procesos de reingeniera y control de calidad La empresa sin papel Aumento de productividad Reduce los costos de operacin y aumenta la calidad

Herramientas para el trabajo cooperativo:


Videoconferencias Transferencia de ficheros Pizarra compartida (mesa comn de trabajo) Comparticin de aplicaciones Telepuntero Mensajera entre participantes

1.4 Problemas comunes en el desarrollo y uso de aplicaciones distribuidas Investigacin a comentar en mesa redonda

Antes de las aplicaciones .NET se usaron las arquitecturas: RPC (llamadas a procedimientos remoto) Arquitecturas basadas en mensajes

Problemas comunes en el diseo de aplicaciones distribuidas


Incompatibilidad de tipos de datos Fallas del servidor Fallas del cliente Reintento de llamadas Seguridad: Autenticacin y encriptado Sincronizacin de la hora

Arquitectura basada en RPC (COM de Microsoft, CORBA, RMI)


RPC se refiere al llamado de funciones o procedimientos que se ubican fuera del equipo local. Debe proporcionar transparencia de localizacin Los subsistemas encargados de la comunicacin e intercambio de datos residen en el equipo cliente y en el servidor

Problemas:
Uso de llamadas sncronas en ambientes distribuidos Uso de mltiples componentes Balanceo de carga Priorizacin & Picos de carga de trabajo Tolerancia a fallas Firewall: El rango de puertos abiertos debe ser alto Interoperatividad: Se pierde informacin al hacer traducciones entre los diferentes protocolos usados Traduccin de formato de datos entre diferentes protocolos RPC

Arquitectura basada en Mensajes


Se usa para el desarrollo de aplicaciones distribuidas basadas en mensajes asncronos, en vez de llamadas a funciones

Problemas:
Manejo de envo y recepcin del mensaje en cdigo Uso de tecnologa propietaria (interoperabilidad) Flujo de carga y secuenciamiento de mensajes

Los problemas de las arquitecturas RPC y basadas en mensajes se resuelven utilizando los protocolos Web estndares

Arquitectura Web Basada en TCP IP


Utiliza principalmente: Lenguaje HTML y protocolo HTTP Ventajas: HTML & XML Desventajas: Seguridad & performance

S-ar putea să vă placă și