Artigo no estilo: Curso

De que se trata o artigo:

O artigo trata do desenvolvimento de aplicações modulares web com OSGi utilizando o framework Spring Dynamic Modules e o servidor de aplicações SpringSource dm Server.


Para que serve:

O Spring DM simplifica o desenvolvimento OSGi, facilitando a publicação e o consumo de serviços, além de possibilitar a criação de aplicações web modulares mais complexas. Já o SpringSource dm Server é um servidor de aplicações com suporte ao OSGi e que nos fornece recursos para a utilização de toda a especificação Java EE, além de permitir a administração dos ciclos de vida dos bundles em uma área de administração bastante completa.


Em que situação o tema é útil:

O Spring DM é bastante útil para o desenvolvimento de aplicações modulares com OSGi, tanto por facilitar o desenvolvimento quanto por possibilitar utilizar todos os recursos do Spring Framework nos bundles OSGi. No caso das aplicações web, o seu uso é quase obrigatório, visto que ele permite criar aplicações modulares da mesma forma que criamos aplicações normais.

OSGi com Spring Dynamic Modules – Parte 2:

Neste artigo continuamos o desenvolvimento de softwares modulares com OSGi empregando o framework Spring Dynamic Modules, desta vez estudando a criação de aplicações web.

Para isso, criamos uma aplicação para envio de mensagens cuja interface gráfica é web. Nela, é possível ter diversos canais para envio das mensagens que podem ser instalados ou removidos em tempo de execução, graças ao OSGi.

Vimos ainda que o Spring DM é essencial para o desenvolvimento de softwares web mais complexos, pois a especificação OSGi para serviços HTTP só possibilita o uso de Servlets. Por fim, utilizamos o SpringSource dm Server, um servidor de aplicações com suporte a OSGi, para implantar os bundles desenvolvidos.

Este artigo é o segundo da série de dois artigos sobre o desenvolvimento de softwares modulares utilizando o Spring Dynamic Modules, ou Spring DM. No primeiro artigo, vimos os recursos que o framework traz para a plataforma OSGi e os aplicamos ao desenvolvimento de uma aplicação desktop. Quando utilizamos OSGi, para que dois módulos se comuniquem, é necessário que um deles publique um serviço e o outro consuma esse serviço. Com o Spring Dynamic Modules, é possível fazer a publicação e consumo de serviços de forma declarativa, sem a necessidade de utilização da API do OSGi. Além disso, ele possibilita o uso de todos os recursos do Spring dentro de um módulo, tais como a injeção de dependências, o gerenciamento de transações, entre outros.

Nesta sequência, iremos estudar a aplicação do Spring Dynamic Modules no desenvolvimento de aplicações web modulares. A utilização do OSGi pode trazer inúmeros benefícios a uma aplicação web corporativa, mais ainda que em aplicações desktop, se considerarmos, por exemplo, que o fato de parar um servidor web para realizar a atualização de uma aplicação pode ser bem problemático. Através dessa tecnologia é possível realizar a atualização de módulos em um sistema web sem a necessidade de refazer a implantação de uma aplicação, não sendo, portanto, necessário que os usuários percam a sessão durante essa reimplantação. É possível, inclusive, mantermos duas versões de um mesmo módulo rodando ao mesmo tempo na aplicação, de forma que os usuários que já estavam acessando esse módulo continuem fazendo as suas atividades normalmente e os usuários que vierem a acessá-lo após a atualização, acessem a versão mais nova.

Para demonstrar o funcionamento de uma aplicação web modular, criaremos uma interface gráfica web para o projeto desktop desenvolvido no artigo anterior, de forma que seja possível substituir a interface gráfica desktop pela web e vice-versa sem a necessidade de parar os demais módulos da aplicação. Essa aplicação será implantada no servidor de aplicações SpringSource dm Server, que possui suporte à implantação de bundles OSGi.

Para um bom entendimento do conteúdo deste artigo, é recomendável a leitura da parte 1 do mesmo ou então que o leitor já tenha algum conhecimento sobre OSGi e Spring DM. Se não for o caso, pode ser interessante a leitura do livro gratuito OSGi in Practice, cujo endereço para download pode ser encontrado na seção Links ao final do artigo. É importante também estudar um pouco o manual do Spring Dynamic Modules, cujo link também está disponível no final do artigo.

Aplicações Web com OSGi

O desenvolvimento de aplicações web também pode usufruir das inúmeras vantagens da modularização com a plataforma OSGi, de forma que é possível, por exemplo, adicionar, remover e atualizar módulos em tempo de execução, sem a necessidade de interromper o usuário para tanto.

A especificação do OSGi já traz consigo a definição de um serviço HTTP para possibilitar a implantação de Servlets em um framework OSGi. O problema com essa abordagem é que os servlets precisam ser configurados de forma programática através da API do OSGi, o que não é natural aos desenvolvedores acostumados a registrar servlets no arquivo web.xml. Além disso, o serviço HTTP não suporta a especificação dos servlets completamente, pois ele não suporta filtros, listeners ou mesmo o uso de JSP. Esse tipo de limitação é muito impactante na hora de tomar uma decisão sobre usar ou não OSGi em uma aplicação web, pois não conseguiríamos criar aplicações maiores utilizando apenas servlets.

Para resolver tais problemas, o Spring Dynamic Modules possui uma funcionalidade chamada Web Extender, que adiciona ao OSGi a possibilidade de implantar aplicações web transformando um arquivo WAR tradicional em um bundle, suportando todos os recursos da especificação dos servlets. Por esse motivo, o Spring DM é essencial na criação de aplicações web com OSGi.

...
Quer ler esse conteúdo completo? Tenha acesso completo