Spring Osgi Early dayz

Ao mesmo tempo que estou estudando para a certificação scwcd 1.4 estou dando um olhada no movo projeto da SpringSource (antiga Interface21). O projeto teve recentemente o lançamento do seu release 1.0. O conceito de Osgi não é novo vem desde 1999! Osgi é um modelo de componentes que especifica:
  • Gerenciamento de ciclo de vida da aplicação
  • Modelo
  • Registro de serviços
  • Ambiente de execução
  • Módulos, também conhecidos como Bundles
A idéia básica é que os componentes que estão registrados dentro dos Bundles podem ser remotamente instalados, instanciados, parados, atualizados e até mesmo desinstalados sem ter que fazer um reset. Isso é muito bom!

Osgi nasce para os mercados de tecnologias embarcadas como os celulares por exemplo, porem hoje em dia ele está sendo muito utilizado no server side. O IDE eclipse utiliza osgi para a implementação do seu modelo de plugins. O Eclipse tem sua própria implementação de Osgi que é o Equinox.



O SpringSource percebeu esse potencial da tecnologia e crio o seu mais novo projeto o Spring Dynamic Module. A idéia do Spring é :
  • Fazer aplicações baseadas em Spring rodarem em um ambiente Osgi
  • Tirar vantagens dos serviços que o Osgi framework oferece.
  • Facilitar o desenvolvimento de aplicações Osgi com Spring
A partir desses valores em mente o Spring Dynamic Module prove:
  • Melhor separação da lógica da aplicação em módulos.
  • Fazer múltiplos deploys de um módulo ao mesmo tempo.
  • Descobrir de forma dinâmica os serviços de outros módulos e utiliza-los
  • Instalar, desinstalar, atualizar módulos com o sistema rodando.
Recomendo esse vídeo do Costin Leau que é um dos lideres desse projeto. Você pode achar mais informações sobre osgi no site da Osgi Alliance.

Estou estudando a API do Spring e já tenho alguns testes que eu fiz aqui com o Maven 2 e o Spring DM. Breve irei postar mais. Os próximos posts provavelmente terão fontes.

Abraços.

Popular posts from this blog

C Unit Testing with Check

Having fun with Zig Language

HMAC in Java