Introducción
Los sistemas distribuidos nacieron en una época de grandes cambios en la computación, la cual ha sufrido grandes cambios en toda su historia. Sin embargo fue comienzo del uso de los microprocesadores que añadían potencia a las computadoras a la vez que bajaba su costo, el desarrollo de redes de área local para transmitir datos entre computadoras a una gran velocidad y el desarrollo de las telecomunicaciones a un nivel global entre otros factores lo que ayudo a popularizar el termino.
Millones de personas y organizaciones dependen de sistemas distribuidos para realizar operaciones bancarias, enviar mensajes de texto o correos electrónicos, comprar y vender cualquier tipo de articulo o realizar llamadas. Un sistemas distribuido puede llegar a ser tan complejo como se requiera.
Es por ello que resulta fascinante pensar en el paso evolutivo que significan los sistemas distribuidos en la historia de la informática, ya que desde los inicios de la computación donde solo las grandes organizaciones podían permitirse el uso de una gran computadora para el manejo de datos hemos llegado a un punto donde un usuario común puede tener una computadora en su escritorio con capacidades mucho mayores además de estar cada vez mas introducidos en el quehacer cotidiano de una persona.
Desarrollo
Definición
La definición de George Coulouris nos puede dar una idea del significado de un sistema distribuido, sin embargo el Dr. Víctor Jesús Sosa Sosa, profesor e investigador del Cinvestav campo Tamaulipas define sistema distribuido como:
"Sistemas cuyos componentes hardware y software, que están en computadoras conectadas en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo preestablecido".
Otra forma de entender un sistema distribuido es mediante la definición de "Computación Distribuida", que se refiere a los servicios que provee un Sistema de Computación Distribuido.
Características
Una de las primeras personas en definir un sistema distribuido fue Philip H. Enslow, Jr del Instituto de Tecnología de Georgia, en su articulo "¿Que es un sistema de procesamiento de datos distribuido?" publicado en 1978, donde le atribuye las siguientes propiedades:
- Esta compuesto por varios recursos informáticos de propósito general, tanto físicos como lógicos, que pueden asignarse dinamicamente a tareas concretas.
- Estos recursos están distribuidos físicamente, y funcionan gracias a una red de comunicaciones.
- Hay un sistema operativo de alto nivel, que unifica e integra el control de los componentes.
- El hecho de la distribución es transparente, permitiendo que los servicios puedan ser solicitados especificando simplemente su nombre (no su localización).
- El funcionamiento de los recursos físicos y lógicos esta caracterizado por una autonomía coordinada.
A pesar de que estas características se le fueron atribuidas en 1978, siguen dando una idea básica de lo que es un sistema distribuido, otras características como la de Michael Schroeder pueden ser mas directas y fáciles de entender. Estas son solo tres y son:
- Existencia de varias computadoras. En general, cada una con su propio procesador, memoria local, subsistema de entrada/salida y quizás incluso memoria persistente.
- Interconexión. Existen vías que permiten la comunican entre las computadoras, a través de las cuales pueden transmitir información.
- Estado compartido. Las computadoras cooperan para mantener algún tipo de estado compartido. El funcionamiento correcto del sistema se describe como el mantenimiento de una serie de invariantes globales que requiere la coordinación de varias computadoras
Evolución
Host
Fue uno de los primeros modelos de computadoras interconectadas o centralizados. Todo el procesamiento lo realizaba una sola computadora o mainframe lo suficientemente potente para el gran procesamiento de datos y los usuarios utilizaban computadoras personales sencillas.
Sin embargo tenia problemas, ya que conforme la carga de procesamiento iba aumentando se tenia que actualizar el hardware del mainframe, lo cual resultaba mas costoso que añadir mas computadoras personales clientes o servidores que aumentaran las capacidades.
Grupo de Servidores
Este modelo nació para dar competencia al modelo de procesamiento central o host. En este un grupo de computadoras actúan como servidores de archivos o impresión. Los problemas que llego a dar que que se podían saturar los medios de comunicación entre los servidores poco inteligentes y los minicomputadores, es decir, que cuando se solicitaban archivos grandes por varios clientes a la vez disminuía la velocidad de transmisión de la información.
Cliente Servidor
Este modelo es el mas popular en la actualidad ya que permite descentralizar el procesamiento y los recursos. esto hace que ciertos servidores estén dedicados solo a una aplicación determinada y por lo tanto ejecutarla en forma eficiente.
Suele encontrarse principalmente en 2 arquitecturas:
- Arquitectura Cliente-Servidor de Dos Capas: En la primera capa encontramos la presentación y la lógica de la aplicación mientras en la segunda a la base de datos. Suele utilizarse cuando se requiera poco procesamiento de datos, solo se tiene una base de datos en un solo servidor, la base de datos es relativamente estática o se requiere un mantenimiento mínimo.
- Arquitectura Cliente-Servidor de Tres Capas: Consta de la capa de presentación, otra de la lógica de la aplicación y la tercera consta de la base de datos. Suele utilizarse cuando se requiera mucho procesamiento de datos en la aplicación, la funcionalidad de las aplicaciones esta en constante cambio, los procesos no están muy relacionados con los datos, se requiera aislar la tecnología de la base de datos para que sea fácil de cambiar, se requiera separar el código del cliente para que se facilite el mantenimiento o esta muy adecuada para utilizarla con la tecnología orientada a objetos.
Protocolo
Podría definirse como el conjunto de reglas y formatos que se utilizan para la comunicación de procesos que realizan una determinada tarea. Esto permite que los componentes de un sistema distribuido puedan desarrollarse independientemente por medio de módulos de software que componen el protocolo, haya una comunicación transparente entre ambos componentes. Para ello es necesario la especificación de la secuencia de mensajes que se han de intercambiar así como del formato de los datos en los mensajes.
Algunos ejemplos de protocolos podrían ser IP, TCP, HTTP, SMTP y POP3.
Ventajas
- La localización de la organización, los clientes, los proveedores etc., ya no es un problema porque gracias a las redes de información que los unen y les permiten interactuar.
- El desempeño por procesador con relación a su precio es mejor cuando están distribuidos, ya que resulta mas fácil armar una red de computadoras que se repartan los procesos que invertir en un mainframe con piezas muy costosas.
- El poder total del sistema puede incrementarse al añadir pequeños sistemas, lo cual es mas fácil y barato que hacerlo en un sistema centralizado.
- Es mucho mas fácil hacerlo en un sistema distribuido ya que de otra manera se tendría que duplicar el archivo en cada nodo.
- Son mas confiables, ya que al estar distribuida la carga de trabajo en muchas maquinas la falla de una de ellas no afecta a las demás.
- Se pueden compartir recursos, ya sean programas o periféricos costosos como impresoras láser, dispositivos de almacenamiento masivo etc. Eso además satisface las necesidades de varios usuarios a la vez
- Hay una mejora notable en la comunicación entre las personas
- La localización de la organización, los clientes, los proveedores etc., ya no es un problema porque gracias a las redes de información que los unen y les permiten interactuar.
- El desempeño por procesador con relación a su precio es mejor cuando están distribuidos, ya que resulta mas fácil armar una red de computadoras que se repartan los procesos que invertir en un mainframe con piezas muy costosas.
- El poder total del sistema puede incrementarse al añadir pequeños sistemas, lo cual es mas fácil y barato que hacerlo en un sistema centralizado.
- Es mucho mas fácil hacerlo en un sistema distribuido ya que de otra manera se tendría que duplicar el archivo en cada nodo.
- Son mas confiables, ya que al estar distribuida la carga de trabajo en muchas maquinas la falla de una de ellas no afecta a las demás.
- Se pueden compartir recursos, ya sean programas o periféricos costosos como impresoras láser, dispositivos de almacenamiento masivo etc. Eso además satisface las necesidades de varios usuarios a la vez
- Hay una mejora notable en la comunicación entre las personas
Desventajas
- La falta de estándares y herramientas suele crear problemas de compatibilidad, portabilidad e interconectividad. Esto se da ya que el desarrollo y uso de estándares se suele dar por personas y en tiempos diferente.
- Decidir en que lugar ira cada parte del sistema no es tan sencillo como seria hacerlo de una manera centralizada. Problemas como verificar permisos, aplicar mecanismos de protección y compartir datos y recursos suelen sobrecargar el sistema.
- La distribución de datos y de programas puede crear problemas de seguridad e integridad que por lo general requieren de un proceso paralelo que ayude a solucionar dichos problemas, por lo que la carga del sistema aumenta y el rendimiento en general puede verse afectado.
- El software, el diseño, la implantación y el uso de software distribuido problemas e inconvenientes que suelen generarse al momento de implementarlo.
Conclusiones
Los sistemas distribuidos significan un gran paso en la historia de la informática, ya que ofrecen mas ventajas que desventajas en comparación con otros modelos. Sin embargo esto mismo puede llegar a ser un problema ya que conforme mas grande y complejo se quiera hacer un sistema se encontrar mas problemas ya que su diseño, el como se va a programar, que tecnologías se utilizaran, el darle mantenimiento y muchas cosas mas hacen que sea mas difícil de implementar que otros modelos.
- La falta de estándares y herramientas suele crear problemas de compatibilidad, portabilidad e interconectividad. Esto se da ya que el desarrollo y uso de estándares se suele dar por personas y en tiempos diferente.
- Decidir en que lugar ira cada parte del sistema no es tan sencillo como seria hacerlo de una manera centralizada. Problemas como verificar permisos, aplicar mecanismos de protección y compartir datos y recursos suelen sobrecargar el sistema.
- La distribución de datos y de programas puede crear problemas de seguridad e integridad que por lo general requieren de un proceso paralelo que ayude a solucionar dichos problemas, por lo que la carga del sistema aumenta y el rendimiento en general puede verse afectado.
- El software, el diseño, la implantación y el uso de software distribuido problemas e inconvenientes que suelen generarse al momento de implementarlo.
Conclusiones
Referencias
- Sosa V.. (2013). Sistemas Distribuidos: Panorama. 2016, de Cinvestav Sitio web: http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/sistemas_distribuidos_panorama.pdf
- Lafuente A.. (2011). Introducción a los sistemas distribuidos . 02-Sep-2011, de Departamento de Arquitectura y Tecnología de Computadores, UPV/EHU Sitio web: http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap1.pdf
- González, S., Cheang, G., & Kashiwamoto, E.. (2004). Introducción a los Sistemas Distribuidos. 2004, de UNAM Sitio web: http://www.capacinet.gob.mx/Cursos/Tecnologia%20amiga/desarrolladordesoftware/IntroduccionSistemasDistribuidos_SE.pdf
- Turpo, E.. (2010). Sistemas Distribuidos. 2010-05-30, de Universidad Arturo Prat Sitio web: http://www.unap.edu.pe/cidiomas/licing/pdf/sd.pdf
No hay comentarios:
Publicar un comentario