Ray da Costa

« JDavincci uma forma de trabalhar menos!!!! | Home | Quer fazer tela em Java??? Usa swing!! »

O que é OSGi?

de raydacosta | Terça, 24 de Março de 2009

Open Services Gateway
JSR 8: Open Services Gateway Specification

OSGi é uma plataforma de serviços para o desenvolvimento de aplicativos Linguagem Java.

A tecnologia OSGi é uma plataforma de serviços baseada em Java™ que poder ser remotamente gerenciada. Provê ao JAVA uma série de funcionalidades, tornando-o o ambiente ideal para integração. O JAVA permite a portabilidade que é requerida para suportar produtos em diversas plataformas operacionais. a tecnologia OSGi provê a padronização de primitivas que permitem aplicações serem construidas a partir de peguenos componentes re-utilizáveis e colaborativos. Estes componentes podem ser agrupados numa aplicação e instalados.

Motivação:
Com a complexidade dos “software” que vem crescendo numa velocidade bem significativa.

Exemplo
Por exemplo um sistema de automação de forças de venda, ou um sistema de automação de forças de campo, etc. Neste tipo de ambiente se faz necessário uma série de requisitos, como gerenciabilidade (instalação de novas versões de código no PDA ou “notebook” dos usuários de uma forma transparente ao usuário); ciclos de desenvolvimento; manutenção; operação desconectada; etc. Na construção da aplicação, o uso de tecnologias de componentização mostra-se cada vez mais de extrema importancia, considerando o ciclo de desenvolvimento e a manutenção.

O que é importante no OSGI

Name: O nome do bundle. Um “simbólico” nome é usado para OSGi para determinar uma identidade única para o bundle.
Version: A versão do Bundle.
Imports/Exports: é uma lista de tudo que foi exportado e importado.

Opcional: Informação da versão sobre java para que o pacote funcione.
Pode ser usando o metadata que é um arquivo especial que colocamos dentro de um JAR File chamado de

MANIFEST.MF
Abaixo um exemplo de um Manifest.MF
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hello Plug-in
Bundle-SymbolicName: Hello
Bundle-Version: 1.0.Estes metadatas consistem:
Name: O nome do bundle. Um “simbólico” nome é usado para OSGi para determinar uma identidade única para o bundle.
Version: A versão do Bundle.
Imports/Exports: é uma lista de tudo que foi exportado e importado.

Opcional:
Uma informação mínima da versão do java para que o buddle funcione.
Este metadata que é um arquivo especial que colocamos dentro de um JAR File chamado de

MANIFEST.MF
Abaixo um exemplo de um Manifest.MF
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Hello Plug-in
Bundle-SymbolicName: Hello
Bundle-Version: 1.0.1
Bundle-Activator: hello.Activator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.osgi.framework;version=”1.5.0″0
Bundle-Activator: hello.Activator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: org.osgi.framework;version=”1.3.0″

Ferramentas

Alternativa - 1
Felix
Felix

Alternativa - 2
http://www.knopflerfish.org/images/kf300_black.png
Obs.: Tem uma ferramenta visual que facilita o entendimento do framework
Knopflerfish

Alternativa - 3
http://www.eclipse.org/eclipse.org-common/themes/Nova/images/eclipse.png
Equinox

Alternativa - 4
http://www.gstatic.com/codesite/ph/images/code_sm.png
Guice - Google

Mais novidades
Mobile
Desktop

Quem já usa!!!!
Android
+ detalhes do Felix no Android

Mais detalhes do assunto

Categorias: Java |  | Enviar por e-mail  | Hits para esta publicação: 323

Deixe uma resposta.