sábado, 6 de outubro de 2007

OSGi - Open Services Gateway initiative: O que é ? Para que serve ?


Como cenário geral, imaginemos um requerimento usual: um sistema que atenda uma aplicação de mobilidade. 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 Problema


A complexidade dos "software" vem crescendo numa velocidade bem significativa. Esta complexidade se deve a fatores como incremento de funcionalidades, menor ciclo de vida de um produto e também a necessidade de um produto ser utilizado em diferentes ambientes operacionais. Isto acarreta uma consequencia inevitável de custos de desenvolvimento de "software".
Atualmente o desenvolvimento de "software" em larga escala, consiste de adaptar funcionalidades ja existentes num ambiente novo. Nas decadas recentes foram definidos uma série de "building blocks" e são largamente utilizados. Um exemplo clássico disto é o uso de "softwares" abertos. Entretanto o uso destas bibliotecas em geral acarretam alguns problemas. A integração de bibliotecas diferentes é complexa.

Um aspecto chave é que os ambientes de "software" focam em escrever novos "softwares" e não integrar os existentes nos novos sistemas. Na verdade a integração de códigos existentes consome boa parte do tempo dos desenvolvedores. Portanto se faz necessário o uso de ferramentas que padronizem aspectos de integrações dos "softwares" de forma que a reutilização de componentes existentes aumente confiabilidade, robustez e diminua custos.

A Solução

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.
A plataforma de serviços OSGi permite a funcionalidade de modificar a composisão dinamicamente num dispositivo sem requerer re-inicializações. Para minimizar problemas de acoplamento entre componentes e torna-los gerenciaveis, o OSGi provê uma arquitetura orientada a serviços, que permite estes componentes dinamicamente se conhecerem com o objetivo de colaboração. A Aliança OSGi desenvolveu diversos padrões de interface de componentes, como Servidores HTTP, aspectos de configuração, segurança, logs, etc. Por meio de uma implementação "plug compatible" podemos ter uma implementação com componentes de diversos fabricantes.
Os usuários da tecnologia OSGi beneficiam de um menor tempo de atingimento do mercado e redução de custos de desenvolvimento porque a tecnologia OSGi provê a integração de sub-sistemas de componentes pré construidos e pré testatos. A tecnologia ainda diminui custos de manutenção.


(Compilado parcialmente de documentação OSGi Alliance)

Maiores informações: OSGi Alliance.

Nenhum comentário: