middlewares para sistemas embarcados (embutidos) jordan janeiro
TRANSCRIPT
![Page 1: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/1.jpg)
Middlewares para Sistemas Embarcados (Embutidos)
Jordan Janeiro
![Page 2: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/2.jpg)
Introdução - Esclarecimento
Sistemas embarcados ou sistemas embutidos?
![Page 3: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/3.jpg)
Introdução - Definição
O que são sistemas embarcados?
– São sistemas microprocessados, embutidos nos dispositivos que eles irão controlar, capazes de realizar tarefas específicas com recursos computacionais restritos.
![Page 4: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/4.jpg)
Dificuldades
Escassez de recursos.– Estações de trabalho com memória cache da
UCP maior do que memória ROM ou RAM de dispositivos embarcados.
Forma de programação atingida.– Algoritmos otimizados.
Lembra o passado.
![Page 5: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/5.jpg)
Demanda
Não se deve menosprezar o mercado !
– 11 bilhões de dispositivos manufaturados por ano (2003).
Porém o mercado foi menosprezado no início e ...
![Page 6: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/6.jpg)
Motivação
Devido ao ciclo da oferta x demanda, o mercado de hardware obteve maior atenção.
Fábricas de software ignoradas. Desenvolvimento de software ad-hoc. Problemas com heterogeneidade de
equipamentos. Reflexão ...
![Page 7: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/7.jpg)
Middlewares
MicroQoSCORBA
OCP - OOpen CControl PPlatform
RUNES - RReconfigurable, UUbiquitous, NNetworked EEmbedded SSystems
![Page 8: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/8.jpg)
MicroQoSCORBA – Visão Geral
Sistema baseado em CORBA. Adaptações no compilador IDL. Adaptações na interação entre ORBs. Tecnologia de comunicação das camadas
mais baixas alterada.
![Page 9: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/9.jpg)
MicroQoSCORBA – Compilador IDL
Configurar arquivos e gerar stubs e esqueletos. Não é um compilador genérico (one size fits
all). – Gera códigos otimizados para determinados ORBs
customizados. Permite que códigos de protocolos e da
camada de transporte sejam selecionados e codificados nos stubs.– Remove complexidade do ORB;– Elimina ligação desnecessária com o código de
protocolos e transportes no lado do cliente;
![Page 10: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/10.jpg)
MicroQoSCORBA – Customização de ORBs
Muito pode ser feito no código do stub ou esqueleto para reduzir o uso de recursos.
ORBs podem ser customizados.– Eles podem ser configurados para possuírem perfis
de uso de recursos e perfomance.
ORBs customizados mantém interoperabilidade com ORBs padrão.– Interoperabilidade x Requisitos de HW e SW
![Page 11: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/11.jpg)
MicroQoSCORBA - Comunicação
Suporta IIOP e UDP. Suporta também um subconjunto de padrões de
comunicação CORBA (MQC IOP).– São eliminadas: exceções, tipos de dado muito
grandes e mensagens desnecessárias. Adiciona na arquitetura CORBA uma camada de
transporte– Dessa forma camadas de transporte específicas de
um ambiente serão desenvolvidas conforme necessário.
![Page 12: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/12.jpg)
MicroQoSCORBA - QoS
Suporta alguns requisitos de QoS.– Tolerância à falhas (redundância temporal e redundância
por valor), segurança (separar canais de controle dos canais de dados) e responsividade.
Cada um dos requisitos possui diferentes mecanismos implementados que ponderam QoS x Consumo de Recursos.
– Criptografia x latência x uso de memória e energia.
![Page 13: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/13.jpg)
OCP – Visão Geral
Baseado no Bold Stroke.
Utiliza componentes do RT CORBA (ACE/TAO).
Agrega novas funcionalidades ao Bold Stroke.
Ferramentas de simulação e integração em anexo.– Simulink
![Page 14: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/14.jpg)
OCP – Herança (Bold Stroke)
Baseado em CORBA. Software financiado pela Boeing. Utilizado nos caças da McDonell Douglas Corporation. Implementava todos os sistemas (navegação, interface
piloto-veículo e controle de armas). Não era utilizado no gerenciamento do veículo.
– Controles de vôo críticos eram implementados.
Seus maiores objetivos são: implementar o gerenciamento do veículo no middleware (OCP) e permitir todos os níveis de controle de vôo de UAVs.
![Page 15: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/15.jpg)
OCP – RT CORBA
O ACE/TAO foi usado para permitir o desenvolvimento de aplicações de controle de vôo.
Era necessário algumas otimizações.– Prover eventos leves para diminuir o fluxo de mensagens
no agente central do Serviço de Eventos de TR do TAO.– Cache local de um objeto distribuído no lado do cliente,
evitando que a thread fique bloqueada e que o canal de eventos fique congestionado.
– Suporte a protocolos plugáveis (GIOP-lite sobre memória compartilhada).
![Page 16: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/16.jpg)
OCP - Novas funcionalidades
Implementa um framework para gerenciamento de recursos, garantindo a qualidade de serviço de um aplicação.
Suporte a sistemas híbridos Suporte a gatilho de tempo precisos nos
nível de aplicação.– Foi criado um framework para encapsular tarefas
específicas de hardware, expondo-as para uma aplicação através de uma interface limpa.
![Page 17: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/17.jpg)
RUNES - Visão Geral
A construção do middleware se baseia em uma linguagem independente de modelos de componentes (OpenCOM de Lancaster).
Complementado pelos Component Frameworks
Complementado pelos Meta-modelos reflexivos
![Page 18: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/18.jpg)
RUNES – Modelo de Componentes
![Page 19: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/19.jpg)
Comparações (1/2)
OCP MicroQoSCORBA RUNES
Área de aplicaçãoControle de veículos aéreos não-
habitados (seus sistemas)Genérica
Combate a incêndios (primeiro teste feito)
Maturidade Muito Alta Média Média
Classificação de tempo real
Hard Hard Soft
Paradigma de programação
Orientado a objetos ORBFrameworks e Reflexão
Computacional
Tolerância à Falhas
Presente Presente Ausente
Heterogeneidade Média Média-Alta Alta
Interoperabilidade Baixa Alta Alta
![Page 20: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/20.jpg)
Comparações (2/2)
Adaptação dinâmica Presente Presente Presente
Extensibilidade Baixa Baixa Alta
Ferramentas de Simulação Simulink Ausente TrueTime
Ambientes de Execução
Nos sistemas operacionais:
Windows, Linux, VxWorks e QNX
No sistema operacional Linux e nas placas SaJe e TINI
No sistema operacional Contiki (sensores)
Usabilidade Fácil (C++) Média (CORBA)
Difícil (Framework, Reflexão
Computacional, OpenCOM)
![Page 21: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro](https://reader036.vdocuments.site/reader036/viewer/2022062418/552fc0fd497959413d8baf1e/html5/thumbnails/21.jpg)
Conclusões
Há pelo menos um ponto positivo em cada um dos middlewares.
MicroQoSCORBA– Tolerância a falhas (QoS), interoperabilidade.
OCP– Maturidade e usabilidade (C++).
RUNES– Extensibilidade, interoperabilidade,
heterogeneidade.