aplicaciones distribuidad (1)

11
Aplicaciones distribuidas Es una aplicación con distintos componentes que se ejecutan en entornos separados, normalmente en diferentes plataformas conectadas a través de una red. Las típicas aplicaciones distribuidas son de dos niveles (cliente- servidor), tres niveles (cliente-middleware-servidor) y multinivel. Middleware: Sistema Distribuido organizado con un sistema Componentes de una aplicación distribuida. Una aplicación distribuida que sigue el modelo cliente- servidor tiene los siguientes componentes: Lado servidor: Programa que se ejecuta en un computador que está conectado a una red. En un puerto, esperando las peticiones de los clientes; por ejemplo, un servidor Web escucha en el puerto 80. Un computador que ejecuta un servidor de aplicación necesita estar conectado a la red para responder a las peticiones de los clientes. Lado cliente: Programa que ejecuta el usuario de la aplicación. El cliente hace sus peticiones al servidor a través de la red. Por ejemplo, un navegador Web. Protocolo de aplicación para la comunicación entre el cliente y el servidor. El protocolo define el tipo de mensajes intercambiados; por ejemplo, el protocolo de la

Upload: kelvin-molina

Post on 12-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

para redes

TRANSCRIPT

Aplicaciones distribuidasEs una aplicacin con distintos componentes que se ejecutan en entornos separados, normalmente en diferentes plataformas conectadas a travs de una red. Las tpicas aplicaciones distribuidas son de dos niveles (cliente-servidor), tres niveles (cliente-middleware-servidor) y multinivel. Middleware: Sistema Distribuido organizado con un sistemaComponentes 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 est conectado a una red.En un puerto, esperando las peticiones de los clientes; por ejemplo, un servidor Web escucha en el puerto 80. Un computador que ejecuta un servidor de aplicacin necesita estar conectado a la red para responder a las peticiones de los clientes. Lado cliente: Programa que ejecuta el usuario de la aplicacin. El cliente hace sus peticiones al servidor a travs de la red. Por ejemplo, un navegador Web.Protocolo de aplicacin para la comunicacin entre el cliente y el servidor. El protocolo define el tipo de mensajes intercambiados; por ejemplo, el protocolo de la capa de aplicacin de la Web, HTTP, define el formato y la secuencia de los mensajes transmitidos 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 se define el formato de los mensajes electrnicos.Estos componentes son independientes de la arquitectura de red que se utiliza.El diseo de aplicaciones modernas involucra la divisin de una aplicacin en mltiples 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 aplicacin realice. Muchas aplicaciones pueden, al menos, hacer lo siguiente: Clculos u otros procesos de negocios. Ejecucin de reglas de negocios. Validacin de datos relacionados al negocio. Manipulacin de datos. Ejecucin de las reglas de datos relacional. Interactuar con aplicaciones externas o servicios. Interactuar con otros usuarios.Ejemplos de aplicaciones distribuidas.Algunas de las aplicaciones distribuidas ms conocidas son remote login, correo electrnico, navegacin Web, streaming, telefona IP y comparticin de ficheros (P2P).Caractersticas de las aplicaciones distribuidas 1. Concurrencia: De igual forma que en las aplicaciones centralizadas, las aplicaciones distribuidas sern utilizadas por cierto nmero de usuarios concurrentemente. 2. Topologa de la red: A pesar de que a da de hoy los anchos de banda cada vez son ms amplios, el trfico de red puede ser un aspecto importante que condicione el tiempo de respuesta de la aplicacin.3. Ubicacin de la lgica: Dado que en una aplicacin distribuida intervienen varios procesos, ser necesario decidir en cul de los posibles procesos fsicos se sita cada componente lgico de la aplicacin.. 4. Homogeneidad de las plataformas: En una aplicacin distribuida los sistemas operativos involucrados o los lenguajes de desarrollo utilizados pueden ser un factor a tener en cuenta a la hora de decidir algunos aspectos importantes. 5. Seguridad: Una aplicacin distribuida mantiene procesos que de una forma u otra estn a la escucha en una red, lo que aumenta la vulnerabilidad de la aplicacin.

APLICACIONES CLIENTE/SERVIDOR.Un servidor es una aplicacin que ofrece un servicio a usuarios de Internet: un cliente es el que pide ese servicio. Una aplicacin consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas.Esta arquitectura consiste bsicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es ms ventajosa en un sistema operativo multiusuario distribuido a travs de una red de computadoras.Cliente El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al servidor, se le conoce con el trmino front-end.El Cliente normalmente maneja todas las funciones relacionadas con la manipulacin y despliegue de datos, por lo que estn desarrollados sobre plataformas que permiten construir interfaces grficas de usuario (GUI), adems de acceder a los servicios distribuidos en cualquier parte de una red.Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos: Administrar la interfaz de usuario. Interactuar con el usuario. Procesar la lgica de la aplicacin y hacer validaciones locales. Generar requerimientos de bases de datos. Recibir resultados del servidor. Formatear resultados.Servidor Es el proceso encargado de atender a mltiples clientes que hacen peticiones de algn recurso administrado por l. Al proceso servidor se le conoce con el trmino back-end [15].El servidor normalmente maneja todas las funciones relacionadas con la mayora de las reglas del negocio y los recursos de datos.Las funciones que lleva a cabo el proceso servidor se resumen en los siguientes puntos: Aceptar los requerimientos de bases de datos que hacen los clientes. Procesar requerimientos de bases de datos. Formatear datos para trasmitirlos a los clientes. Procesar la lgica de la aplicacin y realizar validaciones a nivel de bases de datos.Caractersticas de la arquitectura Cliente/Servidor Las caractersticas bsicas de una arquitectura Cliente/Servidor son: Combinacin de un cliente que interacta con el usuario, y un servidor que interacta con los recursos compartidos. El proceso del cliente proporciona la interfaz entre el usuario y el resto del sistema. El proceso del servidor acta como un motor de software que maneja recursos compartidos tales como bases de datos, impresoras, mdems, etc. Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a recursos de cmputo como velocidad del procesador, memoria, velocidad y capacidades del disco y input-output devices. Se establece una relacin entre procesos distintos, los cuales pueden ser ejecutados en la misma mquina o en mquinas diferentes distribuidas a lo largo de la red. Existe una clara distincin de funciones basada en el concepto de servicio, que se establece entre clientes y servidores. La relacin establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos clientes, regulando su acceso a recursos compartidos. Los clientes corresponden a procesos activos en cuanto a que son stos los que hacen peticiones de servicios a los servidores. Estos ltimos tienen un carcter pasivo ya que esperan las peticiones de los clientes. No existe otra relacin entre clientes y servidores que no sea la que se establece a travs del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la peticin y entrega de solicitudes de servicio. El ambiente es heterogneo. La plataforma de hardware y el sistema operativo del cliente y del servidor no son siempre la misma. Precisamente una de las principales ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus plataformas. El concepto de escalabilidad tanto horizontal como vertical es aplicable a cualquier sistema Cliente/Servidor. La escalabilidad horizontal permite agregar ms estaciones de trabajo activas sin afectar significativamente el rendimiento. La escalabilidad vertical permite mejorar las caractersticas del servidor o agregar mltiples servidores.Ventajas del esquema Cliente/Servidor Entre las principales ventajas del esquema Cliente/Servidor estn: Uno de los aspectos que ms ha promovido el uso de sistemas Cliente/Servidor, es la existencia de plataformas de hardware cada vez ms baratas. Esta constituye a su vez una de las ms palpables ventajas de este esquema, la posibilidad de utilizar mquinas considerablemente ms baratas que las requeridas por una solucin centralizada, basada en sistemas grandes. Adems, se pueden utilizar componentes, tanto de hardware como de software, de varios fabricantes, lo cual contribuye considerablemente a la reduccin de costos y favorece la flexibilidad en la implantacin y actualizacin de soluciones. El esquema Cliente/Servidor facilita la integracin entre sistemas diferentes y comparte informacin permitiendo, por ejemplo que las mquinas ya existentes puedan ser utilizadas pero utilizando interfaces ms amigables al usuario. De esta manera, podemos integrar PCs con sistemas medianos y grandes, sin necesidad de que todos tengan que utilizar el mismo sistema operacional. Al favorecer el uso de interfaces grficas interactivas, los sistemas Construidos bajo este esquema tienen mayor interaccin y ms intuitiva con el usuario. En el uso de interfaces grficas para el usuario, el esquema Cliente/Servidor presenta la ventaja, con respecto a uno centralizado, de que no es siempre necesario transmitir informacin grfica por la red pues esta puede residir en el cliente, lo cual permite aprovechar mejor el ancho de banda de la red. Una ventaja adicional del uso del esquema Cliente/Servidor es que es ms rpido el mantenimiento y el desarrollo de aplicaciones, pues se pueden emplear las herramientas existentes (por ejemplo los servidores de SQL o las herramientas de ms bajo nivel como los sockets o el RPC ). La estructura inherentemente modular facilita adems la integracin de nuevas tecnologas y el crecimiento de la infraestructura computacional, favoreciendo as la escalabilidad de las soluciones. El esquema Cliente/Servidor contribuye adems, a proporcionar, a los diferentes departamentos de una organizacin, soluciones locales, pero permitiendo la integracin de la informacin relevante a nivel global.Desventajas del esquema Cliente/Servidor Entre las principales desventajas del esquema Cliente/Servidor estn: El mantenimiento de los sistemas es ms difcil pues implica la interaccin de diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el diagnstico de fallas. Se cuenta con muy escasas herramientas para la administracin y ajuste del desempeo de los sistemas. Es importante que los clientes y los servidores utilicen el mismo mecanismo (por ejemplo sockets o RPC), lo cual implica que se deben tener mecanismos generales que existan en diferentes plataformas. Adems, hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos. La seguridad de un esquema Cliente/Servidor es otra preocupacin importante. Por ejemplo, se deben hacer verificaciones en el cliente y en el servidor. El desempeo es otro de los aspectos que se deben tener en cuenta en el esquema Cliente/Servidor. Problemas de este estilo pueden presentarse por congestin en la red, dificultad de trfico de datos, etc.Caractersticas del Modelo El Cliente y el Servidor pueden actuar como una sola entidad 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.El servidor es un programa que recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una respuesta. Generalmente un servidor puede tratar mltiples peticiones (mltiples clientes) al mismo tiempo.APLICACIONES PEER TO PEERUna red informtica entre iguales (en ingls, peer- Too -peer -que se traducira de par a par- o de punto a punto, y ms conocida como P2P) se refiere a una red que no tiene clientes ni servidores fijos, sino una serie de nodos que se comportan simultneamente como clientes y como servidores respecto de los dems nodos de la red. Es una forma legal de compartir archivos de forma similar a como se hace en el email o mensajes.Las redes de ordenadores Peer-Too-peer (o P2P) son redes que aprovechan, administran y optimizan el uso de banda ancha que acumulan de los dems usuarios en una red por medio de la conectividad entre los mismos usuarios participantes de la red, obteniendo como resultado mucho ms rendimiento en las conexiones y transferencias que con algunos mtodos centralizados convencionales, donde una cantidad relativamente pequea de servidores provee el total de banda ancha y recursos compartidos para un servicio o aplicacin. Tpicamente, estas redes se conectan en gran parte con otros nodos va ad hoc.CaractersticasSeis caractersticas deseables de las redes P2P: Escalabilidad: Las redes P2P tienen un alcance mundial con cientos de millones de usuarios potenciales. En general, lo deseable es que cuantos ms nodos estn conectados a una red P2P mejor ser su funcionamiento. As, cuando los nodos llegan y comparten sus propios recursos, los recursos totales del sistema aumentan. Robustez: La naturaleza distribuida de las redes peer-Too-peer tambin incrementa la robustez en caso de haber fallos en la rplica excesiva de los datos hacia mltiples destinos. Descentralizacin: Estas redes por definicin son descentralizadas y todos los nodos son iguales. No existen nodos con funciones especiales, y por tanto ningn nodo es imprescindible para el funcionamiento de la red.Los costes estn repartidos entre los usuarios. Se comparten o donan recursos a cambio de recursos. Segn la aplicacin de la red, los recursos pueden ser archivos, ancho de banda, ciclos de proceso o almacenamiento de disco. Anonimato: Es deseable que en estas redes quede annimo el autor de un contenido, el editor, el lector, el servidor que lo alberga y la peticin para encontrarlo siempre que as lo necesiten los usuarios. Muchas veces el derecho al anonimato y los derechos de autor son incompatibles entre s. Seguridad: Es una de las caractersticas deseables de las redes P2P menos implementada. Los objetivos de un P2P seguro seran identificar y evitar los nodos maliciosos, evitar el contenido infectado, evitar el espionaje de las comunicaciones entre nodos, creacin de grupos seguros de nodos dentro de la red, proteccin de los recursos de la red En su mayora an estn bajo investigacin, pero los mecanismos ms prometedores son: cifrado multiclave, cajas de arena, gestin de derechos de autor (la industria define qu puede hacer el usuario, por ejemplo la segunda vez que se oye la cancin se apaga), reputacin (slo permitir acceso a los conocidos), comunicaciones seguras, comentarios sobre los ficheros