• Nenhum resultado encontrado

Arquitetura de sistemas Web

No documento TCC - IIS Windows Server - Univali (páginas 50-57)

2.3 SISTEMAS WEB

2.3.2 Arquitetura de sistemas Web

Uma aplicação de apoio, com o intuito de auxiliar no atendimento dos clientes, deve possibilitar a transferência de conhecimento e a transformação do conhecimento tácito em explícito, através da confecção de manual (i.e., neste caso, as ficha de conhecimento).

2.3 SISTEMAS WEB

Figura 16. Arquitetura de hardware de um sistema Web.

Para efetuar essa transação entre o cliente e o servidor, existe uma gama de soluções, que se tornaram padrão de fato na Internet. Nas seções seguintes será mostrado cada um dessas soluções e a sua importância para este trabalho.

Protocolo

O HTTP (HyperText Transfer Protocol) é um protocolo da camada de aplicação do modelo OSI (Open Systems Interconnection) que define como dois programas devem interagir para troca de mensagens pela WWW (NETWORK WORKING GROUP, 1999).

O lado cliente da aplicação envia requisições HTTP, a um servidor que deve necessariamente estar aguardando uma solicitação. Esta requisição deverá conter: método de requisição, Universal Resources Identifier (URI), a versão do protocolo, seguido por uma mensagem do tipo Multiporpouse Internet Mail Extension (MIME) com modificadores da requisição, informação do cliente, e possivelmente um corpo de conteúdo (NETWORK WORKING GROUP, 1999).

Figura 17. Transação HTTP.

Fonte: WORLD WIDE WEB CONSORTIUM (2006).

O lado do servidor que estava aguardando por uma conexão, utiliza esta mesma conexão, com um status line, incluindo a versão do protocolo da mensagem e um código de erro ou sucesso, seguido por uma mensagem do tipo MIME contendo informações do servidor, meta informação da entidade, e possivelmente o corpo da entidade (ibidem).

Servidor

O lado servidor é responsável pela aceitação das requisições, processamento das solicitações e entrega das informações através de um serviço HTTP (um serviço que implementa o protocolo HTTP).

Dentre os programas conhecidos como servidores, podemos citar os principais: Apache HTTPD, Tomcat, Microsoft Internet Information Services (IIS), Xitami, Oracle Internet Application Server (IAS).

Os programas citados acima por si só não são responsáveis por todas as interações necessárias para a execução de um sistema Web no lado servidor, pois além de interagir com o sistema operacional, lendo e escrevendo arquivos, precisam possibilitar a integração com uma tecnologia de ativação que dará suporte à dinamicidade necessária.

Apache HTTPD

Para execução deste projeto, foi escolhido o Apache, o mais conhecido dos servidores da Internet, responsável pela hospedagem de mais de 50% dos sites existentes na WWW. É uma aplicação de domínio público, ou seja, um software livre, que foi desenvolvido a partir de 1995 e perdura até hoje com auxílio de desenvolvedores do mundo todo (Apache Software Foundation, 2006).

Tecnologia de ativação

A tecnologia de ativação, conhecida por esse nome por ser um item ativado apenas quando solicitado pelo serviço HTTP, é responsável pela grande parte da programação dos sistemas Web. É nesse ambiente onde ficam as regras de negócio e por onde é feito o acesso ao banco de dados.

Atualmente existem inúmeras tecnologias de ativação para sistemas Web, dentre as quais se pode citar: PHP HiperText Processor (PHP), acrônimo recursivo, Java Server Pages (JSP), Active Server Pages (ASP) e ColdFusion (CFML).

A tecnologia de ativação é interpretada ou executada (quando compilada) no lado servidor, impossibilitando o usuário de ter acesso ao código fonte que rege os negócios da aplicação. Apenas o código utilizado para a construção da camada de visão será percebido pelo usuário (Seção 0).

PHP

O PHP é uma tecnologia de ativação de código fonte aberto, amplamente utilizada no mundo inteiro, que mistura uma linguagem de programação com o HTML (BAKKEN et. al., 2004), isto é, uma linguagem em que se pode misturar camadas de visão com a programação do negócio, uma prática não muito elegante, porém muito adotada, o que faz o PHP ser uma das tecnologias de ativação mais popular do mundo.

Figura 18. Exemplo de um script PHP.

Fonte: Bakken (2006).

O PHP tem suporte nativo de acesso a inúmeros bancos de dados, assim como suporte a tecnologias que se tornaram tendência em sistemas Web (e.g., XML, DOM, SOAP).

Banco de dados

Banco de dados são estruturas organizadas a fim de armazenar informações, desde uma simples lista de itens de supermercado, até milhões de registros de um banco internacional com informações georreferenciadas das transações dos seus clientes.

Como as massas de dados são especialidades dos computadores, os bancos de dados desempenham tarefa fundamental desde a entrada da era informatizada (MYSQL AB, 2006).

Pode-se citar alguns bancos de dados existentes no mercado: Oracle, Microsoft SQLServer, MySQL, FireBird, PostgreSQL, cada um deles com seus prós e contras e tipos de licenças.

PostgreSQL

Para o desenvolvimento deste trabalho, optou-se pelo PostgreSQL, por ser um banco de dados open source capaz de trabalhar com grandes volumes de dados e por ser suportado nativamente pelo PHP.

PostgreSQL é um banco de dados relacional projetado para suportar grandes cargas de dados e desenvolvido na Universidade da Califórnia pelo departamento de Ciência da Computação.

Dentre as suas funcionalidades e compatibilidades, pode-se citar (POSTGRESQL GLOBAL DEVELOPMENT GROUP, 2006):

• Consultas complexas (e.g. sub-selects, joins, alter join) – compatível com SQL-92;

• Integridade relacional (e.g. foreign keys) e transacional (e.g. commit e rollbacks);

Triggers / Procedures / Functions (i.e., programação dentro do banco de dados);

Views;

• Controle de concorrência;

• Criação de tipos de dados (e.g. dados espaciais); e

• Outros itens indispensáveis de um bom banco de dados.

Cliente

Um cliente web, também conhecido como navegador, é um software que interpreta e renderiza documentos fornecidos pelo servidor em informações visuais. Esses interpretadores implementam padrões como HTML, Document Object Model (DOM) e CSS, além de acionar os clientes dinâmicos quando um script embutido deve ser processado.

Dentre esses softwares, dois deles dominam o mercado: Microsoft Internet Explorer (96%) e o FireFox (2%). Ambos implementam os padrões definidos pela World Wide Web Consortium (W3C). Na minoria estão outros softwares como: Opera, Konqueror, Mozilla e assim por diante.

Os navegadores são responsáveis pelo envio de informações para o servidor através de formulários, tornando possível a adição de informações nos sistemas web.

Cliente dinâmico

Um cliente dinâmico é a capacidade que os softwares-cliente têm de executar códigos móveis, isto é, um algoritmo de uma determinada linguagem é embutido em um arquivo no servidor, recebido e executado pelo cliente.

A tecnologia de scripts mais comum nos navegadores nos dias de hoje é o Javascript, inicialmente chamada de LiveScript, tinha como principal funcionalidade a validação de formulários ainda na máquina cliente, visto que o tempo despendido para envio de um formulário para sua

validação no lado servidor era muito grande (NETSCAPE COMMUNICATIONS CORPORATION, 1999). Por questões de marketing com a chegada do Java passou-se a chamar-se Javascript, porém não possui nenhuma ligação com o Java.

O Document Object Model (DOM), a fonte principal de objetos para Javascript, coloca uma interface de objeto tanto no documento HTML, quanto no navegador. O Javascript pode interagir com o navegador para carregar uma nova página, examinar o histórico do navegador – páginas Web carregadas anteriormente – ou interagir com páginas de quadros vizinhos (APPARAO, 1998).

O Asynchronous Javascript and XML (AJAX) tem se tornado uma tendência nas aplicações Web, por se tratar de uma forma assíncrona do navegador interagir com o lado do servidor, ou seja, não é necessário recarregar toda a aplicação, para verificar se há uma nova mudança no conteúdo.

O AJAX é a união de algumas tecnologias: intercâmbio (XML e XSLT), apresentação (HTML e CSS), interação dinâmica (DOM) e recuperação assíncrona de dados (XMLHttpRequest) (NETSCAPE COMMUNICATIONS CORPORATION, 1999).

Apresentação

Como citado anteriormente os navegadores implementam padrões para visualização das aplicações Web. Dentre eles, os mais importantes da camada de apresentação são respectivamente HTML e CSS.

HTML e CSS

Desenvolvido originalmente por Tim Berners-Lee durante seu trabalho no Centre Europeen de Recherche Nucleaire (CERN) e popularizado pelo navegador Mosaic desenvolvido na National Center for Supercomputing Applications (NCSA), o HTML explodiu com o crescimento da Web na década de 90. Até o presente, já foi estendido inúmeras vezes, tendo como versão-raiz oficial a especificação do W3C versão 4.01 (RAGGETT; HORS; JACOBS, 1999).

A busca incessante por um padrão compreendido por todos os navegadores é indiscutível.

Caso contrário, existe um risco inerente de que a Web se torne um mundo proprietário de formatos incompatíveis, diminuindo o potencial comercial (ibidem).

O HTML possibilita algumas das principais funções das aplicações Web, pois é com ele que um navegador é capaz de:

• Renderizar formulários para submissão de dados;

• Renderizar listagem de apresentação de dados;

• Renderizar tabelas;

• Renderizar apresentação de gráficos (tabelas e imagens); e

• Ligar páginas umas com as outras através de um único clique.

A versão 4.01 do HTML foi projetada com a ajuda de especialistas na área da internacionalização, para que os documentos pudessem ser escritos em qualquer idioma e facilmente transportados para qualquer lugar do mundo. Isso foi realizado com a incorporação da RFC2070, que trata da internacionalização do HTML. Outro passo importante foi a adoção da ISO/IEC 10646, padrão referente à representação de caracteres internacionais, direção de texto, pontuação e outros (RAGGETT; HORS; JACOBS, 1999).

O HTML possibilita ainda a inclusão digital, proporcionando apresentação por forma de áudio, sem comprometer a apresentação visual.

O design de uma página pode ser simplificado quando se utiliza os Styles Sheets, livrando o HTML da responsabilidade visual da aplicação Web. Os Styles Sheets podem ser adicionados junto ao corpo do HTML ou em folhas de estilos separadas, dividindo assim mais uma vez o conteúdo da apresentação, o CSS facilita a manutenção e autoria de sistemas Web (LIE; BOS, 1999).

No documento TCC - IIS Windows Server - Univali (páginas 50-57)

Documentos relacionados