Evolución de los Sistemas Operativos – Parte I

La verdad es que el Sysadmin, o mejor dicho el que se hace llamar Sysadmin en este lugar, me tiene un poco hinchado los huevos, pero eso dará para otro post un poquito más adelante. Por ahora creo que este es el último que les puedo escribir desde este lugar, con lo cual es posible que se cambie la periodicidad de estos artículos.

Pero volvamos al camino del sol, y volvamos a los Sistemas Operativos. Ya hemos tenido una introducción en cuatro partes (Parte I, Parte II, Parte III y Parte IV); y ahora ya podemos encarar desde otro lado.

Los sistemas distribuidos concebidos como aquellos que funcionan como si se tratara de un sistema único, no hacen ninguna presuposición acerca de la variedad funcional de sus componentes, ni de como estos componentes se comunican. De esta manera las variantes que existen han dado origen a sistemas distribuidos de distinta índole y que van de la no-distribucion (siste­mas monolíticos) hacia la distribución completa (servicios orquestados por procesos de negocio).

Sistemas Monolíticos

Un sistema de información monolítico es aquel que se concibe como un único elemento funcional donde sus prestaciones se ofrecen a través de una sola pieza de código que resuelve tanto la presentación al usuario (interface), como el acceso a los datos (trata con operaciones de entrada/salida) y a su vez resuelve la lógica algorítmica del problema que aborda.

Estos sistemas de información se construían en un único lenguaje de programación, sobre un único computador y con un único sistema operativo como plataforma. La comunicación con el usuario y también con el programador, era a través de terminales de caracteres que responden únicamente a comandos lanzados por consola. Su ubicación en el tiempo se remonta a los años ‘70.

Una versión mejorada de los sistemas de información así concebidos, pudo aportarse con las técnicas de programación estructurada, los lenguajes de programación y las metodologías de programación modular introducidas por Edsger Dijkstra. En este sentido, los sistemas de información comenzaron a ser concebidos como un conjunto de componentes o niveles de complejidad, aunque permanecían ejecutándose en una misma computadora y por lo tanto podemos considerarlos no-distribuidos.

Evolución tecnológica de los sistemas de información

Cliente/Servidor y su evolución en n capas

La distribución funcional entre lógica de aplicación propiamente dicha y lógica de acceso a datos vislumbrada en la década del 80, condujo a concebir la idea que estos dos componentes podría residir en computadoras diferentes aprovechando las consultas SQL que podían inter­pretar los DBMS, junto con la gran proliferación de PCs sobre LAN (Local Area Network), que se estaba dando en esos tiempos.

Este escenario dio origen a la primera versión de sistema distribuido, desde el aspecto fun­cional, que fue el denominado Cliente/Servidor o arquitectura de 2 capas. La arquitectura Cliente/Servidor o arquitectura de 2 capas clásica, se sustenta en la idea que existe una componente Cliente que resuelve la lógica de la interface con el usuario. El código de este componente se escribe generalmente en un lenguaje visual de cuarta generaction (Delphi, VisualBasic, PowerBuilder). La capa 2 seria un componente Servidor que resuelve la lógica de acceso a los datos, al menos con la gestión que hace los mismos un DBMS.

En esta arquitectura, la lógica de la aplicación no cuenta con un componente físico especifico para su ejecución y despliegue, sino que es absorbida por algunas de las dos componentes antes mencionadas: Cliente o Servidor.

La desventaja fundamental que llevo a buscar evolucionar hacia un modelo superador lo constituyo sin dudas el desbalanceo de carga entre cliente y servidor, lo cual se vio acompañado por la instauración cada vez mas firme de la Internet como la mejor solución a la no disponibilidad de recursos de computo y la globalización de los sistemas de información.

Por su parte, el modelo Cliente/Servidor clásico se transformo en poco escalable (capacidad de crecimiento) tanto a nivel vertical (aumento de cantidad de clientes y por ende de requerimientos al servidor), como horizontal (un solo servidor accesible a través de una LAN, ya no era suficiente, se requería acceso a través de WAN).

Surge así el modelo de 3 capas donde, básicamente, se le otorga a la capa media (lógica de la aplicación) una plataforma de ejecución propia. El mas claro ejemplo de este tipo de modelos lo constituye la tecnología Web. De este modo, y dado que el componente me­dio posee su propia plataforma de ejecución y que se cuenta con un modelo Cliente/Servidor, es que la capa media puede ser una sola o varias – siendo todas estas alternadamente cliente y servidor de la siguiente – y obteniendo la arquitectura n-capas.

Tecnología Web: un caso particular de Cliente/Servidor

La tecnología Web es aquella hace uso de Internet para construir sistemas de información. En este sentido, dichos sistemas de información se construyen haciendo uso de los protocolos y mecanismos de comunicacion provistos por Internet, esto es: acceder a re- cursos a traves de una identificación única (URL), obtener dichos recursos con un protoco- lo de transferencia de archivos (FTP/HTTP) y mostrar los resultados al usuario (Navegador o Browser).

  • Web Browser: componente cliente para visualizar un documento HTML
  • Web Server: componente que contiene paginas HTML que envía a los clientes que los visualizan en el Web Browser
  • Web Site: estructura de directorio para almacenar las paginas HTML y otros archivos.

Tecnología Web en 3 capas: Web Server Dinamico

El componente Web Server en sistemas distribuidos de tecnología Web, provee un tipo de servicio que se limita a recibir peticiones por HTTP y responder con un conjunto de registros (archivo) estructurado como HTML.

Este escenario resulta insuficiente para construir sistemas de información debido a:

  1. Ausencia de un componente que permita acceder a los datos y mantenerlos persistentes y
  2. Ausencia de un componente que ejecute código para producir transformaciones en dichos datos.

Surge así lo que damos en llamar web server dinámico, es decir, aquel que es capaz de desencadenar computo que se encuentra codificado dentro de las paginas HTML que administra, tal como se ve aquí.

2 pensamientos en “Evolución de los Sistemas Operativos – Parte I”

  1. Pingback: Evolución de los Sistemas Operativos – Parte II

  2. Pingback: Evolución de los Sistemas Operativos – Parte III

Deja un comentario