1 / 47

Modelos e Linguagens de POO para aplicações Tempo Real

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. Introdução. Sistemas Tempo Real (STR) Correção lógica + temporal

gordon
Download Presentation

Modelos e Linguagens de POO para aplicações Tempo Real

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 OBTRclass ClasseExemplo begin // definição de novos tipos de restrições temporais RT-TypeStart-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 <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; voidAtualizaEstSincronizacao (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, <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 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 ... 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 OBTRClass 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 : < manipulador de exceção reject > case abort : < manipulador de exceção abort > case timeout : < manipulador de exceção timeout > end ... end ApresentaMidia (...), Periodic (... ), ExceçãoApresentaMidia() begin ... end; // outros métodos do objeto-base ... end; MOGClass ClienteMídia begin ... end;

  33. Estrutura básica de um servidor de mídia OBTRClass ServidorDeMídia begin ... RecuperaMídia (...), Aperiodic (Deadline, MET=30), ExceçãoRecuperaMídia () begin ... end; // Outros métodos do servidor ... end; MOGClass 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 [<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 • 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) 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 (...) { ... }; protectedvoid UpdateSynchronizationState (...) { ... }; ... }

  47. Operadores do modelo de intervalo

More Related