Cliente/servidor y Bases de Datos distribuidas. Implementación práctica de soluciones distribuidas.

Una de las tendencias más claramente definidas en la informática empresarial de hoy es el downsizing y la distribución de aplicaciones y datos. Podemos decir, sin temor a equivocarnos, que las tecnologías cliente/servidor y de bases de datos distribuidas son la plataforma fundamental sobre las que se sustenta todo proceso de downsizing y/o distribución de información.

Las ventajas de la arquitectura cliente/servidor son tan numerosas, que la mayoría de las compañías no pueden ignorarlas a la hora de plantearse una evolución en sus sistemas de gestión de información.

Básicamente y de forma muy resumida, las ventajas de la informática distribuida frente a la centralizada son:

1. Menor coste por transacción: Distribuyendo los procesos en ordenadores basados en microprocesadores, en lugar de sistemas de mayor tamaño, se obtienen unos costes por transacción mucho más reducidos.

2. Escalabilidad: Por la naturaleza modular de la arquitectura cliente/servidor, las redes se pueden ampliar fácilmente, aumentando el número de nodos o sustituyendo los nodos por otros más potentes. Este proceso de ampliación no requiere la modificación de las aplicaciones.

3. Menor coste de desarrollo: La disponibilidad de una gran variedad de herramientas de 4ª generación (4GL) para sistemas cliente/servidor, permite la elección de entornos de desarrollo muy productivos y adaptados a las necesidades de cada usuario.

4. Entornos gráficos de usuario: Nadie pone en duda que la facilidad de uso de las nuevas herramientas de usuario redundan en una informática más productiva para el usuario, y por tanto para la empresa. Muchas aplicaciones cliente soportan ya estos entornos gráficos.

5. Interoperabilidad con el puesto de trabajo: Con la evolución de las nuevas herramientas basadas en entornos gráficos, la integración de dichas herramientas con los datos (servidor) es mayor y la expectativa de un uso más productivo de la información aumenta proporcionalmente.

Todas estas ventajas son reales, pero existe la posibilidad de no obtener el beneficio esperado de este tipo de arquitecturas si la implementación de las mismas no se realiza con garantías suficientes y con un análisis exhaustivo de la situación.

Los dos modelos de informática distribuida

En una arquitectura cliente/servidor, nos encontramos habitualmente con una serie de aplicaciones independientes o individuales, que se están ejecutando en múltiples ordenadores. Las bases de datos residen en los ordenadores conocidos como servidores, mientras que las aplicaciones se ejecutan en lo que conocemos como ordenadores o estaciones de trabajo cliente. Las redes, normalmente locales, proporcionan la conexión física entre ordenadores cliente y servidor, así como el protocolo de transporte necesario para su comunicación.

En este modelo de informática distribuida, existe una comunicación entre la aplicación cliente, que requiere la información, y el servidor de base de datos, que se la proporciona. De esa forma, la aplicación cliente se especializa en lo que conocemos como interface con el usuario y el servidor se dedica a las tareas de gestión de la base de datos. Es básicamente un sistema biproceso.

El modelo de bases de datos distribuidas ofrece aún más. La diferencia fundamental entre las dos arquitecturas es que, en las bases de datos distribuidas, la información no tiene por que estar físicamente en un servidor concreto -de hecho, puede estar en varios a la vez-. Sin embargo, el usuario de la aplicación percibe la información como si estuviese almacenada en un único lugar físico. Para conseguirlo, debe existir un gestor de bases de datos en cada nodo o sistema servidor de la red. Estos gestores de bases de datos se encargarán de que el acceso a la información sea transparente desde cualquier punto de la red. El usuario no tendrá que navegar en busca de los datos. Para clarificar la distinción: en una base de datos distribuida, cada servidor se comunica con los demás y entre todos gestionan el flujo de información en las llamadas transacciones distribuidas. En un modelo cliente/servidor, cada servidor es independiente y gestiona la información de su entorno particular, sin involucrar a otros servidores.

En el modelo cliente/servidor, un cliente interrumpirá la comunicación con su servidor habitual y conectará con otros servidores cuando desee acceder a otras bases de datos. En un entorno de bases de datos distribuidas, cuando se realiza una petición de información (transacción SQL) a un servidor determinado, éste involucrará a los servidores que sean necesarios para satisfacer la petición del cliente. Aquí aparece la primera cuestión derivada de este análisis: la selección del modelo de informática distribuida que nuestra empresa necesita. ¿Nos basta con el modelo cliente/servidor o necesitamos un entorno de bases de datos distribuidas?

¿Qué hay detrás de la arquitectura cliente/servidor?

La capacidad para separar la lógica de la aplicación de la gestión de la base de datos y repartirlas en dos CPUs, permite a los sistemas cliente disponer de más potencia que a su vez les permitirá ejecutar los nuevos entornos gráficos, proporcionando al usuario un acceso más sencillo e intuitivo a la información que necesita. Al mismo tiempo, están disponibles toda una serie de nuevas prestaciones a nivel de gestores de bases de datos en cuanto a informática distribuida.

Gran parte del interés por el downsizing y la informática distribuida se deriva del hecho de que muchas empresas desean implementar aplicaciones, que antes residían obligatoriamente en mainframes, en sistemas más pequeños y que están resultando más rápidos, flexibles y, sobre todo, económicos. Pero antes de entrar en un proceso de downsizing, es necesario conocer las garantías existentes en cuanto a la integridad de la información y a la posibilidad de desarrollar aplicaciones sofisticadas.

Los PCs y las LANs tienen la reputación de no tener los niveles de seguridad ofrecidos por los sistemas mainframe. La arquitectura cliente/servidor es una solución que combina la docilidad del PC o estación de trabajo, con la integridad, seguridad y robustez del entorno mainframe. Las bases de datos ubicadas en LANs de PCs utilizan implementaciones del lenguaje SQL, el lenguaje estándar utilizado en los mainframes. Una vez que los usuarios se encuentran en un entorno cliente/servidor, tienen la libertad necesaria para crear una arquitectura de aplicaciones económica, flexible, transportable y abierta a la evolución.

Las ventajas del lenguaje SQL en arquitecturas

cliente/servidor

Una ventaja importante del lenguaje SQL es su eficacia en entornos de red, lo que implica una mejora en el rendimiento del gestor de base de datos. Cuando se emplean servidores de archivos tradicionales, al estilo de las redes clásicas de PCs, una gran parte del archivo de datos viaja por la red desde el servidor de archivos a la máquina cliente. Al utilizar en el servidor un gestor de bases de datos SQL, sólo los datos implicados en la consulta (query) -normalmente un fragmento de tabla o tablas- viajan a la máquina cliente.

La disponibilidad de SQL en el servidor también permitirá la implementación de algunas funciones avanzadas como son triggers y procedimientos almacenados (stored procedures). Con la evolución de los gestores de bases de datos, ya es posible incluso establecer reglas de aplicación en el servidor de bases de datos. Los sistemas que incorporan estas características son más fiables que los sistemas clásicos que incorporan toda la lógica en la aplicación, razón por la cual el respeto a las reglas de integridad queda en manos del programador.

Hoy en día, el software del servidor también proporciona niveles de seguridad, recuperación de datos en caso de caída del sistema, integridad referencial, bloqueo automá

TE PUEDE INTERESAR...

Contenido Patrocinado

Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital