Phi

Engineer's blog

Sistemas de información distribuidos: conceptos básicos



La computación en la nube (cloud computing) ha cambiado la forma en que las empresas implementan su infraestructura tecnológica, ya no es un rack con dos servidores proveyendo servicios en una LAN, sino servicios orquestados en distintos lugares del mundo. Como consecuencia de ello los sistemas altamente desacoplados comienzan a ser una necesidad. El presente artículo busca dar una introducción de dicha necesidad centrandose en los Sistemas de Información Distribuídos (Distributed Information Systems).

Los sistemas de información distribuídos son sistemas de información en el cual su conjunto lógico de funciones son procesados en varios dispositivos físicos. De manera general los sistemas de información son diseñados bajo tres (3) capas que son:

  1. Capa de Presentación: Es la capa encargada de la comunicación (intercambio de información) con entidades externas sea humano o máquina.

  2. Capa Lógica de Aplicación: Comunmente conocida como la lógica de negocio, encargada de realizar la validación, procesamiento y entrega de datos a la capa de presentación.

  3. Capa de gestión de recursos: También conocida como la capa de datos. Es la encargada de implementar todas las fuentes de datos del sistema.

Por sentido común estos sistemas deberían diseñarse desde la capa de presentación hasta la capa de gestión de recursos para así garantizar los requisitos, sin embargo no siempre es así, por lo que encontramos dos formas de diseño que son:

  1. De arriba hacia abajo: Es la más común, se desarrolla desde el punto de vista de los clientes y de cómo éstos interactuarán con el sistema.

  2. De abajo hacia arriba: Éste diseño ocurre cuando el sistema luego de dar su vida últil requiere ser modificado para acoplarse a otros sistemas o requisitos sin partir de la construcción de uno nuevo, dando como consecuencia un diseño que comienza con la capa de datos y termina en la capa de presentación.

Hasta éste punto los conceptos presentados son familiares a los desarrolladores de software sin embargo es la arquitectura lo que permite que los sistemas sean distribuídos. A continuación se presenta los cuatro tipos de arquitecturas disponibles a dichos sistemas

  1. Arquitectura de 1 nivel: Es la arquitectura tradiccional donde las tres capas se encuentran en un solo componente de software. Se caracteriza por la dificultad y alto costo de mantenimiento.

  2. Arquitectura de 2 niveles: Arquitectura que se presenta cuando la capa de presentación está separada de las dos capas restantes (el cliente sale del servidor). A diferencia de la arquitectura de un solo nivel ésta reduce la complejidad, es comunmente conocida con el nombre de Arquitectura cliente-servidor. Sin embargo presenta limitantes que son al final llevadas al cliente.

  3. Arquitectura de 3 niveles: Arquitectura que separa las tres capas donde la capa lógica de aplicación actúa como middleware.

  4. Arquitectura de n niveles: Ésta es en realidad una generalización de la arquitectura de 3 niveles. Ocurre cuando se incluyen otros niveles en las capas como por ejemplo en la capa de presentación, donde podría está conformada por el cliente como un explorador web y un servidor web (dos niveles). En la actualidad es la arquitectura más implementada y la de nuestro mayor interés.

Parece obvio que entre mayor sea el número de niveles menor es el redimiento del sistema sin embargo éste debe ser compensado con flexibilidad. Otro de los problemas que surge es la comunicación entre los componentes del sistema pero ésto será tratado en otro artículo, por el momento ¡a descansar se dijo!