segunda-feira, 11 de fevereiro de 2008

Como agregar informações de um portal já existente no WebSphere Portal

Uma requerimento que usualmente aparece nos projetos de portais é a renderização de conteúdo do portal acessando informações de um outro website (intranet ou internet) já existente. Para isto temos 4 possiblidades.

Utilizando o portlet WebPage: Este portlet é bem simples é tem a capacidade de renderizar conteúdos a partir de um outro website. O ponto positivo é que neste caso não há a necessidade de mudar o conteúdo do website que está provendo a informação. Outro ponto importante é que você pode prover conteúdo de outro site em segundos.

Este portlet apesar de ser um ótima solução para alguns casos, ele tem três desvantagens bem significativas.

- A primeira é que o conteúdo segue o padrão do site original e isso pode causar conflitos visuais com o layout desenhado no tema do portal. Como o conteúdo original não foi montado pensando em componentização, este novo portal pode apresentar um excesso de rolagens de browser.

- A segunda desvantagem é que ao carregar a página, o browser soma o tempo de carga da página do portal com a página do site provedor da informação. Lentidões no site que provê a informação irá impactar diretamente o tempo de resposta do portal. Neste caso trabalhos de tunning não podem ajudar porque a responsabilidade de prover a página esta toda repassada ao site hospedeiro. Esta lentidão está associada ao fato de eu processar o protocolo HTTP duas vezes (uma para o portal e outra para o site provedor da informação).

- A terceira desvantagem é que na montagem do http-request é necessário abrir as portas do site hospedeiro. Isso faz com que o firewall tenha que liberar os acessos aos sites que provem a informação. Em uma intranet isso pode não significar muita coisa, mas em uma internet isso pode ser uma questão bem delicada.

Portlet WebClipping. Este portlet diferencia-se da solução anterior por ter a capacidade de pegar parte de uma página para apresentá-la no portal. Neste segundo caso o benefício desta técnica é voce poder reduzir o impacto com o layout e rolagem de conteúdo porque agora voce apresenta apenas parte dos dados. Uma outra vantagem é voce não apresentar os problemas de segurança da opção anterior. As dificuldades com performance são as mesmas.

WSRP. Este portlet permite você consumir conteúdo de outros portais utilizando WebServices Remote Portlet. Este formato reaproveita a camada de apresentação de outros portais no formato de serviço. Protocolo um pouco pesado para um grande volume de acesso mas os resultados em termos de visual e reaproveitamento são ótimos.

Uso como serviço. Esta opção é ótima porque você delega toda a responsabilidade de apresentação unicamente ao portal. Por outro lado, os websites hospedeiros cuidam apenas do processamento. Neste caso a performance é melhor, não apresenta problemas de segurança e o layout fica perfeito. Este serviços podem consumir dados em formatos como WebServices, EJB's, REST, RMI entre outros. O problema é que neste caso é necessário ajustar o serviço legado.

Uso de WebAppIntegrator portlet. Vide em post neste blog

A melhor opção ? Avalie as opções e veja qual das alternativas melhor atendem ao seu cliente.

quarta-feira, 6 de fevereiro de 2008

Utilizando dados do Domino com WPF

No decorrer de diversas apresentações de Websphere Portal e Websphere Portlet Factory fui questionado de como seria o reaproveitamento de dados nos Databases Domino (.NSF).

A pergunta mais comum era:

- Terei que redesenvolver as minhas aplicações Domino em Java ?
- R: NNNNNÃÃÃÃÃÃÃOOOOOOOO

Você pode reaproveitar as informações no Domino de várias formas. Uma delas é lendo dados das bases por meio do Portlet Factory. Ele cria uma camada de abstração que oculta a forma de acesso as bases .nsf. Na prática todos os recursos de WPF que usamos até o momento podem ser utilizados com o Domino.

Abaixo vai uma demonstração em inglês deste processo. Quero ver se em breve disponibilizamos isso em português.