Sunteți pe pagina 1din 30

UV Maestra en Ingeniera Aplicada

Elctrica e Informtica
Tarea #5 Sistemas Distribuidos
Uriel Heriberto Lomel Dorantes
urielomeli@gmail.com
Boca del Ro, Ver. Abril 16, 2015
Realizar una comparativa entre los modelos existentes: Bajo qu licencia fueron escritos, en qu lenguaje, protocolo utilizado, para que casos son recomendados, son
software libre, caractersticas principales, ejemplos, etc.
Bases de
Tipo de
Escrit Licenci Protocol Softwar
Datos
Base de
Caractersticas
Cuando usar
Ejemplos
o en
a
o
e
NoSQL
Datos
A
En constante desarrollo
G
P
Altamente escalable
L
C
U
Retiene algunas propiedades amistosas de SQL. (Consulta,
(C
S
ndice)
O
T
Si se necesitan consultas
N
O
dinmicas.
Replicacin Maestro Esclavo con Auto failover (si un servidor
T
M,
se cae, el otro se ponga activo automticamente)
r
Si se prefieren definir ndices
Para la mayora de las
O
B
L
en
lugar
de
funciones
Orientada
Las consultas son expresiones JavaScript
cosas que se haran con
C
L
I
I
map/reduce
a
MySQL o PostgreSQL,
MongoDB
+
A
N
B
documento
Utiliza archivos asignados en memoria para el almacenamiento
pero tener columnas
+
D
A
R
Si se necesita buen rendimiento
s
de datos
predefinidas
nos
O
R
E
en una base de datos extensa
detienen
R
I
Posee modificadores de actualizacin atmicos, por lo que no
E
O
Si se quera usar CouchDB,
es necesario realizar locks.
S
pero los datos cambian
(B
demasiado, y llenan los discos
Bsqueda de texto integrado
A
S
P
O
Capacidad para almacenar archivos gracias a GridFS que
A
N)
permite dividir el archivo en dos partes, uno para guardar los
C
datos en s y otro para guardar los metadatos
H
E)

Para la realizacin de consultas utiliza un motor orientado a


tablas consultable mediante JavaScript

CouchDB

Orientada
a
documento
s

E
R
L
A
N
G

A
P
A
C
H
E

H
T
T
P
/
R
E
S
T

Ofrece un mecanismo de control de mltiples versiones


concurrentes, MVCC (las operaciones de escritura no bloquean
las de lectura)
L
I
B
R
E

Las versiones anteriores de los documentos estn disponibles


Autenticacin posible

Lugares en los que el control


de versiones anteriores de los
documentos sean importantes.

Sistemas de gestin de
contenidos
(principalmente pginas
WEB)

Ofrece un sistema basado en MapReduce para poder obtener


realizar consultas
Replicacin bidireccional
Con deteccin de conflictos
La interfaz oficial es CQL3. CQL3 es SQL muy similares, pero
con algunas limitaciones que provienen de la escalabilidad (en
particular: No existen JOINs, no hay funciones de agregacin)

C
Q
L
3

Cassandra

ClaveValor

J
A
V
A

A
P
A
C
H
E

Permite grandes volmenes de datos en forma distribuida

Y
T
H
R
I
F
T

Libre

Los anlisis web, para


contar los accesos por
Su objetivo principal es la escalabilidad lineal y la
hora, por el navegador,
disponibilidad
Cuando se necesita almacenar a travs de IP, etc.
datos tan grandes que no caben
Redundancia mxima
en el servidor, pero todava El
registro
de
quiere una interfaz familiar transacciones.
amigable con ella.
Deteccin automtica de fallos
La recoleccin de datos
a partir de grandes
No hay punto de fallo nico
conjuntos de sensores.
Capacidad de cambiar la estructura de datos cuando los
usuarios demandan ms funcionalidad
Rpidas respuestas aunque la demanda crezca

Se construye sobre Memcached, un sistema de caching de


memoria distribuido que es ampliamente usado por muchos
sitios web.

Membase

C
L
A
V
E
V
A
L
O
R

E
R
L
A
N
G
Y

Se encuentra diseado para mejorar la escalabilidad y el


desempeo de las aplicaciones web y reducir la complejidad de
la administracin de datos
A
P
A
C
H
E

Memcac
hed +
extensio
nes

L
I
B
R
E

Memcached es una solucin que proporciona un sistema de Cualquier aplicacin donde el


memoria compartida y distribuida
acceso a datos de baja latencia,
soporte de alta concurrencia y
Consiste en ofrecer memoria RAM disponible en varios alta disponibilidad sea un
servidores distintos como si de un nico espacio de cach se requisito
tratara, mediante la implementacin de una tabla hash
distribuida

Casos de uso de baja


latencia, como la
orientacin de anuncios
o aplicaciones web
altamente concurrentes
como los juegos en
lnea

Los datos no estn replicados y Memcached no tiene ningn


mecanismo para administrar fallos
Todos los nodos son idnticos (replicacin maestro-maestro)
Base de datos en memoria pero persistente en disco

Redis

ClaveValor

ANSI
C

BSD

Tipo
Telnet

Libre

Cuando los datos no sean


Tamao del conjunto de datos limitado a la RAM del ordenador crticos y el rendimiento es
(pero puede abarcar la RAM de mltiples mquinas con fundamental.
Un ejemplo
clustering)
clarsimo son las aplicaciones
en
tiempo
real
como
Replicacin maestro-esclavo
videojuegos,
mensajera
instantnea, etc.
Failover automtico
Tambin es recomendable
Valores simples o datos estructurados por llaves
usarlo para guardar sesiones,
como cach de las consultas
Tiene transacciones
ms pesadas de mysql.
Los valores se pueden configurar para expirar (como en una
memoria cach)

Para almacenar las


cotizaciones en tiempo
real.
Anlisis en tiempo
real.
Tablas de clasificacin.
La comunicacin en
tiempo real.

Implementacin de Publish/Subscribe para el envo de


mensajera
Dos versiones, una Open Source (que es completa y funcional)
y otra Enterprise (que agrega commodities -o facilidades- tales
como una interfaz de administracin)
La escalabilidad con Riak es lineal, predecible y de coste
efectivo
L
I
B
R
E

Riak

ClaveValor

Erlan
gyC
(algo
de
JavaS
cript)

/
Apache

HTTP /
REST o
Custom
Binary

C
O
M
E
R
C
I
A
L

El cluster soporta o admite fallos en nodos aislados, o incluso


en partes del cluster, est preparado para no perder datos ante
este tipo de fallos. El sistema ha sido diseado con fallos de
mquinas e interrupciones de servicio de red como norma, no
como excepcin. Riak usa una tcnica llamada hinted handoff,
para compensar el cluster en el momento que un nodo falla. Los
Recoleccin de datos de
vecinos del nodo fallido tomarn relevo y realizarn el trabajo
un punto de venta
Si necesita muy buena
de ese nodo permitiendo al cluster trabajar de forma normal.
escalabilidad de un solo sitio,
Esto puede considerarse una forma de auto-curacin.
Sistemas de control en
disponibilidad y tolerancia a
fbricas
fallos, pero se est dispuesto a
La arquitectura de share-nothing (nada compartido) hace que
pagar por la replicacin de
cada nodo en el cluster est habilitado para realizar lecturas y
mltiples sitios
escrituras, por lo que, la alta disponibilidad est garantizada
Riak se puede configurar para replicar entre mltiples clusters
iguales o disear uno o ms clusters como solo-lectura o
backup. Cada nodo en el cluster puede responder a las
peticiones de lectura/escritura, y el evento de replicacin
asegura que todos los clusters sean actualizados
Riak est diseado para ser un sistema distribuido, cuantos ms
nodos haya en el sistema, ms rpido funcionar
No hay nodo maestro, todos los nodos en Riak son iguales.
Cada nodo es completamente capaz de servir cualquier peticin
de cliente

Independiente o integrable en aplicaciones JAVA


Completamente transaccional
La informacin se almacena de forma relacionada formando un
grafo dirigido entre los nodos y las relaciones entre ellos
L
I
B
R
E

G
P
L

Neo4J

Orientada
a Grafos

J
A
V
A

(
A
G
P
L
Comerc
ial)

Se integra perfectamente con mltiples lenguajes como Java,


PHP, Ruby, .Net, Python, Node, Scala, etc
Dos versiones: la community edition (open source) y la
enterprise edition

/
HTTP/R
EST (o
embebid
o en
JAVA

C
O
M
E
R
C
I
A
L

Modelo de datos flexible consistente de nodos, relaciones y


propiedades
Almacenamiento en disco nativo optimizado para guardar
estructuras de grafos para mximo rendimiento y escalabilidad
Mxima escalabilidad, puede gestionar billones de grafos de
nodos/relaciones/propiedades en una sola mquina y puede ser
distribuido
Lenguaje para consultas: Cypher y devuelve resultados en
forma tabular. Permite agregar, ordenar y establecer lmites en
los resultados
Optimizado para lecturas
Clustering, replicacin, almacenamiento en cach, la copia de
seguridad en lnea, monitorizacin avanzada y alta
disponibilidad se obtienen con la licencia comercial

Est
especialmente
indicada para modelar
Apropiada para casos de uso de redes
sociales
y
la web como etiquetado, sistemas
de
anotaciones de metadatos, recomendacin
redes sociales, wikis y otros
conjuntos de datos jerrquicos Para buscar rutas en las
o en forma de red
relaciones
sociales,
transporte
pblico,
mapas de carreteras, o
topologas de red

Aplicaciones Distribuidas

Caractersticas
El objetivo ltimo de CORBA consiste en dar a quienes sigan la especificacin la
capacidad de que un proceso pueda llamar a procesos que se ejecuten en otros
anfitriones, con independencia de las plataformas y lenguajes usados

Ejemplos
Se usa en empresas qumicas, de comercio electrnico,
aeroespaciales, de finanzas, de recursos humanos, de
investigacin de telecomunicaciones, de defensa, etc.

Independencia en el lenguaje de programacin y sistema operativo: CORBA fue Entre las grandes empresas que usan CORBA se
diseado para liberar a los ingenieros de las limitaciones en cuanto al diseo del encuentran AT&T, Lucent, Nokia y Boeing
software.
Actualmente
soporta Ada, C, C++, C++11, Lisp, Ruby, Smalltalk, Java, COBOL, PL/I y Python
Posibilidad de interaccin entre diferentes tecnologas: uno de los principales
beneficios de la utilizacin de CORBA es la posibilidad de normalizar las interfaces
entre las diversas tecnologas y poder as combinarlas
CORBA

Transparencia de distribucin: ni cliente ni servidor necesitan saber si la aplicacin


est distribuida o centralizada
Transparencia de localizacin: el cliente no necesita saber dnde ejecuta el servicio y
el servicio no necesita saber dnde ejecuta el cliente
Integracin de software existente: se amortiza la inversin previa reutilizando el
software con el que se trabaja, incluso con sistemas heredados
Activacin de objetos: los objetos remotos no tienen por qu estar en memoria
permanentemente, y se hace de manera invisible para el cliente

RMI

Otras como: el fuerte tipado de datos, la alta capacidad de configuracin, libertad de


eleccin los detalles de transferencia de datos o la compresin de los datos
La RMI es mucho ms sencilla y eficaz que CORBA si se va a usar Java como
lenguaje de desarrollo, pues se adapta como un guante al modelo de objetos de Java
(mucho ms simple que el de CORBA) y saca partido de todas las cualidades de Java.
Si en una aplicacin distribuida se va a emplear slo Java, la RMI tiene muchas
ventajas sobre CORBA. Si hay partes escritas en C o C++, debe valorarse la opcin
de CORBA, siempre que la aplicacin sea lo bastante compleja

Toda aplicacin RMI normalmente se descompone en 2 partes:


Un servidor, que crea algunos objetos remotos, crea referencias para hacerlos
accesibles, y espera a que el cliente los invoque.
Un cliente, que obtiene una referencia a objetos remotos en el servidor, y los
invoca.

Las implementaciones de los mtodos quedan a salvo de las miradas de los clientes

Si hay modificaciones en las implementaciones de los mtodos remotos, no necesitan


ser comunicadas a los clientes (siempre que se respte la interfaz remota)
Almacenamiento

Hadoop

Caractersticas
Es un framework (OpenSource desarrollado en Java) que permite el procesamiento distribuido de grandes
volmenes de datos a travs de clusters, usando un modelo simple de programacin. Adems su diseo
permite pasar de pocos nodos a miles de nodos de forma gil. Hadoop es un sistema distribuido usando
una arquitectura Master-Slave, usando para almacenar su Hadoop Distributed File System (HDFS) y
algoritmos de MapReduce para hacer clculos
HDFS gestiona los archivos de gran tamao, archivos que crecen por encima de la capacidad de
almacenamiento de una nica mquina fsica, por lo cual este componerte se encarga de dividir el archivo
para distribuir las diferentes divisiones entre varias mquinas. Est diseado para almacenar archivos de
gran tamao con una filosofa de escribir solo una vez y permitir mltiples lecturas
El sistema de archivos tiene la capacidad de realizar una replicacin de datos (copias redundantes de los
datos guardados en varias mquinas), con el fin de que en el caso de fallo de un nodo se utilice una copia
disponible de otro nodo o mquina, evitando as la prdida de datos y poder seguir trabajando sin
interrupcin perceptible para el usuario
Al igual que en un sistema de archivos de un solo disco, los archivos en HDFS se
dividen en porciones del tamao de un bloque, que se almacenan como unidades independientes, esta
abstraccin de bloque es la que nos permite que un archivo puede ser mayor en capacidad que cualquier
unidad de disco de una sola mquina, facilitando el poder almacenar un archivo en mltiples discos de la
red de computadores al dividirlo en bloques. Adems, los bloques encajan bien con la replicacin,

proporcionando tolerancia a fallos y alta disponibilidad.


En el sistema de archivos HDFS cada bloque se replica en un pequeo nmero de mquinas separadas
fsicamente (normalmente tres). Permitiendo que en casos de que un bloque no est disponible sea
porque esta corrupto o se da una maquina o una de sus partes principales , una copia de este bloque se
puede leer desde otra ubicacin de una manera transparente para el cliente
HDFS tiene una caracterstica de los sistemas distribuidos contemporneos que es la separacin de los
datos de los metadatos. Para realizar esta separacin de los datos de los metadatos el sistema HDFS tiene
dos tipos de nodos operativos que funcionan con un patrn maestro esclavo, el maestro es el NameNodes y
el esclavo es el DataNodes
Este sistema de archivo est en constante desarrollo, con una gran adopcin por parte de comunidad BIG
DATA, la cual ha hecho del HDFS el estndar de facto en las soluciones de grandes volmenes de
informacin

Cul funcionara mejor para simular un entorno nube y por qu?


Un entorno nube normalmente se suele utilizar en la mayora de los casos para resolver problemas de almacenamiento de informacin (aunque como podemos observar en la tabla
anterior, tambin funciona para la implementacin de aplicaciones distribuidas as como en bases de datos NoSQL). El sistema Hadoop permite el procesamiento distribuido de
grandes volmenes de datos. Este sistema permite la replicacin de datos (copias redundantes de los datos guardados en varias mquinas), con el fin de que en el caso de fallo de un
nodo se utilice una copia disponible de otro nodo o mquina, evitando la prdida de datos y poder seguir trabajando sin interrupcin posible para el usuario.
Hadoop tiene un componente que gestiona los archivos de gran tamao, archivos que crecen por encima de la capacidad de almacenamiento de una nica mquina fsica, por lo
cual este componerte se encarga de dividir el archivo para distribuir las diferentes divisiones entre varias mquinas, el nombre del componente es HDFS. Los archivos se dividen y
se almacenan como unidades independientes, esto permite que un archivo pueda ser mayor en capacidad que cualquier unidad de disco de cualquier mquina, facilitando el poder
almacenar un archivo en mltiples discos de la red de computadoras al dividirlo en bloques. Adems, cada bloque se replica en un pequeo nmero de mquinas separadas
fsicamente, permitiendo que en casos de que un bloque no est disponible, una copia de este bloque se puede leer desde otra ubicacin de una manera transparente para el usuario.
Dar una explicacin de los requisitos de un Sistema Distribuido.
Comparticin de recursos. El termino recurso se extiende desde componentes hardware como discos e impresoras hasta elementos software como ficheros, ventanas, bases de
datos y otros objetos de datos. Los recursos de una computadora multiusuario se comparten de manera natural entre todos sus usuarios. Los recursos en un sistema distribuido estn
fsicamente encapsulados en una de las computadoras y slo pueden ser accedidos por otras computadoras mediante las comunicaciones (la red). Para que la comparticin de
recursos sea efectiva, sta debe ser manejada por un programa que ofrezca un interfaz de comunicacin permitiendo que el recurso sea accedido, manipulado y actualizado de una

manera fiable y consistente. Surge el trmino genrico de gestor de recursos. Un gestor de recursos es un mdulo software que maneja un conjunto de recursos de un tipo en
particular. Cada tipo de recurso requiere algunas polticas y mtodos especficos junto con requisitos comunes para todos ellos. stos incluyen la provisin de un esquema de
nombres para cada clase de recurso, permitir que los recursos individuales sean accedidos desde cualquier localizacin; la traslacin de nombre de recurso a direcciones de
comunicacin y la coordinacin de los accesos concurrentes que cambian el estado de los recursos compartidos para mantener la consistencia. Un sistema distribuido puede verse
de manera abstracta como un conjunto de gestores de recursos y un conjunto de programas que usan los recursos. Los usuarios de los recursos se comunican con los gestores de los
recursos para acceder a los recursos compartidos del sistema. Esta perspectiva nos lleva a dos modelos de sistemas distribuidos: el modelo cliente-servidor y el modelo basado en
objetos.
Concurrencia. Cuando existen varios procesos en una nica maquina decimos que se estn ejecutando concurrentemente. Si el ordenador est equipado con un nico procesador
central, la concurrencia tiene lugar entrelazando la ejecucin de los distintos procesos. Si la computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a
la vez hasta N procesos. En los sistemas distribuidos hay muchas mquinas, cada una con uno o ms procesadores centrales. Es decir, si hay M ordenadores en un sistema
distribuido
con
un
procesador
central
cada
una
entonces
hasta
M
procesos
estar
ejecutndose
en
paralelo.
En un sistema distribuido que est basado en el modelo de comparticin de recursos, la posibilidad de ejecucin paralela ocurre por dos razones:

Muchos usuarios interactan simultneamente con programas de aplicacin.


Muchos procesos servidores se ejecutan concurrentemente, cada uno respondiendo a diferentes peticiones de los procesos clientes.

El caso (1) es menos conflictivo, ya que normalmente las aplicaciones de interaccin se ejecutan aisladamente en la estacin de trabajo del usuario y no entran en conflicto con las
aplicaciones
ejecutadas
en
las
estaciones
de
trabajo
de
otros
usuarios.
El caso (2) surge debido a la existencia de uno o ms procesos servidores para cada tipo de recurso. Estos procesos se ejecutan en distintas mquinas, de manera que se estn
ejecutando en paralelo diversos servidores, junto con diversos programas de aplicacin. Las peticiones para acceder a los recursos de un servidor dado pueden ser encoladas en el
servidor y ser procesadas secuencialmente o bien pueden ser procesadas varias concurrentemente por mltiples instancias del proceso gestor de recursos. Cuando esto ocurre los
procesos servidores deben sincronizar sus acciones para asegurarse de que no existen conflictos. La sincronizacin debe ser cuidadosamente planeada para asegurar que no se
pierden los beneficios de la concurrencia.
Tolerancia a fallos. Los sistemas informticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podran producir resultados incorrectos o
podran pararse antes de terminar la computacin que estaban realizando. El diseo de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre s: Redundancia
hardware (uso de componentes redundantes) y recuperacin del software (diseo de programas que sean capaces de recuperarse de los fallos).
En los sistemas distribuidos la redundancia puede plantearse en un grano ms fino que el hardware, pueden replicarse los servidores individuales que son esenciales para la
operacin
continuada
de
aplicaciones
crticas.
La recuperacin del software tiene relacin con el diseo de software que sea capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo.

Los sistemas distribuidos tambin proveen un alto grado de disponibilidad en la vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la proporcin de
tiempo que est disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la no disponibilidad del sistema para todos los usuarios. Cuando uno de los
componentes de un sistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario podra desplazarse a otra estacin de trabajo;
un proceso servidor podra ejecutarse en otra mquina.
Seguridad. Es la capacidad del sistema para proteger datos, servicios y recursos de usuarios no autorizados. El fin de la seguridad es garantizar la proteccin o estar libre de todo
peligro y/o dao, y que en cierta manera es infalible. Como esta caracterstica, particularizando para el caso de sistemas operativos o redes de computadores, es muy difcil de
conseguir (segn la mayora de expertos, imposible), se suaviza la definicin de seguridad y se pasa a hablar de fiabilidad (probabilidad de que un sistema se comporte tal y como
se espera de l) ms que de seguridad; por tanto, se habla de sistemas fiables en lugar de hacerlo de sistemas seguros. A grandes rasgos se entiende que mantener un sistema seguro
(o able) consiste bsicamente en garantizar tres aspectos: confidencialidad, integridad y disponibilidad. Algunos estudios integran la seguridad dentro de una propiedad ms
general de los sistemas, la confiabilidad, entendida como el nivel de calidad del servicio ofrecido. Consideran la disponibilidad como un aspecto al mismo nivel que la seguridad y
no como parte de ella, por lo que dividen esta ltima en slo las dos facetas restantes, confidencialidad e integridad.

La confidencialidad: Nos dice que los objetos de un sistema han de ser accedidos nicamente por elementos autorizados a ello, y que esos elementos autorizados no van a
convertir esa informacin en disponible para otras entidades.

La integridad: Significa que los objetos slo pueden ser modificados por elementos autorizados, y de una manera controlada.

La disponibilidad: Indica que los objetos del sistema tienen que permanecer accesibles a elementos autorizados; es el contrario de la negacin de servicio. Generalmente
tienen que existir los tres aspectos descritos para que haya seguridad: por ejemplo en un sistema Unix puede conseguir condencialidad para un determinado fichero
haciendo que ningn usuario (ni siquiera el root) pueda leerlo, pero este mecanismo no proporciona disponibilidad alguna. Dependiendo del entorno en que un sistema Unix
trabaje, a sus responsables les interesara dar prioridad a un cierto aspecto de la seguridad. Por ejemplo, en un sistema militar se antepondra la confidencialidad de los datos
almacenados o transmitidos sobre su disponibilidad: seguramente, es preferible que alguien borre informacin confidencial (que se podra recuperar despus desde una cinta
de backup) a que ese mismo atacante pueda leerla, o a que esa informacin est disponible en un instante dado para los usuarios autorizados. En cambio, en un servidor NFS
de un departamento se premiar la disponibilidad frente a la condencialidad: importa poco que un atacante lea una unidad, pero que esa misma unidad no sea leda por
usuarios autorizados va a suponer una prdida de tiempo y dinero. En un entorno bancario, la faceta que ms ha de preocupar a los responsables del sistema es la integridad
de los datos, frente a su disponibilidad o su condencialidad: Es menos grave que un usuario consiga leer el saldo de otro que el hecho de que ese usuario pueda
modificarlo.

Transparencia. La transparencia se define como la ocultacin al usuario y al programador de aplicaciones de la separacin de los componentes de un sistema distribuido,
de manera que el sistema se percibe como un todo, en vez de una coleccin de componentes independientes. La transparencia ejerce una gran influencia en el diseo del
software de sistema.

El manual de referencia RM-ODP [ISO 1996a] identifica ocho formas de transparencia. Estas proveen un resumen til de la motivacin y metas de los sistemas distribuidos.
Las transparencias definidas son:

Transparencia de Acceso: Permite el acceso a los objetos de informacin remotos de la misma forma que a los objetos de informacin locales.
Transparencia de Localizacin: Permite el acceso a los objetos de informacin sin conocimiento de su localizacin
Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente utilizando objetos de informacin compartidos y de forma que no exista interferencia
entre ellos.
Transparencia de Replicacin: Permite utilizar mltiples instancias de los objetos de informacin para incrementar la fiabilidad y las prestaciones sin que los usuarios o los
programas de aplicacin tengan por que conoces la existencia de las rplicas.
Transparencia de Fallos: Permite a los usuarios y programas de aplicacin completar sus tareas a pesar de la ocurrencia de fallos en el hardware o en el software.
Transparencia de Migracin: Permite el movimiento de objetos de informacin dentro de un sistema sin afectar a los usuarios o a los programas de aplicacin.
Transparencia de Prestaciones. Permite que el sistema sea reconfigurado para mejorar las prestaciones mientras la carga varia.
Transparencia de Escalado: Permite la expansin del sistema y de las aplicaciones sin cambiar la estructura del sistema o los algoritmos de la aplicacin.
Las dos ms importantes son las transparencias de acceso y de localizacin; su presencia o ausencia afecta fuertemente a la utilizacin de los recursos distribuidos. A
menudo se las denomina a ambas transparencias de red. La transparencia de red provee un grado similar de anonimato en los recursos al que se encuentra en los sistemas
centralizados.

Escalabilidad. Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala ms pequea consiste en dos estaciones de trabajo y un
servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de rea local simple podra contener varios cientos de estaciones de trabajo, varios
servidores de ficheros, servidores de impresin y otros servidores de propsito especfico. A menudo se conectan varias redes de rea local para formar internetworks, y stas
podran contener muchos miles de ordenadores que forman un nico sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos.
Tanto el software de sistema como el de aplicacin no deberan cambiar cuando la escala del sistema se incrementa. La necesidad de escalabilidad no es solo un problema de
prestaciones de red o de hardware, sino que est ntimamente ligada con todos los aspectos del diseo de los sistemas distribuidos. El diseo del sistema debe reconocer
explcitamente
la
necesidad
de
escalabilidad
o
de
lo
contrario
aparecern
serias
limitaciones.
La demanda de escalabilidad en los sistemas distribuidos ha conducido a una filosofa de diseo en que cualquier recurso simple -hardware o software- puede extenderse para
proporcionar servicio a tantos usuarios como se quiera. Esto es, si la demanda de un recurso crece, debera ser posible extender el sistema para darla servicio,. Por ejemplo, la
frecuencia con la que se accede a los ficheros crece cuando se incrementa el nmero de usuarios y estaciones de trabajo en un sistema distribuido. Entonces, debe ser posible aadir
ordenadores servidores para evitar el cuello de botella que se producira si un solo servidor de ficheros tuviera que manejar todas las peticiones de acceso a los ficheros. En este
caso el sistema deber estar diseado de manera que permita trabajar con ficheros replicados en distintos servidores, con las consideraciones de consistencias que ello conlleva.

Cuando el tamao y complejidad de las redes de ordenadores crece, es un objetivo primordial disear software de sistema distribuido que seguir siendo eficiente y til con esas
nuevas configuraciones de la red. Resumiendo, el trabajo necesario para procesar una peticin simple para acceder a un recurso compartido debera ser prcticamente independiente
del tamao de la red. Las tcnicas necesarias para conseguir estos objetivos incluyen el uso de datos replicados, la tcnica asociada de caching, y el uso de mltiples servidores para
manejar ciertas tareas, aprovechando la concurrencia para permitir una mayor productividad.
Sistema abierto. Un sistema informtico es abierto si el sistema puede ser extendido de diversas maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones
hardware (aadir perifricos, memoria o interfaces de comunicacin, etc.) o con respecto a las extensiones software (aadir caractersticas al sistema operativo, protocolos de
comunicacin y servicios de comparticin de recursos, etc.). La apertura de los sistemas distribuidos se determina primariamente por el grado hacia el que nuevos servicios de
comparticin de recursos se pueden aadir sin perjudicar ni duplicar a los ya existentes.
Heterogeneidad. Al hablar de heterogeneidad nos referimos a la variedad y diferencia que podemos encontrar en los elementos que componen una red de computadoras sobre las
que se ejecuta un sistema distribuido, dicha heterogeneidad so slo se aplica a las redes y al hardware de las computadoras, sino tambin a los sistemas operativos, los lenguajes de
programacin y las implementaciones en las que trabajan los diferentes desarrolladores. La heterogeneidad surge por diversas razones:

Algunas computadoras son mejores que otras para ciertas aplicaciones (compiladores, grficos, capacidad de procesamiento).
Algunos sistemas de cmputo proveen servicios que no estn disponibles para otros sistemas.
La accesibilidad para adquirir determinados sistemas o equipos de cmputo.

Facilidad para mantenimiento y administracin. La administracin de sistemas distribuidos incluye las actividades como: manejo de la versin y distribucin del software,
monitoreo de la utilizacin de los recursos y el mantenimiento del sistema de seguridad, entre otros.
Los administradores de sistemas distribuidos se ocupan de monitorear continuamente al sistema y se deben de asegurar de su disponibilidad. Para una buena administracin, se
debe de poder identificar las reas que estn teniendo problemas as como de la rpida recuperacin de fallas que se puedan presentar. La informacin que se obtiene mediante el
monitoreo sirve a los administradores para anticipar situaciones crticas. La prevencin de estas situaciones ayuda a que los problemas no crezcan para que no afecten a los usuarios
del sistema.
Restricciones de tiempo. Los sistemas distribuidos son un tipo de sistema de tiempo real. En ellos, los principales problemas a dar solucin son los derivados a la planificacin de
las diferentes acciones a realizar sobre los diferentes nodos o equipos que se comunican a travs de una red, de tal forma que las restricciones temporales sean cumplidas en todo
momento.

Explicar el funcionamiento de las arquitecturas utilizadas y ejemplos.


Arquitectura Cliente-Servidor
Esta arquitectura consiste bsicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se
ejecutan sobre una sola computadora es ms ventajosa en un sistema operativo multiusuario distribuido a travs de una red de computadoras. La interaccin cliente-servidor es el
soporte de la mayor parte de la comunicacin por redes. Ayuda a comprender las bases sobre las que estn construidos los algoritmos distribuidos.
El servidor debe negociar con su Sistema Operativo un puerto (casi siempre bien conocido) donde esperar las solicitudes. El servidor espera pasivamente las peticiones en un puerto
bien conocido que ha sido reservado para el servicio que ofrece. El cliente tambin solicita, a su sistema operativo, un puerto no usado desde el cual enviar su solicitud y esperar
respuesta.
Un
cliente
ubica
un
puerto
arbitrario,
no
utilizado
y
no
reservado,
para
su
comunicacin.
En una interaccin se necesita reservar solo uno de los dos puertos, asignados un identificador nico de puerto para cada servicio, se facilita la construccin de clientes y servidores.

Los servidores por lo general son ms difciles de construir que los clientes pues aunque se implantan como programas de aplicacin deben manejar peticiones concurrentes, as
como reforzar todos los procedimientos de acceso y proteccin del sistema computacional en el que corren, y protegerse contra todos los errores posibles. El cliente y el servidor
pueden interactuar en la misma mquina.

Modelo de mltiples servidores


Los servidores pueden implementarse como distintos procesos de servidor en computadoras separadas interaccionando, para proporcionar un servicio a los procesos clientes.
Los servidores pueden dividir el conjunto de objetos en los que est basado el servicio y distriburselos entre ellos mismos, o mantener copias replicadas de ellos en varias
mquinas.

La web maneja una particin de datos en el que cada servidor web administra
su propio conjunto de recursos.
Un usuario puede emplear un navegador para acceder al recurso en cualquiera
de los servidores.
La replicacin se utiliza para aumentar las prestaciones y disponibilidad y para
mejorar la tolerancia a fallos.
Proporciona mltiples copias consistentes de datos en procesos que se ejecutan
en diferentes computadoras.
Ejemplos:
Muchos servicios de comercio web estn implementados en diferentes
servidores para obtener un mejor desempeo y confiabilidad.
Servidores de descarga, los servidores mantienen bases de datos
replicadas o distribuidas

Servidores proxy y cach


Los proxys se emplean en distintos mbitos y con distintas funcionalidades como puede ser seguridad (filtrado) o mejora de las prestaciones de las comunicaciones, entre algunas
otras.
El funcionamiento de un proxy cache es el siguiente: cuando un cliente realiza una peticin a un servidor web, en la que genera X peticiones a todos los objetos que componen
dicha web, la peticin llega al proxy, que revisa su cache para comprobar si dispone de los objetos que se van solicitando. En el caso de que el objeto buscado se encuentre en
cache, el proxy verifica que no ha expirado: que el objeto se corresponde con el actual, y en ese caso se produce un HIT y el sistema devuelve al cliente el objeto en cuestin. Si por
el contrario el objeto buscado no se encuentra en cache o la versin encontrada no est actualizada, se produce un MISS en cache, tras lo cual el proxy descarga el elemento
solicitado y lo sirve al cliente.
Como puede verse, en el mejor de los casos nos ahorramos el enrutamiento desde el proxy al servidor sobre el que se realiza la peticin y la transferencia de la informacin
solicitada a travs de Internet, mientras que en el peor de los casos aadimos un salto ms en el enrutamiento. Por supuesto, cunto ms accedido sea un determinado contenido por
los usuarios de la red interna, mayor probabilidad de que el objeto se encuentre en cache y por tanto, mayor incremento del rendimiento del sistema.

Resumiendo, un proxy cache permite optimizar y mejorar las prestaciones, reduciendo (y limitando si es
preciso) el consumo de ancho de banda, que puede ser utilizado para otros aspectos como puede ser trafico
QoS (aunque este es ms dependientes de latencias y jitter que de ancho de banda). En cualquier caso, aunque
son patentes los beneficios de esta tecnologa, es obvio que est enfocada a infraestructuras que soportan un
importante nmero de peticiones web. Por otra parte, para mejorar su eficiencia es importante que exista un
proceso de mejora continua, de modo que se aproveche el feedback que proporcionan los registros
producidos por el servidor, ajustando la configuracin del proxy a los requisitos de nuestra organizacin.
Ejemplos: Usados frecuentemente en motores de bsqueda

Procesos de igual a igual


Las tecnologas peer to peer (P2P) hacen referencia a un tipo de arquitectura para la comunicacin entre aplicaciones que permite a individuos comunicarse y compartir
informacin con otros individuos sin necesidad de un servidor central que facilite la comunicacin. Es importante destacar que el trmino P2P se refiere a un tipo de arquitectura
de aplicaciones y no a la funcionalidad especfica de una aplicacin final; es decir, la tecnologa P2P es un medio para alcanzar un fin superior. Sin embargo, a menudo se utiliza el
trmino P2P como sinnimo de intercambio de archivos, ya que ste es uno de los usos ms populares de dicha tecnologa. No obstante, existen muchos otros usos de la
tecnologa P2P, por ejemplo Skype utiliza una arquitectura P2P hbrida para ofrecer servicios VoIP, mientras que Tor utiliza una arquitectura P2P para ofrecer una funcionalidad de
enrutamiento annimo.
La ventaja principal de la tecnologa P2P es que saca el mximo partido de los recursos (ancho de banda, capacidad de almacenamiento, etc.) de los muchos clientes/peers para
ofrecer servicios de aplicacin y red, sin tener que confiar en los recursos de uno o ms servidores centrales. De este modo se evita que tales servidores se conviertan en un cuello
de botella para toda la red. Otra ventaja de la tecnologa P2P es que no existe una autoridad central nica que se pueda eliminar o bloquear y colapsar toda la red P2P. Esto dota a la
red de la capacidad de sobrevivir por s misma y de una gran robustez.
En esta arquitectura todos los procesos desempean tareas semejantes, interactuando
cooperativamente como iguales para realizar una actividad distribuida sin distincin entre
clientes y servidores.
El cdigo en los procesos parejos o <iguales> mantiene la consistencia de los recursos y
sincroniza a nivel de la aplicacin cuando es necesario.
En general n procesos parejos podrn interactuar entre ellos, dependiendo el patrn de
comunicacin de los requisitos de la aplicacin.
La eliminacin del proceso servidor reduce los retardos de comunicacin entre procesos al
acceder a objetos locales
Ejemplos: Se usan para compartir ficheros de cualquier tipo (audio, vdeo, software, etc),
tambin se usa en telefona VoIP para hacer ms eficiente la transmisin de datos en tiempo
real.

Web Applets
Java introduce un modelo completamente nuevo de interaccin de cliente/servidor en el Web. Nos permite generar pequeos programas como componentes llamados applets, que
pueden descargarse en un visualizador compatible con Java. Los applets nos permiten distribuir contenido ejecutable a lo largo del Web junto con los datos.

Solicitud del applet. Un visualizador Web solicita un applet de Java cuando encuentra la etiqueta <APPLET>. Los atributos de la etiqueta incluyen el nombre del
programa: el nombre de archivo de la clase. El programa suele residir en el mismo servidor en el que se origina la pgina, aunque no necesariamente.
Recepcin del applet. El visualizador inicia una sesin especfica de TCP/IP para descargar cada applet que encuentra en una pgina Web. Trata al applet de Java como a
cualquier otro objeto HTML (una imagen externa, por ejemplo).
Carga y ejecucin del applet. El visualizador carga el applet en la memoria del cliente, y despus la ejecuta. Por lo general, el applet crear cierto tipo de efecto visual
dinmica dentro del rea de la pgina que se le asigne. Los atributos de la etiqueta <APPLET> especifican el tamao de la regin que ocupar el applet. Esta es la parte de
propiedad de una pgina que pertenece el applet. Esta pinta el contenido de la regin, elige el color de fondo y las fuentes tipogrficas y se ocupa de todos los eventos de
teclado y ratn. La regin del applet no se integra visualmente al resto de la pgina. En realidad es una modesta arquitectura de documentos compuestos.
Descarte del applet. El visualizador borra el applet de la memoria cuando sale de la pgina Web.

Como se deduce de este escenario, los applet de Java nos permiten crear pginas Web sumamente interactivas con contenido localmente ejecutable. Estos applets introducen un
grado de flexibilidad sin paralelo. Permiten al cliente ejecutar partes minsculas de cdigo (los propios applets), mientras que el servidor se convierte en una bodega de programas,
datos y pginas HTML.
Aparte del intercambio de contenido tradicional - como texto, grficos, audio y video - java permite que aplicaciones
Web intercambien cdigo mvil. Los sistemas de cdigo mvil constituyen la tecnologa de base para los agentes
mviles. Permiten distribuir cdigo (y datos) entre clientes y servidores. Los objetos mviles - que Java llama applets son piezas autnomas de cdigo ejecutable. Como el software tradicional, el software tradicional, es dinmicamente
cargado y ejecutado por programas independientes como visualizadores y servidores Web. Como mnimo, el cdigo
movil debe ser exportable y seguro. A medida que el uso de visualizadores Web se incremente, se descargarn y
ejecutarn cientos de estos mdulos de cdigo ejecutable, de manera que es crucial controlar con toda precisin el
acceso de los mdulos a recursos importantes. He aqu una breve lista de los servicios que cabra esperar de un sistema
de cdigo mvil:

Un entorno seguro para la ejecucin de cdigo mvil


Servicios independientes de plataformas
Control de ciclo de vida
Distribucin de applets

Big Data
En trminos generales podramos referirnos como a la tendencia en el avance de la tecnologa que ha abierto las puertas hacia un nuevo enfoque de entendimiento y toma de
decisiones, la cual es utilizada para describir enormes cantidades de datos (estructurados, no estructurados y semi estructurados) que tomara demasiado tiempo y sera muy costoso
cargarlos a un base de datos relacional para su anlisis. De tal manera que, el concepto de Big Data aplica para toda aquella informacin que no puede ser procesada o analizada
utilizando procesos o herramientas tradicionales. Sin embargo, Big Data no se refiere a alguna cantidad en especfico, ya que es usualmente utilizado cuando se habla en trminos
de petabytes y exabytes de datos.
Adems del gran volumen de informacin, esta existe en una gran variedad de datos que pueden ser representados de diversas maneras en todo el mundo, por ejemplo de
dispositivos mviles, audio, video, sistemas GPS, incontables sensores digitales en equipos industriales, automviles, medidores elctricos, veletas, anemmetros, etc., los cuales
pueden medir y comunicar el posicionamiento, movimiento, vibracin, temperatura, humedad y hasta los cambios qumicos que sufre el aire, de tal forma que las aplicaciones que
analizan estos datos requieren que la velocidad de respuesta sea lo demasiado rpida para lograr obtener la informacin correcta en el momento preciso. Estas son las caractersticas
principales de una oportunidad para Big Data.
Es importante entender que las bases de datos convencionales son una parte importante y relevante para una solucin analtica. De hecho, se vuelve mucho ms vital cuando se usa
en conjunto con la plataforma de Big Data. Pensemos en nuestras manos izquierda y derecha, cada una ofrece fortalezas individuales para cada tarea en especfico.
De dnde proviene toda esa informacin? Los seres humanos estamos creando y almacenando informacin constantemente y cada vez ms en cantidades astronmicas. Esta
contribucin a la acumulacin masiva de datos la podemos encontrar en diversas industrias, las compaas mantienen grandes cantidades de datos transaccionales, reuniendo
informacin acerca de sus clientes, proveedores, operaciones, etc., de la misma manera sucede con el sector pblico. En muchos pases se administran enormes bases de datos que
contienen datos de censo de poblacin, registros mdicos, impuestos, etc., y si a todo esto le aadimos transacciones financieras realizadas en lnea o por dispositivos mviles,
anlisis de redes sociales (en Twitter son cerca de 12 Terabytes de tweets creados diariamente y Facebook almacena alrededor de 100 Petabytes de fotos y videos), ubicacin
geogrfica mediante coordenadas GPS, en otras palabras, todas aquellas actividades que la mayora de nosotros realizamos varias veces al da con nuestros "smartphones", estamos
hablando de que se generan alrededor de 2.5 quintillones de bytes diariamente en el mundo.
Pero no solamente somos los seres humanos quienes contribuimos a este crecimiento enorme de informacin, existe tambin la comunicacin denominada mquina a mquina
(M2M machine-to-machine) cuyo valor en la creacin de grandes cantidades de datos tambin es muy importante. Sensores digitales instalados en contenedores para
determinar la ruta generada durante una entrega de algn paquete y que esta informacin sea enviada a las compaas de transportacin, sensores en medidores elctricos
para determinar el consumo de energa a intervalos regulares para que sea enviada esta informacin a las compaas del sector energtico. Se estima que hay ms de 30
millones de sensores interconectados en distintos sectores como automotriz, transportacin, industrial, servicios, comercial, etc. y se espera que este nmero crezca en un 30%
anualmente.

Tipos de datos de Big Data


1.- Web and Social Media: Incluye contenido web e informacin que es obtenida de las redes sociales como Facebook, Twitter, LinkedIn, etc, blogs.

2.- Machine-to-Machine (M2M): M2M se refiere a las tecnologas que permiten conectarse a otros dispositivos. M2M utiliza dispositivos como sensores o medidores que capturan
algn evento en particular (velocidad, temperatura, presin, variables meteorolgicas, variables qumicas como la salinidad, etc.) los cuales transmiten a travs de redes almbricas,
inalmbricas o hbridas a otras aplicaciones que traducen estos eventos en informacin significativa.

3.- Big Transaction Data: Incluye registros de facturacin, en telecomunicaciones


registros detallados de las llamadas (CDR), etc. Estos datos transaccionales estn
disponibles en formatos tanto semiestructurados como no estructurados.

4.- Biometrics: Informacin biomtrica en la que se incluye huellas digitales, escaneo


de la retina, reconocimiento facial, gentica, etc. En el rea de seguridad e inteligencia,
los datos biomtricos han sido informacin importante para las agencias de
investigacin.

5.- Human Generated: Las personas generamos diversas cantidades de datos como la
informacin que guarda un call center al establecer una llamada telefnica, notas de
voz, correos electrnicos, documentos electrnicos, estudios mdicos, etc.

La naturaleza de la informacin hoy es diferente a la informacin en el pasado. Debido


a la abundacia de sensores, micrfonos, cmaras, escneres mdicos, imgenes, etc. en
nuestras vidas, los datos generados a partir de estos elementos sern dentro de poco el
segmento
ms
grande
de
toda
la
informacin
disponible.
El uso de Big Data ha ayudado a los investigadores a descubrir cosas que les podran haber tomado aos en descubrir por si mismos sin el uso de estas herramientas, debido a la
velocidad del anlisis, es posible que el analista de datos pueda cambiar sus ideas basndose en el resultado obtenido y retrabajar el procedimiento una y otra vez hasta encontrar el
verdadero valor al que se est tratando de llegar.

Clasificacin de sistemas distribuidos, analizar los siguientes sistemas cliente servidor


Presentacin
Distribuida
Google

Presentacin
Remota

Proceso
Distribuido

Hotmail

Cajeros
Automticos

Servicios
Bancarios

Bibliotecas
Digitales

E-Mail

Gestin de
Datos Remota

BD
Distribuidas

Servidores
Amplios

X
X

Clientes
grandes

Arquitectura
dos niveles

Arquitectura
tres niveles

X
X
X

X
X

Yahoo

Facebook

Twitter

Servidor de
Correo

Peridico

Investigar las definiciones de: presentacin distribuida, presentacin remota, proceso distribuido, gestin de datos remota, bases de datos distribuidas, servidores
amplios, clientes grandes, arquitectura dos niveles y arquitectura tres niveles.

Segn como se distribuyan las tres funciones bsicas de una aplicacin (presentacin, negocio y datos) entre el cliente y el servidor, se pueden contemplar tres modelos:
Presentacin distribuida. El cliente solo mantiene la presentacin, el resto de la aplicacin se ejecuta remotamente. La presentacin distribuida, en su forma ms simple, es una
interfaz grfica de usuario a la que se le pueden acoplar controles de validacin de datos, para evitar la validacin de los mismos en el servidor.

La estacin de trabajo programable (PWS) tiene como nica tarea el ofrecer una presentacin grfica al usuario final. Realizada sobre aplicaciones preexistentes en el host, este tipo
de distribucin se puede aplicar a ambientes de redes compuestas por host y estaciones de trabajo programables.
La presentacin ofrecida por el mainframe es usada por las terminales no programables, mientras que la estacin de trabajo programable puede brindar una interfaz grfica, sin
modificar las aplicaciones del host.

Presentacin Remota. Las funciones de presentacin son realizadas exclusivamente en las estaciones de trabajo y
se aplica a redes de terminales del tipo PWS. Esta arquitectura coloca todas las funciones de presentacin de los
datos en el cliente de forma que el cliente es el que tiene toda la responsabilidad del formateo de los datos. Exige
menos mantenimiento si la forma de los reportes o las pantallas no cambia. Aumente el trfico de la red, en virtud
de que el cliente debe interactuar ms con el servidor para recibir todos los datos necesarios. Como ejemplo se
tienen los cajeros automticos.

Proceso Distribuido. Las funciones aplicativas son realizadas local y remotamente. Es el caso tpico en el cual una aplicacin en el host brinda servicios generales a varias
aplicaciones instaladas en estaciones remotas. Ejemplos de procesos distribuidos son el correo electrnico.

Gestin de Datos Remota. Son aquellos que permiten el acceso desde un equipo terminal de datos a informacin mantenida en archivos de un ordenador central. Este sistema tiene
por finalidad la recuperacin de la informacin contenida en los archivos o bases de datos, la modificacin de ella o una combinacin de ambas. La informacin se mantiene
generalmente almacenada en unidades de acceso directo. El proceso de las transacciones se realiza on-line y permite a los usuarios acceder simultneamente a una o ms bases de
datos.
Todo el SW del cliente tiene la responsabilidad del SI, a excepcin de la gerencia de los datos. Esta arquitectura es la ms conocida como cliente/servidor. Presenta un mayor
trfico de red, ya que se le solicita al servidor los datos para presentar y para analizar; esto hace que el anlisis dependa del cliente, lo cual permite el uso de hojas de clculo en
ste.

Bases de Datos Distribuidas: Son la que almacenan datos que pertenecen lgicamente a un slo sistema, pero se encuentra fsicamente esparcido en varios sitios de la red. Un
sistema de base de datos distribuidos se compone de un conjunto de sitios, conectados entre s mediante algn tipo de red de comunicaciones, en el cual:
Cada sitio es un sistema de base de datos en s mismo.
Los sitios trabajan en conjunto si es necesario con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los
datos estuvieran almacenados en el sitio propio del usuario.

Una BDD es en realidad un tipo de BD virtual cuyas partes componentes estn almacenadas en varias BD reales distintas que se encuentran en varios sitios distintos (de
hecho, es la unin lgica de esas BD reales).
Esta arquitectura le asigna al cliente toda la funcionalidad: la presentacin y la lgica, a excepcin de los datos, los cuales son repartidos entre el cliente y el servidor; esto permite
una ubicacin ptima de los datos. Aparece el concepto de particionamiento vertical y horizontal de los datos.

Servidores Amplios (Fat Server). Un fat server es un tipo de servidor que proporciona la mayora de la funcionalidad a la mquina de un cliente dentro de la arquitectura cliente /
servidor. El peso de la aplicacin es ejecutada por el servidor, el cliente tiene solo la interfaz de usuario. Es como un servidor central estndar que aloja y proporciona aplicaciones
clave basadas en red, almacenamiento, procesamiento, acceso a Internet y otros servicios.
Un fat server es el componente central dentro de la arquitectura de red cliente/servidor. Normalmente, fat server est instalado y configurado con las aplicaciones y procesos
clave. En la mayora de los escenarios, las mquinas cliente en un entorno cliente/servidor basada en fat server son los clientes ligeros. Es decir, que tienen capacidades de
procesamiento muy limitadas y en gran medida se basan en el fat server. Las mquinas de todos los clientes de la red interactan y accesan a los recursos del servidor mediante
llamadas a procedimientos remotos. Un usuario final puede tener acceso a los recursos del fat server directamente a travs del panel de control basado en GUI.
Cliente Grande (Fat Client). Se denomina cliente pesado al programa "cliente" de una arquitectura cliente-servidor cuando la mayor carga de cmputo est desplazada hacia la
computadora que ejecuta dicho programa.
La primera ventaja de un cliente pesado es que aprovecha la capacidad de cmputo de las computadoras que lo ejecutan, generalmente infrautilizadas, en favor de la computadora
servidor. Dicha computadora asume menos funciones y, por tanto, puede atender a un nmero mayor de programas cliente con los mismos recursos.
La segunda ventaja del cliente pesado es su riqueza en la interfaz de usuario. La interfaz no est limitada por las caractersticas de un cliente universal, por ejemplo, un navegador
web. Por tanto, pueden disearse interfaces complejas, ricas y ms fciles de usar.

Sin embargo, tambin existe un importante inconveniente: el cliente pesado necesita ser instalado en cada una de las computadoras cliente, y posteriormente actualizado en todas
ellas cuando sea necesario. Las consecuencias de ello son:
Pueden surgir incompatibilidades, Es necesaria una infraestructura para la instalacin y actualizacin de la aplicacin de manera desatendida y Cuando se renueva el parque de
ordenadores, o se modifica su software de base, es necesario realizar pruebas exhaustivas de regresin, para asegurar que la aplicacin sigue funcionando.
La mayora de los clientes pesados asumen todas las funcionalidades de la aplicacin, dejando al programa servidor la gestin de transacciones contra una base de datos, es decir, el
almacenamiento de informacin.
Algunos ejemplos son:

Terminales de punto de venta.


Aplicaciones de diseo asistido por ordenador (CAD).
Sistemas embebidos o empotrados. Por ejemplo, cajeros automticos.
Aplicaciones de escritorio remoto.

Arquitectura dos niveles. El modelo de programacin de aplicaciones de dos niveles fue desarrollado para mejorar el modelo de programacin de aplicaciones de servidor de
archivos. En comparacin con el modelo de programacin de aplicaciones de servidor de archivos, el modelo de programacin de aplicaciones de dos niveles le proporciona mayor
facilidad de uso, escalabilidad y flexibilidad a las aplicaciones.
En el modelo de dos niveles, se tienen dos capas separadas llamadas Client y Server.
Las aplicaciones desarrolladas utilizando la aplicacin de dos niveles del modelo de programacin tienen una interfaz fcil de usar. Estas aplicaciones pueden soportar slo unos
pocos usuarios y permitir que los datos sean compartidos dentro de un entorno homogneo.
El modelo de programacin de aplicaciones de dos niveles es una combinacin de una aplicacin cliente y una
aplicacin
de
servidor.
En este modelo de programacin de aplicaciones, la aplicacin cliente interacta directamente con la aplicacin de
servidor sin la presencia de cualquier aplicacin intermedia.

Arquitectura de tres niveles. La arquitectura de dos capas si bien ayud en unos aos atrs, se vio la necesidad de crear una nueva arquitectura ya que en dos capas se tena
algunos problemas en la capa de aplicacin ya que la principal desventaja de esta era el peso que tena para el cliente, como se mencion anteriormente.
Aplicacin de tres capas.
Por estas razones, existe una fuerte y bien avanzada tendencia a adoptar una arquitectura de tres capas, las cuales son:
Nivel de aplicacin
La diferencia de este nivel aplicado ahora en una arquitectura de tres capas es que solo tiene que trabajar con la semntica propia de aplicacin, sin tener que preocuparse de cmo
esta implementado este ni de su estructura fsica.
Nivel de dominio de la aplicacin.
En
cambio
este
nivel
se
encarga
de
toda
la
estructura
fsica
y
el
dominio
de
aplicacin.
Algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora nicamente se cambia la regla en el servidor de aplicacin y esta actuar en todos los clientes, cosa
que no suceda con la arquitectura en dos capas que si alguna regla se la cambia, se tena que ir a cada cliente a realizar el cambio.
Nivel de repositorio.
Sigue siendo la capa en donde se almacenan los datos y toda la informacin.

Justificar las elecciones, es decir, si incluyen a google en las categoras clientes grandes, arquitectura tres niveles y presentacin distribuida, deben justificar la razn de
dichas elecciones.
Google
Presentacin distribuida puesto que la aplicacin se ejecuta remotamente
Gestin de datos remota porque accesa a diferentes bases de datos para realizar las bsquedas
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Arquitectura tres niveles puesto que es la estructura ms apropiada.

Hotmail
Proceso distribuido puesto que se ejecutan aplicaciones de ambos lados
Gestin de datos remota porque accesa a las bases de datos del servidor por ejemplo para actualizar contactos
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Arquitectura tres niveles puesto que es la estructura ms apropiada.
Cajeros Automticos
Presentacin Remota porque obtiene los datos desde el servidor para poder mostrarlos despus de realizar algunas tareas con ellos
Gestin de datos remota porque accesa a las bases de datos y obtener toda la informacin de los cuentahabientes
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Clientes grandes debido a que parte importante de la aplicacin se ejecuta en el cliente
Arquitectura tres niveles puesto que es la estructura ms apropiada.
Servicios Bancarios
Proceso distribuido debido a que tanto en el servidor como en el cliente se llevan a cabo aplicaciones
Gestin de datos remota porque accesa a las bases de datos y obtener toda la informacin de los cuentahabientes
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Arquitectura tres niveles puesto que es la estructura ms apropiada.
Bibliotecas Digitales
Presentacin Remota porque obtiene los datos desde el servidor para poder mostrarlos despus de realizar algunas tareas con ellos
Gestin de datos remota porque accesa a las bases de datos y obtener toda la informacin de los cuentahabientes
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Arquitectura tres niveles puesto que es la estructura ms apropiada.

E-Mail
Proceso distribuido puesto que se ejecutan aplicaciones de ambos lados
Gestin de datos remota porque accesa a las bases de datos del servidor por ejemplo para actualizar contactos
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Arquitectura tres niveles puesto que es la estructura ms apropiada.
Yahoo
Presentacin distribuida puesto que la aplicacin se ejecuta remotamente
Gestin de datos remota porque accesa a diferentes bases de datos para realizar las bsquedas
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Arquitectura tres niveles puesto que es la estructura ms apropiada.
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Facebook
Presentacin distribuida puesto que la aplicacin se ejecuta remotamente
Gestin de datos remota porque accesa a diferentes bases de datos para realizar las bsquedas
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Clientes grandes debido a que parte importante de la aplicacin se ejecuta en el cliente
Arquitectura tres niveles puesto que es la estructura ms apropiada.
Twitter
Presentacin distribuida puesto que la aplicacin se ejecuta remotamente
Gestin de datos remota porque accesa a diferentes bases de datos para realizar las bsquedas
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Clientes grandes debido a que parte importante de la aplicacin se ejecuta en el cliente
Arquitectura tres niveles puesto que es la estructura ms apropiada.
Servidor de correo
Presentacin distribuida puesto que la aplicacin se ejecuta remotamente directamente en el servidor
Gestin de datos remota porque accesa a diferentes bases de datos para realizar las bsquedas
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Arquitectura tres niveles puesto que es la estructura ms apropiada.

Peridicos
Presentacin Remota porque obtiene los datos desde el servidor para poder mostrarlos despus de realizar algunas tareas con ellos
Gestin de datos remota porque accesa a diferentes bases de datos para realizar las bsquedas
BD Distribuidas para que en caso de que un servidor no funcione se pueda acceder a otro que contenga la misma informacin
Servidor amplio debido a que la aplicacin se ejecuta en su mayora en el servidor
Arquitectura tres niveles puesto que es la estructura ms apropiada.

Referencias:
http://es.slideshare.net/TerryJoss/semana-13-sistemas-distribuidos
http://www.ramonmillan.com/tutoriales/corba.php
http://ldc.usb.ve/~figueira/cursos/SOPII/Exposiciones/Hadoop_Resumen.pdf
http://www.ticout.com/blog/2013/04/02/introduccion-a-hadoop-y-su-ecosistema/
http://guide.couchdb.org/editions/1/es/why.html
http://www.nosql.es/blog/
http://es.slideshare.net/dipina/nosql-cassandra-couchdb-mongodb-y-neo4j
http://altenwald.org/2011/09/14/riak-base-de-datos-sin-spof/
http://www.antweb.es/servidores/redis-todo-lo-que-debes-saber
http://es.slideshare.net/Alianzo/sistemas-distribuidos-23287085
http://www.ciges.net/buscando-nosql-2
http://nosql.mypopescu.com/post/728983002/what-is-membase
http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
https://es.scribd.com/doc/91196304/27/Introduccion-%C2%BFPara-que-se-usa-CORBA

http://sistemas-distribuidos-unerg.blogspot.mx/2008/10/caractersticas-principales-de-los.html
http://sistemasdistribuidos11.blogspot.mx/p/seguridad-y-nuevas-tecnologias-en-los.html
http://www.securityartwork.es/2010/03/03/servidores-proxy-cache-%E2%80%93-optimizando-la-red/
http://resources.pandasecurity.com/enterprise/solutions/8.%20WP%20PCIP%20que%20es%20p2p.pdf
http://www.angelfire.com/co/altatorre/java/Java2.htm
https://bhuvans.wordpress.com/category/technical/architecture/

S-ar putea să vă placă și