Arquitectura Cliente-Servidor


En este ensayo nos introduciremos a la arquitectura cliente-servidor explicando su significado, sus principales características, las diferentes variantes que existen de esta arquitectura y al final se mostraran las conclusiones obtenidas luego de la elaboración de este ensayo. Primero iniciaremos con la definición de Cliente-Servidor. <Cliente-Servidor es un sistema donde el cliente es una máquina que solicita un determinado servicio y se denomina servidor a la máquina que lo proporciona, hay diferentes servicios y pueden ser: Ejecución de un programa determinado, acceso a un banco de información específico y acceso a un dispositivo de hardware> (Cinestav, 2017).

Ahora ya tenemos definido que ya se tiene definido Cliente-Servidor debemos definir que es Arquitectura y esta es: Un conjunto de componentes funcionales que aprovechando diferentes estándares permite integrar una amplia gama de servicios. (Álvarez, 2007)
Entonces la arquitectura cliente servidor es un modelo de diseño de software en el que las tareas se reparten entre los proveedores de recursos o servicios y los clientes. En este tipo de modelo existen muchas variantes en la arquitectura y una de estas es el nivel llamado middleware el cual se explicara más adelante.

Esta arquitectura se divide en dos partes, la primera “El servidor” es una máquina que actúa como depósito de datos y funciona como un sistema gestor de base de datos. Y la segunda son los clientes que suelen ser estaciones de trabajo que solicitan varios servicios al servidor. Estas partes están conectada entre sí por una red.

La arquitectura Cliente-Servidor necesita tres tipos de software para su correcto funcionamiento:
a.  Software de gestión de datos: Se encarga de la manipulación y gestión de los datos almacenados y requeridos por las diferentes aplicaciones. Normalmente este software se aloja en el servidor. (Álvarez, 2007)
b.  Software de desarrollo: este tipo de software se aloja en los clientes y solo en aquellos que se dedique al desarrollo de aplicaciones. (Álvarez, 2007)
c.  Software de interacción con los usuarios: También reside en los clientes y es la aplicación gráfica de usuario para la manipulación de datos, siempre claro a nivel usuario (consultas principalmente). (Álvarez, 2007)

Existen varios tipos de arquitecturas cliente-servidor, las más conocidas son:
1.    De dos capas: Una capa es de presentación y lógica de la aplicación y la otra de la base de datos. Se utiliza cuando se tiene una base de datos centrada en un solo servidor o es relativamente estática, también cuando requiere poco mantenimiento o un procesamiento de datos mínimo.
2.    De tres capas: Primera capa es de presentación, la segunda es la lógica y en la última capa esta la base de datos. Utilizada cuando se requiere separar el código para un mantenimiento más sencillo, con la tecnológica orientada a objetos o cuando la funcionalidad se encuentra en constante cambio.

Los sistemas cliente-servidor se clasifican de acuerdo a su nivel de abstracción del servicio que ofrecen:
a.   Representación distribuida.- La interacción con el usuario se realiza en el servidor, el cliente está entre el usuario y el servidor.
b.    Representación remota.- La lógica de la aplicación y la base de datos se encuentran en el servidor y el cliente recibe los datos para interactuar con el usuario
c.   Lógica distribuida.- El cliente se encarga de la interacción con el usuario y algunas funciones simples. Y el resto de la aplicación está en el servidor.
d.  Gestión remota de datos.- El cliente realiza la interacción con el usuario y ejecuta la aplicación, el servidor maneja los datos.
e.  Base de datos distribuidas.- El cliente realiza la interacción con el usuario, ejecuta la aplicación y la ubicación de los datos.
f.   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.

    Retomando lo que se dijo anteriormente acerca de la variante en la arquitectura llamada middleware. <El middleware es aquello que abarca todo el software necesario para el soporte de las interacciones entre clientes y servidores principalmente en aplicaciones distribuidas. Es el enlace que permite que el cliente obtenga un servicio del servidor> (Cinestav, 2017).
     Algunas de las características del middleware son: Independización del sistema operativo y de los protocolos de comunicaciones, permite la convivencia entre distintos servicios de un mismo sistema y permite la transparencia en el sistema.
     En conclusión esta arquitectura facilita la creación de los sistemas distribuidos mediante la aplicación de módulos. Permite el uso de diferentes sistemas en uno mismo y permite compartir información entre sistemas ya existentes. Mejora el servicio y la calidad del producto a entregar a los clientes. Crea códigos más accesibles al entendimiento, tiene una gran facilidad del uso pues es muy accesible a las demás personas e implementa los mecanismos de seguridad de autenticación y cifrado. Creo que este tipo de arquitectura es la mejor opción para realizar un proyecto orientado a objetos y distribuido, es amigable con el usuario y muestra una estructura sencilla y de fácil entendimiento.

Bibliografía

Alvarez, S. (30 de Agosto de 2007). Manual de iniciación a la programación. Obtenido de Desarrolloweb: https://desarrolloweb.com/articulos/arquitectura-cliente-servidor.html
Cinestav. (15 de agosto de 2017). Cinestav. Obtenido de Tamaulipas: cinvestav.mx/~vjsosa/clases/sd/sistemas_distribuidos_panorama.pdf
Coulouris, G. (2001). Sistemas Distribuidos: Conceptos y Diseño. EUA: Pearson Addison-Wesley.
M.L.Liu. (2001). Computacion Distribuida:Fundamentos y Aplicaciones. EUA: Pearson Addison-Wesley.


Comentarios

Entradas populares de este blog

Socket Datagrama

Sistemas Distribuidos