
I.E.S.T.P JULIO CESAR TELLO DESARROLLO DE SISTEMAS DE INFORMACIÓN
Nombre y Apellido:Anthony Oscar Yllanes Romero
Docente:Carla Ortiz
Curso:Aplicaciones con Internet
Ciclo:1
Turno:Nocturno
Año 2025
Tema: Biblioteca issu.com(programacion distribuida)


• La programación distribuida es un concepto que ha ganado cada vez más relevancia en el mundo de la tecnología en los últimos años. Se ha convertido en un pilar fundamental en el diseño y desarrollo de sistemas informáticos de alto rendimiento, permitiendo la creación de aplicaciones y servicios escalables que pueden manejar grandes cantidades de datos y usuarios de manera eficiente. En este artículo, explorarás qué es la programación distribuida y cómo se utiliza en el ámbito de la informática.
● Los sistemas distribuidos son sistemas cuyos componentes están en distintos ordenadores
● Conectados en red
● Se comunican y coordinan a través del paso de mensaje la programación distribuida ofrece varios beneficios, entre los que están:
1. Escalabilidad: Los sistemas distribuidos pueden crecer y adaptarse fácilmente a medida que aumenta la carga de trabajo.
2. Redundancia y tolerancia a fallos: La distribución de datos y tareas mejora la resistencia a fallos, ya que la pérdida de un nodo no impide el funcionamiento del sistema en su conjunto.
Ventajas:
● Deslocalización: Permite conectar rápidamente entre entornos deslocalizados.
● Procesadores más poderosos y a menos costos: Desarrollo de estaciones con más capacidades.
● Satisfacen las necesidades de los usuarios.
Desventajas:
● Complejidad: La programación distribuida es más compleja.
● Sistemas de hardware y software: Requiere hardware y software específicos.
● Seguridad: Puede ser más vulnerable a ataques

La programación distribuida se refiere al desarrollo de sistemas en los que múltiples nodos o computadoras trabajan juntos para resolver problemas o ejecutar tareas. Existen varios tipos de programación distribuida, dependiendo de cómo se estructuran y comunican los componentes. Aquí te detallo los principales tipos:
1. Programación basada en cliente-servidor
● Un modelo clásico donde los clientes solicitan servicios y los servidores los proporcionan.
● Ejemplo: Aplicaciones web, donde el navegador (cliente) interactúa con un servidor web.
2. Programación basada en pares (Peer-to-Peer, P2P)
● Todos los nodos tienen roles equivalentes, actuando como clientes y servidores al mismo tiempo.
● Ejemplo: Redes de intercambio de archivos como BitTorrent.
3. Programación basada en eventos o mensajes
● Los nodos se comunican mediante el envío y recepción de mensajes o eventos.
● Ejemplo: Sistemas de mensajería como RabbitMQ o Kafka.
4. Programación basada en objetos distribuidos
● Los objetos se distribuyen entre nodos y se comunican como si estuvieran en el mismo sistema.
● Ejemplo: CORBA, RMI (Java Remote Method Invocation).
5. Programación basada en servicios (SOA y microservicios)
● Los sistemas se dividen en servicios independientes que interactúan a través de interfaces bien definidas.
● Ejemplo: Arquitecturas de microservicios en aplicaciones modernas.
6. Programación paralela distribuida
● Se enfoca en dividir tareas computacionales entre múltiples nodos para ejecutarlas simultáneamente.
● Ejemplo: Frameworks como MPI (Message Passing Interface) o Hadoop.
7. Programación basada en agentes
● Los nodos actúan como agentes autónomos que toman decisiones y colaboran entre sí.
● Ejemplo: Sistemas multiagente en inteligencia artificial.