Ir al contenido principal

Tarea 1: Sistemas distribuidos

Sistemas distribuidos


Introducción
Hoy en día los seres humanos dependemos de Sistemas distribuidos, debido a que lo utilizamos en nuestra vida cotidiana, ya sea haciendo una transacción en el banco, enviando correos electrónicos, reservar un vuelo, etc. Sin embargo, para entender cómo funciona y cuál es el motivo de que un sistema distribuido exista, debemos de repasar conceptos y principios fundamentales sobre éste, ya que los sistemas distribuidos son de gran complejidad y abarcan una gran cantidad de problemas de distintos tipos.

Desarrollo
¿Qué es un sistema distribuido?
Se le dice sistema distribuido a aquel en el que los componentes localizados en computadoras, las cuales están conectadas en una red, comunican y coordinan sus acciones mediante el paso de mensajes. Los sistemas distribuidos se caracterizan por:
-Inexistencia de reloj global:
Es cuando los programas que necesiten cooperar coordinan sus acciones gracias al intercambio de mensajes. Sin embargo resulta que hay límites de precisión con las que las computadoras conectadas en una red puedan sincronizar sus relojes, en donde no hay una noción global del tiempo. Debido a esto, la única forma de comunicación se realiza enviando mensajes a través de una red.
-Concurrencia:
La ejecución de programas concurrentes es habitual en los sistemas distribuidos. Es decir, se pueden compartir distintos recursos, sin importar que trabajo se esté ejecutando en cada computadora.
-Fallos Independientes:
Los sistemas distribuidos son vulnerables a fallar. Los fallos en la red causan aislamiento de las computadoras que están conectadas a él, sin embargo, no significa que detengan su ejecución. Cada componente que pertenece a el sistema distribuido puede fallar independientemente, con la ventaja de que no puede dañar a otros componentes del sistema, por lo que los demás pueden continuar ejecutandose normalmente.

Por lo tanto, un sistema distribuido:
1. Está compuesto por diversos recursos informáticos que pueden asignarse de forma dinámica a tareas en especifico.
2. Los recursos son distribuidos físicamente y funcionan armónicamente con una red de comunicaciones.
3. Existe un sistema operativo de alto nivel, el cual unifica y se encarga de llevar el control de los componentes.
4. La funcionalidad de los recursos físicos y lógicos están ligados por una autonomía coordinada.

¿Para qué sirven los sistemas distribuidos?
Una de las principales razones para utilizar sistemas distribuidos es con el objetivo de compartir recursos, es decir, compartir un rango de cosas de forma útil en un sistema de computadoras, las cuales están conectadas a una red. Las impresoras, los archivos, páginas web, bases de datos, entre otras, se administran mediante servidores apropiados, de tal forma que los clientes pueden acceder fácilmente. Por ejemplo, los clientes de servidores web utilizan navegadores web para poder acceder a ellos.

Requisitos indispensables de sistemas distribuidos.
La construcción de sistemas distribuidos representa distintos desafíos, los cuales son:.
-Heterogeneidad:
Debe de estar construida desde una variedad de distintos sistemas operativos, lenguajes de programación, redes y el hardware de la computadora.
-Escalabilidad:
Un sistema distribuido es escalable si el coste de añadir un usuario es constante. Los algoritmos que se emplean deben de evitar cuellos de botella y los datos deberán de estar acomodados jerárquicamente para que el sistema sea lo más eficiente posible.
-Seguridad
Debido a los ataques de denegación de servicio, es importante que un sistema distribuido cuente con encriptación para ofrecer una protección adecuada a los recursos que se están compartiendo y mantener secreta información sensible al momento de transmitir un mensaje por medio de la red.
-Extensibilidad:
Los sistemas distribuidos deben de ser extendibles, es decir, integrar componentes escritos por diferentes programadores.
-Transparencia:
Uno de los objetivos es que ciertos aspectos de distribución sean invisibles al programador de aplicaciones, de tal forma que solo se encargue del diseño de su aplicación en particular.

Ejemplos de sistemas distribuidos
-Una fiesta:
En una fiesta están los invitados, en donde el organizador establece una hora en específico para que comience el evento, sin embargo, los invitados pueden llegar más temprano o más tarde (Inexistencia de reloj global) también puede suceder que algunos invitados no puedan llegar ya sea por el tráfico, accidentes, problema de fuerzas mayores, etc. (Fallos independientes). Para verificar que eres un invitado, existe un guardaespaldas, el cual, se encarga de no dejar pasar a un intruso y para que el sitio este seguro (Seguridad) En la fiesta hay distintos tipos de actividades en donde todos pueden convivir armónicamente (Concurrencia).
-Tirar basura de casa:
Cuando el camión de la basura está cerca suena una campana para avisar a la comunidad de que está cerca el camión que recoge la basura (Inexistencia de reloj global). Cada habitante tiene la responsabilidad de tirar su basura o no, lo cual no entorpece al sistema de basura (fallos independientes). Pueden haber más de un camión en distintos sitios y en la misma hora ofreciendo el servicio (Concurrencia) lo cual hace que se agilice el trabajo (Extensibilidad).
-Kermés:
En un kermés hay un director el cual está a cargo de organizar el convivio. Establece una fecha para que se lleve a cabo el evento y se comunica con los participantes para decir que le toca hacer a cada quien (Inexistencia de reloj global). Cualquier participante puede llegar temprano o tarde o se puede ausentar (Tratamiento de fallos y fallos independientes). Se le pedirá una identificación a los participantes para que puedan entrar en intercambiarán su dinero por vales para que puedan comprar cualquier producto del kermés (Seguridad).

Conclusión
En conclusión, un sistema distribuido es aquel que se encarga de organizar y coordinar acciones que debe de seguir un conjunto de computadoras o componentes mediante el uso de mensajes, utilizando una red. Gracias a esto los sistemas distribuidos pueden funcionar sin la necesidad de que estén en un cuarto específico o localmente, debido a que se comunican a través de mensajes en la red. Este tipo de sistema es muy flexible, ya que, como trabajan de forma independiente, si una computadora o componente llega a sufrir un daño o se cae, el sistema sigue funcionando normalmente, sin afectar su rendimiento. Esto se debe a que, aunque los componentes o computadoras que componen el sistema sean independientes, trabajan de manera conjunta. Los sistemas distribuidos han llegado a ser muy eficientes y una prueba de ello son los servicios que ofrece Google, ya que estos funcionan con diversas computadoras que están alrededor del mundo, y si unas de estas caen, no se ven afectados los servicios que esta empresa ofrece. Gracias a los sistemas automatizados podemos gozar de diversos servicios y comunicarnos de una forma rápida y eficiente, sin embargo, esto no quiere decir que sea perfecto. Los sistemas distribuidos deben de mejorar en diversos aspectos para que funcionen de una manera óptima. En este caso, debe de ser heterogénea, es decir, debe de estar constituida en una gran variedad de redes, hardware, sistemas operativos y trabajar en una amplia gama de lenguajes de programación. Los sistemas distribuidos deben de mostrar extensibilidad, dicho de otra manera, es la integración de componentes inscritos por diferentes programadores y también hacer una publicación de las interfaces de sus componentes. También un sistema distribuido debe de ser concurrente porque la presencia de muchos usuarios significa una fuente de peticiones concurrentes a sus recursos. Cada recurso debe de estar listo y diseñado para ser seguro en un entorno concurrente. Un sistema distribuido debe de ofrecer seguridad, los mensajes que se envían deben de ser encriptados, y la información sensible debe mantenerse secreta. Además, este tipo de sistema debe de caracterizarse por la escalabilidad, en otras palabras, los algoritmos que se emplean para obtener datos de los usuarios no deben de generar “cuellos de botella” y la información deberá ser organizada jerárquicamente, esto es con el objetivo de mejorar los tiempos de carga. Y, por último, se requiere de tratar los fallos que existen en el sistema, es decir, se debe de estar al tanto de cualquier proceso, computadora o red que llegara a fallar, para que se pueda diseñar una solución y así tratar apropiadamente los fallos que se llegasen a presentar.

Referencias bibliográficas:
1. Coulouris, G., Dollimore, J. & Kindberg T. (2001). SISTEMAS DISTRIBUIDOS Conceptos y diseño. Madrid: PEARSON EDUCACIÓN.
2. Ramírez P. (Marzo 3, 2017). Desarrollo de Sistemas Distribuidos. Agosto 13, 2017, de SG Buzz Sitio web: https://sg.com.mx/revista/48/desarrollo-sistemas-distribuidos#.WZECRncjHSB

Comentarios

Entradas más populares de este blog

Conclusiones: Soporte de Software, Mantenimiento de Software y Soporte Técnico

  Conclusiones El software es parte indispensable de nuestra vida cotidiana, ya que lo utilizamos en todas partes y es indispensable para todos. Empresas y Organizaciones suelen utilizar software para poder automatizar y mejorar la producción. En la actualidad es habitual que el software de soporte avanzado permita a los técnicos la motorización continua de todos los dispositivos de la organización, la verificación remota del correcto funcionamiento, la obtención de parámetros de funcionamiento que permiten adelantarse a posibles errores así como la posibilidad de tomar el control remoto de ordenadores y servidores sin la necesidad de desplazarse para solucionar el problema. Otro aspecto a tomar en cuenta es el servicio de mantenimiento de software, que es el proceso de mejorar y optimizar el software desplegado, así como también remediar los defectos. Y por ultimo el soporte técnico es un rango de servicios por medio del cual se proporciona asistencia a los usuarios al tener ...

RMI

  Introducción RMI ("Remote Method Invocation") es un mecanismo para invocar/ejecutar procedimientos remotos en computadoras o servidores distribuidos. La gran mayoría de los sistemas empresariales hoy en día requieren de esta funcionalidad , esto se debe tanto a distancias geográficas como a requerimientos de computo, ya que seria iluso pensar que las necesidades de computo de TODA una empresa fueran satisfechas por una sola computadora y/o servidor. A continuacion hablaremos mas a detalle sobre lo que ofrece RMI. . Desarrollo ¿Qué es RMI? RMI ("Remote Method Invocation") es el mecanismo ofrecido en Java que permite a un procedimiento poder ser invocado remotamente. Una de las ventajas al diseñar un procedimiento con RMI es interoperabilidad , ya que RMI forma parte de todo JDK , por ende, cualquier plataforma que tenga acceso a un JDK también tendrá acceso a estos procedimientos. RMI se caracteriza por la facilidad de su uso en la programación por estar...

Seguridad: Kerberos

Seguridad web y aplicaciones Introducción La seguridad e integridad de sistemas dentro de una red puede ser complicada. Puede ocupar el tiempo de varios administradores de sistemas sólo para mantener la pista de cuáles servicios se estan ejecutando en una red y la manera en que estos servicios son usados. Más aún, la autenticación de los usuarios a los servicios de red puede mostrarse peligrosa cuando el método utilizado por el protocolo es inseguro, como se evidencia por la transferencia de contraseñas sin encriptar sobre la red bajo los protocolos FTP y Telnet. Kerberos es una forma eliminar la necesidad deaquellos protocolos que permiten métodos de autenticación inseguros, y de esta forma mejorar la seguridad general de la red. . Desarrollo ¿Qué es Kerberos? El servicio Kerberos es una arquitectura cliente-servidor que proporciona seguridad a las transacciones en las redes. El servicio ofrece una sólida autenticación de usuario y también integridad y privacidad. La auten...