Que tal gente tecnológica.
Hoy les hablare de los sistemas distribuidos, reconozco que esta fue una cátedra que me dieron a entender cuando estudiaba en la universidad pero que como cosa rara se quedo obsoleta a raíz de los cambios tecnológicos presentes, asíque tratare de resumirlo lo mejor posible.
Se entiende por sistema todo aquello que captura, procesa y remite algo (es lo mas básico) ahora distribuido que será? pues involucra la comunicación de dos o mas sistemas. es muy simple: sistemas independientes que ayudan.
Todo sistema esta contenido por otro sistema mayor (como una súper clase), por ello hay que saber que sistema son los que estamos separando. Por regla general los sistemas evolucionan y mueren de forma independiente por ello es que es buena opción distribuir los sistemas.
No siempre los sistemas distribuidos se refieren a sistema de red, incluso en una misma maquina pueden existir dos sistemas distribuidos, en tiempos pasados cuando los equipos de computación eran costosos se tenia un solo computador en donde se gestionaba mas de un sistema.
Hoy en día los equipos informáticos resultan muy económicos y el uso de redes se ha extendido como una forma de aligerar cargas de procesamiento de datos y todas las mejoras que conlleva, es decir se han separado físicamente los sistemas que antes eran monolíticos, pesados e inmantenibles en el tiempo.
Los sistemas distribuidos ya se sobrentiende como sistemas que utilizan la red como norma general.
Pero como hacen uso estos sistemas de la red? fácil: todo sistema como lo he dicho capta, procesa y entrega resultados. Por ello es que el resultado de un sistema es la materia prima del otro. Si tenemos nociones de sistemas esto resulta fácil: dos sistemas interdependientes. Lo complicado es escoger el medio de comunicación.
Existe en el mercado muchos medios de comunicar dos sistemas (o mas), por ello debemos de elegir según la calidad de dicho enlace en función de los sistemas involucrados. Existen sistemas síncronos y asíncronos y sistemas móviles y estáticos, también existen sistemas de soporte de carga de proceso y sistemas de procesamiento paralelo. Es decir existen varios tipos de sistemas que en función de su convivencia requerirán un tipo de enlace con el otro sistema (o sistemas claro).
En los sistemas síncronos resulta mejor el envío de mensajes sin estado permanente, y los sistemas asíncronos resulta conveniente la comunicación por medio de enlaces mas o menos permanentes. Por regla general cuando hablamos de sistemas con una sola dirección hablamos de sistemas síncronos (acción->reacción), son los comúnmente encontrados en procesamiento de datos, cliente-servidor, etc. Los sistemas asíncronos nos referiríamos a clustering, procesamiento en paralelo, etc. es decir un sistema dividido en varias partes. Es aquí donde entra nuestra definición de un sistema distribuido.
Cuando es un sistema distribuido y cuando es una comunicación entre sistemas? ya lo tenemos asíncrono y síncrono. Que tipo de conexión recomiendo a cada uno? pues eso depende de los gustos, los sistemas síncronos utilizan mensajes en colas, los webservice resultan una forma económica y muy extendida entre multiplataformas. En cuanto a los sistemas distribuidos siempre recomendare enlaces básicos independientes de la plataforma. Una comunicación por socket será mejor que una comunicación DCOM/CORBA y a su vez mejor que RMI, pero como lo he dicho, depende del gusto del consumidor. Porque por regla general cuando distribuimos un sistema (clustering) lo programamos usando un mismo lenguaje, por compatibilidad entre metodología, gestión de concurrencia, orquestación de módulos, etc. Con clustering se habla mucho de sistemas críticos que por lo general hacen uso de NOS comunes por aquello de la persistencia en la red, sistemas de control de servidores, enlaces, asociación de grupos, etc. son dos mundos completamente distintos que la gente sin conocimiento se refiere a ambos de la misma manera: síncronos y asíncronos.
Saludos y hasta la próxima.