OSGi: Open Services Gateway Initiative

Recentemente, a RedHat lançou o programa JBoss Open Choice, que basicamente é uma modalidade de suporte para ambientes "leves" Java. Isto é, sem um servidor JEE completo. Estes ambientes, não são necessáriamente de pequeno porte. Conheço soluções JSE, que são 24x7 e processam milhões de transações diáriamente.

Mais informações sobre o JBoss Open Choice no blog do Edgar Silva:
http://edgarsilva.com.br/2009/06/08/jboss-open-choice-para-quem-precise-de-suporte/

Na lista de tecnologias do programa aparece a OSGi. Com a aprovação da JSR-291, a OSGi foi oficializada como um padrão da plataforma Java. Apesar de sua origem ser os dispositivos embarcados, esta tecnologia está crescendo nos servidores, se tornando uma opção para desenvolvimento de componentes. Já faz algum tempo que a RedHat vem investindo em OSGi. Por exemplo, mudou a arquitetura do JBoss para Microcontainer (baseado em OSGi), lançou o JbossOSGi e agora este suporte. Para quem acha que nunca usou esta tecnologia, saiba que os plugins do Eclipse seguem este padrão. Abaixo falo um pouco sobre a tecnologia e neste sábado (13/06), vou ministrar uma palestra sobre assunto no Tchelinux Caxias 2009.

OSGi é o nome da tecnologia, mas também dá o nome ao consorcio que agrupa empresas de tecnologia como Ericsson, Siemens, Motorola, IBM, Oracle, entre outros. O objetivo desta iniciativa foi criar uma especificação aberta para o desenvolvimento, configuração e gerenciamento de serviços para a Plataforma Java. Com isto, ela oferece um padrão para montagem dinâmica de sistemas baseados em componentes. Tornando possível a definição de componentes, fazendo o controle de visibilidade de seus recursos, o gerenciamento de dependências com outros componentes e suas versões, o controle do seu ciclo de vida, entre outros. Os componentes são chamados de bundles na especificação da OSGi.
O resultado desta especificação foi um padrão onde um bundle exporta serviços e a API que ele fornece. Este bundle pode encontrar outros serviços utilizando o registro de serviços do OSGi. No modelo, um bundle é como uma aplicação distribuída em um arquivo JAR, com seu arquivo de manifesto que, além de exportar pacotes, pode disponibilizar serviços. Este manifesto fornece ao framework informações da classe que ativa o bundle, versão, os pacotes externos Java e quais partes da sua API estão disponíveis para os demais bundles.

Arquitetura OSGi

O framework OSGi gerencia de forma dinâmica as modificações dos bundles no ambiente, validando dependências entre bundles e serviços. Ele possui mecanismos para controlar a instalação, ativação, desativação, atualização e remoção de bundles físicos. Proporciona um modelo de programação onde a especificação do serviço é feita através de interfaces Java, separando a especificação de sua execução.

1 Comentário:

Anônimo disse...
Este comentário foi removido pelo autor.