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

Apresentações semelhantes


Apresentação em tema: "Modelos e Linguagens de POO para aplicações Tempo Real"— 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) Aplicações tempo real
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: Busca de novos mecanismos
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
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
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 Tempo Real
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( ); void Met3 ( ... ), Aperiodic(D, MET=15), ExcMet3 ( ); 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 <Seção de gerenciamento> <Seção de sincronização> <Seção de exceções temporais> <Seção de restrições temporais> 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 ( ... ) id-MOG.ExcId ( ... ); id-MOE.LiberaProximoPedido ( ) 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, <MethodList>); ... 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 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 ... end; ... @Animation ( ... ), (T1, T2); @Audio ( ... ), (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) <id-objeto>.<id-método> (<args>),(<args-temp>) Timeout ( <valor-timeout> ), Exception begin case reject : <manipulador de exceção> case abort : <manipulador de exceção> case timeout : <manipulador de exceção> 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 () ServidorDeMídia.RecuperaMídia(Buffer[I], ...), (ValorDeadline) Timeout (ValorTimeout), Exception case reject : < manipulador de exceção reject > case abort : < manipulador de exceção abort > case timeout : < manipulador de exceção timeout > 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 // seção de exceções : begin ... end; // seção de restrições temporais : Aperiodic (...) begin end;

34 Java / RTR Caracterização Objetivos Extensões básicas
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 [<ClassModifiers>] [<RTRoption>] class <Identifier> [extends <TypeName>] [implements <TypeNameList>] <ClassBody> onde <RTRoption> 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 <RTIdentifier> = [<RTType> , ] (<RTAtributesList>) Associação de restrições temporais, manipuladores de exceções e categorias [<M-Modifiers>] <ResultType> <M-Identifier> ([<ParameterList>]) [throws <TypeNameList>] [,<TimingConstraint >] [,<TimingExceptionHandler>] [, category = <CategoryIdentifier>] <MethodBody> 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 (RTBC’s 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 Limitações
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 “Gap”semâ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) contents = value; avaliable = true;

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"

Apresentações semelhantes


Anúncios Google