Os Modelos Centrados no Servidor permitem a implementação de Sistemas de Informação para a Web com conteúdos dinâmicos, isto é, os documentos HTML (Hypertext
Markup Language) que o cliente recebe são criados dinamicamente no servidor à medida que
Servidor é o facto dos servidores Web não manterem o estado e do protocolo HTTP (Hypertext Transfer Protocol) não manter a conexão, pelo que terão que ser as aplicações a fazê-lo. Algumas técnicas para contornar essa limitação assentam, por exemplo, na passagem de informação (Query Strings) através do URL (Uniform Resource Locator) ou de campos de elementos FORM visíveis ou invisíveis. Portanto, os processos têm um ciclo de vida
circunscrito ao período temporal do acesso desencadeado pelo utilizador (uma sessão).
Estes modelos podem ser classificados em Sistemas de Informação para a Web baseados em CGIs (CGI - Common Gateway Interface), baseados em SSIs (SSI - Server Slide
Include) e baseados em APIs (API - Application Programming Interface) [Silva 1999a].
2.2.5.1.1 Modelo baseado em Common Gateway Interfaces
Os primeiros Sistemas de Informação para a Web Centrados no Servidor eram baseados em CGIs, cuja finalidade principal era fornecer uma interface simples através do servidor, por forma a que quaisquer outros processos pudessem interagir com ele de modo independente. Inicialmente, os Sistemas de Informação para a Web baseados em CGIs tinham como objectivo converter protocolos e formatos para formato HTML. Daí a designação de “Gateway” (Conversor). Também foram designados por “Scripts” uma vez que são, em grande parte, desenvolvidos em linguagens de programação interpretadas (Perl, C-Shell).
O CGI permite, essencialmente, estender as funcionalidades dos servidores Web (por exemplo, acesso a Sistemas de Bases de Dados ou conversores de dados), disponibilizando apenas uma interface ao nível da comunicação entre processos.
Cliente Servidor
Processo
CGI específicoProcesso
HTTP
Canal CGI
Protocolo específico
Figura 9 - Sistema baseado em CGIs
Tal como ilustrado na figura 9, quando um utilizador se encontra numa sessão a fim de efectuar um pedido de informação, destacam-se as seguintes fases num processo CGI:
1. O processo CGI é criado pelo servidor, quando o cliente solicita ao servidor permissão para executar o programa CGI;
3. O processo CGI analisa os dados recebidos e verifica a sua validade;
4. O processo CGI efectua o processamento de acordo com os dados recebidos (por exemplo, conectar a um servidor de informação geográfica ou a uma base de dados para executar uma consulta);
5. Finalmente, produz a saída (resultado em formato HTML) para o canal CGI, que a entrega ao servidor que, por sua vez, a reencaminha para o cliente.
2.2.5.1.2 Modelo baseado em Server Side Includes
Os Modelos baseados em Server Side Includes surgiram por motivos de simplicidade. Um Sistema de Informação para a Web baseado em SSIs visa estender o HTML com elementos que são interpretados dinamicamente pelo próprio servidor Web.
Ou seja, quando um cliente efectua o pedido de um determinado documento HTML (por exemplo: pedido.html), o servidor lê o ficheiro correspondente (por exemplo, pedido.shtml) e interpreta elementos estendidos, substituindo-os por informação correspondente (por exemplo, a data da última alteração num ficheiro ou uma interrogação SQL). Introduzidas as adições (includes) no documento HTML solicitado, este é enviado para o cliente (ver figura 10).
Cliente HTTP HTML estendido ... <body> Modificado em: 2001/07/26 ... ... <body> Modificado em: <!--#echo var="LAST_UPDATE"--> ... Servidor pedido.html pedido.shtml Figura 10 - Sistema baseado em SSIs
Este mecanismo deu origem ao aparecimento de mecanismos com maiores potencialidades e baseados em linguagens de programação mais completas e populares (ver figura 11), como é o caso da tecnologia Perl, PHP (Hypertext Preprocessor), JSP (Java Server
Pages) ou ASP (Active Server Pages).
Cliente HTTP ASP, PHP, JSP ou outro Servidor Base de Dados
Páginas estáticas não eram suficientes no âmbito de um Portal dada a constante mutação dos conteúdos e requisitos. Com as ASPs foi possível dar interactividade ao cliente através da geração de páginas dinâmicas. Um Sistema baseado em ASPs permite que o servidor forneça ao cliente informação dinâmica que, geralmente, extrai de uma Base de Dados. O servidor aceita e responde a questões ou acções dos clientes com informação específica (resposta gerada no momento de acordo com o pedido recebido).
2.2.5.1.3 Modelo baseado em Application Programming Interfaces
O baixo desempenho dos modelos baseados na interface CGI e a necessidade de servidores mais extensíveis e configuráveis levaram a que alguns fabricantes introduzissem nos seus servidores uma interface ao nível da programação (API).
As aplicações baseadas neste modelo continuam a funcionar com base no pedido/resposta do modelo CGI, bem como com base no mecanismo de descodificação de informação passada no URL e nos campos dos elementos FORM, mas foram introduzidas melhorias significativas nas fases até que a resposta em formato HTML chegasse ao cliente (ver figura 12), a saber:
1. O servidor detecta, através da informação passada no URL, que deverá invocar uma função de uma das suas aplicações externas.
2. Invocada a função, o servidor passa-lhe os parâmetros necessários e adiciona-lhe um conjunto de funções (callbacks), com as quais a aplicação poderá solicitar informação adicional ao servidor.
3. A função valida os parâmetros recebidos e efectua o processamento. Caso necessite de informação extra pode usar as callbacks para invocar o servidor.
4. Findo o processamento, o resultado em formato HTML, depois de lido pelo servidor, é redireccionado para o cliente. Note-se que a escrita da informação (resultado) é, também, efectuada usando uma callback fornecida pelo servidor.
Ligação Dinâmica Processo Cliente HTTP Servidor Processo API Aplicações externas Função Protocolo
residentes no mesmo espaço de memória Figura 12 - Sistema baseado em APIs
A vantagem deste modelo reside no facto das aplicações ficarem residentes em memória, evitando-se a fase de criação de cada processo. Por exemplo, em ambiente Windows, existe o formato DLL (Dynamic Link Library) para providenciar a API.
As API mais populares são a ISAPI da Microsoft, a NSAPI da Netscape e as servlets da Sun (é conveniente verificar se o servidor as suporta).