Usando a Ponte do Aplicativo WebFacing para Interoperar com Outros Aplicativos da Web

A ponte do aplicativo WebFacing permite que você interconecte novos aplicativos da Web (escritos com EGL, por exemplo) com aplicativos WebFacing e/ou HATS existentes.

Com esta tecnologia, seus aplicativos podem ser modernizados de maneira rápida e fácil usando o WebFacing e/ou o HATS e novos aplicativos da Web podem ser incluídos iterativamente para tirar vantagem das tecnologias da Web mais recentes.

A ponte do aplicativo permite que aplicativos WebFacing transfiram o controle e os dados para outros aplicativos da Web como EGL, fornecendo a capacidade de combinar aplicativos HATS, WebFacing e EGL em um único aplicativo. Isto vai além da obtenção de dados do IBM® i em um aplicativo da Web usando o acesso ao banco de dados direto ou chamando um programa de lote por meio de um Serviço da Web. Ele permite vincular seu novo aplicativo da Web a um aplicativo IBM i e dados de compartilhamento interativos.

O aplicativo WebFacing e o aplicativo da Web correspondente podem ser empacotados como um arquivo EAR para implantação. O arquivo EAR pode ser criado usando a perspectiva Java™ EE do IDE. Entretanto, o aplicativo WebFacing e o aplicativo da Web também podem ser implementados como arquivos EAR separados na mesma instância do servidor de aplicativos.

Para suportar a interoperabilidade entre um aplicativo WebFacing e outro aplicativo da Web, um registro de ligação de DDS deve ser criado e a Configuração da Web da Ponte do Aplicativo deve ser configurada para esse registro. Um registro de ligação de DDS é o registro DDS padrão contendo campos definidos como campos ocultos (uso de H), que é possível usar para transferir dados. O registro de ligação DDS nunca é realmente exibido. Ele é simplesmente usado para transferir dados e controle para o aplicativo da Web especificado na URL do aplicativo de Destino da Configuração da Web de Ponte do Aplicativo quando seu aplicativo IBM i executa WRITE no registro.

Consulte a Configuração da Web de Ponte do Aplicativo em Utilizando Web Settings com sua Origem DDS para obter informações adicionais sobre como criar um registro de ligação de DDS.

A ponte do aplicativo WebFacing suporta a transferência de controle e de dados nos seguintes cenários:
  1. Um aplicativo WebFacing chama outro aplicativo da Web com dados; o outro aplicativo da Web retorna o controle de volta ao WebFacing com atualizações de dados.
    • O aplicativo IBM i executa WRITE no registro de ligação de WebFacing (transferir controle e Dados para outro aplicativo da Web) imediatamente seguido por READ e aguarda que os dados voltem.
  2. Um aplicativo da Web chama um aplicativo WebFacing. O aplicativo WebFacing executará e, em seguida, retornará dados de volta ao outro aplicativo da Web.
    • O aplicativo IBM i executa WRITE em um registro de ligação de WebFacing com a palavra-chave FRCDTA e, então, finaliza o aplicativo.

O Cenário 1 transmite dados do aplicativo WebFacing para o aplicativo da Web especificado na URL do aplicativo de Destino da Configuração da Web de Ponte do Aplicativo quando o aplicativo IBM i executa WRITE e READ no registro de ligação de DDS. O aplicativo WebFacing irá, então, aguardar uma resposta do aplicativo da Web. O aplicativo da Web irá, então, ler os dados através do atributo de pedido "LinkageData", fazer quaisquer atualizações e enviar de volta as atualizações para o aplicativo WebFacing; nesse ponto o aplicativo WebFacing retomará o controle.

O Cenário 2 é suportado através da chamada programática do WebFacing, o que permite especificar qualquer comando CL com ou sem parâmetros para iniciar um aplicativo WebFacing. O aplicativo WebFacing é executado, em seguida, transmite dados de volta ao aplicativo da Web especificado na URL do Aplicativo de Destino da Configuração da Web de Ponte de Aplicativo quando o aplicativo IBM i executa WRITE no registro de ligação DDS. Para este cenário, a palavra-chave FRCDTA deve ser especificada no registro de ligação DDS para que o aplicativo possa finalizar com êxito. Consulte Invocando Programaticamente os Aplicativos WebFacing a partir de Outros Aplicativos da Web para obter informações adicionais sobre a chamada programática.

A ponte do aplicativo WebFacing pode ser usada para fazer aplicativos WebFacing e/ou HATS interoperarem com outros aplicativos da Web. O HATS é ativado com o WebFacing quando um projeto do HATS e um do WebFacing são vinculados usando o recurso de interoperabilidade. Para projetos do HATS/WebFacing vinculados, a ponte de aplicativo pode ser usada como nos cenários a seguir:
  1. HATS e Web/EGL: apenas o registro de ligação é convertido/de WebFacing em seu projeto WebFacing; permite que projetos do HATS transmitam o controle e os dados para Web/EGL.
  2. WebFacing, HATS e Web/EGL: parte de seu aplicativo é WebFacing e a outra parte é executada como um projeto do HATS; permite que projetos do WebFacing e/ou do HATS transmitam o controle e os dados para Web/EGL.

Transmitindo o controle do WebFacing para outro aplicativo da Web

Em ambos os cenários acima, WRITE é executada em um registro de ligação DDS para transmitir o controle do WebFacing para outro aplicativo da Web. Isto é feito usando o método de encaminhamento do Java EE na URL especificada em URL do Aplicativo de Destino da Configuração da Web da Ponte de Aplicativos. O aplicativo WebFacing usará a primeira parte da URL do aplicativo de destino como a raiz de contexto e encaminhará o aplicativo WebFacing para a parte restante da URL. Se a URL do aplicativo de destino for /appContextRoot/appEntryPoint, o aplicativo WebFacing usará appContextRoot como a raiz de contexto e encaminhará para appEntryPoint. O aplicativo WebFacing incluirá o atributo de pedido "forwarded" com o valor "WF" no objeto do pedido antes de encaminhar. Isto permitirá o recebimento do tempo de execução do aplicativo para executar qualquer ação especial, se necessário, no recebimento do controle a partir de um encaminhamento.

Transmitindo o controle de outro Aplicativo da Web para o WebFacing

No Cenário 1, ao transmitir o controle de volta ao aplicativo WebFacing e para ter as atualizações de dados adequadas, o aplicativo da Web deve incluir o atributo "forwarded" no objeto do pedido antes do encaminhamento. O atributo de pedido deve ser "EGL" para um pedido encaminhado de um aplicativo EGL e "CUSTOM" para um pedido encaminhado de outro aplicativo da Web. Isto permitirá o recebimento do aplicativo WebFacing para executar qualquer ação especial, se necessário, no recebimento do controle a partir de um encaminhamento. O ponto de entrada para o aplicativo WebFacing é "/webfacing/WebFacing.do".

Trocando dados entre o WebFacing e outro aplicativo da Web

Os dados da ponte do aplicativo entregues por meio do registro de ligação DDS para o aplicativo WebFacing são salvos em um HashMap Java, com o nome de campo como a chave no HashMap e o valor do campo como o valor para a chave associada. Um atributo de pedido chamado "LinkageData" será usado para fornecer acesso ao HashMap.

Os valores do campo no registro de ligação DDS serão armazenados como dados da cadeia Unicode no HashMap. O outro aplicativo da Web atualizará os campos no HashMap conforme necessário e enviará o HashMap de volta ao aplicativo WebFacing por meio do atributo de pedido "LinkageData". Um valor do campo deve conter esses caracteres que são permitidos pelo tipo de dado de DDS correspondente e possuir o comprimento adequado; caso contrário, ele será descartado pelo aplicativo WebFacing.

Observe o seguinte:
  1. Campos de caracteres e campos DBCS: nenhuma formatação é executada nestes tipos de dado.
  2. Campos numéricos: um ponto decimal "." será inserido no local adequado nos dados se a posição decimal para um campo for maior que 0; um sinal negativo "-" será incluído no início dos dados para um número negativo. Por exemplo, -000123.45 é o formato adequado para um valor numérico com comprimento 8 e posição decimal 2.
  3. Campos de data: formato ISO AAAA-MM-DD é usado.
  4. Campos de hora: formato ISO hh:mm:ss é usado.
  5. Campos do registro de data e hora: formato ISO AAAA-MM-DDThh:mm:ss.uuuuuu é usado.
Nota: Quando um registro de ligação DDS não contiver nenhum campo, o valor "LinkageData" do atributo de pedido será configurado como nulo.