OSGi Um Sistema Dinâmico de Módulos para Java



Documentos relacionados
Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Aula 03-04: Modelos de Sistemas Distribuídos

3 Serviços na Web (Web services)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo

UM FRAMEWORK PARA DESENVOLVIMENTO DE

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

UFG - Instituto de Informática

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

Sistemas Distribuídos

LEIA ISTO PRIMEIRO. IBM Tivoli Configuration Manager, Versão 4.2.1

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

Orientação a Objetos com Java

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Para Saber Mais O framework OSGi O mundo enterprise

Programação de Computadores - I. Profª Beatriz Profº Israel

ESTUDO DE CASO WINDOWS VISTA

J2EE TM Java 2 Plataform, Enterprise Edition

Computação Móvel J2ME

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Modularidade com Java Module System & OSGi

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

UFG - Instituto de Informática

Administration Kit. Parte de Kaspersky Business Space Security Kaspersky Enterprise Space Security Kaspersky Total Space Security

Desenvolvimento de um aplicativo básico usando o Google Android

SAP & Coca-Cola: Gerenciando seus dispositivos móveis. Agosto 2012

World Wide Web e Aplicações

UMA ABORDAGEM SOBRE J2ME

Seminário de Lei de Informática. Francisco Siqueira de Sousa Gerente Comercial

5 Mecanismo de seleção de componentes

Kassius Vargas Prestes

PROTÓTIPO DE APLICATIVO PARA DISPOSITIVO MÓVEL (PDA) USANDO A TECNOLOGIA J2ME E BANCO DE DADOS

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso

Especificações da oferta Gerenciamento de dispositivos distribuídos: Gerenciamento de ativos

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Spring: Um suite de novas opções para Java EE

Oracle Enterprise Manager 10g Grid Control NOVO

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Estrutura, Processos e Threads

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

J2ME, Uma Platarfoma de programação para Dispositivos Móveis

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Classificação::Modelo de implantação

Como manter uma rede com qualidade de serviço? Gerência de Rede. Visão Geral da Gerência de Redes. Importância de gerência de Redes. Cont.

Aplicações Desktop: Swing/SubMacroForms. Carlos Renato Alves Gouveia Novembro/2008

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Como dito anteriormente, a JCP especificou dois grupos para a J2ME conforme as necessidades dos dispositvos, chamadas Configurações:

Scalable Vector Graphics. Kadu Neves Rafael Rocha

Agregador de feeds RSS para dispositivos móveis

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Alexandre Malveira, Wolflan Camilo

Programação Gráfica Parte 1 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano

Desenvolvimento para Android Prá9ca 1. Prof. Markus Endler

EA998/MC933 Guido Araujo e Sandro Rigo

Introdução ao Android

Sistemas Distribuídos

Manual de Utilização de Webcams no. Desenvolvimento de Aplicativos Java

Introdução à Linguagem Java

Java 2 Micro Edition (J2ME)

Soluções de Gerenciamento de Clientes e de Impressão Universal

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Amplie os horizontes da sua empresa com o Software Assurance e o Windows Vista.

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

INTEGRE Diversas fontes de informações em uma interface intuitiva que exibe exatamente o que você precisa

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Programação Orientada a Objetos (DPADF 0063)

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Considerações no Projeto de Sistemas Cliente/Servidor

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

Controle sua Rede com uma Análise de Tráfego Amigável

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

Sistemas Operacionais

Transcrição:

OSGi Um Sistema Dinâmico de Módulos para Java Raoni Kulesza raoni@larc.usp.br MAC-5863 Sistemas de Middleware Avançados 2006/2 Prof. Dr. Francisco Reverbel IME-USP, 28/11/2006

Agenda Introdução Arquitetura Base do Framework OSGi Ambiente de Execução Módulos Ciclo de Vida Serviços Segurança Aplicações e Ferramentas OSGi Considerações Finais Referências 2

Introdução Open Services Gateway Initiative OSGi Alliance Fundada em março de 1999 Organização independente, sem fins lucrativos Define e promove especificações abertas para distribuição de serviços gerenciáveis através de ambientes em rede Especificações da OSGi Service Platform Aberta e Padronizada Orientado a componentes Serviços em rede 3

Objetivos da OSGiServicePlatform Framework Java para desenvolver software baseado em componentes que possibilite implantação remota e: Confiável Distribuição e Gerenciamento em Larga Escala Vários tipos de dispositivos Colaborativo Criado através de colaboração de várias indústrias Atualmente na especificação 4.0 Procura resolver problemas da área de desenvolvimento baseado em componentes 4

Arquitetura Base Comunicação Gerenciamento Implantação 5

Ambiente de Execução As APIs usam apenas um sub-conjunto de J2SE e J2ME CDC AE OSGi Mínimo Implementações podem estender o AE OSGi Mínimo Segurança não é obrigatório Possibilidade de compatibilidade com CLDC 6

Módulos -Bundles Bundles Unidade de modularização (JAR) Código, Manifest, Recursos e [OSGI- OPT] Pode-se importar e exportar serviços Vários bundles podem ser executados numa única JVM 7

Módulos Carga de Classes Estende o modelo de implantação da plataforma Java Modularização, Proteção e Controle de Versão Framework OSGi é uma rede de classloaders Boot -> Framework -> Bundle space 8

Módulos Dependências Bundles devem ser resolvidos pelo framework (resolver) O processo de associar pacotes exportados e importados para um bundle Deve ser realizado antes de carregar e executar o bundle Descrito através de cabeçalhos específicos do arquivo de MANIFEST Import-Package Header Export-Package Header Required-Bundle Ex.: Import-Package: br.usp.ime.foo; br.usp.ime.bar; version= [1.0,1.24] ; resolution:=mandatory 9

Módulos Resolução de Dependência Framework org.osgi.framework org.osgi.service.http Bundle A Export org.osgi.service.log com.ibm.service.log com.ibm.j9 Import org.osgi.service.http javax.servlet.http Bundle B Export ericsson.osgi javax.servlet javax.servlet.http org.osgi.service.log Import org.osgi.service.http org.osgi.service.log A resolved B resolved 10

Ciclo de Vida Visão Geral Define uma API para controlar operações de segurança e ciclo de vida dos bundles Instalação Inicialização Finalização Atualização Desinstalação Monitoração Disponibiliza acesso ao framework (system bundle) Permite o gerenciamento remoto da plataforma 11

Ciclo de Vida Arquitetura 12

Ciclo de Vida Funcionamento O Bundle é iniciado pela classe Bundle Activator (definido no Manifest) 2 métodos Start: Inicializa o mais rápido possível Stop: desaloca recursos Bundle Context provê acesso ao framework Framework provê serviço com níveis e grupos de inicialização 13

Serviços Visão Geral Serviços são objetos Java normais que são registrados através de uma ou mais interfaces Java no registro de serviços (Service Registry) Publicação, Pesquisa e Acoplamento dinâmico Políticas de acesso e controle de versão para serviços Rastreamento de serviços durante a reinicialização do framework Provê arquitetura orientada a serviços in-vm 14

Serviços - Arquitetura 15

Serviços - Funcionamento Registrando Serviços ServiceRegistration e ServiceReference BundleContext.registerService() Propriedades de Serviço Par de chave-valor Informações que descrevem serviços para seu público Identificador de Persistência (Persistent Identifier PID) Auxilia no controle de reinicialização do framework Localizando Serviços Obtém ServiceReference através de BundleContext.getServiceReference() 16

Modelo de Colaboração O framework OSGi é mais do que um ambiente de execução de Applets, MIDlets, Xlets Bundles podem colaborar através de: Objetos de serviços Compartilhamento de pacotes O registro dinâmico permite que os bundles procurem e rastreiem objetos de serviços O framework gerencia essa colaboração Dependencias, segurança 17

Modelo de Colaboração OSGi Framework Bundle Service registry packages packages Bundle JAVA Operating System Hardware 18

Modelo de Colaboração Java Application Manager Midlet, Xlet, or Applet Service registry packages packages Midlet, Xlet, or Applet Sem gerenciamento de componentes (bundles) Sem colaboração Sem gerenciamento de pacotes (versões) JAVA Operating System Restrição de acesso a código nativo Hardware 19

Serviços Padrão OSGi Home Automation Vehicle Mobile R1 Framework Http Log Device Access R2 Package Admin Configuration Admin Permission Admin User Admin Preferences MetaType Service Tracker R3 UPnP Initial Provisioning Name Space Jini Start Level IO Connector Wire Admin XML Parser Measurement & State Position Execution Env. R4 Application Manager MIDP Container Signed Bundles Declarative Services Power Management Device Management Security Policies UPnP Exporter Diagnostics/Monitoring Framework Layering Initial Provisioning UPnP 2000 2001 2003 2005 20

Segurança 21

Aplicações e Ferramentas OSGi IME-USP, 28/11/2006

Aplicações Arquiteturas de Gerenciamento para Dispositivos Móveis (JSR 232) Eclipse - Equinox ObjectWeb Jonas J2EE Server WebSphere Everyplace Device 6.0 Siemens VDO Top Level Architecture Global System for Telematics Muitas outras aplicações... BMW, Nokia, Siemens, Philips, MHP-GEM... 23

Ferramentas Open-source Eclipse Equinox: implementação OSGi R4 Oscar: implementação R4 da ObjectWeb Apache Felix: projeto basedo no Oscar (R3) e incubado na ASF Knopflerfish: implementação R4 da Gatespace Telematics 24

Considerações Finais Especificação OSGi é bastante abrangente e esta apresentação foi apenas uma introdução A plataforma de serviços OSGi (Service Platform) provê um modelo de componentes baseado em: Serviços e compartilhamento de pacotes Modelo de programação dinamico Bundles são unidades de modularização com: Implantação independente, fácil de desenvolver e permitem reutilização Existem várias aplicações e produtos (comerciais e open-souce) OSGi A abrangência da plataforma (celulares, PDA, sistemas embarcados, PC, servidores) é o ponte forte do padrão (client middleware, computação ubíqua e autônoma) 25

Referências OSGi Service Platform, Core Specification, Release 4, v.4.0.1, Julho 2006 http://www.osgi.org/resources/spec_download.asp About the OSGi Service Platform, Technical Whitepaper, Revision 4.1, Novembro 2005 http://www.osgi.org/resources/spec_download.asp OSGI Service Platform André Assad Recife, Sun Tech Days 2006 OSGi Component Programming Thomas Watson e Peter Kriens - EclipseCon2006 http://www.osgi.org http://bundles.osgi.org http://www.eclipse.org/osgi http://www.aqute.biz 26