210 likes | 324 Views
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?
E N D
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. • 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.
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
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.