Saturday, 19 August 2017

ARQUITRECTURA CLIENTE-SERVIDOR



Introducción


El modelo cliente/servidor es una arquitecrura distribuida que permite a los usuarios obtener acceso a la información de forma transparente.
En este caso el cliente envía un mensaje solicitando un servicio al servdor, esto significa que hace una petición y el servidor responde con uno o varios mensajes, significa que facilita el servicio.
 

Desarollo


En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. Esta arquitectura permite distribuir físicamente los procesos y los datos en forma más eficiente lo que en computación distribuida afecta directamente el tráfico de la red, reduciéndolo grandemente. 
Por decirlo de otra manera, este modelo se ve como una extensión para la programación de módulos, donde una de las bases es separar una gran parte de software en diferentes módulos para facilitar el desarrollo y mejorar enriquecer el mantenimiento.

Caracteristicas

  • El Cliente y el Servidor pueden actuar como una sola entidad y también 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 múltiples clientes en forma concurrente.
  • Las tareas del cliente y del servidor tienen diferentes requerimientos en cuanto a recursos de cómputo como velocidad del procesador, memoria, velocidad y capacidades del disco y input-output devices.
  • La relación establecida puede ser de muchos a uno, en la que un servidor puede dar servicio a muchos clientes, regulando su acceso a recursos compartidos.

Ventajas
·         Centralización del control: Los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros recursos (mejor que en las redes P2P). 
·         Escalabilidad: Se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores). 
·         Fácil mantenimiento: Al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente). Esta independencia de los cambios también se conoce como encapsulación. 
·         Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S que aseguran la seguridad en las transacciones, la amigabilidad del interfaz, y la facilidad de empleo. 
Desventajas
·         La congestión del tráfico ha sido siempre un problema en el paradigma de C/S. Cuando una gran cantidad de clientes envían peticiones simultaneas al mismo servidor, puede ser que cause muchos problemas para éste (a mayor número de clientes, más problemas para el servidor). Al contrario, en las redes P2P como cada nodo en la red hace también de servidor, cuantos más nodos hay, mejor es el ancho de banda que se tiene. 
·         El paradigma de C/S clásico no tiene la robustez de una red P2P. Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. En la mayor parte de redes P2P, los recursos están generalmente distribuidos en varios nodos de la red. Aunque algunos salgan o abandonen la descarga; otros pueden todavía acabar de descargar consiguiendo datos del resto de los nodos en la red. 
·         El software y el hardware de un servidor son generalmente muy determinantes. Un hardware regular de una computadora personal puede no poder servir a cierta cantidad de clientes. Normalmente se necesita software yhardware específico, sobre todo en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el costo. 


Conclusión

Este modelo, sin duda alguna es de los más utilizados en el mundo y el más común en cuanto a redes de computadoras, aunque se esté reemplazando por modelos más avanzados y mejores.










Sunday, 13 August 2017

Sistemas Distribuidos

Sistemas Distribuidos

Introducción

El resultado de las tecnologías desarrolladas a lo largo de los años en el ámbito de la computación es la posibilidad y facilidad para reunir sistemas de cómputo compuestos por grandes números de CPU conectados mediante una red de alta velocidad.

Definición de Sistemas Distribuidos

Es una red de computadoras que se comunican bajo el protocolo Cliente - Servidor para realizar procesos como una sola entidad.
 Esta definición lleva a las siguientes características de los sistemas distribuidos: concurrencia de los componentes, carencia de un reloj global y fallos independientes de los componentes.

Características de los sistemas distribuidos

Compartición de recursos

Se comprende como el acceso de todos los componentes de la red a software y hardware mediante un gestor de recursos que permita el acceso, manipulación y actualización del recurso de manera eficiente.

Apertura y extensibilidad (escalabilidad)

Estas dos características van de la mano, pues para que un sistema sea extensible debe ser flexible y por lo tanto abierto; Es decir, al ser abierto, quiere decir que se manejan interfaces que realizan procesos bajo los mismos protocolos y por lo tanto dos (o más) desarrolladores puedan implementar sobre las interfaces sin problema alguno, lo cual vuelve flexible el sistema. Al ser flexible, se podrá añadir software y hardware de diversos proveedores y por ende el sistema podrá crecer, por lo tanto será escalable.

Concurrencia

Esta característica permite que los recursos disponibles en la red puedan ser utilizados de manera simultánea entre los diferentes usuarios que interactúan en la red

Tolerancia a errores

El sistema no puede dejar de trabajar en caso de que una o más computadora deje de funcionar, el sistema seguirá trabajando los procesos con las computadoras restantes, es decir, si falla una computadora al estar realizando cierto proceso, solo se verá afectado este proceso, pero se podrá realizar desde otra computadora.

Inexistencia de un reloj global

Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea no tienen una temporización general, está más bien distribuida a los componentes.

Transparencia

Se entiende como el hecho de que el usuario vea al sistema distribuido como una sola entidad y no como una red de computadoras independientes.



Conclusiones

Un sistema distribuido, si bien presenta muchos desafíos tal como se expuso anteriormente, puede considerarse como una herramienta muy poderosa, poniendo como ejemplo el mismo Internet, que conecta a millones de personas mediante una red y que cumple con las características antes mencionadas, de esta manera de pueden interactuar los usuarios con el hardware y software que se encuentre dentro de la red.

Referencias

Couloris, G., Dollimore, J., & Kindberg, T. (2001). Sistemas Distribuidos. Conceptos y Diseño. Madrid: Pearson Educacion, S.A.

Gonzales Nava, S. (2004). Introducción a los Sitemas Distribuidos. CAPACINET. Recuperado el 11 de Agosto de 2013, de http://www.capacinet.gob.mx/Cursos/Tecnologia%20amiga/desarrolladordesoftware/IntroduccionSistemasDistribuidos_SE.pdf
Rojo, J. O. (2003). AUGCyL. Recuperado el August de 2013, de Introducción a los Sistemas Distribuidos: http://augcyl.org/?page_id=231