• Nenhum resultado encontrado

CAPÍTULO 2 CONCEITOS BÁSICOS

2.4. Qualidade de Serviço

Qualidade de Serviço (Quality of Service-QoS) é um termo geral usado para denotar o nível de previsibilidade ou de gerenciamento dos serviços fornecidos por um ou mais provedores de serviços [GRIDCC, 2005]. A ISO [ITU/ISO, 1998] define qualidade de serviço como um conjunto de qualidades relacionadas ao comportamento coletivo de um ou mais componentes. Por sua vez, o W3C (World Wide Web Consortium) [W3C 2003] descreve os requisitos de QoS para serviços web, salientando o crescimento de serviços web como solução de negócio para integração de aplicações das empresas, e que devido à sua natureza dinâmica e imprevisível é difícil fornecerem a QoS desejada para os usuários. Além disso, chama a atenção de que as diferentes aplicações com diferentes requisitos de QoS irão competir pela rede e recursos do sistema como largura de banda e tempo de processamento, etc. Contudo, acrescentar QoS para um serviço web trará vantagem competitiva para o provedor do serviço. O W3C define os seguintes requisitos de QoS para serviços web:

(i) Desempenho: Representa quão rápido a requisição de um serviço pode ser completada. Pode ser medida em termos de throughput, tempo de resposta, latência, tempo de execução, tempo da transação e assim por diante [Ran, 2003], [Sumra et al., 2003]. Throughput é o número de requisições de serviços em um dado intervalo de tempo, ou seja, á a quantidade de invocações atendidas por unidade de tempo. Portanto, é a taxa de requisições/resposta. Tempo de resposta é o tempo para completar uma requisição de um serviço. Latência é o atraso entre enviar uma requisição e receber a resposta. Tempo de execução é o tempo necessário para um serviço processar sua sequencia de atividades. Tempo de transação é o tempo para um serviço web completar uma transação por inteiro, dependendo, assim, da definição de transação em um serviço web. Em geral, serviços de alta qualidade deveriam fornecer alto throughput, tempo de resposta mais rápido, baixa latência, baixo tempo de execução e tempo de transação mais rápido, sendo que muitas vezes esses objetivos são conflitantes.

(ii) Confiabilidade: Representa a habilidade de um serviço web de realizar suas funções sob determinadas condições em um intervalo de tempo especificado. A confiabilidade é a medida total de um serviço web para manter sua qualidade de serviço, e é relacionada ao número de falhas por dia, semana, mês ou ano. É relacionada à entrega assegurada e ordenada das mensagens transmitidas e recebidas por requisitantes e provedores de serviço [Sumra et al., 2003].

(iii) Escalabilidade: Representa a aptidão de crescimento da capacidade computacional do sistema de computadores dos provedores de serviço, e a habilidade de processar mais requisições de usuários, operações ou transações em um dado intervalo de tempo [Ran, 2003]. Está também relacionada ao desempenho. Serviços web, por exemplo, deveriam ser escaláveis em termos de operações ou transações suportadas.

(iv) Capacidade: É o limite do número de requisições simultâneas que pode ser fornecida com garantia de desempenho [Ran, 2003]. Serviços devem suportar o número necessário de conexões simultâneas.

(v) Robustez: Representa o grau para o qual um serviço pode funcionar corretamente mesmo na presença de entradas inválidas, incompletas ou conflitantes [Ran, 2003]. Nesse caso, serviços devem ainda trabalhar mesmo se forem fornecidos parâmetros incompletos para invocação da requisição do serviço.

(vi) Tratamento de exceções: Serviços devem ser fornecidos com a funcionalidade de tratar exceções. Desde que não é possível para o designer do software especificar todos os efeitos e alternativas (principalmente com vários casos especiais e possibilidades imprevistas), exceções devem ser tratadas apropriadamente. (vii) Precisão: Precisão é definida como a taxa de erro gerada por um serviço. O

número de erros que o serviço gera em um determinado intervalo de tempo deve ser minimizado.

(viii) Integridade: Integridade para serviços deve ser fornecida para que um sistema ou componente possa prevenir acesso não autorizado ou modificação de programas computacionais ou dados. Podem existir dois tipos de integridade: integridade dos dados e integridade transacional. Integridade dos dados define se o dado transferido é modificado no trânsito. Integridade transacional refere-se a um procedimento ou conjunto de procedimentos para os quais é garantida a preservação da integridade em uma transação [Sumra et al., 2003].

(ix) Acessibilidade: Acessibilidade representa se o serviço Web é capaz de atender às requisições dos clientes. Alta acessibilidade pode ser alcançada, por exemplo, construindo sistemas altamente escaláveis [Sumra et al., 2003].

(x) Disponibilidade: O serviço deve estar pronto (isto é, disponível) para uso imediato. Esta disponibilidade é a probabilidade do sistema estar em operação e é relacionado à confiabilidade [Gunther, 1998]. Em outras palavras, é a percentagem de tempo que a aplicação funciona sem falhas. Tempo de reparo (TTR – Time-to-Repair) é associado com disponibilidade e representa o tempo para reparar o serviço [Sumra et al., 2003]. O serviço deve estar disponível imediatamente quando ele é invocado.

(xi) Interoperabilidade: Serviços devem ser interoperáveis entre diferentes ambientes de desenvolvimento usados para implementá-los, de maneira que desenvolvedores usuários destes serviços, não tenham que pensar sobre qual linguagem de programação ou sistema operacional os serviços estão hospedados [Sumra et al., 2003].

(xii) Segurança: Serviços devem ser providos com o nível de segurança requerida. Com o crescimento do uso de serviços Web os quais são entregues pela Internet pública, há um crescimento da preocupação sobre segurança. O provedor do serviço Web deve aplicar diferentes propostas e níveis de fornecer política de segurança, dependendo do serviço do requisitante. Segurança para serviço Web significa fornecer autenticação, autorização, confidencialidade, rastreabilidade/auditibilidade, criptografia dos dados e não-repudiação. Cada um destes aspectos são descritos abaixo [Sumra et al., 2003], [Ran, 2003]:

a. Autenticação: Usuários ou outros serviços que podem acessar serviços e dados devem ser autenticados.

b. Autorização: Usuários ou outros serviços devem ser autorizados de maneira que eles possam acessar apenas os serviços protegidos.

c. Confidencialidade: Dados devem ser tratados apropriadamente de maneira que apenas usuários autorizados (ou outros serviços) possam acessar ou modificar os dados.

d. Rastreabilidade/auditibilidade: Deve ser possível traçar a história de um serviço quando uma requisição foi atendida.

f. Não-repudiação: Um usuário não pode negar ter requisitado um serviço ou dado depois do fato. O provedor de serviço precisa assegurar esta exigência de segurança.

Características estatísticas de QoS são derivadas de uma característica de QoS específica. A ISO define alguns requisitos estatísticos de QoS mais comumente usados: máximo, mínimo, range (intervalo), variância, desvio padrão, percentual. Por exemplo, para

delay (atraso), é possível fixar o tempo de resposta menor que 15 ms, média de 50 ms, e em

90% dos casos menor que 75 ms.