Anterior Home Page Sumário E-Mail Próximo

  • CGI e ISAPI: Vantagens e desvantagens
  • Neste capítulo apresentamos uma breve comparação entre a interface CGI e a ISAPI, ressaltando as vantagens e desvantagens de cada uma.

  • Vantagens do CGI
  • A interface é o padrão utilizado na construção de sites Web interativos. Originalmente concebido para o mundo UNIX na Internet, tem por objetivo fornecer um método comum de tratar os pedidos que procuram informações não residentes em formato HTML. No próximos itens, relacionamos algumas das vantagens dos aplicativos CGI.

  • Consistência com as práticas UNIX
  • A interface CGI nasceu no UNIX, que até recentemente predominava entre as plataformas de servidores Internet. A razão disso é simples:

    1. Processos executando separadamente
    2. Os aplicativos CGI são processos "standalone" que podem ser desenvolvidos e testados independentemente, utilizando os conhecimentos de UNIX. Esses processos executam separados do servidor, sendo virtualmente impossível que um aplicativo CGI mal comportado "derrube" o servidor Web.

      Isto contrasta diretamente com as extensões e filtros ISAPI, que são DLLs carregadas no mesmo address space do servidor Web, constituindo "threads" do mesmo processo. Neste caso, é virtualmente possível "derrubar" o próprio servidor Web.

    3. Facilidade de depuração
    4. Fazer "debug" de aplicações CGI é relativamente fácil, dependendo da complexidade das mesmas, pois se trata de processos separados, sem dependências externas, por exemplo, do servidor. A forma como os aplicativos CGI utilizam a entrada e saída padrão do sistema (stdin e stdout) e as tradicionais variáveis de ambiente, facilita a obtenção e passagem de dados e parâmetros, quando se pretende fazer debug dos aplicativos.

    5. Vantagens da ISAPI
    6. A interface ISAPI permite desenvolver aplicativos Web através da utilização de suas "extensions" e seus "filters". Nos próximos itens, relacionamos algumas das vantagens dos aplicativos ISAPI.

    7. Maior rapidez na resposta
    8. Quando o cliente faz uma requisição ao servidor, o que se espera é que a resposta chegue o mais rapidamente possível de volta ao cliente. As páginas HTML são geradas muito mais rapidamente através da ISAPI, em comparação com o CGI.

      Isto tem uma razão: as extensões ISAPI são DLLs, sendo carregadas apenas quando chamadas pela primeira vez. Desta forma, quando invocadas, recebem o controle rapidamente.

    9. Menor sobrecarga no servidor

    Uma desvantagem do CGI é que cada aplicativo executa como diferente processo em diferente address space, ou seja, separado do servidor Web. Cada pedido do cliente, por exemplo, um simples ENTER no teclado ou um click do mouse sobre um link, gera novos processos, ou seja, novas instâncias do aplicativo. Como resultado:

    Imagine um servidor com centenas ou milhares de transações HTTP executando de maneira simultânea. Esta situação pode ocasionar séria degradação no desempenho pela quantidade de processos iniciados e terminados simultaneamente.

    Em contraste, na interface ISAPI, as DLLs são carregadas apenas uma vez e permanecem residentes no mesmo address space do servidor. Para cada pedido de um cliente, o servidor inicia um "thread", dentro do mesmo processo, para chamar e processar a "extension" ISAPI.

    1. Melhor controle do ambiente
    2. A interface ISAPI proporciona maior controle que o CGI sobre os ambientes Web, pois permite gerenciar todos os eventos antes que qualquer "request" passe para uma "extension" ISAPI. Isto pode ser feito através dos filtros, recursos não existentes no CGI.

      Os filtros podem processar os pedidos e passá-los adiante ou rejeitá-los, não permitindo que passe adiante em direção ao seu destino.

    3. Maior segurança lógica
    4. A interface ISAPI oferece recursos adicionais, permitindo desenvolver camadas adicionais de segurança. Uma das técnicas mais conhecidas consiste em desenvolver filtros de autenticação dos usuários, dentro do servidor Web. Se o servidor está dentro de uma Intranet corporativa, podem ser utilizados, ainda, os recursos de segurança da API Win32.

      Anterior Home Page Sumário E-Mail Próximo