12/04/2023
PROGRAMACIÓN DISTRIBUIDA
By : Ing. Elías Cassal Baldiviezo
ObjetivosEntender los conceptos básicos de
sistemas distribuidos y sus problemáticas.Conocer diferentes sistemas distribuidos
de mayor uso.Conocer los conceptos teóricos sobre
Programación Distribuida sus Ventajas y Desventajas.
El alumno debe alcanzar un conocimiento teórico de las distintas Tecnologías de la Programación en Red.
12/04/2023 By : Ing. Elías Cassal Baldiviezo
CAPITULO I: Programación
distribuida. Introducción a Sistemas Distribuidos
Definiciones Sistema Distribuido La Programación Distribuida Como Paradigma Ejemplos Ventajas de distribuir sistemas Desventajas de distribuir sistemas
Implicaciones y Desafíos de distribuir sistemas Compartir Recursos Transparencia Usabilidad (abierto) Escalabilidad
Tecnologías para la programación distribuida.
BibliografíaA.Tanenbaum, M.Van Steen.
Distributed Systems, principles and paradigms. Ed. Prentice Hall, 2002.
G.Coulouris, J.Dillmore, T.Kindberg. Distributed Systems - Concept and Design. Addison-Wesley, Third Edition, 2001.
12/04/2023 By : Ing. Elías Cassal Baldiviezo
Webgrafiahttp://dmi.uib.es/~bbuades/sistdistr/sld00
1.htmhttp://dis.um.es/~jbermudez/dad/transpar
encias/T1%20-%20Introduccion.pdfhttp://www.infor.uva.es/~cllamas/sd/temas
PDF/Capitulo1.pdf
Introducción
Definiciones“Un Sistema Distribuido es una colección de
computadores independientes que aparecen ante los usuarios como un único sistema coherente.” (Andrew S. Tanenbaum)
“Un sistema en el cual tanto los componentes de hardware y software de un computador conectados en red se comunican y coordinan mediante paso de mensajes.” (G.Coulouris, J.Dollimore, T.Kindberg)
“Aquel que le impide a uno continuar su trabajo cuando falla un computador del cual uno nunca ha oído hablar.” (L.Lamport)
12/04/2023 By : Ing. Elías Cassal Baldiviezo
Sistema distribuidoUn “Sistema Distribuido” se define
como una Colección de Computadores autónomos conectados por una red, y con el Software Distribuido adecuado para que el sistema sea visto por los usuarios como una única entidad capaz de proporcionar facilidades de computación.
12/04/2023 By : Ing. Elías Cassal Baldiviezo
Programación Distribuidacomo Paradigma
Paradigma de programación enfocado en desarrollar sistemas distribuidos,
abiertos, escalables, transparentes y tolerantes a fallos.
Resultado natural del uso de las computadoras y las redes.
Casi cualquier lenguaje de programación que tenga acceso al máximo al hardware del sistema puede manejar la programación distribuida,
La programación distribuida típicamente cae en alguna de las varias arquitecturas básicas o arquitecturas: cliente-servidor, 3-tier, n-tier, objetos distribuidos, entre otras.
Ejemplos de sistemas distribuidos
Red de estaciones de trabajo en una Universidad Espacio cuenta es visible desde todos los
computadores
Workflow de manejo automático de órdenes Usado por múltiples usuarios, el flujo de las órdenes
es transparente para ellos
Ejemplos de sistemas distribuidos
World Wide Web (WWW) Aparece antes los usuarios como un repositorio
gigantesco de documentos
Factura electrónica en Chile Muchos contribuyentes y compradores Un ente centralizado (SII) Back-office distribuido
Ventajas de distribuir sistemasEconomía Aumento en capacidad de procesamiento.Aplicaciones inherentemente distribuidas.Capacidad de crecimiento.Fiabilidad y disponibilidad.Compartir recursos y datos.
Desventajas de distribuir sistemas
Aumento de la complejidad Costos de administración
Fallas más frecuentes Red, Latencia, pérdida de mensajes
Interoperabilidad Falta de estándares únicos
Seguridad
12/04/2023 By : Ing. Elías Cassal Baldiviezo
IMPLICACIONES Y DESAFIOS
Implicancias de distribuir los sistemas
Concurrencia. Recursos compartidos. Acceso concurrente. Sincronización.
Sin tiempo global. Cada computador tiene su propio reloj local. Coordinación.
Fallas independientes. Posibilidad permanente de fallas en cada
componente. Detección de fallas y tolerancia.
Desafíos de los Sistemas Distribuidos
Compartir Recursos
Transparencia
Usabilidad (abierto)
Escalabilidad
12/04/2023 By : Ing. Elías Cassal Baldiviezo
Tecnologías de Programación Distribuida
ARQUITECTURA CLIENTE SERVIDOR
Es una arquitectura basada en el principio clásico de divide y vencerás, donde el procesamiento se fracciona entre dos entidades fundamentales denominadas cliente y servidor.
CLIENTEX% Proceso
SERVIDORY% Proceso
X + Y = 100%Generalmente Y>X
ARQUITECTURA CLIENTE SERVIDOR
Clientes inteligentesX% Procesamiento
Servidor(es)Y% Procesamiento
X + Y = 100%
ARQUITECTURA CLIENTE SERVIDOR
Surge en la década de los 80 como respuesta a la evolución del hardware en términos de redes, planteando un modelo versátil, modular basado en mensajes que permite incrementar la flexibilidad, la escalabilidad y la ínter-operación de los sistemas.
ARQUITECTURA CLIENTE SERVIDOR
El cliente se define como el PROCESO que requiere un servicio en particular
El servidor se define como el PROCESO que provee dicho servicio
Debido a que clientes y servidores son conceptos a nivel software y no hardware, una misma máquina puede actuar como cliente y servidor al mismo tiempo.
ARQUITECTURA CLIENTE SERVIDORVENTAJAS
Aprovecha mejor el ancho de bandaAprovecha en mayor medida el hardwareMayor seguridad y autonomíaMejor manejo de la concurrenciaPermite que los clientes trabajen GUI
mientras el servidor se centra en los procesos centrales
ARQUITECTURA CLIENTE SERVIDOR
Algunos ejemplos: Servidor Web (Apache, IIS) Cliente Web (IExplorer, Google CRHOME, Mozilla)
Cliente WEB
Servidor WEB
Protocolo
ARQUITECTURA CLIENTE SERVIDOR
Servidor FTP (SFTP) Cliente FTP (Cute FTP, WS FTP)
Cliente FTP
Servidor FTP
Protocolo
ARQUITECTURA CLIENTE SERVIDOR
Servidor IRC (IRC Server) Cliente IRC (Mirc, Pirch)
Cliente IRC
Servidor IRC
Protocolo
ARQUITECTURA CLIENTE SERVIDOR
Servidor de Bases de datos (Interbase, Oracle, SyBase, MySql, SQL Server, Postgress) Cliente de Base de Datos (IBManager,IBConsole, propia aplicación)
Cliente Interbase
Servidor InterBase
Protocolo
ARQUITECTURA CLIENTE SERVIDOR
Interacción de clientes y servidores
Servidor DB (InterBase)
Servidor WEB (Apache)
Servidor de Aplicaciones (PHP)
Clien
tes
WEB
Servidor de DB(MySQL)
Cliente Interbase (IBmanager)
Cliente Win32 (SkyCell)
ARQUITECTURA CLIENTE SERVIDOR
CLIENTE SERVIDOR DE 3 CAPAS (Multicapa)
Ejemplo: GoogleMillones de clientes (5’000.000 por día, 57 por segundo aprox.)
Servidor de indexación
Servidor de documentos
Servidor de balance
12/04/2023 By : Ing. Elías Cassal Baldiviezo
TECNOLOGÍASCapitulo I- Arquitecturas de componentes. Server-Side./ Server-side
component architectures 2.1- Necesidad de arquitecturas de componentes server-side 2.2- Soluciones para arquitecturas de componentes server-side.
Herramientas 2.3- Java: un lenguaje ideal para las arquitecturas de componentes 2.4- Arquitecturas multicapa 2.5- Soluciones para arquitecturas server-side 2.6- J2EE
Capítulo 3- Servicios Middleware en J2EE 3.1- RMI (Remote Method Invocation) 3.2- JNDI (Java Naming and Diretory Interface) 3.3- Enterprise Java Beans 3.3-1. Introducción /Tipos 3.3-2. Session Beans 3.3-3. Entity Beans 3.4- Seguridad en EJB(con JBOSS)
12/04/2023 By : Ing. Elías Cassal Baldiviezo
TECNOLOGÍASCapítulo 4- Client-Server CORBA Style 4.1- Objectos distribuidos CORBA 4.2- OMG's OMA (Object Management Architecture) 4.3- Corba 2.0 4.4- CORBA services 4.5- CORBA facilities Capítulo 5- CORBA and C++ : Advanced Corba Programming with C++ 5.1- IOR, references and proxies. 5.2- OMG IDL 5.3- Client Side (proxies, referencias, paso de parámetros, etc.) 5.4- Server Side (implementación de servants) 5.5- Corba Services 5.5-1. Naming 5.5-2. Event 5.5-3. Balancer 5.5-4. IMR
Capítulo 6- .NET 6.1- Introducción 6.2- Arquitectura
12/04/2023 By : Ing. Elías Cassal Baldiviezo
GlosarioUn paradigma de programación
representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro, sino que cada uno tiene sus ventajas y sus inconvenientes. También hay situaciones donde un paradigma resulta más apropiado que otro. Imperativo o por procedimientos: Declarativo
Funcional Lógico
Orientado a objetos
Top Related