Arquitctura+Cliente+Servidor

__Arquitectura Cliente Servidor:__ A continuación mostramos las arquitecturas cliente-servidor más populares: > >> >> >> **CLIENTE/SERVIDOR DE DOS CAPAS** >> Modelo Cliente/Servidor 2 capas:Uno de los objetivos de las aplicaciones de 2 capas es separar la lógica de acceso a los datos de lo que es la interfaz de usuario y trasladarla al servidor. Habitualmente, se implementan servicios como procedimientos almacenados en el sistema gestor de datos; con esto se pretende reducir la carga de los clientes y centralizar las operaciones comunes de acceso a los datos. El Sistema Gestor de Datos también suele incorporar la funcionalidad necesaria para trabajar en entornos multiusuarios.En este modelo intervienen únicamente dos entidades: El Cliente y El Servidor. El papel de Cliente lo desempeña la aplicación final del usuario, que implementará todas las funciones correspondientes a la lógica de presentación, más algunas de las funciones relacionadas con la lógica del negocio, como pueden ser determinadas validaciones de datos y condiciones de recuperación.El papel de Servidor lo desempeña el propio SGBD, el cual se ocupará de todas las funciones correspondientes a la lógica de datos, más las restantes funciones correspondientes a la lógica del negocio, mediante la codificación de Procedimientos Almacenados.Este es el modelo C/S más sencillo y más utilizado habitualmente. En la mayor parte de los casos, el desarrollador de una aplicación de este tipo, desarrolla únicamente la aplicación Cliente y utiliza al propio motor de BB.DD. como aplicación servidora, de modo que no se codifica la aplicación Servidora propiamente dicha. Seminario de programación Modelo de 3 capas >> El mantenimiento de las aplicaciones Cliente que utilizan este modelo exige un esfuerzo considerable, dado que las reglas del negocio que son implementadas por sí mismas, provocarán la modificación del código de la aplicación en el caso en que éstas varíen.Como hemos dicho anteriormente, el resto de las reglas del negocio se implementan en el servidor de datos, que dispone de un recurso propio, denominado Procedimiento Almacenado. Un Procedimiento Almacenado es una porción de código que reside en la Base de Datos, se compila una sola vez y es compartido por todos aquellos usuarios que gocen de los permisos establecidos con relación a su acceso.El hecho de codificar ciertas reglas del negocio mediante Procedimientos Almacenados, minimiza el impacto que supone la alteración de dichos procedimientos, ya que no siempre es necesaria la recompilación del código de la aplicación.Otra consecuencia derivada de dicho modelo es la dependencia de la aplicación final, respecto de la organización de los datos. La aplicación necesita conocer el modelo de datos para poder acceder a él.Este modelo tiene la desventaja de no ser escalable, pues cada cliente está consumiendo, como mínimo, una conexión con el servidor de datos y, dado que éstas son limitadas, se está restringiendo el número de clientes que pueden coexistir. **Arquitectura Cliente-Servidor de Tres Capas -** Consiste en una capa de la Presentación, otra capa de la lógica de la aplicación y otra capa de la base de datos. Normalmente esta arquitectura se utiliza en las siguientes situaciones: >>> >>>>> >>>>> >>>>> **CLIENTE/SERVIDOR DE TRES CAPAS** >>>>> **Clasificación de los sistemas cliente servidor:** >>>>> A continuación mostramos la clasificación de de los sistemas cliente/servidor de acuerdo al nivel de abstracción del servicio que ofrecen: >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ﻿ Modelo Cliente/Servidor multicapa:  Este modelo aporta una flexibilidad adicional en la construcción de aplicaciones cuando éstas aumentan su complejidad. Influye tanto en el modelo de aplicación (lógicas de presentación, del negocio y de datos) como en la distribución de los servicios. El modelo conceptual de una aplicación establece sus definiciones, reglas y relaciones así, como su estructura. Hay partes de la lógica que residen en el ordenador cliente, normalmente las que se refieren a la interfaz de usuario, mientras que las del negocio y de datos suelen residir en los ordenadores servidores, que proporcionan los mecanismos necesarios para el trabajo en entornos multiusuarios. En este tipo de modelo se aplica íntegramente el modelo de servicios ya que, cada una de las capas se corresponde con cada una de las lógicas descriptas. Para llevar a cabo la implementación de un modelo como éste, se hace uso de los <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: medium; line-height: 23px;">mismos recursos descriptos en el modelo de dos capas pero se introduce un nuevo tipo de tecnología -denominada COM- que permite la construcción de componentes especializados. <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; line-height: 23px;">Los componentes COM que tienen un diseño orientado a objetos constituyen una <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: medium; line-height: 23px;">forma sencilla de utilización por parte de las aplicaciones finales, proporcionan, además, la tan anhelada transparencia, pues, al encapsular su implementación funcionan como una caja negra. <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; line-height: 23px;">Una de las características principales de este modelo reside en la desconexión total <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: medium; line-height: 23px;">entre la lógica de presentación y la lógica de los datos. Las conexiones que se producen, se dan entre las lógicas de presentación y del negocio, y las lógicas del negocio y la de datos. <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; line-height: 23px;">Este modelo hace que la aplicación final sea completamente independiente del origen <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: medium; line-height: 23px;">de los datos que procesa, tarea que pasa a ser competencia directa del componente especializado. <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; line-height: 23px;">A pesar de lo comentado anteriormente, no es necesario que las distintas lógicas <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: medium; line-height: 23px;">residan en máquinas diferentes; en la mayoría de los casos, es perfectamente compatible su implementación en la misma máquina, si bien este diseño no es el más habitual. <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; line-height: 23px;">En el siguiente gráfico se muestra el esquema correspondiente al modelo multicapa. >>>>>
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">**Arquitectura Cliente-Servidor de Dos Capas.-** Consiste en una capa de presentación y logica de la aplicación; y la otra de la base de datos. Normalmente esta arqitectura se utiliza en las siguientes situaciones:
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando se requiera poco procesamiento de datos en la organizacion.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando se tiene una base de datos centralizada en un solo servidor.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando la base de datos es relativamente estatica.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando se requiere un mantenimiento mínimo.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando se requiera mucho procesamiento de datos en la aplicación.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">En aplicaciones donde la funcionalidad este en constante cambio.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando los procesos no están relativamente muy relacionados con los datos.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando se requiera aislar la tecnologia de la base de datos para que sea fácil de cambiar.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Cuando se requiera separar el codigo del cliente para que se facilite el mantenimiento.
 * <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">Esta muy adecuada para utilizarla con la tecnología orientada a objetos.
 * 1) <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">**Representación distribuida.-** La interaccion con el usuario se realiza en el servidor, el cliente hace de pasarela entre el usuario y el servidor.
 * 1) <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">**Representación Remota.-**La lógica de la aplicación y la base de datos se encuentran en el servidor. El cliente recibe y formatea los datos para interactuar con el usuario.
 * 1) <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">**Lógica Distribuida.-** El cliente se encarga de la interacción con el usuario y de algunas funciones triviales de la aplicación. Por ejemplo controles de rango de campos, campos obligatorios, etc. Mientras que el resto de la aplicación, junto con la base de datos, están en el servidor.
 * 1) <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">**Gestión Remota de Datos.-** El cliente realiza la interacción con el usuario y ejecuta la aplicación y el servidor es quien maneja los datos.
 * 1) <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">**Base de Datos Distribuidas.-** El cliente realiza la interacción con el usuario, ejecuta la aplicación, debe conocer la topologia de la red, así como la disposición y ubicación de los datos. Se delega parte de la gestion de la base de datos al cliente.
 * 2) <span style="color: #0090ff; font-family: 'Lucida Sans Unicode','Lucida Grande',sans-serif; font-size: 120%;">**Cliente servidor a tres niveles.-** El cliente se encarga de la interacción con el usuario, el servidor de la lógica de aplicación y la base de datos puede estar en otro servidor.