Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
OSGi com Spring Dynamic Modules – Parte 2 - Java Magazine 81
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.
Java Magazine 81
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 81
[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 81
OSGi com Spring Dynamic Modules – Parte 2
Trazendo o OSGi para as aplicações web
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.
"
Este é um post disponível para assinantes MVP
Trazendo o OSGi para as aplicações web
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.
"
A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVPEste post também está disponível para assinantes da Java Magazine DIGITAL
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
ou para quem possui Créditos DevMedia. Clique aqui para saber mais!
David Pereira
é engenheiro de computação e mestre em engenharia elétrica pela UFRN. Trabalha como arquiteto de software na Superintendência de Informática da UFRN, é professor da Faculdade Natalense para o Desenvolvimento do RN (FARN) e é consultor independente em arquitetura de software e no Spring Framework.
O que você achou deste post?
Cursos relacionados




