Ir al contenido principal

Tarea 2: Arquitectura cliente-servidor

Sistemas Distribuidos


Introducción
En los sistemas distribuidos existe un gran número de arquitecturas y modelos, los cuáles fueron planeados para satisfacer las necesidades de gestión de datos en información. En ellas entra el modelo Cliente-servidor, uno de los más importantes a lo que se refiere en sistemas distribuidos.

Desarrollo
Arquitectura de Software
La arquitectura de software se refiere principalmente a la estructuración del software (capas o módulos) que hay en un único computador o en servicios ofrecidos y solicitados en el mismo o en diferentes computadoras.
Los modelos arquitectónicos sirven para atraer y simplificar las funciones de cada uno de los componentes del sistema en donde se consideran la interrelación entre componentes (papeles funcionales y patrones de comunicación de componente a componente) y la ubicación de los componentes en una red computacional, esto con el fin de distribuir datos y carga de trabajos.
La simplificación inicial se obtiene separando los procesos entre clientes, servidores e igualitarios los cuales trabajan de manera conjunta y se comunican de forma simétrica para que puedan cumplir con un trabajo o tarea. De este modo, este tipo de clasificación de procesos puede distinguir las responsabilidades de cada quien y ayuda a administrar las cargas de trabajo y a determinar la magnitud de fallos en cada uno de ellos. Los resultados que se generan pueden ser de utilidad para especificar la distribución de procesos para que el sistema concuerde con objetivos de prestaciones y fiabilidad.

El Modelo Cliente-Servidor:
El modelo cliente-servidor es un tipo de arquitectura distribuida, la cual permite a los usuarios finales acceder a información de manera transparente, independientemente de la plataforma en la que se encuentren. En este modelo, el cliente envía un mensaje, en el cual hace una petición al servidor, y este se encarga de enviarle, ya sea uno o varios mensajes con la respuesta, en otras palabras, provee el servicio al cliente. En los sistemas distribuidos, cada máquina puede tomar el papel de servidor para las tareas y el rol de cliente para cumplir otras.
El objetivo del modelo cliente-servidor es que se pueda usar la computadora como un instrumento, que pueda realizar y gestionar tareas por sí misma, adaptando de manera eficiente aquellas que son más adecuadas a sus características, de tal forma que, si se aplicara tanto en los servidores como en los clientes, se puede concluir que la forma más común de aplicación y uso del cliente-servidor es mediante la explotación de computadoras, mediante interfaces gráficas de usuario, mientras que las computadoras centrales de encargan de la administración de datos y seguridad. La mayoría de veces el trabajo pesado lo realiza el servidor, y por otro lado, los procesos del cliente sirven para interactuar con el usuario, sin embargo, esto puede variar.
Gracias a esta arquitectura se pueden distribuir los procesos físicamente y los datos se transportan de manera más eficiente, rediciendo el tráfico de red óptimamente.

Cliente
El cliente es el proceso que permite al usuario construir los requerimientos y así mandarlos por el servidor (Front-end). Normalmente, el cliente maneja todas las funciones que tengan que ver con la manipulación y envío de datos, por lo que se desarrollan en interfaces graficas de usuario, y así acceden a los servicios distribuidos en cualquier parte de una red.
Funciones del cliente:

-Procesar la lógica de la aplicación y hacer validaciones locales.
-Recibir resultados del servidor.
-Generar requerimientos de bases de datos.
- Interactuar con el usuario.

Servidor
El servidor se encarga de atender a múltiples clientes que realizan peticiones de algún recurso administrado por el mismo (Back-end). Normalmente, el servidor se encarga de manejar todas las funciones relacionadas con las reglas de negocio y recursos de datos.
Funciones del cliente:

-Procesar la logica de la aplicación y realizar validaciones a nivel de bases de datos.
-Aceptar los requerimientos de bases de datos que los clientes hacen.
-Procesar requerimientos de bases de datos.
-Formatear datos para transmitirlos a los clientes.

Características de arquitectura Cliente-Servidor
Las características esenciales que tiene una arquitectura Cliente-Servidor son las siguientes:
-Se establece una relación entre distintos procesos que pueden ser ejecutados en la misma máquina o en distintas máquinas distribuidas a lo largo de una red.
-El ambiente es heterogéneo, es decir, la plataforma de hardware y el s.o. del cliente y servidor no son la misma.
-La relación establecida puede ser de muchos a uno, es decir, un servidor puede dar servicio a muchos clientes, regulando el acceso a recursos compartidos.
-El intercambio de mensajes es el único medio de relación entre clientes y servidores. El mensaje es el mecanismo para hacer la petición y entrega de solicitudes de servicio.
-El concepto de escalabilidad ya sea horizontal o vertical puede ser aplicado a cualquier Sistema Cliente-Servidor, es decir, La escalabilidad horizontal permite agregar más estaciones de trabajo activas sin afectar el rendimiento, mientras que la escalabilidad vertical permite mejorar las características del servidor o agregar múltiples servidores.

Conclusión
En conclusión, la arquitectura Cliente-Servidor es uno de los modelos que más representan los sistemas distribuidos. El funcionamiento de este modelo es muy sencillo ya que se cuenta con un cliente, el cual manda peticiones a un servidor, y este realiza la función para lo que está programado y le devuelve una respuesta al cliente, sin embargo, las computadoras o maquinas que se utilizan no necesariamente deben de ser diferente, por ejemplo, una computadora puede ser cliente y servidor por si sola. El modelo Cliente-Servidor pretende otorgar escalabilidad, usabilidad, flexibilidad e interoperabilidad en lo que se refiere a comunicaciones. Este tipo de arquitectura ha facilitado la integración entre distintos sistemas y puede compartir la información permitiendo que las computadoras ya existentes se utilicen incluyendo interfaces más amigables al usuario. Una de las ventajas más notorias al utilizar este modelo es la posibilidad de usar computadoras o maquinas muy baratas, ya que esta arquitectura se basa en sistemas grandes, además, se pueden utilizar componentes de distintas marcas, ya sea hardware o software, lo cual hace que la arquitectura Cliente-Servidor sea flexible, reduciendo considerablemente la reducción de costos. Sin embargo, se deben de mejorar aspectos de esta arquitectura, uno ejemplo de ellos es la seguridad, ya que se deben de hacer verificaciones constantes entre el cliente y servidor. Otro aspecto importante es el desempeño del esquema, los problemas de estilo se presentan por congestión de red, dificultad de tráfico de datos, entro otros. También se cuentan con muy pocas herramientas para la administración y ajuste del desempeño de los sistemas. Y por último, es importante mencionar que el mantenimiento de los sistemas es muy difícil, ya que implica la interacción de diferentes partes de hardware y de software los cuales son distribuidos por varios proveedores, lo que hace que se dificulte en diagnosticar los fallos del sistema. La arquitectura cliente-servidor es un modelo que implica productos y servicio enmarcados en el uso de la tecnología de punta, y también permiten la distribución de la información de manera ágil y eficaz, ya sea a una empresa, institución, escuela, entre otras, así como fuera de ella. Este modelo distribuido proporciona al usuario final el acceso transparente a las aplicaciones, datos servicios o cualquier otro recurso de trabajo gracias a la organización en múltiples plataformas. El modelo cliente-servidor tiene las características necesarias para proveer una infraestructura de procesamiento de información adecuada, exacta y oportuna en la toma de decisiones y así, puede proporcionar un mejor servicio a los usuarios finales.

Referencias bibliográficas:
1. Coulouris, G., Dollimore, J. & Kindberg T. (2001). SISTEMAS DISTRIBUIDOS Conceptos y diseño. Madrid: PEARSON EDUCACIÓN.
2. Pérez, C.. (noviembre 5, 2014). ¿Qué es el modelo cliente-servidor? Networking. agosto 19, 2017, de Codejobs Sitio web: https://www.codejobs.biz/es/blog/2014/11/05/que-es-el-modelo-cliente-servidor-networking

Comentarios

Entradas más populares de este blog

Conclusiones: Soporte de Software, Mantenimiento de Software y Soporte Técnico

  Conclusiones El software es parte indispensable de nuestra vida cotidiana, ya que lo utilizamos en todas partes y es indispensable para todos. Empresas y Organizaciones suelen utilizar software para poder automatizar y mejorar la producción. En la actualidad es habitual que el software de soporte avanzado permita a los técnicos la motorización continua de todos los dispositivos de la organización, la verificación remota del correcto funcionamiento, la obtención de parámetros de funcionamiento que permiten adelantarse a posibles errores así como la posibilidad de tomar el control remoto de ordenadores y servidores sin la necesidad de desplazarse para solucionar el problema. Otro aspecto a tomar en cuenta es el servicio de mantenimiento de software, que es el proceso de mejorar y optimizar el software desplegado, así como también remediar los defectos. Y por ultimo el soporte técnico es un rango de servicios por medio del cual se proporciona asistencia a los usuarios al tener ...

RMI

  Introducción RMI ("Remote Method Invocation") es un mecanismo para invocar/ejecutar procedimientos remotos en computadoras o servidores distribuidos. La gran mayoría de los sistemas empresariales hoy en día requieren de esta funcionalidad , esto se debe tanto a distancias geográficas como a requerimientos de computo, ya que seria iluso pensar que las necesidades de computo de TODA una empresa fueran satisfechas por una sola computadora y/o servidor. A continuacion hablaremos mas a detalle sobre lo que ofrece RMI. . Desarrollo ¿Qué es RMI? RMI ("Remote Method Invocation") es el mecanismo ofrecido en Java que permite a un procedimiento poder ser invocado remotamente. Una de las ventajas al diseñar un procedimiento con RMI es interoperabilidad , ya que RMI forma parte de todo JDK , por ende, cualquier plataforma que tenga acceso a un JDK también tendrá acceso a estos procedimientos. RMI se caracteriza por la facilidad de su uso en la programación por estar...

Seguridad: Kerberos

Seguridad web y aplicaciones Introducción La seguridad e integridad de sistemas dentro de una red puede ser complicada. Puede ocupar el tiempo de varios administradores de sistemas sólo para mantener la pista de cuáles servicios se estan ejecutando en una red y la manera en que estos servicios son usados. Más aún, la autenticación de los usuarios a los servicios de red puede mostrarse peligrosa cuando el método utilizado por el protocolo es inseguro, como se evidencia por la transferencia de contraseñas sin encriptar sobre la red bajo los protocolos FTP y Telnet. Kerberos es una forma eliminar la necesidad deaquellos protocolos que permiten métodos de autenticación inseguros, y de esta forma mejorar la seguridad general de la red. . Desarrollo ¿Qué es Kerberos? El servicio Kerberos es una arquitectura cliente-servidor que proporciona seguridad a las transacciones en las redes. El servicio ofrece una sólida autenticación de usuario y también integridad y privacidad. La auten...