Transparent Dynamic Reconfiguration
for CORBA
João Paulo A. Almeida(+), Maarten Wegdam(+)(++),
Marten van Sinderen(+), Lambert Nieuwenhuis(+)
[email protected] , [email protected],
[email protected], [email protected]
(+) University of Twente, Twente, The Netherlands
(++) Lucent Technologies, Twente, The Netherlands
Ricardo Koji Ushizaki
[email protected]
1
Introdução
Artigo apresentado no DOA’2001 –
http://www.cs.rmit.edu.au/conf/doa/2001/program.html
Propõe a criação de um Serviço de Reconfiguração
Dinâmica para CORBA
Nível do middleware de sistemas distribuídos –
transparente aos desenvolvedores
Ricardo Koji Ushizaki
[email protected]
2
Motivação
Reconfiguração Dinâmica:
 Definição
 Importância
 Reconfiguração planejada e evolucionária
Novas gerações de sistemas distribuídos consistem de
objetos utilizando algum middleware: CORBA, Java RMI
e DCOM.
Middleware facilita a criação de aplicações distribuídas.
Ricardo Koji Ushizaki
[email protected]
3
Processo De Reconfiguração Dinâmica
Entidades do sistema: Objetos, Componentes, SubSistemas.
Entidades são afetadas após reconfiguração do sistema:




Substituição
Migração
Adição
Remoção
Preservação de consistência – “correct state”:



Satisfazer integridade estutural
Entidades em um estado consistente (mutually consistent state)
Manter as invariantes da aplicação
Ricardo Koji Ushizaki
[email protected]
4
Serviço de Reconfiguração Dinâmica
Requisitos:
Corretude
 Aplicação geral
 Mínimo impacto na execução
 Transparência máxima
 Mínimo impacto no CORBA

Ricardo Koji Ushizaki
[email protected]
5
Proposta
Integridade estutural:


Manter as referências para objetos
Manter compatibilidade com antiga interface
Consistência




Safe State
Deter interações que impeça sistema de chegar ao safe
state
Detectar safe state alcançado
Aplicar reconfiguração
Ricardo Koji Ushizaki
[email protected]
6
Safe State
Como chegar ao safe state?

Interferir com atividades do sistema (requests)
3 tipos de requisições:



Blocking set
Necessárias para o sistema chegar ao safe state
Não envolvem objetos afetados
Finalmente, manter o estado da entidade e aplicar
reconfiguração
Ricardo Koji Ushizaki
[email protected]
7
Arquitetura do Serviço
LocationAgent
GenericFactory
Reconfiguration
Manager
Location
Agent
ReconfigurationManager
ReconfigurableObject
ReconfigurableObjectFactory
Capsule
Capsule A
Capsule A
Object
Object
Object
Factory
Application Objects
Dynamic Reconfiguration
Service
ReconfigurationAgent
Reconfiguration
Agent
Reconfiguration Manager – componente central
Location Agent – registro de Reconfigurable Agents
Reconfiguration Agents – filtra as requisições (requests)
Ricardo Koji Ushizaki
[email protected]
8
Criação de um Reconfigurable Object
1. create_object()
5. register_object()
Reconfiguration
Manager
6. returns reference
to reconfigurable
object
Location
Agent
2. create_object()
Capsule A
Reconfigurable
Object
Factory
3. creates the
object
4. register_object()
Ricardo Koji Ushizaki
[email protected]
Reconfigurable
Object
Reconfiguration
Agent
9
Substituição de um Reconfigurable Object
1. replace_object()
12. done
10. register_object()
Reconfiguration
Manager
11. remove_obj()
Location
Agent
5. notify_
reconfig()
9. set_state()
8. get_state()
2. create_object()
Capsule A
Reconfigurable
Object
Factory
Reconfigurable
Object
Capsule B
Reconfigurable
Object
Factory
7. no_reqs_pending()
6. start_freezing()
Reconfiguration
Agent
Ricardo Koji Ushizaki
[email protected]
3. creates
the object
Reconfigurable
Object
4. register_object()
Reconfiguration
Agent
10
Implementação
Ricardo Koji Ushizaki
[email protected]
11
Testes
Foi criado um protótipo do Serviço em Java, utilizando o
ORBacus 4.0.4.
Delay introduced by the middleware platform in
ORB-mediated invocations
Average delay (m s)
1,8
1,6
1,4
1,2
plain implementation
1
0,8
minimal interceptors
DRS interceptors
0,6
0,4
0,2
0
0 byte
128 bytes
2048 bytes
Size of results + argum ents
Ricardo Koji Ushizaki
[email protected]
12
Conclusão
Resultados dos testes indicam mínimo overhead
introduzido pelo uso do Serviço.
Solução isola objetos afetados, permitindo ao resto do
sistema de continuar executando.
Uso de portable interceptors instrui o middleware em obter
informações em tempo de execução.
Ricardo Koji Ushizaki
[email protected]
13
Download

Transparent Dynamic Reconfiguration for CORBA