Documente Academic
Documente Profesional
Documente Cultură
DISTRIBUIDA
No siempre es posible esconder todo
Ejemplo: desfase temporal de comunicación entre
puntos muy distantes (delay).
Siempre hay un trade-off entre transparencia y
rendimiento
Ejemplo: Bases de datos replicadas world-wide. Un
caso particular son los servidores DNS que
pueden tomar días en actualizarse, lo cual no se
oculta al usuario.
Usabilidad
Losrecursos y servicios son ofrecidos de
acuerdo a reglas estándares describiendo la
semántica y sintaxis.
Usualmente estas reglas son descritas vía
protocolos o interfaces.
HTTP
Interface Definition Languages (IDL)
Web services
Dos aspectos muy relevantes
Completitud
Neutralidad
Escalabilidad
Se refiere a la capacidad de crecer de un
sistema
La escalabilidad se puede dimensionar desde
tres aspectos
Tamaño: la capacidad de agregar fácilmente más
recursos y usuarios al sistema.
Geográfica: la capacidad de que usuarios y recursos se
encuentren a distancias considerables
Administración: La capacidad de mantener una
administración fácil a pesar del crecimiento
Desafortunadamente los sistemas son
escalables en alguna de las dimensiones
sacrificando rendimiento en las otras
Hardware
En forma general todo sistema
distribuido consiste en múltiple CPUs.
Memoria compartida (multi-procesadores)
Todos los CPU comparten el mismo espacio de
direcciones de memoria
Memoria independiente (multi-computadores)
Cada CPU tiene su propio espacio de direcciones de
memoria
Comunicación vía BUS
Canal compartido
Comunicación vía Switch
Canal exclusivo
Hardware
M M M M M M M
P P P P
P P P P
M M M M M M M
P P P P
P P P P
Sistemas operativos distribuidos
Sistemas operativos de Red
Middle-ware
Sistemas Operativos
Distribuidos
Sistemas Operativos Monoprocesador
Múltiples procesos compartiendo recursos sobre
una máquina, gracias a un microkernel que
implemente una máquina virtual.
Interfaz
Interfaz del No
Sistema
del
operativo No hay
hay intercambio
intercambio directo
directo entre
entre módulos
módulos
Sistema operativo
Aplicación Módulo de Módulo de Módulo de Modo
usuario
De usuario memoria proceso archivos
Modo
kernel
Micro-kernel
Llamada
Llamada de
de Hardware
sistema
sistema
Sistemas Operativos
Distribuidos
Sistemas Operativos Multiprocesador
Múltiples procesadores compartiendo datos a
través de memoria compartida.
Datos deben ser protegidos para garantizar
consistencia.
Múltiples procesadores deben ser transparentes
para la aplicación.
Primitivas de sincronización: semáforos, locks,
monitores.
Sistemas Operativos
Distribuidos
Sistemas Operativos Multicomputador
Múltiples computadores conectados por red.
Cada procesador tiene su propia memoria.
Comunicación únicamente a través de paso de
mensajes.
Sincronización basada en semánticas particulares de
paso de mensajes
Aplicaciones distribuidas
Red
Sistemas Operativos
Distribuidos
Sistemas de Memoria Compartida
Distribuida
Múltiples procesadores, cada uno con su memoria.
Memoria compartida virtual sobre multicomputadores.
Problema de false sharing (memoria de dos procesos
en la misma página).
7 11 1 1
0 2 5 1 3 6 4 memoria
1 1 1 3 5
9 8 0 2 4
CPU 1 CPU 2 CPU 3 CPU 4
False Sharing
Sistemas Operativos
de Red
Dos o más computadores conectados por red.
Comparten los diferentes recursos y la
información del sistema mediante la red.
Novell Netware, Personal Netware,Windows NT
Server, UNIX, etc.
Aplicaciones distribuidas
Servicios Servicios Servicios
de de de
Red del Red del Red del
S.O. S.O. S.O.
Kernel Kernel Kernel
Red
Ejemplo: Antiguos
terminales UNIX
Independencia de uso
de servicios
Middle-Ware
Capa de software que ejecuta sobre el sistema operativo local
de cada computador ofreciendo uno servicios distribuidos.
Abstrae la complejidad y heterogeneidad de los computadores
del sistema
Proporciona una API para la programación y manejo de
aplicaciones distribuidas
Aplicaciones distribuidas
Red
Tabla Comparativa
Item S.O. Distribuido S.O. de Red Middle-Ware
Multi-proc. Multi-comp.
Grado de Muy Alto Alto Bajo Alto
Transparencia
Mismo S.O. Sí Sí No No
Copias del S.O. 1 N N N
Comunicación Memoria Mensajes Archivos Específico al
compartida modelo
Manejo de Global, Global, Por nodo Por nodo
recursos central distribuido
Escalabilidad No Moderado Si Variable
Usabilidad Cerrada Cerrada Abierta Abierta
Organizaciones
típicas
Cliente-Servidor
2 (o más) capas
Arquitecturas Modernas
Cliente-Servidor
Multicapas
Arquitecturas
Modernas
Tecnologías de
Programación
Distribuida
X + Y = 100%
Generalmente Y>X
ARQUITECTURA
CLIENTE SERVIDOR
Servidor(es)
Y% Procesamiento
Clientes inteligentes
X% 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
VENTAJAS
SERVIDOR
Aprovecha mejor el ancho de banda
Aprovecha en mayor medida el hardware
Mayor seguridad y autonomía
Mejor manejo de la concurrencia
Permite 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 de DB
(MySQL)
Servidor DB
Cliente Interbase (IBmanager) (InterBase)
ARQUITECTURA
CLIENTE SERVIDOR
CLIENTE SERVIDOR MULTICAPA (Glosario)
Presentac Almacenamien
ión to
Lógica
Lógica
ARQUITECTURA
CLIENTE SERVIDOR
Presentac Almacenamien
ión to
Lógica
Lógica
ARQUITECTURA
CLIENTE SERVIDOR
CLIENTE SERVIDOR DE 3 CAPAS
(Multicapa)
Agrega una capa intermedia (middle tier)que permite
priorización y gestión de peticiones, gestión de balance,
entre otros.
Buen manejo de concurrencia con miles de usuarios
simultáneos
Protocolos estandarizados permiten gran flexibilidad,
portabilidad y escalabilidad.
Almacenamien
to
Presentac Lógica
ión Lógica
ARQUITECTURA
CLIENTE SERVIDOR
ARQUITECTURA
CLIENTE SERVIDOR
CLIENTE SERVIDOR DE 3 CAPAS
(Multicapa)
Ejemplo: Google Servidor de indexación
Millones de clientes
(5’000.000 por día,
57 por segundo
Servidor de documentos
aprox.)
Servidor de balance
TECNOLOGÍAS
Capitulo 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)
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
07/28/11 By : Ing. Elías Cassal Baldiviezo
Glosario
Un 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
07/28/11
By : Ing. Elías Cassal Baldiviezo