1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra...

29
1 Sistemas de Sistemas de Objetos Objetos Distribuídos Distribuídos Quality Objects Quality Objects – QuO – QuO Germano Capistrano Germano Capistrano Bezerra Bezerra Junho de 2002 Junho de 2002

Transcript of 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra...

Page 1: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

1

MAC-5759 – MAC-5759 – Sistemas de Sistemas de

Objetos Objetos Distribuídos Distribuídos

Quality Objects – Quality Objects – QuOQuOGermano Capistrano BezerraGermano Capistrano Bezerra

Junho de 2002Junho de 2002

Page 2: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

2

RoteiroRoteiro ApresentaçãoApresentação CORBACORBA e Aplicações Distribuídas e Aplicações Distribuídas QoSQoS em Ambientes Distribuídos em Ambientes Distribuídos Visão Geral de Visão Geral de QuOQuO QDL – Quality Description LanguagesQDL – Quality Description Languages Componentes Internos de Componentes Internos de QuOQuO Cenário de DesenvolvimentoCenário de Desenvolvimento ConclusõesConclusões

Page 3: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

3

Objetivos do SeminárioObjetivos do Seminário

Apresentar uma visão geral de Apresentar uma visão geral de Quality ObjectsQuality Objects visando discutir visando discutir conceitos complementares ao curso conceitos complementares ao curso de SOD, fomentando o interesse de de SOD, fomentando o interesse de futuros estudos no assuntofuturos estudos no assunto..

Page 4: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

4

CORBACORBA e Aplicações e Aplicações DistribuídasDistribuídas

Aplicações distribuídas estão cada vez Aplicações distribuídas estão cada vez mais difundidasmais difundidas

CORBACORBA contribuiu bastante para essa contribuiu bastante para essa difusão:difusão: Interface funcional é especificada de forma Interface funcional é especificada de forma

separada da implementação em siseparada da implementação em si Interoperabilidade mesmo não considerando Interoperabilidade mesmo não considerando

detalhes de implementaçãodetalhes de implementação Transparência de SO, HW, localização física, Transparência de SO, HW, localização física,

linguagem de implementaçãolinguagem de implementação

Page 5: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

5

CORBACORBA e Aplicações e Aplicações DistribuídasDistribuídas

Na prática, Na prática, CORBACORBA funciona bem: funciona bem: Qdo. os recursos são plenosQdo. os recursos são plenos As condições de ambiente são estáveisAs condições de ambiente são estáveis O ambiente de execução é previsívelO ambiente de execução é previsível

Isso vale para Isso vale para LAN´sLAN´s Em Em WAN´sWAN´s::

Muitos recursos são ou podem tornar-se escassosMuitos recursos são ou podem tornar-se escassos Variáveis de sistema são imprevisíveisVariáveis de sistema são imprevisíveis Há uma enorme combinação de cenários Há uma enorme combinação de cenários

possíveispossíveis

Page 6: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

6

CORBACORBA e Aplicações e Aplicações DistribuídasDistribuídas

Problemas encontrados em muitas Problemas encontrados em muitas aplicações:aplicações: Desconsideração das condições variáveis de Desconsideração das condições variáveis de

ambientes distribuídosambientes distribuídos Quando se considera, falta experiência para Quando se considera, falta experiência para

tratar condições diferentes das condições locais tratar condições diferentes das condições locais aos quais o programador está acostumadoaos quais o programador está acostumado

IDLIDL esconde aspectos de implementação que esconde aspectos de implementação que lidam com lidam com tradeoffstradeoffs que um objeto poderá fazer que um objeto poderá fazer

Não há padrão de reusabilidade de componentes Não há padrão de reusabilidade de componentes que lidam com esses aspectosque lidam com esses aspectos

Page 7: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

7

QoSQoS em Ambientes em Ambientes DistribuídosDistribuídos

QoSQoS – Aplicações distribuídas – Aplicações distribuídas constantemente possuem requisitos de constantemente possuem requisitos de Qualidade de Serviço em paralelo aos Qualidade de Serviço em paralelo aos requisitos funcionais especificados na requisitos funcionais especificados na IDLIDL de de CORBACORBA Desempenho em tempo realDesempenho em tempo real Sincronia de dadosSincronia de dados SegurançaSegurança DependênciaDependência Tolerância a falhasTolerância a falhas

Page 8: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

8

QoSQoS em Ambientes em Ambientes DistribuídosDistribuídos

Aplicações podem prover Aplicações podem prover QoSQoS, com o , com o custo de se tornarem muito específicascusto de se tornarem muito específicas

IDLIDL e e ORB´sORB´s Especificam, monitoram e controlam os Especificam, monitoram e controlam os

aspectos funcionais da aplicaçãoaspectos funcionais da aplicação QuOQuO – Arquitetura proposta pela – Arquitetura proposta pela BBNBBN

TechnologiesTechnologies para implementar para implementar QoSQoS em objetos em objetos CORBACORBA QuO QuO especifica, monitora e controla especifica, monitora e controla QoSQoS

Page 9: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

9

QoSQoS em Ambientes em Ambientes DistribuídosDistribuídos

QuOQuO Estados de Estados de QoSQoS, definidos em “contratos” entre , definidos em “contratos” entre

os clientes e os provedores do serviçoos clientes e os provedores do serviço Elementos de sistema monitorados e controlados Elementos de sistema monitorados e controlados

para medir e controlar os estados de para medir e controlar os estados de QoSQoS Comportamento adaptativo para as mudanças Comportamento adaptativo para as mudanças

ocorridas nos estadosocorridas nos estados Com Com QuOQuO, tem-se o controle tanto de , tem-se o controle tanto de

aspectos funcionais como de estratégias de aspectos funcionais como de estratégias de implementação a serem adotadasimplementação a serem adotadas

Page 10: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

10

QoS QoS em ambientes em ambientes DistribuídosDistribuídos

Os objetivos de Os objetivos de QuOQuO são: são: Aplicações distribuídas mais robustas – Aplicações distribuídas mais robustas –

seleção do melhor mecanismo específico em seleção do melhor mecanismo específico em vez de um mecanismo geralvez de um mecanismo geral

Controle sobre como as aplicações Controle sobre como as aplicações distribuídas podem ser adaptativas – possuir distribuídas podem ser adaptativas – possuir a informação correta para a decisão de a informação correta para a decisão de como o sistema deve se comportarcomo o sistema deve se comportar

Prover reusabilidades de mecanismos Prover reusabilidades de mecanismos adaptativos – adaptativos – Quality Description LanguagesQuality Description Languages

Page 11: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

11

Visão Geral de Visão Geral de QuOQuO QuOQuO especifica os aspectos de especifica os aspectos de QoSQoS de de

forma análoga à especificalção funcional forma análoga à especificalção funcional da da IDLIDL

O fluxo de requisição em QuO é O fluxo de requisição em QuO é modificado em relação ao fluxo de modificado em relação ao fluxo de CORBACORBA

Surgem alguns novos elementos:Surgem alguns novos elementos: Delegados (Delegados (Delegates)Delegates) ““Contratos” (Contratos” (ContractsContracts)) Objetos de condições de sistema (Objetos de condições de sistema (System System

condition objectscondition objects))

Page 12: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

12

Visão Geral de Visão Geral de QuOQuO

Invocação remota de métodos em uma aplicação Invocação remota de métodos em uma aplicação QuOQuO

Page 13: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

13

Visão Geral de Visão Geral de QuOQuO Objetos Delegados – provê uma interface Objetos Delegados – provê uma interface

idêntica à interface do objeto remoto, mas idêntica à interface do objeto remoto, mas pode fazer verificação de contratos nas pode fazer verificação de contratos nas chamadas e retornos dos métodoschamadas e retornos dos métodos

Objetos de Contrato – especifica o nível de Objetos de Contrato – especifica o nível de serviço esperado, as regiões de operação e serviço esperado, as regiões de operação e acionamento de comportamento adaptativoacionamento de comportamento adaptativo

Objetos de Condições de Sistema – faz a Objetos de Condições de Sistema – faz a ligação entre os contratos e os recursos, ligação entre os contratos e os recursos, mecanismos, objetos e mecanismos, objetos e ORB´sORB´s..

Page 14: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

14

Visão Geral de Visão Geral de QuOQuO

Detalhamento da chamada de método em Detalhamento da chamada de método em QuOQuO

Page 15: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

15

Visão Geral de Visão Geral de QuOQuO Chamada é direcionada ao Objeto Chamada é direcionada ao Objeto

DelegadoDelegado Delegado pode verificar o contratoDelegado pode verificar o contrato O contrato possui um conjunto de O contrato possui um conjunto de

regiões aninhadas que descrevem os regiões aninhadas que descrevem os possíveis estados de possíveis estados de QoSQoS no sistema no sistema

As regiões são definidas de acordo com As regiões são definidas de acordo com os valores de todas as propriedades de os valores de todas as propriedades de sistema avaliadas, através dos objetos sistema avaliadas, através dos objetos de condições de sistemade condições de sistema

Page 16: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

16

Visão Geral de Visão Geral de QuOQuO Surge mais uma função a ser desempenhada Surge mais uma função a ser desempenhada

na elaboração do sistema distribuído: a do na elaboração do sistema distribuído: a do desenvolvedor desenvolvedor QuOQuO

O trabalho desse novo elemento é feito O trabalho desse novo elemento é feito através de:através de: Uma coleção de Uma coleção de Quality Description LanguagesQuality Description Languages

((QDLQDL) que descrevem contratos, objetos de ) que descrevem contratos, objetos de condições de sistema e o comportamento condições de sistema e o comportamento adaptativoadaptativo

Núcleo de Núcleo de QuOQuO ( (kernelkernel)) Geradores de códigoGeradores de código

Page 17: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

17

QDL – Quality QDL – Quality Description LanguagesDescription Languages

Contract Description LanguageContract Description Language ( (CDLCDL) – ) – estabelece os padrões de uso esperado e os estabelece os padrões de uso esperado e os requisitos de QoS, define as regiões de requisitos de QoS, define as regiões de condições de sistema e o comportamento condições de sistema e o comportamento adaptativoadaptativo

Resource Description LanguageResource Description Language ( (RDLRDL) – ) – descreve os recursos disponíveis no sistema e descreve os recursos disponíveis no sistema e seus estadosseus estados

Structure Description LanguageStructure Description Language ( (SDLSDL) – define ) – define a estrutura interna de um objeto remotoa estrutura interna de um objeto remoto

Page 18: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

18

QDL – Quality QDL – Quality Description LanguagesDescription Languages

Elementos de um contrato:Elementos de um contrato: Um conjunto de regiões aninhadasUm conjunto de regiões aninhadas Transições para cada nível de regiões e Transições para cada nível de regiões e

comportamento a ser disparadocomportamento a ser disparado Referência a objetos de condições de sistema, Referência a objetos de condições de sistema,

que podem ser parâmetros ou locaisque podem ser parâmetros ou locais CallbacksCallbacks para notifiação de clientes e objetos para notifiação de clientes e objetos

Isso engloba os possíveis estados de um Isso engloba os possíveis estados de um sistema, a informação que necessita ser sistema, a informação que necessita ser monitorada e as ações a ser tomadasmonitorada e as ações a ser tomadas

Page 19: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

19

QDL – Quality QDL – Quality Description LanguagesDescription Languages

contract repl_contract(contract repl_contract( syscond ValueSC ValueSCImpl ClientExpectedReplicas,syscond ValueSC ValueSCImpl ClientExpectedReplicas, callback AvailCB ClientCallback,callback AvailCB ClientCallback, syscond ValueSC ValueSCImpl MeasuredNumberReplicas,syscond ValueSC ValueSCImpl MeasuredNumberReplicas, syscond ReplSC ReplSCImpl ReplMgr ) issyscond ReplSC ReplSCImpl ReplMgr ) is

negotiated regions arenegotiated regions are region Low_Cost : when ClientExpectedReplicas == 1 =>region Low_Cost : when ClientExpectedReplicas == 1 => reality regions arereality regions are region Low : when MeasuredNumberReplicas < 1 =>region Low : when MeasuredNumberReplicas < 1 => region Normal : when MeasuredNumberReplicas == 1 =>region Normal : when MeasuredNumberReplicas == 1 => region High : when MeasuredNumberReplicas > 1 =>region High : when MeasuredNumberReplicas > 1 => transitions aretransitions are transition any->Low : ClientCallback.availability_degraded();transition any->Low : ClientCallback.availability_degraded(); transition any->Normal : transition any->Normal :

ClientCallback.availability_back_to_normal();ClientCallback.availability_back_to_normal(); transition any->High : transition any->High :

ClientCallback.resources_being_wasted();ClientCallback.resources_being_wasted(); end transitions;end transitions; end reality regions;end reality regions;

Page 20: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

20

QDL – Quality QDL – Quality Description LanguagesDescription Languages

region Available : when ClientExpectedReplicas >= 2 =>region Available : when ClientExpectedReplicas >= 2 => reality regions arereality regions are region Low : when MeasuredNumberReplicas < region Low : when MeasuredNumberReplicas <

ClientExpectedReplicas =>ClientExpectedReplicas => region Normal : when MeasuredNumberReplicas >= region Normal : when MeasuredNumberReplicas >=

ClientExpectedReplicas =>ClientExpectedReplicas => transitions aretransitions are transition any->Low : transition any->Low :

ClientCallback.availability_degraded();ClientCallback.availability_degraded(); transition any->Normal : transition any->Normal :

ClientCallback.availability_back_to_normal();ClientCallback.availability_back_to_normal(); end transitions;end transitions; end reality regions;end reality regions; transitions aretransitions are transition Low_Cost->Available :transition Low_Cost->Available : ReplMgr.adjust_degree_of_replication(ClientExpectedReplicas);ReplMgr.adjust_degree_of_replication(ClientExpectedReplicas); transition Available->Low_Cost :transition Available->Low_Cost : ReplMgr.adjust_degree_of_replication(ClientExpectedReplicas);ReplMgr.adjust_degree_of_replication(ClientExpectedReplicas); end transitions;end transitions; end negotiated regions;end negotiated regions;end repl_contract;end repl_contract;

Page 21: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

21

Componentes Internos Componentes Internos de de QuOQuO

Page 22: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

22

Componentes Internos Componentes Internos de de QuOQuO

Ambiente de execução encapsulado em um Ambiente de execução encapsulado em um objeto delegado que é executado na aplicaçãoobjeto delegado que é executado na aplicação

Contratos e condições de sistema executados Contratos e condições de sistema executados em um núcleo (em um núcleo (kernelkernel) independente) independente

Comunicação entre o delegado e o núcleo Comunicação entre o delegado e o núcleo feita através de feita através de CORBACORBA

Vantagens desse modeloVantagens desse modelo Contratos podem ser gerados na linguagem de Contratos podem ser gerados na linguagem de

implementação do núcleoimplementação do núcleo Comportamento assíncrono dos objetos de Comportamento assíncrono dos objetos de

contratos e condições em múltiplos processoscontratos e condições em múltiplos processos

Page 23: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

23

Componentes Internos Componentes Internos de de QuOQuO

Núcleo: biblioteca de serviços, escritos em Núcleo: biblioteca de serviços, escritos em JavaJava

Serviço do Objeto Serviço do Objeto FactoryFactory Implementado usando reflexão em JavaImplementado usando reflexão em Java Instancia, localiza e carrega objetos no núcleoInstancia, localiza e carrega objetos no núcleo Núcleo mantém listagem de objetos usados por Núcleo mantém listagem de objetos usados por

cada objeto delegadocada objeto delegado Serviço do Objeto Serviço do Objeto Contract EvaluatorContract Evaluator

Agenda a avaliação de contratosAgenda a avaliação de contratos Avaliação por demanda de métodosAvaliação por demanda de métodos Avaliação disparada por observaçãoAvaliação disparada por observação

Page 24: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

24

Componentes Internos Componentes Internos de de QuOQuO

Delegado: representante do objeto Delegado: representante do objeto remoto, com comportamento adaptativoremoto, com comportamento adaptativo

Código gerado a partir da Código gerado a partir da IDLIDL e e QDLQDL Descrição de ContratosDescrição de Contratos Descrição EstruturalDescrição Estrutural

Mecanismo de SeleçãoMecanismo de Seleção Comportamentos alternativosComportamentos alternativos

Objeto implementado na linguagem do Objeto implementado na linguagem do cliente, com suporte a C++ e Javacliente, com suporte a C++ e Java

Page 25: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

25

Componentes Internos Componentes Internos de de QuOQuO

bindbind substituído por substituído por connectconnect connect()connect()

Instancia um Instancia um CORBA proxyCORBA proxy Localiza o núcleo do Localiza o núcleo do QuOQuO ou cria um ou cria um Usa os serviços do objeto Usa os serviços do objeto FactoryFactory para criar para criar

objetosobjetos Inicializa e faz a ligação entre todos os objetos Inicializa e faz a ligação entre todos os objetos

do ambiente de execuçãodo ambiente de execução Objetos delegados podem estar aninhadosObjetos delegados podem estar aninhados Objetos do núcleo podem ser passados Objetos do núcleo podem ser passados

como parâmetros do como parâmetros do connect()connect()

Page 26: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

26

Componentes Internos Componentes Internos de de QuOQuO

Objetos de ContratoObjetos de Contrato Cada região do contrato é definida como Cada região do contrato é definida como

uma sentença de predicado de todos os uma sentença de predicado de todos os valores das condiçõesvalores das condições

O primeiro predicado verdadeiro determina O primeiro predicado verdadeiro determina a região atualmente ativaa região atualmente ativa

Pode-se usar um modificar Pode-se usar um modificar precedenceprecedence para para manipular a ordem de avaliaçãomanipular a ordem de avaliação

Comportamentos de transição podem ser Comportamentos de transição podem ser especificadosespecificados

Page 27: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

27

Componentes Internos Componentes Internos de de QuOQuO

Objetos de Sistema – uma única Objetos de Sistema – uma única propriedade do sistemapropriedade do sistema Tempo passado desde a última chamadaTempo passado desde a última chamada Número de sessões ativasNúmero de sessões ativas

Objeto Java que implementa uma Objeto Java que implementa uma interfaceinterface comum a todos os objetos de sistemacomum a todos os objetos de sistema

Apenas Apenas getValue()getValue() na forma mais simples na forma mais simples Objetos Objetos CORBACORBA na forma mais complexa na forma mais complexa

Page 28: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

28

Cenário de Cenário de DesenvolvimentoDesenvolvimento

Programadores de ClientesProgramadores de Clientes Usuários de objetos adaptativosUsuários de objetos adaptativos Trabalham de forma semelhante à de Trabalham de forma semelhante à de CORBACORBA Inicializam cliente com alguns Inicializam cliente com alguns

comportamentos esperadoscomportamentos esperados Programadores de ObjetosProgramadores de Objetos

Adicionam funcionalidade aos tipos de Adicionam funcionalidade aos tipos de adaptaçãoadaptação

Programadores Programadores QoSQoS Contratos e condições de sistemasContratos e condições de sistemas

Page 29: 1 MAC-5759 – Sistemas de Objetos Distribuídos Quality Objects – QuO Germano Capistrano Bezerra Junho de 2002.

29

ConclusõesConclusões Aplicações distribuídas precisam adaptar-Aplicações distribuídas precisam adaptar-

se a situações onde as condições de se a situações onde as condições de sistema são aquém das desejáveissistema são aquém das desejáveis

Os desenvolvedores precisam de Os desenvolvedores precisam de ferramentas para tratar esses casos de ferramentas para tratar esses casos de forma sistemáticaforma sistemática

QuOQuO propõe um modelo de arquitetura propõe um modelo de arquitetura para prover para prover QoSQoS a aplicações distribuídas a aplicações distribuídas

Os objetivos de Os objetivos de QuOQuO são complementares são complementares aos de aos de CORBACORBA, não de confronto, não de confronto