ricardo koji ushizaki riko@ime.usp.br1 transparent dynamic reconfiguration for corba joão paulo a....

Post on 07-Apr-2016

220 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Ricardo Koji Ushizaki riko@ime.usp.br

1

Transparent Dynamic Reconfiguration for CORBA

João Paulo A. Almeida(+), Maarten Wegdam(+)(++), Marten van Sinderen(+), Lambert Nieuwenhuis(+)

almeida@cs.utwente.nl , wegdam@lucent.com, sinderen@cs.utwente.nl, L.J.M.Nieuwenhuis@cs.utwente.nl

(+) University of Twente, Twente, The Netherlands(++) Lucent Technologies, Twente, The Netherlands

Ricardo Koji Ushizaki riko@ime.usp.br

2

Introdução

Artigo apresentado no DOA’2001 – http://www.cs.rmit.edu.au/conf/doa/2001/program.htmlPropõe a criação de um Serviço de Reconfiguração Dinâmica para CORBANível do middleware de sistemas distribuídos – transparente aos desenvolvedores

Ricardo Koji Ushizaki riko@ime.usp.br

3

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 riko@ime.usp.br

4

Processo De Reconfiguração Dinâmica

Entidades do sistema: Objetos, Componentes, Sub-Sistemas.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 riko@ime.usp.br

5

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 riko@ime.usp.br

6

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 riko@ime.usp.br

7

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 riko@ime.usp.br

8

Arquitetura do Serviço

Reconfiguration Manager – componente centralLocation Agent – registro de Reconfigurable AgentsReconfiguration Agents – filtra as requisições (requests)

Capsule ACapsule ACapsule

LocationAgent

Factory

ReconfigurationManager

ReconfigurationAgent

ReconfigurationManager

ReconfigurableObjectFactory

ReconfigurableObject

ReconfigurationAgent

GenericFactory

LocationAgent

ObjectObjectObject

Application Objects

Dynamic ReconfigurationService

Ricardo Koji Ushizaki riko@ime.usp.br

9

Criação de um Reconfigurable Object

LocationAgent

ReconfigurableObjectFactory

ReconfigurationManager

ReconfigurableObject

ReconfigurationAgent

Capsule A

1. create_object()

3. creates theobject

2. create_object()

4. register_object()

6. returns referenceto reconfigurable

object

5. register_object()

Ricardo Koji Ushizaki riko@ime.usp.br

10

Substituição de um Reconfigurable Object

ReconfigurableObjectFactory

ReconfigurableObject

ReconfigurationAgent

Capsule B

LocationAgent

ReconfigurableObjectFactory

ReconfigurationManager

ReconfigurableObject

ReconfigurationAgent

Capsule A

1. replace_object()

2. create_object()

10. register_object()

3. createsthe object

6. start_freezing()

7. no_reqs_pending() 4. register_object()

9. set_state()

12. done

11. remove_obj()

5. notify_reconfig()

8. get_state()

Ricardo Koji Ushizaki riko@ime.usp.br

11

Implementação

ReconfigurableObject

Client

ClientRequest

Interceptor

ServerRequest

Interceptor

ClientRequest

Interceptor

Object Request Broker Core

send_request: - copy threadcontext intorequest servicecontext

receive_exception: - if exception causedbecause ofreconfiguration, waitnotification andreissue request (viaLocationForward)(distributed queue)

receive_request: - extract ‘invocation path’- during reconfigurationfilter requests (throwexception to queue)- append id of target objto invocation path andcopy into thread context- increment # incomingrequests for target obj

send_reply: send_other: send_exception: - decrement #incoming requestsfor target

Reconfig.Agent

receive_exception: - wait notification andreissue request (viaLocationForward)

Reconfig.Manager

LocationAgent

request flow (decomposedORB-mediated invocations)reply flow (decomposedORB-mediated invocations)

ORB-mediated invocations

intra-capsule interactions

Factory

application

infrastructure

Ricardo Koji Ushizaki riko@ime.usp.br

12

Testes

Foi criado um protótipo do Serviço em Java, utilizando o ORBacus 4.0.4.

00,20,40,60,8

11,21,41,61,8

Ave

rage

del

ay (m

s)

0 byte 128 bytes 2048 bytes

Size of results + arguments

Delay introduced by the middleware platform inORB-mediated invocations

plain implementation

minimal interceptors

DRS interceptors

Ricardo Koji Ushizaki riko@ime.usp.br

13

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.

top related