O serviço de Produtor WSRP permite disponibilizar instâncias de interfaces como portlets remotos para serem consumidos por algum consumidor WSRP.
WSRP é um padrão definido pela OASIS que define um conjunto de interfaces e semânticas relacionadas que padronizam interações com componentes que fornecem ao usuário um markup, incluindo o processamento das interações do usuário com esse markup. Para obter maiores detalhes sobre o padrão WSRP, acesse http://www.oasis-open.org/committees/wsrp.
Aspectos Comportamentais
A atual implementação do produtor WSRPno LumisXP apresenta os aspectos comportamentais descritos abaixo. Estes comportamentos podem ser alterados em versões futuras do LumisXP visando melhorias e evolução deste serviço.
- Registro: existe suporte para registro. O Lumis dá suporte para registro inband e outband.
- Public render parameters: o produtor ignora parâmetros públicos fornecidos e não envia nenhum parâmetro público.
- User categories: o produtor ignora qualquer informação sobre categoria do usuário fornecida pelo consumidor.
- User information: o produtor ignora qualquer informação sobre o usuário fornecida pelo consumidor.
- Markup caching: o produtor sempre indica que o markup expira em zero segundos, o que implica nele não ser armazenado em cache.
- Resource caching: o produtor não gera nenhuma informação extra de controle sobre cachede resource. As resource URLs geradas pelo produtor são baseadas em mecanismo de transporte via proxy .
- Eventos: o produtor não gera nem processa eventos.
- Consumer Configured Portlet: o produtor permite a criação de Consumer Configured Portlet contanto que o consumidor esteja registrado. As propriedades do Portlet são armazenadas na forma de custom properties no produtor.
- Durante importação/exportação ou aplicação de template de canal, as configurações da instância de serviço de produtor WSRP(todas as configurações e lista de instâncias de interfaces oferecidas) não são transportadas.
- HyperLink: HyperLink é uma funcionalidade do LumisXP que permite gerar uma URL para uma página do LumisXP calculada dinamicamente, de acordo com a sua parametrização. Na especificação WSRP não há suporte para um portlet ter um link para outra página do portal, ou mesmo para outro portlet. Portanto, no cenário em que o LumisXP é um produtor WSRP e a URL de um HyperLink for renderizada em um markup sendo consumido através do WSRP, esta URL será escrita pelo produtor de forma absoluta, apontando para a página correspondente do LumisXP. Dessa forma o HyperLink mantém seu comportamento de gerar uma URL para uma página do LumisXP. Note, no entanto, que o usuário final ao seguir esta URL sairá do portal consumidor e navegará diretamente para uma página LumisXP. Se o usuário final não tiver acesso para navegar para essa URL (por exemplo, porque não tem acesso para navegar diretamente no servidor do LumisXP), poderá ocorrer um erro no seu navegador de acordo com sua limitação de acesso.
- WSRP não envia parâmetros de form para URL tipo render: Esta é uma limitação do WSRP, em que parâmetros do form são enviados apenas se o form for submetido para URL do tipo action, e não se ele for submetido para URL do tipo render. Logo interfaces que geram tal tipo de HTML podem não funcionar através de WSRP corretamente.
- Funcionalidades client-side: Existem elementos específicos de uma página do LumisXP, tais como funções javacript ou elementos HTML, que podem não estar disponíveis na página criada no consumidor, ou mesmo que se tente disponibilizá-los lá, podem não funcionar como esperado. Qualquer interface que gere HTML que utilize tais elementos, pode não funcionar corretamente por WSRP. Alguns scripts client-side podem não funcionar por WSRP caso gerem URLs manualmente.
- Uso dos parâmetros itemId e lumItemId: A utilização desses parâmetros gera comportamentos distintos entre o funcionamento dos serviços quando executados de forma nativa ou via WSRP. Essa diferença de comportamento ocorre, pois os parâmetros itemId e lumItemId são públicos na página e este recurso não é suportado pelo produtor WSRP. Neste caso, é necessário customizar o serviço utilizando parâmetros específicos para a renderização de interfaces de detalhes, mantendo assim, o mesmo comportamento entre ambas execuções.