Arquitectura Cliente-Servidor


La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.
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.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.
Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema.
La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico.
La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red mixta.

Carasteristica
En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son:
§  Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo).
§  Espera y recibe las respuestas del servidor.
§  Por lo general, puede conectarse a varios servidores a la vez.
§  Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario.
§  Al contratar un servicio de redes, se debe tener en cuenta la velocidad de conexión que le otorga al cliente y el tipo de cable que utiliza , por ejemplo : cable de cobre ronda entre 1 ms y 50 ms.
Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus características son:
§  Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
§  Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
§  Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).
§  No es frecuente que interactúen directamente con los usuarios finales.




Los Ciegos Y El Elefante

Los Ciegos y el Elefante es una famosa fábula hindú que cuenta la historia de seis viajeros ciegos que descubren diferentes partes de un elefante en la trayectoria de sus vidas. Alternativamente, cada ciego crea su propia versión de la realidad a partir de esa experiencia y perspectiva limitada. En los departamentos de filosofía por todo el mundo, los Ciegos y el Elefante se han convertido en el ejemplo perfecto a favor del relativismo moral y la tolerancia religiosa.
Seis eran los hombres de Indostán,
tan dispuestos a aprender, 
que al Elefante fueron a ver
(Aunque todos eran ciegos), 
Pensando que mediante la observación
su mente podrían satisfacer. 

El primero se acercó al elefante, 
Y cayéndose
sobre su ancho y robusto costado,
en seguida comenzó a gritar: 
"¡Santo Dios! ¡El elefante
es muy parecido a una pared!" 

El segundo, palpando el colmillo, 
exclamó: -"¡Caramba! ¿Qué es esto
tan redondo, liso y afilado? 
Para mí está muy claro, 
¡esta maravilla de elefante
es muy parecido a una lanza!" 

El tercero se acercó al animal, 
y tomando entre sus manos
la retorcida trompa, 
valientemente exclamó: 
"Ya veo," dijo él, "¡el elefante
es muy parecido a una serpiente!" 

El cuarto extendió ansiosamente la mano 
y lo palpó alrededor de la rodilla: 
"Evidentemente, a lo que más se parece esta bestia
está muy claro," dijo él, 
"'Es lo suficientemente claro que el elefante 
¡es muy parecido a un árbol!" 

El quinto, quien por casualidad tocó la oreja, 
Dijo: "Incluso el hombre más ciego
es capaz de decir a lo que más se parece esto; 
Niegue la realidad el que pueda, 
Esta maravilla de elefante
¡es muy parecido a un abanico!" 

El sexto tan pronto comenzó 
a tantear al animal, 
agarró la oscilante cola
que frente a él se encontraba, 
"Ya veo," dijo él, "¡el elefante
es muy parecido a una cuerda!" 
Y así estos hombres de Indostán
discutieron largo y tendido, 
cada uno aferrados a su propia opinión
por demás firme e inflexible, 
aunque cada uno en parte tenía razón, 
¡y al mismo tiempo todos estaban equivocados! 


Moraleja
Así también, a menudo en las guerras teológicas
los contendientes, pienso yo, 
discuten en la total ignorancia 
de lo que el otro quiere decir; 
y parlotean acerca de un elefante ¡que ninguno de ellos ha visto!

Diagrama de secuencia

Es un tipo de diagrama usado para modelar interacción entre objetos en un sistema según UML.

Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada caso de uso. Mientras que el diagrama de casos de uso permite el modelado de una vista business del escenario, el diagrama de secuencia contiene detalles de implementación del escenario, incluyendo los objetos y clases que se usan para implementar el escenario y mensajes intercambiados entre los objetos.
Típicamente se examina la descripción de un caso de uso para determinar qué objetos son necesarios para la implementación del escenario. Si se dispone de la descripción de cada caso de uso como una secuencia de varios pasos, entonces se puede "caminar sobre" esos pasos para descubrir qué objetos son necesarios para que se puedan seguir los pasos. Un diagrama de secuencia muestra los objetos que intervienen en el escenario con líneas discontinuas verticales, y los mensajes pasados entre los objetos como flechas horizontales.
Pueden ser usados en dos formas
§  De instancia: describe un escenario específico (un escenario es una instancia de la ejecución de un caso de uso).
§  Genérico: describe la interacción para un caso de uso; Utiliza ramificaciones ("Branches"), condiciones y bucles.