OpenCom: Um Modelo de Componente Genérico para Sistemas de Software - PDF
OpenCom: Um Modelo de Componente Genérico para Sistemas de Software
Download "OpenCom: Um Modelo de Componente Genérico para Sistemas de Software"
Miguel Bandeira da Mota
1 OpenCom: Um Modelo de Componente Genérico para Sistemas de Software Jó Ueyama (UNICAMP), Francois Taiani (Lancaster University), Geoff Coulson (Lancaster University), Edmundo R. M. Madeira (UNICAMP), Paul Grace (Lancaster University) Simpósio Brasileiro de Engenharia de Software João Pessoa - PB
2 Conteúdo O que é o OpenCom Características do OpenCom Arquitetura Kernel Extensões Estudos de Caso Redes Programáveis Redes de Sensores FlexPar Conclusões 2
3 Por que OpenCom? Modelos de Componentes para Sistemas Embutidos Koala, RoboCop, PECOS, PBO, SaveCCM Normalmente, possuem uma linguagem especificamente voltada para o domínio de sistemas embutidos Modelo de Componentes para Middlewares OpenCOM v1, K-Components, DPRS, Fractal Alto overhead de memória Modelos de Componentes para as Redes Programáveis NetBind, VERA, ACE, Click/NP-Click, Destinados para solucionar um problema em redes 3
4 O que é o OpenCom? middlewares SOs Sist embutidos baseada em componentes applicacao baseados em componentes OpenCom PCs roteadores sensores plataforma 4
5 Exemplo de um Ambiente Heterogêneo Roteador Intel IXP1200 Ambiente Heterogêneo Dificil de programar Recursos escassos Microcode Linguagem Assembly do IXP1200 5
6 OpenCom Modelo de Componentes OpenCom Genérico (domínio e plataforma) Baixo overhead, runtime simples e eficiente Componentes OpenCom podem ser escritos em qualquer linguagem e possuem estilo independente C++, Java, Assembly dá ênfase na reconfiguração dinâmica 6
7 Arquitetura do OpenCom OpenCom 7
8 Arquitetura do OpenCom Incremental Microkernel Framework de Extensões Loaders, Binders e Caplets Meta-modelos reflexivos Meta-arquitetura Meta-interface 8
9 Kernel do OpenCom Microkernel Facilita portar o kernel para outras plataformas Apropriado para ambientes com poucos recursos Possui um estilo de componente próprio Componente de estilo Primário - Similar ao XPCOM Carregar, criar e destruir instâncias de componentes em tempo de execução Dependente de plataforma Implementações em C++, Java (incluindo J2ME) No protótipo em C++ (~32K de memória) 9
10 Framework de Extensões Elementos do modelo de programação Binding: associação entre duas interfaces Loader: carrega e instancia componentes Binder: provê diferentes mecanismos de conexão Caplet: mecanismo para isolar componentes 10
11 Loader e Loader CF Loader é um componente que provê diferentes mecanismos de loading. Java component Loader, XPCOM Loader, Microcode Loader, etc. Loader CF é o framework que aceita Loaders como plugins. load(loadercf) Loader CF Microcode Loader OpenCom kernel 11
12 Binder e Binder CF Binder é um componente que provê diferentes mecanismos de binding. XPCOM Binder, Microcode Binder, etc. Binder CF é o framework que aceita Binders como plugins. load(bindercf) Binder CF Microcode Binder OpenCom kernel 12
13 Reflexão e Meta Modelos Reflexão é um paradigma de programação que permite uma aplicação descobrir e alterar o seu comportamento e/ou estrutura. Exemplo de aplicação: meta-arquitetura Meta Level reflexão reificação Calc comp Adder comp Mult comp Base Level 13
14 Meta-modelos Reflexivos Meta-interface procurar uma interface Invocação dinâmica de métodos Meta-arquitetura Inspeção e adaptação 14
15 E Alguns Resultados Quantitativos... 15
16 Estudo de Caso I Abordagem do OpenCom validado no roteador Intel IXP1200 Ambiente heterogênio PC, StrongARM e os microengines O programador OpenCom utiliza os loaders e binders para programar esse ambiente 16
17 Loader e Binder para StrongARM e para os Microengines Loaders e Binders implementam diferentes mecanismos de loading e binding. OpenCom Binders Loaders 17
18 Estudo de Caso II Usando OpenCom em redes de sensores Prover redes com arquiteturas flexíveis Caracterizado por ambientes com recursos escassos Projeto Northwest Grid: previsão de inundação 18
19 Deployed Gumtix Node 19
20 Propriedades da Rede/Roteamento Performance Uso Bateria Cobertura Bluetooth 786kbps 0.02W Até 200M WiFi 11mbps 2.5W Até 1.2KM Normal Alto Fluxo Baixo consumo Confiável Bluetooth Redes b Evento: Velocidade do Fluxo (Câmera) 20
21 Estudo de Caso III FlexPar: middleware para ambientes paralelos Criar e reconfigurar aplicações paralelas occam-pi Primitiva e com pouca flexibilidade Baixo overhead JCSP (CSP for Java) Integração com occam-pi FlexPar 21
22 Concluindo... OpenCom: modelo de componentes genérico para sistemas de software Arquitetura microkernel Pode criar softwares para uma variedade de domínios (Redes, SO, middlewares) Assim como para uma variedade de plataformas (Roteadores Intel, sensores, PCs) Trabalhos futuros Plastik (OpenCom e ADLs) OpenCom em disposit. com pouca memória (~10K) 22
23 Informações Adicionais & Via Agradecimentos Na web mpg/reflection/download.php Agradecimentos FAPESP (projeto FlexPar Ref. 2006/06576) CNPq (Bolsa individual de doutorado GDE) Intel (doação de equipamentos) 23
24 FlexPar Middleware para Ambientes Paralelos 24
25 Proposta de Pesquisa As ferramentas para ambientes paralelos Configuração estática Transterpreter, KroC (Compilador occam-pi) Processos CSP não podem ser conectados e desconectados em tempo de execução Benéfico para ambientes com recursos escassos LEGO, sensores Interoperabilidade limitada Processos CSP em JCSP e occam-pi não se interoperam 25
26 Proposta de Pesquisa FlexPar, um middleware reconfigurável para ambientes paralelos Destinado aos ambientes com recursos escassos dispositivos embutidos e Sensores Objetivos principais Configuração dinâmica Interoperabilidade 26
27 Estilo Microkernel Pesquisa Proposta Facilita portar para outros ambientes Gumstix, MSP430, etc. Baixo overhead Um ponto negativo é o overhead para incluir novas funcionalidades Alternativa para esta abordagem é o kernel monolítico Alto overhead (e.g. memory footprint) 27
28 Caplet e Caplet CF Caplet provê mecanismos de isolamento Domínios de tecnologia (componentes em C++, Java) Segurança Privilégios Diferença entre Caplets e Capsules Capsules podem possuir vários espaços de endereçamento, enquanto que os caplets possuem apenas um Capsules são logicamente criados enquanto que os caplets são componentes OpenCom 28
29 De volta aos Conceitos... WSN (Wireless Sensor Networks) Consiste de uma rede sem fio composta de vários sensores para cooperar em alguma tarefa Militar, meio-ambiente, tráfego, etc. Cada sensor é equipado com um mecanismo de comunicação (por exemplo: Bluetooth) Exemplo de um sensor Gumtix (CPU Xscale 400MHz, 64 MB RAM) 29
30 Outros Exemplos de Aplicações Uso de OpenCom para prover Redes Grade flexíveis 30
31 Cross-Caplet Binder Bindings entre componentes em caplets distintos 31
32 Caplet e Capsule Diferença entre Caplets e Capsules 32
33 Microcode Loader Loader para componentes em Intel IXP1200 Microcode 33
34 Microcode Binder Binder para componentes em Intel IXP1200 Microcode 34
35 Previsão de Inundação Utilizando Sensores Pesquisa: prover mecanismos de reconfiguração em sensores Software: OpenComJ (OpenCom Java) Linux 2.6/Java VM versão 1.4 Hardware Gumtix (CPU Xscale 400MHz, 64 MB RAM, 16MB de flash) Alimentado por baterias e solar panels 4 watt 35