Desenvolvimento - Java

Tecnologia de Portais Java e a JSR 168

A tecnologia de portais Java / J2EE surgiu junto ao aparecimento e crescimento dos portais corporativos, entretanto, cada qual com sua implementação e particularidades. A JSR 168 cumpriu seu papel de padronizar a tecnologia e iniciou uma era de interoperabilidade entre portais.

por Eric C M Oliveira



Informação dos editores do portal: este artigo é tradução do artigo de autoria de Michael Klaene publicado em:
http://www.developer.com/java/web/article.php/3366111


Nos últimos anos, um grande número de organizações implantou portais para hospedar tanto aplicações internas, quanto externas. E surgiu um mercado lucrativo de portais J2EE. No passado, cada produto definia sua própria API para construção de aplicações para portais e seus próprios componentes. Como previsto, as diferenças de implementação restringiam o mercado, que ficava preso a produtos, e não a tecnologia. A necessidade de uma padronização de portais e de seus componentes levou a Java Specification Requests 168.

A especificação foi desenvolvida pelo JCP e formada por empresas de porte e detentoras de produtos do tipo portal. O objetivo na padronização era acima de tudo, buscar a interoperabilidade entre portais e portlets. A padronização trouxe benefícios, como simplificar o desenvolvimento de portlets além de possibilitar que desenvolvedores possam criar seus componentes que rodem em qualquer servidor de portal J2EE.

A JSR 168, define um conjunto de APIs para Portlets e um contrato entre o Portal Container e ciclo de vida de um portlet. A JSR 168 teve o inicio de seus trabalhos em fevereiro de 2002 e foi aprovada em outubro de 2003. Liderada por SUN e IBM, tinha no expert group, representantes da Apache, BEA, Borland, Oracle, SAP, Vignette, entre outras.

A Portlet API v1.0 é baseada em J2EE, isto é, seus principais componentes (portal server, portlet containers e portlets) se enquadram nos requisitos descritos na Especificação J2EE.

Além da API, a JSR gerou o portal Pluto/Apache como RI (referencia de implementação Open Source).

Componentes da Arquitetura

Os três principais componentes segundo a especificação Java Portlet são o portal, os portlets e o container.

O portal é uma aplicação que agrega várias aplicações do tipo portlet. Alem de ser simplesmente uma camada de apresentação, o portal normalmente permite aos usuários customizarem essa camada de apresentação, incluindo por exemplo quais aplicações a estarem disponíveis.

Portlet é uma aplicação em tecnologia Java baseada em componentes web, gerenciado por um portlet container que processa requests e gera conteúdo dinâmico.

O Portal container se localiza entre o portal em si e os portlets. Ele fornece ambiente de runtime para os portlets, semelhante ao que acontece entre container de servlet e servlets.

Portlets

Semelhante a servlets, os portlets também tem seus métodos de ciclo de vida. O método init (PortletConfig config) é chamado apenas uma vez, imediatamente após uma nova instância do portlet ter sido criada. PortletConfig representa configurações especiais específicas do portlet descriptor, chamado portlet.xml.

Há também o método processAction(ActionRequest request, ActionResponse response), onde o portlet responde com acesso a camada de negócios a ações do usuário, como um clique em um link ou ao submeter um form.

O container também gerencia outros controladores que representam o estado de um portlet, que são o portlet mode e window state. O portlet mode determina que ações podem ser realizadas com um determinado portlet, como View, Edit e Help. A classe GenericPortlet, encontrada no arquivo portlet.jar, implementa o método render e define os métodos "vazios" doView, doEdit e doHelp. Seu portlet, subclasse de GenericPortlet, pode então implementar esses métodos conforme suas necessidades. Por exemplo, doEdit prepara um form HTML que permite customizar o portlet e doHelp, que gera uma página de ajuda ao usuário.

O Window State determina o quanto de conteúdo do seu portlet estará disponível. São três os estados: normal, minimizado e maximizado.


Figura 1. Fragmento de um portlet.

A especificação de portlets Java permite que uma aplicação do tipo portlets possa ser empacotada num arquivo .war para o deploy em servidor de aplicação J2EE. Assim como um .war usado numa típica aplicação web J2EE, existe um arquvio WEB-INF/web.xml, para configuração do contexto da aplicação. A diferença é que este diretório WEB-INF também contém um arquivo do tipo descritor chamado portlet.xml.

Referências

Eric C M Oliveira

Eric C M Oliveira - Bacharel em Ciencia da Computação/FASP e Comunicação/Unesp, tem experiência em desenvolvimento Java nas plataformas J2SE, J2EE e J2ME, além de atividades ligadas a disciplina de testes, engenharia e qualidade de software. Tem certificações Java SCJP 1.3, SCJP 1.4, Rational Test Management, Rational Robot e RUP (Rational Unified Process).