• No results found

Spesialsykepleiere med kort yrkeserfaring

Os servidores web atuais tratam as requisi¸c˜oes que recebem segundo uma disciplina FCFS 1, onde ´e mantida uma ´unica fila de espera na qual cada requisi¸c˜ao aguarda o

momento de ser atendida, de acordo com sua ordem de chegada. Embora diferentes esquemas de controle de concorrˆencia possam ser implementados no servidor, visando agilizar o atendimento `as requisi¸c˜oes, estes ocorrem em geral de maneira uniforme, sem

1

Cap´ıtulo 4. Servidor Web com Diferencia¸c˜ao de Servi¸cos SWDS 4.2. O Modelo do sevidor SWDS

considerar as particularidades e a urgˆencia de cada tipo de requisi¸c˜ao. (TEIXEIRA, 2004a) Um modelo de servidor web com diferencia¸c˜ao de servi¸cos, representa uma arquitetura de servidor web cujo intuito ´e o fornecimento de servi¸cos diferenciados a seus clientes, segundo requisitos de QoS previamente acertados. A arquitetura do servidor SWDS mostrada na figura 4.1 ´e composta dos m´odulos descritos a seguir:

Figura 4.1: Servidor web com diferencia¸c˜ao de servi¸cos (TEIXEIRA, 2004a).

Classificador

Esse ´e o elemento respons´avel por receber as requisi¸c˜oes que chegam ao sistema e subdivid´ı-las em classes de servi¸co, segundo crit´erios pr´e-estabelecidos. Terminada esta fase, a nova requisi¸c˜ao entra no sistema em uma determinada categoria e recebe um tratamento de acordo com a classe `a qual pertence.

Controle de Admiss˜ao

O objetivo do controle de admiss˜ao ´e receber as requisi¸c˜oes j´a classificadas e gerenciar a sua aceita¸c˜ao pelo servidor, levando em considera¸c˜ao as pol´ıticas de atendimento vigentes e as informa¸c˜oes da carga de trabalho do sistema. Se o servidor estiver sobrecarregado, uma requisi¸c˜ao poder´a ser rejeitada ou ter suas exigˆencias de qualidade de servi¸co relaxadas, de modo que possa ser aceita em uma classe de prioridade inferior.

Cluster de Servidores Web

Uma vez admitida no sistema, a requisi¸c˜ao ´e atribu´ıda a um dos n´os do cluster de servidores web, sendo atendida de acordo com o algoritmo de escalonamento ou diferen- cia¸c˜ao de servi¸cos implementado. Depois da fase de processamento, os resultados s˜ao retornados ao cliente que deu origem `a solicita¸c˜ao.

Cap´ıtulo 4. Servidor Web com Diferencia¸c˜ao de Servi¸cos SWDS 4.2. O Modelo do sevidor SWDS

Segundo o modelo definido e implementado em (TEIXEIRA, 2004a) cada n´o do cluster ´e considerado como um servidor web convencional, sendo composto de uma CPU, disco e interface de rede. Cada n´o ´e constitu´ıdo de v´arias filas de prioridade, com o objetivo de acomodar as diferentes classes de servi¸co.

O cluster ´e formado por servidores web, mas nada impede que se fa¸ca uma abstra¸c˜ao dos mesmos para processos ou at´e mesmo CPUs em um computador paralelo, pois o modelo n˜ao exige que a arquitetura seja necessariamente formada por m´aquinas dispostas em um sistema distribu´ıdo. Igualmente, n˜ao ´e suposta nenhuma plataforma de hardware ou sistema operacional em particular.

O modelo do servidor SWDS foi constru´ıdo com o intuito de integrar QoS `as arquite- turas de servidores tradicionalmente encontradas. Comparado aos trabalhos da literatura da ´area, o modelo destaca-se por sua flexibilidade, a qual ´e conferida pelos variados meca- nismos de controle de admiss˜ao e diferencia¸c˜ao de servi¸cos. Tamb´em consegue adaptar-se a diferentes perfis de carga de trabalho e distribui¸c˜oes dos clientes pelas classes. O modelo tanto pode ser usado como ponto de partida para implanta¸c˜ao de infra-estruturas de servi- dores web distribu´ıdos, voltadas ao fornecimento de servi¸cos diferenciados, quanto para o desenvolvimento de um programa de servidor web com caracter´ısticas de diferencia¸c˜ao de servi¸cos, caso em que os n´os do cluster seriam abstra´ıdos para processos ou threads, executando em um ou m´ultiplos processadores. (TEIXEIRA, 2004a).

Carga de trabalho e an´alise do log

Dada a dificuldade de produzir sinteticamente uma carga de trabalho com carac- ter´ısticas de cauda pesada e com tr´afego em rajadas, uma vez que estudos mostram que a web apresenta uma grande variabilidade nas caracter´ıticas de sua carga (ARLITT; WILLIAMSON, 1996), optou-se por empregar no desenvolvimento do modelo uma simula¸c˜ao

dirigida por traces. Para a valida¸c˜ao do modelo SWDS foram utilizadas logs de acessos a servidores reais para a gera¸c˜ao de carga, coletados durante a Copa do Mundo de 98.

Segundo (TAI, 1999), algumas das mais importantes caracter´ısticas observadas na carga de trabalho da Copa do Mundo de 98 s˜ao mostradas a seguir:

• Clientes HTTP/1.1 est˜ao se tornando mais comuns aos acessos aos servidores web; • A maioria das requisi¸c˜oes usa o m´etodo GET para a obten¸c˜ao dos dados, seguido

por um percentual m´ınimo de m´etodos HEAD e POST ;

• 88% de todas as requisi¸c˜oes foram para arquivos de imagens, enquanto que 10% foram para arquivos HTML. Isso indica que o maior interesse dos usu´arios era para o acesso a p´aginas est´aticas;

• Quase 19% de todas as respostas foram Not Modified, indicando que a consistˆencia de cache teve um impacto maior na carga de trabalho da Copa da Mundo do que em outras cargas presentes em servidores web;

Cap´ıtulo 4. Servidor Web com Diferencia¸c˜ao de Servi¸cos SWDS 4.2. O Modelo do sevidor SWDS

• O tr´afego na rede se apresenta em rajadas, em diferentes escalas de tempo;

A caracteriza¸c˜ao da carga de trabalho dos servidores web ´e apenas um dos passos necess´arios para compreender as mudan¸cas ocorridas no tr´afego da Internet. Pesquisas sobre cargas de trabalho em clientes web (BARFORD et al., 1999), bem como em servi- dores proxy (ARLITT; TAI; FRIEDRICH, 1999), al´em da caracteriza¸c˜ao do tr´afego da rede (THOMPSON; WILDER, 1997), s˜ao tamb´em importantes para o melhor entendimento da Internet na atualidade.

4.2.1

Classifica¸c˜ao das Requisi¸c˜oes

Para que seja poss´ıvel o fornecimento de servi¸cos diferenciados aos clientes ´e necess´ario trabalhar com o conceito de classes de servi¸co. Cada classe agrupa um conjunto de clientes com necessidades de atendimento bem definidas. Estas podem ser expressas, de v´arias formas, como por exemplo em termos de utiliza¸c˜ao do sistema, throughput a ser atingido, tempo de resposta m´edio, percentual de requisi¸c˜oes completadas, etc.

Como a popula¸c˜ao de clientes de um servidor web ´e bastante variada, com diferentes necessidades e expectativas, cabe ao m´odulo classificador a atribui¸c˜ao de identificar as caracter´ısticas das requisi¸c˜oes HTTP que chegam ao servidor SWDS e subdivid´ı-las em classes de servi¸co. Para cada classe ´e associado um determinado n´ıvel de servi¸co oferecido aos clientes, que podem deixar que o pr´oprio servidor saiba em que classe alocar as requisi¸c˜oes recebidas, ou que o cliente contrate um servi¸co espec´ıfico, de forma expl´ıcita. Os crit´erios abaixo podem ser utilizados para realizar a divis˜ao das requisi¸c˜oes em classes de servi¸co:

• Origem da requisi¸c˜ao: as solicita¸c˜oes podem ser classificadas como locais, isto ´e, pertencentes ao mesmo dom´ınio do servidor web e tamb´em como remotas, ou seja, provenientes de outros dom´ınios;

• Conte´udo solicitado: o tipo de arquivo requisitado tamb´em pode ser um crit´erio para a classifica¸c˜ao das requisi¸c˜oes, por exemplo: texto, c´odigo HTML, imagens, applets, scripts, ´audio/v´ıdeo, dentre outros;

• Pol´ıticas de atendimento diferenciadas: os clientes podem ser divididos em classes de servi¸co segundo pol´ıticas externas, por exemplo, usu´arios pagantes/n˜ao pagantes. Outra possibilidade ´e o caso de m´ultiplos sites armazenados no mesmo servidor (web hosting), onde os clientes s˜ao atendidos de acordo com o contrato de hospedagem firmado pelo propriet´ario do site.

• Mecanismo de gera¸c˜ao de conte´udo: as requisi¸c˜oes HTTP podem ser divididas em est´aticas ou dinˆamicas, segundo a forma de gera¸c˜ao do conte´udo retornado ao cliente. As requisi¸c˜oes dinˆamicas podem ainda envolver sess˜oes convencionais ou seguras;

Cap´ıtulo 4. Servidor Web com Diferencia¸c˜ao de Servi¸cos SWDS 4.2. O Modelo do sevidor SWDS

• Urgˆencia de atendimento: o tr´afego que chega a um servidor web pode ser classifi- cado como real ou especulativo. Tr´afego real ´e aquele que surge como resultado de requisi¸c˜oes emitidas, de fato, por um cliente. Tr´afego especulativo s˜ao requisi¸c˜oes emitidas geralmente de forma autom´atica, por exemplo, a partir de um servidor proxy ou originadas por pr´e-buscas.

No est´agio atual, as requisi¸c˜oes que chegam ao servidor SWDS s˜ao classificadas atrav´es de uma distribui¸c˜ao de probabilidade acumulada e n˜ao pelos crit´erios acima mencionados. Isso ´e feito sem perda de generalidade do modelo, uma vez que, para mecanismos de diferencia¸c˜ao de servi¸cos definidos, ´e indiferente o crit´erio utilizado para a classifica¸c˜ao das requisi¸c˜oes. (TEIXEIRA, 2004a).

4.2.2

Mecanismos de Diferencia¸c˜ao de Servi¸cos

A diferencia¸c˜ao de servi¸cos proposta no modelo de servidor ´e realizada atrav´es de algoritmos espec´ıficos que ser˜ao explicados a seguir. Segundo (TEIXEIRA, 2004a), os algoritmos implementados possuem duas variantes: podem ser aplicados ainda na fase de despacho das requisi¸c˜oes HTTP, determinando a forma de distribui¸c˜ao das mesmas entre os n´os do cluster, ou agir diretamente sobre a disciplina de fila dos n´os, a fim de alterar a ordem do processamento das requisi¸c˜oes. No primeiro caso, o m´odulo de controle de admiss˜ao assume tamb´em o papel de escalonador e atribui as requisi¸c˜oes a grupos de processos servidores segundo a classe a que pertencem. Realiza-se, portanto, uma forma de enfileiramento baseado em classes, abordagem na qual ´e reservada parte da capacidade de processamento do servidor para cada classe de requisi¸c˜oes.

Na primeira fase de experimento foram implementados dois algoritmos de balancea- mento de carga conhecidos, Round Robin e Shortest Queue First, na aloca¸c˜ao das tarefas ou requisi¸c˜oes aos n´os do cluster de modo a se familiarizar com o modelo.

Na segunda fase, por´em, verificou-se a adequa¸c˜ao da arquitetura proposta para a di- ferencia¸c˜ao de servi¸cos. Para tanto foi apresentado o algoritmo RSV que permite alocar um ou mais servidores do cluster somente para as tarefas pertencentes a uma certa classe de servi¸co. O objetivo ´e permitir a reserva efetiva de um percentual fixo da capaci- dade de processamento total do servidor SWDS para uma classe privilegiada de tarefas. Um esquema semelhante a esse ´e encontrado em roteadores, sob o nome de Class-Based Queueing e se caracteriza pela aloca¸c˜ao est´atica das filas de sa´ıda `as diferentes classes de tr´afego. Maiores detalhes est˜ao descritos em (TEIXEIRA; SANTANA; SANTANA, 2003b).

Al´em das formas de diferencia¸c˜ao de servi¸cos anteriormente mencionadas, o trabalho tamb´em confere aten¸c˜ao especial aos mecanismos de escalonamento baseado em priorida- des. Outra possibilidade de prover servi¸cos diferenciados em servidores web, ´e introduzir o conceito de negocia¸c˜ao, de modo que uma requisi¸c˜ao possa ser aceita em uma classe de