PDF de programación - Técnicas de desarrollo de aplicaciones distribuidas tolerantes a fallos sobre arquitecturas CORBA y JAVARMI

Imágen de pdf Técnicas de desarrollo de aplicaciones distribuidas tolerantes a fallos sobre arquitecturas CORBA y JAVARMI

Técnicas de desarrollo de aplicaciones distribuidas tolerantes a fallos sobre arquitecturas CORBA y JAVARMIgráfica de visualizaciones

Publicado el 8 de Octubre del 2018
515 visualizaciones desde el 8 de Octubre del 2018
1,5 MB
298 paginas
Creado hace 22a (19/02/2002)
TÉCNICAS DE DESARROLLO DE APLICACIONES
DISTRIBUIDAS TOLERANTES A FALLOS SOBRE

ARQUITECTURAS CORBA Y JAVARMI

Memoria que presenta para optar al grado de

Doctor en Informática

Luis Miguel Peña Cabañas

Dirigida por el doctor

Juan Pavón Mestras

Departamento de Sistemas Informáticos y Programación

Facultad de Informática

Universidad Complutense de Madrid

Febrero, 2002

Si lo puedes soñar, lo puedes hacer.

- Walt Disney

One ring to rule them all,

One ring to find them,

One ring to bring them all

and in the Darkness bind them

- J. R. R. Tolkien

(ejemplo de diseño centralizado,

no tolerante a fallos)

A todos los que os he conocido durante estos largos años de doctorado. Lo largo ha
hecho, al menos, que seáis muchos. Gracias por vuestra compañía y apoyo. A todos

los sitios donde he vivido y disfrutado mientras Sensei iba evolucionando. En especial,
por los recuerdos que me traen en relación con esta Tesis, Brujas, Amberes, Dublin, y

un trayecto Frankfurt-Stuttgart tantas veces recorrido.

iii

iv

Resumen

Las técnicas de tolerancia a fallos en arquitecturas distribuidas cliente/servidor
(como CORBA, Java RMI o Microsoft DCOM), que a nivel software se implementan
principalmente mediante la replicación de servidores para ocultar fallos individuales,
presentan una interfaz de muy bajo nivel que hacen difícil la implementación de los
servicios tolerantes a fallos. El rendimiento de estos sistemas, que deben actualizar
en cada operación dos o más servidores en lugar de sólo uno, y cuya actualización
debe realizarse con una sincronización muy cuidada para evitar inconsistencias, es
sensiblemente inferior al de los sistemas no tolerantes a fallos. Por esta razón, las
principales líneas de investigación en esta área han buscado las formas de optimizar
esas comunicaciones para obtener sistemas con un rendimiento práctico.

Sin embargo, otras líneas de investigación se han centrado en el estudio de patrones
de implementación que faciliten el empleo de las técnicas subyacentes de tolerancia
a fallos. El sistema propuesto en esta tesis, Sensei, se encuentra en este campo,
estudiando cómo aplicar estas técnicas a grupos de objetos y cómo definir una
interfaz de alto nivel que permita un cómodo empleo de los modelos de
comunicaciones fiables entre servidores replicados.

Por una parte, Sensei trata el problema de la transferencia de estado entre réplicas,
un aspecto de la replicación cubierto en la teoría básica de sincronía virtual pero con
muy poca cobertura en las implementaciones actuales. Definimos un modelo que
cubre desde los protocolos de bajo nivel especificando los mensajes y los
rendimientos en diversos sistemas, hasta los protocolos de alto nivel especificando
su interfaz en lenguaje IDL de CORBA. Más importante, estudiamos las condiciones
que deben cumplir las aplicaciones para poder emplear los distintos modelos de
transferencia de estado y cómo afectan al modelo de sincronía virtual sobre el que se
construyen las aplicaciones replicadas.

Estos protocolos se implementan parcialmente sobre uno de los sistemas de
comunicaciones fiables más conocidos, Ensemble. No obstante, hemos desarrollado
también un sistema de comunicaciones fiables propio, SenseiGMS, persiguiendo
definir una interfaz general, común a los modelos actualmente existentes, sobre la
que implementamos totalmente los protocolos desarrollados.

Una vez resuelta la transferencia de estado, Sensei se centra en los patrones de
comunicación de alto nivel, que permiten a aplicaciones orientadas a objetos
mantenerse en el mismo nivel de abstracción al replicar esos objetos. El sistema
tradicional de comunicaciones en los sistemas de comunicaciones fiables entre
réplicas es el intercambio de mensajes entre esas réplicas, mientras que en Sensei
hemos desarrollado una aplicación, SenseiDomains, que permite factorizar esas
comunicaciones a nivel de componentes que pueden definirse dinámicamente en
dominios, buscándose de esta manera la abstracción de objetos.

v

Además, se observan los patrones más empleados al diseñar las aplicaciones con
tolerancia a fallos, implementándolos o soportándolos en la medida de lo posible.
Una aplicación directa de este soporte de los patrones de implementación es la
posibilidad de replicar automáticamente aplicaciones diseñadas inicialmente como
entidades autónomas sin replicación. Sensei define la forma de migrar esas
aplicaciones para soportar tolerancia a fallos y formas posteriores de optimizar las
comunicaciones entre las réplicas resultantes. Para soportarlo se ha desarrollado la
herramienta SenseiUMA.

Como ejemplo de aplicación de la metodología propuesta, se muestra el diseño de
otra de las piezas de la arquitectura, SenseiGMNS, servicio de gestión de grupos
cuyos componentes están replicados, a su vez, sobre Sensei.

Palabras clave

Sistemas distribuidos, CORBA, JavaRMI, Tolerancia a Fallos, Replicación de
Objetos, Transferencia de Estado, Comunicaciones en grupo.

vi

Summary

Fault Tolerance software techniques for distributed client/server architectures (like
CORBA, JavaRMI or Microsoft DCOM) are usually based on the replication of the
servers to hide single failures. However, these techniques work at a low level, making
difficult the implementation of fault tolerant services. These systems must update on
each request two or more servers instead of just one, and the multiple updates must
be carefully synchronized to avoid inconsistencies. As a result, the performance on
those systems is considerably worse than the equivalent non fault tolerant case. This
is the reason why the main research efforts on this area have been focused on the
optimization of the communications between replicas to obtain systems with a
practical performance.

Nevertheless, other line of work has taken a different approach, focusing on the
implementation patterns that facilitate the use of the fault tolerant techniques. The
system proposed in this Thesis, Sensei, belongs to this second area, studying the
application of those techniques to groups of objects and the definition of a high level
interface to facilitate the use of the reliable communication models.

On one side, Sensei addresses the problem of the state transfer between replicas, an
aspect of the replication that, despite being covered by the virtual synchrony model,
has usually a poor coverage on current implementations of this model. We define a
model to solve this issue, which addresses low level protocols, specifying the
messages and the performance on a variety of systems, and high level protocols,
defining their interface on CORBA IDL. What is more important, we study the
conditions that the applications must hold in order to use the different state transfer
models, and how do they affect to the virtual synchrony model.

These protocols are partially implemented on top of one well-known group
communication system, Ensemble. Nevertheless, we have developed as well our own
reliable group communication system, SenseiGMS, with a generic interface, common
to the existing ones, and the protocols are completely implemented over it.

Once the state transfer issue is solved, Sensei
focuses on the communication
patterns that happen at high level, which allow object-oriented applications to keep
on the same abstraction level when those objects are replicated. The basic traditional
communication entity on reliable group systems is the message, and replicas must
communicate among themselves using this low level mechanism. In Sensei, we have
developed an application, SenseiDomains, that factorizes those communications into
component interactions, components that can be dynamically defined, offering a
standard object orientation abstraction.

Additionally, we have studied the design process of
fault tolerant applications,
catching the most usual implementation patterns, in order to implement or support
them. A direct benefit of this support is the possibility to automatically replicate
applications that have been initially designed as standalone. Sensei defines how to

vii

migrate those applications to have fault tolerance, and how to optimize afterwards
the communications between the created replicas. SenseiUMA is the tool designed to
support this migration.

the proposed methodology, we

As an example of
show the design and
implementation of one of the architectural elements in Sensei, called SenseiGMNS.
This is a group membership service that is itself replicated following the design
principles and with the support of SenseiDomains.

Keywords

Distributed systems, CORBA, JavaRMI, Fault Tolerance, Object Replication, State
Transfer, Group Communications.

viii

ÍNDICE

CAPÍTULO 1 - INTRODUCCIÓN.......................................................................................... 1

CAPÍTULO 2 - SISTEMAS DISTRIBUIDOS ........................................................................ 7

2.1. MODELOS DISTRIBUIDOS................................................................................................... 8
2.2. SOCKETS .......................................................................................................................... 9
2.3. RPC – LLAMADAS A PROCEDIMIENTOS REMOTOS............................................................ 10
2.4. OBJETOS DISTRIBUIDOS................................................................................................... 11
2.5. TENDENCIAS ACTUALES.................................................................................................. 14
2.6. CONCLUSIONES............................................................................................................... 15

CAPÍTULO 3 - SISTEMAS DISTRIBUIDOS FIABLES..................................................... 17

3.1. FIABILIDAD..................................................................................................................... 17
3.1.1. Tolerancia a fallos ..................................................................
  • Links de descarga
http://lwp-l.com/pdf13785

Comentarios de: Técnicas de desarrollo de aplicaciones distribuidas tolerantes a fallos sobre arquitecturas CORBA y JAVARMI (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad