WebSphere BPM e Lotus Webform Server
Visão Geral da interação entre HTML e formulário
Sempre que uma tarefa manual é incluída em um BPEL de longa duração, é preciso decidir qual tecnologia será usada para renderizá-la. A pilha WebSphere BPM oferece algumas escolhas em tecnologia de interface com o usuário (UI): JSF, HTML simples e agora uma integração de vínculo próximo com Lotus Forms.
Cada uma dessas interfaces pode ser integrada no Espaço de Negócios e usada com ele, mas o uso do Lotus Forms requer que os usuários implementem uma nova infraestrutura de produto de suporte, para implementar e visualizar esses formulários.
Em versões anteriores do Lotus Forms, era preciso instalar um aplicativo cliente (Lotus Viewer) em cada máquina do usuário final. Isso restringia a interação dos usuários com Tarefas Manuais a um número finito de plataformas – aquelas suportadas pelo Lotus Viewer – e, mais importante, a um conjunto de máquinas no qual o visualizador estivesse instalado.
Lotus Webform Server é uma tecnologia criada pra remover essas restrições, e permitir aos usuários visualizar e interagir com Lotus Forms a partir de um navegador.
No aplicativo SalesPromotion existe um simple business process (BPEL) que contém uma única Tarefa Manual.
Figura 1. BPEL StorePromotions
Já foi criado um formulário para a Tarefa Manual 'Approve Request', que pode ser visualizado ao clicar no nome da Tarefa na seção de detalhes. Isso exibirá as configurações atuais para esta tarefa. Neste caso, na figura 1, uma interface com o usuário do Lotus Forms foi selecionada.
Figura 2. Configurações de Tarefa Manual
Quando 'Generate Human Task Interface' é selecionado no menu de contexto de módulo e o formulário é gerado para 'Approve Request', um arquivo 'xfdl' (Extensible Forms Description Language) é gerado e colocado na pasta do módulo. Quando implementado, o arquivo de formulário (xfdl) é armazenado na pasta WebContent (ou na pasta do projeto da Web selecionado).
Figura 3. Arquivo xfdl NewPromotionForm em recursos físicos
Este arquivo, NewPromotion.xfdl, armazena todos os formulários de requisição – no caso de aplicativo com vários formulários – que serão enviados ao Webform Server. A tarefa do Webform Servers, nesse momento, é converter o "formulário" para HTML e devolvê-lo ao Espaço de Negócios para exibição. Se você tiver o Lotus Forms Designer instalado, abrir o NewPromotionForm permite editar e customizar o formulário.
Implementação do Lotus Webform Server
Existem, efetivamente, duas opções para implementar o Lotus Webform Server (WFS) para uso com uma topologia Business Process Management.
A implementação Local instala o Webform Server em uma célula BPM existente. Nesse cenário, devido à localização do aplicativo de proxy bSpaceWebformEnabler, é mais fácil instalá-lo no mesmo nó físico contendo o aplicativo de Espaço de Negócios.
Tabela 1. Tipo de Cluster de Referência para local do Webform Server
| Tipo de Cluster | Local |
|---|---|
| Sistema de Mensagens Remotas/Suporte Remoto (Ouro) | Membros do Cluster de Suporte |
| Sistema de Mensagens Remotas (Prata) | Cluster de Aplicativo/Suporte |
| Cluster Único (Bronze) | Cluster Único disponível |
Embora este seja o tipo de instalação "mais fácil", pois não é necessário relocar o aplicativo de proxy, pode se tornar inapropriado devido à carga criada nos nós. Para sistemas de alto desempenho, pode ser mais prudente instalar o Webform Server em sua própria célula, em nós separados. Esse tipo de instalação é chamado de implementação Distribuída.
Implementação Local - mesma Célula
Figura 4. Implementação Local em um cluster de Sistema de Mensagens Remotas - Suporte Remoto
Implementação Distribuída - célula remota
Figura 5. Cluster de Webform Server Distribuído com Servidor HTTP
Webform Server Armazenado em Cluster
Em ambos os tipos de implementação, pode ser criado um único Webform Server ou um cluster de servidores.
Com um único servidor, corre-se o risco de criar um gargalo e um ponto único de falha para os aplicativos. Sem o Webform Server, formulários de Tarefa Manual não seriam renderizados, e, embora isso não afetasse o mecanismo de BPC em si, impediria efetivamente que os usuários interagissem com o processo. Armazenar os Webform Servers em cluster reduziria efetivamente o gargalo potencial e removeria o ponto único de falha.
Para criar o cluster do Webform Server, o Servidor de Tradução precisa ser instalado em uma máquina usando o procedimento padrão de instalação, implementando o aplicativo e o Servidor de Aplicativos fornecido ou implementando o aplicativo de Servidor de Tradução em um Servidor de Aplicativos implementado.
O Servidor de Aplicativos que serve de host para o aplicativo de Servidor de Tradução deve ser federado na Célula do Webform.
No segundo nó, que deve ser um nó do Servidor de Aplicativos já federado na Célula do Webform, devem ser instalados os binários do Webform Server. O aplicativo do Servidor de Tradução não deve ser implementado nesse momento, como mostrado na figura 4. Isso é obtido pela criação do cluster.
Figura 6. Implementando o Servidor de Tradução
Para armazenar o servidor em cluster, no console administrativo, selecione Servers > Clusters > WebSphere Application Server Cluster e crie um novo cluster, como mostra a figura 7.
Figura 7. Criação do cluster do Webform Server
Insira o nome do cluster, e mantenha as configurações padrão. Na próxima tela, figura 8, selecione create the member using an existing application server as a template e selecione o Servidor de Tradução criado originalmente.
Essa opção toma um Servidor de Aplicativo existente como base para outros nós no cluster. Quaisquer aplicativos e/ou outros recursos configurados no Servidor de Aplicativos existente serão criados no cluster, e serão assim transferidos para novos membros incluídos no cluster.
Figura 8. Criar um cluster a partir de um servidor existente
Na janela Add Member, figura 9, selecione o segundo Servidor de Aplicativos, aquele em que o Servidor de Tradução não foi implementado, e clique em Next. Isso criará um novo membro no cluster, e transferirá os aplicativos e recursos implementados no Servidor de Aplicativos existentes para o novo membro.
Figura 9. Membros Adicionais
Você agora tem um cluster com dois Servidores de Aplicativos, cada um com um Servidor de Tradução implementado, a partir do qual formulários podem ser renderizados.
O servlet bSpaceWebFormEnabler é o proxy por meio do qual o Espaço de Negócios se comunica com o Lotus WebForm Server. É um aplicativo simples que deve ser implementado sempre que os binários do WebForm Server sejam instalados, já que ele requer acesso a essas bibliotecas.
Há dois pontos de configuração para permitir que o Espaço de Negócios interaja com o WFS:
- Configurar o local do bSpaceWebformEnabler
- Configure bSpaceWebformEnabler para ser direcionado para o local do WebForm Server
A URL padrão definida para bSpaceWebformEnabler usa o nome de host 'localhost', por isso, se o WFS for instalado localmente no membro do cluster no qual o bSpacewebformEnabler está instalado, não é necessária alteração alguma.
Para alterar o valor, selecione Resource Environment Provider > Mashup EndPoints > Custom Propertiese altere a entrada {com.ibm.bspace}bspaceWebformProxyRootId.url, como mostra a figura 10.
Figura 10. Editando a URL de raiz do proxy
Se bSpaceWebformEnabler estiver instalado em um servidor diferente que o Webform Server, o parâmetro 'translatorLocation' do servlet bSpaceWebformEnabler precisa ser alterado, como mostra a figura 11. Observe que a porta não deve, em geral, ser diferente do padrão de 8085.
Figura 11. Configuração do ativador do Proxy Webform
Na configuração de translatorLocation, uma única URL é configurada. Isso significa que, mesmo que um cluster esteja configurado para o aplicativo do Servidor de Tradução, o servlet do proxy acessa apenas um deles, ou seja, temos uma funcionalidade de Alta Disponibilidade(HA) em operação.
Para melhorar essa situação, um servidor HTTP, ou um Servidor de Proxy IBM, deve ser configurado e colocado na frente do cluster. A URL em 'translatorLocation' deve, então, ser configurada para apontar para uma porta associada nesse servidor.
Um Servidor de Proxy será o mais fácil de configurar, já que está embutido no Servidor de Aplicativos. Ao contrário do servidor HTTP, o de Proxy tem uma lista dinâmica de aplicativos que não requer plug-ins para ser gerada e manualmente distribuída.
O padrão de instalação usado para o WebForm Server depende dos requisitos do projeto e da disponibilidade dos recursos necessários.
Um ambiente distribuído, no qual o Lotus Webform Server é remoto, oferece a melhor demarcação de interesses, e permite planejar manutenções separadas.
Instalações locais podem ter um efeito negativo no Cluster WPS no qual o WebForm Server é instalado, com carga adicional sendo colocada nos servidores. Uma instalação local significa também que o WebForm Server seria afetado quando fosse realizada manutenção no Servidor de Aplicativos.
Se a Alta Disponibilidade for um requisito, um cluster de WebForm Servers deve ser implementado, e um Servidor HTTP ou Servidor de Proxy IBM deve ser configurado para permitir balanceamento de carga entre os membros do cluster.
Aprender
- Na área de SOA e serviços da Web no developerWorks, obtenha os recursos que você precisa para avançar suas técnicas.
- Mantenha-se atualizado com eventos técnicos e webcasts do developerWorks focados em uma série de produtos IBM e tópicos do segmento de mercado de TI.
- Participe de um encontro developerWorks Live! gratuito para atualizar-se rapidamente sobre produtos e ferramentas IBM e tendências do segmento de mercado de TI.
- Siga o developerWorks no Twitter.
- Acompanhe demos on-demand do developerWorks
que abrangem desde demos de instalação e configuração de produtos para iniciantes até funcionalidade avançada para desenvolvedores experientes.
Obter produtos e tecnologias
-
Avalie os produtos IBM da maneira que for melhor para você: faça download da versão de teste de um produto, avalie um produto on-line, use-o em um ambiente de nuvem ou passe algumas horas na SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de modo eficiente.
Discutir
- Participe da comunidade My developerWorks.
Entre em contato com outros usuários do developerWorks, enquanto explora os blogs, fóruns, grupos e wikis orientados ao desenvolvedor.