Middlewares para Sistemas
Embarcados (Embutidos)
Jordan Janeiro
Introdução - Esclarecimento

Sistemas embarcados ou sistemas
embutidos?
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.
Dificuldades

Escassez de recursos.
–

Forma de programação atingida.
–

Estações de trabalho com memória cache da
UCP maior do que memória ROM ou RAM de
dispositivos embarcados.
Algoritmos otimizados.
Lembra o passado.
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 ...
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 ...
Middlewares

MicroQoSCORBA

OCP - Open Control Platform

RUNES - Reconfigurable, Ubiquitous,
Networked Embedded Systems
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.
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;
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
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.
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.
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
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.
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).
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.
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
RUNES – Modelo de Componentes
Comparações (1/2)
OCP
MicroQoSCORBA
RUNES
Área de aplicação
Controle de veículos aéreos nãohabitados (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
ORB
Frameworks e Reflexão
Computacional
Tolerância à
Falhas
Presente
Presente
Ausente
Heterogeneidade
Média
Média-Alta
Alta
Interoperabilidade
Baixa
Alta
Alta
Comparações (2/2)
Adaptação dinâmica
Presente
Presente
Presente
Extensibilidade
Baixa
Baixa
Alta
Ferramentas de Simulação
Simulink
Ausente
TrueTime
No sistema operacional Linux
e nas placas SaJe e TINI
No sistema operacional
Contiki (sensores)
Média (CORBA)
Difícil (Framework,
Reflexão
Computacional,
OpenCOM)
Ambientes de Execução
Usabilidade
Nos sistemas
operacionais:
Windows, Linux,
VxWorks e QNX
Fácil (C++)
Conclusões

Há pelo menos um ponto positivo em cada um
dos middlewares.

MicroQoSCORBA
–

OCP
–

Tolerância a falhas (QoS), interoperabilidade.
Maturidade e usabilidade (C++).
RUNES
–
Extensibilidade, interoperabilidade,
heterogeneidade.
Download

MicroQoSCORBA - PUC-Rio