Avançar para a área de conteúdo

ir para o conteúdo principal

developerWorks Brasil  >  WebSphere | Lotus  >

Integrando o IBM Lotus Quickr com IBM WebSphere Portal usando IBM WebSphere Portlet Factory

developerWorks
Opções de documento

Opções de documento que necessitam de JavaScript não são exibidas

Discutir

Código de amostra


Classificar esta página

Ajude-nos a melhorar este conteúdo


Nível: Intermediário

Robert E. Loredo, Software Engineer, IBM Software Group, IBM, Software Group
Shiva Nistala, Software Engineer, Adea Group consultant with IBM Developer Relations

07/Abr/2009
Atualizado 29/Jun/2009

Saiba como integrar os serviços IBM® Lotus® Quickr™ Web 2.0 com os aplicativos IBM WebSphere® Portal, criando portlets de lista e de detalhes que permitem não somente navegar por todo o conteúdo de uma Lotus Quickr Library, mas também permite acesso ao conteúdo de um documento.

Nota do Editor: Conhece muito sobre esse tópico? Deseja compartilhar seu conhecimento? Participe do programa de wiki do software IBM Lotus hoje.

Wiki do Lotus QuickrWiki do WebSphere PortalWiki do WebSphere Portlet Factory

Apresentação

Com os recentes desenvolvimentos da Web 2.0, as empresas estão percebendo rapidamente os benefícios em potencial de usar software de colaboração como os wikis, programas de colaboração de equipe e fóruns. Tornou-se imperativo fornecer um mecanismo para os usuários colaborarem em diferentes níveis.

Os usuários WebSphere Portal existentes podem aproveitar rapidamente esses novos modos de colaboração usando portlets de integração customizados. Este artigo explica um método de integrar aplicativos WebSphere Portal usando serviços da Web 2.0 do Lotus Quickr. Incluímos um exemplo de trabalho que pode oferecer benefícios imediatos aos seus clientes.



Voltar para parte superior


Visões gerais do produto

Primeiro, vamos analisar alguns recursos importantes dos produtos que estamos discutindo.

Lotus Quickr

Lotus Quickr é um software de colaboração de equipe que contém recursos como bibliotecas de conteúdo, lugares para equipe, conectores, modelos e compartilhamento de arquivos pessoais, o que facilita a colaboração mais rápida e mais efetiva entre equipes grandes e entre pequenas igualmente.

Lotus Quickr adota a infra-estrutura Web 2.0 e é bem adequado para lidar com equipes virtuais flexíveis. Entre os serviços que o Lotus Quickr oferece estão:

  • Autoria colaborativa usando um wiki
  • Compartilhamento de informações usando blogs
  • Compartilhamento de conteúdo usando bibliotecas de conteúdo
  • Comunicação instantânea usando mensagens instantâneas

Esses serviços tornam o Lotus Quickr útil em uma economia global em que as equipes estão separadas geograficamente mas trabalham juntas com freqüência.

No momento em que este artigo foi escrito, a versão mais recente do Java™ 2 Platform, Enterprise Edition para Lotus Quickr é a versão 8.1 e está realmente construída com base no WebSphere Portal V6.0. Embora haja uma versão do Lotus Quickr para o IBM Lotus Domino® disponível, referimos aqui à versão Java 2 Platform, Enterprise Edition.

WebSphere Portal

WebSphere Portal é uma plataforma de integração capaz de reunir vários serviços como uma interface com o usuário (UI) única, unificada e consistente que fornece aos usuários informações baseadas em função, orientadas a processos, no contexto e personalizadas, contribuindo para a produtividade geral.

O WebSphere Portal oferece vários serviços e capacidades como gerenciamento de conteúdo da Web, aplicativos situacionais no contexto, aplicativos de dispositivos do consumidor, software de colaboração de equipe e capacidades de conexão única (SSO).

No momento em que este artigo foi escrito, a versão mais recente do WebSphere Portal é a versão 6.1, que inclui uma experiência do usuário melhorada suportada por diversas tecnologias Web 2.0 de base como Asynchronous JavaScript and XML (AJAX), Representational State Transfer (REST), paletas, arrastar e soltar, marcação inteligente e menus dinâmicos usando tags semânticas.



Voltar para parte superior


Integrando os dois produtos

WebSphere Portal e Lotus Quickr não competem no mesmo espaço; na realidade, são complementares. O WebSphere Portal V6.1 não inclui os recursos de colaboração e gerenciamento de conteúdo que o Lotus Quickr fornece. Essa diferença significa que a única maneira para as instalações do WebSphere Portal existentes poderem aproveitar as novas capacidades de Web 2.0 fornecidas pelo Lotus Quickr é por meio de portlets customizados.

Obviamente, essa integração permite aos usuários do WebSphere Portal existentes criar conteúdo da Web 2.0 dentro da mesma interface com a qual estão acostumados no Lotus Quickr.

O gerenciador de documentos do WebSphere Portal, um recurso das versões anteriores do WebSphere, não está mais incluído no WebSphere Portal V6.1. Portanto, os usuários existentes poderão beneficiar-se simplesmente sendo capazes de usar o recurso de biblioteca de conteúdo do Lotus Quickr. Mas, infelizmente, não existe portlet pronto para usar sem modificação que possa ajudar os usuários do WebSphere Portal a visualizar as bibliotecas de conteúdo do Lotus Quickr.

Serviços REST

Os serviços do Lotus Quickr para IBM WebSphere Portal fornecem interfaces de estilo REST cheias de recursos para seus serviços de organização ATOM e serviços de publicação ATOM. A organização ATOM do Lotus Quickr permite acessar alimentações somente leitura do ATOM de vários recursos do Lotus Quickr, incluindo bibliotecas de documentos, pastas, documentos e rascunhos.

O suporte de publicação ATOM permite manipular os recursos do Lotus Quickr usando HTTP GET, PUT, POST e DELETE. Por exemplo, é possível fazer o seguinte:

  • Manipular metadados de bibliotecas de documentos, pastas e documentos
  • Fazer upload de documentos
  • Recuperar documentos
  • Excluir documentos

Para obter um guia abrangente de todos os serviços REST do Lotus Quickr, consulte o wiki Lotus Content Quickr.

Usando essas interfaces REST, é possível criar um portlet customizado para revelar dados do Lotus Quickr no WebSphere Portal e, desse modo, integrar dados do Lotus Quickr com serviços do WebSphere Portal. No entanto, codificar programaticamente as interfaces REST em um portlet não é uma tarefa trivial. Envolve analisar a alimentação e a codificação das diversas etapas desse processo.

Aqui enfrentamos esse desafio usando o IBM WebSphere Portlet Factory.

WebSphere Portlet Factory

WebSphere Portlet Factory é uma poderosa ferramenta de desenvolvimento de aplicativos projetada para construir aplicativos rapidamente. Mais importante, permite criar interfaces com o usuário baseadas em várias fontes de dados de backend, como IBM Lotus Domino, bancos de dados relacionais e SAP, sem programação manual.

Entre seus recursos está o recurso de perfil patenteado que permite ter uma única base de código e aplicar parâmetros de variabilidade para criar vários portlets múltiplos sem codificação adicional.

Usando o construtor REST Service Call do WebSphere Portlet Factory, é possível criar rapidamente um portlet que integra serviços do Lotus Quickr no WebSphere Portal. Atualmente existe uma amostra desse portlet no wiki WebSphere Portlet Factory; no entanto, a amostra não permite visualizar um documento dentro de um portlet.

Neste artigo demostramos como é possível fazer algumas modificações simples em uma amostra existente, permitindo visualizar o documento dentro do portlet e, ao mesmo tempo, incluir comunicação do interportlet. Essa modificação permite visualizar a hierarquia do documento e o próprio documento, renderizado na mesma página em dois portlets diferentes.

Essa integração fornece uma interface unificada mais forte nos aplicativos. É possível usar uma técnica semelhante para integrar conteúdo do Lotus Quickr nos aplicativos customizados. Fiação permite colocar portlets em páginas diferentes, se necessário para um projeto de interface com o usuário específica.



Voltar para parte superior


Entendendo os dois portlets

Há dois portlets em que nos concentramos:

  • O primeiro, Quickr Explorer, como mencionado acima, é uma versão modificada da amostra no wiki WebSphere Portlet Factory.
  • O segundo portlet, Quickr Content Display, é novo e constitui o tema central deste artigo.

O portlet Quickr Content Display atua como o portlet receptor, enquanto o portlet Quickr Explorer atua como o portlet emissor.

Vamos começar com uma descrição breve do que está contido no portlet Quickr Explorer.

O portlet Quickr Explorer (consulte a seção Downloads deste artigo) contém dois modelos, o QuickrFeedProvider e o QuickrFeedConsumer:

  • QuickrFeedProvider é um modelo de provedor de dados que contém todos os construtores necessários para dar a qualquer modelo de consumidor a capacidade de fazer determinadas chamadas do serviço REST. Nesta amostra, há três chamadas de serviço REST: uma que recupera a uma lista de alimenta ações disponíveis, outra que pode publicar um documento no servidor Lotus Quickr server e uma que pode solicitar um documento do servidor Lotus Quickr.
  • QuickrFeedConsumer é um modelo de consumidor que consome todos os serviços REST disponíveis do modelo QuickrFeedProvider. Esse modelo é usado para criar a UI que habilita qualquer um que usa o portlet para inserir credenciais e um link para uma biblioteca Lotus Quickr, que poderá conter uma lista de pastas e documentos. Após as credenciais serem submetidas ao servidor Lotus Quickr, uma lista das pastas ou documentos disponíveis ou ambos fica visível no portlet.

A amostra do QuickrExplorer também contém uma classe de utilidade Java que é usada para identificar se um link selecionado é uma pasta ou um documento. Outros detalhes dos próprios modelos podem ser encontrados na Página de amostras e técnicas do wiki WebSphere Portlet Factory.

Modificando a amostra do QuickrExplorer

Nós revisamos a classe QuickrUtil e o modelo QuickrFeedConsumer no projeto do WebSphere Portlet Factory para habilitar o portlet resultante como um portlet de origem para essa amostra.

As etapas detalhadas das nossas modificações são as seguintes:

  1. Primeiro, crie um projeto WebSphere Portlet Factory (ou use um existe, se desejar). Faça download da amostra do Lotus Quickr do artigo do wiki WebSphere Portlet Factory, "IBM - Creating a Lotus Quickr Service Using the REST Service Call builder" e importe essa amostra no seu projeto.
  2. Na seção Recursos Java - Origem do Explorador de Projetos, crie um pacote chamado amostra e importe a classe QuickrUtil.java atualizada para esse pacote. A classe QuickrUtil foi agora atualizada para impedir que o portlet de destino leia as URLs da pasta Lotus Quickr (consulte o arquivo QuickrUtil.java na seção Downloads).
  3. Crie um modelo vazio e denomine-o QuickrEventDeclaration, criando assim um modelo sem construtores predefinidos.
  4. Usando o ícone Paleta do Construtor, abra a lista de construtores e selecione o construtor Declaração de Evento:
    • Denomine o evento GetQuickrContent (consulte a Figura 1).
    • Expanda a seção Argumentos do construtor, insira ContentUrl na coluna Nome e selecione IXml na lista suspensa da coluna Tipo de Dados.


    Figura 1. Construtor Declaração de Evento
    Event Declaration builder

  5. Clique em OK e salve o projeto.
  6. Abra o modelo QuickrFeedConsumer clicando duas vezes no modelo da seção Explorador de Projetos do WebSphere Portlet Factory.
  7. Usando o ícone Paleta do Construtor, abra a lista de construtores e selecione o construtor Modelo Importado.
  8. Denomine o construtor Modelo Importado de EventDeclaration como mostrado na Figura 2.
  9. Usando o ícone seletor na extrema direita do campo de entrada Modelo, expanda e selecione o modelo EventDeclaration criado na Etapa 4. Deixe os demais valores padrão como estão.



    Figura 2. Construtor Modelo Importado
    Imported Model builder

  10. Clique em OK.
  11. Usando o ícone Paleta do Construtor, abra a lista de construtores e selecione o construtor Variável.
  12. Denomine o construtor Variável de DocURL e, no menu suspenso no campo Tipo, dê-lhe o tipo XML. Em seguida, insira o XML mostrado na listagem 1 da seção Valor Inicial do construtor (consulte a Figura 3):


    Listagem 1. Código XML do campo Valor Inicial
    
    <contentInfo>
    	<docurl/>
    	<username/>
    	<password/>
    </contentInfo>
    



    Figura 3. Construtor Variável
    Variable builder

  13. Clique em OK.
  14. Usando o ícone Paleta do Construtor, abra a lista de construtores e selecione o construtor Lista de Ações.
  15. Denomine o construtor de sendContentUrl (consulte a Figura 4) e expanda a seção Argumentos.


    Figura 4. Construtor Lista de Ações
    Action List builder

    • Na primeira linha, digite o Nome como Categoria e selecione IXml no menu suspenso Tipo de Dados.
    • Na segunda linha, digite o Nome como Conteúdo e para o Tipo de Dados selecione IXml no menu suspenso.
    • No menu suspenso Tipo de Retorno, selecione nulo.
    • Na seção Lista de Ações, insira os detalhes conforme ilustrado na listagem 2, usando o ícone Seletor localizado à direita de cada campo de entrada conforme mostrado na Figura 5.


    Listagem 2. Detalhes da Lista de Ações
    
    Assignment!Variables/DocURL/contentInfo/docurl=${MethodCall/QuickrUtil.
    openItem(${Arguments/Category},${Arguments/Content})}
    
    !IF (${Variables/DocURL/contentInfo/docurl}) THEN
    
       fireGetQuickrContent(${Variables/DocURL})
    
    !ELSE
    
       QuickrUtil.getFolderFeedList(${Arguments/Category},${Arguments/Content})
    
    !ENDIF
    



    Figura 5. Ícone Seletor
    Chooser icon

  16. Finalmente, clique em OK e salve o projeto.

Você acabou de atualizar a amostra do QuickrExplorer para declarar um evento que está acionado quando uma seleção é feita no QuickrExplorer. Essa atualização faz com que o construtor sendContentUrl Lista de Ações seja chamado. O construtor determina se a seleção é uma pasta ou um documento; se a seleção for um documento, ele aciona o evento GetQuickrContent.

Criando o portlet Quickr Content Viewer

O portlet Quickr Content Viewer em dois modelos:

  • O modelo QuickrEventDeclaration é usado para declarar um evento e para alertar qualquer outro modelo quando um evento é acionado.
  • O modelo QuickrContentDisplay é o modelo de destino desta amostra. Quando um evento é acionado, o modelo QuickContentDisplay captura o valor de uma variável compartilhada e solicita o documento usando tags embarcadas, de modo que o documento (atualmente essa amostra suporta arquivos de documento PDF) pode ser visualizado dentro do portlet.

Neste caso usamos documentos PDF, de modo que o Adobe® Reader abre dentro do portlet:

  1. Crie um modelo principal e de página e denomine-o QuickrContentDisplay. Esta etapa cria um modelo que preenche automaticamente com dois construtores básicos, um construtor Lista de Ações e um Página.
  2. Opcional. Altere a frase na seção Conteúdo da Página para "Selecione um documento para visualizar do portlet Quickr Feed." Consulte a Figura 6.

    Figura 6. Seção Conteúdo da Página
    Page Contents section

  3. Clique em OK e salve o projeto.
  4. Usando o ícone Paleta do Construtor, abra a lista de construtores e selecione o construtor Página. Denomine-o targetPage e substitua a seção Conteúdo da Página pelo código mostrado na listagem 3.



    Listagem 3. Código XML da seção Conteúdo da Página
    
    <html>
        <body>
            <form name="myForm" method="post">
                <div align="center">
                <span name="namedTag"></span><br/>
                <Embed name="objectTag"></Embed><br/>
                </div>
            </form>
        </body>
    </html>
    

  5. Clique em OK e salve o projeto.
  6. Usando o ícone Paleta do Construtor, abra a lista de construtores e selecione o construtor Variável:
    • Denomine o construtor docURLSite.
    • Para o Tipo, expanda e selecione XML no menu suspenso.
    • Para o Valor Inicial, insira o código mostrado na listagem 4.


    Listagem 4. Código XML da seção Valor Inicial
    
    		<contentInfo>
    	<docurl/>
    	<username/>
    	<password/>
    </contentInfo>
    

  7. Clique em OK e salve o projeto.
  8. Usando o ícone Paleta do Construtor, abra a lista de construtores e selecione o construtor Modelo Importado.
  9. Denomine o construtor Modelo Importado de EventDeclaration como mostrado na Figura 7.



    Figura 7. Construtor Modelo Importado
    Imported Model builder

  10. Usando o ícone seletor na extrema direita do campo de entrada Modelo, expanda e selecione o modelo EventDeclaration criado na Etapa 4 da seção anterior. Deixe os demais valores padrão como estão.
  11. Clique em OK no construtor e salve o projeto.
  12. Usando o ícone Paleta do Construtor, abra a lista de construtores, selecione Objeto Java Vinculado e denomine-o QuickrUtil. Para o Nome da Classe, expanda o ícone seletor e selecione samples.QuickrUtil como mostrado na Figura 8.



    Figura 8. Objeto Java Vinculado
    Linked Java Object

  13. Clique em OK e salve o projeto.
  14. Usando o ícone Paleta do Construtor, abra a lista de construtores, selecione Manipulador de Eventos e insira os campos a seguir como indicado na Figura 9:
    • No campo Nome, insira GetQuickrContentEvent.
    • No campo Nome do Evento, selecione GetQuickrContent.
    • No campo Tipo de Manipulador, selecione a opção Especificar seqüencial a seguir.
    • Na seção Argumentos, no campo Nome, insira ContentURL e selecione IXml como a opção Tipo de Dados.
    • No campo Tipo de Retorno, selecione nulo.
    • No campo Seções, selecione Assignment!Variables/DocURLSite=${Arguments/ContentURL} e targetPage.


    Figure 9. Propriedades do Manipulador de Eventos
    Event Handler properties

  15. Clique em OK e salve o projeto.
  16. Usando o ícone Paleta do Construtor, abra a lista de construtores, selecione Configurador de Atributos e insira os campos a seguir como mostrado na Figura 10:
    • No campo Nome, insira ObjectAttr.
    • Na seção Localidade da Página, faça o seguinte:
      • No campo Técnica da Localidade, selecione a opção On Named Tag.
      • No campo Página, selecione a opção targetPage.
      • No campo Tag, selecione objectTag.
    • No campo Lista de Atributos, selecione os nomes e valores mostrados na Tabela 1.


    Figura 10. Propriedades do Configurador de Atributos
    Attribute Setter properties


Tabela 1. Nomes e valores do campo Lista de Atributos
NomeValor
src ${Variables/DocURL/contentInfo/docurl}
altura400px
largura100%
  1. Clique em OK e salve o projeto.

Agora você criou o destino dessa amostra.



Voltar para parte superior


Construindo e implementando o projeto

Agora você está pronto para construir e implementar esse projeto no servidor WebSphere Portal. Após ser implementado, você pode adicioná-lo a qualquer página do WebSphere Portal e, seguindo as instruções no portlet Quickr Explorer, pode conectá-lo ao servidor Lotus Quickr Java 2 Platform, Enterprise Edition e visualizar a lista de documentos.

Para visualizar o conteúdo do documento, selecione o documento (para arquivos PDF, o Adobe Reader deverá estar instalado no navegador) para exibir seu conteúdo no portlet Quickr Content Viewer de destino.

Como descrito anteriormente, o portlet Quickr Content Viewer atualmente suporta arquivos PDF. Se os plug-ins necessários ou os controles Active X de um aplicativo estiverem ativados em um navegador, também é possível visualizar outros tipos de documentos, por exemplo, arquivos ODF, ODT, XLS e DOC.

OBS.: Esteja ciente de que poderão ocorrer problemas se houver muitos portlets acessando ou abrindo um aplicativo em uma única janela do navegador. Por exemplo, falta de memória ou de recursos para abrir múltiplas instâncias de um aplicativo em uma janela do navegador poderá possivelmente causar comportamento imprevisível.



Voltar para parte superior


Conclusão

Mostramos como é possível acessar rapidamente os serviços do Lotus Quickr usando os construtores REST fornecidos pelo WebSphere Portlet Factory. Além disso, o Portlet Factory fornece mecanismos para tornar essa integração mais atrativa para os usuários, por exemplo, o mecanismo de instalar portlets e usar as ações cooperativas minimiza as janelas pop-up nos aplicativos, reduzindo assim número de cliques que os usuários devem executar e melhorando a produtividade.




Voltar para parte superior


Downloads

DescriçãoNomeTamanhoMétodo de download
Code sampleQuickrPortletSample.zip15.8KBHTTP
Code sampleQuickrUtil.java5.5MBHTTP
Informações sobre métodos de download


Recursos



Sobre os autores

Robert Loredo é Software Engineer na divisão WPLC Technical Enablement do IBM Software Group. Ele cria provas de conceito e habilita Parceiros de Negócios IBM e Independent Service Vendors que usam Lotus e produtos da família WebSphere Portal. Você pode encontrar com ele em loredo@us.ibm.com.


Shiva Nistala é Advisory Software Engineer na IBM Developer Relations. Shiva está ativamente envolvida na habilitação técnica de Parceiros de Negócios IBM que usam IBM WebSphere Portal, IBM Lotus Connections e tecnologias e ferramentas relacionadas. Shiva tem escrito e falado sobre diversos tópicos relacionados às tecnologias WebSphere Portal e Lotus Collaborative. Você pode encontrar com ela em shivan@us.ibm.com.




Avalie esta página


Reserve um instante para completar este formulário para nos ajudar a servi-lo melhor.



 


 


Não
são úteis
Extremamente
úteis
 






Voltar para parte superior