| Artículos | 01 SEP 1997

Informática distribuida

Tags: Histórico
Jorge Pascual.

El futuro de la informática pasa inevitablemente por la informática distribuida: compartir información de forma sincronizada.

La informática comenzó a distribuirse en el mismo momento en el que se unieron dos ordenadores que compartían recursos (habitualmente el disco duro). Mediante las redes locales se alcanzaron algunas cuotas de distribución, pero la gran distribución de la informática tiene mucho que ver con la explosión de Internet.

El concepto Informática Distribuida es un concepto abstracto el cual se está intentando modelar mediante diferentes arquitecturas. Actualmente nos encontramos ante lo que se podría denominar el nacimiento de la informática distribuida masiva, ya que la informática distribuida lleva varios años existiendo, en sus diferentes niveles, dentro de los grandes entornos corporativos. Los analistas estiman que para el año 2.000 estaremos obteniendo el máximo aprovechamiento de esta tecnología, pero de momentos, como se ha citado, estamos asistiendo prácticamente a su nacimiento.

En primer lugar veremos cómo se llega de forma lógica a la necesidad de la informática distribuida, y más tarde veremos las soluciones que existen en este momento para el modelado de la idea.

El pasado: Aplicaciones de un solo nivel

Según se ha visto en el primer artículo de este ejemplar, hace unos años, las primeras aplicaciones que existían eran monolíticas y se encontraban y ejecutaban en el mismo ordenador, que por otra parte, estaba aislado del resto. Las aplicaciones envolvían los tres grandes apartados que dan cuerpo a un programa genérico: la interfaz de usuario, las reglas empresariales y el acceso a datos. A este modelo de aplicación es al que habitualmente se denomina Aplicación de un solo nivel.

Actualmente este modelo se conserva en algunas circunstancias, pero en sistemas empresariales ha quedado muy anticuado, ya que tiene grandes limitaciones, aunque como es lógico, también tiene algunas ventajas.

Una de las principales ventajas es la simplicidad que conlleva. Al ejecutarse de forma exclusiva en una máquina, prácticamente todo se puede controlar de forma absoluta. Así por ejemplo, la seguridad es un factor que en muchos casos ni se planteaba, pues en un ordenador únicamente accedía un usuario, que por otro lado, solía ser el dueño. También es una gran ventaja la administración de la aplicación, pues el único foco de atención para el administrador es la misma aplicación.

Sin embargo, esto trae consigo muchas desventajas. La primera y más importante es trivial. Si suponemos que tenemos dos ordenadores en los que estamos ejecutando la misma aplicación, y ambos usuarios desean compartir los mismos datos, vemos que es imposible de realizar, salvo que se utilicen arcaicas técnicas como la de introducir en un disquete la información y pasárselo al compañero. Sin embargo, ni siquiera así se resolvería totalmente el problema, ya que la información no estaría sincronizada.

La actualidad: Aplicaciones de dos niveles

Para solucionar de forma completa el problema de la compartición de información digital de forma sincronizada aparecieron las aplicaciones de dos niveles. Estas aplicaciones contenían toda la lógica correspondiente a las reglas empresariales y a la interfaz del usuario, pero se desvinculaban de la gestión de los datos. El máximo representante de este modelo es la arquitectura cliente/servidor. Dentro de esta arquitectura existe una máquina que contiene todos los datos comunes a todos los usuarios y actúa como servidor de éstos. Al otro lado existen varios ordenadores que actúan como clientes solicitando datos al servidor y ejecutando la aplicación propiamente dicha. Evidentemente, para que esto se pudiera hacer se tuvo que desarrollar un hardware que permitiese la conexión de ambos equipos.

Como vemos, con esta nueva arquitectura se han conseguido hacer cosas que con las aplicaciones de un solo nivel eran imposibles de hacer. El éxito fue tal que, actualmente es la arquitectura más ampliamente utilizada en todo el mundo. Una contribución importante a este éxito la han aportado las herramientas de desarrollo. Mediante entornos visuales y de desarrollo rápido se proporcionaba una fácil creación de la interfaz de usuario, un acoplamiento de las reglas empresariales relativamente sencillo y reutilizable y un acceso a la base de datos remota automatizado e independiente de la propia base de datos. Actualmente estas herramientas todavía son muy utilizadas y, aunque han evolucionado y soportan también las nuevas arquitecturas, no prescinden en absoluto de la arquitectura cliente/servidor.

Como ya se ha mencionado, las aplicaciones cliente/servidor son las más utilizadas en la actualidad y, aunque todo evoluciona hacia aplicaciones de más niveles, las aplicaciones cliente/servidor resultan útiles cuando no es necesario acceder a muchas bases de datos y cuando el número de usuarios no es excesivo. Es decir, si nos salimos de una estructura más o menos controlable y crecen los clientes y las bases de datos, los problemas intrínsecos a esta arquitectura comienzan a florecer. Por ejemplo, uno de los problemas más importantes es la seguridad. Puesto que no tenemos un sistema centralizado, la seguridad hay que asegurarla en cada cliente. Si tenemos relativamente pocos clientes, el control de la seguridad es sencillo, pero si el número de clientes crece ostensiblemente, la inversión que hay que realizar para mantener la seguridad alcanza límites insostenibles, por lo que, con el ánimo de no incrementar demasiado los presupuestos, se relajan las medidas de seguridad y aquí pueden comenzar los problemas para la empresa.

Por la misma causa de la descentralización de la aplicación, el mantenimiento de la misma es complejo y costoso, ya que requiere realizar el mantenimiento en cada uno de los clientes. Todos estos problemas llevan a una solución perteneciente a un modelo superior, basado en más niveles.

El futuro: Aplicaciones multinivel

Como hemos visto, las aplicaciones cliente/servidor basadas en modelos bidimensionales tienen serios problemas. Sin embargo, podemos aprovechar todas las ventajas de esta arquitectura si se extrapola el modelo a un número mayor de dimensiones. Si nos fijamos, habíamos dicho que, en general, una aplicación consta de tres partes: interfaz de usuario, lógica empresarial y acceso a datos. Con el modelo de dos dimensiones conseguimos separar la parte que tiene que ver con los datos, pero mantenemos íntimamente unidas la lógica empresarial y la interfaz del usuario.

Lógicamente se puede pensar en dividir estas dos partes bien diferentes de la aplicación, para así conseguir un modelo tridimensional. Efectivamente este es el primer paso hacia un modelo multinivel. La idea es dividir una aplicación es sus partes fundamentales y, así, tener de forma separada la lógica empresarial, la lógica de acceso a datos y la lógica de presentación. Cada una de estas partes las podemos alojar en objetos independientes que actúen como cajas negras. A estas cajas negras las vamos a denominar componentes por comodidad. Así tendríamos tres tipos de componentes, que se corresponderían con cada tipo de lógica existente.

Evidentemente, una vez que se ha roto la aplicación en diferentes partes, para reconstruirla es necesario unir cada trozo. Para facilitar las cosas se establece que cada componente tenga unas determinadas entradas y unas determinadas salidas como respuesta a las entradas. Para unir las entradas de unos con las salidas de otros se implementan interfaces abstractas, de forma que cada componente pueda comunicarse con cualquier otro mediante la interfaz definida. Así, utilizando esta técnica se puede reconstruir la aplicación sin ningún problema, pero se va un paso más lejos.

En un mismo sistema podemos tener varios componentes pertenecientes a un m

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información