> Uma aplicação simples de demonstração
< Visão geral sobre Interfaces e desenvolvimento de sistemas
Migração de Aplicações para Ambiente Web - Uma Abordagem Prática
Este artigo tem por objetivo demonstrar que é possível com a utilização de recursos Web, ter acesso às novas tecnologias inerentes e simultaneamente diminuir de forma significativa os custos no desenvolvimento e manutenção de interfaces de usuários.Para atingir os objetivos propostos, a sua continuação será dividida em cinco fases principais, conforme tabela 1 e em adição, no Apêndice C, será apresentada uma versão do sistema de demonstração desenvolvido com uma ferramenta de utilização comercial e que usa os conceitos e métodos utilizados no sistema de demonstração.
Tabela 1 – Sequência de atividades
Conforme apresentado na tabela 1, primeiramente serão abordados de forma geral os papeis dentro da solução proposta representados pelos recursos básicos utilizados para a sua implementação, ou seja, o Bash, Http, Html, Cgi, Css e Java Script.
Numa segunda fase, será apresentada uma metodologia de integração e desenvolvimento de sistemas, de forma sucinta, apenas enfocando o que se considera importante para a viabilização do desenvolvimento de interfaces de usuário. Para isto será utilizado o conceito de desenvolvimento de sistemas em camadas, conforme já descrito anteriormente, separando os dados, regras de negócio e interface. Nesta mesma fase será abordado o conceito de integração de aplicações aplicada para camadas internas do sistema, ou seja, a utilização de uma solução de interface única para todo o negócio.
Na terceira fase, será desenvolvida uma aplicação simples de demonstração, baseada em caractere, mas que possui os requisitos já explanados na segunda fase. Contendo apenas algumas opções, será um modelo com condições operacionais, produzindo as condições básicas para que o usuário possa interagir com o sistema.
Na quarta fase, será apresentada a migração da aplicação de demonstração para o ambiente Web, para que se possa observar as vantagens da metodologia, no que diz respeito ao desenvolvimento e tendo em vista os poucos requisitos necessários para a sua implementação, além da percepção de diminuição de custo na fase de desenvolvimento. Neste ponto será apresentado o mecanismo de acesso que permite efetivamente a disponibilização de páginas no ambiente Web e a visualização da geração automática de interface de usuário, ou seja, a produção dinâmica de páginas, as quais, após sua utilização são totalmente descartadas, sendo necessárias apenas no momento da comunicação do usuário com o sistema.
Numa quinta fase, simulando o processo de manutenção da interface, causado por um novo atributo inserido em um elemento da aplicação, será apresentada uma alteração no sistema de demonstração, para que se possa ter idéia do comportamento da metodologia frente a uma nova realidade.
Embora não seja objetivo deste artigo o detalhamento sobre qualquer um dos recursos utilizados, foi incluído no seu final, no Apêndice A, uma visão geral sobre eles, no sentido de justificar o seu uso e permitir uma melhor comparação com outros equivalentes. Dando continuidade, serão apresentados brevemente os papéis atribuídos a cada um dos recursos, tendo em vista os nossos objetivos.
O Bash será utilizado para que se possa escrever uma aplicação simples de demonstração, e nesta, mais especificamente todos os serviços necessários, como por exemplo, o que trata da execução da interface, tanto no ambiente caractere como na versão para geração de páginas Html no ambiente Web. Quanto ao Cgi, por ser o meio escolhido para dar todo suporte ao tráfego de páginas entre o servidor Web e o navegador do usuário, nos dois sentidos. O Css, que cuidará de aspectos de apresentação e posicionamento dos elementos nas páginas e finalmente o JavaScript que carregado no programa navegador do usuário cuidará da lógica de edição da página no ambiente Web. Em adição, menciona-se aqui o servidor de páginas representado pelo Apache, principalmente por sua disponibilidade tanto em plataformas Linux como Windows. Naturalmente para quase toda a tecnologia proposta existem outras equivalentes e até mais atuais, como por exemplo, Php, Java, Asp, etc, porém a escolha foi norteada na utilização do que se considera o mais básico possível, e propositadamente com o objetivo de alcançar o maior número possível de utilizadores.
Tendo em vista a evolução dos sistemas de computação, observa-se que no seu início a informação era processada em sistemas independentes e muito freqüentemente em plataformas distintas, cada um cuidando de sua área especifica. Com o decorrer do tempo, fatores como o dinamismo das organizações, começaram a exigir a integração das informações oriundas dos diversos sistemas, no sentido de proporcionar soluções mais adequadas aos negócios. Como a maior parte das organizações utilizava e utiliza ainda hoje vários tipos ou gerações de sistemas desenvolvidos ao longo dos anos, e estes sistemas legados possuem valor para as empresas e, somando-se a este cenário o advento das tecnologias baseadas na Web, principalmente as que têm relacionamento mais direto com o negócio, tornou-se clara a necessidade de integração entre esse ambiente e um conjunto de aplicações dispersas entre os vários departamentos da organização.
Ao se considerar as características das soluções apresentadas para os problemas de integração, são encontrados inicialmente esquemas ponto-a-ponto, forma que estabelece um canal de comunicação específico para cada conexão entre os sistemas, indicados pelas setas na figura 1. Neste método, também conhecido como “integração tipo espaguete” é possível perceber que ao longo do tempo, e em função da quantidade de sistemas envolvidos, torna-se confuso e de difícil manutenção.
Figura 1 - Integração de sistemas ponto-a-ponto
Em seguida aparecem os esquemas middleware, que evoluíram na metade da década de 90, para uma abordagem conhecida por EAI “Enterprise Application Integration” que surgiu como uma alternativa para tornar possível a integração de aplicações empresariais com menor custo de manutenção, sendo sintetizado conforme o esquema da figura 2, onde se pode notar que a solução prevê um lugar comum, o Barramento de Integração, local onde todos os sistemas envolvidos enviam e recebem suas requisições.
Figura 2 – Barramento de integração de sistemas
Não faz parte do escopo deste artigo questões que envolvam a Integração de Sistemas, porém é possível aproveitar o modelo exposto na figura 2 para a integração entre Módulos de Aplicações e Interface de Operação e esta similaridade pode ser observada no esquema da figura 3. De forma semelhante ao que acontece na integração de sistemas, a solução compõe uma única interface, que tem por objetivo atender as requisições dos diversos módulos do sistema. Com base em um esquema previamente acordado os módulos se comunicam com a interface enviando e recebendo suas requisições.
Figura 3 – Módulos integrados por meio de interface comum
Como já mencionado, com a contínua evolução de métodos e tecnologias disponíveis, o processo de desenvolvimento de sistemas está separado em fronteiras distintas, denominado “Desenvolvimento em Camadas”, permitindo que aplicações convencionais possam ser divididas, em geral, em três módulos principais, conforme apresentado na figura 4:
Figura 4 - Desenvolvimento em camadas
Tomando como base uma determinada aplicação, tendo como foco os módulos que a compõe e especificamente a sua comunicação com a interface de usuário, nos moldes convencionais, encontra-se geralmente o esquema da figura 5, onde se observa que cada módulo da aplicação que necessita interagir com o usuário possui o seu correspondente para executar o serviço de interface. Este modelo, como se pode prever, dificulta a padronização e gera alto custo de manutenção.
Figura 5 – Uma interface para cada módulo
Se por outro lado, for adotada uma solução que tenha como meta a integração, pode-se convencionar padrões de comunicação entre os módulos e a interface, permitindo que todos os participantes se reportem a uma única interface para atendimento de suas solicitações, conforme esquematizado na figura 6:
Figura 6 – Uma interface para todos os módulos
> Uma aplicação simples de demonstração
< Visão geral sobre Interfaces e desenvolvimento de sistemas
Migração de Aplicações para Ambiente Web - Uma Abordagem Prática