middlewares para sistemas embarcados (embutidos) jordan janeiro

21
Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro

Middlewares para Sistemas Embarcados (Embutidos)

Jordan Janeiro

Page 2: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro

Introdução - Esclarecimento

Sistemas embarcados ou sistemas embutidos?

Page 3: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro

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

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

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

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

Middlewares

MicroQoSCORBA

OCP - OOpen CControl PPlatform

RUNES - RReconfigurable, UUbiquitous, NNetworked EEmbedded SSystems

Page 8: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro

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

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

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

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

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

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

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

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

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

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

RUNES – Modelo de Componentes

Page 19: Middlewares para Sistemas Embarcados (Embutidos) Jordan Janeiro

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

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

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.