1. Caracterização de cargas de trabalho considerando
diferentes categorias de Web Services
Aluna: Adriana Molina Centurion
Orientadora: Profa. Dra. Regina Helena Carlucci Santana
Projeto de Pesquisa - Doutorado
Instituto de Ciências Matemáticas e de Computação
Sistemas Distribuídos e Programação Concorrente
2. 1. Introdução – Motivação e Objetivo
2. Web Services
3. Avaliação de Desempenho em Web Services
3.1. Carga de Trabalho
3.2. Benchmarks
4. Categorização de Web Services
5. Projeto de Pesquisa
3. Web Services são tópicos bastante difundidos em TI tanto na área
acadêmica, quanto em ambientes corporativos.
Muitas empresas têm disponibilizado suas principais competências
na Internet como uma coleção de serviços.
Dentro do contexto empresarial, a avaliação de desempenho tem
um papel importante no conhecimento de quão bem um
determinado serviço atende as suas necessidades.
4. Vários trabalhos têm tratado da avaliação e modelagem de
desempenho de Web Services.
No entanto, uma lacuna que é observada refere-se ao estudo e
caracterização de cargas de trabalho imposta aos Web Services,
considerando as funcionalidades de cada Web Service.
5. O objetivo principal deste projeto de doutorado é desenvolver
cargas de trabalhos ou benchmarks que possibilitem a avaliação de
diferentes categorias de Web Services de forma realista e confiável.
A caracterização da carga de trabalho será representativa de uma
categoria (ou grupo de categorias) de Web Services.
Foco: Geração de carga real.
6. Uma aplicação identificada por uma URI (Uniform Resource Identifier),
cujas interfaces e ligações são definidas, descritas e descobertas
utilizando-se uma linguagem padrão como XML - Extensible Markup
Language (W3C, 2003).
Uso de padrões baseados em XML – INTEROPERABILIDADE!!!
Três padrões principais:
- SOAP (Simple Object Access Protocol);
- WSDL (Web Services Description Language);
- UDDI (Universal, Discovery, Description and Integration).
8. - Integrar sistemas heterogêneos dentro de empresas;
- Integrar sistemas remotos através da Internet;
- Integrar diferentes plataformas de hardware, software e S.O.;
- Fornecer serviços a terceiros.
Várias empresas e instituições vêm adotando esta tecnologia
como infra-estrutura para expor suas aplicações, aumentando
assim, a demanda pelo seu desempenho....
9. Desempenho em Web Services - muitos aspectos influenciam o
desempenho de um sistema....
Pontos que merecem atenção:
Foco está mais relacionado em como o serviço pode ser
acessado e não sobre questões de qualidade;
Introduz mudanças na forma como os provedores prestam
serviços – essencial ter capacidade para processar intensas
cargas de trabalho.
10. A carga de trabalho de um sistema refere-se às solicitações feitas
por entidades que fazem pedidos de serviços a este sistema -
Exemplos: transações processadas por um servidor de B.D,
requisições HTTP a um servidor Web, etc. (Menascé and Almeida,
2002).
Caracterização da carga de trabalho -> descrever, de forma
precisa, a carga total que um sistema é submetido. (Ex.: tempo de
chegada, tempo de execução, tamanho dos objetos requisitados,
etc.)
11. Carga de trabalho para Servidores Web é amplamente discutida na
literatura, porém estudos de carga de trabalho para Web Services são
raros.
Em (Tavares, 2009) é apresentada uma proposta de caracterização de
carga de trabalho, dentro do contexto de Web Services.
Componente básico – msgs trocadas entre clientes e provedores;
Baseada na análise de documentos WSDL;
Algumas Invariantes encontradas: número de operações, tipos de
binding (SOAP 1.1 e 1.2, HTTP), tamanho dos documentos WSDL, tipos
de codificação (RPC/Encoded, RPC/Literal e Dcoument/Literal) e tipos
de dados (parâmetros de entrada e saída)
12. Um benchmark é um programa utilizado para avaliar o
desempenho de um sistema, através da geração de cargas de
trabalhos (Collin, 2002).
•Alguns benchmarks que possuem o intuito de analisar o
desempenho de Web Services estão disponíveis, alguns deles:
-@Bench;
- WSTest;
-TPC-App;
13. @Bench :
Proposto pela Doculabs em 2003.
Expõe três serviços: GetOrderDetails, GetCustomer, NewCustomer;
Considera o intervalo entre as requisições – entre 2 a 8 segundos
(aleatório);
Métricas: Throughput (Tps), tempo de resposta e total de utilização
CPU.
Não considera cenários B2B, não possibilita testes com outras
composições de mensagens e em relação à caracterização de carga de
trabalho, falta uma metodologia que implemente uma submissão de
carga de trabalho mais específica.
14. WSTest
Proposto pela Sun Microsystems em 2004;
Para medir o desempenho de várias tipos de chamadas:
echoVoid – Envia/recebe uma mensagem vazia (verifica a infra-estrutura);
echoStruct – Envia/recebe um vetor de 20 elementos (cada contendo um valor:
inteiro, float e uma string;
echoList – Envia/recebe uma lista encadeada de 20 elementos;
echoSynthetic – Envia/recebe múltiplos parâmetros de diferentes tipos como
String, Struct e vetor de bytes de 1K.
15. WSTest
Simula um servidor multi-thread que faz várias chamadas aos Web Services
em paralelo.
Métricas: throughput (média do número de Web Services executados por
segundo) e o tempo de resposta.
Com respeito à caracterização de carga de trabalho, também não há um
estudo mais detalhado.
16. TPC-App
Proposto pela Transaction Processing Performance Council (TPC).
Emula as atividades de um servidor de aplicação transacional B2B com
o objetivo de obter uma indicação da capacidade de desempenho
desses sistemas.
Arquitetura apresenta três elementos: SUT (System Under Test), RBE
(Remote Emulator Business) e emuladores externos.
17. TPC-App
O SUT expõe sete métodos para que o RBE emule um processo de
negócio: CreateOrder, NewCustomer, ChangePayment, OrderStatus,
NewProducts, Product Detail, ChangeItem e define a probabilidade de
cada um deles ser requisitado.
Principal métrica: throughput do servidor (medida em interações por
segundo).
Carga – oferece apenas testes de estresse ao servidor.
18. A categorização de Web Services é a tarefa de classificar os diferentes
serviços fornecidos pelos provedores dentro de categorias, baseando-se
em suas funcionalidades.
Tecnologias tradicionais para publicação e descoberta de Web Services
(por exemplo, UDDI) permitem que provedores registrem os serviços em
uma categoria, a partir da escolha de um conjunto de categorias pré-
definidas, como por exemplo “Artes”, “Ciências”, “Finanças”, “Negócios”,
“Academia”, etc.
Esta categorização geralmente segue padrões, como: UNSPSC (United
Nations Standard Products and Services Code System) e NAICS (North
American Industry Classification System).
19. Aumento esperado do número de Web Services – torna-se
importante o desenvolvimento de mecanismos que permitam a
categorização automática de Web Services.
Alguns trabalhos encontrados na literatura propõem técnicas para
categorização automática de Web Services através da adoção de
métodos: de mineração de texto e regras de associação (Kaushik,
2009) e agrupamento - clustering (Liang et al, 2009).
20. OBJETIVO PRINCIPAL:
O objetivo principal deste projeto de doutorado é viabilizar a
avaliação de Web Services utilizando-se cargas de trabalho
realistas e que representem diferentes categorias de Web Services.
21. Etapas importantes:
Categorização de Web Services (Revisão bibliográfica,
definição da metodologia e classificação de Web Services
em categorias);
Análise e caracterização de cargas de trabalho para Web
Services (para cada categoria);
Geração automática de serviços, que servirão de cargas para
desenvolvimento de benchmarks;
Proposta de Benchmarks para Web Services.
22. Contribuições esperadas:
Caracterização de cargas de trabalho mais realistas que
auxiliem no desenvolvimento de novas metodologias e
técnicas para avaliação de desempenho de Web Services.
Avaliação de diferentes categorias de Web Services e como
cada um deles pode influenciar no consumo de recursos
computacionais.
23. Contribuições esperadas:
Geração automática de serviços, visando contribuir com
pesquisas voltadas para avaliação de desempenho, cargas de
trabalho e benchmarks para Web Services.
Definição de benchmarks, que permita avaliar diversos tipos de
serviços.
Servir como base no processo de planejamento de capacidade
para instituições e empresas que dispõe de seus sistemas
computacionais como uma coleção de serviços na Web.
24. 1. Integralização dos créditos.
2. Revisão Bibliográfica.
3. Exame de qualificação.
4. Configuração e preparação do ambiente de trabalho.
5. Desenvolvimento do Projeto.
6. Avaliação dos resultados obtidos.
7. Elaboração de artigos científicos.
8. Redação da tese.
F PERÍODO
A
S
2010 2011 2012 2013
E
S Semestre 1 Semestre 2 Semestre 1 Semestre 2 Semestre 1 Semestre 2 Semestre 1 Semestre2
1
2
3
4
5
6
7
8
25. (Collin, 2002) Collin, S. M. H. Dictionary of Information Technology. Third Edition, Peter
Collin Publishing, 2002.
(Kaushik, 2009) Kaushik, S. Classifying Web Services with and without Association Rules.
Dissertação de Mestrado, Thapar University, Patiala, 2009.
(Liang et al, 2009) Liang, Q.; Li, P.; Hung, P. C. K.; Wu, X. Clustering Web Services for
Automatic Categorization. SCC, IEEE International Conference on Services Computing,
pages 380-387, 2009.
(Menascé and Almeida, 2002) Menascé, D. A.; Almeida, A. F. Capcacity Planning for Web
Services: Metrics, Models, and Methods. Editora Campus, 2002.
(Tavares, 2009) Tavares, T. C. Caracterização de Cargas de Trabalho para Avaliação de
Desempenho em Web Services. Dissertação de Mestrado, ICMC – USP, São Carlos, 2009.