O impacto da virtualização no desempenho de aplicações distribuídas baseadas em SOA e a sua... por Luís Cézar Darienzo Alves - Versão HTML

ATENÇÃO: Esta é apenas uma visualização em HTML e alguns elementos como links e números de página podem estar incorretos.
Faça o download do livro em PDF, ePub, Kindle para obter uma versão completa.

Dezembro de 2013

index-2_1.png

À minha querida esposa Wilnice que tem sido uma fonte

inesgotável de paciência e compreens˜ao e que continua

me ensinando a olhar a vida pelo seu lado mais doce,

presenteando-me com o nosso filho Dante, que está no

sétimo mês de gestaç˜ao.

Agradecimentos

Agradeço primeiramente à Deus, por me apresentar oportunidades e me orientar nas

decis˜oes.

À Wilnice, minha esposa, pela paciência, compreens˜ao e incentivo. Sem ela este tra-

balho n˜ao teria sido desenvolvido.

Ao meu filho Dante, que ainda está no sétimo mês de gestaç˜ao, mas que já é uma fonte

inesgotável de inspiraç˜ao e motivaç˜ao.

Ao Prof. Dr. Marcos Santana, pela orientaç˜ao e confiança durante o desenvolvimento

deste trabalho, principalmente durante a fase de finalizaç˜ao.

À Prof. Dra. Regina, pelas contribuiç˜oes sugeridas, sendo de fundamental impor-

tância para as decis˜oes tomadas neste trabalho. Além da amizade e dos ensinamentos

transmitidos.

À prof. Dra. Agma, pelo apoio prestado durante o desenvolvimento deste trabalho e

pelo empenho exemplar nos trâmites administrativos.

Aos amigos Lucas e Matheus pelas orientaç˜oes constantes e apoio durante todo o

desenvolvimento deste trabalho.

À minha fam´ılia por estarem presentes nos momentos importantes da minha vida, pelo

apoio e carinho.

À minha irm˜a Francislaine pela motivaç˜ao, apoio e atenç˜ao dedicada, principalmente,

nos últimos meses.

Ao casal Wilson e Larenice, que sempre me receberam com atenç˜ao e carinho.

Ao Prof.

Dr.

Monaco, por seus ensinamentos e pela amizade desenvolvida,

incentivando-me nos momentos mais dif´ıceis deste trabalho.

Aos demais professores do LaSDPC, que de maneira direta ou indireta, contribu´ıram

para este trabalho.

Aos meus colegas e amigos da USP e do LaSDPC, cujos nomes omitirei para n˜ao

cometer a injustiça de esquecer algum, que através das reuni˜oes do grupo ou até mesmo

em conversas informais, teceram comentários importantes para o desenvolvimento deste

trabalho

Aos funcionários do ICMC–USP, pelo conv´ıvio amigo e descontra´ıdo. Em especial

Caroline e Ana Paula que sempre me atenderam de maneira exemplar.

Aos meus colegas do Tribunal Regional Eleitoral que de forma direta ou indireta con-

tribu´ıram para o desenvolvimento deste trabalho, principalmente aos amigos Franklâneo,

Ailton, Cândido, Fábio, Rodrigo, Maikon, Ludmilla, Rafael, Dilma e Rose.

Ao diretor geral do TRE-MT, Mauro Diogo, pelo apoio na divulgaç˜ao do artigo pu-

blicado no XI WCGA.

Aos meus colegas do Instituto de Computaç˜ao da Universidade Federal de Mato

Grosso, cujos nomes omitirei para n˜ao cometer a injustiça de esquecer algum, que compre-

enderam o momento e flexibilizaram o meu trabalho nessa instituiç˜ao, permitindo, assim

que este trabalho fosse conclu´ıdo.

À CAPES pelo apoio financeiro durante a fase inicial deste trabalho.

“N˜ao exijas dos outros qualidades que

ainda n˜ao possua.”

Chico Xavier

Resumo

ALVES, L. C. D. O impacto da virtualizaç˜ao no desempenho de aplicaç˜oes distribu´ıdas

baseadas em SOA e a sua influência nos modelos de desempenho. Tese (Doutorado) –

ICMC, USP, S˜ao Carlos, 2013.

Esta tese de doutorado analisa o impacto gerado pela virtualizaç˜ao assistida por hardware,

de terceira geraç˜ao, no desempenho de aplicaç˜oes baseadas em SOA do tipo CPU-bound

e memory-intensive, bem como nas operaç˜oes de marshalling e unmarshalling de mensa-

gens SOAP executadas nas bibliotecas dos servidores de aplicaç˜ao. A partir dessa análise,

concluiu-se que os recursos disponibilizados pela plataforma de hardware, principalmente

no gerenciamento de memória, eliminam a sobrecarga gerada pela virtualizaç˜ao baseada

em traduç˜ao binária, elevando os hypervisores bare-metal a um novo patamar, onde apli-

caç˜oes executadas sobre tais virtualizadores obtêm, frequentemente, desempenho superior

àquelas executadas em plataformas n˜ao virtualizadas. Assim, modificaç˜oes nos modelos de

desempenho de aplicaç˜oes baseadas em SOA atualmente em uso s˜ao propostas, de acordo

com a análise desenvolvida, para que reflitam os resultados obtidos de forma realista.

Palavras-chave: SOA, Web Services, virtualizaç˜ao e modelo de desempenho.

v

Abstract

ALVES, L. C. D. . Thesis (PHd) – ICMC, USP, S˜ao Carlos, 2013

This PhD thesis analyzes the impact caused by third generation hardware-assisted virtua-

lization on the performance of CPU-bound and memory-intensive SOA-based applications,

as well as the impact caused on the marshaling and unmarshalling operations of the SOAP

messages executed on the libraries of the application servers. From this analysis is conclu-

ded that the resources provided by the hardware platform, mainly considering the memory

management, eliminate the overload generated by virtualization based on binary trans-

lation, raising the bare-metal hypervisors to a new level, where applications running on

these hypervisors reach better performance when compared to those applications running

on platforms not virtualized. Thus, modifications on the performance models for SOA-

based applications currently in use are proposed accordingly to the analysis developed,

aiming at reflecting the results obtained in a realistic fashion.

Keywords: Web Services, Virtualization and Performance Model

vi

Lista de Figuras

1.1

Variaç˜ao do varejo on-line no Brasil em bilh˜oes [E-COMMERCE, 2013]. . . .

2

1.2

Variaç˜ao na quantidade de consumidores on-line (e-consumidores) no Bra-

sil. Em milh˜oes [E-COMMERCE, 2013] . . . . . . . . . . . . . . . . . . . . .

3

2.1

Mapeamento de processos de negócios em softwares utilizando diferentes

tecnologias [ERL, 2005]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9

2.2

Organizaç˜ao e colaboraç˜oes entre os componentes SOA [ENDREI et al., 2004]. 10

2.3

Uso de objetos e componentes, organizados em camadas, no desenvolvi-

mento de soluç˜oes baseadas em SOA [ENDREI et al., 2004].

. . . . . . . . . 11

2.4

Infraestrutura dos elementos constituintes de uma arquitetura orientada a

serviço [ENDREI et al., 2004]. . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5

Esquema de uma composiç˜ao de serviços, em que serviços de diferentes

entidades s˜ao compostos, juntamente com um serviço utilitário, a fim de

compor um serviço complexo denominado serviço-tarefa [ERL, 2009]. . . . . 15

3.1

Arquitetura dos Web Services [TAVARES, 2009]. . . . . . . . . . . . . . . . 24

3.2

Estrutura de um envelope SOAP [W3C, 2007]. . . . . . . . . . . . . . . . . 31

4.1

N´ıveis de privilégio da plataforma X86 [TROYER, 2007]. . . . . . . . . . . . 43

4.2

Virtualizaç˜ao total através de traduç˜ao binária [TROYER, 2007]. . . . . . . 44

4.3

Abordagem de virtualizaç˜ao através da paravirtualizaç˜ao [TROYER, 2007]. . 45

4.4

Abordagem utilizando virtualizaç˜ao assistida por hardware [TROYER, 2007]. 46

4.5

Diagrama do sistema de gerenciamento de memória [BHATIA, 2009]: a)

sistemas nativos e b) sistemas virtualizados. . . . . . . . . . . . . . . . . . 47

4.6

Abordagem Ballooning para recuperaç˜ao de memória pelo hypervisor [GUO,

2011]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.7

Comunicaç˜ao via rede f´ısica utilizando a tecnologia VMDq [CHINNI; HIRE-

MANE, 2013].

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

vii

5.1

Quadrante mágico de 2011 desenvolvido pelo grupo Gartner que reporta os

principais competidores no mercado de servidores de aplicaç˜ao corporativo

[PEZZINE et al., 2011]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.2

Quadrante mágico de 2012 desenvolvido pelo grupo Gartner que reporta

os principais competidores no mercado de virtualizadores X86 [BITTMAN

et al., 2012]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

5.3

Desempenho obtido pelas aplicaç˜oes CPU-bound e memory-intensive de

carga baixa ao serem executadas sobre o servidor de aplicaç˜ao Glassfish

com 25% de utilizaç˜ao dos processadores: a) Tempo médio de resposta e

b) Perda de desempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.4

Desempenho das aplicaç˜oes CPU-bound e memory-intensive de carga baixa

ao serem executadas sobre servidor Glassfish: a) Tempo médio de resposta

com 50% de utilizaç˜ao dos processadores, b) Perda de desempenho com

50% de utilizaç˜ao dos processadores, c) Tempo médio de resposta com 75%

de utilizaç˜ao das CPUs e d) Perda de desempenho com 75% de utilizaç˜ao

das CPUs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.5

Desempenho das aplicaç˜oes CPU-bound e memory-intensive de carga baixa

ao serem executadas sobre servidor Glassfish com 100% de utilizaç˜ao dos

processadores: a) Tempo médio de resposta e b) Perda de desempenho. . . 63

5.6

Desempenho das aplicaç˜oes memory-intensive com carga variando de mo-

derada à alta ao serem executadas sobre servidor Glassfish com 25% de

utilizaç˜ao das CPUs: a) Tempo médio de resposta e b) perda de desempe-

nho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.7

Desempenho das aplicaç˜oes memory-intensive de carga variando entre mo-

derada e alta ao serem executadas sobre servidor Glassfish: a) Tempo médio

de resposta com 50% de utilizaç˜ao dos processadores, b) Perda de desempe-

nho com 50% de utilizaç˜ao dos processadores, c) Tempo médio de resposta

com 75% de utilizaç˜ao das CPUs e d) Perda de desempenho com 75% de

utilizaç˜ao dos processadores. . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5.8

Perda de desempenho sofrida pelas aplicaç˜oes memory-intensive com carga

variando de moderada à alta ao serem executadas em plataformas virtua-

lizadas e hospedadas no servidor de aplicaç˜ao Glassfish com 100% de utili-

zaç˜ao dos processadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.9

Resultados obtidos ao executar aplicaç˜oes distribu´ıdas baseadas em SOA

do tipo CPU-bound e memory-intensive de carga baixa implantadas no

servidor de aplicaç˜ao JBoss com 25% de ocupaç˜ao dos processadores dis-

ponibilizados: a) Tempo médio de resposta. b) Perda de desempenho. . . . 70

viii

5.10 Resultados obtidos ao executar aplicaç˜oes distribu´ıdas baseadas em SOA

do tipo CPU-bound e memory-intensive de carga baixa implantadas no

servidor de aplicaç˜ao JBoss: a) Tempo médio de resposta com 50% de uti-

lizaç˜ao dos processadores; b) Perda de desempenho com 50% de utilizaç˜ao

dos processadores; c) Tempo médio de resposta com 75% de utilizaç˜ao das

CPUs e d) Perda de desempenho com 75% de utilizaç˜ao das CPUs. . . . . 72

5.11 Resultados obtidos ao executar aplicaç˜oes distribu´ıdas baseadas em SOA

do tipo CPU-bound e memory-intensive de carga baixa implantadas no

servidor de aplicaç˜ao JBoss com 100% de ocupaç˜ao dos processadores dis-

ponibilizados: a) Tempo médio de resposta e b) Perda de desempenho. . . 74

5.12 Resultados obtidos ao executar aplicaç˜oes distribu´ıdas baseadas em SOA do

tipo memory-intensive de carga moderada e alta implantadas no servidor de

aplicaç˜ao JBoss com 25% de utilizaç˜ao dos processadores disponibilizados:

a) Tempo médio de resposta e b) Perda de desempenho. . . . . . . . . . . 75

5.13 Resultados obtidos ao executar aplicaç˜oes distribu´ıdas baseadas em SOA do

tipo memory-intensive de carga moderada e alta implantadas no servidor

de aplicaç˜ao JBoss: a) Tempo médio de resposta com 50% de utilizaç˜ao

dos processadores; b) Perda de desempenho com 50% de utilizaç˜ao dos

processadores; c) Tempo médio de resposta com 75% de utilizaç˜ao das

CPUs e d) Perda de desempenho com 75% de utilizaç˜ao das CPUs. . . . . 77

5.14 Resultados obtidos ao executar aplicaç˜oes distribu´ıdas baseadas em SOA do

tipo memory-intensive de carga moderada e alta implantadas no servidor de

aplicaç˜ao JBoss com 100% de utilizaç˜ao dos processadores disponibilizados:

a) Tempo médio de resposta e b) Perda de desempenho. . . . . . . . . . . 80

6.1

Resultados obtidos pelas plataformas baseadas em Glassfish durante as

operaç˜oes de unmarshalling de mensagens SOAP com 25% de utilizaç˜ao

dos processadores: a) Tempo médio de resposta e b) Perda de desempenho. 84

6.2

Resultados obtidos pelas plataformas baseadas em Glassfish durante as

operaç˜oes de unmarshalling de mensagens SOAP com taxa de utilizaç˜ao

de processadores de 50%: a) Tempo médio de resposta e b) Perda de de-

sempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6.3

Perdas de desempenho sofridas pelas plataformas virtualizadas baseadas

em Glassfish durante as operaç˜oes de unmarshalling de mensagens SOAP:

a) 75% de utilizaç˜ao das CPUs e b) 100% de utilizaç˜ao das CPUs. . . . . . 87

6.4

Resultados obtidos pelas plataformas baseadas em Glassfish durante as

operaç˜oes de unmarshalling de mensagens SOAP com cem caracteres por

elemento XML e taxa de utilizaç˜ao de processadores de 25%: a) Tempo

médio de resposta e b) Perda de desempenho. . . . . . . . . . . . . . . . . 90

ix

6.5

Resultados obtidos pelas plataformas baseadas em Glassfish durante as

operaç˜oes de unmarshalling de mensagens SOAP formada por elementos

XML de cem caracteres: a) Tempo médio de resposta com 50% de utili-

zaç˜ao dos processadores, b) Perda de desempenho com 50% de utilizaç˜ao

dos processadores, c) Tempo médio de resposta com 75% de utilizaç˜ao dos

processadores e d) Perda de desempenho com 75% de utilizaç˜ao dos pro-

cessadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6.6

Resultados obtidos pelas plataformas baseadas em Glassfish durante as

operaç˜oes de unmarshalling de mensagens SOAP com cem caracteres por

elemento XML e taxa de utilizaç˜ao de CPU de 100%: a) Tempo médio de

resposta e b) Perda de desempenho. . . . . . . . . . . . . . . . . . . . . . . 94

6.7

Resultados obtidos pelas plataformas baseadas em Glassfish durante as

operaç˜oes de unmarshalling de mensagens SOAP com mil caracteres por

elemento XML e taxa de utilizaç˜ao de CPU de 25%: a) Tempo médio de

resposta e b) Perda de desempenho. . . . . . . . . . . . . . . . . . . . . . . 95

6.8

Resultados obtidos pelas plataformas baseadas em Glassfish durante as

operaç˜oes de unmarshalling de mensagens SOAP com mil caracteres por

elemento XML e taxa de utilizaç˜ao de CPU de 50%: a) Tempo médio de

resposta e b) Perda de desempenho. . . . . . . . . . . . . . . . . . . . . . . 97

6.9

Perdas de desempenho sofridas pelas aplicaç˜oes distribu´ıdas ao realizar

operaç˜ao de unmarshalling com mil caracteres por elemento XML: a) 75%

de utilizaç˜ao dos processadores e b) 100% de utilizaç˜ao dos processadores. . 98

6.10 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com dez caracteres por elemento XML em plataformas com

taxa de utilizaç˜ao de CPUs em 25%: a) Tempo médio de resposta e b)

Perda de desempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.11 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com dez caracteres por elemento XML em plataformas com

taxa de utilizaç˜ao de CPUs em 50%: a) Tempo médio de resposta e b)

Perda de desempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.12 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com dez caracteres por elemento XML: a) Tempo médio de

resposta com taxa de utilizaç˜ao de CPUs 75%, b) Perda de desempenho

com taxa de utilizaç˜ao de CPUs de 75%, e c) Tempo médio de resposta

com taxa de utilizaç˜ao de CPUs 100%, d) Perda de desempenho com taxa

de utilizaç˜ao de CPUs de 100%. . . . . . . . . . . . . . . . . . . . . . . . . 104

x

6.13 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com cem caracteres por elemento XML e com 25% de utilizaç˜ao

dos processadores dispon´ıveis: a) Tempo médio de resposta e b) Perda de

desempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

6.14 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com cem caracteres por elemento XML: a) Tempo médio de

resposta com taxa de utilizaç˜ao de CPU 50%, b) Perda de desempenho

com taxa de utilizaç˜ao de CPU de 50%, c) Tempo médio de resposta com

taxa de utilizaç˜ao de CPU 75% e d) Perda de desempenho com taxa de

utilizaç˜ao de CPU de 75%. . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

6.15 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com cem caracteres por elemento XML e com100% de utiliza-

ç˜ao dos processadores dispon´ıveis: a) Tempo médio de resposta e b) Perda

de desempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

6.16 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com mil caracteres por elemento XML e com 25% de utilizaç˜ao

dos processadores dispon´ıveis: a) Tempo médio de resposta e b) Perda de

desempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

6.17 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com mil caracteres por elemento XML e com 50% de utilizaç˜ao

dos processadores dispon´ıveis: a) Tempo médio de resposta e b) Perda de

desempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

6.18 Resultados obtidos pelas aplicaç˜oes distribu´ıdas ao realizar operaç˜ao de

marshalling com mil caracteres por elemento XML: a) Tempo médio de

resposta com taxa de utilizaç˜ao de CPU 75%, b) Perda de desempenho

com taxa de utilizaç˜ao de CPU de 75%, c) Tempo médio de resposta com

taxa de utilizaç˜ao de CPU 100% e d) Perda de desempenho com taxa de

utilizaç˜ao de CPU de 100%. . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7.1

Definiç˜ao da capacidade adequada [MENASCE; ALMEIDA, 2003]. . . . . . . . 118

7.2

Metodologia para o planejamento de capacidade proposto em [MENASCE;

ALMEIDA, 2003].

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

7.3

Parâmetros relacionados ao processo de modelagem da disponibilidade [ME-

NASCE; ALMEIDA, 2003]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.4

Categorias de recursos caracterizados em redes de filas: a) Recurso inde-

pendente de carga, b) recurso dependente de carga e c) recurso de atraso.

Adaptado de [MENASCE; ALMEIDA, 2003]. . . . . . . . . . . . . . . . . . . 127

7.5

Modelo de desempenho R-Capriccio proposto em [ZHANG et al., 2007]. . . . 128

xi

7.6

Modelo de desempenho apresentado em [LIU et al., 2008] considerando sis-

temas dividido em camadas e com múltiplas threads: a) Modelo de rede

de filas e b) arquitetura de comunicaç˜ao entre as camadas um e dois e c)

arquitetura de comunicaç˜ao entre as camadas dois e três. . . . . . . . . . . 129

7.7

Processo básico do modelo de desempenho apresentado em [TEIXEIRA et

al., 2009]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.8

Framework de um modelo lógico de serviço [KARGUPTA; BLACK, 2012]. . . 133

7.9

Modelo baseado em rede de filas que representa uma máquina f´ısica cujo

sistema operacional é executado diretamente sobre o hardware. . . . . . . . 136

7.10 Modelo baseado em rede de filas que representa uma máquina virtual exe-

cutando sobre um virtualizador do tipo bare-metal. . . . . . . . . . . . . . 138

7.11 Modelo de um servidor de aplicaç˜ao baseado em redes de filas. . . . . . . . 139

7.12 Modelo baseado em rede de filas que representa servidores de aplicaç˜ao

executados sobre ambientes virtualizados. . . . . . . . . . . . . . . . . . . . 141

xii

Lista de Tabelas

5.1

Tempo médio, em ms, consumido ao alocar memória DRAM em blocos de

tamanho previamente estabelecidos no servidor de aplicaç˜ao Glassfish. . . . 60

5.2

Raz˜ao entre o tempo médio de resposta quando a taxa de ocupaç˜ao de

processamento é de 100% e 75%.

. . . . . . . . . . . . . . . . . . . . . . . 69

5.3

Tempo médio, em ms, consumido ao alocar memória DRAM em blocos de

tamanho previamente estabelecidos no servidor de aplicaç˜ao JBoss. . . . . 71

5.4

Reduç˜ao nos tempos médios de resposta ao substituir o servidor de aplica-

ç˜ao Glassfish pelo JBoss. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6.1

Quantidade média de memória alocada em 25 iteraç˜oes de consumo por

taxa de utilizaç˜ao de CPUs. . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.2

Raz˜ao entre os tempos médios de resposta com taxa de utilizaç˜ao de CPU

em 75% e 50%. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3

Quantidade média de memória alocada em 25 iteraç˜oes de consumo por

taxa de utilizaç˜ao de CPUs, considerando mensagens SOAP com cem ca-

racteres por elemento XML. . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.4

Quantidade média de memória alocada em 25 iteraç˜oes de consumo por

taxa de utilizaç˜ao de CPUs, considerando mensagens SOAP com mil ca-

racteres por elemento XML. . . . . . . . . . . . . . . . . . . . . . . . . . . 96

6.5

Raz˜ao entre os tempos médios de resposta com taxa de utilizaç˜ao de CPU

em 100% e 75% ao processar mensagens SOAP com mil caracteres por

elemento XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.6

Quantidade média de memória alocada ao realizar operaç˜oes de marshalling

por taxa de utilizaç˜ao de CPUs, considerando 25 iteraç˜oes e mensagens

SOAP com dez caracteres por elemento XML. . . . . . . . . . . . . . . . . 101

6.7

Raz˜ao entre os tempos médios de resposta das aplicaç˜oes distribu´ıdas ao

considerar mil e cem caracteres por elemento XML e taxa de utilizaç˜ao de

CPU em 25%. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

xi

7.1

Classificaç˜ao dos sistemas de acordo com a disponibilidade [MENASCE; AL-

MEIDA, 2003]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Sumário

1 Introduç˜

ao

1

1.1

Contextualizaç˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Motivaç˜ao e objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.3

Organizaç˜ao dos cap´ıtulos . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

2 Arquitetura Orientada a Serviços

7

2.1

Consideraç˜oes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2.2

Definiç˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.3

Componentes e cooperaç˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . .

8

2.4

Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5

Composiç˜ao de serviços . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.5.1

Membros da composiç˜ao . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5.2

Composiç˜ao m´ınima . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.5.3

Inconvenientes das composiç˜oes . . . . . . . . . . . . . . . . . . . . 17

2.6

Caracter´ısticas das arquiteturas orientadas a serviços . . . . . . . . . . . . 18

2.6.1

Vantagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.7

Consideraç˜oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Web Services

21

3.1

Consideraç˜oes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.2

Definiç˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3

Arquitetura, protocolos e padr˜oes . . . . . . . . . . . . . . . . . . . . . . . 22

3.3.1

Tecnologias base . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.3.2

Camada de transporte . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.3.3

Camada de mensagens . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3.4

Camada de descriç˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3.5

Camada de descoberta . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.3.6

Demais camadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.4

Consideraç˜oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

xiv

4 Virtualizaç˜

ao

41

4.1

Consideraç˜oes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.2

Processadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2.1

Virtualizaç˜ao através de traduç˜ao binária . . . . . . . . . . . . . . . 44

4.2.2

Virtualizaç˜ao auxiliada por sistema operacional ou paravirtualizaç˜ao 44

4.2.3

Virtualizaç˜ao assistida por hardware

. . . . . . . . . . . . . . . . . 45

4.3

Memória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.3.1

Recuperaç˜ao de memória pelo hypervisor . . . . . . . . . . . . . . . 49

4.4

Entrada/Sa´ıda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.5

Consideraç˜oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5 Virtualizaç˜

ao e o tempo de processamento

55

5.1

Consideraç˜oes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.2

Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.2.1

Plataformas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.2.2

Carga de trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.3

Organizaç˜ao da análise da Influência da virtualizaç˜ao . . . . . . . . . . . . 59

5.4

Aplicaç˜oes CPU-Bound e memory-intensive de carga baixa . . . . . . . . . 59

5.5

Aplicaç˜oes memory-intensive de carga moderada e alta . . . . . . . . . . . 64

5.6

Servidor de aplicaç˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.6.1

Aplicaç˜oes CPU-bound e memory-intensive de carga baixa . . . . . 70

5.6.2

Aplicaç˜oes memory-intensive de carga moderada e alta . . . . . . . 74

5.7

Consideraç˜oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

6 Virtualizaç˜

ao e a manipulaç˜

ao de envelopes SOAP

83

6.1

Consideraç˜oes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

6.2

Operaç˜ao unmarshalling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

6.2.1

Caracteres por elemento XML . . . . . . . . . . . . . . . . . . . . . 90

6.3

Operaç˜ao marshalling

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.3.1

Variaç˜ao no tamanho dos elementos XML . . . . . . . . . . . . . . 106

6.4

Consideraç˜oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7 Virtualizaç˜

ao e os modelos de desempenho

117

7.1

Consideraç˜oes iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

7.2

Capacidade adequada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

7.3

Planejamento de capacidade . . . . . . . . . . . . . . . . . . . . . . . . . . 119

7.3.1

Modelo de carga de trabalho . . . . . . . . . . . . . . . . . . . . . . 120

7.3.2

Modelo de custos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

7.3.3

Modelo de disponibilidade . . . . . . . . . . . . . . . . . . . . . . . 123

7.3.4

Modelo de desempenho . . . . . . . . . . . . . . . . . . . . . . . . . 126

xv

7.4

A influência da virtualizaç˜ao nos modelos de desempenho dispon´ıveis . . . 128

7.4.1

Modelo modular proposto . . . . . . . . . . . . . . . . . . . . . . . 135

7.5

Consideraç˜oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

8 Conclus˜

oes

143

8.1

Consideraç˜oes finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

8.2

Contribuiç˜oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

8.3

Sugest˜oes para trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . 152

Referências bibliográficas

153

xvi

Cap´ıtulo

1

Introduç˜

ao

1.1

Contextualizaç˜

ao

Desde o seu surgimento, em 1989 no CERN (European Organization for Nuclear Rese-

arch), a World Wide Web, ou simplesmente Web, tem modificado a forma como as pessoas

lidam com a informaç˜ao, como elas se relacionam e consomem produtos. Presenciou-se

o surgimento do v´ıdeo sob demanda, das bibliotecas digitais, do aprendizado a distância,

das redes sociais e até mesmo de mundos virtuais [MENASCE; ALMEIDA, 2003]. Da mesma

forma, houve o surgimento do comércio eletrônico, também conhecido como e-business,

que representa uma mudança de paradigma no modo como as empresas disponibilizam

seus produtos [MARZULLO, 2009].

Neste tipo de comércio a transaç˜ao ocorre totalmente na Web, em sistemas desenvol-

vidos para tal finalidade, denominados sistemas Web. Tal forma de negociaç˜ao permite

que, a partir de investimentos reduzidos, seja poss´ıvel realizar transaç˜oes comerciais em

escala global. Essa caracter´ıstica levou e ainda leva muitas empresas a adotarem esse

modelo de negócio. Todavia, ao implantar sistemas Web muitas empresas n˜ao substituem

seu software legado, obrigando a coexistência dos mesmos. Sendo assim, faz-se necessá-

rio o desenvolvimento de novas tecnologias de integraç˜ao e migraç˜ao de plataformas de

software. Tal necessidade também está presente em transaç˜oes de compras ou fus˜oes de

empresas.

Apesar das dificuldades em disponibilizar e integrar plataformas, tanto de hardware

quanto de software, essa nova modalidade de comércio tende a aumentar, uma vez que

est˜ao surgindo novos dispositivos móveis, como os smartphones e tablets, que associados

à interface amigável da Web permitem acesso facilitado a esses sistemas. Outro fator

relevante é o aumento no número de pessoas com acesso à Internet, além da elevaç˜ao no

1

index-26_1.jpg

Cap´ıtulo 1. Introduç˜

ao

1.1. Contextualizaç˜

ao

n´ıvel de confiança neste tipo de comércio por parte da populaç˜ao [MARZULLO, 2009].

Tal fato pode ser comprovado na Figura 1.1 que apresenta a evoluç˜ao das vendas

on-line no varejo brasileiro entre 2001 e 2012. Essas estat´ısticas foram registradas pela

organizaç˜ao e-commerce [E-COMMERCE, 2013].

Figura 1.1: Variaç˜ao do varejo on-line no Brasil em bilh˜oes [E-COMMERCE, 2013].

A partir da Figura 1.1, percebe-se que o faturamento passou de 0,54 bilh˜oes de reais

em 2001 para 22,5 bilh˜oes em 2012, com faturamento de 26 bilh˜oes previsto para o ano

de 2013, sendo que tais valores n˜ao consideram vendas de automóveis, passagens aéreas

e leil˜oes on-line. Ao analisar tal variaç˜ao, percebe-se que as vendas realizadas em 2001

representam, aproximadamente, apenas 2,2% daquelas realizadas em 2012.

Outro fator que comprova a aumento de confiança no comércio eletrônico pode ser

observado na Figura 1.2, que apresenta a evoluç˜ao do número de compradores on-line no

Brasil. Esses compradores também s˜ao conhecidos como e-consumidores.

.

Diante desse crescimento, n˜ao é raro que sites populares recebam milh˜oes de solicita-

ç˜oes por dia, o que pode elevar extremamente os tempos de respostas, frustrando muitos

usuários da Web, além de gerar um grande problema para as equipes de desenvolvimento e

suporte. Tais equipes precisam dimensionar a plataforma de hardware, bem como utilizar

diferentes tecnologias de software, para entregar os serviços requisitados com os n´ıveis de

qualidade negociado [ZHANG et al., 2007].

Neste cenário de evoluç˜ao e transformaç˜ao, duas soluç˜oes est˜ao se tornando essenciais:

Arquiteturas Orientadas a Serviços (SOA) e a consolidaç˜ao de servidores, obtida através

do processo de virtualizaç˜ao e, recentemente, da computaç˜ao em nuvem, principalmente

a categorizada como Infraestrutura como Serviço (IaaS), fundamentada sobre o processo

de virtualizaç˜ao [BAUN et al., 2011].

2

index-27_1.jpg

Cap´ıtulo 1. Introduç˜

ao

1.1. Contextualizaç˜

ao

Figura 1.2: Variaç˜ao na quantidade de consumidores on-line (e-consumidores) no Brasil.

Em milh˜oes [E-COMMERCE, 2013]

A arquitetura orientada a serviço, através da adoç˜ao de Web Services, permite separar

as regras de negócio e as tecnologias de desenvolvimento de software, aproximando, assim,

as áreas de gest˜ao e TI (Tecnologia da Informaç˜ao). Este fato, por si só, permite que

softwares sejam desenvolvidos de maneira mais eficiente, em espaços de tempos menores

que aqueles obtidos ao utilizar as metodologias tradicionais [ENDREI et al., 2004]. Tal

arquitetura permite, também, que softwares desenvolvidos em diferentes linguagens e

plataformas sejam integrados de forma transparente, uma vez que há uma interface bem

definida, baseada em padr˜oes abertos, que permite a descoberta e posterior invocaç˜ao dos

diferentes serviços disponibilizados.

Já a virtualizaç˜ao de hardware permite que múltiplas máquinas virtuais sejam ins-

tanciadas sobre um mesmo hardware, compartilhando os recursos f´ısicos existentes entre

os vários sistemas operacionais, denominados convidados, instalados sobre as máquinas

virtualizadas. Assim, essa tecnologia permite que o dimensionamento de hardware seja

totalmente direcionado à necessidade de processamento, armazenamento e comunicaç˜ao

do sistema operacional convidado, permitindo, inclusive, que uma máquina virtual seja

transferida de um servidor f´ısico para outro sem a necessidade de rein´ıcio. Essa tecnologia

constitui a base para a computaç˜ao em nuvem, mais especificamente para soluç˜oes do tipo

IaaS, onde as caracter´ıstica de provisionamento sob demanda, no estilo self-service, pool

de recursos, elasticidade e mensuraç˜ao automatizada est˜ao presentes. [BAUN et al., 2011;

Peter Mell and Tim Grance, 2011]

Assim, ao considerar as soluç˜oes em uso atualmente, percebe-se que uma grande quan-

tidade de aplicaç˜oes baseadas em SOA est˜ao sendo implantadas em ambientes virtualiza-

dos e que o dimensionamento adequado da infraestrutura de TI, a fim de cumprir SLAs

(Service-Level Agreement) previamente estabelecidos, tornou-se mais complexo, eviden-

3

Cap´ıtulo 1. Introduç˜

ao

1.2. Motivaç˜

ao e objetivos

ciando a necessidade do uso de modelos de desempenho que permitam prever, com base

em projeç˜oes de cargas futuras, o comportamento da plataforma analisada, permitindo,

assim, que a sua saturaç˜ao seja evitada [MENASCE; ALMEIDA, 2003].

1.2

Motivaç˜

ao e objetivos

Muitos trabalhos est˜ao sendo desenvolvidos considerando modelos e metodologias de

aferiç˜ao de desempenho e, consequentemente, planejamento de capacidade. Em [PRAPHA-

MONTRIPONG et al., 2007] os autores prop˜

oem um modelo de desempenho destinado à

análise de desempenho de servidores Web implementados com mecanismos ass´ıncronos

encapsulados no padr˜ao Proactor. Em [SHIMIZU et al., 2009] é apresentada uma aborda-

gem genérica para modelar o uso de recursos pelas aplicaç˜oes e suas correlaç˜oes, sendo

essa abordagem genérica o suficiente para ocultar as heterogeneidades de hardware, po-

rém, n˜ao a heterogeneidade dos conjuntos de instruç˜oes. Assim, segundo os autores, é

poss´ıvel prever tempos de resposta de transaç˜oes, poder de processamento, tamanho da

memória cache entre outras informaç˜oes, sem que seja necessário modificar o aplicativo

analisado.

Esses trabalhos, no entanto, n˜ao consideram as aplicaç˜oes baseadas em SOA, que s˜ao

abordadas em [ESTRELLA et al., 2008], onde os autores apresentam diretrizes importan-

tes para a avaliaç˜ao de desempenho em Web Services, destacando os problemas com as

especificaç˜oes dos padr˜oes utilizados, o que influencia, de forma negativa, na provis˜ao

da qualidade de serviço. Em [TEIXEIRA et al., 2011] é proposto um modelo, através de

redes de Petri [KARTSON et al., 1994], cujo objetivo é analisar o consumo de recursos e a

degradaç˜ao nos n´ıveis de serviço de aplicaç˜oes baseadas em SOA.

Ainda considerando os modelos de desempenho, tendo como referência as aplicaç˜oes

baseadas em SOA, os autores do trabalho [ZHANG et al., 2007], de uma maneira mais es-

pec´ıfica, consideram as organizaç˜oes em múltiplas camadas desses sistemas, apresentando

metodologias para prever o impacto de cargas futuras em sistemas de múltiplos nós, po-

rém, sem considerar a existência de múltiplas threads, destacado em [LIU; HEO; SHA, 2005;

LIU et al., 2008]. Em [LU et al., 2010], os autores apresentam uma nova pol´ıtica para o

controle de admiss˜ao, baseada em sess˜oes, para sistemas de Web Services estruturados

em múltiplas camadas, denominada AWAIT, permitindo reduzir, para o m´ınimo, a quan-

tidade de sess˜oes abortadas. Em [ROY et al., 2011] os autores descrevem uma abordagem

h´ıbrida para o planejamento de capacidade de sistemas multicamadas baseados em com-

ponentes que, através de heur´ısticas, determina a menor quantidade de recursos que deve

ser alocada para um determinado componente. Em [HUANG et al., 2011] é proposta uma

abordagem adaptativa, baseada em traces, que permitem descrever as caracter´ısticas de

grandes aplicaç˜oes comerciais durante o seu tempo de execuç˜ao, n˜ao partindo da fase de

modelagem.

4

Cap´ıtulo 1. Introduç˜

ao

1.2. Motivaç˜

ao e objetivos

Já em [KARGUPTA; BLACK, 2012] os autores desenvolveram fórmulas e padr˜oes para

representar uma grande quantidade de caracter´ıstica de Web Services, relacionando o de-

sempenho dessas aplicaç˜oes ao retardo de seus componentes. Em [MEZGHANI; HALIMA,

2012] é proposto um framework reconfigurável dinamicamente, denominado DRF4SOA,

destinado a projetar aplicaç˜oes SOA autônomas atendendo aos ciclos de fase MOPE (Mo-

nitoring, Analysis, Planning and Execution), sendo esse framework destinado a atender os

contratos de SLA. Em [POTENA, 2013] os autores prop˜oem uma metodologia para tratar o

desempenho de sistemas baseados em SOA ao serem expandidos e adaptados, no entanto,

essa metodologia parte dos novos requisitos e da descriç˜ao do sistema, culminando na

nova arquitetura a ser adotada.

De maneira análoga, o desempenho de plataformas virtualizadas e seus modelos de

desempenho têm sido objetos de estudos recentemente, assim como as plataformas de

computaç˜ao em nuvem do tipo IaaS. Em [KUNDU et al., 2010] os autores identificaram

um conjunto de fatores independentes que influenciam, diretamente, no desempenho de

plataformas virtualizadas e, consequentemente, em um conjunto de aplicaç˜oes executadas

sobre essas plataformas. A partir desse conjunto de fatores, os autores desenvolveram

um modelo de desempenho iterativo, baseado em redes neurais. Em [IOSUP et al., 2011]

os autores analisam o desempenho de sistemas comerciais de computaç˜ao em nuvem ao

executar aplicaç˜oes cient´ıficas, destacando, principalmente, o impacto da elasticidade. Em

[CHI et al., 2011] é apresentado um novo framework, denominado SLA-Tree, utilizado na

tomada de decis˜ao para cumprimento de SLAs. Em [RAO et al., 2011] é proposto um

mecanismo de provisionamento auto adaptativo de máquinas virtuais, comprovando a

eficiência da soluç˜ao através de um protótipo executado sobre a plataforma Xen.

A partir da análise dos trabalhos presentes na literatura, é poss´ıvel perceber que há

uma lacuna importante a ser preenchida, uma vez que os estudos atuais n˜ao tratam

o desempenho de aplicaç˜oes baseadas em SOA, em especial as desenvolvidas com Web

Services, ao serem inseridas em ambientes virtualizados, principalmente após a inserç˜ao

de recursos no hardware destinados a ambientes virtualizados, como a tabela dupla de

páginas e as “large-pages”. As tabelas dupla de páginas permitem o mapeamento das

páginas virtuais, utilizadas pelas aplicaç˜oes, diretamente na tabela de páginas do sistema

operacional hospedeiro, de forma transparente ao sistema operacional convidado, já as

“large-pages” permitem ao sistema operacional hospedeiro alocar páginas até quinhentas

vezes maiores que as páginas tradicionais utilizadas no sistema operacional convidado.

Assim, este trabalho prop˜oe desenvolver uma análise aprofundada das caracter´ısticas

que influenciam o desempenho de aplicaç˜oes CPU-bound e memory-intensive, com carga

de memória variando de baixa à alta, ao serem implantadas em ambientes virtualizados,

com o objetivo de descrever os relacionamentos existentes entre os recursos de virtualizaç˜ao

existentes nos hardwares de terceira geraç˜ao, os virtualizadores do tipo bare-metal e as suas

eficiências no gerenciamento de recursos e os servidores de aplicaç˜ao, responsáveis pela

5

Cap´ıtulo 1. Introduç˜

ao

1.3. Organizaç˜

ao dos cap´ıtulos

virtualizaç˜ao em n´ıvel de aplicaç˜ao. Adicionalmente, este trabalho analisará os modelos

de desempenho mais expressivos, com o objetivo destacar os pontos em que devem ser

adaptados ou modificados, permitindo, assim, realizar o planejamento de capacidade das

plataformas consideradas.

1.3

Organizaç˜

ao dos cap´ıtulos

Esta tese se encontra organizada como descrito a seguir.

O cap´ıtulo 2 aborda a arquitetura orientada a serviços, definindo-a como um modelo

direcionado ao mapeamento de regras de negócio em softwares, denominados serviços.

Ao descrevê-la, s˜ao apresentados seus componentes e as interaç˜oes existentes entre eles,

utilizando para isso uma estrutura de padr˜oes, organizada em camadas. Esse cap´ıtulo

descreve ainda, a composiç˜ao de serviços, cujo objetivo é permitir o reuso de software.

O cap´ıtulo 3 apresenta a tecnologia de Web Services que é, atualmente, a mais utilizada

para a concretizaç˜ao da SOA. Assim, será descrita a linguagem XML (eXtensible Markup

Language), bem como seus documentos de validaç˜ao, que juntos constituem a base para

a definiç˜ao das demais camadas, as quais também ser˜ao descritas nesse cap´ıtulo, dando

maior ênfase para as camadas de mensagem, descriç˜ao e descoberta.

O cap´ıtulo 4 descreve o processo de virtualizaç˜ao de processadores, memória e dispositi-

vos de entrada e sa´ıda, destacando os tipos de virtualizadores e os recursos de virtualizaç˜ao

de terceira geraç˜ao, existentes nos hardwares atuais.

O cap´ıtulo 5 apresenta os resultados obtidos ao executar aplicaç˜oes distribu´ıdas ba-

seadas em SOA, do tipo CPU-bound e memory-intensive, em ambientes virtualizados,

destacando a influência gerada pelo sistema de virtualizaç˜ao no tempo de processamento

dessas aplicaç˜oes, bem como a influência do servidor de aplicaç˜ao e da taxa de utilizaç˜ao

dos processadores.

O cap´ıtulo 6 aborda a influência da virtualizaç˜ao sobre as bibliotecas de codificaç˜ao

e decodificaç˜ao de envelopes SOAP utilizadas pelos servidores de aplicaç˜oes e, também,

pelas aplicaç˜oes distribu´ıdas baseadas em SOA ao realizar as operaç˜oes de marshalling

e unmarshalling. Neste cap´ıtulo é destacado a influência do sistema de coleta de lixo,

da quantidade de memória DRAM (Dynamic random access memory) consumida e seu

gerenciamento pelos sistemas gerenciadores de máquinas virtuais.

O cap´ıtulo 7 apresenta uma análise cr´ıtica dos principais modelos de desempenho

encontrados na literatura, destacando suas falhas ao modelar aplicaç˜oes distribu´ıdas ba-

seadas em SOA executadas sobre plataformas de virtualizaç˜ao total, com o objetivo de

permitir que tais modelos sejam modificados para que reflitam, de maneira realista, o

desempenho das plataformas estudadas.

Finalmente, no cap´ıtulo 8 ser˜ao apresentadas as conclus˜oes obtidas nesta tese, desta-

cando as principais contribuiç˜oes alcançadas e sugest˜oes para trabalhos futuros.

6

Cap´ıtulo

2

Arquitetura Orientada a Serviços

2.1

Consideraç˜

oes iniciais

De acordo com [ENDREI et al., 2004], os executivos da área de TI necessitam reduzir

custos enquanto maximizam a utilizaç˜ao das estruturas de TI dispon´ıveis, porém, sem

reduzir a qualidade do serviço prestado. Este comportamento permite que as empresas

tornem-se mais competitivas e lucrativas.

Ainda de acordo com [ENDREI et al., 2004], há duas quest˜oes envolvidas na situaç˜ao

descrita anteriormente. A primeira refere-se à heterogeneidade das plataformas existentes

nos ambientes de TI, enquanto a segunda refere-se à necessidade de mudanças ágeis dos

modelos de negócio, permitindo que empresas continuem competitivas.

A heterogeneidade, tanto de hardware quanto de software, é uma consequência di-

reta da evoluç˜ao no desenvolvimento das soluç˜oes de TI. À medida que novos padr˜oes e

tecnologias s˜ao criados, diferentes empresas formatam produtos com determinadas carac-

ter´ısticas para que sejam aplicadas a um nicho de mercado. Todavia, é comum que as

tecnologias anteriormente implantadas ainda permaneçam em uso. Sendo assim, n˜ao é

raro observar diferentes tecnologias sendo utilizadas em uma mesma empresa, bem como

a presença de produtos de diferentes fornecedores.

Já a necessidade de mudança, está diretamente relacionada ao avanço da competiç˜ao

entre as empresas, acirrada pelo surgimento do comércio eletrônico. Atualmente, é comum

pequenas empresas precisarem concorrer com grandes corporaç˜oes e, n˜ao menos comum,

é a disputa entre duas ou mais corporaç˜oes por um segmento de mercado. Esta disputa

leva a menores ciclos de desenvolvimento de produtos e a busca constante por mercado

consumidor.

Para resolver tal situaç˜ao é necessário que novas metodologias de desenvolvimento de

7

Cap´ıtulo 2. Arquitetura Orientada a Serviços

2.2. Definiç˜

ao

software sejam desenvolvidas, devendo permitir um melhor alinhamento entre as equipes