Migração para ambiente Web - Geração e Mecanismo de Acesso

> Migração para ambiente Web - Utilização do Mecanismo e Execução

< Interface única a caractere - Geração e Execução

Migração de Aplicações para Ambiente Web - Uma Abordagem Prática

Migração para ambiente Web – Geração

Para migrar para ambiente Web a solução passa pela implementação na camada de interface, dando a ela condições para executar no novo ambiente. Para isso, inicia-se alterando o esquema da interface comum, conforme apresentado na figura 20:

Figura 20 - Interface comum com módulo Web

Com o aparecimento de módulo “srv_interface_htm.sh”, torna-se necessária a alteração do "módulo srv_interface.sh" que agora se apresenta como a figura 21. É possível agora notar a seleção do tipo de interface que deve ser usada em função da verificação da variável de ambiente Cgi “GATEWAY_INTERFACE”, [linha 3] e de acordo com a sua existência, executar o modelo “htm” ou o “txt”, [linha 4].

Figura 21 – Módulo "srv_interface.sh" - modificada

Em seguida visualiza-se o módulo "srv_interface_htm.sh", que gera uma interface em Html a ser executada pelo navegador, conforme se observa nas figuras 22 a 24.

Inicialmente, como se observa na figura 22, o conceito de exibição passa a ser substituído pelo de geração. No padrão “cadastro”, [linha 236], observa-se inicialmente as rotinas de geração de títulos, nomes, valores e de prompts, [linha 238]. Na seqüência aparece o laço que envia a página gerada, [linha 240] e aguarda os campos de formulários retornados para as variáveis da aplicação por meio da chamada “envia_recebe”, [linha 241] e em seguida monitora as teclas de edição, [linha 242].

Figura 22 – Módulo "srv_interface_htm.sh" - cadastro

Para os casos de geração será apresentada apenas a sessão “gera_nome”, conforme exibido na figura 23. De modo semelhante ao padrão caractere, trata-se de laço que varre a tabela de nomes, [linha 257] e para cada ocorrência, gera por meio do “echo”, [linhas 262 a 264], redirecionado para um arquivo de envio, “>> $envia”, o texto no padrão Html, “<input...”, [linha 262], juntamente com valores “value=...”, [linha 263], e atributos Css, “style=...”, [linha 264], para posicionamento dos elementos.

Figura 23 – Módulo "srv_interface_htm.sh" - gera

Finalmente, conforme apresentado na figura 24 explora-se um pouco a sessão que aguarda a edição da página gerada para o navegador, “envia_recebe”, onde se observa que após a geração da página, a interface da aplicação libera o cliente para exibi-la, “echo okk...”, [linha 156] e em seguida entra em estado de espera aguardando a sua edição, “verifica_envia”, [linha 158]. Continuando, recebe o formulário retornado pelo navegador, “campo_form=”, [ linha 160], separa os conteúdos dos campos, [linhas 162 a 165] e finalmente copia o valor para as variáveis da aplicação, [linha 167].

    1. Figura 24 – Módulo "srv_interface_htm.sh" – envia_recebe

A seguir, na figura 25, um trecho do código da página temporária, resultante da execução da interface modelo Html com sua saída redirecionada em um arquivo. A visualização da execução deste código por um navegador será apresentada mais a frente em “ambiente Web – execução”.

    1. Figura 25 – Arquivo de envio gerado por "srv_interface_htm.sh"

Do ponto de vista da interface, as informações estão prontas para serem usadas. Mas falta o lado do cliente. É necessário criar um mecanismo que disponibilize o acesso a estas páginas em um navegador e retorne as informações à aplicação. É isto que será apresentado a seguir.

Migração para ambiente Web – Mecanismo de Acesso

Para permitir um mecanismo de acesso à interface gerada, será utilizado um conjunto de componentes, que por meio de sua integração permitem o envio de páginas e o recebimento de formulários conforme o que segue:

Descrição dos componentes:

Figura 26 – Componentes do mecanismo de acesso

Os componentes apresentados na figura 26 e descritos a seguir podem estar instalados em uma mesma máquina ou em máquinas distintas, dependendo basicamente de questões, como por exemplo, disponibilidade de recursos, eficiência e regras de segurança.

1. Navegador do usuário. Programa navegador Web, tendo como exemplos, Mozilla Firefox, Internet Explorer ou outro navegador, instalado na estação do usuário do sistema. Por meio deste recurso o usuário seleciona a aplicação que pretende usar, solicita a sua inicialização, o seu processamento e encerramento; fases estas que serão explicadas no módulo cliente de aplicação.

2. Servidor de páginas. Servidor de páginas Web; podendo ser representado pelo Apache, Internet Information Server ou qualquer servidor que possa executar programas Cgi. Sua função é estabelecer a comunicação entre o programa navegador do usuário e o programa cliente da aplicação, recebendo e enviando requisições nos dois sentidos.

3. Servidor de aplicações. Trabalha em um único sentido. Executa continuamente, verificando de tempos em tempos, eventuais solicitações. Recebe requisições, na fase de inicialização do cliente da aplicação, solicitando o início de uma determinada aplicação, momento em que a executa em segundo plano, ou seja, dispara a aplicação para que ela execute de uma forma autônoma e retorna à sua função normal de verificação de novas solicitações.

4. Cliente da aplicação. Trabalha em dois sentidos. Executa a comunicação entre o servidor de páginas e a aplicação propriamente dita. Deve ser, segundo o modelo proposto, uma aplicação Cgi, que é disparada pelo servidor de páginas. A sua execução é caracterizada por três momentos distintos. O primeiro momento, identificado como inicialização, no qual solicita ao servidor de aplicações o início da aplicação escolhida. Num segundo, identificado como processamento, envia os formulários recebidos do servidor de páginas para a aplicação e aguarda novas páginas geradas para serem disponibilizadas ao servidor de páginas, e após isso encerra. A rotina de processamento permanece sendo re-executada continuamente até que o usuário solicite sua finalização. Neste ponto ocorre o terceiro momento, o de encerramento, quando o cliente da aplicação envia a ela um formulário solicitando o seu término.

5. Aplicação selecionada. Este módulo também trabalha nos dois sentidos. Pode ser materializado por qualquer aplicação que tenha sido selecionada pelo usuário, como por exemplo, um sistema de clientes, fornecedores, etc. Deve ter uma interface com a capacidade de detectar a condição de estar sendo executada num ambiente Web e, conseqüentemente, se comunicar com o cliente da aplicação enviando páginas e recebendo formulários. O funcionamento da interface deve ser totalmente transparente à aplicação propriamente dita, ou seja, para o sistema de clientes, fornecedores, ou outro qualquer não existe nenhum tipo de preocupação com que tipo de ambiente a interface está interagindo. Cabe à interface chamada pela a aplicação a incumbência de detectar o ambiente Web, gerar as páginas que serão lidas pelo módulo cliente, aguardar a interação do usuário, após isso ler os formulários retornados e permanecer neste ciclo até que lhe seja solicitado o encerramento.

Para maiores detalhes a respeito do funcionamento veja o Apêndice B – Fases de execução – Mecanismo de Acesso.

> Migração para ambiente Web - Utilização do Mecanismo e Execução

< Interface única a caractere - Geração e Execução

Migração de Aplicações para Ambiente Web - Uma Abordagem Prática