Módulo 1 - Lectura 3.pdf
Document Details
Uploaded by ITKnow
Universidad Siglo 21
Tags
Full Transcript
Clasificación de modelos cliente-servidor Entre las consideraciones más importantes a tener en cuenta al momento de diseñar y desarrollar un sistema de información, encontramos la necesidad de definir su infraestructura y adoptar un modelo que permita dar una solución adecuada y óptima a la problemáti...
Clasificación de modelos cliente-servidor Entre las consideraciones más importantes a tener en cuenta al momento de diseñar y desarrollar un sistema de información, encontramos la necesidad de definir su infraestructura y adoptar un modelo que permita dar una solución adecuada y óptima a la problemática que intentamos resolver. En esta lectura presentamos cómo se clasifican los modelos cliente-servidor en función de las características de sus componentes. Para desarrollar los conceptos, analizaremos el Caso: Comercial Mayorista S. A descripto en la lectura: Arquitectura. Clasi cación de modelos cliente-servidor Referencias Lección 1 de 2 Clasificación de modelos cliente-servidor La aplicación del modelo cliente-servidor para dar solución a una implementación de sistemas en una organización exige no solo conocer sus componentes, sino también entender cuáles son sus características. Estas son las que permiten realizar diversas clasificaciones que pueden ayudar a comprender y seleccionar un tipo de solución conveniente. Existen distintos tipos de clasificaciones: por tamaño de componentes; por capas (planos) de software o hardware; por características funcionales. Clasificación por tamaño de componentes Esta clasificación se basa en considerar las características de los clientes y servidores de la estructura. Básicamente, es donde se concentra la mayor capacidad de procesamiento. Fat client (thin server) Este modelo se caracteriza porque el software del cliente implementa la mayor parte de la lógica de la aplicación y la interacción con el usuario. En este modelo, el servidor es solamente responsable de la gestión de los datos. Este tipo de arquitecturas es muy recomendable en los casos que se deba dar soporte a sistemas de información gerencial. Fuente: elaboración propia. Figura 1: Representación Fat client La mayor parte del procesamiento se realiza del lado del cliente. Al contrario de lo que ocurre con un cliente liviano, implementar este modelo permite aprovechar la capacidad de procesamiento de los clientes, distribuyendo tanto capa de presentación como lógica de negocio. Aunque esto supone un mejor aprovechamiento de esa capacidad de procesamiento distribuida, el sistema es más complejo de gestionar. En caso de realizar modificaciones en la aplicación, esta debe ser reinstalada en cada computadora del cliente, generando una carga de trabajo y costos importantes cuando el número de clientes es muy elevado. Thin client (fat server) En este modelo, el cliente solo es responsable de la capa de presentación de la aplicación. Todo el proceso pesado corre del lado del servidor. Es decir, todo el procesamiento de las aplicaciones y gestión de datos son responsabilidad del servidor. Este tipo de arquitecturas es recomendado para sistemas transaccionales. Figura 2: Representación thin client El cliente solo es responsable de la capa de presentación. Fuente: elaboración propia. Una desventaja importante que presenta este modelo de cliente liviano es que una elevada carga de procesamiento se concentra en el servidor y la red. El servidor es responsable de realizar todo el procesamiento y esto implica generar un tráfico de red significativo. La implementación de clientes livianos en dispositivos de computación modernos desperdicia capacidad de procesamiento. Referencia caso de estudio En la línea de cajas, el sistema actual implementa clientes livianos, con escasa capacidad de procesamiento. Todo el proceso de la información se concentra en un servidor central, de alta capacidad. En el plan de mejora, se debería tener en cuenta que, al modificar la arquitectura de este, se puedan utilizar computadoras con capacidad de procesamiento, para aprovechar el procesamiento local para algunas actividades, como el tratamiento de datos para la elaboración de información estadística. Dotar de capacidad de procesamiento a las nuevas terminales a incorporar en el nuevo sistema permite reducir los niveles de carga de trabajo en el servidor. Clasificación por planos o capas (tier). Planos a niveles de software. Planos a niveles de hardware Este tipo de clasificación se basa en el concepto de capas o planos, tanto a nivel software como hardware. Para realizar esta clasificación, es muy importante tener en cuenta el concepto de distribución de funciones. En la arquitectura cliente-servidor, las funciones se pueden separar en tres niveles: – Lógica de presentación Las funciones principales de este nivel son obtener información del usuario, enviar la información para su procesamiento y recibir los resultados del procesamiento realizado. Lógica de negocio (o aplicación) – Cumple las funciones de recibir los datos que provienen del nivel de lógica de presentación e interactuar con el nivel de lógica de datos, para ejecutar las reglas de negocio que tiene que cumplir la aplicación. Una vez realizado el procesamiento, envía el resultado al nivel de presentación. – Lógica de datos Sus funciones son almacenar, recuperar, mantener y asegurar la integridad de los datos. Arquitectura de dos y tres planos Dependiendo de la forma en que se distribuyen las aplicaciones entre cliente y servidor, sobre la base del concepto de separación funcional, podemos definir si una arquitectura es de dos o tres capas. Aplicación de dos capas: es aquella aplicación en la que el cliente maneja la lógica de presentación, lógica de negocio y acceso a datos, y el servidor solo gestiona los datos. Aplicación de tres capas: es aquella aplicación en la que la lógica de presentación, la lógica de negocio y la lógica de datos están separadas en distintos servidores. Esta arquitectura, lógica de negocio y lógica de datos pueden estar repartidas entre distintos procesadores. Cliente-servidor de dos planos En este esquema, el cliente es quien maneja la lógica de presentación, lógica de negocio y lógica de acceso a los datos. El servidor cumple solamente con la función de gestión de datos. En esta arquitectura, la lógica de negocio no cuenta con un componente específico para su ejecución, por lo tanto, su implementación debe ser realizada en el cliente o el servidor. Dependiendo de dónde se ubique la lógica de negocio, se pueden tener dos tipos de implementación: Implementación con lógica de negocio en el cliente (SQL remoto): el cliente envía las consultas/requerimientos al servidor de bases de datos. El resultado vuelve a través de la red. En el siguiente gráfico, se puede observar este tipo de implementación: Fuente: elaboración propia. Figura 3: Implementación con lógica de negocio en el cliente Se implementan todas las actividades que corresponden al nivel de aplicación en el cliente. Implementación con lógica de negocio en el servidor: este tipo de arquitectura consiste en ubicar la lógica de negocio del lado del servidor. Es muy común realizar esta implementación a través de procedimientos almacenados. En este caso, el cliente realiza llamadas a funciones que residen en el servidor, más específicamente, en la base de datos, y es la propia base de datos la que se encarga de resolver y procesar la totalidad de las actividades. Esta forma de implementación es muy utilizada porque permite el aprovechamiento de los recursos provistos para el tratamiento de información por parte del motor de base de datos. Pero también presenta la desventaja de que, al desarrollar la lógica sobre la base de un determinado motor de base de datos, en caso de necesitar migrar de gestor de datos, esto se dificulta, por problemas de compatibilidad. En resumen, este tipo de implementación puede resultar muy conveniente, pero a costa de cierta dependencia de un producto determinado, como es el gestor de base de datos. En el siguiente gráfico, se puede observar este tipo de implementación: Figura 4: Implementación con lógica de negocio en el servidor Se implementan todas las actividades que corresponden al nivel de aplicación en el servidor. Por ejemplo, a través de procedimientos almacenados. Fuente: elaboración propia. La arquitectura de dos capas presenta ventajas y desventajas, dependiendo, en cierta medida, del tipo de implementación que se realiza. Compartimos, a continuación, la siguiente tabla. Figura 5: Ventajas y desventajas arquitectura dos planos Descripción: En la tabla se presentan algunas de las ventajas y desventajas de una implementación de dos planos (capas). Implementar un sistema de información dividido en dos capas puede tener ventajas apreciables desde el punto de vista del rendimiento, pero puede tener un costo considerable en lo que respecta a mantenimiento y balance de trabajo. Fuente: elaboración propia. Referencia casos de estudio El sistema actual aplica un trabajo en dos capas, con fuerte carga de procesamiento en el servidor, considerando que el sistema aplicado utiliza clientes livianos. Esto determina que el sistema tiene problemas para ser expandido, porque, al concentrar todo el procesamiento en el servidor, los clientes agregados provocarán una mayor carga y esto puede producir una considerable caída de rendimiento del servidor. Cliente-servidor de tres planos Este modelo consiste en agregar una tercera capa, de modo que se puedan distribuir los tres niveles funcionales. Presentación, negocio y gestión de datos son procesos lógicamente separados, ejecutados en procesadores diferentes. El esquema de funcionamiento se representa en la siguiente figura: Fuente: elaboración propia. Figura 6: Esquema de distribución de niveles funcionales en tres capas Se distribuyen los distintos aspectos funcionales en diferentes procesadores. El proceso comienza con el requerimiento realizado por el cliente, el servidor intermedio, que contiene la lógica de aplicación, procesa la petición y, dependiendo del tipo de solicitud realizada, es este servidor intermedio el que accede a la capa de datos. En la siguiente figura se presenta un esquema más detallado de la distribución de las capas entre los distintos componentes. Figura 7: Implementación de tres capas Se distribuyen cada capa funcional entre distintos procesadores. El servidor intermedio es quien tiene acceso directo a los datos. Fuente: elaboración propia. En la arquitectura de tres capas (en general, en la arquitectura multicapa), el cliente implementa la lógica de presentación (cliente “fino”), el servidor(es) de aplicación implementa la lógica de negocio y los datos residen en uno (o varios) servidor(es) de bases de datos (“Tema 2: El modelo cliente/servidor”, 2005, p. 10). Implementar arquitecturas cliente-servidor de tres capas permite solucionar problemas presentes en una implementación de dos capas; por ello, resulta más conveniente su aplicación. Algunas características a destacar son las siguientes: Permite distribuir la lógica de negocio o procesamiento de aplicación entre varios servidores, haciendo que tenga más posibilidades de escalar que un sistema de dos capas. El tráfico de la red se reduce considerablemente. Permite actualizar con facilidad el procesamiento de la aplicación, porque está localizada centralmente. Permite mejorar la respuesta a los pedidos de los clientes distribuyendo el procesamiento entre la lógica de la aplicación y los servidores de gestión de datos. Nota: El modelo cliente-servidor de tres capas puede extenderse a una variante multicapa en la que se añaden servidores adicionales al sistema. Un ejemplo de esto es cuando los sistemas necesitan acceder a múltiples bases de datos. En estos casos, se utilizan servidores ubicados entre el servidor de aplicaciones y los distintos servidores de base de datos. Este tipo de servidor se denomina servidor de integración y cumple la función de integrar los datos distribuidos y presentarlos como si se estuviera accediendo a una única base de datos. Referencia caso de estudio Para el plan de mejora del sistema de información, es importante considerar, para el diseño del nuevo sistema, una implementación basada en tres capas funcionales. De esta manera, no se dependerá de un único servidor central para la realización de los procesos y almacenamiento de los datos. Se sugiere la incorporación de servidores de lógica de aplicación, para poder integrar todas las reglas de negocio en un punto central y dedicar un servidor exclusivamente a gestión de datos. El sector de facturación puede mantener el esquema de cliente livianos, pero trabajando contra el servidor de lógica de aplicación. Este último es el que tiene acceso a los datos, en caso de ser necesario. Planos a nivel de hardware De la misma forma que se realiza la representación del modelo en capas funcionales, teniendo en cuenta las tareas que se realizan en clientes y servidores, se puede realizar una representación de implementación a través de un enfoque desde el punto de vista físico, sobre la base de los componentes. Cliente-servidor de dos planos Este tipo de implementación se basa en clientes que se conectan a un servidor para realizar las peticiones correspondientes. Es un esquema muy utilizado como soporte de sistemas de gestión y es uno de los más conocidos. Fuente: elaboración propia. Figura 8: Cliente-servidor de dos planos Se conectan múltiples clientes a un servidor central. Cliente-servidor de tres planos En este tipo de arquitectura, los clientes se conectan a través de la red a un servidor, generalmente local, y este servidor local se conecta a otro servidor central. Este esquema se representa en la siguiente figura: Figura 9: Cliente-servidor de tres planos Los clientes se conectan mediante red a servidores locales. Este servidor se conecta a un servidor central. Fuente: elaboración propia. Cliente-servidor de múltiples planos En este esquema se permite que los clientes se conecten directamente a los servidores centrales. De esta forma, se puede evitar el paso previo por conexión a un servidor local y luego al servidor central remoto. Fuente: elaboración propia. Figura 10: Cliente-servidor de múltiples planos Los clientes pueden conectarse a múltiples servidores. Referencia caso de estudio En concordancia con la referencia inmediatamente anterior, podemos considerar, en la implementación sugerida, adoptar una arquitectura cliente-servidor de tres planos, donde los clientes soporten la capa de presentación, servidores locales implementen lógica de negocio y servidores de bases de datos para almacenamiento de datos. Como se definió con anterioridad, la implementación de la lógica de negocios puede ser íntegramente aplicada en el servidor local de lógica de negocio, o bien desarrollar parte de la lógica de negocio a través de funciones en el servidor de datos. Características funcionales Otro tipo de clasificación que podemos realizar es la que permite agrupar los sistemas en función de cómo se distribuyen la presentación de los datos, la lógica de negocio y el acceso a la base de datos. Podemos definir distintos tipos de arquitecturas en función de cómo se distribuyen las capas entre los equipos. Presentación distribuida En este esquema de trabajo, el cliente asume parte de las funciones de la presentación. Si bien la terminal no es un cliente flaco en su totalidad, el servidor realiza la mayor parte de las tareas, gestionando y almacenando los datos, ya que contiene la base de datos, la lógica de la aplicación y la mayor parte de la interfaz de usuario. En la siguiente figura se puede apreciar la división de las capas. Figura 11: Presentación distribuida La capa de presentación se distribuye entre el cliente y el servidor. Este tipo de sistema es difícil de mantener. Fuente: elaboración propia. Presentación remota En este nivel se trabaja con un cliente inteligente que se encarga de la capa de presentación. Tiene un interfaz que permite la captura de los datos, validaciones y muestra de resultados de consultas. En algunos casos, se complementa con una interfaz más avanzada del lado del servidor. El servidor es de vital importancia porque se encarga del almacenamiento de datos y lógica de negocio. Fuente: elaboración propia. Figura 12: Presentación remota La capa de presentación de datos se ejecuta en el cliente. En esta capa se realizan validaciones de los datos de entrada y formateo de datos de salida. Lógica de negocio y el acceso a la base de datos se alojan en el servidor. Proceso distribuido En este esquema, la lógica de negocio o aplicación se procesa entre el cliente y el servidor. La lógica se divide entre ambas partes y se conoce también como proceso cooperativo. Figura 13: Proceso distribuido En este modelo, la capa que implementa la lógica de negocio se divide entre el cliente y el servidor. La capa de presentación se encuentra en el cliente, y el acceso a la base de datos, en el servidor. Fuente: elaboración propia. Base de datos remota En este nivel, la lógica de la aplicación se encuentra completamente del lado del cliente. El servidor solamente se encarga de la parte de almacenamiento de la base de datos. Fuente: elaboración propia. Figura 14: Base de datos remota Las capas de negocio y de presentación se ejecutan completamente en el cliente. El servidor contiene la base de datos en forma completa. Base de datos distribuida En este nivel, la gestión de la base de datos se puede realizar entre cliente y varios servidores en forma compartida. En este modelo, es muy importante considerar mecanismos que permitan asegurar la coherencia en los datos. Figura 15: Base de datos distribuida Las capas de negocio y de presentación se ejecutan completamente en el cliente. La base de datos está distribuida entre el cliente y el servidor. Fuente: elaboración propia. Referencia caso de estudio Se puede sugerir la aplicación de un sistema basado en un proceso distribuido, donde parte del proceso se pueda desarrollar en el cliente, y otra parte, implementada en el servidor de lógica de negocios. Este esquema permite distribuir el procesamiento, mejorando el rendimiento general del sistema. Además, se concentra gran parte de la lógica en servidores que permiten una fácil actualización ante cambios en las reglas. Importante: se puede sugerir cualquiera de los esquemas definidos. Inclusive, se puede tener en cuenta la posibilidad de dividir parte de la arquitectura, de modo tal de combinar ventajas de cada una. Características físicas La arquitectura cliente-servidor es una tecnología que se basa en aprovechar la potencia de las terminales para contener toda la lógica de presentación, de modo que el servidor quede liberado para realizar las funciones específicas que le competen. En el siguiente esquema se muestran las características físicas de conexión entre los componentes que conforman esta arquitectura. Fuente: elaboración propia. Figura 16: Características físicas de conexión Esquema de conexión física entre los componentes en arquitectura cliente-servidor. El proceso comienza con la petición en el cliente, que es quien aloja a la aplicación. Los elementos se comunican a través de un sistema de red que se encarga de transmitir los datos entre clientes y servidores. En este punto se utiliza el middleware, que independiza los procesos de cliente y servidor. Una vez establecida la conexión con el servidor, este resuelve la petición realizada, y por medio del middleware y del sistema operativo de red, devuelve la información al usuario. “Objetivos del middleware: que todo funcione con transparencia. El sistema da la impresión de ser único. Ej.: Internet = sistema único de millones de usuarios” (“Tema 2: El modelo cliente/servidor”, 2005, p. 23). Características lógicas Desde el punto de vista lógico, el principal aporte que brindan estas arquitecturas consiste en dotar al cliente de una interfaz gráfica capaz de tomar datos, editarlos, realizar pequeñas validaciones locales y luego mostrar los resultados. Los datos son mostrados de manera transparente en el cliente. No se produce duplicidad, ya que los datos están almacenados en el servidor. Esta forma de trabajo permite que el usuario de un sistema de información, soportado por una arquitectura clienteservidor, realice sus tareas desde su estación de trabajo con distintos datos y aplicaciones, sin importar dónde están alojados o sean ejecutadas cada uno de ellos. Ventajas y desventajas de la arquitectura cliente-servidor V E N TA J A S D E S V E N TA J A S Las aplicaciones se distribuyen entre los clientes. Esto permite, en muchos casos, contar con servidores no tan potentes. Los clientes se comunican mediante interfaces gráficas e interactivas. Esta característica reduce los tiempos de aprendizaje. Permite brindar, a cada departamento de una organización, una solución local, pero totalmente integrada a nivel global. Proporciona mejor acceso a los datos. Algunos procesos, al trabajar en forma local, permiten eliminar el movimiento de grandes bloques de información por la red hacia los servidores. Existe independencia física y lógica entre clientes y servidores. Permite centralizar el control de sistemas que antes estaban descentralizados. Un ejemplo es la gestión de computadoras personales que antes estaban aisladas. V E N TA J A S D E S V E N TA J A S Es una arquitectura de una complejidad importante debido a la integración de gran variedad de productos. Es difícil gestionar y asegurar la seguridad. Esto se debe a la existencia de una red de clientes y servidores con un sistema único centralizado. Se deben hacer verificaciones en el cliente y en el servidor. Existen problemas de congestión de red, que pueden provocar un bajo rendimiento en las aplicaciones de los clientes. Se deben tener en cuenta aspectos que en aplicaciones locales no se tienen, por ejemplo, tanto clientes como servidores deben utilizar un mismo mecanismo (sockets o RPC). Deben existir estrategias para asegurar la consistencia de los datos. Algunas conclusiones de aplicar el esquema cliente-servidor en la organización Aplicar este tipo de arquitectura permite la reducción de costos directos en la producción de software, y se transforma así en un importante aporte a las organizaciones. Este se considera un aporte directo, porque se pueden reutilizar para toda nueva construcción los servidores disponibles, centrándose el desarrollo solamente en la elaboración de los procesos del cliente, según los requerimientos deseados. Además, permite llevar información a cualquier lugar de la organización, informatizando cualquier área de la organización. Por último, se puede destacar que este tipo de arquitectura favorece a la adaptación tecnológica. C O NT I NU A R Lección 2 de 2 Referencias Tema 2: El modelo cliente/servidor. https://www.infor.uva.es/~fdiaz/sd/2005_06/doc/SD_TE02_20060305.pdf (2005). Recuperado de