Arquitectura Cliente Servidor
Definiciones Básicas
Para entender el concepto de la arquitectura de cliente servidor, antes es
necesario conocer algunas definiciones. Entre las principales definiciones se
tiene:
1. Desde un punto de vista conceptual:
«Es un modelo para construir sistemas de información, que se sustenta en la
idea de repartir el tratamiento de la información y los datos por todo el sistema
informático, permitiendo mejorar el rendimiento del sistema global de
información»
En términos de arquitectura:
Los distintos aspectos que caracterizan a una aplicación (proceso,
almacenamiento, control y operaciones de entrada y salida de datos) en el
sentido más amplio, están situados en más de un computador, los cuales se
encuentran interconectados mediante una red de comunicaciones.
IBM define al modelo Cliente/Servidor
Es la tecnología que proporciona al usuario final el acceso transparente a las
aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de
trabajo y a través de la organización, en múltiples plataformas. El modelo/o,
soporta un medio ambiente distribuido en el cual los requerimientos de servicio
hechos por estaciones de trabajo inteligentes o "clientes'', resultan en un trabajo
realizado por otros computadores llamados servidores.
Para entender mejor las definiciones antes mencionadas, analizaremos ahora
algunos de los conceptos mencionados en dichas definiciones:
Un Cliente es el que inicia un requerimiento de servicio. El requerimiento inicial
puede convertirse en múltiples requerimientos de trabajo a través de redes LAN
o WAN. La ubicación de los datos o de las aplicaciones es totalmente
transparente para el cliente.
Un Servidor es cualquier recurso de cómputo dedicado a responder a los
requerimientos del cliente. Los servidores pueden estar conectados a los
clientes a través de redes LANs o WANs, para proveer de múltiples servicios a
los clientes tales como impresión, acceso a bases de datos, fax, procesamiento
de imágenes, etc. Es importante mencionar que un servidor no es
necesariamente un dispositivo físico (una computadora) sino que hay que
entender al servidor como un proceso que se encarga de atender las peticiones
de un cliente.
Con estos elementos podemos ya darnos una idea de lo que es el modelo
cliente servidor, sin embargo, es necesario analizar más a fondo las
características de la arquitectura si queremos llegar a entender por completo el
funcionamiento de la misma.
Elementos de la Arquitectura Cliente/Servidor
Una arquitectura es un entramado de componentes funcionales que
aprovechando diferentes estándares, convenciones, reglas y procesos, permite
integrar una amplia gama de productos y servicios informáticos, de manera que
pueden ser utilizados eficazmente dentro de la organización.
Introducción a los Sistemas Distribuidos
Debemos señalar que para seleccionar el modelo de una arquitectura, hay que
partir del contexto tecnológico y organizativo del momento y, que la arquitectura
Cliente/Servidor requiere una determinada especialización de cada uno de los
diferente s componentes que la integran.
En esta aproximación, y con el objetivo de definir y delimitar el modelo de
referencia de una arquitectura Cliente/Servidor, debemos identificar los
componentes que permitan articular dicha arquitectura, considerando que toda
aplicación de un sistema de información está caracterizada por tres
componentes básicos:
• Presentación/Captación de Información
• Procesos
• Almacenamiento de la Información
Y se integran en una arquitectura Cliente/Servidor en base a los elementos que
caracterizan dicha arquitectura, es decir:
• Puestos de Trabajo
• Comunicaciones
• Servidores
De estos elementos debemos destacar:
• El Puesto de Trabajo o Cliente “Una Estación de trabajo o microcomputador
(PC: Computador Personal) conectado a una red, que le permite acceder y
gestionar una serie de recursos”, el cual se perfila como un puesto de trabajo
universal. Nos referimos a un microcomputador conectado al sistema de
información y en el que se realiza una parte mayoritaria de los procesos.
Se trata de un fenómeno en el sector informático. Aquellos responsables
informáticos que se oponen a la utilización de los terminales no programables,
acaban siendo marginados por la presión de los usuarios. Debemos destacar
que el puesto de trabajo basado en un microcomputador conectado a una red,
favorece la flexibilidad y el dinamismo en las organizaciones. Entre otras
razones, porque permite modificar la ubicación de los puestos de trabajo, dadas
las ventajas de la red.
• Los Servidores o Back-End. «Una máquina que suministra una serie de
servicios como Bases de Datos, Archivos, Comunicaciones,...)». Los Servidores,
según la especialización y los requerimientos de los servicios que debe
suministrar pueden ser:
o Mainframes
o Minicomputadoras
o Especializados (dispositivos de red, imagen, etc.)
Introducción a los Sistemas Distribuidos
Una característica a considerar es que los diferentes servicios, según el caso,
pueden ser suministrados por un único Servidor o por varios Servidores
especializados.
Las Comunicaciones en sus dos vertientes:
• Infraestructura de redes
Componentes Hardware y Software que garantizan la conexión física y la
transferencia de datos entre los distintos equipos de la red.
• Infraestructura de comunicaciones
Componentes Hardware y Software que permiten la comunicación y su gestión,
entre los clientes y los servidores.
La arquitectura Cliente/Servidor es el resultado de la integración de dos culturas.
Por un lado, la del Mainframe que aporta capacidad de almacenamiento,
integridad y acceso a la información y, por el otro, la del computador que aporta
facilidad de uso (cultura de PC), bajo costo, presentación atractiva (aspecto
lúdico) y una amplia oferta en productos y aplicaciones.
Características del modelo Cliente/Servidor
En el modelo Cliente/Servidor podemos encontrar las siguientes características:
1. El Cliente y el Servidor pueden actuar como una sola entidad y también
pueden actuar como entidades separadas, realizando actividades o tareas
independientes.
2. Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o
en la misma plataforma.
3. Un servidor proporciona servicio a múltiples clientes en forma concurrente.
4. Cada plataforma puede ser escalable independientemente. Los cambios
realizados en las plataformas de los Clientes o de los Servidores, ya sean por
actualización o por reemplazo tecnológico, se realizan de una manera
transparente para el usuario final.
5. La interrelación entre el hardware y el software están basados en una
infraestructura poderosa, de tal forma que el acceso a los recursos de la red no
muestra la complejidad de los diferentes tipos de formatos de datos y de los
protocolos. Un sistema de servidores realiza múltiples funciones al mismo
tiempo que presenta una imagen de un sólo sistema a las estaciones Clientes.
Esto se logra combinando los recursos de cómputo que se encuentran
físicamente separados en un sistema lógico, proporcionando de esta manera el
servicio más efectivo para el usuario final.
Comunicación entre Procesos
Objetivos
Objetivos Comunicación entre Procesos
Con la finalidad de enfatizar los conceptos más representativos del entorno de
comunicación entre procesos se realizarán dos ejercicios prácticos sobre el
manejo de sockets y RPC.
El protocolo TCP/IP y conjuntos de UDP son dominantes, incluso para los
sistemas distribuidos que son implementados sobre redes de área local. Los
sockets son mecanismos en estos protocolos que permiten que un cliente y
servidor puedan comunicarse escribiendo a o leyendo de sus sockets.
La mayoría de los servicios Web y las aplicaciones de acceso remoto actuales
utilizan un enfoque de llamadas a procedimientos remotos (RPC, Remote
RPC
Los RPC o Llamados a Procedimientos Remotos (“Remote Procedure Call”) son
mecanismos que permiten crear una comunicación entre procesos (cliente-
servidor), al igual que los Sockets, pero la diferencia con estos es que mientras
que los Sockets permiten enviar y transmitir caracteres, los RPC utilizan a los
Sockets para crear una comunicación de más alto nivel.
Los RPC permiten llamar a una función que está en otro programa y
generalmente en otra máquina, para lo cual el paso de parámetros a la función
remota se efectúa a través de algún protocolo de representación de datos (XDR,
eXternal Data Representation).
Mientras que a nivel de la capa de transporte el concepto de puerto existe para
poder enviar información entre procesos, los RPC definen un concepto llamado
número de programa. Este, junto con el uso de la versión del programa permite
que los servidores y clientes puedan comunicarse.
Programación con RPCs
Dentro de las funciones para programar con RPC existen tres niveles:
Nivel alto: En la práctica se usa sólo para aplicaciones muy específicas
con poca utilidad.
Nivel Bajo: Es en donde se pueden mezclar programación con RPCs y
Sockets.
Nivel Medio: Permite disponer de la mayor parte de las ventajas de RPCs
sin tener que entrar en el detalle de su implementación bajo Sockets. En
este nivel representaremos nuestro ejercicio práctico.
No hay comentarios:
Publicar un comentario