A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelos e Linguagens de POO para aplicações Tempo Real Necessidade de Modelos Uso de OO e Reflexão Computacional Modelos e Ling. OO e Reflexivos O Modelo.

Apresentações semelhantes


Apresentação em tema: "Modelos e Linguagens de POO para aplicações Tempo Real Necessidade de Modelos Uso de OO e Reflexão Computacional Modelos e Ling. OO e Reflexivos O Modelo."— Transcrição da apresentação:

1 Modelos e Linguagens de POO para aplicações Tempo Real Necessidade de Modelos Uso de OO e Reflexão Computacional Modelos e Ling. OO e Reflexivos O Modelo RTR A Linguagem Java/RTR

2 Introdução Sistemas Tempo Real (STR) Correção lógica + temporal Req. específicos: correção temporal e previsibilidade Req. emergentes: distribuição, flexibilidade e integração Aplicações tempo real Tamanho, complexidade e criticalidade (hard x soft) Necessidade de correção temporal Desenvolvimento de STR Fator Tempo deve ser considerado em todos os estágios e suportado pelo hardware, S.O., modelo e ling. programação Programação de STR Inadequação de modelos e linguagens convencionais Soluções propostas: Extensões tempo real : RTCC, RT-Modula2, Ada95 Linguagens tempo real novas : Pearl, HI-Pearl, RT-Euclid

3 Introdução Problemas encontrados: Gerenciamento da complexidade / Falta de flexibilidade Representação/Controle dos aspectos temporais Dependência de ambientes operacionais específicos Dificuldade de reuso, manutenção e integração Busca de novos mecanismos Estruturação de STR / Representação aspectos temporais Orientação a objetos Reflexão Computacional Propostas recentes RTC++, FLEX, RTT, RT-Java, RTSJ, R2, DRO/DROL e RT-MOP, Modelo RTR, Java/RTR

4 Orientação a Objetos e Reflexão Computacional no contexto Tempo Real Orientação a Objetos Sucesso do paradigma Uso de Objetos é Atrativo Gerenciamento da complexidade Características básicas favorecem reuso. flexibilidade e Manutenção Concorrência e distribuição Problemas Não suporta representação e controle das Restrições Temporais Ineficiência e Imprevisibilidade STR Hard x STR Soft

5 Orientação a Objetos e Reflexão Computacional no contexto Tempo Real Reflexão Computacional Raciocinar e atuar sobre sí próprio Monitorar e Modificar Estrutura e Comportamento do Sistema Qualquer Paradigma, OO em particular Abordagem de Meta-Objetos Separa Aspectos Funcionais de Aspectos não-funcionais Ajustes dinâmicos de estrutura e comportamento Torre reflexiva

6 Orientação a Objetos e Reflexão Computacional no contexto Tempo Real Vantagens do uso de Reflexão Simplificação da programação Modularização Reuso e Manutenção Incremento da Flexibilidade Controle do usuário sobre o sistema Extensibilidade e evolução Áreas de aplicação SO, SD, Projeto de Linguagens, Tolerância a Falhas, Concorrência, Trabalho Cooperativo e Tempo Real

7 Reflexão Computacional e Tempo Real Abordagem promissora Flexibilidade e gerenciamento Adequação à questões correlatas a TR Potencialidades Adição/modificação de construções temporais Definição de comportamento alternativo Adequação do algoritmo de escalonamento

8 Reflexão Computacional e Tempo Real Potencialidades Ajustar Tempo de Execução Análise de escalonabilidade dinâmica Implementar protocolos TR Independência entre aplicação e ambiente operacional Incrementar a portabilidade Problemas Desempenho e previsibilidade Informações a serem refletidas

9 Modelos de Programação TR OO STR devem satisfazer: Correção Temporal Previsibilidade Segurança de Funcionamento STR também devem satisfazer: Modularidade, Reusabilidade, Manutenibilidade, Distribuição, Flexibilidade e Integração com Sistemas não-TR

10 Modelos de Programação TR OO Caracterização Sistema computacional de controle e Ambiente a ser controlado Estrutura e semântica de funcionamento deve representar integralmente aspectos funcionais e de controle temporal Aspecto central no desenvolvimento Base para Metodologias e LPTR

11 Modelos de Programação TR OO Modelo RTO.K (Kim e Kopetz, 92, 94, 96) Extensão do modelo de Objetos Introduz Métodos Espontâneos (ativados por tempo) Intervalo, Frequência, Start e Deadline Associação de deadlines às ativações Dados de tempo real (duração máxima de validade) Restrição básica de concorrência Unidade de armazenamento atômica Comunicação chamadas podem ou não ser bloqueadas Independência de plataforma e linguagem

12 Modelos de Programação TR OO Modelo RTC++ (Ishikawa 92) Modelo implícito à LTR RTC++ Objetos ativos (com rest. Temporais) Executam concorrentemente RT – métodos e comandos Exceções temporais Concorrência Regiões criticas (c/ RT) Comunicação síncrona Reply – sender continua Filosofia de programação – Ling. RTC++

13 Modelos de Programação TR OO Modelo DRO (Takashio e Tokoro, 93) Extensão distribuida do modelo OO Best-effort e least-suffering Invocação polimórfica Métodos com RT Restrições Temporais Tarefas Periódicas (métodos ativos) Tempo de execução dos métodos Controle reflexivo Concorrência – estados habilitados Comunicação – polimorfismo temporal Linguagem DROL

14 Modelos de Programação TR OO Outros Modelos RTT – RealTimeTalk Framework para Modelagem e Projeto de STR Modelo R2 (Real-Time Reflective) OO e Reflexão Computacional STR soft Linguagem ABCL RT-MOP Baseado em grupos de escalonamento Meta-objetos

15 Modelo RTR Objetivos Estruturação e programação de STR Favorecendo correção temporal Flexibilizando representação/controle dos aspectos temporais Facilitando gerenciamento da complexidade Reuso/manutenção de software tempo real Extensão/evolução de sistemas Independência de linguagem e de ambiente operacional Caracterização Objetos, Concorrência, Reflexão e Tempo Real

16 Modelo RTR Reflexão no modelo RTR Monitorar / Modificar - Estrutura / Comportamento Abordagem de meta-objetos objetos-base - questões funcionais meta-objetos - questões de controle Vantagens potenciais Simplificação, flexibilidade políticas de controle a nível de aplicação capacidade de reuso e manutenção Focos de utilização Adição/modificação de construções temporais Alteração/substituição de algoritmos de escalonamento Manipulação de exc. temporais, concorrência e sincronização Controle do comportamento : tempo, carga, QoS,... Tempo Real representação/controle de restrições temporais Escalonamento tempo real : meta-nível da aplicação Abordagem de melhor esforço (best-effort)

17 Modelo RTR Estrutura geral /Dinâmica de funcionamento

18 Modelo RTR Descrição detalhada Objetos-base de tempo real (OBTR) Similar aos objetos convencionais Representação de restrições temporais Declaração de novos tipos de restrições temporais RT-Type ActivationInterval = (StartTime, EndTime) Associação de restrições temporais e manipuladores de exceções aos métodos do objeto void Metodo1(...), ActivationInterval (T1, T2),Exceçao1(...) Ativação de métodos com atributos temporais ObjetoX.Metodo1(...), (300, 1000) Cláusula Timeout

19 Exemplo de um OBTR OBTR class ClasseExemplo begin // definição de novos tipos de restrições temporais RT-Type Start-at = (StartTime, Deadline, MET); // declaração das variáveis da classe... // declaração dos métodos: void Met1 (... ), Aperiodic (D, MET=20), ExcMet1( ); begin... end; void Met2 (... ), Periodic (P, Fim, MET=10),ExcMet2( ); begin... end; void Met3 (... ), Aperiodic(D, MET=15), ExcMet3 ( ); begin... end; void Met4 (... ), Start-at (Tinicio,D,MET=10),ExcMet4; begin... end;. end

20 Meta-objetos gerenciadores (MOG) Funções básicas Gerenciamento de pedidos de ativação Controle de concorrência Especificação/controle de sincronização Controle das restrições temporais Interação com MO Escalonador e MO Relógio Manipulação de exceções temporais Ativação de métodos dos objetos-base Estrutura geral MOG class id-meta-classe begin end

21 Exemplo de um MOG MOG class MetaClasseExemplo; begin // Declaração das variáveis... // *** seção de gerenciamento *** void RecebePedido (MetId,... ) begin... end; void ProcessaPedidoSRT (MetId,... ) begin... end; void LiberaPedidoDeAtivacao (MetId) begin... end; void FimDeExecucao(MetId) begin... end; // *** seção de sincronização *** Path 2 : (Met1 ; Met3) end; bool VerificaSincronizacao(MetId) begin... end; void AtualizaEstSincronizacao (MetId) begin... end; // *** seção de exceções temporais *** void ExcMet1 (... ) begin... end;... // *** seção de restrições temporais *** void Periodic(MetId, ExcId, P, Fim, MET) begin... end; void Aperiodic (MetId, ExcId, D, MET) begin... end; void Start-at (MetId, ExcId, Tinicio, D, MET) begin... end; end;

22 RT Aperiodic void Aperiodic (MetId, ExcId, D, MET) begin id-MOE.Escalona (id-MOG, MetId, D) if D > (current-time + MET) then id-MOG.LiberaPedidoDeAtivação (MetId) ; if D > (current-time + MET) then id-OBTR.MetId (... ); id-MOG.AtualizaEstadoSincronizacao(MetId) else id-MOG.ExcId (... ) end if id-MOG.FimDeExecução (... ) else id-MOG.ExcId (... ); id-MOE.LiberaProximoPedido ( ) end if end;

23 Meta-objeto escalonador (MOE) Funções básicas Recebe, ordena e libera pedidos de ativação Implementa a política de escalonamento Mapeia decisões de escalonamento para suporte subjacente Vantagens Flexibilidade na escolha da política de escalonamento Independência de ambiente operacional adequação às especificidades das aplicações

24 Meta-objeto relógio (MOR) Funções básicas Fornecer uma base de tempo Programar ativações para um tempo futuro Efetuar ativações time-trigger Controlar passagem do tempo detectar violações temporais

25 Potencialidade / Expressividade do Modelo RTR Facilidades básicas inerentes Suporte a facilidades avançadas Reflexão de aspectos não temporais Cláusula CATEGORIA Ajuste dinâmico dos atributos das restrições temporais Tempo máximo de execução, Período, Deadline,... Análise de escalonabilidade dinâmica Política de admissão de tarefas Escalonamento tempo real Mudança dinâmica da política uso simultâneo de diferentes políticas Controle reflexivo da disponibilidade de memória Criação de objetos - operação reflexiva gerenciador de memória determinista

26 Polimorfismo Temporal Computação imprecisa - N-versões Exemplo: RT-Type TimingPolymorphic = (Deadline, );... void DisplayImagem(... ), TimingPolymorphic (D, Met1=DI- qA, Met2= DI-qB, Met3= DI- qC), IdExcecaoTemporal ( )... void DI-qA (... ) // MET = 150 begin... end; void DI-qB (... ) // MET = 100 begin... end; void DI-qC (... ) // MET = 50 begin... end; Escalonamento task-pair versão hard, versão soft

27 sincronização multimídia Aspectos temporais questão de sincronização tratamento best-effort Relações de sincronização Modelo de intervalos (Allen 83) - 13 relações Modelo de intervalos estendido (Wahl 94) 29 relações - 10 operadores Representação dos operadores no modelo RTR Restrições temporais básicas ActivationInterval, Aperiodic, Periodic, Start-at

28 Exemplo : Representação de uma animação parcialmente comentada por um vídeo Animation while (d1, d2) Audio void Animation (... ), ActivationInterval (StartTime, EndTime), Exc1() begin... end; void Audio (... ), ActivationInterval (StartTime, EndTime), Exc2() begin... (... ), (T1, (... ), (T1 + D1, T2 - D2);...

29 Extensão distribuída do modelo RTR Adoção da arquitetura CORBA Interoperabilidade, transp.de distribuição e heterogeneidade Meta-objetos de Comunicação MetaStub / MetaDII e MetaSkeletons Comportamento tempo real Adoção de políticas best-effort Restrições temporais controladas localmente timeouts (cliente) e deadlines (servidor). ( ),( ) Timeout ( ), Exception begin case reject : case abort : case timeout : end

30 Estrutura do modelo RTR distribuído

31 Exemplo de aplicação Composição de um documento multimídia Protótipo da extensão distribuída Mapeamento do modelo RTR para SOLARIS 2.4 Implementação usando ORBLINE 1.0

32 Estrutura básica de um cliente de mídia OBTR Class ClienteMídia begin... RequisitaMídia (...), Periodic (StartTime, Period, EndTime, MET), ExceçãoRequisitaMídia () begin... ServidorDeMídia.RecuperaMídia(Buffer[I],...), (ValorDeadline) Timeout (ValorTimeout), Exception begin case reject : case abort : case timeout : end... end ApresentaMidia (...), Periodic (... ), ExceçãoApresentaMidia() begin... end ; // outros métodos do objeto-base... end; MOG Class ClienteMídia begin... end;

33 Estrutura básica de um servidor de mídia OBTR Class ServidorDeMídia begin... RecuperaMídia (...), Aperiodic (Deadline, MET=30), ExceçãoRecuperaMídia () begin... end; // Outros métodos do servidor... end; MOG Class ServidorDeMídia begin... // seção de exceções : ExceçãoRecuperaMídia () begin... end;... // seção de restrições temporais : Aperiodic (...) begin... end; end;

34 Java / RTR Caracterização Extensão da linguagem Java ( TM Sun Microsystems Inc. ) Implementação explícita do modelo RTR Objetivos Viabilizar programação de STR segundo o modelo RTR Uso da tecnologia Java no desenvolvimento de STR Extensões básicas Definição de um esquema reflexivo Representação / controle dos aspectos temporais Pré-processador Java/RTR - Java Análise léxica, sintática e semântica das extensões RTR Mapeamento das extensões para construções Java

35 Estrutura reflexiva de Java/RTR Objetos e meta-objetos Representados por diferentes tipos de classes Estrutura geral de classes e meta-classes [ ] [ ] class [extends ] [implements ] onde identifica o tipo de classe Java/RTR RTBC - Real-Time Base-Class MMC - Manager Meta-Class SMC - Scheduler Meta-Class CMC - Clock Meta-Class classe-base convencional, assumida por default

36 Classes RTBC Alteram classes Java convencionais com as seguintes extensões / proibições: Declaração de tipos de restrições temporais RT-Type = [, ] ( ) Associação de restrições temporais, manipuladores de exceções e categorias [ ] ([ ]) [throws ] [, ] [, category = ] Associação de par. temporais / timeout à ativação de métodos Proibição criação/manipulação explícita de threads de controle Introdução de mensagens assíncronas

37 Meta-classes MMC Todas as facilidades Java Especificação da sincronização via path-expression Implementam interface padrão (Protocol-MMC) MMC padrão (Standard-MMC) Programadas pelo usuário (uma por RTBC da aplicação) Novos tipos de restrições temporais Manipuladores de exceções Procedimentos de controle (categorias)

38 Classes Scheduler e Clock Meta-classes SMC e CMC Todas as facilidades Java Interface padrão / Meta-classe padrão Classes convencionais Funções auxiliares Tarefas não tempo real (RTBCs especiais)

39 Java / RTR Criação de objetos/meta-objetos MO manager - criados implicitamente sempre que um objeto-base tempo real for criado MO scheduler / MO clock - criados implicitamente Ativação de mét. de obj. tempo real Forma reflexiva ativação desviada para MO manager correspondente mensagens síncronas ou assíncronas parâmetros temporais / cláusula timeout Concorrência / sincronização Esquema misto Meta-classes - mecanismos padrão de Java Classes RTBC - comportamento proposto no modelo RTR controle via meta-objeto manager necessidade de controle explícito sobre as threads ativas

40 Análise do modelo RTR Vantagens Facilidades relativas a estruturação Flexibilidade para representação / controle aspectos temporais Reuso/manutenção na presença do tempo Aberto a novas técnicas e mecanismos tempo real Extensibilidade Independência de ambiente operacional Limitações Previsibilidade não inerente Overhead devido a reflexão Comparando com outros modelos tempo real Expressividade, no mínimo, eqüivalente Reúne características dispersas nos demais modelos + Flexível, + Adaptável e + Independente

41 Análise da linguagem Java/RTR Vantagens Expressividade/Flexibilidade - representação de asp. temporais Facilidade no entendimento / gerenciamento da complexidade Capacidade de reuso / manutenção Independência de ambiente operacional Tratamento reflexivo das questões temporais Independência de arquitetura de Java Redução do Gapsemântico entre projeto e implementação Tratamento integrado concorrência x tempo real

42 Análise da linguagem Java/RTR Limitações Esquema misto de concorrência / sincronização Previsibilidade presença de mecanismos / construções não deterministas limitação comum às demais LTROO Necessidade de disciplina de programação, substituição de mecanismos

43 Análise Comparativa

44 Trabalhos correlatos Extensão distribuida Simulação em Java Tratutor Java/RTR – Java Tradutor Java-RTR – RTSJ (Eclipse) Mecanismo de Adaptação para TR usando Computação Imprecisa Sincronização Multimidia

45 Sincronização em Java class Buffer { private int contents; private boolean avaliable = false; public synchronized int get () {while (avaliable == false) wait (); avaliable = false; notify (); return contents; } public synchronized void put (int value) {while (avaliable == true) wait (); contents = value; avaliable = true; notify (); }

46 Sincronização em Java/RTR RTBC class Buffer { private int contents; public int get (); { return contents; } public void put (int value) { contents = value; } } MMC class Meta_Buffer extends Standard-MMC {... // seção de sincronização path put ; get end; protected boolean VerifySynchronization (...) {... }; protected void UpdateSynchronizationState (...) {... };... }

47 Operadores do modelo de intervalo


Carregar ppt "Modelos e Linguagens de POO para aplicações Tempo Real Necessidade de Modelos Uso de OO e Reflexão Computacional Modelos e Ling. OO e Reflexivos O Modelo."

Apresentações semelhantes


Anúncios Google