CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
GUSTAVO HENRIQUE RODRIGUES DE JESUS
AVALIAÇÃO DE DESEMPENHO EM UM AMBIENTE DE BANCO DE
DADOS DISTRIBUÍDO CONSIDERANDO O TRÁFEGO DE PACOTES
LINS/SP
1º SEMESTRE/2013
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
GUSTAVO HENRIQUE RODRIGUES DE JESUS
AVALIAÇÃO DE DESEMPENHO EM UM AMBIENTE DE BANCO DE
DADOS DISTRIBUÍDO CONSIDERANDO O TRÁFEGO DE PACOTES
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do Título de Tecnólogo (a) em Banco de Dados.
Orientador: Prof. Me. Mário Henrique de Souza
Pardo
LINS/SP
1º SEMESTRE/2013
Jesus, Gustavo Henrique Rodrigues de
J58Avaliação
de desempenho em um ambiente de banco de dados
distribuído considerando o tráfego de pacotes / Gustavo Henrique
Rodrigues de Jesus.–Lins, 2013.
135f.: il.
Monografia (Trabalho de Conclusão de Curso de Tecnologia em Banco
de Dados) – Faculdade de Tecnologia de Lins Prof. Antônio Seabra,
2013.
Orientador: Prof.
Me. Mário Henrique de Souza Pardo
1.Banco de dados distribuído.2.JMeter. 3.Avaliação de desempenho.
4.Replicação. 5.Linked server. 6.Microsoft SQL server 2008.I.Pardo,
Mário Hnrique de Souza. II.Faculdade de Tecnologia de Lins Prof.
Antônio Seabra. III.Título.
CDD 005.73
Ficha elaboradora pela Biblioteca da Faculdade de Tecnologia de Lins
GUSTAVO HENRIQUE RODRIGUES DE JESUS
AVALIAÇÃO DE DESEMPENHO EM UM AMBIENTE DE BANCO DE DADOS
DISTRIBUÍDO CONSIDERANDO O TRÁFEGO DE PACOTES
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins Prof. Antonio
Seabra, como parte dos requisitos necessários
para a obtenção do título de Tecnólogo em Banco
de Dados sob orientação do Prof. Me. Mário
Henrique de Souza Pardo.
Data de aprovação: 17 de junho de 2013
__________________________________________________
Orientador: Prof. Me. Mário Henrique de Souza Pardo
__________________________________________________
Prof. Me. Anderson Pazin
__________________________________________________
Prof. Me. Luiz Fernando de Oliveira Silva
Dedicatória
Dedico este trabalho, primeiramente, a Deus,
pela força dada para superar todas as dificuldades. Em
segundo lugar, dedico a minha mãe por todo o apoio que
sempre me dá. Dedico também a meu irmão, que faz
parte da minha vida e me deu algumas dicas e a minha
amiga Rebeca, pelo companheirismo e pela motivação
quando tive meus momentos de desânimo.
Gustavo Henrique Rodrigues de Jesus
AGRADECIMENTOS
Neste momento ao qual alcanço um objetivo muito importante para minha
vida, quero agradecer as pessoas que fizeram parte durante todo o tempo de estudo
e aprendizagem.
Agradeço ao prof. Mário Henrique de Souza Pardo, que me orientou e deu
dicas importantíssimas para a elaboração deste trabalho e pela amizade durante
todos os momentos.
Agradeço ao prof. Santarém, o qual tive a honra de conhecer e ter sido aluno.
Agradeço ao professor Fábio Lucio Meira, não só pelo fato de ter sido
professor, mas mais do que tudo, pela amizade.
Ao professor Anderson Pazin, não só pelo profissionalismo e conhecimentos
passados durante este período de estudos, mas também pela compreensão e ajuda
em um momento difícil na elaboração deste trabalho.
Ao professor Alexandre Ponce, por ser um ótimo docente e dar dicas para a
composição deste estudo, além dos apontamentos gramaticais e de formatação do
mesmo.
Ao professor Naylor por se dispor prontamente a ajudar em uma parte deste
trabalho.
Aos amigos Felipe Maciel e Rafael Hamamura, além da amizade, auxiliaram e
muito na parte de montagem do ambiente de testes e disponibilidade para a
utilização do mesmo.
Ao amigo e chefe Sandro Zamian, que não se opôs a minha ausência quando
havia a necessidade de eu realizar testes para este trabalho.
Enfim, aos amigos que durante todos os anos de estudos, me permitiu
crescer e muito, além da ajuda e amizades verdadeiras.
Gustavo Henrique Rodrigues de Jesus
“A mente que se abre a uma nova idéia jamais
voltará
Einstein)
ao
seu
tamanho
original”
(Albert
RESUMO
Este trabalho visa avaliar o desempenho em um ambiente de banco de dados
distribuído analisando o tráfego dos dados que tramitam em uma rede que integra os
hosts deste tipo de ambiente. Para tanto foram realizadas um grande número
requisições de dados em tal banco, através de usuários virtuais, a fim de determinar
os fatores que influenciam no tráfego desta rede. Houve uma variação, também, no
número de hosts. Desta forma, o tráfego gerado permitiu avaliar o comportamento
de um banco de dados deste tipo, levando em consideração todos os fatores que
compuseram esta pesquisa.Este trabalho expõe conceitos sobre banco de dados
distribuído, ferramentas de testes e avaliação de desempenho.
Palavras-chave: Banco de dados distribuído. JMeter. Avaliação de desempenho.
Replicação. Linked Server. Microsoft SQL Server 2008.
ABSTRACT
This study aims to evaluate the performance in an environment of distributed
databases by analyzing the traffic data that move across a network that integrates
the hosts of this type of environment. Therefore, we performed a large number of
requests such data bank via virtual user in order to determine the factors that
influence the traffic of the network. There was also variation in the number of hosts.
Thus, the traffic generated allowed us to evaluate the behavior of a database of this
kind, taking into account all factors that composed this search. This work presents
concepts on distributed database tools, testing and performance evaluation.
Keywords: Database distributed. JMeter. Performance evaluation. Replication.
Linked Server. Microsoft SQL Server 2008.
LISTA DE ILUSTRAÇÕES
FIGURA 1.1 – ARQUITETURADEUM SGBDD HOMOGENÊO ................................ 21
FIGURA 1.2 – ARQUITETURA DE UM SGBDD HETEROGÊNEO .......................... 22
FIGURA 1.3 – FRAGMENTAÇÃO HORIZONTAL ..................................................... 24
FIGURA 1.4 – FRAGMENTAÇÃO VERTICAL .......................................................... 24
FIGURA 1.5 – FRAGMENTAÇÃO MISTA ................................................................. 25
FIGURA 1.6 – REPLICAÇÃO SNAPSHOT ............................................................... 36
FIGURA 1.7 – REPLICAÇÃO TRANSACIONAL ....................................................... 37
FIGURA 1.8 – REPLICAÇÃO MERGE ...................................................................... 39
FIGURA 1.9 – CONFIGURAÇÃO DE SERVIDORES VINCULADOS ....................... 42
FIGURA 2.1 – EQUAÇÃO PARA FATORIAL SIMPLES ........................................... 50
FIGURA 2.2 – EQUAÇÃO PARA FATORIAL COMPLETO ....................................... 51
FIGURA 3.1 – MODELO DE DADOS RELACIONAL ................................................ 55
FIGURA 3.2 – AMBIENTE DE TESTES .................................................................... 57
FIGURA 3.3 – MONITORAMENTO DE PACOTES RECEBIDOS (GRÁFICO) ......... 58
FIGURA 3.4 – MONITORAMENTO DE PACOTES ENVIADOS E RECEBIDOS
(TABELA) .................................................................................................................. 59
FIGURA 3.5 – MONITORAMENTO DE PACOTES ENVIADOS E RECEBIDOS ...... 60
FIGURA 3.6 – AMBIENTE FATOR NÚMERO DE HOSTS NÍVEL 3 ......................... 62
FIGURA 3.7 – AMBIENTE FATOR NÚMERO DE HOSTS NÍVEL 6 ......................... 63
FIGURA 4.1 – COMBINAÇÕES DOS NÍVEIS DOS FATORES E RESPOSTAS ...... 72
LISTA DE GRÁFICOS
GRÁFICO 4.1 – COMPARATIVO ENTRE OS VALORES MÉDIOS DE CADA
EXPERIMENTO ........................................................................................................ 69
GRÁFICO 4.2 – COMPARATIVO LEVANDO EM CONTA O NÚMERO DE
USUÁRIOS................................................................................................................ 69
GRÁFICO 4.3 – COMPARATIVO LEVANDO EM CONTA O NÚMERO DE
REQUISIÇÕES ......................................................................................................... 70
GRÁFICO 4.4 – COMPARATIVO LEVANDO EM CONTA O NÚMERO DE HOSTS 71
GRÁFICO 4.5 – INFLUÊNCIA DOS FATORES ........................................................ 75
LISTA DE QUADROS
QUADRO 2.1 – NÍVEIS, FATORES E RESPOSTAS DE UM PROJETO 22.................... 53
QUADRO 3.1 – QUALIFICAÇÕES DOS HOSTS...................................................... 61
QUADRO 3.2 – FATORES E NÍVEIS PARA AVALIAÇÃO ........................................ 62
QUADRO 3.3 – COMBINAÇÕES ENTRE FATORES E NÍVEIS ............................... 62
QUADRO 4.1 – INTERVALOS DE CONFIANÇA ...................................................... 65
QUADRO 4.2 – ATRIBUIÇÃO DE VARIÁVEIS PARA OS FATORES ...................... 67
QUADRO 4.3 – ATRIBUIÇÃO DE VALORES PARA AS VARIÁVEIS ....................... 67
QUADRO 4.4 – NÍVEIS, FATORES E RESPOSTAS DE UM PROJETO 23.................... 68
QUADRO 4.5 – QUADRO DE COMBINAÇÕES DOS NÍVEIS DOS FATORES ....... 68
QUADRO 4.6 – INFLUÊNCIA DOS FATORES ......................................................... 73
QUADRO 4.7 – SOMA DOS QUADRADOS ............................................................. 74
QUADRO 4.8 – INFLUÊNCIA DOSFATORES .......................................................... 74
LISTA DE ABREVIATURAS E SIGLAS
ALM - Application Level Multicasting
ANSI-SPARC - American National Standards Institute-Standards Planning and
Requirements Committee
BDD - Banco de dados distribuído
CPU - Central Process Unit
DBMS - Databasse Manager System
DCE – Distributed Computing Environment
DLL - Dynamic Link Library
HTTP - HyperText Transfer Protocol
HTTPS - HyperText Transfer Protocol Secure
IBOPE - Instituto Brasileiro de Opinião Pública e Estatística
IC - Intervalo de confiança
IP - Internet Protocol
JDBC - Java Database Connectivity
LDAP - Lightweight Directory Access Protocol
MFLOPS - milhões de operações de pontos-flutuantes por segundos
MIPS - milhões de instruções por segundo
MOM – Message-oriented Middleware
MPI – Message-Passing Interface
NOWs - network of Workstations
ODBC - Open Database Connectivity
OSI - Open System Interconnection
PC - Personal Computer
pps - pacotes por segundo
RMI - Remote Method Invocation
RPC - Remote Procedure Call
SBDD - Sistema de Banco de Dados Distribuído
SGBD - Sistema de gerenciamento de banco de dados
SGBDD - Sistema de gerenciamento de banco de dados distribuído
SO - Sistema Operacional
SOAP - Simple Object Access Protocol
SQL - Structured Query Language
SQT - Soma dos quadrados totais
SSH - Secure Shell
SST - Sum of Square Total
TI - Tecnologia da informação
VM - Virtual Machine
VMM - Virtual Machine Monitor
WANs – Wide Area Networks
LISTA DE SÍMBOLOS
@ - Arroba
™ - Exactamente
® - Registrado
% - Porcentagem
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 16
1 FUNDAMENTAÇÃO TEÓRICA .............................................................................. 18
1.1 BANCO DE DADOS DISTRIBUÍDOS ................................................................. 18
1.2 ARQUITETURA DE BANCO DE DADOS DISTRIBUÍDOS ................................. 19
1.3 BANCOS DE DADOS HOMOGÊNEOS E HETEROGÊNEOS............................ 20
1.4 TÉCNICAS DE ARMAZENAMENTO DE DADOS DISTRIBUÍDOS .................... 23
1.4.1 Replicação........................................................................................................ 23
1.4.2 Fragmentação .................................................................................................. 23
1.4.3 Fragmentação Mista ......................................................................................... 25
1.5 COMUNICAÇÃO EM BANCO DE DADOS DISTRIBUÍDOS ............................... 25
1.6 ANÁLISE DE TRÁFEGO DE REDE .................................................................... 30
1.7 FERRAMENTAS DE ANÁLISE DE TRÁFEGO DE REDE E PUTTY .................. 31
1.7.1 Putty ................................................................................................................. 32
1.8 VIRTUALIZAÇÃO ................................................................................................ 32
1.8.1 VMware ............................................................................................................ 33
1.9 FERRAMENTAS DE TESTES ............................................................................ 34
1.9.1 JMeter .............................................................................................................. 34
1.10 MICROSOFT SQL SERVER ............................................................................. 34
1.10.1 Tipos de replicação ........................................................................................ 35
1.10.1.1 Replicação Snapshot................................................................................... 35
1.10.1.2 Replicação Transacional ............................................................................. 37
1.10.1.3 Publicação Oracle ....................................................................................... 38
1.10.1.4 Publicação peer-to-peer .............................................................................. 38
1.10.1.5 Replicação Merge........................................................................................ 39
1.10.1.6 Agentes de Replicação................................................................................ 40
1.10.2 Linked Server ................................................................................................. 41
2 AVALIAÇÃO DE DESEMPENHO DE SISTEMAS COMPUTACIONAIS E
PLANEJAMENTO DE EXPERIMENTO .................................................................... 43
2.1 AVALIAÇÃO DE DESEMPENHO ........................................................................ 43
2.1.1 Métodos para evitar problemas em projetos de avaliação de desempenho ..... 44
2.1.2 Erros em avaliação de desempenho ................................................................ 45
2.2 PLANEJAMENTO DE EXPERIMENTO............................................................... 46
2.2.1 Terminologia..................................................................................................... 47
2.2.2 Medidas de desempenho ................................................................................. 47
2.2.2.1 Tempo de resposta........................................................................................ 48
2.2.2.2 Throughput .................................................................................................... 48
2.2.3 Carga de trabalho ............................................................................................. 48
2.2.3.1 Tipos de carga de trabalho ............................................................................ 49
2.2.4 Estratégias de projetos de experimentos ......................................................... 49
2.2.4.1 Fatorial simples ............................................................................................. 49
2.2.4.2 Fatorial completo ........................................................................................... 50
2.2.4.3 Fatorial fracionário ......................................................................................... 51
2.2.5 Projetos fatoriais 2k .......................................................................................... 51
2.2.5.1 Projeto fatorial 22 ........................................................................................... 52
2.2.5.2 Soma dos quadrados totais – SQT ............................................................... 53
3 DESENVOLVIMENTO ........................................................................................... 55
3.1 METODOLOGIA .................................................................................................. 55
3.2 AMBIENTE DE TESTES ..................................................................................... 56
3.3 PLANEJAMENTO DE EXPERIMENTOS ............................................................ 61
3.4 RESULTADOS ESPERADOS ............................................................................. 64
4 RESULTADOS E DISCUSSÃO.............................................................................. 65
4.1 INTERVALO DE CONFIANÇA ............................................................................ 65
4.2 QUADRO DE COMBINAÇÕES PARA FATORIAL COMPLETO 23 .................... 67
4.3 RESULTADOS DOS EXPERIMENTOS .............................................................. 68
4.4 INFLUÊNCIA DOS FATORES ............................................................................ 72
CONSIDERAÇÕES FINAIS ...................................................................................... 77
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 79
ANEXO A .................................................................................................................. 83
ANEXO B .................................................................................................................. 90
ANEXO C ................................................................................................................ 105
ANEXO D ................................................................................................................ 130
16
INTRODUÇÃO
Inevitavelmente a busca por informações tende a aumentar cada vez mais
com o passar dos anos. Pessoas conectadas a Internet buscam a todo o momento
notícias, informações, realizam pesquisas e, com isso, o fluxo de dados limita-se por
vários fatores. Dentre estes fatores destacam-se o limite máximo que pode ser
alcançado nas redes de computadores e a configuração dos mesmos, que fazem
parte dessa rede. Outro fator importante é a disponibilidade das informações para os
requisitantes das mesmas. Tais dados são obtidos das bases de dados e estas
devem sempre estar disponíveis.
Há anos os bancos de dados (ou bases de dados) se tornaram de suma
importância para as empresas por armazenarem informações pertencentes a estas.
Com a união de um software que gerencia banco de dados, uma base de dados e
aplicativos, informações são obtidas facilmente. (SILVA, 2001)
De acordo com Elmasri, Navathe (2006, p. 04), "Um banco de dados é uma
coleção de dados que se relacionam". Complementando essa informação,
Silberschatz, et al. (2006, p. 01) afirmam: "Um sistema de gerenciamento de banco
de dados (DBMS) é uma coleção de dados inter-relacionados e um conjunto de
programas para acessar esses dados."
No início, os sistemas de banco de dados eram centralizados e o acesso a
estes eram feitos através de terminais. Com o passar do tempo, os computadores
pessoais tiveram uma melhora significativa de velocidade e o custo destes foram
reduzindo gradativamente. Assim, estes ocuparam o lugar dos terminais que eram
conectados aos sistemas centralizados. (SILBERSCHATZ, et al. , 2006)
Segundo Silberschatz, et al. (2006), a interface com os usuários ficaram por
conta dos computadores pessoais, enquanto que os sistemas centralizados ficaram
responsáveis por atender as solicitações dos sistemas clientes, ou seja, os sistemas
centralizados tornaram-se sistemas servidores.
Entretanto, problemas com hardwares podem ocorrer e os sistemas
servidores podem deixar de atender as requisições dos usuários e, caso não exista
uma opção que faça com que o serviço volte a funcionar rapidamente, tais
requisições ficam prejudicadas.
17
Mesmo que esse tipo de banco de dados seja utilizado até os dias de hoje,
devido aos problemas mencionados anteriormente e devido a grande necessidade
de armazenar um número cada vez maior de dados, gerenciar estes de forma
centralizada tornou-se uma tarefa árdua a ser realizada. (SHIBAYAMA, 2004)
Uma alternativa utilizada atualmente para solucionar estes tipos de problemas
é o uso de um banco de dados configurado como um sistema distribuído que, por ter
a base em vários computadores, caso um deixe de funcionar, as requisições de
dados serão supridas, pois os outros computadores ainda estarão ativos na rede.
De acordo com Shibayama (2004), os dados são distribuídos em vários
computadores, sendo que cada nó tem autonomia dos dados armazenados em si
próprios e, mesmo assim, consegue compartilhar estes com outros nós.
O presente trabalho tem como objetivo avaliar o desempenho em um sistema
de banco de dados distribuído levando em consideração o tráfego de rede deste
sistema computacional.
Este estudo se faz necessário pois através das coletas de dados foram feitas
análises que evidenciaram quais dos três fatores (número de usuários,número de
requisições e número de hosts) que compõem o ambiente de testes devem ser
levados mais em conta por um administrador de banco de dados distribuídos.
Neste trabalho, a fundamentação teórica é descrita no primeiro capítulo,
evidenciando o que vem a ser um banco de dados distribuídos, sua arquitetura e
como é feita a comunicação em um banco de dados deste tipo. Ainda neste mesmo
capítulo são descritas as ferramentas de análise de tráfego de rede, bem como a
análise de tráfego em si e o sistema gerenciador de banco de dados SQL Server
2008.
No segundo capítulo é descrita a avaliação de desempenho de sistemas
computacionais e como elaborar um planejamento de experimento.
No terceiro capítulo é apresentado o desenvolvimento do projeto com a
descrição do ambiente de testes e o planejamento dos experimentos, a metodologia
adotada e os resultados esperados.
No quarto capítulo são expostos os resultados obtidos e elaborada uma
discussão com base nos valores e gráficos gerados sobre os resultados dos
experimentos.
Por fim são dispostas as conclusões sobre o trabalho.
18
1 FUNDAMENTAÇÃO TEÓRICA
1.1 BANCO DE DADOS DISTRIBUÍDOS
Banco de Dados Distribuídos, segundo Bell e Grimson (1992, p. 44), "[...]
pode ser definido como uma coleção logicamente integrada de dados distribuídos
que é distribuída fisicamente através dos nós de uma rede de computadores".
De acordo com Shibayama (2004, p. 13), “[...] banco de dados distribuído é
definido como uma coleção de vários bancos logicamente inter-relacionados
(integração lógica significa que qualquer nó tem acesso potencial a todo o banco de
dados), distribuídos ao longo de um sistema de redes de computadores [...]”.
Segundo Pukdesree et al (2010, p. 01), "as informações contidas em um
ambiente de dados distribuídos são decompostas em pequenos pedaços e, em
seguida,
distribuídas para
serem
armazenadas
em
vários computadores”.
Reforçando esta informação, Elmasri e Navathe (2005) pontuam que "sistemas de
computação distribuídos dividem um problema grande e intratável em partes
menores e os resolvem eficientemente de maneira coordenada".
Em sistemas de banco de dados distribuídos existem dois tipos de
transações: as locais e as globais. Nas transações locais os dados acessados são
aqueles que estão no próprio computador em que a requisição foi feita. Já nas
globais, os dados acessados não estão no computador de onde saiu a requisição,
mas sim em um ou vários que compõem a rede de computadores deste sistema
(SILBERSCHATZ et al, 2006)
De acordo com Banerjee et al (1993), o aumento de capacidade ou largura de
banda das redes de computadores ocasionou avanços nos estudos em sistemas de
banco de dados distribuídos.
Existem várias vantagens para a utilização de banco de dados distribuídos.
Dentre
estes
estão
disponibilidade,
autonomia,
confiabilidade,
controle
e
compartilhamento de dados.
Os conceitos de autonomia e compartilhamento, segundo Silberschatz et al
(2006), são:

Compartilhamento de dados: um usuário consegue acessar os dados
que estão em outros computadores da rede;
19

Autonomia: refere-se à distribuição do controle sobre os dados
armazenados localmente. Isso quer dizer que existe um administrador
de banco de dados global, responsável pelo sistema inteiro e existem
os administradores de banco de dados locais, que possuem graus de
autonomia local diferenciados entre eles.
Já sobre a disponibilidade de um sistema distribuído, Tanenbaum e Steen
(2008, p. 02) dizem:
[...] um sistema distribuído estará continuamente disponível, embora
algumas partes possam estar temporariamente avariadas. Usuários e
aplicações não devem perceber quais são as partes que estão sendo
substituídas ou consertadas, ou quais são as novas partes
adicionadas para atender a mais usuários ou aplicações.
Para gerenciar um banco de dados distribuídos existem sistemas de
gerenciamento de banco de dados distribuídos (SGBDD) que tornam a distribuição
de dados transparente para o usuário (Shibayama, 2004). De acordo com Elmasri e
Navathe (2005), o usuário deste tipo de banco de dados não sabe onde estão
fisicamente os dados requisitados ou onde ficarão armazenados os dados enviados
por este, devido a essa característica de transparência de distribuição.
Processamento distribuído, porém, possui suas desvantagens, dentre as
quais se destacam os custos, que são maiores, e o desenvolvimento, que é mais
demorado, pois coordenar e controlar os dados são tarefas mais árduas. De acordo
com Silberschatz et al (2006, p. 538), deve-se também tomar cuidado com a
atomicidade das transações, pois “[...] uma transação executada por dois
computadores, em uma ela pode confirmar algo e em outra ela pode abortar,
ocasionando um estado inconsistente”.
Com relação aos tipos de redes, existem duas: redes locais e redes remotas.
Nas locais, os computadores estão localizados fisicamente próximos, podendo estar
localizados em um mesmo prédio ou em prédios próximos. Já nas remotas, os nós
estão geograficamente separados por grandes distâncias (ELMASRI; NAVATHE,
2005). A comunicação em banco de dados distribuídos é melhor detalhada no subtópico 1.5 – Comunicação em BDD.
1.2 ARQUITETURA DE BANCO DE DADOS DISTRIBUÍDOS
20
Silberschatz et al (2006) dizem que um sistema distribuído é formado por nós
ou hosts interligados, por exemplo, por redes, onde os dados são armazenados de
forma replicada ou fragmentada nesses nós, e que nesse tipo de sistema não há o
compartilhamento de memória principal ou discos.
Sanches (2005) define a arquitetura de banco de dados distribuídos da
seguinte maneira:
As informações estão distribuídas em diversos setores, os quais
cada um destes atua como no sistema cliente-servidor, ou seja, o
servidor executa as consultas nos sistemas de gerenciamento de
banco de dados e retorna os resultados ao cliente, porém as
consultas vindas dos aplicativos são feitas para qualquer servidor
indistintamente.
O sistema de gerenciamento de banco de dados deste tipo é baseado na
arquitetura ANSI-SPARC (American National Standards Institute-Standards Planning
and Requirements Committee), que define uma arquitetura em três níveis
independentes: interno, conceitual e externo.
O nível interno é o que mais se aproxima do armazenamento físico dos dados
onde, segundo Elmasri e Navathe (2005, p. 22), “descreve detalhes complexos de
armazenamento de dados e caminhos de acesso ao banco de dados.”
O nível externo ou lógico é o nível mais alto, sendo mais próximo dos
usuários, onde Elmasri e Navathe (2005, p. 23) colocam que este “[...] descreve a
parte do banco de dados que um dado grupo de usuários tem interesse e oculta o
restante do banco de dados desse grupo”. De acordo com Tanenbaum e Steen
(2008, p. 02), “o nível mais alto é composto por usuários e aplicações”.
Por fim, o nível conceitual ou lógico comunitário ou simplesmente indireto, é o
nível intermediário entre os níveis interno e externo.
1.3 BANCOS DE DADOS HOMOGÊNEOS E HETEROGÊNEOS
Bancos de dados distribuídos são classificados em dois tipos: homogêneos e
heterogêneos.
Nos bancos de dados homogêneos, todos os computadores utilizam os
mesmos SGBDs de mesmo fabricante.
Casanova e Moura (1999, p.03) exprimem que “um sistema de gerenciamento
de banco de dados distribuídos é homogêneo se todos os seus SGBDs locais
21
oferecerem interfaces idênticas ou, pelo menos, da mesma família; fornecem os
mesmos serviços aos usuários em diferentes nós”.
Ainda sobre um sistema de banco de dados distribuído homogêneo,
Silberschatz et al (2006, p. 561) dizem que “todos os sites possuem software de
sistema de gerenciamento de banco de dados idêntico, conhecem um ao outro e
concordam em cooperar nas solicitações dos usuários do processamento”.
A seguir uma ilustração da arquitetura de um sistema de gerenciamento de
banco de dados distribuídos (Figura 1.1). Baseando-se nessa figura, Bell e Grimson
(1992, p. 45) afirmam que em um SGBDD “[...] não existem usuários locais, todos
acessam a base de dados através de uma interface global”.
Figura 1.1 – Arquitetura de um SGBDD homogêneo
Fonte: Bell; Grimson, 1992, p.46
Nos bancos de dados distribuídos heterogêneos, os sistemas gerenciadores
utilizados nos computadores são diferentes, podendo “ser baseados no mesmo
modelo de dados (ORACLE, por exemplo) ou em modelo de dados diferentes
(relacional, hierárquico ou rede).” (BELL; GRIMSON, 1992, p. 52)
Complementando essa informação, Silberschatz et al (2006) ainda afirmam
que os computadores que compõem o sistema distribuído podem não estar cientes
da existência dos outros deste mesmo sistema e, ao contrário da contribuição nos
22
sistemas
homogêneos,
aqui
pode
ocorrer
uma
cooperação
limitada
no
processamento de transações. Bell e Grimson (1992, p. 52) dizem que “tais
computadores podem possuir diferentes hardwares, sistemas operacionais dos mais
variados e diferentes protocolos de rede”.
Silberschatz et al (2006) afirmam que para a manipulação dos dados em um
banco de dados heterogêneo existe a necessidade de uma camada de software
adicional conhecida como middleware, a qual, ilusoriamente, integra a lógica de
banco de dados diferentes neste tipo de sistema, sem a necessidade de haver a
integração física dessa base de dados.
Figura 1.2 – Arquitetura de um SGBDD heterogêneo
Fonte: Bell; Grimson, 1992, p.49
Existem usuários locais e globais neste tipo de sistema. De acordo com Bell e
Grimson (1992, p. 48), SBDD heterogêneo “integra recursos de dados heterogêneos
pré-existentes, embora sistemas homogêneos possam ser adequados também e
que uma importante característica deste sistema é que os usuários locais continuam
acessando suas bases de dados locais sem afetar a existência da multibase de
dados”, como disposto na Figura 1.2.
23
1.4 TÉCNICAS DE ARMAZENAMENTO DE DADOS DISTRIBUÍDOS
Com o uso de banco de dados distribuídos, existem duas formas para
armazenar dados no banco. Estas são: replicação e fragmentação, com suas
variações. Tais técnicas são descritas nos sub-tópicos a seguir.
1.4.1 Replicação
De acordo com Silberchatz et al (2006, p.562), a técnica de replicação ocorre
quando "o sistema mantém várias réplicas (cópias) idênticas da relação e armazena
cada uma em um site (computador) diferente." Partindo deste princípio, utilizando-se
replicação aumenta-se a disponibilidade e o paralelismo, ou seja, referente a
disponibilidade, caso um computador que compõem o sistema distribuído sofra
algum problema, as informações requeridas podem ser obtidas em outro
computador deste tipo de sistema. Já em relação ao paralelismo, consultas podem
ser processadas em vários computadores e a informação necessária pode ser obtida
no site no qual a consulta está sendo executada, diminuindo assim o tráfego de
dados entre os sites. (SILBERCHATZ et al, 2006)
Esta técnica privilegia operações de leitura, mas tem problemas em
operações de escrita, pois as atualizações devem ser feitas em todas as replicações
existentes.
De acordo com Siqueira (2012), sobre atualizações de réplicas, o mesmo diz
que estas podem ocorrer de três formas: instantâneo (snapshot), incremental e
transacional. Sobre snapshot, as cópias das tabelas são feitas de forma completa,
tendo ou não atualizações periódicas. Já sobre incremental, a transferência dos
dados alterados são feitos em um horário programado. Por fim, sobre transacional,
as atualizações são feitas instantaneamente nas réplicas, ou seja, no momento de
sua modificação.
1.4.2 Fragmentação
Fragmentação ocorre quando uma tabela é dividida em vários fragmentos.
Sobre fragmentação, Silberchatz et al (2006, p.562) dizem que "estes fragmentos
contém informações suficientes para permitir a reconstrução da relação original."
24
Existem dois tipos básicos de fragmentação: a horizontal e a vertical.
Sobre a horizontal, Mesquita (1998, p.22) diz que este tipo de fragmentação
"consiste no particionamento das tuplas de uma relação global em subconjuntos."
Cada tupla desta relação deve pertencer a pelo menos um dos servidores e para
que a relação completa seja obtida, faz-se necessário a união destes fragmentos.
A Figura 1.3 evidência um exemplo deste tipo de fragmentação, levando em
consideração a cidade e os dados a ela referentes.
Figura 1.3 – Fragmentação horizontal
Fonte: elaborado pelo autor
Ainda sobre fragmentação horizontal, Silberchatz et al (2006) dizem que esse
tipo de fragmentação é bastante usada para manter tuplas em sites nos quais elas
são mais utilizadas, para que ocorra a diminuição de tráfego de dados.
Sobre fragmentação vertical, Shibayama (2004) a define como a divisão
vertical de uma relação, através de colunas, em que um fragmento vertical de uma
relação mantém apenas alguns atributos desta relação.
Figura 1.4 – Fragmentação vertical
Fonte: elaborado pelo autor
25
Complementando essa informação, Mesquita (1998, p.23) diz que a vertical “é
realizada considerando-se que os atributos a serem agrupados têm características
desejáveis em comum.”
A Figura 1.4 demonstra como este tipo de fragmentação ocorre, considerando
a mesma relação inteira da Figura 1.3.
1.4.3 Fragmentação Mista
De acordo com Silberchatz et al (1996), fragmentações horizontal e vertical
podem ser aplicadas, juntamente, sobre um mesmo esquema.
Fragmentação mista é um tipo de fragmentação onde os fragmentos
são resultantes da aplicação de operações de fragmentos sobre
fragmentos, e não sobre relações globais. Estas operações podem
ser aplicadas recursivamente, contanto que as regras de
fragmentação sejam seguidas. (MESQUITA, 1998, p.24)
Ainda sobre fragmentação mista, Mesquita (1998) diz que esta pode ser
representada por uma árvore de fragmentação, exemplificada na Figura 1.5, na qual
a raiz é representada pela relação EMP. Tal relação é fragmentada, verticalmente,
em duas partes. Desta fragmentação é constituído o nó folha EMP 2. A outra parte
sofre fragmentação horizontal, gerando outros três nós folhas: EMP3, EMP4 e EMP5.
Figura 1.5 – Fragmentação mista
Fonte: Mesquita, 1998, p.26
1.5 COMUNICAÇÃO EM BANCO DE DADOS DISTRIBUÍDOS
Em um ambiente de banco de dados distribuídos, os computadores são
conectados de tal maneira que pareçam como se fossem somente um computador
com um desempenho bem mais elevado do que se tais computadores estivessem
trabalhando de forma isolada (PUKDESREE et al, 2010).
De acordo com Siqueira (2012), o tempo de comunicação pela rede é um
fator que pesa diretamente em um sistema distribuído.
26
Em um banco de dados distribuído existem dois tipos básicos de redes de
comunicação: as locais e as remotas.
De acordo com Silberschatz et al (2006), as redes locais (LANs – Local Area
Networks) são normalmente utilizadas em pequenos ambientes tais como
departamentos dentro de uma mesma empresa. Com o surgimento deste tipo de
conexão, verificou-se que para muitas empresas era mais barato ter um tipo de rede
assim, com pequenos computadores interligados, cada qual com suas aplicações,
do que um sistema grande. Ainda mais que neste tipo de rede, a comunicação é
mais rápida e com uma taxa de erros menor, se comparada a uma rede remota.
De acordo com Kurose e Ross (2006, p. 347), “[...] a velocidade de
transmissão da maioria das LANs é muito alta”. Em algumas redes mais antigas, a
velocidade era de 10Mbps. Atualmente a de 100Mbps tornou-se comum e tem-se
velocidades na ordem de 1Gbps e 10Gbps.
Já
as
redes
remotas
(WANs
–
Wide
Area
Networks)
ou
redes
geograficamente distribuídas abrangem uma grande área geográfica, tais como
estado ou país. A rede remota mais conhecida nos dias de hoje é a Internet.
De acordo com CISCO (2012a), “as WANs geralmente utilizam meios de
transmissão fornecidos por prestadoras de serviços de telecomunicações tal como
uma companhia telefônica“.
Ainda de acordo com CISCO (2012a, p.03), as WANs são utilizadas para
conectar diversas redes locais e “uma WAN opera na camada física e na camada de
enlace do modelo de referência OSI.”
Tanenbaum (2003) diz que os computadores que compõem este tipo de rede
são conectados por uma sub-rede de comunicação, ou seja, uma sub-rede. Essa
sub-rede é composta por dois componentes diferentes: linhas de transmissão e
elementos de comutação. “As linha de transmissão transportam os bits entre as
máquinas”. Já os elementos de comutação, estes “são computadores especializados
que conectam três ou mais linhas de transmissão onde, quando dados chegam a
uma linha de entrada, o elemento de comutação deve escolher uma linha de saída
para encaminhá-los.” (Tanenbaum, 2003, p. 31)
CISCO (2012a, p. 04) diz que WANs “permitem a opção por conexões seriais
de baixo custo e de baixa velocidade, mas conexões de altas velocidades podem ser
obtidas por, por exemplo, uma conexão em fibra ótica, porém com um custo mais
alto”.
27
Com relação a aplicações, de acordo com Tanenbaum e Steen (2007), devido
a necessidade de haver comunicação entre diferentes aplicações, diferentes tipos de
comunicação foram gerados. “A principal idéia era que aplicações existentes
pudessem trocar informações diretamente [...]” (TANENBAUM; STEEN, 2008, p. 14).
Dessa necessidade nasceu um modelo chamado middleware de comunicação.
Partindo desse princípio, o Open Group1 desenvolveu “uma tecnologia de
software a qual permite a criação de aplicações distribuídas utilizando sistemas
heterogêneos chamada Ambiente de Computação Distribuída (DCE – Distributed
Computing Environment)” (GOULART, 2002, p. 30). Tem-se incluídos nessa
tecnologia “serviços de software que residem acima do sistema operacional,
fornecendo interface (middleware) para os recursos de baixo nível do sistema
operacional e recursos de rede.” (GOULART, 2002, p. 31)
Com a utilização desses serviços, dados e processamento são distribuídos
através de toda uma organização.
Dentre os serviços DCE, existe a RPC (Remote Procedure Call - Chamada
Remota de Procedimento) que, segundo Tanenbaum e Steen (2007, p. 14), “[...] um
componente de aplicação pode efetivamente enviar uma requisição a outro
componente de aplicação executando uma chamada de procedimento local [...]”.
Assim “[...] uma aplicação pode efetivamente acessar recursos distribuídos através
da rede.” (GOULART, 2002, p. 31)
Sobre o funcionamento da RPC, Tanenbaum e Steen (2007) descrevem que
uma chamada de procedimento realizada por uma aplicação empacota os
parâmetros do procedimento como uma mensagem e a envia ao servidor. O
servidor, por sua vez, recebe essa mensagem, obtêm os parâmetros da mesma e
gera um resultado, enviando este à aplicação invocadora como uma mensagem de
resposta.
Com a crescente utilização da tecnologia de objeto criou-se as RMI (Remote
Method Invocation - Invocações de Método Remoto), que permite que objetos em
computadores diferentes se comuniquem via chamadas de método remoto. “Essas
1
The Open Group é um consórcio global que possibilita a realização dos objetivos de negócio através de standards de
TI. Com mais de 350 organizações como membros, The Open Group tem várias categorias de afiliação que
compreendem todos os setores da comunidade de TI – clientes, fornecedores de sistemas e soluções, vendedores de
ferramentas, integradores e consultores, bem como acadêmicos e pesquisadores que trabalham em conjunto focando
na construção de tecnologia de sistemas abertos. (THE OPEN GROUP, 2012).
28
chamadas parecem invocar métodos em um objeto no mesmo programa, mas na
realidade elas têm recursos de rede integrados que comunicam as chamadas de
método para outro objeto em um computador separado.” (Deitel; Deitel, 2005, p.
929)
Tanenbaum e Steen (2007) afirmam que RMI possui o mesmo princípio de
funcionalidade que uma RPC, entretanto, ao invés de funcionar com aplicações,
funciona com objetos.
Estes tipos de middlewares possuem a desvantagem de que no ato da
comunicação, tanto o invocador quanto o servidor devem estar ligados e em
funcionamento, alem do que ambos devem saber como interagir um com o outro,
causando um forte acoplamento. Devido a isto, foi criado o middleware orientado a
mensagem (MOM – Message-oriented Middleware). (TANENBAUM; STEEN, 2007).
Tanenbaum e Steen (2007, p. 14) resumem o funcionamento de MOM da
seguinte maneira:
[...] as aplicações apenas enviam mensagens a pontos lógicos de
contato [...]. Da mesma forma, as aplicações podem indicar seu
interesse por um tipo específico de mensagem, após o que o
middleware de comunicação cuidará para que todas as mensagens
sejam entregues a essas aplicações.
Os serviços de enfileiramento de mensagens têm o conceito básico de que
aplicações se comunicam retirando e colocando mensagens em filas específicas.
Estes tipos de serviços “oferecem a capacidade de armazenamento de médio prazo
para as mensagens trocadas, sem a necessidade de que o remetente ou o receptor
estejam ativos durante a transmissão da mesma.” (TANENBAUM; STEEN, 2007, p.
87)
Existe também a interface de passagem de mensagens (MPI – MessagePassing Interface), que é uma biblioteca de troca de mensagens projetada para
aplicações paralelas de alto desempenho, redes heterogêneas, ambientes de
memória distribuída e NOWs (network of Workstations – rede de estações de
trabalho). Essa plataforma nasceu da necessidade de criação de uma plataforma
padrão para troca de mensagens que fosse independente do hardware.
Por ser projetada para aplicações paralelas, a comunicação é transiente, o
que significa que, enquanto remetente e receptor estiverem em atividade, a
mensagem é armazenada no sistema.
29
Segundo Tanenbaum e Steen (2007, p. 86), “A MPI considera que a
comunicação ocorre dentro de um grupo conhecido de processos”, onde cada grupo
recebe um identificador e cada processo dentro de um grupo recebe um
identificador. O par formado pelo id do grupo e id de um processo (groupID,
processID) identifica a fonte ou o destinatário de uma mensagem. “Vários grupos de
processos [...] poderão estar envolvidos em um serviço de computação”, podendo
estar em execução simultaneamente. (TANENBAUM; STEEN, 2007, p. 86)
Outro tópico importante sobre comunicação em sistemas distribuídos é o
multicast (transmissões do tipo um-para-muitos). Conforme Tanenbaum e Steen
(2007), a idéia básica do multicasting no nível de aplicação é que os computadores
se organizem em uma rede de sobreposição a qual é utilizada para distribuir
informações para os seus membros. Porém, o roteamento na rede de sobreposição
pode ser menos eficiente que o roteamento no nível de rede, pois os computadores
na rede podem transpor vários enlaces físicos.
Sobre
multicast
existem
duas
abordagens:
ALM
(Application
Level
Multicasting ou multicasting na camada de aplicação) e Protocolos Epidêmicos.
ALM utiliza uma rede virtual e, segundo Tanenbaum e Steen (2007), existem
duas definições essenciais para este tipo de abordagem. Na primeira, os nós se
organizam na forma de uma árvore, no qual há um único caminho entre cada par de
nós. Na segunda, os nós se organizam na forma de uma malha, na qual cada nó
terá vários vizinhos, no que resulta em vários caminhos entre cada par de nós. Esta
última abordagem oferece maior confiança na transmissão das informações, pois
aqui, caso haja um interrupção em uma conexão, tais informações podem atingir o
seu destino utilizando-se de outro caminho.
Sobre protocolos epidêmicos, Tanenbaum e Steen (2007, p. 102) dizem que
“o principal objetivo deste tipo de protocolo é disseminar informações rapidamente
entre um grande conjunto de nós usando somente informações locais, ou seja, não
há nenhum componente central que coordena essa propagação de informações.”
Aqui existem três tipos de nós. O nó infectado, que é considerado assim se
este contiver dados os quais está propenso a emitir para os outros nós. O nó
suscetível é o nó que não sabe da existência destes dados. Finalmente, o nó
removido, que é o nó já atualizado, mas que não é disposto ou não é capaz de
divulgar os dados. (TANENBAUM; STEEN, 2007).
30
Uma das várias formas deste tipo de protocolo é a propagação de boato
(gossiping). Sobre o seu funcionamento, Tanenbaum e Steen (2007, p. 103) o
descrevem da seguinte maneira:
Se o nó P acabou de ser atualizado com o item de dado x, ele
contata outro nó arbitrário Q e tenta enviar a atualização a Q.
Contudo, é possível que Q já tenha sido atualizado por um outro nó.
Nesse caso, P pode perder o interesse em levar adiante a
propagação da atualização [...].
Analisando esta descrição, percebe-se que alguns nós poderão não receber
as atualizações justamente porque P talvez perca o interesse em levar uma
atualização adiante.
1.6 ANÁLISE DE TRÁFEGO DE REDE
A análise de fluxo de dados é uma técnica para coleta de informações sobre o
possível conjunto de valores calculados em vários pontos em um programa de
computador.
De acordo com Mark Meiss (2004), “fluxo de rede consiste de um ou mais
pacotes enviados de uma fonte (IP, porta) para um destino (IP, porta) usando um
certo protocolo de transporte durante algum intervalo de tempo.”
A análise de tráfego de rede visa analisar os dados que trafegam em uma
rede com o intuito principal de aperfeiçoar a utilização da largura da banda.
Potter (2008) define que uma análise de rede, em sua essência, da
verificação de evidências da rede, procura determinar informações em relação à
segurança, desempenho, integridade, disponibilidade, entre outros fatores relativos a
esta rede.
Segundo Potter (2008, p.07), “uma análise envolve basicamente a coleta e
armazenamento de dados; disseminação e excitação dos dados na rede e, por fim,
uma análise dos resultados destes na rede.”
Sobre a representação de um fluxo de dados como um vetor, Lucas (2010, p.
10) diz o seguinte:
Um vetor de fluxo é um resumo das informações sobre um fluxo,
contendo a gravação de quais hosts comunicaram entre si, quando
esta comunicação ocorreu, como o tráfego foi transmitido e outras
informações básicas sobre a conversação na rede.
31
Existem vários dispositivos para a conexão de redes. Dispositivos como hubs,
roteadores e switches atuam nas três primeiras camadas do modelo OSI, (Open
System Interconnection) transmitindo dados, cada um da sua maneira.
No início não existia um sistema de gerenciamento de redes, ou seja, as
decisões do roteamento de pacotes eram feitas, geralmente, pelo próprio hardware.
Porém, por volta de 1996, a CISCO inventou um método pelo qual as decisões
sobre os roteamentos eram instruídas por fluxos. Desta maneira foi possível obter
informações sobre o valor do fluxo que trafegava na rede e disponibilizar as mesmas
para um sistema-administrador chamado NetFlow. (LUCAS, 2010).
1.7 FERRAMENTAS DE ANÁLISE DE TRÁFEGO DE REDE E PUTTY
Sobre sistema de análise de fluxo, Lucas (2010, p. 11) diz que este tipo de
sistema “coleta informações de fluxo e dá ao gerenciador do sistema de análise
opções de funcionalidades como as de pesquisa, filtros e imprime para este usuário
do sistema as informações do fluxo.”
Um sistema de gerenciamento de fluxo básico é composto por três
componentes: um sensor, um coletor e um sistema que relata as informações
colhidas. (LUCAS, 2010)
“Sensores podem ser roteadores, switches, firewall com capacidade integrada
para exportar fluxo. Sensores também podem ser um software capaz de ouvir o
tráfego que ocorre na internet”. (LUCAS, 2010, p. 11)
Conhecidos também como sondas, os sensores tem como funcionalidade
ouvir o tráfego na rede e coletar dados da mesma. (LUCAS, 2010)
Lucas (2010) define o coletor como um software que recebe as gravações do
sensor e os armazena em um disco.
Por fim, o sistema de comunicação é o responsável por ler os arquivos
gerados pelo coletor e transpô-los em relatórios os quais os usuários deste sistema
consigam compreender tais informações. (LUCAS, 2010)
Várias são as ferramentas de gerenciamento (administração) de fluxo de
dados existentes no mercado, dentre as quais se encontram Cisco IOS NetFlow,
Zabbix, ntop, etc.
Sobre Cisco IOS NetFlow, o mesmo é descrito por CISCO (2012) da seguinte
maneira:
32
CISCO IOS NetFlow fornece de forma eficiente um conjunto
essencial de serviços para aplicações IP, incluindo contagem de
tráfego de rede, planejamento e segurança de rede, serviço de
monitoramento de permissões e de rede. NetFlow fornece
informações sobre usuários e aplicações de rede, horários de pico de
utilização e roteamento de tráfego.
Sobre o software Zabbix, Zabbix (2012) o descreve da seguinte maneira:
Zabbix é um software que monitora vários parâmetros de uma rede;
a saúde e a integridade dos servidores. Zabbix usa um mecanismo
de notificação flexível que permite aos usuários configurar e-mail
alertas baseados em praticamente todos os eventos. Isto permite
uma reação rápida aos problemas do servidor. Zabbix oferece
relatórios e visualização de dados com excelentes características
baseado nos dados armazenados. Isso faz do Zabbix ideal para o
planejamento de capacidade.
1.7.1 Putty
Putty é definido como “uma implementação livre de protocolos de rede Telnet
e SSH (Secure Shell) para plataformas Windows e Unix, junto com um emulador de
terminal xterm. É escrito e mantido principalmente por Simon Tatham.” (PUTTY,
2013)
Basicamente este software é utilizado para se faça conexões com servidores
remotos fazendo uso de protocolos de rede SSH e Telnet. Então, este será utilizado
para acesso ao sistema de gerenciamento do switch, em seu modo texto.
1.8 VIRTUALIZAÇÃO
Sobre virtualização, RedHat (2012, p.01) diz que a “virtualização permite que
várias instâncias do sistema operacional sejam executadas simultaneamente em um
computador. É uma forma de abstrair o hardware de um único sistema operacional.”
Complementando essa informação, IBM Global Education (2007, p.03) diz que “um
computador virtual é uma representação lógica de um computador em software.”
Conforme RedHat (2012), os sistemas operacionais virtualizados são
controlados e monitorados por um VMM (Virtual Machine Monitor), conhecidos
também por hypervisor.
IBM Global Education (2007) afirma que em um ambiente de virtualização, um
computador físico, através da execução de softwares, obtém recursos desta
33
máquina física para que estes possam ser utilizados entre os vários computadores
virtuais que compõem este ambiente virtual. RedHat (2012) fala que nos sistemas
virtualizados (convidados), para que estes utilizem apenas os recursos necessários
para sua execução, o controle é feito por um operador que consegue controlar o uso
da CPU, armazenamento, memória e outros recursos desse sistema convidado.
IBM Global Education (2007) afirma que cada máquina virtual pode rodar
diferente sistema operacional de outras máquinas virtuais que estão instaladas em
um mesmo computador físico.
As formas de virtualização podem ser desktop e servidor. A virtualização de
desktop pode ser utilizada para estudos e testes sem que haja alteração nos
registros do sistema operacional da máquina física. Já em relação a virtualização de
servidores, IBM Grobal Education (2007, p.04) afirma que este tipo de virtualização
“permite que um servidor físico possa ser particionado para rodar múltiplos
servidores virtuais seguros.” Ainda sobre virtualização de servidores, IBM Global
Education (2007) diz que utilizando-se esta técnica reduz-se o custo de aquisição de
novas máquinas.
Atualmente existem várias ferramentas para a virtualização de computadores.
Dentre elas, as mais conhecidas são VirtualBox e VMware. Para a elaboração e
execução deste projeto, foi utilizada a ferramenta VMware.
1.8.1 VMware
Como ferramenta de virtualização, a VMware possui uma variedade de
produtos. Dentre estes produtos estão VMware Workstation, VMware Server e
VMware Player.
O VMware Workstation encontra-se em sua nona versão e é voltado para o
uso em desktops. Este produto é pago, mas pode ser usado gratuitamente por um
período, para testes. Ele permite que as várias máquina virtuais instaladas em um
computador pessoal possam interagir umas com as outras através da utilização dos
recursos de rede que o VMware Workstation traz consigo. Alem dos recursos de
rede, a Workstation também inclui recursos de dispositivos e de compartilhamento
de arquivos. A instalação pode ser feita em máquinas que possuam tanto arquitetura
de 32 bits quanto de 64 bits.
34
O VMware Server é um produto gratuito que foi descontinuado em 2011, ou
seja, não existe mais suporte, por parte do desenvolvedor, para este produto. A
dona do produto informou que o suporte deste terminou no dia 30 de junho de 2011
e que os usuários são livres para usar o mesmo. Porém, VMware indica que os
usuários devem migrar para outros produtos dessa desenvolvedora, que possuem
suporte ativo.
O VMware Server oferece virtualização de servidores com o intuito de otimizar
a utilização de suas máquinas da área de TI.
O terceiro produto aqui citado, de nome VMware Player, é gratuito para uso
pessoal e permite a fácil criação e implementação de máquinas virtuais em um
computador. Segundo VMware (2012c), “VMware Player é a maneira mais fácil de
executar diversos sistemas operacionais ao mesmo tempo em seu PC.” Esta versão
também tem sua versão para uso comercial.
1.9 FERRAMENTAS DE TESTES
1.9.1 JMeter
“A aplicação desktop Apache JMeter é um software de código aberto,
desenvolvido 100% em Java, projetado para carregar testes funcionais de
comportamento e medição de desempenho.” (JMETER, 2012) Ainda de acordo com
o desenvolvedor, JMeter foi inicialmente elaborado para testar aplicações web, mas
atualmente pode ser utilizado para outras funções de testes.
“A aplicação pode ser usada para testar desempenho de recursos dinâmicos
e estáticos” (JMETER, 2012). De acordo com JMETER, a aplicação pode avaliar e
testar desempenho de recursos de diferentes tipos de servidores, tais como: em
relação a Web – HTTP e HTTPS, SOAP (Simple Object Access Protocol), Base de
dados via JDBC, LDAP (Lightweight Directory Access Protocol), entre outros.
JMeter pode ser usado para testes de cargas pesadas em servidores, rede ou
objetos, para testar a força destes ou para analisar o desempenho do sistema como
um todo, com o uso de diferentes tipos de carga. (JMETER, 2012).
1.10 MICROSOFT SQL SERVER
35
SQL Server é um sistema gerenciador de banco de dados utilizado por uma
grande variedade de profissionais para realizar diferentes tipos de funções.
“SQL Server 2008, versão 10, é uma evolução natural do SQL Server,
acrescentando gerenciamento baseado em políticas, compreensão de dados,
administrador de recursos, alem de novos tipos de dados relacionais.” (NIELSEN et
al, 2009, p.13).
SQL Server é muitas vezes necessário em todas as organizações
nacionais ou globais, e replicação SQL Server é frequentemente
utilizada para mover os dados. Serviços de replicação podem
movimentar transações one-way ou atualizações merge de múltiplas
localidades, utilizando uma topologia publicador-distribuidorassinante. (NIELSEN et al, 2009, p.11)
De acordo com Nielsen et al (2009), os servidores da topologia de replicação
são de três tipos:

Publicador: servidor de origem;

Distribuidor: em replicações transacionais e replicações peer-to-peer, o
distribuidor é o local onde as mudanças são armazenadas até as
mesmas serem replicadas para o servidor de destino. Já para
replicação merge, o distribuidor é apenas um repositório;

Subscritor: servidor de destino.
1.10.1 Tipos de replicação
Nielsen et al (2009) dizem que o SQL Server 2008 oferece cinco tipos de
replicação, cada qual atendendo a um determinado objetivo. Tais tipos são:
replicação snapshot, replicação transacional, publicação Oracle, replicação peer-topeer e replicação merge.
1.10.1.1 Replicação Snapshot
Na replicação snapshot, uma imagem dos objetos do banco de dados é feita
como se fosse uma foto tirada em um determinado momento e esta imagem é
copiada do servidor de origem para o servidor de destino. Conforme Nielsen et al
(2009), a geração e implantação de imagens podem ser agendadas.
36
Figura 1.6 – Replicação Snapshot
Fonte: Lima, 2011, p.28
O SQL Server utiliza alguns componentes para implementar esse
tipo de replicação. Um dos componentes é o Snapshot Agent, que é
responsável por preparar os arquivos da replicação, armazená-los na
pasta de distribuição e registrar uma nova replicação no banco de
dados do Distribuidor. A pasta de distribuição é escolhida assim que
é configurado o Distribuidor, podendo ser uma pasta local ou remota.
Geralmente, os Snapshots são gerados e replicados assim que a
publicação é assinada. Em seguida, um outro serviço é acionado, o
Distribution Agent. Esse serviço também executa no Distribuidor e é
responsável por propagar a distribuição em todos os Assinantes.
(LIMA, 2011, p.27)
Conforme MSDN (2013c), a replicação de instantâneo pode ser usada de
forma isolada, porem, o processo de instantâneo, o qual MSDN (2013c) diz que é “o
37
processo que cria uma cópia de todos os objetos e dados especificados por uma
publicação” é regularmente utilizado para fornecer “o conjunto inicial dos dados e
dos objetos do banco de dados para publicações de mesclagem e transacionais”
(MSDN, 2013c)
Este tipo de replicação é mais bem utilizada quando a maioria dos dados
raramente mudam. Quando isto ocorre, a mudança ocorre ao mesmo tempo em
todas as replicações. (NIELSEN et al., 2009)
1.10.1.2 Replicação Transacional
Conforme Nielsen et al (2009), neste tipo de replicação, as transações que
ocorrem no servidor de origem são capturadas de forma assíncrona e armazenadas
em um repositório, e então são aplicadas, também de forma assíncrona, no servidor
de destino.
Figura 1.7 – Replicação transacional
Fonte: Lima, 2011, p.30
38
Nielsen et al (2009) dizem que o repositório em que são armazenadas as
transações é chamado de banco de dados de distribuição.
Nessa replicação, o SQL Server utiliza, além dos componentes
Snapshot Agent e Distribution Agent, o componente Log Reader
Agent. O Snapshot agente só é executado quando a assinatura é
iniciada e executa as mesmas operações da replicação Snapshot.
Em seguida o Distribution Agent se encarrega de fazer a distribuição
para todos os Assinantes. Com todos os Assinantes sincronizados, o
serviço Log Reader Agent é acionado. Esse serviço monitora o log
de transações de cada banco de dados configurado para a
replicação Transactional e copia as transações marcadas para
replicação do log de transações no banco de dados de distribuição,
que atua como uma fila confiável para armazenar e avançar. Sempre
que o Log Reader Agent identifica uma nova atualização e armazena
no banco de dados do Distribuidor, essa atualização já pode ser
distribuída pelo Distribution Agent aos Assinantes, de acordo com o
intervalo de tempo que foi configurado no Distribuidor. Os Assinantes
recebem as transações na mesma ordem em que foram aplicados no
Publicador. Se uma assinatura estiver marcada para validação, o
Distribution Agent também verificará se os dados do Publicador e do
Assinante coincidem. A Figura 1.7 demonstra como o Transactional
Replication funciona. (LIMA, 2011, p.29)
No sub-tópico a seguir será disposto como a publicação Oracle funciona e as
suas particularidades de funcionamento.
1.10.1.3 Publicação Oracle
De acordo com Nielse et al (2009), publicação Oracle é uma variação da
replicação transacional, ou seja, ao invés de o servidor origem ser um SQL Server,
este será um servidor Oracle, e as mudanças que ocorrerem são replicadas do
servidor Oracle para o SQL Server. Ainda de acordo com os autores, este tipo de
publicação está disponível somente na versão SQL Server Enterprise Edition e
versões superiores.
1.10.1.4 Publicação peer-to-peer
Este tipo de publicação também é uma variação da replicação transacional e
é usada para replicar dados para um ou mais nós (computadores). Nielsen et al
(2009) dizem que neste tipo de publicação, cada nó pode publicar dados para os nós
que são membros em uma topologia de replicação peer-to-peer. Ainda de acordo
39
com os autores, quando ocorre alguma mudança e um nós está desligado, a
alteração nesse nó será feita quando o mesmo estiver ativo.
As mudanças neste tipo de publicação ocorrem de maneira bi-direcional, ou
seja, alterações feitas em um determinado nó são replicadas para os outros, bem
como este nó recebe as alterações efetuadas nestes outros nós.
Os autores ainda dizem que este tipo de replicação pertence a versão
Enterprise Edition e que é escalável para aproximadamente dez nós.
1.10.1.5 Replicação Merge
A replicação merge é utilizada para mesclar mudanças que ocorrem tanto nos
servidores de destino quanto nos servidores de origem.
Figura 1.8 – Replicação merge
Fonte: Lima, 2011, p.31
40
A replicação to tipo Merge Replication inicia como a replicação to tipo
Transactional, fazendo primeiro uma replicação do tipo Snapshot do
Publicador para os Assinantes, sincronizando todas as bases. A
partir daí, todas as alterações feitas no Publicador passam a ser
rastreadas. Sempre que o Assinante está conectado à rede, as
alterações feitas após a última sincronização são replicadas do
Publicador para o Assinante. A Figura 1.8 demonstra o
funcionamento da Merge Replication.
Essa replicação utiliza o componente Snapshot Agent para criar o
arquivo de instantâneo e o componente Merge Agent para distribuir
as Publicações entre os Assinantes. O Merge Agent mescla as
alterações de dados que ocorrem no Publicador com os dados dos
Assinantes quando os mesmos estão disponíveis. (LIMA, 2011, p.30)
“Com replicação merge, existe uma administradora central para mudanças
que determina quais mudanças serão feitas nas bases de dados.” (NIELSEN et al,
2009, p.816)
Conforme descrito neste capítulo, as replicações fazem uso de alguns
programas chamados agentes. No sub-tópico a seguir serão expostos estes
agentes.
1.10.1.6 Agentes de Replicação
De acordo com MSDN (2013a), “a replicação usa um número de programas
autônomos
chamados
agentes,
para
executar
as
tarefas
associadas
ao
rastreamento de alterações e dados de distribuição.” Ainda segundo MSDN (2013a),
tais agentes rodam como tarefas agendadas sob o Agente SQL Server e que o
Agente SQL Server deve estar rodando para os trabalhos que ainda virão a ser
executados.
Nielsen et al. (2009, p. 816) dizem que para realizar toda a carga de trabalho
requerida na troca de dados entre os vários servidores em uma publicação, a
replicação SQL Server faz uso de três agentes: Snapshot Agent (Agente de
Instantâneo), Distribution Agent (Agente de distribuição) e o Merge Agent (Agente de
mesclagem).
Conforme MSDN (2013a), o agente de instantâneo é “normalmente usado
com todos os tipos de replicação.” Ainda conforme MSDN (2013a), este tipo de
agente é o que “prepara o esquema e os arquivos de dados iniciais das tabelas
publicadas e de outros objetos, armazena os arquivos snapshot e registra as
41
informações sobre a sincronização no banco de dados de distribuição.” Tal agente
roda no distribuidor.
Já o agente de distribuição é “utilizado com a replicação de instantâneo e
replicação transacional” (MSDN, 2013a). Segundo Nielsen et al, (2009, p.816) “usa a
replicação de instantâneo inicialmente no Assinante e utiliza a replicação
transacional para replicar mudanças subseqüentes que ocorrem no publicador para
o subscritor.”
Por fim o agente de mesclagem que, conforme Nielsen et al. (2009, p.817),
“detecta mudanças que ocorreram no publicador e no subscritor desde a última vez
que os agentes rodaram e os mesclam para formar um conjunto consistente em
ambos publicador e subscritor.”
1.10.2 Linked Server
Muitas vezes existe a necessidade de obter dados de uma base de dados que
está em um servidor diferente. Dito isto, com a utilização do Linked Server
(Servidores Vinculados), é possível realizar o acesso a base de dados que não
somente estão em servidores diferentes, como também podem estar fora da
instância do SQL Server, podendo ser outro produto de banco de dados, tal como
ORACLE. (MSDN, 2013b) Complementando esta informação, Nielsen et al. (2009,
p.693) dizem que “um servidor vinculado pode ser um servidor SQL ou qualquer
outra fonte de dados com provedor OLE DB ou drivers ODBC.”
De acordo com MSDN (2013b), os Linked Servers oferecem as seguintes
vantagens:
Capacidade de acesso aos dados de fora do SQL Server.
Capacidade de emitir consultas distribuídas, atualizações, comandos
e transações em fontes de dados heterogêneos. Capacidade de
endereçar de forma semelhante diversas fontes de dados.
MSDN (2013b) informa que um servidor vinculado possui os seguintes
objetos: um provedor OLE DB e uma fonte de dados OLE DB. “Um provedor OLE
DB é uma DLL (Dynamic Link Library – Biblioteca de Vínculo Dinâmico) que
gerencia e interage com uma fonte de dados específica. Uma fonte de dados de
OLE DB identifica o banco de dados específico que pode ser acessado por meio de
OLE DB.”
42
Figura 1.9 – Configuração de Servidores Vinculados
Fonte: MSDN, 2013b
Normalmente, servidores vinculados são usados para manipular
consultas distribuídas. Quando um aplicativo cliente executa uma
consulta distribuída através de um servidor vinculado, o SQL Server
analisa o comando e envia solicitações ao OLE DB. Essa solicitação
de conjunto de linhas pode ser a execução de uma consulta em
relação ao provedor ou a abertura de uma tabela base do provedor.
Para que uma fonte de dados retorne dados através de um servidor
vinculado, seu provedor de OLE DB (DLL) deve estar presente no
mesmo servidor da instância do SQL Server.
Quando é usado um provedor de OLE DB de terceiros, a conta sob a
qual o serviço do SQL Server é executado deve ter permissões de
leitura e execução no diretório e em todos os subdiretórios no qual o
provedor está instalado. (MSDN, 2013)
Este capítulo expôs fundamentações teóricas sobre banco de dados
distribuídos, ferramentas de testes e virtualização, e as ferramentas utilizadas para
implementar o ambiente de testes deste trabalho.
O capítulo seguinte define avaliação de desempenho e como conduzir a
mesma para que problemas futuros sejam evitados. No mesmo capítulo também é
exposto como deve ser realizado o planejamento de experimentos, os tipos de
estratégias para projetos de experimentos, bem como as terminologias e fórmulas
utilizadas neste planejamento.
43
2 AVALIAÇÃO DE DESEMPENHO DE SISTEMAS COMPUTACIONAIS
E PLANEJAMENTO DE EXPERIMENTO
2.1 AVALIAÇÃO DE DESEMPENHO
Desempenho é um critério fundamental na elaboração de um projeto,
aquisição e utilização de um sistema de computador, conforme destaca Jain (1991).
Sobre sistema, o mesmo diz que é uma coleção de hardware, software e
componentes de firmware. Existem duas ferramentas para efetuar a medição de
performance de um sistema de computador: uma utilizada para saturar o sistema
(gerador de carga) e uma outra para medir os resultados (monitor).
Para que uma avaliação de desempenho seja bem sucedida é necessário que
o elaborador dos testes tenha um profundo conhecimento do sistema que será
avaliado, devendo elaborar uma cuidadosa seleção de metodologia, escolher as
ferramentas adequadas e as cargas de trabalho necessárias. (JAIN, 1991)
Os critérios usados para avaliar o desempenho de um sistema são
conhecidos como métricas. O tempo de resposta (tempo para requisitar um serviço)
é um tipo de métrica que pode ser usada para comparar dois sistemas. (JAIN, 1991)
Segundo Jain (1991), o conjunto formado por requisições feitas por usuários
de sistema são chamadas de workloads (cargas de trabalho). As cargas de trabalho
de um sistema de banco de dados consistem de consultas e outras requisições
executadas pelos usuários.
Simplesmente comparar a média dos resultados de um número de
experimentos repetidos não conduz a conclusões corretas, ainda mais se a
variabilidade dos resultados é alta. Variações podem ocorrer caso simulações ou
medições sejam feitas muitas vezes. Tais variações também podem ocorrer de
forma quase imperceptível, o que acaba gerando um resultado diferente para cada
teste. Para evitar estes problemas, o mesmo aconselha que uma técnica de
estatística apropriada deve ser tomada.
Experimentos e simulações devem ser bem elaborados para que o número
máximo de informações seja obtido com o mínimo de esforço. Para que simulações
sejam realizadas corretamente é necessário escolher uma linguagem para estas
simulações, optar por algoritmos para a geração de números aleatórios, decidir o
44
tamanho destas simulações e analisar os resultados gerados por estas simulações.
(JAIN, 1991)
2.1.1 Métodos para evitar problemas em projetos de avaliação de desempenho
Alguns passos podem ser seguidos para evitar erros que são comuns em
projetos de avaliação de desempenho.
Primeiramente deve-se definir objetivos de estudo e sistema. Nessa etapa
deve-se de definir os objetivos do projeto e delimitar limites do sistema. A escolha
dos limites do sistema afeta as métricas adotadas e as cargas de trabalho utilizadas
para comparar os sistemas. Por tal fato é importante que se compreenda os limites
do sistema. Feito isto, uma lista de serviços e resultados que o sistema fornece deve
ser elaborada. Mais tarde serão muito úteis na escolha correta de cargas de trabalho
e métricas.
Deve-se também selecionar as métricas que, segundo Jain (1991), são os
critérios utilizados para comparar desempenho e que estão relacionados à
velocidade, precisão e disponibilidade de serviços.
Uma lista dos parâmetros que vão afetar o desempenho do sistema deve ser
elaborada. Os parâmetros que variam são chamados fatores e os valores destes
fatores são chamados níveis. Neste tipo de seleção é importante considerar as
restrições econômicas, políticas e tecnológicas que existem, bem como incluir as
limitações impostas pelos tomadores de decisões e o tempo para tomar decisões.
Isso aumenta as chances de obter uma solução que seja aceitável.
Escolhe-se dentre as três técnicas de avaliação (medição, simulação e
modelagem analítica), a mais apropriada para que o objetivo seja alcançado.
Seleciona-se cuidadosamente a carga de trabalho para que medições sejam
significativas.
Posteriormente, tendo a lista de fatores e os níveis destes, decide-se a
sequência de experimentos que oferecem o maior número de informações com o
mínimo de esforço.
Por fim, os dados obtidos são analisados e interpretados, gerando resultados
os quais serão expostos.
45
2.1.2 Erros em avaliação de desempenho
De acordo com Filho (2008), uma série de erros podem ocorrer por aqueles
que, no âmbito de conseguirem soluções rápidas, acabam sendo menos cautelosos
e esquecem de alguns cuidados que devem tomar com relação à avaliação.
Segundo Jain (1991), o analista ou o grupo de analistas que irá realizar os
testes e avaliar o desempenho do sistema, antes de fazer qualquer coisa, tal como
elaborar um modelo analítico ou estabelecer a medição de um experimento, deve
entender o sistema e identificar o problema (ou problemas) a serem solucionados.
Desta maneira a metodologia e métricas são escolhidas da forma correta.
Outro erro apontado por Jain (1991) é quando um profissional escolhe de
forma aleatória parâmetros do sistema, fatores, workloads e métricas. Isto acaba por
resultar em conclusões inexatas. O uso da abordagem sistemática, no contexto de
desempenho, consiste na identificação de um conjunto de objetivos, parâmetros do
sistema, métricas, workloads e fatores.
Profissionais também cometem erros quando optam por métricas que podem
ser mais fáceis de ser computadas ou medidas do que aquelas que são realmente
relevantes para a avaliação. De acordo com Jain (1991), a escolha da métrica
correta depende dos serviços fornecidos pelo sistema ou subsistema que estão
sendo modelados.
Quando o responsável pela avaliação do sistema escolhe a carga de trabalho
errada, conclusões erradas são obtidas. A carga de trabalho usada para comparar
dois sistemas deve ser representativa do atual sistema a ser comparado. (JAIN,
1991)
De acordo com Jain (1991), analistas têm preferência por uma dada técnica
de avaliação (medição, simulação e modelagem analítica) que eles usam em todo o
problema de avaliação de desempenho, de acordo com o que será avaliado. O
analista que irá elaborar e projetar a avaliação deve ter um conhecimento básico das
três técnicas, pois o uso de mais de uma técnica pode vir a ocorrer e, com esta
união, problemas que antes não existiam, podem vir a surgir. Existe um número de
fatores que o analista deve considerar na seleção da técnica certa.
Sobre fatores, Jain (1991) diz que estes são parâmetros que sofrem variações
no estudo. Nem todos os parâmetros têm um efeito igual no desempenho. O autor
diz que é importante identificar os parâmetros os quais, se variados, causarão um
46
impacto significativo na performance. A escolha dos fatores deve ser feita com base
em sua importância e não no conhecimento do analista sobre os fatores.
2.2 PLANEJAMENTO DE EXPERIMENTO
“O processo ou técnica estatística empregada com o propósito de determinar
como o comportamento de um sistema pode ser influenciado pelos possíveis valores
de uma ou mais variáveis é o da experimentação.” (FILHO, 2008, p.277)
Montgomery (apud FILHO, 2008, p.277) define experimento como “um teste
ou uma série de testes, nos quais alterações controladas são realizadas sobre os
fatores envolvidos em um sistema ou processo, de tal forma que se possa observar
e identificar as razões das mudanças ocorridas sobre as respostas.”
Planejamento deve ser utilizado em qualquer experimento. De acordo com
Santana e Santana (2012a), planejamento é uma técnica muito importante, pois o
seu emprego permite resultados mais confiáveis, economizando dinheiro e tempo.
Jain (1991) diz que o planejamento de experimentos relaciona-se com o
número de medições ou simulações dos experimentos a serem realizados e os
valores dos parâmetros utilizados em cada experimento. Com a utilização de uma
seleção adequada destes valores, pode-se obter um maior número de informações
com o mesmo número de experimentos.
De acordo com Montgomery (apud FILHO, 2008), os objetivos que podem ser
buscados no processo experimental são:

Determinar quais variáveis têm mais influência sobre as respostas;

Determinar que valores associar a essas variáveis, de forma que as
respostas permaneçam próximas a seus valores nominais;

Determinar que valores associar a essas variáveis, de forma que a
variabilidade das respostas seja mínima;

Determinar que valores associar a essas variáveis, de forma que a
influência dos fatores não controláveis seja minimizada.
Filho (2008), com relação a fatores não controláveis, diz que os mesmos
podem ser fixados para fins de testes quando estas variáveis estão sendo usadas
em modelos de sistemas ou processos.
47
Para que haja compreensão dos termos utilizados, no subtítulo 2.2.1 são
apresentados os principais elementos da terminologia utilizada em planejamento de
experimentos. Sobre as estratégias mais empregadas, tais serão descritas no item
2.2.4.
2.2.1 Terminologia
Segundo Filho (2008), os termos e as explicações destes termos, a seguir,
são comumente utilizados em análise e projeto experimental:

Variáveis de resposta: resultados de um experimento que permite
observar o comportamento de um sistema;

Fatores: variáveis controladas pelo experimentador e que podem afetar
as variáveis de reposta;

Níveis: valores que um fator pode assumir, ou seja, cada nível do fator
é uma alternativa para aquele fator;

Replicações: repetição de todos ou de alguns experimentos;

Projeto experimental: consiste na especificação de uma estratégia de
ação que resulta na determinação do número de experimentos (fatores
x níveis) a serem realizados, do número de replicações de cada
experimento e da forma que serão efetivados.
Sobre fatores primários e secundários, Santana e Santana (2012a, p.6)
dizem:

Fatores primários: fatores que causam um grande impacto em uma
variável de resposta e que devem ser considerados;

Fatores secundários: fatores cujo impacto na variável de resposta não
são significantes ou não se tem interesse em quantificar.
2.2.2 Medidas de desempenho
Medidas de desempenho, ou métricas, são, segundo Jain (1991), os critérios
utilizados para avaliar o desempenho de um sistema. Ainda segundo o autor, a
seleção das métricas é um passo chave em todos os projetos de avaliação de
desempenho.
48
Para sistemas computacionais divididos entre vários usuários, devem ser
considerados dois tipos de métricas de desempenho: individual e global. Jain (1991,
p.48) diz que “as métricas individuais refletem a utilidade de cada usuário, enquanto
que as globais refletem a utilidade de todo o sistema.” Citando como exemplos, Jain
(1991) afirma que a utilização de recursos, confiança e disponibilidade referem-se a
métricas globais. Já tempo de resposta e throughput referem-se a métricas
individuais, uma vez que estas podem ser medidas para cada usuário.
Nos tópicos a seguir são definidas algumas métricas comumente utilizadas na
avaliação de desempenho de um sistema. Ainda sobre essas métricas, Jain (1991)
diz que algumas definições dessas medidas precisam ser alteradas para atender a
uma determinada aplicação.
2.2.2.1 Tempo de resposta
De acordo com Jain (1991, p.51), “tempo de resposta é definido como o
intervalo entre uma requisição do usuário e a resposta do sistema.” Ainda de acordo
com o autor, esta definição é considerada simplista uma vez que as requisições,
bem como as respostas, não ocorram de forma instantânea.
2.2.2.2 Throughput
Throughput define a capacidade do computador de processar os dados. Jain
(1991, p.53) define throughput como “a taxa (requisições por unidade de tempo) a
qual os pedidos podem ser atendidos pelo sistema.” Sobre tal métrica, Jain informa
que para sistemas interativos, throughput é medido em requisições por segundo,
para CPUs, throughput é medido em milhões de instruções por segundo (MIPS), ou
milhões de operações de pontos-flutuantes por segundos (MFLOPS). Já para redes,
o throughput é medido em pacotes por segundo (pps) ou bits por segundo (bps).
De acordo com Santana e Santana (2012a, p.19), “throughput geralmente
aumenta até um certo ponto, depois começa a cair.”
2.2.3 Carga de trabalho
49
“O termo carga de trabalho denota qualquer carga de trabalho utilizada em
estudos de desempenho.” (JAIN, 1991, p.60) Carga de trabalho são requisições
feitas pelos usuários do sistema.
Carga de trabalho pode ser de dois tipos: real e sintética. Tais cargas são
descritas no tópico seguinte.
2.2.3.1 Tipos de carga de trabalho
Conforme Jain (1991), uma carga de trabalho real é vista em um sistema que
é utilizado para operações normais. Por este tipo de carga não poder ser repetida,
geralmente não é adequada para uso como carga de testes.
Outro tipo de carga de trabalho, a sintética, possui características similares as
da carga de trabalho real e pode ser aplicada repetidamente, de uma maneira
controlada. Este tipo de carga é desenvolvida e utilizada para estudos.
Ainda sobre carga de trabalho sintética, o autor informa que a principal razão
para a utilização de uma carga de trabalho deste tipo é que esta é uma
representação ou modelo da carga de trabalho real.
Conforme Jain (1991), outras razões para a utilização de uma carga de
trabalho sintética são que nesta podem existir dados grandes e confidenciais; a
carga de trabalho pode ser facilmente modificada, sem afetar as operações.
Por possuir tamanho pequeno, a carga de trabalho sintética pode ser
facilmente portada para diferentes sistemas, podendo ter recursos de medição
internos. (JAIN, 1991)
2.2.4 Estratégias de projetos de experimentos
Algumas das estratégias que podem ser adotadas para a execução de um
projeto experimental são: planejamento simples, planejamento fatorial completo e
planejamento fatorial parcial. No subitem a seguir tais estratégias são descritas.
2.2.4.1 Fatorial simples
Este tipo de planejamento é muito utilizado, no qual varia-se um fator por vez,
mantendo os demais fixos.
50
Filho (2008) diz que este planejamento desconsidera um elemento
fundamental quando se trata de experimentação: a interação entre os fatores. O
autor descreve interação como a mútua influência entre dois ou mais fatores. Sobre
interação, Santana e Santana (2012a, p.07) dizem que “a interação ocorre quando
dois fatores se interagem se o efeito de um depende do nível do outro.”
Filho (2008, p.284) ainda diz que, “caso a interação entre os fatores é muito
comum, esse tipo de planejamento pode levar a conclusões erradas. O mesmo
afirma que, se comprovadamente, não existem interações entre fatores, essa
estratégia pode ser uma opção prática.”
A equação para este tipo de planejamento é exposta a seguir,
K
n  1   (ni  1)
i 1
Figura 2.1 – Equação para fatorial simples
Fonte: Santana; Santana, 2012b, p.06
onde, dados K fatores, com o i-ésimo fator tendo ni níveis, um fatorial simples requer
somente n experimentos. Deste modo, caso o experimento contenha quatro fatores,
a equação adequada a este seria:
n = 1+(3-1)+ (3-1)+ (3-1)+ (3-1) = 9 experimentos
2.2.4.2 Fatorial completo
Jain (1991, p.279) diz que “a vantagem de um planejamento fatorial completo
é que todas as suas possíveis combinações de configuração e cargas de trabalho
são examinadas”, ou seja, todas as possíveis combinações entre fatores e seus
diferentes níveis são utilizadas e pode-se encontrar o efeito de todos os fatores,
incluindo fatores secundários e suas interações. (FILHO, 2008)
Ainda de acordo com Jain (1991), a principal desvantagem deste tipo de
planejamento é o custo de estudo. Complementando esta informação, Filho (2008)
diz que este custo pode ser muito alto, ainda mais quando se considera a
possibilidade de repetir cada experimento várias vezes.
De acordo com Filho (2008), existem três maneiras para reduzir o número de
experimentos, sendo assim, os custos associados:
51

Reduzir o número de níveis por fator;

Reduzir o número de fatores;

Usar projetos fatoriais fracionário.
Jain (1991, p.279) diz que “a primeira alternativa é a mais recomendada pois,
em alguns casos, é possível tentar somente dois níveis por fator e determinar a
importância relativa de cada fator.”
A seguinte equação expõe o número de experimentos n deste tipo de fatorial.
K
n   ni
i 1
Figura 2.2 – Equação para fatorial completo
Fonte: Santana; Santana, 2012b, p.10
Desta maneira, caso o experimento contenha quatro fatores e três níveis, a
equação para este seria:
n = 3 x 3 x 3 x 3 = 81 experimentos
2.2.4.3 Fatorial fracionário
Segundo Filho (2008), quando o número de experimentos requeridos para um
fatorial completo é muito grande e que a execução do projeto pode se tornar
economicamente inviável devido ao tempo e recursos necessários para a sua
execução, pode-se utilizar apenas parte ou fração do total de experimentos de um
planejamento fatorial completo. Para este tipo de planejamento dá-se o nome de
planejamento fatorial fracionário ou fatorial parcial.
Ainda de acordo com Filho (2008), com este tipo de planejamento é possível
obter boas informações sobre os efeitos causados pelos principais fatores, bem
como alguma informação sobre suas possíveis interações.
2.2.5 Projetos fatoriais 2k
De acordo com Jain (1991, p.282), “um projeto fatorial tipo 2k é usado para
determinar o efeito de k fatores, cada um dos quais com duas alternativas ou níveis.”
Complementando, Santana e Santana (2012a) dizem que uma boa alternativa
52
quando ocorre a utilização de estratégia de projeto fatorial em experimentos é iniciar
com poucos fatores e 2 níveis por cada fator.
Segundo Filho (2008), fatorial tipo 2k merece uma atenção especial pois esta
estratégia oferece algumas vantagens tais como: simplicidade de implementação;
facilidade de compreensão do que está sendo feito, por parte dos analistas que não
possuem tanta experiência; facilidade para entender os efeitos de cada fator sobre
as variáveis de resposta; possibilidade de ordenação dos fatores por sua ordem de
importância.
Jain (1991) diz que, frequentemente, quando são estudados os efeitos de
fatores sobre respostas, os efeitos dos fatores são unidirecionais, ou seja, o
desempenho diminui ou aumenta continuamente na medida em que os valores dos
fatores são alterados, aumentando-os ou diminuindo-os. Assim, Filho (2008)
aconselha que, ao invés de realizar um número de experimentos muito grande, o
que poderia acarretar em um desperdício de recursos muito grande, pode-se iniciar
as experimentações utilizando-se os níveis mínimos e máximos (dois níveis) de cada
fator. “Isso ajudará a decidir se a diferença no desempenho é significante o
suficiente para justificar exames mais detalhados.” (JAIN, 1991, p.282)
Dito isto, o próximo sub-tópico dará uma breve explanação sobre projetos
fatoriais do tipo 22, o qual facilita a compreensão dos conceitos utilizados em
projetos 2k.
2.2.5.1 Projeto fatorial 22
Fatorial 22 é o caso mais simples de um projeto fatorial. Este é um caso
especial de um projeto 2k com k = 2. Deste modo têm-se dois fatores com dois
níveis cada.
Conforme desdobramento desenvolvido por Jain (1991) considera-se dois
fatores, aqui chamados, fator A e fator B e, a partir de experimentos efetuados,
serão obtidos os valores y1, y2, y3 e y4. Para cada nível de cada fator é definido um
valor. Então, a seguir, estes valores são definidos como:
fator A (xA), nível 1 = -1;
fator A (xA), nível 2 = 1;
fator B (xB), nível 1 = -1;
fator B (xB), nível 2 = 1.
53
Desta maneira constrói-se o Quadro 2.1, que demonstra a correspondência
entre níveis, fatores e respostas de um fatorial 22.
Quadro 2.1- Níveis, fatores e respostas de um projeto 22
Fonte: Santana; Santana, 2012a, p.23
De acordo com Santana e Santana (2012a), a análise do projeto fatorial 2 2 é
feita através do modelo de regressão não linear da forma:
y = q0 + qAxA + qBxB + qABxAxB
Partindo desta equação, Filho (2008) diz que substituindo-se as quatro
observações no modelo e os valores dos coeficientes, obtêm-se:
y1 = q0 – qA – qB + qAB
y2 = q0 + qA – qB – qAB
y3 = q0 – qA + qB – qAB
y4 = q0 + qA + qB + qAB
Em complemento, Filho (2008, p.292) afirma que, partindo dessas equações
para qi‟s, as expressões obtidas qA, qB e qAB “são claramente combinações lineares
das respostas, com a soma dos coeficientes igual a zero.” Tais expressões (q A, qB e
qAB) são evidenciadas a seguir:
q0 = ¼ (y1 + y2 + y3 +y4)
qA = ¼ (–y1 + y2 – y3 +y4)
qB = ¼ (–y1 – y2 + y3 +y4)
qAB = ¼ (y1 – y2 – y3 +y4)
Estas expressões, de acordo com Jain (1991), são conhecidas como
“contrastes”.
2.2.5.2 Soma dos quadrados totais – SQT
54
De acordo com Filho (2008, p.296), é importante que seja determinado a
contribuição de cada fator sobre as variações nas variáveis de resposta. “A
importância de um fator é medida pela proporção do total da variação na variável de
resposta que é por ele explicado.”
Santana e Santana (2012a, p.28) dizem que “a partir dos valores q0, qA, qB e
qAB, a soma dos quadrados pode ser determinada.” Ainda de acordo com Santana e
Santana (2012a, p.28), complementando a afirmação de Filho (2008), “a soma dos
quadrados dará a variação total das variáveis de resposta e as variações devido a
influência do fator A, do fator B e da interação entre A e B” e que é definida pela
seguinte equação:
22
Variância total ou SQT:
SST   ( yi  y ) 2
i 1
Em tal equação, ȳ refere-se a média das respostas dos experimentos realizados.
(FILHO, 2008)
Ainda de acordo com Filho (2008), a soma dos quadrados totais (SQT), em
inglês, Sum of Squares Total (SST), pode ser definida da seguinte forma:
SQT = SQA + SQB + SQAB
Filho (2008) expõe que as três parcelas do lado direito da equação
representam a porção da variação total explicados pelos efeitos de A, B, e da
interação AB, respectivamente. Assim, de acordo com as fórmulas descritas
anteriormente, atribuindo-a para um projeto 22, a variação pode ser divida em três
partes:
SSA = 22q2A , porção da soma dos quadrados totais que é explicada pelo fator
A. A influência do fator A pode ser expressa pela seguinte fração: A = SQA / SQT;
SSB = 22q2B , porção da soma que é explicada pelo fator B, tendo sua
influência representada por: B = SBQ / SQT;
SQAB = 22q2AB, referente a porção devido a interação entre os fatores A e B,
tendo sua influência representada por: AB = SQAB / SQT
Por fim, Filho (2008) diz que os fatores que explicam uma alta porcentagem
da variação são considerados os mais importantes.
55
3 DESENVOLVIMENTO
3.1 METODOLOGIA
Neste tipo de trabalho deve-se adotar o conjunto correto de métodos e
técnicas para que o objetivo seja alcançado. Caso a metodologia utilizada nesse tipo
de pesquisa não seja a correta, os resultados podem ser obtidos de forma inexata,
pois fatores cruciais que influenciam a variável de resposta podem ser deixados de
lado.
Esta pesquisa tem como variável de resposta a quantidade de pacotes que
trafegam em uma rede, por segundo, gerados através de requisições em um banco
de dados distribuído.
Para esta pesquisa foi utilizado o modelo de dados de um sistema de
estacionamento, composto pelas seguintes tabelas: cliente, funcionário, pagamento,
ticket e carro. A Figura 3.1 expõe este modelo, dispondo como as tabelas se
relacionam, bem como as respectivas colunas e, consequentemente, os tipos
destas. Assim pode-se verificar como o banco de dados utilizado neste projeto foi
elaborado, fisicamente.
Figura 3.1 – Modelo de dados relacional
Fonte: Elaborado pelo autor
O modelo de dados representado pela Figura 3.1 refere-se a um sistema de
controle de estacionamento que permite ao usuário deste sistema usufruir de
56
facilidades
de
controle
de
permanência
de
veículos
no
estacionamento,
possibilitando ao utilizador do sistema gerar o valor do pagamento de um dado
veículo, relacionando a permanência deste no pátio com o valor de cada hora.
Possibilita também o controle de clientes, mantendo uma base dos referidos
veículos pertencentes a este cliente.
Através deste modelo foi possível construir o banco de dados distribuído, que
foi base deste estudo, contendo o relacionamento entre estas tabelas e, assim,
capaz de receber persistência de dados.
Dito isto, com a utilização da ferramenta de testes JMeter, foi possível realizar
os quatro tipos básicos de requisições (criação, leitura, atualização e exclusão) ao
banco de dados, de forma que estas requisições fossem feitas atendendo a um
determinado número previamente estabelecido. Ou seja, a ferramenta JMeter
permite que uma carga de trabalho seja gerada para que se possa obter os valores
para a elaboração de uma análise das respostas a que se quer. No caso deste
projeto, JMeter foi utilizado para simular uma certa quantidade de usuários que
fizeram uma certa quantidade de requisições ao banco de dados distribuído desta
experiência. Essa ferramenta possibilita fazer estes tipos de requisições, simulando
usuários reais. Desta maneira foi possível realizar a análise de desempenho deste
projeto.
3.2 AMBIENTE DE TESTES
O ambiente de testes deste experimento foi baseado em envio e recebimento
de requisições a um banco de dados distribuídos que, aqui nesta avaliação de
desempenho, teve como base de dados tabelas que compõem um sistema de
controle de carros em um estacionamento.
Para a parte de infra-estrutura de rede de computadores foi elaborada uma
rede local situada na sala 3, contida dentro das dependências da Faculdade de
Tecnologia de Lins “Prof Antonio Seabra”, sendo utilizados 8 computadores para a
realização dos testes e um notebook para efetuar o bombardeio de requisições,
através do JMeter. Em sete destes oito computadores, e no notebook, foi instalado o
programa VMware® Workstation, versão 8.0.4 build-744019. Assim foi possível criar
uma máquina virtual (VM) em cada uma destas máquinas físicas. Isso propiciou
segurança com relação a ter cópias destas VMs, uma vez que um destes
57
computadores poderia vir a ter problemas e, talvez, necessitariam ser formatados,
perdendo assim todas as instalações e configurações elaboradas anteriormente para
que os testes fossem realizados.
Com isto, em sete destas oito máquinas virtuais foram instalados o sistema
operacional Windows XP Professional Versão 2002 Service Pack 3 e o SGBD SQL
Server 2008 Developer. Desta maneira, o BDD foi composto por sete hosts, sendo
que um host representava o publicador e os outros seis representavam os
subscritores. No oitavo host, ou seja, no notebook, também foi instalado o Windows
XP como sistema operacional, e esta VM ficou disponibilizada para efetuar as
requisições ao BDD, com a utilização da ferramenta JMeter.
O nono computador foi utilizado para a visualização das portas do switch que
compôs a rede deste experimento, através do programa Putty, com o qual foi
possível acessar o software nativo do switch, em seu modo texto.
A Figura 3.2 representa o ambiente de testes, de uma maneira geral, utilizado
nesta avaliação.
Figura 3.2 – Ambiente de testes
Fonte: Elaborado pelo autor
Para a compreensão desta figura, como dito anteriormente, os clientes foram
simulados através da utilização do JMeter. Já as requisições que chegavam ao
BDD, representadas pela seta nomeada “Dados”, poderiam vir de qualquer lugar, de
58
forma global ou local, a este sistema de banco de dados distribuídos. O visualizador
foi utilizado para verificar o tráfego nas portas do switch, como disposto
anteriormente. Por fim, os sete hosts, compostos por suas respectivas máquinas
virtuais, formando desta forma o banco de dados distribuídos.
O notebook utilizado nesta avaliação possui as seguintes características:
Processador Intel® Core™ i5-2410M CPU @ 2.30GHz 2.30 GHz, memória RAM
4,00GB, 500GB Hard Disk (HD) e o SO Windows 7 Ultimate 64 Bits. Já os oito
computadores utilizados possuem as mesmas características físicas e de sistema
operacional: Processador Intel® Core™ i5-2400 CPU @ 3.10GHz 3.10GHz,
memória RAM 4,00GB e SO Windows 7 Professional 64 Bits.
Com relação às máquinas virtuais, sete das oitos citadas anteriormente, foram
configuradas com 1024MB de memória, com um processador de 1 core cada. Já
referente a placa de rede, todas foram configuradas para o modo Bridge. Desta
maneira a máquina virtual funciona como se estivesse na mesma rede da máquina
física.
Figura 3.3 – Monitoramento de pacotes recebidos (gráfico)
Fonte: D-Link, 2009, p.334.
59
Referente a oitava máquina virtual, como esta funcionou como servidor de
rede, a única diferença com relação as outras virtuais foi que esta oitava foi
configurada com duas placas de rede, mantendo o modo Bridge. O intuito desta
configuração é demonstrar que os hosts além desta máquina virtual não sofreriam
interferências diretas da rede sem antes passar por esta máquina. Desta maneira,
esta máquina-servidor foi configurada com dois IP‟s diferentes, um para as
requisições externas ao banco de dados distribuídos e outro para a rede interna,
composta pelas máquinas virtuais que compõem o BDD.
O switch utilizado no controle de tráfego da rede e visualzação de pacotes
que trafegavam na rede foi um DLink DGS – 3627, tendo como taxa de transferência
de dados o equivalente à 1 Gigabits por segundos (GBPS). Este switch possui vinte
e quatro portas gerenciáveis, lembrado que para esta avaliação, apenas nove portas
foram utilizadas, e o dispositivo não possuía conexão com a Internet.
Figura 3.4 – Monitoramento de pacotes enviados e recebidos (tabela)
Fonte: D-Link, 2009, p.335.
60
A Figura 3.3 expõe a tela de visualização em forma de gráfico, que o switch
disponibiliza para o usuário deste dispositivo. No caso é disposta a tela referente a
porta 1, que monitora a chegada de pacotes em tal porta.
A Figura 3.4 refere-se a mesma porta (1), porém, disponibiliza as informações
transmitidas e recebidas, tanto na forma de pacotes quanto na forma de bytes, na
forma de uma tabela. Entretanto, a tela disponibilizada de forma gráfica não atende
a necessidade deste projeto, uma vez que só é possível visualizar uma porta do
switch por teste e, na transição de uma tela para outra, um tempo considerável era
perdido, prejudicando a coleta de informações. Desta maneira, a Figura 3.5
demonstra o total de tráfego de pacotes por porta, fazendo uso do programa Putty. A
mudança entre uma porta e outra era feita de forma rápida, apertando a tecla space
para acessar a porta seguinte, ou a tecla “p”, para retroceder para a porta
anteriormente visualizada.
Figura 3.5 – Monitoramento de pacotes enviados e recebidos
Fonte: Elaborado pelo autor.
Com relação as máquinas utilizadas, para um melhor entendimento destas,
virtuais ou física (esta última foi utilizada para visualizar o tráfego de dados do
61
switch), que compuseram esta avaliação, é disposto a seguir o quadro 3.1, contendo
o nome do computador físico, o nome da máquina virtual (VM), a porta a que este
acessa o switch, qual a atribuição do computador na avaliação de desempenho e o
IP atribuído a este computador. Lembrando que o computador que possui máquina
virtual, o IP foi atribuído a esta VM, e não à máquina física e que a máquina virtual
de nome servidor1 possui dois IPs pois a mesma funcionou como um servidor de
rede, tendo em sua configuração duas placas de rede.
Quadro 3.1 – Qualificações dos hosts
Computador
VM
Switch (porta)
LAB6-M02
servidor1
LAB6-M01
cliente-01
LAB6-M04
cliente-02
LAB6-M03
cliente-03
LAB6-M06
cliente-04
LAB6-M05
cliente-05
LAB6-M08
cliente-06
Gustavo-Notebok
JMeter
LAB6-M07
---------Fonte: Elaborado pelo autor
1
2
3
4
5
6
7
9
8
Função
Publicador
Subscritor 01
Subscritor 02
Subscritor 03
Subscritor 04
Subscritor 05
Subscritor 06
Cliente Virtual-Jmeter
Visualizar Tráfego-Switch
IP (Protocolo de Internet)
10.1.1.1/192.168.1.1
10.1.1.10
10.1.1.20
10.1.1.30
10.1.1.40
10.1.1.50
10.1.1.60
192.168.1.150
10.90.90.10
3.3 PLANEJAMENTO DE EXPERIMENTOS
Para este projeto foi utilizado o planejamento fatorial completo, que leva em
consideração os fatores escolhidos e os níveis referentes a estes. O projeto fatorial
utilizado aqui foi o 23, o que quer dizer que foram escolhidos 3 (três) fatores, sendo
que cada um destes fatores possuem 2 (dois) níveis. Assim, foram efetuados 8
experimentos, pois 23 = 8.
A medida de desempenho adotada neste projeto foi a throughput, que como
já definido no capítulo 2 deste trabalho, “é a taxa a qual os pedidos podem ser
atendidos pelo sistema.“ (JAIN, 1991, p.53). O throughput é medido, neste projeto,
em pacotes por segundo (pps), ou seja, a variável de resposta que deve ser
adquirida neste experimento é a quantidade média de pacotes que trafegam na rede
elaborada, por segundo. Para tal, foi dividido um total de pacotes trafegados por um
dado intervalo de tempo, em segundos.
Para esta avaliação foram considerados três fatores e cada fator assumiu dois
níveis, como exposto no Quadro 3.2.
62
Quadro 3.2 – Fatores e níveis para avaliação
Fatores
Número de hosts (subscritores)
Número de requisições de dados
Número de usuários
Fonte: Elaborado pelo autor
Nível 1
3
8100
45
Nível 2
6
16200
90
O quadro a seguir demonstra as combinações entre os fatores e níveis que
resultaram nos oito experimentos realizados neste trabalho, conforme disposto no
primeiro parágrafo deste tópico, levando em conta a descrição dos fatores e níveis
evidenciados no Quadro 3.2.
Quadro 3.3- Combinações entre fatores e níveis
Experimentos
1
2
3
4
5
6
7
a
Núm.
Usuários
b
Num.
Requisições
Núm. Hosts
45
45
45
45
90
90
90
90
8100
8100
16200
16200
8100
8100
16200
16200
3
6
3
6
3
6
3
6
8
Fonte: Elaborado pelo autor
Figura 3.6 – Ambiente fator número de hosts nível 3
Fonte: Elaborado pelo autor.
c
63
A Figura 3.6 demonstra como foi montado o ambiente de testes quando o
fator número de hosts foi mantido em 3 (três). Assim, para os outros dois fatores e
variações de seus devidos níveis, o ambiente é o mesmo exposto na figura.
De acordo com a figura, verifica-se que os clientes são simulados através da
utilização da ferramenta JMeter e que as requisições realizadas por esta ferramenta
é do tipo de carga de trabalho sintética que, conforme disposto no Capítulo 2, subtópico 2.2.3.1 deste trabalho, tal carga pode ser aplicada repetidamente, de maneira
controlada. Esta ferramenta ficou localizada na máquina virtual JMeter, conforme
pode ser verificado no Quadro 3.1.
Figura 3.7 – Ambiente fator número de hosts nível 6
Fonte: Elaborado pelo autor.
Através destas simulações, requisições foram enviadas para o servidor do
banco de dados distribuídos, sendo que quem recebeu estas solicitações foi o
publicador do BDD, o qual estava sitiado na máquina virtual com o nome servidor1.
O servidor1 possui toda a estrutura do banco de dados utilizado neste experimento.
Lembrando que o banco de dados foi composto pelas seguintes tabelas: cliente,
funcionário, ticket, carro e pagamento.
A Figura 3.6 expõe que nesta parte do experimento, o ambiente foi composto
pelo publicador (VM servidor1) e por três subscritores: Subscritor 01 (VM cliente-01),
Subscritor 02 (VM cliente-02) e Subscritor 03 (VM cliente-03). Desta maneira, o
64
publicador recebeu as requisições e, por meio de linkeds servers, realizou as
operações de inclusão, atualização, exclusão e consulta em determinado subscritor
ao qual o linked server se referia. Com isto, fazendo uso da replicação merge, o
publicador recebeu as atualizações dos subscritores e as publicou para todos os
outros subscritores.
A Figura 3.7 evidencia que a única alteração que ocorreu ao ambiente
anterior foi em relação ao aumento do número de hosts, que nesta parte do
experimento, aumentou-se de 3 (três) para 6 (seis). Assim, o BDD deste ambiente foi
formado, agora, por sete hosts, sendo que um é o publicador e os outros seis, os
subscritores. Os três hosts adicionados foram definidos da seguinte maneira:
Subscritor 04 (VM cliente-04), Subscritor 05 (VM cliente-05) e Subscritor 06 (VM
cliente-06).
3.4 RESULTADOS ESPERADOS
Esperava-se que os resultados sofressem uma boa variação devido aos
fatores e a alternância dos seus níveis e que não houvessem ações significantes
nesses valores que fossem influenciadas pelos ambientes de teste que, neste
trabalho, fizeram uso de máquinas virtuais.
Inicialmente, utilizando como primeiro conjunto de configurações foi aplicada
ao teste a configuração com os níveis dos fatores em seu máximo, ou seja, o
número de usuários simulados será de 90, efetuando um total de 16200 requisições,
com 7 (sete) hosts disponíveis no BDD. Com isto, espera-se que o número máximo
de pacotes trafegados por segundo, seja obtido.
Variando os níveis dos fatores, esperou-se que o número de pacotes que
trafegarão pela rede sofresse uma pequena diminuição e, quando utilizada a
configuração mínima, ou seja, 45 usuários simulados, com um total de 8100
requisições, tendo o banco de dados composto por 4 (quatro) hosts, supunha-se que
a quantidade trafegada seria a mínima neste experimento.
No capítulo a seguir são dispostos os resultados dos testes efetuados, em
forma de tabelas e gráficos, e como os fatores e as interações entre eles afetaram
os resultados.
65
4 RESULTADOS E DISCUSSÃO
Para esta avaliação de desempenho foram realizadas 10 repetições para
cada um dos oito experimentos. Com isto foi obtido um total de 80 testes.
Para o conjunto de testes de cada experimento foi estabelecido o intervalo de
confiança dos resultados obtidos. A partir destes verificou-se que as variações dos
intervalos foram baixos, garantindo a integridade dos experimentos.
Este capítulo expõe valores obtidos com os testes e, a partir destes, a
confecção de gráficos. Destes valores e gráficos foram dispostas análises sobre os
mesmos, análises estas que são o objetivo deste trabalho.
4.1 INTERVALO DE CONFIANÇA
“Os resultados de uma pesquisa devem ser interpretados dentro de um
intervalo que estabelece limites em torno da estimativa obtida: o chamado intervalo
de confiança.” (IBOPE, 2013) Partindo deste conceito foram realizados cálculos para
a obtenção dos intervalos de confiança (IC) para cada experimento. Tais valores são
dispostos no Quadro 4.1.
Quadro 4.1- Intervalos de confiança
Intervalo de Confiança
Experimento
IC (pps)
1
489,56
674,30
456,85
402,58
314,64
444,12
245,83
402,77
2
3
4
5
6
7
8
Fonte: Elaborado pelo autor
Comumente são utilizados intervalos com 95% de confiança. (IBOPE, 2013)
Com isto, IBOPE (2013) exemplifica a utilização de intervalo de confiança da
seguinte maneira: “Considerando uma margem de erro de 3 pontos percentuais para
o candidato A com estimativa de intenção de voto fixada em 30%, o intervalo de
confiança dele, com uma confiabilidade de 95%, seria de 27% a 33%.”
66
Assim, os intervalos de confiança obtidos neste trabalho foram alcançados
com a utilização de uma fórmula específica do programa de planilha eletrônica
Excel, da empresa Microsoft. A seguir a sintaxe da mesma:
= INT.CONFIANÇA(alfa; desv_padrão; tamanho)
onde, segundo Office (2013a), os parâmetros possuem as seguintes características:

“alfa: nível de significância utilizado para calcular o nível de confiança.
Desta maneira, o nível de confiança é igual a 100*(1-alfa)%, ou seja,
caso alfa seja 0,05, isso indica um nível de confiança de 95%, pois
100*(1-0,05)% será igual a 95%”;

“desv_padrão: é o desvio padrão da população para o intervalo de
dados, o qual supõe-se que seja conhecido”;

“tamanho: é o tamanho da amostra”.
Vale lembrar que o desv_padrão foi obtido através de outra fórmula da
planilha Excel, a qual deve ser utilizada quando os dados representarem uma
amostra da população. (OFFICE, 2013b) A sintaxe da mesma é disposta a seguir:
=DESVPAD(núm1,[núm2],...])
onde, segundo Office (2013b), as características dos parâmetros são as seguintes:

“núm1:
necessário
pois
é
o
primeiro
argumento
numéricos
correspondente a uma população”;

“núm2,...:
opcional. São
argumentos
numéricos
de
2
a
254
correspondentes a uma população”.
Para exemplificar a utilização desta fórmula, é disposta a seguir a fórmula
utilizada no oitavo experimento: =DESVPAD(B13:U13), a qual demonstra que os
valores utilizados nesta fórmula abrangem um intervalo que vai do primeiro ao
décimo teste deste experimento, retornando o valor 5008,607232, utilizada na
fórmula de IC.
Então, exemplificando com valores deste trabalho, mais especificamente com
valores do experimento oito, a fórmula de IC é composta da seguinte maneira: =
INT.CONFIANÇA(0,05;649,841;10). Desta, o valor 0,05 indica que o nível de
67
confiança utilizado é de 95%, 649,841 é o desvio padrão e o valor 10 é a quantidade
de teste realizados neste experimento.
4.2 QUADRO DE COMBINAÇÕES PARA FATORIAL COMPLETO 23
Para elaborar o Quadro 4.4 é necessário, primeiramente, entender como são
obtidos os valores desta. Então, para esta compreensão, é necessário expor os
fatores e seus níveis desta avaliação de desempenho. Assim, para cada fator será
definido uma variável.
Quadro 4.2- Atribuição de variáveis para os fatores
variáveis
Fatores
Nível 1
xa
xb
Número de usuários Número de requisições de dados
45
Nível 2
90
Fonte: Elaborado pelo autor
xc
Número de hosts (subscritores)
8100
3
16200
6
Conforme o Quadro 4.2, para o número de usuários foi atribuída a variável xa,
para o número de requisições, a variável xb e para o número de hosts, a variável xc.
Desta maneira, para cada nível dos fatores é atribuído um valor para a variável
atribuída a este fator. O Quadro 4.3 torna explicito estas atribuições.
Quadro 4.3- Atribuição de valores para as variáveis
variáveis
Fatores
Nível 1
xa
xb
Número de usuários Número de requisições de dados
45 (1)
Nível 2
90 (-1)
Fonte: Elaborado pelo autor
xc
Número de hosts (subscritores)
8100 (1)
3 (1)
16200 (-1)
6(-1)
De modo explicativo, a variável xa representa o fator número de usuários.
Assim, para o fator número de usuários com nível 1, a variável xa é igual a 1, já para
o fator número de usuários com nível 2, a variável xa assume o valor igual a -1.
Desta maneira foi possível elaborar o Quadro 4.4, que representa os níveis, fatores
e respostas de um projeto fatorial 23, baseando-se no Quadro 2.1, exposto neste
trabalho, no capítulo 2. Então, o experimento 1 (um) é composto da seguinte
maneira: xa = 1, xb = 1 e xc = 1. Desta maneira se verifica que tal experimento foi
composto pelos fatores número de usuários, número de requisições de dados e
68
número de hosts em seu primeiro nível, ou seja, 45 usuários, 8100 requisições e 3
hosts. A variável y1 representa a resposta deste primeiro experimento.
Quadro 4.4- Níveis, fatores e respostas de um projeto 23
Experimentos
1
2
3
4
5
6
7
xa
Núm.
Usuários
xb
Num.
Requisições
Núm. Hosts
1
1
1
1
-1
-1
-1
-1
1
1
-1
-1
1
1
-1
-1
1
-1
1
-1
1
-1
1
-1
8
Fonte: Elaborado pelo autor
xc
Respostas
(Y)
y1
y2
y3
y4
y5
y6
y7
y8
Por fim, partindo do Quadro 4.4 elaborou-se o Quadro 4.5, que representa as
combinações dos níveis de cada fator. Isso se faz necessário para o entendimento
dos fatores no ambiente de experimento.
Quadro 4.5- Quadro de combinações dos níveis dos fatores
Quadro de combinações
Experimentos
qa
qb
qc
qab
qac
qbc
qabc
Resposta (Y)
1
1
1
1
1
-1
-1
-1
-1
1
1
-1
-1
1
1
-1
-1
1
-1
1
-1
1
-1
1
-1
1
1
-1
-1
-1
-1
1
1
1
-1
1
-1
-1
1
-1
1
1
-1
-1
1
1
-1
-1
1
1
-1
-1
1
-1
1
1
-1
y1
2
3
4
5
6
7
8
Fonte: Elaborado pelo autor
y2
y3
y4
y5
y6
y7
y8
4.3 RESULTADOS DOS EXPERIMENTOS
O Gráfico 4.1 foi construído com as médias obtidas dos valores do conjunto
de testes de cada experimento. Neste também é possível visualizar os ICs de cada
experimento, os quais estão localizados no topo de cada barra. Só foi possível obter
os valores dos testes com o uso da ferramenta JMeter, a qual simulou os usuários
69
que bombardeavam com requisições de inserção, seleção, atualização e exclusão, o
banco de dados distribuído deste trabalho.
Gráfico 4.1- Comparativo entre os valores médios de cada experimento
Fonte: Elaborado pelo autor
Através do Gráfico 4.1 é possível verificar que o experimento 8 teve a maior
média de tráfego de pacotes por segundo. Este experimento foi composto pelos
fatores número de usuários = 90, número de requisições = 16200 e número de hosts
= 6. Ao contrário, o experimento 7 teve a menor média de tráfego de pacotes por
segundo. Neste experimento o número de usuários foi igual a 90, o número de
requisições foi igual a 16200 e o número de hosts igual a 3. As combinações entre
os fatores e níveis já foram explanadas no capítulo 3, através do Quadro 3.3.
Gráfico 4.2- Comparativo levando em conta o número de usuários
Fonte: Elaborado pelo autor
70
Conforme o Gráfico 4.1 e o que foi exposto anteriormente, se comparados os
fatores do oitavo e do sétimo experimentos, percebe-se que o oitavo teve um
aumento de número de hosts, mantendo o mesmo número de usuários e de
requisições.
O Gráfico 4.2 demonstra um comparativo dos experimentos levando em
consideração o número de usuários.
De acordo com Gráfico 4.2, observa-se que conforme ocorre o aumento de
número de usuários, diminui-se o tráfego de pacotes pela rede. Isso é evidenciado
se comparados os experimentos 1 e 5 , os quais tiveram como fatores o mesmo
número de requisições e hosts, ou seja, 8100
requisições e 3 hosts,
respectivamente, variando-se apenas o número de usuários, os quais foram
simulados 45 para o primeiro experimento e 90 para o segundo.
É possível perceber que neste gráfico ocorre uma tendência na qual a medida
que ocorre o aumento de número de hosts, mantendo-se o mesmo número de
usuários e requisições, tem-se um aumento de tráfego de pacotes por segundo. Isso
pode ser observado no nível 2 deste experimento, o qual teve como fator de
usuários 90 destes. Fazendo uma comparação entre os experimentos 7 e 8,
observa-se que o experimento com menor número de hosts trafegou um menor
número de pacotes pela rede.
O Gráfico 4.3 evidencia um comparativo que leva em conta o fator
representativo número de requisições.
Gráfico 4.3- Comparativo levando em conta o número de requisições
Fonte: Elaborado pelo autor
71
Este gráfico demonstra que conforme aumenta-se o número de requisições,
ocorre uma queda na quantidade de tráfego de pacotes. Isto é visto quando
comparados os experimentos 1 e 3, entre os quais o experimento 1 trafega uma
média de pacotes de 10728,6 por segundo, sendo que no experimento 3 é trafegado
uma média de 9655,8, tendo uma diferença entre eles de 1072,8 pacotes
trafegados.
Nota-se que neste fator não ocorreu uma grande variação nas médias quando
se leva em consideração os níveis 1 e 2, se comparados aos outros fatores, os quais
obtiveram uma diferença significativa quando se variou o nível. Este fato,
possivelmente, ocorreu porque as máquinas não trabalharam em seus limites e,
dessa forma, aceitariam uma carga ainda maior de requisições.
O Gráfico 4.4 apresenta um comparativo que teve como fator representativo o
número de hosts.Visualiza-se através deste gráfico que conforme aumenta-se o
número de hosts (máquinas), aumenta-se o número de pacotes trafegados. Isto é
visto quando são adotados os valores de dois experimentos. Desta forma, a
exemplificar, compara-se os valores do experimento 5 e 6. No quinto experimento, o
tráfego de pacotes foi na média de 8838,7, ou seja, houve um tráfego de 1825,6
pacotes a menos do que o sexto experimento, que trafegou na média de 10664,3
pps.
Gráfico 4.4- Comparativo levando em conta o número de hosts
Fonte: Elaborado pelo autor
72
Este tópico explanou os resultados obtidos e demonstrou graficamente
comparativos entre os níveis de cada fator.
A seguir, através dos resultados obtidos, será feita uma análise de quanto
cada fator influenciou na variável de resposta.
4.4 INFLUÊNCIA DOS FATORES
Primeiramente, para obter os valores de influência dos fatores, foram
necessários realizar alguns cálculos baseando-se nas fórmulas explanadas no
capítulo 2, a partir do sub-tópico 2.2.5.1.
Deste modo, de forma a exemplificar esses cálculos, a fórmula a seguir expõe
o cálculo do valor do fator (qa), fazendo uso da ferramenta de planilhas eletrônicas
Excel:
=(1/8)*((M3*F3)+(M4*F4)+(M5*F5)+(M6*F6)+(M7*F7)+(M8*F8)+(M9*F9)+(M10*F10))
Para compreender esta formula é necessário fazer uso da Figura 4.1, a qual
foi baseada no Quadro 4.5 – Quadro de combinações dos níveis dos fatores, mas
agora com os valores das variáveis de resposta “y”, representados pela coluna
Média (pps).
Figura 4.1- Combinações dos níveis dos fatores e respostas
Fonte: Elaborado pelo autor
Assim, diante da figura anterior, percebe-se que ocorre um cruzamento das
colunas F e M, para a obtenção do fator (qa). Desta maneira, multiplica-se a primeira
célula da coluna de qa pela primeira célula da coluna da Média (pps), somando com
a multiplicação da segunda célula da coluna de qa pela segunda célula da coluna da
Média (pps), assim por diante, seguindo a fórmula “qA = ¼ (–y1 + y2 – y3 +y4) “,
73
disposta no sub-tópico 2.2.5.1 do capítulo 2. Percebe-se que esta fórmula refere-se
a uma análise de 4 experimentos, sendo necessário realizar algumas adequações.
Para este trabalho, expõe-se a fórmula da seguinte maneira:
qa = 1/8 (y1 + y2 + y3 + y4 – y5 –y6 –y7 –y8)
a qual, adequada a planilha eletrônica, resultou na seguinte:
qa=(1/8)*((10728,6*1)+(12783,7*1)+(9655,8*1)+(12097,8*1)+(8838,7*(1))+(10664,3*(-1))+(8652,5*(-1))+(14115,5*(-1)))
Diante do exposto na fórmula, qa obteve valor 374,34. Para calcular todos os
demais fatores e combinações, tais valores foram obtidos fazendo uso da fórmula da
planilha eletrônica exposta anteriormente, resultando no Quadro 4.6.
Quadro 4.6- Influência dos fatores
Influência dos Fatores
qa
374,34
qb
-188,27
qc
-1473,21
qab
627,96
qac
348,93
qbc
503,02
qabc
-406,31
Fonte: Elaborado pelo autor
Após isto, calcula-se a porção da soma dos quadrados totais que é explicada
pelo fator A, conforme a fórmula “SSA = 22q2A” disposta no sub-tópico 2.2.5.2 do
capítulo 2. Desta forma, adequando esta fórmula para a planilha eletrônica, é obtida
a seguinte fórmula:
=POTÊNCIA(2;3)*POTÊNCIA(B14;2),
na qual, em sua primeira parte, POTÊNCIA(2;3), conforme Jose e Silva (2012),o
valor 2 se refere a dois níveis e o valor 3 se refere a três fatores, que representam o
fatorial fruto deste trabalho. Na segunda parte, POTÊNCIA(B14;2), eleva-se ao
quadrado o valor de (qa). Isto resulta na seguinte fórmula:
SQA = POTÊNCIA(2;3)*POTÊNCIA(374,34;2)
a qual resultou em 1121047,26. Este valor é o que será utilizado na fórmula final
para saber qual a influência do fator qa na variável de resposta.
Esta fórmula foi adequada para a obtenção de todas as outras porções da
soma dos quadrados totais, resultando no Quadro 4.7.
74
Quadro 4.7- Soma dos Quadrados
Soma dos Quadrados
SST
26241097,22
SSA
1121047,26
SSB
283564,31
SSC
17362805,68
SSAB
3154677,68
SSAC
974013,72
SSBC
2024262,44
SSABC
1320726,12
Fonte: Elaborado pelo autor
Posteriormente foi obtido o valor da soma dos quadrados totais, a qual foi
sintetizada no sub-tópico 2.2.5.2 do capítulo 2, da seguinte maneira:
SQT = SQA + SQB + SQAB
Adaptando esta fórmula para a fórmula utilizada na planilha eletrônica, tem-se
a seguinte:
=POTÊNCIA(2;3)*((POTÊNCIA(B14;2))+(POTÊNCIA(B15;2))+(POTÊNCIA(B16;2))+(PO
TÊNCIA(B17;2))+(POTÊNCIA(B18;2))+(POTÊNCIA(B19;2))+(POTÊNCIA(B20;2)))
na qual, alterando-se os números das células pelos seus valores, tem-se:
=POTÊNCIA(2;3)*((POTÊNCIA(374,34;2))+(POTÊNCIA(-188,27;2))+(POTÊNCIA(1473,21;2))+(POTÊNCIA(627,96;2))+(POTÊNCIA(348,93;2))+(POTÊNCIA(503,02;2)
)+(POTÊNCIA(-406,31;2)))
resultando em SQT = 26241097,22.
Quadro 4.8- Influência dos fatores
Influência dos Fatores
valor do fator
valor em %
0,04272
4,27%
1,08%
66,17%
12,02%
3,71%
7,71%
5,03%
0,01081
0,66166
0,12022
0,03712
0,07714
0,05033
Total: 100,00%
Fonte: Elaborado pelo autor
Por fim calcula-se a influência do fator qa sobre a variável de resposta da
seguinte maneira:
qA = SQA / SQT
75
Assim, divide-se SQA por SQT e multiplica-se por 100 para obter o valor de
porcentagem de tal fator. Para o fator A, alterando as variáveis pelos valores, é
obtido o seguinte: (1121047,26/26241097,22) * 100 = 4,27%. Todos os valores estão
dispostos no Quadro 4.8.
Após todos os experimentos terem sido realizados e terem os seus fatores
transpostos para as tabelas e quadros utilizados neste trabalho, foi gerado o gráfico
4.5. Com isto foi possível calcular a influência que cada fator e as combinações
entre eles tiveram nos resultados.
Gráfico 4.5- Influência dos fatores
Fonte: Elaborado pelo autor
Observa-se no Gráfico 4.5 que o fator que teve mais influência na variável de
resposta foi o número de hosts (qc). Verifica-se que este fator influenciou em quase
2/3 do valor da variável de resposta, com 66,17%. Essa alta porcentagem de
influência na variável de resposta faz sentido pois, em um ambiente de banco de
dados distribuídos o qual foi configurado com sincronização de mesclagem, o que
gera tráfego na rede deste tipo de banco são as máquinas (hosts) que o compõem.
Desta forma, quanto maior o número de hosts que compõem este tipo de ambiente,
maior o número de sincronizações e replicações de dados se fazem necessárias. Já
o fator número de requisições (qb), quando analisado de forma isolada, foi o que
menos influêncou a variável de resposta, com 1,08% do valor total. O fator número
76
de usuários (qa) influênciou 4,27% do total da variável de resposta. O segundo fator
que mais influênciou a variável de resposta foi a interação entre os fatores número
de usuários (qa) e número de requisições (qb), formando o fator (qab). Isso
demonstra que após certo instante, o valor de pacotes por segundo é influenciado
pela carga vinda do ambiente externo ao bdd, ou seja, sofre influência da carga que
é formada pela quantidade de requisições enviadas pelos usuários deste bd.
Na sequência, o fator que mais influênciou a variável foi a combinação entre
os fatores número de requisições (qb) e número de hosts (qc), totalizando 7,71% do
percentual total da variável de resposta. Depois deste, a combinação entre os três
fatores (qabc), influênciou em 5,03% do valor total da variável de resposta. Por fim, o
fator formado pela interação número de usuários (qa) e número de hosts (qc)
influênciou em 3,71% na variável de resposta.
77
CONSIDERAÇÕES FINAIS
Estudos se fazem necessários em todas as áreas de tecnologia, ou para se
criar algo novo, ou para aperfeiçoar o que já foi criado ou até mesmo para reinventar
algo que já existe. Banco de dados distribuídos é algo relativamente novo no mundo
da informática e necessita de muitas pesquisas para aperfeiçoá-lo. Com as suas
várias opções de configurações, tais como replicação mesclada ou replicação
instantânea, neste ambiente de armazenamento de dados existe a necessidade de
serem realizadas várias análises e experimentos que demonstrem a quem for
implantar e gerir um BDD, quais as melhores opções de configuração para o
ambiente que se quer montar.
Este trabalho focou em demonstrar quais dos 3 fatores (número de usuáios,
número de requisições e número de hosts) e as variações de seus níveis
influenciariam mais no tráfego de dados em um ambiente de banco de dados
distribuído. Desta maneira, avaliou-se os resultados obtidos e viu-se que o fator
número de hosts é o fator que teve mais influência no tráfego de dados, com um
percentual de 66,17% do total. Percebe-se que este é o fator mais influente tanto
quando analisa-se os fatores de modo individual ou quando analisa-se os fatores
quando ocorre interações entre eles. Entretanto, o segundo fator que mais
influenciou no tráfego foi a interação entre os fatores número de usuários com
número de requisições, com 12,02% do total. Na sequência, o fator quem mais
influênciou o transição de pacotes pela rede do BDD foi a interação entre os fatores
número de usuários e número de hosts, obtendo um valor de 7,71%.
Desta forma conclui-se que ao se projetar um banco de dados distribuído,
deve-se perceber que o fator número de hosts influenciará e muito no tráfego de
pacotes, ao contrário do que se possa pensar, que os fatores número de usuários e
número de requisições poderiam ser os que mais influenciariam em um ambiente
deste. Porém, a combinação destes dois últimos fatores citados é o segundo fator
que mais influencia. Então, uma elaboração projetual deve focar em uma boa
estruturação na rede deste tipo de ambiente para que não haja sobrecarga neste
local, pois existe uma troca muito intensa de dados entre os próprios bancos, para
que estes contenham os mesmos dados. Só então se deve pensar nas requisições
vindas do ambiente externo, emitidas pelos usuários.
78
Vale lembrar que o ambiente de testes utilizado neste trabalho fez uso de
máquinas virtuais e, com isso, o desempenho fica bem reduzido se comparado a um
mesmo ambiente, só que fazendo uso de máquinas físicas.
Outro fator que pode ter influenciado nos resultados mas que não foi adotado
neste trabalho é a capacidade de processamento dos computadores que compõem
o ambiente de banco de dados distribuídos. Com isto, caso o ambiente adote uma
ótima estrutura de cabeamento de rede, esta capacidade de processamento
computacional pode ter uma forte influência nas variáveis de resposta.
Diante do exposto anteriormente, novos trabalhos de avaliação de
desempenho podem ser realizados adotando outros ambientes e outros fatores. Tais
estudos são de suma importância para ampliar o conhecimento e melhora em um
sistema de banco de dados distribuídos.
79
REFERÊNCIAS BIBLIOGRÁFICAS
BELL, D.; GRIMSON, J. Distributed Database Systems. 1. ed. Virgínia: AddisonWesley Pub. Co., 1992.
CASANOVA, M. A.; MOURA, A. V. Princípios de Sistemas de Gerência de Banco
de Dados Distribuídos. Campinas, 1999.
CISCO. Programa Cisco Networking Academy. 2012a. Disponível em:
<http://dc300.4shared.com/doc/Pj2XWRO6/preview.html>. Acesso em: 07 mai. 2012
__________. Cisco IOS NetFlow. 2012b. Disponível em:
<http://www.cisco.com/en/US/products/ps6601/products_ios_protocol_group_home.h
tml>. Acesso em: 11 jun. 2012.
COUTINHO, R. RPC. 2009. Disponível em:
<http://www.culturamix.com/tecnologia/rpc>. Acesso em: 24 mai. 2012.
CUNHA, S. L. O. Gerenciamento de Dados em Banco de Dados Distribuídos.
2003. Monografia (Bacharelado em Ciência da Computação) – Centro Universitário
do Triângulo, Instituto de Ciências Exatas e Tecnológicas, Uberlândia.
DEITEL. H.M.; DEITEL. P. J. Java: como programar. Tradução Edson
Furmankiewicz. 6. ed. São Paulo: Pearson Prentice Hall, 2005.
D-LINK. STACK User Manual. Product Model: xStack DGS-3600 Series. 2009.
Disponível em: <http://www.dlink.com/uk/en/support/product//media/Business_Products/DGS/DGS%203627G/Manual/DGS3600SeriesManualv25
_EN.pdf>. Acesso em: 10 out. 2012.
ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. Tradução Marília
Guimarães Pinheiro, Cláudio César Canhette, Glenda Cristina Valim Melo, Claudia
Vicei Amadeu e Rinaldo Macedo Morais. 4. ed. São Paulo: Pearson Addison Wesley,
2005.
FILHO, P. J. F. Introdução à modelagem e simulação de sistemas com
aplicações em Arena. 2. ed. Florianópolis: Visual Books, 2008.
GOULART, A. Sistemas Distribuídos e Comunicação em Grupo. 2002, 67p.
Apostila da disciplina de Tópicos Especiais em Computação – Sistemas Distribuídos.
Universidade do Vale do Itajai.
IBM Global Education. Virtualization in Education. 2007. Disponível em:
<http://www07.ibm.com/solutions/in/education/download/Virtualization%20in%20Education.pdf>.
Acesso em: 15 nov. 2012.
80
IBOPE. Intervalo de confiança. Disponível em: <http://www.ibope.com.br/ptbr/conhecimento/Leitura-de-Pesquisas-Eleitorais/Paginas/Intervalo-deConfianca.aspx>. Acesso em: 01 jun. 2013.
JAIN, R. Art of Computer Systems Performance Analysis Techniques For
Experimental Design Measurements Simulation And Modeling. New York:
Wiley, 1991.
JMETER. Apache JMeter. Disponível em: <http://jmeter.apache.org/>. Acesso em:
15 nov. 2012.
JOSE, F. P. R.; SILVA, N. S. Avaliação de Desempenho em Banco de Dados
Distribuídos considerando o Ambiente de Aplicação WEB. 2012. TCC
(Tecnólogo em Banco de Dados) – Faculdade de Tecnologia de Lins Prof. Antonio
Seabra, Lins.
LIMA, M. S. Aplicação de estratégias de replicação de base de dados em
sistemas gerenciadores de banco de dados. 2011. TCC (Bacharelado em
Sistemas de Informação) – Departamento de Sistemas de Informação, Universidade
Federal de Sergipe, Itabaiana.
LUCAS, M. W. Network Flow Analysis. San Francisco: No Starch Press, Inc., 2010.
MADRUGA, F. L. Protocolos de Multicast na Camada de Aplicação para
Streaming. 2008. TCC (Graduado em Engenharia da Computação) – Fundação
Universidade Federal do Rio Grande, Rio Grande.
MESQUITA, E. J. S. Projeto de Dados em Bancos de Dados Distribuídos. 1998.
Tese (Mestrado em Matemática Aplicada) – Instituto de Matemática e Estatística,
Universidade de São Paulo, São Paulo.
MSDN. Visão Geral dos Agentes de Replicação. 2013a. Disponível em:
<http://msdn.microsoft.com/pt-br/library/ms152501.aspx>. Acesso em: 20 mai. 2013.
__________. Servidores vinculados (Mecanismo de Banco de Dados). 2013b.
Disponível em: <http://msdn.microsoft.com/pt-br/library/ms188279.aspx>. Acesso
em: 25 mai. 2013.
__________. Replicação de instantâneo. 2013c. Disponível em:
<http://msdn.microsoft.com/pt-br/library/ms151832.aspx>. Acesso em: 29 mai.
2013c.
NIELSEN, P. et al. Microsoft SQL Server 2008 Bible. 1. ed. Indianapolis: Wiley
Publishing, Inc., 2009.
OFFICE. INT.CONFIANÇA. 2013a. Disponível em: <http://office.microsoft.com/ptbr/excel-help/int-confianca-HP005209021.aspx>. Acesso em: 01 jun. 2013.
81
__________. DESVPAD.P (Função DESVPAD.P). 2013b. Disponível em:
<http://office.microsoft.com/pt-br/excel-help/desvpad-p-funcao-desvpad-pHP010335772.aspx>. Acesso em: 01 jun. 2013.
POTTER, B. Network Flow Analysis. 2008. Disponível em:
<http://www.defcon.org/images/defcon-16/dc16-presentations/defcon-16-potter.pdf>.
Acesso em: 10 jun. 2012.
PUTTY. PuTTY: A Free Telnet/SSH Client. Disponível em:
<http://www.chiark.greenend.org.uk/~sgtatham/putty/>. Acesso em: 26 mai. 2013.
REDHAT. O que é virtualização? Disponível em:
<http://br.redhat.com/pdf/virtualization/whatisvirtualization.pdf>. Acesso em: 15 nov.
2012.
SANCHES, A. R. Fundamentos de Armazenamento e Manipulação de Dados.
Universidade de São Paulo (IME). 2012. Disponível em:
<http://www.ime.usp.br/~andrers/aulas/bd2005-1/aula4.html>. Acesso em: 02 mai.
2012.
SANTANA, M. J.; SANTANA, R. H. C. Aula 2: Avaliação de Desempenho.
Planejamento de Experimentos 2. Universidade de São Paulo (Instituto de Ciências
Matemáticas e de Computação e Departamento de Sistemas de Computação).
2012a. Disponível em <http://lasdpc.icmc.usp.br/disciplinas/posgraduacao/avaliacao-de-desempenho-1/2011/aulas-slides/aula2planeja2.ppt/view>.
Acesso em: 01 nov. 2012.
__________. Aula 3: Avaliação de Desempenho. Planejamento de Experimentos 2.
Universidade de São Paulo (Instituto de Ciências Matemáticas e de Computação e
Departamento de Sistemas de Computação). 2012b. Disponível em
<http://lasdpc.icmc.usp.br/disciplinas/pos-graduacao/avaliacao-de-desempenho1/2011/aulas-slides/aula3planeja2.ppt/view>. Acesso em: 01 nov. 2012.
SHIBAYAMA, E. T. Estudo Comparativo entre Bancos de Dados Distribuídos.
2004. TCC (Bacharelado em Ciência da Computação) – Departamento de
Computação, Universidade Estadual de Londrina, Londrina.
SILVA, E. K. O. Um estudo sobre Sistemas de Banco de Dados Cliente/Servidor.
2001. Monografia (Graduado em Processamento de Dados) – Faculdade Paraibana
de Processamento de Dados, João Pessoa.
SIQUEIRA, F. Banco de Dados Distribuídos. Universidade Federal de Santa
Catarina (Departamento de Informática e Estatística). 2012. Disponível em:
<http://www.inf.ufsc.br/~frank/BDD/BDDIntro.pdf>. Acesso em: 03 mai. 2012.
TANENBAUM, A. S. Computer Networks. Tradução Vandenberg D. de Souza. 4.
ed. Rio de Janeiro: Elsevier, 2003.
82
TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos: princípios e
paradigmas. Tradução Arlete Simille Marques. 2. ed. São Paulo: Pearson Prentice
Hall, 2007.
THE OPEN GROUP. The Open Group Debuts Open Source Licensing of DCE
Source Code. 2012. Disponível em: <https://adl.opengroup.org/comm/press/05-0112.htm>. Acesso em: 23 mai. 2012.
VMWARE. Conceitos básicos de virtualização. 2012a. Disponível em:
<http://www.vmware.com/br/virtualization/virtualization-basics/what-isvirtualization.html>. Acesso em: 15 nov. 2012.
__________. VMware Server End of Life Info Center. 2012b. Disponível em:
<http://www.vmware.com/br/products/datacenter-virtualization/server/overview.html>.
Acesso em: 15 nov. 2012.
__________. VMware Player. 2012c. Disponível em:
<http://www.vmware.com/br/products/desktop_virtualization/player/overview.html>.
Acesso em: 15 nov. 2012.
ZABBIX. Manual do Zabbix 1.8. Disponível em:
<http://www.zabbix.com/documentation/pt/1.8/complete>. Acesso em: 11 jun. 2012.
83
ANEXO A – Criação e configuração das máquinas virtuais
Os exemplos de configurações de máquinas virtuais foram realizados com
base no trabalho de conclusão de curso de Jose e Silva (2012).
A primeira máquina virtual teve o nome completo do computador alterado
após a instalação do sistema operacional Windows XP Professional. Isto foi feito
para facilitar o reconhecimento destas VMs dentro do ambiente de testes e conexão
no SQL Server 2008, pois tal sistema agrega o nome do computador como o nome
do servidor SQL.
Figura A.1 – Abrindo Propriedades do Meu computador
Para alterar o nome do computador, com o sistema operacional já inicializado
e estabilizado, é necessário clicar em Iniciar e em seguida clicar com o botão direito
do mouse em Meu computador. Um sub-menu será disponibilizado. Neste
seleciona-se a opção Propriedades, conforme a Figura A.1.
Feito isto, uma nova janela será disponibilizada. Nesta nova janela clica-se na
aba Nome do computador. Após clica-se no botão Alterar, conforme a Figura A.2.
Na próxima janela (Alterações de nome de computador) disponibilizada, no
campo Nome do computador: insira o nome o qual será definido para tal máquina e
clique em “OK”. Para este exemplo, foi definido o nome cliente-02, conforme a
Figura A.3.
84
Figura A.2 – Alterar nome do computador
Figura A.3 – Inserir nome do computador
Quando o botão “OK” é clicado, o sistema operacional disponibiliza uma
janela informando que o computador deve ser reinicializado para que as alterações
realizadas tenham efeito, conforma a Figura A.4. Clique em “OK”.
85
Figura A.4 – Primeiro aviso para reinicializar o sistema
Feito isto já é possível visualizar o novo nome do computador, conforme a
Figura A.5. Nesta tela, clique em “OK” novamente.
Figura A.5 – Nome do computador já alterado
Por fim uma última tela é disponibilizada, sugerindo que o computador seja
reinicializado. Clique em “OK”, conforme a Figura A.6.
86
Figura A.6 – Segundo aviso para reinicializar o sistema
O próximo passo é desabilitar o firewall para que as máquinas virtuais
consigam transmitir informações entre si. Para isso, clique em Iniciar  Painel de
controle e dentro da janela Painel de controle, clique sobre o ícone Firewall do
Windows. Na janela Firewall do Windows, aba Geral, selecione a opção
Desativado (não recomendável), conforme a Figura A.7. Feito isso, clique em
“OK”.
Figura A.7 – Desativar firewall
87
A seguir será necessário definir os IPs de cada máquina virtual, em uma
mesma faixa de valores, para que estas consigam transmitir dados umas para as
outras. Para isto dê dois cliques no atalho Meus locais de rede e na janela que será
disposta, selecione a opção Exibir conexões de rede, conforme a Figura A.8
Figura A.8 – Exibir conexões de rede
Figura A.9 – Propriedades do Protocolo TCP/IP
88
Na nova janela, clique com o botão direito sobre o ícone Conexão local e
selecione Propriedades no sub-menu que será exposto. Na nova janela, na caixa
de diálogo Esta conexão usa estes itens:, selecione Protocolo TCP/IP e clique no
botão Propriedades, conforme a Figura A.9.
Figura A.10 – Endereço de IP e máscara de sub-rede
Figura A.11 – Confirmação do endereço de IP e máscara de sub-rede
89
Os endereços de IP configurados nas máquinas virtuais foram fixados na
faixa 10.1.1.xx. Já a máscara de sub-rede foi configurada com o valor
255.255.255.0, em todas as VMs. Na máquina virtual utilizada neste exemplo foi
definido o IP 10.1.1.20, conforme a Figura A.10.
Para comprovar se o endereço de IP foi configurado corretamente, clique em
Iniciar  Todos os programas  Acessórios  Prompt de comando. Dentro da
janela do Prompt de comando digite a linha de comando ipconfig e tecle Enter.
Nesta mesma janela serão dispostos o endereço de IP e a Máscara de sub-rede
definidos. A Figura A.11 demonstra isto.
O presente trabalho fez uso de oito máquinas virtuais. Para verificar se uma
máquina consegue transmitir dados para a outra basta abrir o prompt de comando e
efetuar um “ping” de uma VM para a outra. Para isto, basta digitar a linha de
comando ping tendo o número do endereço de IP da VM destino na frente. Assim,
tal linha de comando tem a seguinte sintaxe: ping <endereço de IP>. Pacotes serão
enviados para a máquina destino e, caso não ocorra nenhum erro, a máquina
destino envia respostas à VM requisitante.
90
ANEXO B – Instalação e configuração do banco de dados Microsoft SQL
Server 2008 Developer
Para instalar o SQL Server, primeiramente é necessário que seja instalado o
software Windows Installer 3.1. Baixe-o e o instale.
Depois de instalado deve-se reiniciar o computador que, no caso deste
trabalho, é uma máquina virtual.
Feito isto, quando se inicia a instalação do SQL Server, tal software aponta
que há a necessidade que seja instalada a ferramenta de desenvolvimento de
software Microsoft .NET e que o Windows Installer precisar ser atualizado para uma
versão mais nova. Clique em “Ok”, conforme a Figura B.1.
Figura B.1 – Instalação do Microsoft .NET requerida
A próxima tela exibe o termo licença. Selecione a opção “Eu li e Aceito os
termos do Contrato de licença”. Após clique no botão “Instalar”, conforme a Figura
B.2.
Depois de instalado, na tela de “Instalação concluída”, clique em “Sair“,
conforme a Figura B.3.
91
Figura B.2 – Termos de Licença
Figura B.3 – Instalação do Microsoft .NET concluída
Na Figura B.4, clique em “Avançar”.
A Figura B.5 exibe uma tela de aceitação de licença para uso da empresa
Microsoft. Selecione a opção “Concordo” e clique em “Avançar”.
92
Figura B.4 – Assistente para atualização de software
Figura B.5 – Contrato de licença
Na Figura B.6, clique em “Concluir”. Feito isto, uma nova tela aparecerá
informando que o sistema operacional precisa ser reinicializado pois um dos prérequisitos instalados requer que seja feito isto, conforme demonstra a Figura B.7.
Então, clique em “Ok” e reinicialize a máquina.
93
Figura B.6 – Instalação do assistente concluída
Figura B.7 – Reinicialização do sistema operacional
Após o sistema operacional ser reinicializado, prossiga com a instalação do
SQL Server 2008, conforme a Figura B.8.
Na Figura B.9 clique na primeira opção.
94
Figura B.8 – Retorno à instalação do SQL Server 2008
Figura B.9 – Instalação e configuração do SQL Server 2008
Na Figura B.10, clique em “Ok”. A Figura B.11 demonstra que é necessário
inserir a chave de validação do produto. Após inserí-la, clique em “Ok”.
95
Figura B.10 – Visualização parcial dos resultados da instalação
Figura B.11 – Inserção da chave de validação
Quando chegar à Figura B.12, clique no botão “Select All” e clique em “Next”.
Na Figura B.13, selecione a opção “Default Instance” e clique em “Next”.
96
Figura B.12 – Seleção de características
Figura B.13 – Seleção de instância
Na Figura B.14 selecione todas as opções como AUTORIDADE NT/SYSTEM
e clique em “Next”
Na figura B.15, selecione a opção Mixed Mode, insira nos campos requeridos
e clique na opção Add Current User. Feito isto, clique em “Next”.
97
Figura B.14 – Conta de serviço
Figura B.15 – Adicionando usuário corrente
Na Figura B.16, clique em Add Current User e após, clique em “Next”.
Na Figura B.17, selecione a opção Install the native mode default
configuration e clique em “Next”.
98
Figura B.16 – Configuração de análise de serviços
Figura B.17 – Configuração dos serviços de relatório
A Figura B.18 demonstra o fim da instalação. Verifica-se que no final da
instalação ocorreu um erro. Porem, este erro não influenciou nos resultados. Clique
em “Close”.
99
Figura B.18 – SQL instalado com sucesso
Após instalado o SQL Server é necessário configurar o firewall do sistema
operacional, para que o mesmo não barre o acesso de requisições através da porta
1433. Para isto, adicione uma porta no firewall, dê o nome 1433, com número da
porta 1433, selecionando a opção TCP.
Feito isto, configure o SQL Server acessando o SQL Server Configuration
Manager, conforme demonstra a Figura B.19.
Figura B.19 – SQL Server Configuration Manager
100
Na Figura B.20, cliquem em “TCP/IP” e selecione “Propriedades” no submenu que será disposto.
Figura B.20 – Propriedades do TCP/IP
Figura B.21 – Propriedades do TCP/IP
Na figura B.21, mude para Yes a opção Enabled. Habilite também a
opção Named Pipes, conforme a Figura B.22.
101
Figura B.21 – Habilitando Named Pipes
Feito isto, acesse o SQL Server Management Studio, conforme a Figura B.22.
Figura B.22 – SQL Server Management Studio
Após acessar o SQL Server, clique com o botão direito sobre a instância
CLIENTE-02, fruto desta configuração, e selecione a opção Facets, conforme a
Figura B.23.
102
Figura B.23 – Opção Facets
Na próxima tela, em Facet, selecione a opção Surface Area Configuration,
conforme a Figura B.24.
Figura B.24 – Surface Area Configuration
Em Facet properties, selecione RemoteDacEnabled e mude sua opção
para True, conforme a Figura B.25.
103
Figura B.25 – RemoteDacEnabled
O próximo passo e reiniciar o SQL Server e o SQL Server Agent, conforme as
Figuras B.26 e B.27, respectivamente.
Figura B.26 – Reinicializando o SQL Server
104
Figura B.27 – Inicializando o SQL Server Agent
105
ANEXO C – REPLICAÇÃO MERGE SQL SERVER
CONFIGURANDO O DISTRIBUIDOR MICROSOFT SQL SERVER 2008
Para a criação do distribuidor, após acessado o SQL Server, clique com o
botão direito em Replication e selecione a opção Configure Distribuition,
conforme a Figura C.1
Figura C.1 – Configuração de distribuição
Figura C.2 – Tela inicial
106
Na tela inicial, clique em “Next”, conforme a figura C.2. Na próxima etapa é
escolhido o distribuidor que, no caso, será a própria máquina. Nesta etapa, clique
em “Next”, conforma a Figura C.3.
Figura C.3 – Escolha do distribuidor
Na Figura C.4, clique em “Next”.
Figura C.4 – Escolha do distribuidor
107
O próximo passo é escolher o nome do banco de dados distribuidor.
Mantenha o nome indicado e clique em “Next”, conforme a Figura C.5.
Figura C.5 – Escolha do nome do distribuidor
Na figura C.6, clique em “Next”.
Figura C.6 – Permissão para distribuição quando for publicador
108
Na Figura C.7 clique em “Next”. Por fim, a Figura C.8 exibe as configurações
que serão aplicadas ao servidor. Nesta tela, clique em “Finish”.
Figura C.7 – Configurar distribuidor
Figura C.8 – Configurações que serão aplicadas
109
A Figura C.9 exibe uma tela informando que o distribuidor foi
configurado com sucesso e que tal servidor foi habilitado para funcionar também
como publicador.
Figura C.9 – Configuração realizada com sucesso
CRIANDO UMA PUBLICAÇÃO
Nesta etapa será configurada uma publicação.
Figura C.10 – Nova publicação
110
Clique em Replication e com o botão direito, clique na opção Local
Publications, selecionando New Publication, conforme Figura C.10.
Na tela inicial, clique em “Next”, conforme a Figura C.11.
Figura C.11 – Tela inicial
Figura C.12 – Banco de dados escolhido
111
Na próxima etapa é escolhido o banco de dados que terá seus dados
publicados, conforme a Figura C.12.
A seguir deve ser escolhido o tipo de publicação que será feita. Para este
trabalho foi adotada a publicação do tipo mesclagem, conforme a Figura C.13.
Figura C.13 – Publicação Merge
Na Figura C.14, clique em “Next”.
Figura C.14 – Versão do SQL Server
112
A próxima etapa é a escolha das tabelas que serão publicadas. Selecione a
opção Tables e clique em “Next”
Figura C.15 – Seleção de tabelas a serem publicadas
Na Figura C.16 clique em “Next”.
Figura C.16 – Adição de filtros
113
A Figura C.17 expõe a opção para configurar o Agente de Instantâneo.
Selecione as opções Create a snapshot immediately e Schedule the Snapshot
Agent to run at the following times:. Após isto, clique em Change… Na janela que
é disponibilizada, conforme a Figura C.18, configure para que a aplicação do
instantâneo seja feita diariamente, adotando o intervalo mínimo permitido pelo SQL
Server, que é de 10 segundos.
Figura C.17 – Especificação de execução do Agente de Instantâneo
Figura C.18 – Agendamento de execução do Snapshot Agent
114
A Figura C.19 exibe as configurações escolhidas. Clique em “Next” nesta
etapa.
Figura C.19 –Confirmação das configurações
Na Figura C.20, clique em Security Settings para configurar a conexão do
Agente.
Figura C.20 – Configuração da conexão do Agente
115
Na próxima etapa, selecione as opções conforme disposto na Figura C.21 e,
em Login, insira o usuário “sa” e nos campos Password e Confirm Password, insira
do servidor publicador, que no caso, é o própria máquina fruto deste exemplo.
Figura C.21 – Configuração de segurança do Agente
Na Figura C.22, clique em “Next”.
Figura C.22 – Confirmação das configurações da conexão do Agente
116
Na Figura C.23, clique em “Next”.
Figura C.23 – Criar a publicação
Na Figura C.24, clique em “Next” novamente.
Figura C.24 – Confirmação das configurações que serão aplicadas
117
A Figura C.25 demonstra que as configurações foram aplicadas com sucesso.
Clique em “Close”.
Figura C.25 – Configurações aplicadas com sucesso
Na Figura C.26 é possível visualizar a nova publicação criada.
Figura C.26 – Nova publicação já disponível
118
CRIANDO UM ASSINANTE
Para criar um assinante, clique com o botão direito em Local Subscriptions
e selecione New Subscriptions..., conforme a Figura C.27
Figura C.27 – Criando um novo assinante
Na Figura C.28, cliquem em “Next”.
Figura C.28 – Tela inicial de criação do assinante
119
A próxima etapa é escolher para qual publicação será criado o novo
assinante. Na Figura C.29 foi escolhida a publicação “Exemplo_publicacao_3”.
Clique em “Next”.
Figura C.29 – Escolha da publicação
Na Figura C.30, clique em “Next”
Figura C.30 – Agentes rodarão no distribuidor
120
A próxima etapa é escolher um novo assinante. Na Figura C.31, clique em
Add SQL Server Subscriber...
Figura C.31 – Adicionando um servidor como assinante
A exemplificar, o servidor de nome CLIENTE-03 será o novo assinante da
publicação, conforme a Figura C.32. Insira o nome do usuário administrador (sa) e a
senha do mesmo. Clique em “Connect”.
Figura C.32 – Acesso ao servidor CLIENTE-03
121
O próximo passo é criar um banco de dados no CLIENTE-03, o qual receberá
as tabelas e dados do publicador. Então, na Figura C.33, selecione CLIENTE-03 e
crie um novo banco de dados para ele. Para isto, selecione a opção <New
database...>, conforme a Figura C.33.
Figura C.33 – Novo banco de dados
Na nova tela, dê um nome para o banco de dados e clique em “Ok”, conforme
a Figura C.34.
Figura C.34 – Acesso ao servidor CLIENTE-03
122
A Figura C.35 expõe o servidor e o banco de dados escolhidos para receber
as tabelas e dados do publicador. Clique em “Next”.
Figura C.35 – Servidor e banco de dados do assinante
A Figura C.36 expõe a opção para que sejam informadas as configurações de
acesso e segurança do Merge Agent do servidor CLIENTE-03. Clique no botão “...”.
Figura C.36 – Inserir opções de acesso e segurança
123
Na próxima etapa, selecione as opções conforme dispostas na Figura C.37,
inserindo o nome do super administrador (sa) e a senha do mesmo.
Figura C.37 – Inserir opções de acesso e segurança
A Figura C.38 exibe parcialmente as configurações realizadas. Clique em
“Next”.
Figura C.38 – Confirmação de configurações, parcial
124
Na
Figura
C.39,
selecione
a
opção
de
agendamento
para
rodar
continuamente.
Figura C.39 – Agente em funcionamento contínuo
Na Figura C.40, selecione a opção para inicializar imediatamente a
assinatura. Clique em “Next”.
Figura C.40 – Inicializar imediatamente
Na Figura C.41, cliquem em “Next”.
125
Figura C.41 – Tipo de subscrição: Server
Na Figura C.42, clique em “Next”.
Figura C.42 – Criar a nova assinatura
Na Figura C.43 confirme as configurações que serão aplicadas e clique em
“Finish”.
A Figura C.44 exibe que a criação do assinante foi realizada com sucesso.
126
Figura C.43 – Confirmação de configurações
Figura C.44 – Assinatura criada com sucesso
CONFIGURANDO LINKED SERVER
Para este trabalho foram configurados Linked Servers (servidores vinculados)
para cada assinante. Isto se fez necessário pois o servidor principal teria que
funcionar apenas como uma ponte entre a conexão externa ao ambiente do banco
de dados distribuídos e os hosts (máquinas) que compõem o bdd. Desta forma, a
127
Figura C.45 dispõe o primeiro passo para a criação um novo Linked Server, para o
host de nome CLIENTE-03
Figura C.45 – Novo Linked Server...
O próximo passo é dar um nome para este Linked Server e inserir o IP do
host CLIENTE-03, conforme a Figura 46.
Figura C.46 – Configurações do Linked Server
128
O próximo passo é inserir as informações de usuário e senha de acesso ao
host CLIENTE-03. Para isto, clique em “Add”, conforme a Figura C.47.
Figura C.47 – Configurações do Linked Server
Na linha azul, como disposto na Figura C.48, clique abaixo de Local Login e
insira o nome do usuário do servidor CLIENTE-03. Em Remote User, insira o mesmo
nome. Por fim, insira a senha deste usuário. Selecione também a opção “Be made
without using a security context”. Após, clique em “Ok”.
Figura C.48 – Usuário e senha do servidor acessado remotamente
129
A Figura C.49 expõe um comando de seleção de dados já fazendo uso do
Linked Server criado. Pode-se observar que a requisição dos dados é feita para o
host CLIENTE-03 e não para o servidor o qual está realizando a requisição.
Figura C.49 – Exemplo de uso do Linked Server
130
ANEXO D – Elaboração de um plano de teste com a ferramenta JMeter
Para poder utilizar normalmente esta ferramenta, cabe algumas explicações.
Primeiramente, esta ferramenta funciona sem a necessidade de instalá-la, apenas é
necessário executar o “ApacheJMeter.jar”, que encontra-se dentro da pasta “bin”,
contida no pacote baixado “jakarta-jmeter-2.5”. Contudo, ainda houve a necessidade
de apontar para cada teste, na tela inicial dos mesmos, a localização da biblioteca
“jtds-1.3.0.jar”, pois sem isto, a ferramenta não funcionava. A adição desta biblioteca
pode ser visualizada na Figura D.1, na parte inferior da mesma. Vale lembrar que a
ferramente JMeter foi obtida fazendo o download da mesma, de forma compactada.
Assim, este arquivo deve ser descompactado no local escolhido pelo usuário.
Figura D.1 – Tela inicial do JMeter, adição da biblioteca jtds-1.3.0.jar
O segundo passo é adicionar o Grupo de Usuários. Para isto, clique com o
botão direito do mouse no Plano de teste, vá em Adicionar -> Threads (Users) ->
Grupo de usuários. A Figura D.2 expõe a tela que será aberta.
Nesta tela é onde serão feitas as configurações com relação a quantidade de
usuários que serão simulados e quantas vezes estes usuários irão executar uma
requisição de dados junto ao banco de dados distribuído. Ainda nesta tela, em
“tempo de inicialização”, configure-o para zero. Desta forma o não haverá intervalos
entre a execução de um usuário e outro.
131
Figura D.2 – Configuração de Grupo de usuários
A próxima etapa é a configuração da conexão com o banco de dados, através
do JDBC. Nesta fase temos que configurar o nome da Variável. Este nome deverá
ser o mesmo nome que será dado quando houver a configuração da Requisição
JDBC, que será explicada através da Figura D.4. Para este exemplo, deu-se o nome
de “csv_01”.
A outra parte da configuração é a que contem os parâmetros que realizam
efetivamente a conexão com o banco de dados. Desta forma, em “URL do banco de
dados”, passa-se o caminho da seguinte maneira:
jdbc://sqlserver://<número
do
IP
do
servidor
que
será
acessado>:1433;InstanceName=<instânciaSQL>;databaseName=<nome do banco
de dados>. Para este exemplo, essa linha pode ser verificada através da Figura D.4.
Em
“Classe
do
Driver
JDBC”,
adicione
a
linha
“com.microsoft.sqlserver.jdbc.SQLServerDriver”, que se refere ao driver de conexão
JDBC. Já em nome de usuário, adicione o usuário “sa” e passe a senha do mesmo.
Desta forma, a ferramenta JMeter consegue efetuar requisições de dados junto ao
servidor SQL Server.
132
Figura D.3 – Configuração da Conexão JDBC
Na Figura D.4 será realizada a configuração da requisição JDBC. Nesta tela,
em “Nome de Variável”, adicione o mesmo nome dado quando foi configurada a
conexão JDBC que, para este exemplo, recebeu o nome de “csv_01”. É este nome
que faz a “amarração” entre as requisições feitas ao banco de dados e a
configuração para que estas requisições cheguem ao bdd.
Figura D.4 – Configuração da Requisição JDBC
133
No campo “Tipo de consulta:”, selecione a opção “Callable Statement”. Este
tipo de consulta faz com que qualquer tipo de consulta ao banco de dados seja
aceita, fazendo uso do arquivo CSV, o qual será explicado na Figura D.6. Para tanto,
ainda há a necessidade de no campo “Consulta”, passar o parâmetro “$(SQLSmt)”
A Figura D.5 demonstra as configurações necessárias para que seja possível
a utilização do arquivo do tipo CSV. Este arquivo do tipo CSV é um arquivo de
planilha, o qual contem dados em cada linha, que são separados por um caractér.
Desta maneira várias linhas podem ser passadas como requisições, para o JMeter,
que as dispara junto ao bdd. Para que a ferramenta JMeter consiga ler esse arquivo,
deve-se colocar este dentro da pasta “bin”, que neste exemplo, pode ser acessada
através do caminho “C:\jakarta-jmeter-2.5\bin”.
No campo “Nome do arquivo” deve ser colocado o mesmo nome do arquivo
CSV
que
foi
alocado
na
pasta
“bin”.
Aqui,
tal
arquivo
foi
nomeado
“CSV_JMETER_teste_02.csv”. Em codificação do arquivo, insira a informação “UTF8”. Já em “Nome das variáveis (separados por vírgula), coloque “SQLStmt”. No
campo “Separador (usar „t\‟ para tabulações)”, insira o ponto-e-vírgula (;). Todas as
outras configurações são mantidas as padrões.
Figura D.5 – Configuração dos dados CSV
A Figura D.6 expõe as linhas de requisições ao banco de dados, contidas no
arquivo CSV utilizado neste exemplo.
134
Figura D.6 – Arquivo CSV
A Figura D.7 exibe as informações logo após a execução de um plano de
testes elaborado no JMeter. Para adicionar o “Gráfico Agregado” clique com o botão
direito do mouse sobre o plano de teste, selecione Adicionar -> Ouvinte -> Gráfico
Agregado, conforme a Figura D.8.
Figura D.7 – Gráfico Agregado
Figura D.7 – Inserção do Gráfico Agregado
135
Verifica-se através da Figura D.7 que foram executadas 4 requisições ao
banco de dados, através da coluna “#Amostras” e que não houve nenhum erro com
estas requisições, ou seja, todas obtiveram respostas as suas requisições, conforme
a coluna “%erro” demonstra.
Download

centro estadual de educação tecnológica paula souza