Arquitectura Sistemas Distribuidos.docx

50
SISTEMAS DISTRIBUIDOS ARQUITECTURA SISTEMAS DISTRIBUIDOS PRESENTADO POR: JUAN CAMILO PEÑA PRESENTADO A: ING. FERLEY MEDINA CORPORACION UNIVERSITARIA DEL HUILA – CORHUILA INGENIERIA DE SISTEMAS 9011111074

Transcript of Arquitectura Sistemas Distribuidos.docx

Page 1: Arquitectura Sistemas Distribuidos.docx

SISTEMAS DISTRIBUIDOS

ARQUITECTURA SISTEMAS DISTRIBUIDOS

PRESENTADO POR:

JUAN CAMILO PEÑA

PRESENTADO A:

ING. FERLEY MEDINA

CORPORACION UNIVERSITARIA DEL HUILA – CORHUILA

INGENIERIA DE SISTEMAS

9011111074

NEIVA, HUILA – 23/02/15

Page 2: Arquitectura Sistemas Distribuidos.docx

Tabla De Contenido1. Arquitectura SD..........................................................................................................................5

1.1 Arquitectura Centralizada..................................................................................................5

1.1.1 Ventajas......................................................................................................................5

1.1.2 Desventaja..................................................................................................................5

1.2 Arquitectura Descentralizada.............................................................................................6

1.2.1 Distribución Vectorial.......................................................................................................6

1.2.2 Distribución Horizontal...............................................................................................6

1.2 Arquitectura Hibrida...........................................................................................................6

1.2.2 Ventajas......................................................................................................................7

1.2.3 Desventajas.................................................................................................................7

1.3 Topologías de los SD.................................................................................................................7

1.3.1 Centralizada.......................................................................................................................7

1.3.2 En anillo...........................................................................................................................8

1.3.3 Jerárquica.........................................................................................................................9

1.3.4 Descentralizada................................................................................................................9

1.3.5 Centralizada y en anillo..................................................................................................10

1.3.6 Centralizada y Descentralizada.......................................................................................10

2. Arquitectura Cliente – Servidor....................................................................................................11

2.1 Categoría de Servidores..........................................................................................................11

2.2 Modelo...................................................................................................................................12

2.2.1 Servicios proporcionados por múltiples servidores........................................................12

2.2.2 Servidores Proxy............................................................................................................13

2.2.3 Derivados........................................................................................................................13

2.2.4 Cloud Computing............................................................................................................14

2.2.5 Resumen..........................................................................................................................15

2.3 Capas......................................................................................................................................16

2.3.1 N capas............................................................................................................................16

2.3.2 Cliente Servidor 2 Capas.................................................................................................16

2.3.3 Cliente Servidor 3 Capas.................................................................................................17

2.4 Características........................................................................................................................18

2.5 Ventajas..................................................................................................................................19

Page 3: Arquitectura Sistemas Distribuidos.docx

2.6 Desventajas............................................................................................................................19

3. Arquitectura Peer to Peer............................................................................................................20

3.1 Características........................................................................................................................20

3.2 Clasificación...........................................................................................................................21

3.2.1 Centralizadas...................................................................................................................21

3.2.2 Descentralizadas..............................................................................................................21

3.2.3 hibridas, SemiCentralizada..............................................................................................22

3.3 Estructuración........................................................................................................................22

3.3.1 Estructuradas...................................................................................................................22

3.3.2 No estructurado..............................................................................................................23

3.4 Ventajas..................................................................................................................................23

3.5 Desventajas............................................................................................................................23

4. Arquitectura Multiprocesamiento.................................................................................................24

4.1 Características........................................................................................................................24

4.2 Ventajas..................................................................................................................................24

4.3 Desventajas............................................................................................................................25

5. Arquitectura Capas.......................................................................................................................25

5.1 Capas Lógicas (Layers)..........................................................................................................25

5.1.1 Ventajas...........................................................................................................................26

5.1.2 Desventajas.....................................................................................................................26

5.2 Capas Físicas o Niveles (Tiers)..............................................................................................27

5.3 Dos capas...............................................................................................................................28

5.4 Tres capas.........................................................................................................................28

5.5 Cuatro capas.....................................................................................................................28

6. Arquitectura Memoria.................................................................................................................28

6.1 Características de la memoria.................................................................................................29

6.1.1 Volatilidad.......................................................................................................................29

6.1.2 Tiempo de acceso............................................................................................................29

6.1.3 Capacidad........................................................................................................................29

6.2 Tipo De Memoria...................................................................................................................30

6.2.1 Memoria RAM................................................................................................................30

6.2.2 Memoria ROM................................................................................................................31

Page 4: Arquitectura Sistemas Distribuidos.docx

6.2.3 Memoria Cache...............................................................................................................34

6.3 Jerarquía de la memoria.........................................................................................................35

6.4 Gestión Memoria...................................................................................................................36

6.4.1 Paginadores Externos......................................................................................................36

6.4.2 Memoria Compartida Distribuida (DSM)........................................................................37

Contenido Figuras

Fig. 1 Topología Centralizada............................................................................................................8Fig. 2 Topología en anillo..................................................................................................................9Fig. 3 Topología Jerárquica..............................................................................................................10Fig. 4 Topología Descentralizada.....................................................................................................10Fig. 5 Topología Centralizada y en anillo........................................................................................11Fig. 6 Topología C y D.....................................................................................................................11Fig. 7 Red Cliente Servidor..............................................................................................................12Fig. 8 Ejemplo SMS.........................................................................................................................13Fig. 9 Ejemplo Servidor Proxy.........................................................................................................14Fig. 10 Ejemplo Cloud Computing..................................................................................................15Fig. 11 modelos C/L y C/P...............................................................................................................17Fig. 12 Modelo 3 capas....................................................................................................................18Fig. 13 Modelo C/S 3 CAPAS, Sistema Bancario............................................................................18Fig. 14 Red P2P...............................................................................................................................21Fig. 15 P2P Estructurado..................................................................................................................23Fig. 16 P2P No Estructurado............................................................................................................23Fig. 17 Ejemplo Diseño 3 capas lógicas...........................................................................................26Fig. 18 Ejemplo Capas Físicas.........................................................................................................28Fig. 19 Memoria PROM D23L28C..................................................................................................33Fig. 20 Memoria EPROM 32KB......................................................................................................33Fig. 21 Memoria USB. El chip de la izquierda es la Memoria Flash y el controladores el de la derecha.............................................................................................................................................35Fig. 22 Jerarquía de la memoria.......................................................................................................36Fig. 23 Ejemplo Paginadores Externos.............................................................................................37

Page 5: Arquitectura Sistemas Distribuidos.docx

ARQUITECTURA SISTEMAS DISTRIBUIDOS

1. Arquitectura SDIntroducción:

- Todos los grandes sistemas informáticos son en la actualidad sistemas distribuidos.

- Es un sistema en el que el procesamiento de información se distribuye sobre varias computadoras en vez de estar confinado en una máquina.

- Los sistemas distribuidos tiene en común con la ingeniería de cualquier otro software, pero existen cosas específicas que se deben tener en cuenta cuando se diseña este tipo de sistemas.

1.1 Arquitectura Centralizada

En las arquitecturas centralizadas es la relación entre los componentes que sigue un patrón muy característico, en el que hay una jerarquía definida de manera tal que ciertos componentes requieren información o servicios que otros ofrecen.

Hay tipo de aplicaciones, que concentran todas las lógicas funcionales del software (presentación, negocio y acceso a datos) en un mismo componente se les denominan aplicaciones monolíticas.

1.1.1 Ventajas

- La principal ventaja de este modelo es que se dispone y se procesa toda la información en la misma máquina física, con lo que el software del sistema es mucho más sencillo y fácil de gestionar

1.1.2 Desventaja

- Su poca capacidad de crecimiento o escalabilidad

- Equipo con más potencia y capacidad (Ramo, 2011)

Page 6: Arquitectura Sistemas Distribuidos.docx

1.2 Arquitectura Descentralizada

No existe un único nodo central sino un centro colectivo de conectores. La caída de uno de los nodos centralizadores conlleva la desconexión de uno o más nodos del conjunto de la red mientras que la caída del clúster centralizador produciría necesariamente la ruptura y práctica desaparición de la red. (Tanenbaum & Steen, Sistemas Distribuidos principios yparadigmas, 2008)

1.2.1 Distribución Vectorial

- Colocación lógica de los componentes en diferentes maquinas

- Relacionado con el término de la fragmentación vertical en bases de datos.

1.2.2 Distribución Horizontal

- Un cliente o servidor pueden dividirse físicamente en partes lógicas con su conjunto de datos propio.

- Sistemas de punto a punto: todos los procesos son iguales, mucha de las interacciones son simétricas y buscan organizarse en redes sobrepuestas.

1.2 Arquitectura Hibrida

Combinan los sistemas centralizados y descentralizados, la inteligencia del sistema se localiza en diferentes nodos o módulos del control y estos tiene acceso a un grupo de elementos de red, los sistemas distribuidos requieren un protocolo de comunicaciones para las acciones coordinadas de los dispositivos

- Proporcionan una integración entre la estación de trabajo y la pila de procesadores para combinar la ventaja de las arquitecturas anteriores.

- El trabajo interactivo se lleva a cabo en las estaciones de trabajo, mientras que los procesos no interactivos se ejecutan en el arreglo de microprocesadores.

- Esta solución es más cara pero mayor eficiente.

Page 7: Arquitectura Sistemas Distribuidos.docx

1.2.2 Ventajas.

- Seguridad en el funcionamiento y configuración.

- Posibilidad de rediseño de la red.

- Cableado reducido.

- Se puede ampliar mucho más.

1.2.3 Desventajas

- Requieren alta programación

(Tanenbaum & Steen, Sistemas Distribuidos principios y paradigmas, 2008)

1.3 Topologías de los SD

Se define como una familia de comunicación usada por las computadoras que conforman una red para intercambiar datos. En otras palabras se puede definirse como "conjunto de nodos interconectados". Un nodo es el punto en el que una curva se intercepta a sí misma. Lo que un nodo es concretamente, depende del tipo de redes a que nos refiramos, que vamos a ver a continuación:

1.3.1 Centralizada

Es la que estamos más habituados a ver, un nodo servidor contiene la información y los nodos clientes obtienen la información de este servidor. Es un sistema simple en administración y consistencia de datos, pero es muy vulnerable a fallos. Fig. 1

Page 8: Arquitectura Sistemas Distribuidos.docx

Fig. 1 Topología Centralizada

Fuente: http://bernal.pro/informatica/apuntesdeinformatica/finish/6-apuntes-de-informatica/63-arquitectura-de-sistemas-distribuidos

1.3.2 En anillo

Se utiliza cuando un servidor se satura porque tiene muchas peticiones, y consiste en tener un conjunto de servidores conectados entre sí de manera que se coordinen para tener un estado común, balanceando la carga y obteniendo un buen resultado frente a fallos. Fig. 2

Fig. 2 Topología en anillo

Fuente: http://bernal.pro/informatica/apuntesdeinformatica/finish/6-apuntes-de-informatica/63-arquitectura-de-sistemas-distribuidos

Page 9: Arquitectura Sistemas Distribuidos.docx

1.3.3 Jerárquica

Un conjunto de nodos tiene un nodo superior que les ofrece la información que éstos necesitan, si un nodo no tiene la información, la reclama a su inmediato superior. Son sistemas muy escalables y bastante resistentes a fallos, pero con un punto débil: el nodo raíz. Fig. 3

Fig. 3 Topología Jerárquica

Fuente: http://bernal.pro/informatica/apuntesdeinformatica/finish/6-apuntes-de-informatica/63-arquitectura-de-sistemas-distribuidos

1.3.4 Descentralizada

Cualquier nodo se conecta a cualquier otro, como podemos ver en la cuarta figura de la imagen lateral. Son sistemas muy extensibles y muy tolerantes a fallos, pero son difíciles de administrar y suelen ser bastante inseguros. Fig. 4

Fig. 4 Topología Descentralizada

Page 10: Arquitectura Sistemas Distribuidos.docx

Fuente: http://bernal.pro/informatica/apuntesdeinformatica/finish/6-apuntes-de-informatica/63-arquitectura-de-sistemas-distribuidos

1.3.5 Centralizada y en anillo

Es una topología híbrida, y se comporta como un sistema centralizado, pero el nodo servidor no es un único ordenador, sino que está formado por un conjunto de ellos, así el usuario ve un único punto desconexión pero con las ventajas que ofrece tener un conjunto de ordenadores que responden a las peticiones de los clientes. Es una combinación simple pero potente. Fig. 5

Fig. 5 Topología Centralizada y en anillo

Fuente: http://bernal.pro/informatica/apuntesdeinformatica/finish/6-apuntes-de-informatica/63-arquitectura-de-sistemas-distribuidos

1.3.6 Centralizada y Descentralizada

Este tipo de topología intenta que cualquier nodo puede relacionarse con cualquier otro, que es la principal desventaja delas topologías descentralizadas. Así con cierta centralización se aporta sencillez a la hora de conseguir coherencia dentro del sistema, aunque sigue siendo difícil de administrar y bastante inseguro. Fig. 6

Page 11: Arquitectura Sistemas Distribuidos.docx

Fig. 6 Topología C y D

Fuente: http://bernal.pro/informatica/apuntesdeinformatica/finish/6-apuntes-de-informatica/63-arquitectura-de-sistemas-distribuidos

2. Arquitectura Cliente – Servidor

En el modelo cliente-servidor hay dos tipos de procesos, los clientes son procesos que hacen peticiones de servicio y los servidores proveen esos servicios.

Hay ejemplos híbridos, como por ejemplo un buscador de Internet, que es servidor de la petición que nosotros podemos hacerle a través de su página web, pero a su vez, es cliente de otros servidores de Internet buscando la información para nosotros. Fig. 7 (Bernal, 2012)

Fig. 7 Red Cliente Servidor

Page 12: Arquitectura Sistemas Distribuidos.docx

2.1 Categoría de Servidores

1. Servidores de archivos: archivos para clientes.2. Servidores de base de datos: almacena gran cantidad de datos estructurados.3. Servidores de software de grupo: organiza el trabajo de un grupo.4. Servidores de web: guardan y proporcionan paginas HTML.5. Servidores de aplicaciones: Dedica a una única aplicación.6. Servidores de impresión: solicitudes de impresión de los clientes.7. Servidores de objetos: almacenar objetos que puedan ser activados a distancia.8. Servidores de correo: envió y recepción de un grupo de correo de usuarios.

(Gomariz, 2010)

2.2 Modelo

2.2.1 Servicios proporcionados por múltiples servidores.

- Replicación para aumentar prestaciones y disponibilidad

- Muchos servicios web redirigen a varios servidores replicados Fig. 8

Ejemplo: Google (google data center)

Fig. 8 Ejemplo SMS

Fuente: http://vis.usal.es/rodrigo/documentos/aso/teoria/2-modelos.pdf

Page 13: Arquitectura Sistemas Distribuidos.docx

2.2.2 Servidores Proxy

Aumentan la disponibilidad y prestaciones.

- Usan cachés con los datos más recientemente solicitados por los clientes

También pueden utilizarse por motivos de seguridad. Fig. 9

Fig. 9 Ejemplo Servidor Proxy

Fuente: http://vis.usal.es/rodrigo/documentos/aso/teoria/2-modelos.pdf

2.2.3 Derivados

Código Móvil:

El código de un programa en el servidor es transferido al cliente y es ejecutado localmente.

Page 14: Arquitectura Sistemas Distribuidos.docx

Agente Móvil:

Un programa en ejecución (códigos y datos) se traslada o copia de una computadora a otro en la red, realizando una determinada tarea

- Instalación y mantenimiento del software

- Comparación de precios de productos

- Calculo intensivo mediante varios ordenadores

Programa gusano: concepto similar al de agente móvil, pero generalmente con connotaciones negativas.

- Virus, spam, phising, entre otros.

Computadores en red

- La mayoría de los programas ejecutados por el cliente se descargan de la red, incluido el sistema operativo

- Las aplicaciones se lanzan localmente pero los archivos están almacenados en un servidor de archivos

Clientes ligeros

- Como un computador en red, pero las aplicaciones se lanzan en modo remoto Ejemplo: sistema de ventanas X11 de UNIX

- Muy útil para cálculos pesados, mediante el uso de potentes servidores (o grupos de servidores –clusters-) de cálculo

2.2.4 Cloud Computing

Evolución cliente ligero:

El cliente no pierde su autonomía (sistema operativo, aplicaciones locales) pero puede acceder a servicios y archivos remotos, usualmente a través del navegador.

Page 15: Arquitectura Sistemas Distribuidos.docx

Ejemplos:

- Amazon web services: computación en granjas de servidores. - Web Desktops: almacenamiento y gestión de archivos, sincronización. (Google

Docs, DropBox, icloud, etc.) Fig. 10

Fig. 10 Ejemplo Cloud Computing

Fuente: http:/vis.usal.es/rodrigo/documentos/aso/teoria/2-modelos.pdf

2.2.5 Resumen

(Santamaria, 2015)

Page 16: Arquitectura Sistemas Distribuidos.docx

2.3 Capas

2.3.1 N capas

Una ventaja separa el proceso, esto ocurre para mejorar el balance de la carga en los diversos servidores y una desventaja pones más carga en la red y es más difícil probar el SW que en la de dos capas.

2.3.2 Cliente Servidor 2 Capas

La arquitectura en 2 niveles se utiliza para describir los sistemas cliente/servidor en donde el cliente solicita recursos y el servidor responde directamente a la solicitud, con sus propios recursos. Esto significa que el servidor no requiere otra aplicación para proporcionar parte del servicio.

Hay dos tipos:

1. Modelo Cliente ligero (thin client):Todo el procesamiento de las aplicaciones y la gestión de los datos se llevan a cabo en el servidor. El cliente es el responsable de la capa del software.

2. Modelo Cliente Rico (fat client): El servidor solamente es el responsable de la gestión de los datos. El software del cliente implementa la lógica de la aplicación y las interacciones con el usuario de los sistemas.

Ejemplo: arquitectura sistemas bancarios (cajeros automáticos), cada cajeros es un cliente y el servidor un mainframe que procesa la cuenta del cliente en la base de datos. Fig. 11 (Colombo & Haddad, 2012)

Page 17: Arquitectura Sistemas Distribuidos.docx

Fig. 11 modelos C/L y C/P

Fuente: http://es.slideshare.net/jpbthames/arquitectura-de-sistemas-distribuidos

2.3.3 Cliente Servidor 3 Capas

La presentación, el procesamiento de la aplicación y la gestión de los datos son procesos lógicamente separados que se ejecutan sobre procesadores diferentes. Fig. 12

Fig. 12 Modelo 3 capas

Fuente: http://es.slideshare.net/jpbthames/arquitectura-de-sistemas-distribuidos

Ejemplo: un sistema bancario Fig. 13

- La base de datos de clientes del banco proporciona servicio de gestión de datos

- Un servidor web proporciona los servicios de aplicación tales como facilidades para transferir efectivo, etc.

- La propia computador del usuario con un navegador de internet es el cliente

Page 18: Arquitectura Sistemas Distribuidos.docx

Fig. 13 Modelo C/S 3 CAPAS, Sistema Bancario

Fuente: http://es.slideshare.net/jpbthames/arquitectura-de-sistemas-distribuidos

El uso masivo del término arquitectura en 3 niveles también denota las siguientes arquitecturas:

- Aplicación compartida entre un cliente, un software intermedio y un servidor empresarial

- Aplicación compartida entre un cliente, un servidor de aplicaciones y un servidor de base de datos empresarial. (Bustos, 2011)

2.4 Características

- Servicios: Facilidad procesos que se ejecutan en diferentes maquinas. Los procesos servidores, proveen los servicios, los clientes los consumen.

- Recursos Compartidos: Los servidores puede ser invocados concurrentemente por lo clientes, y unas de sus funciones es vigilar el acceso a recursos compartidos que son gestionados por el propio servidor.

- Protocolos asimétricos: Un servidor puede atender a muchos clientes. El cliente conoce el servidor que invoca. El servidor no necesita conocer el cliente que atiende.

- Independencia Ubicación: Se utilizan servicios de localización definidos a nivel de la plataforma para que los clientes encuentren a los servidores.

- Compatibilidad: Los mecanismo de interacción son independientemente de las plataformas.

- Escalabilidad: se divide en dos:Escalado vertical: Los sistemas pueden crecer el número clientes y servidores.Escalado horizontal: Permite agregar más estaciones de trabajo activas sin afectar el rendimiento.

Page 19: Arquitectura Sistemas Distribuidos.docx

- Integridad: La información es administrada por el servidor de forma unificada, dando lugar a un mantenimiento más sencillo y seguro.

- Los clientes corresponden a procesos activos en cuanto a que son éstos los que hacen peticiones de servicios a los servidores. El Servidor tienen un carácter pasivo ya que esperan las peticiones de los clientes. (leal, leal, & medina, 2011)

2.5 Ventajas

- Los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema.

- Escalabilidad: Pueden aumentar la capacidad cliente y servidores por separado. Cualquier elemento puede ser aumentado o pueden añadir nuevos nodos a la red.

- Al estar distribuida las funciones entre varios ordenadores independientes, su mantenimiento va hacer más fácil, tiene la posibilidad de reparar, reemplazar o actualizar un servidor, y sus clientes no se verán afectados por ese cambio.

- Existen tecnologías, suficientemente desarrolladas para asegurar la seguridad de las transacciones, la simpatía de la interfaz y la facilidad de empleo.

2.6 Desventajas

- El mantenimiento de los sistemas es más difícil, ya que tocaría que ir por partes, al hardware y software de diferentes proveedores para diagnosticar las fallas.

- El desempeño ya que puede presentarse problemas en la congestión en la red, dificultad de tráfico de datos, etc.

- Seguridad: Deben hacer verificaciones en los clientes y en el servidor.

- Tener estrategias para el manejo de errores y para mantener la consistencia de los datos.

- Si el número de clientes simultáneos es elevado, el servidor puede saturarse. Esto sucede con menor frecuencia en las redes P2P.

Page 20: Arquitectura Sistemas Distribuidos.docx

- Frente a fallas del lado del servidor, el servicio queda paralizado para los clientes. Algo que no sucede en una red P2P.

(leal, leal, & medina, 2011)

3. Arquitectura Peer to Peer

Es una arquitectura para la comunicación entre aplicaciones que permite a individuos comunicarse y compartir información con otros individuos sin necesidad de un servidor central que facilite la comunicación. Sino una serie de nodos que se comportan como iguales entre sí. Es decir, actúan simultáneamente como clientes y servidores respecto a los demás nodos de la red. También se utiliza el término “P2P” como sinónimo de “intercambio de archivos”, ya que éste es uno de los usos más populares de dicha tecnología. Fig. 14 (lado, s.f.)

Fig. 14 Red P2P

3.1 Características

1. Descentralización: Por definición son descentralizadas y todos los nodos son iguales. Por tanto ningún nodo es imprescindible para el funcionamiento de la red.

2. Escalabilidad: Entre más nodos estén contactado a una red P2P, mejor será su funcionamiento. Así cuando los nodos llegan y comparten sus propios recursos, los recursos totales del sistema aumentan.

Page 21: Arquitectura Sistemas Distribuidos.docx

3. Robustez: En caso de haber fallos en la réplica excesiva de los datos hacia múltiples destinos, permitiendo a los peers encontrar la información si hacer petición a ningún servidor centralizado.

4. Distribución de costes entre los usuarios: Se comparten o donan recursos a cambio de recursos.

5. Anonimato: Es deseable que en estas redes quede anónimo el autor de un contenido, el editor, el lector, el servidor que lo alberga y la petición para encontrarlo, siempre que así lo necesiten los usuarios.

6. Seguridad: Es una de las características deseables delas redes P2P menos implementada. Los objetivos de un P2P seguro serían identificar y evitar los nodos maliciosos, evitar el contenido infectado, evitar el espionaje de las comunicaciones entre nodos, creación de grupos seguros de nodos dentro de la red, protección de los recursos de la red. (Perez, 2010)

3.2 Clasificación

3.2.1 Centralizadas

Estas redes dependen de un servidor central que administra el funcionamiento.

Ejemplo: Napster y Audiogalaxy.

3.2.2 Descentralizadas

No depende de un equipo específico, cada nodo tiene información y esta se comparte.

Ejemplo: Freenet, Gnutella.

Page 22: Arquitectura Sistemas Distribuidos.docx

3.2.3 hibridas, SemiCentralizada

Existe un servidor central del que administra los recursos de banda ancha, enrutamientos y comunicación entre nodos pero sin saber la identidad de cada nodo y sin almacenar información alguna, solo actúa de coordinador. El resto de los nodos almacena la información, mejorando de esta forma la escalabilidad de la red.

Ejemplo: BitTorrent, eDonkey y Direct Connect.

3.3 Estructuración

La red de sobrecapa del P2P consiste en todos los usuarios que participan como nodos de red. Hay enlaces entre dos nodos cualesquiera que se conozcan: es decir, si un usuario participante conoce la localización de otro usuario en la red del P2P, entonces hay un borde dirigido del nodo anterior al último nodo en la red de sobrecapa. Basándonos en cómo los nodos en la red de sobrecapa se enlazan el uno al otro.

Se clasifican en Estructuradas y No estructuradas.

3.3.1 Estructuradas

Existen categorías de nodos que permiten un control sobre la estructura de la red. Permiten que cada usuario sea responsable de una parte específica del contenido en la red. Estas redes utilizan funciones de hash distribuido y asignan valores a cada contenido y a cada usuario en la red. Fig. 15

Ejemplo: BitTorrent

Fig. 15 P2P Estructurado

Fuente: http://tesis.ula.ve/postgrado/tde_busca/arquivo.php?codArquivo=1201

Page 23: Arquitectura Sistemas Distribuidos.docx

3.3.2 No estructurado

Las conexiones y la estructura general son arbitraria. Tales redes pueden construirse muy fácilmente cuando un usuario que desea unirse a la red puede copiar enlaces existentes de otro nodo y después formar sus propios enlaces en un plazo determinado. Fig. 16

Ejemplo: Gnutella, KaZaA, Napster

Fig. 16 P2P No Estructurado

Fuente: http://tesis.ula.ve/postgrado/tde_busca/arquivo.php?codArquivo=1201 (Perez, 2010)

3.4 Ventajas

- Es descentralizado , cada usuario puede ser cliente y servidor a la vez, libre de compartir todo lo que el considere

- Costos reducidos

- Tolerancia a fallos: Dado que la información está distribuida entre muchos nodos, responde bien ante caídas de algunos nodos.

- Escalabilidad: Un nodo con pocos recursos (CPU, memoria, ancho de banda) puede publicar contenido descargable por una gran cantidad de clientes, dado que una descarga utiliza recursos de muchos nodos.

- Al añadir un nodo red, no pasa nada con los otros nodos, es decir, no es necesario reestructurar la red, al añadir nuevos nodos.

- Es anónimo, ya que no requiere registro previo ante nadie.

3.5 Desventajas

- El sistemas no está centralizado y esto dificulta la administración

- Falta de seguridad: Perdida de datos, Peticiones ignoradas, obtención datos corruptos, etc.

Page 24: Arquitectura Sistemas Distribuidos.docx

- Ningún eslabón en la red es fiable

- Puede que usuario cometa un error, lo cual perjudica a los usuarios que están haciendo uso de él. (Perez, 2010)

4. Arquitectura Multiprocesamiento

La técnica de multiprocesamiento consiste en hacer funcionar varios procesadores en forma paralela para obtener un poder de cálculo mayor que el obtenido al usar un procesador de alta tecnología o al aumentar la disponibilidad del sistema (en el caso de fallas del procesador).

Las siglas SMP (multiprocesamiento simétrico o multiprocesador simétrico) hacen referencia a la arquitectura en la que todos los procesadores acceden a la misma memoria compartida. (Gequito, 2010)

4.1 Características

- Mayor Capacidad de procesamiento, rendimiento

- Eficiencia

- Fiabilidad

- Modelos

Diseño del software de la arquitectura multiprocesador

4.2 Ventajas

- Reside en la operación llamada cambio de contexto. Consiste en quitar un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.

- Uso de componentes disponibles en grandes cantidades

- Las computadoras paralelas son inherentemente escalables permitiendo actualizarlas para adecuarse a la necesidad.

Page 25: Arquitectura Sistemas Distribuidos.docx

- Los hilos que se ejecutan comparten ciertos recursos, como el espacio del mensaje, lo cual permite que el diseño de una aplicación lleve a cabo distintas funciones simultáneamente.

4.3 Desventajas

- Limitante física: Que limitan la velocidad máxima de un procesador independientemente del factor económico.

- Barreras físicas infranqueables, tales como la velocidad de la luz, efectos cuánticos al reducir el tamaño delos elementos de los procesadores, y problemas causados por fenómenos eléctricos a pequeñas escalas restringen la capacidad máxima de un sistema multiprocesador. (Gequito, 2010)

5. Arquitectura Capas

Su objetivo primordial es la separación de las capas de presentación, capa de negocio y la capa de datos. Las arquitecturas en capas que pueden existir, son las capas lógicas y físicas.

5.1 Capas Lógicas (Layers)

Una clásica aplicación Web está los típicos proyectos de “Presentación”, “Negocio” y “Datos”, los que vendrían a ser capas Lógicas.

Hacer una separación en capas es que cada una de las mismas cumpla con un rol y tenga responsabilidades bien definidas. Ejemplo si tengo una capa de NEGOCIO, esta debería ocuparse de todo lo relacionado a la lógica del negocio de la aplicación y no, por ejemplo, de lo relacionado a la presentación de datos del usuario. Fig. 17

Page 26: Arquitectura Sistemas Distribuidos.docx

Fig. 17 Ejemplo Diseño 3 capas lógicas

Fuente: http://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas#mediaviewer/File:Tres_capas.PNG

- La capa de la Presentación: Sobre los aspectos gráficos de la aplicación, es donde se realiza la interacción con del usuario con el sistema. Acá es donde se puede mostrar mensajes de alerta, realizar las validaciones de controles, por ejemplo si se llenó un campo de texto, etc.

- Negocio: Esta capa reúne todos los aspectos del software que tienen que automatizan o apoyan los procesos de negocio que llevan a cabo los usuarios. Es donde se ejecutan todas las reglas de negocio.

- Datos: Esta capa reúne todos los aspectos del software que tienen que ver con el manejo de los datos.

5.1.1 Ventajas

- Reutilización de capas - Facilita la estandarización - Dependencias se limitan a intra-capa - Contención de cambios a una o pocas capas

5.1.2 Desventajas

- A veces no se logra la contención del cambio y se requiere una cascada de cambios en varias capas

- Pérdida de eficiencia

Page 27: Arquitectura Sistemas Distribuidos.docx

- Trabajo innecesario por parte de capas más internas o redundante entre varias capas- Dificultad de diseñar correctamente la granularidad de las capas

5.2 Capas Físicas o Niveles (Tiers)

Las capas lógicas se pueden encontrar dentro de una capa física. Con lo cual, el Web Server podría estar en una capa física (una PC, por ejemplo) y la Base de Datos en otra. Cada capa física puede tener N capas lógicas.

Ejemplos de Capas Físicas

- Cliente liviano (Thin Client): La carga computacional se hace en el Server.- Cliente pesado (Fat Client): La carga computacional se hace en el Cliente.- Cliente inteligente (Smart Client): Obtiene beneficios del Cliente liviano y el Cliente

pesado. Fig. 18

Fig. 18 Ejemplo Capas Físicas

Fuente: http://www.practicasdesoftware.com.ar/2010/12/introduccion-a-arquitectura-en-capas/#.VQCxHeEjaJd

Page 28: Arquitectura Sistemas Distribuidos.docx

Existen tres propuestas de arquitecturas de capas para Sistemas de Información, donde las capas a veces reciben el nombre de niveles (en Inglés tiers)

- Arquitectura de dos capas

- Arquitectura de tres capas

- Arquitectura de cuatro capas

5.3 Dos capas

En la actualidad muchos sistemas de información están basados en arquitecturas de dos capas, denominadas

- Nivel de aplicación

- Nivel de la base de datos

5.4 Tres capas

- Aplicación

- Dominio de la aplicación

- Repositorio

5.5 Cuatro capas

Los desarrollos más recientes empiezan a experimentar con una capa adicional

- Presentación

- Aplicación

- Dominio de la aplicación

- Repositorio

6. Arquitectura Memoria

La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos). Sin una memoria de la que los procesadores leyeran o escribieran la información, no habría ordenadores digitales de programa almacenad. La

Page 29: Arquitectura Sistemas Distribuidos.docx

unidad de almacenamiento es el bit (binary element) aunque normalmente la consideramos estructurada en bytes (8 bits).

6.1 Características de la memoria

6.1.1 Volatilidad

La información almacenada en una memoria volátil es siempre y cuando corra el riesgo de verse alterada en caso de que se produzcan algún fallo de suministro de energía eléctrica y si no son volátiles es la que su información de cualquier fallo en la parte eléctrica permanece inalterada.

Ejemplo: La RAM Y ROM SON volátiles por su sensibilidad.

6.1.2 Tiempo de acceso

Es el tiempo que transcurre desde el instante en que se lanza la operación de lectura en la memoria y el instante en que se dispone de la primera información buscada.

El tiempo que se solicita a la memoria para poder ejecutar cualquier operación especifica.

6.1.3 Capacidad

Numero de informaciones que puede contener una memoria (RAM Y ROM).

La capacidad de memoria se mide en múltiplos de byte (8 bits).

A mayor capacidad, mayor es el rendimiento. (Aylagas, 2008)

Page 30: Arquitectura Sistemas Distribuidos.docx

6.2 Tipo De Memoria

6.2.1 Memoria RAM

La memoria de acceso aleatorio (Random-Access Memory, RAM)

Es la memoria donde se almacenan los datos (programas) con los que estamos trabajando en ese momento, es decir si trabajo con el word, pues el programa (todas las instrucciones de funcionamiento del word) estará entero en la memoria RAM.

Se denominan “de acceso aleatorio” porque el procesador accede a la información que esta en la memoria en cualquier punto sin tener que acceder a la información anterior y posterior.

Cuando la aplicaciones se ejecutan, lo primero que deber ser cargadas en memoria RAM. El procesador efectúa accesos a dicha memoria para cargar instrucciones y enviar o recoger datos. (Rodriguez, 2008)

7.2.1.1 Tipos De RAM

1. SRAM (Static Random Access Memory; memoria estática de acceso aleatorio)RAM estática

Mantiene su contenido mientras está alimentadaAlta Velocidad de acceso y bajo consumoEs utilizada para la memoria cache y para servidores

2. DRAM (Dynamic Random Access Memory; memoria dinámica de acceso aleatorio) RAM Dinámica

Su información se pierde al leerla, para evitarlo hay que restaurar la información contenida en sus celdas. Un problema es que se olvida de los datos que recibe casi tan rápido como se le proporcionan ,por lo que debe ser constantemente refrescada cientos de veces por segundos para que las cargas se mantengan. (Rodriguez, 2008)

Page 31: Arquitectura Sistemas Distribuidos.docx

Es utilizada como memoria principal, portátiles y todos los equipos diferentes a los servidoresSE DIVIDE EN

2.2 DRAM Asincrónica: (Asynchronous Dynamic Random Access Memory, memoria de acceso aleatorio dinámica asincrónica) no le importa el reloj sistema.

2.3 SDRAM Sincrónica: (Synchronous Dynamic Random-Access Memory, memoria de acceso aleatorio dinámica sincrónica. Está coordinado con el reloj sistema.

2.3.1 SDR SDRAM (Single Data Rate Synchronous Dynamic Random-Access Memory, SDRAM de tasa de datos simple)

2.3.2 DDR SDRAM (Double Data Rate Synchronous Dynamic Random-Access Memory, SDRAM de tasa de datos doble)

2.3.3 DDR2 SDRAM (Double Data Rate type two SDRAM, SDRAM de tasa de datos doble de tipo dos)

2.3.4 DDR3 SDRAM (Double Data Rate type three SDRAM, SDRAM de tasa de datos doble de tipo tres)

2.3.5 DDR4 SDRAM (Double Data Rate type four SDRAM, SDRAM de tasa de datos doble de tipo cuatro) (Wikipedia, 2015)

6.2.2 Memoria ROM

Es una memoria de solo lectura. Solo se puede leer la información que contiene, no se puede modificar.

Guarda las instrucciones de arranque y el funcionamiento coordinado de la computadora.

No son volátiles, pero se pueden deteriorar a causa de campos magnéticos.

La comunicación con el procesador se realiza a través de los buses de direcciones y datos. (Wikipedia, Wikipedia, 2015)

Page 32: Arquitectura Sistemas Distribuidos.docx

6.2.2.1 Tipos ROM

1. PROM (programmable read-only Memory; memoria de solo lectura programable)

Son memorias de solo lectura, no vienen programada desde la fábrica, sino que el propio usuario el que graba, permanentemente, con medios especiales la información que más le interesa. Fig. 19

Fig. 19 Memoria PROM D23L28C

Fuente: http://commons.wikimedia.org/wiki/File:D23128C_PROM.jpg

2. EPROM (Erasable Programmable Read-Only Memory; Memoria Borrable y Programable Solo de Lectura)

No son volátil.

Esta memoria puede ser reutilizable, ya que la información que se almacena permanece, permanentemente grabada, se pude borrar y volver a grabar mediante procesos especiales. Solo se puede borrar mediante la exposición a una fuerte luz ultravioleta. Para hacer el borrado y la reprogramación se debe retirar el chip de la computadora. Fig. 20

Page 33: Arquitectura Sistemas Distribuidos.docx

Fig. 20 Memoria EPROM 32KB

Fuente: http://commons.wikimedia.org/wiki/File:ST_Microelectronics_M27C256B_%282006%29.jpg

3. EEPROM (Electrically Erasable Programmable Read-Only Memory; Memoria Borrable y Programable Eléctricamente Solo de Lectura.)

Puede ser programada, borrada y reprogramada eléctricamente, y no es necesario la utilización de rayos ultravioletas. Son memorias no volátiles.

Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y reprogramada entre 100.000 y un millón de veces. (Rodriguez, 2008)

4. MEMORIA FLASH

Deriva de la memoria EEPROM.

Permite que múltiples posiciones de memoria sean escritas o borradas en una misma operación de programación mediante impulsos eléctricos. Frente a los anteriores que solo permite escribir o borrar una única celda cada vez.

Page 34: Arquitectura Sistemas Distribuidos.docx

Permite funcionar a velocidades muy superiores cuando los sistemas emplean lectura y escritura en diferentes puntos de esta memoria al mismo tiempo. Fig. 21 (Wikipedia, Wikipedia, 2015)

Fig. 21 Memoria USB. El chip de la izquierda es la Memoria Flash y el controladores el de la derecha

6.2.3 Memoria Cache

Es un sistema especial de almacenamiento de alta velocidad.

Hay dos tipos de cache computadores personales:

- Memoria Cache

- Cache de Disco

La RAM del ordenador (que es el tipo DRAM) no es lo suficientemente rápida para almacenar y transmitir los datos que el microprocesador necesita.

Para esto es una memoria rápida, que está situada entre el microprocesador y la RAM. Este es la memoria cache, que es del tipo SRAM y es más rápida que la memoria RAM (DRAM).

La memoria cache es invisible para el sistema operativo.

Page 35: Arquitectura Sistemas Distribuidos.docx

Es una memoria especial de alta velocidad diseñada para acelerar el proceso de las instrucciones de la memoria de la CPU. La CPU puede obtener instrucciones y los datos ubicados en la memoria cache mucho más rápido que las instrucciones y datos almacenados en la memoria principal.

6.3 Jerarquía de la memoria

Se establece en base a los tiempos de acceso y capacidad disponible.

- Registros: Estos son los registros internos del procesador. Es el tipo de memoria más rápida y costosa.

- Cache: Es un intermediario usado para controlar los movimientos de datos entre los registros del procesador y la memoria principal. Como la memoria principal es más lenta que los registros y evita que el procesador pierda ciclos de ejecución valiosos

- Memoria principal: También conocida como la memoria RAM y es la memoria interna principal de computador. Es usada para cargar programas y realizar operaciones. Es de tipo volátil.

- Cache de disco: Es un intermediario en los procesos que usan los medios magnéticos. Como la memoria magnética es más lenta, esta estrategia permite mayor eficiencia del uso de la memoria principal y el procesador.

- Medios magnéticos y ópticos: Memoria de tipo permanente usada para archivar la información valiosa y los programas instalados en el computador incluyendo el sistema operativo. Fig. 22 (computacion, 2014)

Page 36: Arquitectura Sistemas Distribuidos.docx

Fig. 22 Jerarquía de la memoria

Fuente: Juan Camilo Peña Tocora

6.4 Gestión Memoria

Una de las principales características de un sistema distribuido es la ausencia de una memoria común. Sin embargo, hay propuestas que intentan mejorar este esquema. Estas propuestas son

- Utilización de paginadores externos- Memoria compartida distribuida

6.4.1 Paginadores Externos

La utilización de paginadores externos se basa en almacenar el espacio de intercambio (swap) en servidores de archivos distribuidos y en el empleo de paginadores externos, que son procesos que se encargan de tratar los fallos de página que ocurren en una computadora.

El empleo de paginadores externos permite disponer de un sistema con una gran cantidad de espacio para paginación, liberando a las computadoras de reservar espacio para la paginación. Fig. 23 (gomez, parra, & orozco, 2015)

Page 37: Arquitectura Sistemas Distribuidos.docx

Fig. 23 Ejemplo Paginadores Externos

Fuente: http://sistemas-distribuidos-ist-ucpr.wikispaces.com/GESTION+DE+MEMORIA

6.4.2 Memoria Compartida Distribuida (DSM)

En un multiprocesador, dos o más CP'U comparten una memoria principal común. Cualquier proceso, en cualquier procesador, puede leer o escribir cualquier palabra en la memoria compartida, sólo moviendo datos desde o hacia la localidad deseada. Por el contrario, en una multicomputadora, cada CPU tiene su memoria particular. Nada se comparte.

Representan la creación hibrida de dos tipos de computación paralelos: la memoria distribuida en sistemas multiprocesador y los sistemas distribuidos. Ellos proveen la abstracción de memoria compartida en sistemas con memorias distribuidas físicamente y consecuentemente combinan las mejores características de ambos enfoques.

6.4.2.1 Memoria Compartida Basada en Páginas

El esquema de DSM propone un espacio de direcciones de memoria virtual que integra la memoria de todas las computadoras del sistema, y su uso se realiza mediante paginación. Las páginas quedan restringidas a estar necesariamente en un único nodo.

Cuando un programa intenta acceder a una posición virtual de memoria, se comprueba si esa página se encuentra de forma local.

Page 38: Arquitectura Sistemas Distribuidos.docx

Si no se encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al resto de nodos.

6.4.2.2 Memoria Compartida Distribuida Variables

Consiste en compartir sólo ciertas variables y estructuras de datos necesarias para más de un proceso. Ahora el problema pasa a ser la forma de mantener una base de datos distribuida, en potencia duplicada, consistente en las variables compartidas.

Deja la misma variable y trata no cambiar mucho, para dejar el mismo espacio en memoria.

6.4.2.3 Memoria Compartida Basada En Objetos

Una alternativa al uso de páginas es tomar el objeto como base de la transferencia de memoria. Aunque el control de la memoria resulta más complejo, el resultado es al mismo tiempo modular y flexible, y la sincronización y el acceso se pueden integrar limpiamente. Otra de las restricciones de este modelo es que todos los accesos a los objetos compartidos han de realizarse mediante llamadas a los métodos de los objetos, con lo que no se admiten programas no modulares y se consideran incompatibles.

6.4.2.4 Modelos De Consistencia

Cualquier lectura a una localidad de memoria, regresa el valor guardado por la operación de escritura más reciente en dicha localidad.

- Estricta

El resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesos fueran ejecutadas en algún orden secuencial, y las operaciones de cada proceso individual aparece en esta secuencia en el orden especificado por su programa.

Page 39: Arquitectura Sistemas Distribuidos.docx

- Secuencial

Las escrituras potencialmente relacionadas de forma causal son vistas por todos los procesos en el mismo orden. Las escrituras concurrentes pueden ser vistas en un orden diferente en máquinas diferentes.

- Causal

Las escrituras realizadas por un proceso son recibidas por los otros procesos en el orden en que son realizadas, pero las escrituras de procesos diferentes pueden verse en un orden diferente por procesos diferentes.

- PRAM

Para cada posición de memoria existe un acuerdo local acerca del orden de las escrituras en ella. Las escrituras en diferentes posiciones no tienen que ser vistas en el mismo orden por los diferentes procesos.

- Del Procesador

Los accesos a las variables de sincronización son secuencialmente consistentes.

No se permite realizar un acceso a una variable de sincronización hasta que las escrituras anteriores hayan terminado en todas partes.

No se permite realizar un acceso a los datos (L/E) hasta realizar todos los accesos anteriores a las variables de sincronización.

- Débil

Antes de realizar un acceso ordinario a una variable compartida, deben terminar con éxito todas las adquisiciones anteriores del proceso en cuestión.

Antes de permitir la realización de una liberación, deben terminar las (L/E) anteriores del proceso.

Los accesos de adquisición y liberación deben ser consistentes con el procesador (no se pide la consistencia secuencial).

- De Liberación

- De Entrada (Tanenbaum, 1996)