Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Distributed Systems
Resumen
Abstract
Distributed architectures are computer systems where components are in different locations
and communicate through a network by making requests. Models such as client-server, peer-
to-peer, and service-oriented are the most common. Key technologies include CORBA, RMI,
SOAP, and REST API. Important components include terminals, servers, and database
connections. Security is of utmost importance in these architectures. Different models like
batch and action-reaction have advantages and disadvantages.
1
En el panorama actual en este 2024 con respecto de la informática y la tecnología, las
arquitecturas distribuidas se han convertido en un pilar fundamental/importante para el
desarrollo y funcionamiento de numerosos sistemas y aplicaciones. Estos sistemas
informáticos, donde los componentes se encuentran dispersos geográficamente es decir en
diferentes ubicaciones y se comunican a través de las distintas redes.
En este ensayo, quiero abordas en profundidad las arquitecturas distribuidas, desde sus
fundamentos básicos hasta algo más avanzado. Comenzaremos definiendo qué son
exactamente estas arquitecturas y qué las distingue de los sistemas centralizados, para luego
adentrarnos en los diferentes modelos arquitectónicos que suelen utilizarse, tales como cliente-
servidor, peer-to-peer y orientado a servicios.
Posteriormente, examinaremos las tecnologías clave que sustentan estas arquitecturas, como
CORBA, RMI, SOAP y API REST, vistas ya en clases así como los componentes
fundamentales de estos sistemas, incluyendo servidores, terminales, conexión a bases de datos
y la importancia de la seguridad.
Otras definiciones.
“Un sistema distribuido es aquel en el que no puedes trabajar con tu maquina por el
fallo de otra máquina que ni siquiera sabías que existía”-Leslie Lamport.
“Un sistema distribuido es aquel en el que los computadores localizados en una red
comunican y coordinan sus acciones mediante paso de mensajes”-George Coulouris.
2
Dichos sistemas distribuidos están principalmente compuestos por: Terminales, Red,
Aplicación, Servidor, Conexión a BDD, Servicios, Microservicios, Seguridad donde:
• Concurrencia: Permite que los recursos disponibles en una red puedan ser utilizados
simultáneamente por los usuarios y/o agentes que interactúan en la red.
• Carencia de reloj global: Las coordinaciones para la transferencia de mensajes entre los
diferentes componentes para la realización de una tarea, no tienen una temporización
general, está más bien distribuida en los componentes.
3
• Fallos independientes de los componentes: Cada componente del sistema pudiera fallar
de manera independiente, y los demás continuar ejecutando sus acciones.
• Ventajas
o Datos compartidos: Permite que distintos usuarios tengan acceso a una base de
datos o archivo común
• Desventajas
o Software: Gran parte del software para sistemas distribuidos está aún en
desarrollo.
o Tolerancia a fallas
¿Qué es un modelo?
4
modelado y otros medios que ayudan a comprender y diseñar sistemas complejos. Los
modelos permiten a los diseñadores y desarrolladores comunicar ideas, visualizar la
arquitectura del sistema, identificar problemas potenciales y tomar decisiones
informadas durante el proceso de desarrollo y mantenimiento del sistema distribuido.
Generalizando son una serie de pasos a seguir, en la elaboración de un sistema.
5
también introduce desafíos adicionales en términos de gestión, coordinación y
seguridad.
Arquitecturas de Aplicaciones.
Arquitecturas.
• Lotes: procesamiento de Datos – Solo almacena datos.
• Afecta BD: Procesamiento de transacciones – Realiza transacciones y consultas
avanzadas.
• Acción-Reacción: Realiza alguna acción en cada interacción
• Compilación: Procesamiento de lenguajes – Realiza lenguajes de programación.
Cualquier nodo tienen la capacidad de tomar la vocería y el control para ser servidor.
No existe una distinción entre quien es el cliente y quien en el servidor. Esta arquitectura
puede ser descentralizada y semicenralizada.
Ventajas:
o Velocidad en transferencia mayores.
o Contar con un servidor central que indexa los nodos.
o Se encuentra varias fuentes de descarga.
6
Desventajas:
o No cuenta con una administración de red centralizada.
o Fuga de datos.
o Gran consumo de recursos en ocasiones innecesarias.
Características:
• Arquitectura de estándares abiertos.
• Evolucionó la actual programación orientada a objetos a un enfoque de
implementar soluciones.
• Para la composición de aplicaciones usan los estándares de comunicación ya
establecidos.
• Dentro de su desarrollo cuenta con patrones de encapsulación, modularidad y
otras propiedades de la programación orientada a objetos.
Perspectivas:
• El negocio se considera una agrupación de servicios que permiten capturar el
diseño del negocio que necesita la empresa para mostrar a sus clientes.
• La arquitectura cuenta con su propio estilo arquitectónico para dar respuesta a
los servicios que necesite el proveedor y la descripción de los servicios que
presta.
• La implementación. Su programación se basa en normas, herramientas y
métodos actuales como lo son los servicios web.
Beneficios:
• Cumplir con las normas establecidas para todos los procesos de las empresas.
• Reduce considerablemente costos, tiempo de desarrollo y mantenimiento de las
aplicaciones; esto se ve reflejado en la calidad de los servicios y la productividad
de la organización.
• Facilita integrarse con nuevas aplicaciones y con aplicaciones existentes.
• Las aplicaciones desarrolladas son flexibles y seguras, permiten un mejor
manejo en los procesos más críticos del negocio.
Negocio:
• Mayor agilidad.
• Integración de procesos a lo largo del tiempo.
• Tanto socios, proveedores y clientes se ven integrados.
• Los costos de tecnologías de información son visibles y transparentes.
• Se mide efectividad de proceso nuevo o modificado.
Tecnológico:
• Orientado a servicios pocas interacciones entre proveedores y consumidores.
7
• No hay dependencia entre participantes.
• Se usa el servicio sin que se conozcan los detalles de la implementación.
• Reducción de costos de mantenimiento.
Ventajas:
• Un servicio se ofrece dentro o fuera de una organización por cualquier
proveedor, teniendo en cuenta el cumplimiento de estándares.
• El proveedor sube su servicio para que cualquier tipo de usuario puede usarlo.
• Reutilización de servicios.
• Los servicios se pagan por uso y no por provisión.
• Manejan servicios externos.
• Se adaptan a su entorno y a la medida en que cambie el servicio.
Estándares:
• SOAP: estándar que se encarga del intercambio de datos estructurados.
• WSDL: se encarga de la forma en la que se representan las interfaces de los
servicios web.
• UDDI: se encarga de búsquedas que permiten conocer cómo se debe organizar
la información para cuando se necesite un servicio específico.
Componentes y tecnologías
CORBA.
Es una arquitectura que permite la comunicación entre objetos distribuidos en una red.
Su principal función es facilitar la interacción entre objetos en diferentes lenguajes de
programación y plataformas, permitiendo que estos objetos se comuniquen y compartan
funcionalidades de manera transparente. Para usar CORBA, se define la interfaz de los
objetos utilizando el lenguaje de descripción de interfaces (IDL), y luego se genera
código para implementar dicha interfaz en diferentes lenguajes de programación.
CORBA se utiliza principalmente en entornos empresariales para construir sistemas
distribuidos escalables y flexibles.
RMI.
RMI: Es un mecanismo específico para la comunicación entre objetos en Java. Su
principal función es permitir que los objetos Java en diferentes máquinas virtuales se
comuniquen entre sí de manera transparente, como si estuvieran en la misma máquina
virtual. RMI utiliza el concepto de objetos remotos, donde un objeto en una máquina
virtual puede invocar métodos de un objeto en otra máquina virtual. RMI simplifica la
comunicación entre objetos Java distribuidos al proporcionar una interfaz similar a la
llamada de métodos locales.
8
El funcionamiento general es:
Sistema:
Un sistema es un conjunto de elementos interconectados que trabajan juntos para lograr
un objetivo común.
Aplicación:
Son programas de software informáticos diseñados para realizar tareas específicas.
Aplicación web:
Es un programa informático que se ejecuta en un servidor web y se accede a través de
un navegador web
Aplicación móvil:
Es un programa informático diseñado para ser utilizado en un dispositivo móvil.
Sistema web
Es un conjunto de componentes electrónicos y programas que se utilizan para procesar
y almacenar información en línea.
API:
Conjunto de reglas y definiciones que permiten que diferentes aplicaciones se
comuniquen entre sí. Facilitan la integración de servicios y funcionalidades.
API REST:
Es un estilo arquitectónico que utiliza los principios de la web para crear servicios web.
Se basa en operaciones estándar HTTP como GET, POST, PUT y DELETE.
Qué es jQuery:
Biblioteca de JavaScript: jQuery es esencialmente una biblioteca escrita en JavaScript.
Es un conjunto de funciones y métodos predefinidos que los desarrolladores web
pueden utilizar para simplificar tareas comunes.
Cómo funciona:
9
• Selección de elementos: Una de las características clave de jQuery es su capacidad
para seleccionar y manipular elementos HTML en el DOM de manera sencilla.
Utiliza selectores similares a CSS para seleccionar elementos específicos.
• Manipulación del DOM: jQuery facilita la manipulación del DOM. Permite añadir,
eliminar o modificar elementos y atributos de manera fácil y concisa.
AJAX:
(Asynchronous JavaScript and XML) es una técnica de desarrollo web que permite actualizar
partes específicas de una página web sin necesidad de recargar toda la página. La asincronía
implica que las solicitudes al servidor y las respuestas del servidor pueden ocurrir de manera
independiente, lo que permite una experiencia de usuario más fluida y dinámica.
10
• Interactividad: Se utiliza para crear interfaces de usuario más interactivas y receptivas,
ya que las acciones del usuario pueden desencadenar solicitudes al servidor sin
interrumpir la experiencia de navegación.
Cómo funciona:
• Solicitud HTTP asíncrona: JavaScript se utiliza para realizar una solicitud HTTP
asíncrona al servidor. Esto se logra mediante objetos como `XMLHttpRequest` o, más
modernamente, utilizando la API
• Proceso asíncrono: La solicitud al servidor se realiza de manera asíncrona, lo que
significa que el flujo de ejecución del código JavaScript no se bloquea mientras espera
la respuesta del servidor.
• Respuesta del servidor: Cuando el servidor procesa la solicitud, envía una respuesta al
cliente. Esta respuesta generalmente es en formato XML o JSON, pero AJAX no está
limitado a XML y puede manejar otros formatos de datos.
• Manipulación del DOM: Una vez que se recibe la respuesta, el código JavaScript puede
manipular el DOM de la página para actualizar la información mostrada al usuario sin
necesidad de recargar la página completa.
Conclusión
11
___________________________________________________________________________
Referencias
F. García-Carballeira, Ma. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García. (n.d.). Introducción a los
Sistemas Distribuidos.
Atlassian. (n.d.). ¿Qué es un sistema distribuido? Atlassian. Retrieved February 13, 2024, from
https://www.atlassian.com/es/microservices/microservices-architecture/distributed-architecture
Aspectos técnicos – Marco Internacional de Competencias de Protección de Datos Personales para Estudiantes.
(n.d.). Org.mx. Retrieved January 16, 2024, from
https://micrositios.inai.org.mx/marcocompetencias/?page_id=372
Coppola, M. (2022, August 17). Las 3 diferencias entre una página web y un sitio web. Hubspot.es.
https://blog.hubspot.es/website/diferencia-pagina-web-sitio web
¿Cuáles son las diferencias entre página web, sitio web y aplicación web? (n.d.). ..Ed.team. Retrieved January
16, 2024, from https://ed.team/blog/cuales-son las-diferencias-entre-pagina-web-sitio-web-y-aplicacion-web
GitHubber. (n.d.). Creación de una API web con Node.js y Express. Microsoft.com. Retrieved January 16, 2024,
from https://learn.microsoft.com/es es/training/modules/build-web-api-nodejs-express/
Lucena, P. (2023, May 3). Los 3 sistemas operativos más comunes. Maestrías y MBA.
https://www.cesuma.mx/blog/los-3-sistemas-operativos-mas comunes.html
¿Qué es una API REST? (n.d.). Ibm.com. Retrieved January 16, 2024, from https://www.ibm.com/mx-
es/topics/rest-apis
Sistemas de escritura / Babilonia :: lingvo.info. (n.d.). Lingvo.info. Retrieved January 16, 2024, from
https://lingvo.info/es/babylon/writing_systems
(N.d.). Anincubator.com. Retrieved January 16, 2024, from https://anincubator.com/cual-es-la-diferencia-entre-
las-aplicacion-movil-y-las-aplicacion-web
IBM Documentation. (2021, March 4). Ibm.com. https://www.ibm.com/docs/es/rational-soft-
arch/9.6.1?topic=page-asynchronous-javascript-xml-ajax-overview
12