INSTITUTO POLITÉCNICO
NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
UNIDAD CULHUACAN
Ingeniería en Computación
Sistemas Distribuidos
UNIDAD 1: Arquitectura de un sistema
distribuido
Profesora: Salas Jiménez Verónica
Alumno: Roque Jiménez Gabriel Augusto
Grupo: 8CM12
CDMX, a 29 de agosto del 2021
ÍNDICE
UNIDAD 1: ARQUITECTURA DE UN SISTEMA DISTRIBUIDO 3
1.1 INTRODUCCIÓN 3
1.2 CARACTERÍSTICAS DE UN SISTEMA DISTRIBUIDO 3
1.2.1 HETEROGENEIDAD 3
1.2.2 EXTENSIBILIDAD 3
1.2.3 SEGURIDAD 4
1.2.4 ESCALABILIDAD 4
1.2.5 CONTROL DE ERRORES 4
1.2.6 CONCURRENCIA 5
1.2.7 TRANSPARENCIA 5
1.3 MODELOS ARQUITECTÓNICOS 5
1.4 MODELOS FUNDAMENTALES 5
1.5 RECURSOS DE COMUNICACIÓN 6
1.5.1 PROTOCOLOS TCP/IP 6
1.5.2 SERVICIOS Y PUERTOS 6
1.5.3 PROCESOS Y DEMONIOS 7
BIBLIOGRAFÍA 7
UNIDAD 1: ARQUITECTURA DE UN SISTEMA DISTRIBUIDO
1.1 INTRODUCCIÓN
Un sistema distribuido es aquel en el que los componentes hardware y software, localizados en computadores
unidos mediante red, comunican y coordinan sus acciones sólo mediante pasos de mensajes. Estos pueden
están conectados mediante una red que pueden estar separados espacialmente por cualquier distancia.
Concurrencia: En una red de computadores, la ejecución de programas concurrentes es la norma. La
capacidad del sistema para manejar recursos compartidos se puede incrementar añadiendo más recursos a
la red, la coordinación de programas que comparten recursos y se ejecutan de forma concurrente es también
un tema importante y recurrente.
Inexistencia de reloj global: Cuando los programas necesitan cooperar coordina sus acciones mediante el
intercambio de mensajes. La coordinación estrecha depende a menudo de una idea compartida del instante
en el que ocurren las acciones de los programas, pero resulta que hay limite la presión con lo que los
computadores en una red pueden sincronizar sus relojes.
Fallos independientes: todos los sistemas informáticos pueden fallar y los diseñadores de sistemas tienen la
posibilidad de planificar las consecuencias de posibles fallos. Los fallos de la red producen el aislamiento de
los computadores conectados a él, pero eso no significa que detengan su ejecución. De hecho, los programas
que se ejecutan en ellos pueden no ser capaces de detectar cuando la red ha fallado o está excesivamente
lenta.
La motivación para construir y utilizar sistemas distribuidos tiene su origen en un deseo de compartir recursos,
que caracteriza bien el rango de cosas que pueden ser compartidas de forma útil en un sistema de
computadoras conectadas en red.
1.2 CARACTERÍSTICAS DE UN SISTEMA DISTRIBUIDO
1.2.1 HETEROGENEIDAD
Definimos la heterogeneidad como variedad y diferencia, que se aplica a todos los siguientes elementos.
• Redes.
• Hardware de computadores.
• Sistemas operativos.
• Lenguajes de programación.
• Implementaciones de diferentes desarrolladores.
Como ejemplo, internet permite que los usuarios accedan a servicios y ejecuten aplicaciones sobre un
conjunto heterogéneo de redes y computadores, es decir, sobre diferentes redes y computadores.
1.2.2 EXTENSIBILIDAD
Es la característica que determina si el sistema puede ser extendido o reimplementado en diversos aspectos.
Se determina en primer lugar por el grado en el cual se puedan añadir diversos servicios de compartición de
recursos y ponerlos a disposición para el uso de una variedad de programas cliente. No es posible obtener
extensibilidad a menos que la especificación y la documentación de las interfaces de software clave de los
componentes de un sistema estén disponibles para desarrolladores de software, es decir, que las claves
estén publicadas. Sin embargo, la publicación de interfaces sólo es el punto de arranque de la adición y
extensión de servicios en un sistema distribuido.
1.2.3 SEGURIDAD
La seguridad de los recursos de información tiene 3 componentes:
• Confidencialidad (protección contra el descubrimiento por individuos no autorizados).
• Integridad (protección conta la alteración o corrupción).
• Disponibilidad (protección contra interferencia con los procedimientos de acceso a los recursos).
La seguridad no sólo es cuestión de ocultar los contenidos de los mensajes, también consiste en conocer
con certeza la identidad del usuario u otro agente en nombre del cual se envía el mensaje. Otro reto consiste
en identificar a un usuario remoto u otro agente correctamente. Ambos desafíos pueden lograrse a través de
técnicas de inscripción desarrolladas al efecto, sin embargo, aún existen 2 desafíos de seguridad que no han
sido complementados completamente:
• Ataques de denegación de servicio: Problemas de seguridad que ocurre cuando un usuario desea
obstaculizar un servicio por alguna razón.
• Seguridad del código móvil: El código móvil necesita ser tratado con cuidado. Suponga que alguien
recibe un programa ejecutable adherido a un correo electrónico, los posibles efectos al ejecutar un
programa son impredecibles
1.2.4 ESCALABILIDAD
Los sistemas distribuidos operan efectiva y eficientemente en muchas escalas diferentes desde pequeñas
intranets hasta internet. Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un
incremento significativo en el número de recursos y en número de usuarios. El diseño de los sistemas
distribuidos escalables presenta los siguientes retos:
• Control del coste de los recursos físicos
• Control de las pérdidas de prestaciones
• Prevención de desbordamiento de recursos software
• evitación de cuellos de botella de prestaciones
Idealmente, el software de sistema y aplicación no tiene por qué cambiar cuando la escala del sistema
incremente.
1.2.5 CONTROL DE ERRORES
Todos los sistemas computacionales ocasionalmente fallan, cuando aparecen estos fallos en el hardware o
software los programas pueden producir resultados incorrectos o pudieran parar antes de haber
completado sus tareas. Los fallos en un sistema distribuido son parciales, es decir, algunos componentes
fallan mientras otros siguen funcionando correctamente, por lo que el tratamiento de fallos es
particularmente complicado. Algunas técnicas para tratar los fallos son:
• Detección de fallos.
• enmascaramiento de fallos.
• Tolerancia de fallos.
• Recuperación frente a fallos.
• Redundancia.
1.2.6 CONCURRENCIA
Todos los servicios como las aplicaciones proporcionan recursos que pueden compartirse entre los clientes
en un sistema distribuido, por lo tanto, existe una posibilidad de que varios clientes intenten acceder a un
recurso compartido a la vez.
El proceso que administra un recurso compartido puede atender las peticiones de cliente 1 por 1 en cada
momento, pero esta aproximación limita el ritmo de producción del sistema, por eso los servicios y
aplicaciones permiten usualmente procesar concurrentemente múltiples peticiones de los clientes. Para que
un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus
datos permanezcan consistentes, esto puede lograrse mediante el empleo de técnicas conocidas como
semáforos, que se usan en la mayoría de los sistemas operativos.
1.2.7 TRANSPARENCIA
Se define transparencia como la ocultación al usuario y el programador de aplicaciones de la separación de
los componentes en un sistema distribuido, de forma que se perciba el sistema como un todo más que como
una colección de componentes independientes.
de acuerdo con el manual de referencia ANSA se identifican 8 formas de transparencia:
• Transparencia de acceso.
• Transparencia de ubicación.
• Transparencia de concurrencia.
• Transparencias de replicación.
• Transparencia frente a fallos.
• Transparencia de movilidad.
• Transparencia de prestaciones.
• Transparencia al escalado.
Las 2 más importantes son la transparencia de acceso y la transparencia de ubicación su presencia o
ausencia afecta principalmente a la utilización de recursos distribuidos.
1.3 MODELOS ARQUITECTÓNICOS
Un modelo arquitectónico de un sistema distribuido trata sobre la colocación de sus partes y las relaciones
entre ellas. Algunos ejemplos pueden ser el modelo cliente-servidor y el modelo de procesos <<de igual a
igual>> (peer to peer). El modelo cliente-servidor admite varias modificaciones debido a:
• La partición de datos o la replicación en servidores cooperativos
• El uso de caché para los datos en clientes y servidores proxy
• El uso de código y agentes móviles
• Los requisitos para añadir o eliminar dispositivos móviles de forma conveniente.
1.4 MODELOS FUNDAMENTALES
Los modelos fundamentales están implicados en una descripción más formal de las propiedades que son
comunes en todos los modelos arquitectónicos.
No hay un tiempo global en un sistema distribuido, por lo que los relojes en los diferentes computadores no
tienen necesariamente el mismo tiempo en una que en otra. Toda comunicación entre procesos se realiza
por medio de mensajes. Estas cuestiones se consideran en tres modelos:
• El modelo de interacción trata de las prestaciones y de la dificultad de poner límites temporales en un
sistema distribuido, por ejemplo, para la entrega de mensajes.
• El modelo de fallos intenta dar una especificación precisa de los fallos que se pueden producir en los
procesos y en los canales de comunicación. Define comunicación fiable y procesos correctos.
• El modelo de seguridad discute sobre las posibles amenazas para los procesos y los canales de
comunicación. Introduce el concepto de canal seguro, que lo es frente a dichas amenazas.
1.5 RECURSOS DE COMUNICACIÓN
1.5.1 PROTOCOLOS TCP/IP
Los protocolos son conjuntos de normas para formatos de mensaje y procedimientos que permiten a las
máquinas y los programas de aplicación intercambiar información. Cada máquina implicada en la
comunicación debe seguir estas normas para que el sistema principal de recepción pueda interpretar el
mensaje. El conjunto de protocolos TCP/IP puede interpretarse en términos de capas (o niveles).
Esta figura muestra las capas del protocolo TCP/IP. Empezando por la parte superior son: capa de aplicación,
capa de transporte, capa de red, capa de interfaz de red y hardware.
1.5.2 SERVICIOS Y PUERTOS
Existen muchos servicios relacionados con el funcionamiento de la red y sus aplicaciones, tales como,
servicios de control remoto, cortafuegos, antivirus, servidores web, de FTP, P2P… Además, todos los
sistemas conectados en una red (y éstos entre sí, en Internet) tienen una dirección IP que los identifica, ya
sean ordenadores cliente o servidores.
Aparte, cada sistema operativo posee unos puertos lógicos. Esto significa que, al contrario que los puertos
físicos (USB, Firewire, DVI, HDMI, etc.) sólo existen virtualmente para el ordenador. Los sistemas operativos
cuentan con más de 65.000 puertos virtuales disponibles para abrir conexiones, y se las ceden a los
programas para que vuelquen sus datos en la red. Los programas los solicitan y el sistema operativo los
gestiona para poder utilizarlos y establecer una conexión lógica. Esto permite que puedan comunicarse con
otro ordenador "punto a punto". Finalmente, toda comunicación entre dos dispositivos en Internet se traduce
en un flujo de datos entre dos puertos virtuales abiertos por alguna aplicación.
• Los puertos del 0 al 1023 son los "puertos conocidos" o reservados. En términos generales, están
reservados para procesos del sistema (daemons) o programas ejecutados por usuarios privilegiados.
Sin embargo, un administrador de red puede conectar servicios con puertos de su elección.
• Los puertos del 1024 al 49151 son los "puertos registrados".
• Los puertos del 49152 al 65535 son los "puertos dinámicos y/o privados".
1.5.3 PROCESOS Y DEMONIOS
Un demonio o servicio es un programa que se ejecuta en segundo plano, fuera del control interactivo de los
usuarios del sistema ya que carecen de interfaz con estos.
El sistema generalmente inicia los demonios durante el arranque, siendo las funciones más comunes de
estos las de ofrecer servicios a otros programas, ya sea respondiendo a las peticiones que llegan a través
de la red o atendiendo a procesos que se ejecutan en el mismo sistema, así como responder ante cierta
actividad del hardware.
BIBLIOGRAFÍA
Coulouris George. (2001). SISTEMAS DISTRIBUIDOS
CONCEPTOS Y DISEÑO. Inglaterra. ADDISON WESLEY.
Tercera edición. 1-27
[Link]
(2019). Página 2.
[Link]
[Link]
enidos/website_31_gestin_de_servicios_y_puertos.html