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
Faça o download do livro em PDF, ePub, Kindle para obter uma versão completa.
Dezembro de 2013
À 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
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
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