• Nenhum resultado encontrado

4. ESTUDO DE CASO

4.1 Um ambiente de gerenciamento de serviços de TI: o microcosmo existente

4.2.1 Modelos TQP Elaborados no Estudo de Caso

4.2.1.3 Modelo do Servidor de Aplicação

Figura 25. Modelo TQP do componente Servidor de Aplicações.

4.2.1.3.1 Descrição

O primeiro, dos dois modelos representativos do comportamento do Servidor de Aplicação, está apresentado na Figura 25. O Servidor de Aplicação é o componente responsável pelo tratamento da requisição de páginas dinâmicas feita pelos usuários. Páginas dinâmicas são páginas que possuem seus dados recuperados sob demanda. As páginas dinâmicas são solicitadas ao Servidor de Aplicação pelo Servidor Web. O modelo do Servidor de Aplicação é composto das seguintes variáveis – Quadro 10:

Quadro 10. Variáveis utilizadas no primeiro modelo do Servidor de Aplicação – relacionamento com Banco de Dados e com Integração.

Quantidade Entidade Espaço quantitativo Descrição Taxa de páginas solicitadas ao Servappl {zero, mais}

Velocidade que as páginas dinâmicas são solicitadas ao Servidor de Aplicação

Servidor de Aplicação Quantidade de recursos de integração ocupados

Servappl {zero, pouco, muito}

Quantidade de recursos em uso para satisfazer a requisição de dados vindos de integração

Quantidade de conexões simultâneas de bd

Servappl {zero, pouco, muito}

Quantidade de recursos em uso para satisfazer a requisição de dados vindos do Banco de Dados Quantidade de páginas retornadas pelo servidor appl

Servappl {zero, pouco, muito}

Quantidade de páginas retornadas pelo Servidor de Aplicação (páginas dinâmicas)

Taxa de recursos

liberados Servappl {zero, mais}

Velocidade pela qual os recursos são liberados para serem usados novamente

Quantidade de espera de integração

Servappl {zero, pouco, muito}

Quantidade de espera por recursos de integração Quantidade de

espera de conexões

Servappl {zero, pouco, muito}

Quantidade de espera por recursos de conexões ao Banco de Dados

O processo que inicia a dinâmica do modelo é: taxa de páginas solicitadas ao Servidor de Aplicação. Esse processo é sensibilizado como conseqüência da quantidade de páginas solicitadas ao Servidor Web. O fragmento de modelo na Figura 26 mostra como a variável quantidade de páginas solicitadas sensibiliza a taxa de páginas solicitadas ao Servidor de Aplicação. Quanto maior o número de páginas solicitadas ao Servidor Web, proporcionalmente maior o número solicitado ao Servidor de Aplicação. Essa relação não aparece na Figura 25, pois a Figura não apresenta o Servidor Web.

Figura 26. Sensibilização do modelo do componente Servidor de Aplicação.

A partir da solicitação de páginas ao Servidor de Aplicação foi modelado o seguinte comportamento, ilustrado pela Figura 25: a taxa de solicitação de páginas ao Servidor de Aplicação influencia diretamente a quantidade de conexões simultâneas de Banco de Dados e a quantidade de recursos de integração ocupados. Essas relações estão destacadas em preto. A quantidade de conexões simultâneas de Banco de Dados representa quantas solicitações de dados ao Banco de Dados foram feitas. A quantidade de recursos de integração ocupados representa quantas solicitações de dados ao componente integração foram feitas. As quantidades de conexões e recursos de integração afetam, como conseqüência direta, a quantidade de páginas retornadas pelo Servidor de Aplicação. Essas relações estão destacadas na Figura 25 pela cor cinza, linha contínua.

O modelo apresentado na Figura 25 representa o primeiro estado obtido na simulação do Servidor de Aplicação. Esse estado ocorre quando o sistema estava inoperante e começa a haver solicitação de páginas. Há duas influências na Figura 25, destacadas em cinza com linhas tracejadas, ainda não explicadas. As influências existentes entre a taxa de recursos liberados e as quantidades de integração e conexão. Para explicar essas relações é utilizado o modelo apresentado na Figura 27, com os destaques em cinza. Essa Figura mostra o modelo qualitativo do Servidor de Aplicação no estado 2. Nesse estado é possível ver que, quando há

páginas retornadas, proporcionalmente há liberação de recursos e a taxa de liberação de recursos influencia de maneira inversamente proporcional a quantidade de conexões e de recursos de integração.

A condição para haver liberação de recursos é ilustrada pela Figura 28. A condição de haver liberação de recursos é a seguinte: a quantidade de páginas retornadas tem que ser maior do que “zero” (‘<’ à esquerda).

Figura 28. Condição para a liberação de recursos.

Existem, ainda, duas relações que não apareceram nas Figuras 25 e 27, pois passam a existir à medida que o sistema atinge certas condições de funcionamento. São as relações existentes entre as variáveis quantidades de conexões simultâneas de bd e quantidade de recursos de integração ocupados com a variável quantidade de espera de integração e com a variável quantidade de espera de conexões respectivamente. Essas relações estão destacadas na Figura 29, com elipses tracejadas.

Figura 29. Modelo TQP do componente Servidor de Aplicações com liberação de recursos.

Elas ocorrem apenas quando as quantidades de recursos de integração e as quantidades de conexões atingem o valor “muito”. Essas condições podem ser observadas nos fragmentos de modelos das Figuras 30 e 31.

Figura 31. Condição para haver espera por recursos de conexões com o Banco de Dados.

Existem, ainda, duas outras relações que ocorrem no sistema quando a quantidade de espera por conexões e por recursos de integração possui o valor “muito”. Nessa situação o sistema está sobrecarregado, havendo, assim, uma proporcionalidade inversa na taxa de páginas solicitadas ao Servidor de Aplicação. Se há muita espera, menos páginas podem ser solicitadas e tratadas pelo Servidor de Aplicação. A Figura 32 destaca essas relações com elipses pontilhadas e as Figuras 33 e 34 mostram os fragmentos de modelo com as condições a serem observadas para que essas relações ocorram.

Figura 32. Quando há espera excessiva por recursos há uma conseqüência inversa relativa à taxa de solicitações de páginas.

Figura 33. Condição para haver feedback negativo para a taxa de páginas solicitadas devido ao excesso de espera por conexões de Bancos de Dados

Figura 34. Condição para haver feedback negativo para a taxa de páginas solicitadas devido ao excesso de espera por recursos de Integração.

O segundo modelo que representa o comportamento do Servidor de Aplicação é ilustrado na Figura 35. Ele descreve a dinâmica de ocupação e liberação da memória utilizada pelos programas que recebem os dados dos bancos de dados por meio de conexões e pelos que recebem dados pelo uso de recursos de integração.

O modelo de alocação e liberação de memória é composto das seguintes variáveis – Quadro 11:

Quadro 11. Variáveis utilizadas no segundo modelo do Servidor de Aplicação – alocação e liberação de memória. Quantidade Entidade Espaço quantitativo Descrição Taxa de páginas solicitadas ao Servidor de Aplicação Servappl {zero, mais}

Velocidade que as páginas dinâmicas são solicitadas ao Servidor de Aplicação Ocupação média de memória Servappl {muito pouco, pouco, médio, muito} Quantidade de memória ocupada por programas que solicitam dados ao componente integração ou ao Banco de Dados Quantidade de execuções do Garbage Colector Servappl {muito pouco, pouco, médio, muito} Quantidade de execuções do utilitário Garbage Colector para liberação de memória

Taxa de

memória liberada

Servappl {zero, mais}

Velocidade pela qual a memória é liberada para ser usada novamente Quantidade de

espera do Garbage Colector

Servappl {zero, pouco, muito}

Quantidade de espera devido às execuções do Garbage Colector

A taxa de solicitação de páginas ao Servidor de Aplicação influencia diretamente a ocupação média de memória. Isso ocorre porque quanto mais páginas são solicitadas ao Servidor de Aplicação, mais programas de coleta de dados e montagem de páginas rodam simultaneamente. Cada programa faz a alocação de uma parte da memória do servidor. O crescimento da alocação da memória do servidor dispara a execução de um componente utilitário chamado Garbage Colector. A função do Garbage Colector é liberar memória alocada por programas

que já terminaram a sua execução. Quanto mais rápida a ocupação da memória, como conseqüência mais vezes o Garbage Colector executa. As relações entre a taxa de páginas solicitadas ao Servidor de Aplicação, a ocupação média de memória e a quantidade de execuções do Garbage Colector estão destacadas na Figura 35, com linha tracejada.

Outras relações ilustradas pela Figura 35 são as seguintes: a quantidade de execuções do Garbage Colector é diretamente proporcional a taxa de memória liberada. Esta, por sua vez, influencia inversamente a ocupação média de memória, ou seja, quanto mais memória liberada menor a ocupação de memória. Essas relações estão destacadas pelas elipses de linha contínua.

Caso a ocupação de memória se mantenha sempre em um nível alto, mesmo com a liberação periódica feita pelo Garbage Colector, começam a aparecer outros problemas. Esses problemas ocorrem porque quando o Garbage Colector executa, consome muitos recursos do sistema. Caso ele seja executado com muita freqüência passa a haver espera no sistema. Essa espera leva conseqüências negativas para a taxa de páginas solicitadas ao Servidor de Aplicação. Esse comportamento pode ser observado nas relações destacadas na Figura 36. No fragmento de modelo da Figura 37 é possível observar, a condição pela qual há proporcionalidade inversa para a taxa de páginas solicitadas ao Servidor de Aplicação. Ela ocorre quando a quantidade de espera do Garbage Colector é igual ao valor “muito”.

Figura 36. Quando há uma espera excessiva por execuções do Garbage Colector há uma conseqüência inversa relativa à taxa de solicitações de páginas

Figura 37. Condição para haver feedback negativo para a taxa de páginas solicitadas devido ao excesso de espera por execuções do Garbage Colector.

4.2.1.3.2 Simulação

A simulação para o primeiro modelo do Servidor de Aplicação contempla os recursos de integração e as conexões de Banco de Dados. Essa simulação foi feita considerando que o Servidor Web começa a solicitar páginas dinâmicas ao Servidor de Aplicação. Nesse cenário a quantidade de conexões simultâneas de bd estava com o valor “zero”, bem como a quantidade de recursos de integração ocupados. Não há páginas retornadas nem recursos liberados e não existe espera por recursos - Figura 38.

Figura 38. Cenário para a simulação do Servidor de Aplicação. Começa a haver solicitações do Servidor Web por páginas dinâmicas.

Efetuada a simulação, são observados diversos comportamentos. A existência de muitos estados possíveis é decorrente da interação entre as diversas quantidades do modelo. A fim de ilustrar o resultado da simulação foram selecionados os estados iniciais e quatro caminhos comportamentais possíveis. O resultado da simulação pode ser visto na Figura 39.

Figura 39. Simulação relevante para ilustrar o comportamento do sistema.

Os estados iniciais da simulação: 1, 2, 3, 4 e 5, estão descritos na Figura 40. Nesses estados não há espera, nem para conexões, nem para recursos de integração. A mudança do estado 1 para o estado 2 ocorre, porque o Servidor Web começa a solicitar páginas dinâmicas ao Servidor de Aplicação. Tanto recursos de integração quanto as conexões ao Banco de Dados são alocados. A partir do estado 2 podem acontecer 4 possibilidades descritas pelos estados 3, 4, 5, ou 6:

1ª) o sistema permanece em equilíbrio. A taxa de solicitações de páginas e a taxa de liberação de recursos são equivalentes, e as quantidades de conexões e de recursos ocupados de integração permanecem em equilíbrio no intervalo “pouco“. Esse comportamento é descrito pelo estado 3. O estado 3 é um estado final;

Figura 40. Simulação – estados iniciais do Servidor de Aplicação.

2ª) o sistema continua a receber solicitações de páginas, entretanto apenas a quantidade de conexões simultâneas de Banco de Dados continua a crescer, mas esse crescimento é compensado pelo crescimento da taxa de recursos liberados. Esse comportamento pode ser observado no estado 4. O estado 4 é um estado final;

3ª) o sistema continua a receber solicitações de páginas, entretanto apenas a quantidade de recursos de integração ocupados continua a crescer, mas esse crescimento é compensado pelo crescimento da taxa de recursos liberados. Esse comportamento pode ser observado no estado 5. O estado 5 é um estado final;

4ª.) o sistema continua a receber solicitações de páginas, a quantidade de conexões simultâneas de Banco de Dados e quantidade de recursos de integração ocupados continua a crescer a uma taxa maior do que a taxa de recursos liberados. Esse comportamento pode ser observado no estado 6. O estado 6 é um estado intermediário e faz parte de quatro caminhos comportamentais que são analisados a seguir:

1) caminho 1, 2, 6, 8, 12, 15 – esse comportamento está ilustrado pela Figura 41. Até o estado 6 tanto as conexões com Banco de Dados quanto os recursos de integração encontram-se em crescente utilização. A partir do estado 8 a utilização de conexões de Banco de Dados entra em equilíbrio e os recursos de integração ocupados continuam a ser consumidos de forma crescente. Dado o crescente nível de utilização de recursos de integração, começa a haver espera por recursos até haver um equilíbrio do sistema, no estado 15, no qual a taxa de recursos liberados se iguala a taxa de páginas solicitadas ao Servidor de Aplicação. O valor “muito” na quantidade de espera de integração produz uma conseqüência inversa na taxa de páginas solicitadas ao Servidor de Aplicação – vide Figura 32 e 33. O equilíbrio acontece com um alto nível de utilização de conexões de bancos de dados e de recursos de integração e, conseqüentemente, com uma grande quantidade de páginas retornadas pelo Servidor de Aplicação.

Figura 41. Simulação – conexões estáveis e recursos de Integração crescentemente utilizados a partir do estado 6.

2) caminho 1, 2, 6, 9, 21, 23 – esse comportamento está ilustrado pela Figura 42. É similar ao anterior, com a diferença, que nesse caminho, os recursos de integração tornam-se estáveis no estado 9 e as conexões de Banco de Dados continuam a crescer. Novamente, o equilíbrio é alcançado com um alto nível de utilização do sistema, representado pelo estado 23.

Figura 42. Simulação – conexões crescentemente utilizadas e recursos de Integração estáveis.

3) caminho 1, 2, 6, 10, 30, 35 – esse comportamento está ilustrado pela Figura 43. O consumo de recursos permanece crescente nos estado 6, 10 e 30, gerando espera por conexões e por recursos de integração. Essa espera traz conseqüências inversas para a taxa de solicitação de páginas ao Servidor de Aplicação. O equilíbrio é alcançado no estado 27 com um alto nível de utilização do sistema, com muita espera por recursos e com a taxa de recursos liberados igual a taxa de páginas solicitadas ao Servidor de Aplicação.

Figura 43. Simulação – conexões e recursos de Integração crescentemente utilizados até o equilíbrio.

4) caminho 1, 2, 6, 10, 30, 34, 38 – esse comportamento está ilustrado pela Figura 44. É similar ao anterior, com a diferença, que o equilíbrio não é alcançado e o consumo de recursos do sistema continua sendo crescente, ou seja, a taxa de liberação de recursos é inferior a taxa de solicitação de páginas ao Servidor de Aplicação. Os estados 34 e 38 ilustram que, devido à quantidade excessiva de espera, há uma diminuição na taxa de páginas solicitadas ao Servidor de Aplicação. Caso a taxa de páginas solicitadas não diminua a ponto de se igualar com a taxa de liberação de recursos, provavelmente o sistema entrará em colapso por falta de recursos.

Figura 44. Simulação – conexões e recursos de Integração crescentemente utilizados sem alcançar o equilíbrio.

A simulação do segundo modelo representativo do comportamento do Servidor de Aplicação contempla a dinâmica de ocupação e liberação da memória utilizada pelos programas que recebem os dados dos bancos de dados por meio de conexões e pelos que recebem dados pelo uso de recursos de integração. O cenário para a simulação dessa dinâmica é apresentado na Figura 45. O cenário considera que o Servidor de Aplicação já está recebendo solicitações de páginas do Servidor Web por algum tempo. Tanto a taxa de solicitação de páginas quanto a taxa de liberação de memória estão com o valor positivo. A ocupação média de memória está com um valor “muito” assim como a quantidade de execuções do Garbage Colector. Nesse cenário, a espera do sistema está com um valor igual a “pouco”.

Figura 45. Cenário para a simulação do Servidor de Aplicação. Já há, por algum tempo, solicitação de páginas dinâmicas pelo Servidor Web ao Servidor de Aplicação.

A Figura 46 apresenta três possibilidades a partir do cenário apresentado na Figura 45: a taxa de solicitação de páginas pode ser igual, maior ou menor do que a taxa de liberação de memória, simulando diferentes comportamentos do fluxo de solicitações ao Servidor de Aplicação. A taxa de solicitação pode estar crescendo, estável ou decrescendo como conseqüência do fluxo de entrada dos usuários no Servidor Web.

Figura 46. Nesse cenário o Servidor de Aplicação já estava em funcionamento por algum tempo. A simulação mostra três possibilidades.

O estado 1 representa a inequação taxa de páginas solicitadas ao Servidor de Aplicação < taxa de memória liberada. O estado 2 a equação: taxa de páginas solicitadas ao Servidor de Aplicação = taxa de memória liberada e o estado 3 a inequação: taxa de páginas solicitadas ao Servidor de Aplicação > taxa de memória liberada.

A simulação total desse cenário, Figura 47, apresenta os desdobramentos comportamentais possíveis a partir de cada estado. O estado 2, onde a taxa de páginas solicitadas ao Servidor de Aplicação = taxa de memória liberada, é um estado de equilíbrio, ou seja, o sistema permanece em equilíbrio com os valores atribuídos no cenário inicial.

Figura 47. Simulação total do cenário onde o Servidor de Aplicação já estava em funcionamento por algum tempo.

A análise feita a partir do estado 3 apresenta somente dois caminhos comportamentais possíveis: são eles os caminhos 3, 4 ou 3, 5. A existência de apenas dois caminhos é decorrente do cenário da simulação onde há uma quantidade de consumos de recursos muito grande. No primeiro o sistema encontra o equilíbrio no estado 4, após a proporcionalidade inversa da quantidade de espera do Garbage Colector atuar sobre a taxa de solicitação de páginas e reduzir o fluxo de solicitações. No segundo caminho, o estado 5 apresenta a situação onde a proporcionalidade inversa causada pela quantidade de espera do Garbage Colector não é suficiente para prover o equilíbrio e a taxa de páginas solicitadas continua maior do que a taxa de memória liberada. Esses comportamentos são ilustrados

pela Figura 48. Nessa Figura é possível observar que no estado 5 a derivada da taxa de páginas solicitadas possui o valor negativo indicando que a espera decorrente da execução do Garbage Colector continua reduzindo a taxa de páginas solicitadas ao Servidor de Aplicação.

Figura 48. Simulação onde a taxa de páginas solicitadas é maior do que a taxa de memória liberada. A memória é ocupada mais rápida do que é liberada.

Já a partir do estado 1, quando há poucas solicitações de páginas e, conseqüentemente, maior quantidade de memória liberada do que ocupada, o sistema apresenta várias opções comportamentais possíveis que ilustram o decréscimo de atividade do sistema. Vamos analisar os caminhos 1, 8, 12 e 1, 8, 11, 18, Figuras 49 e 50, respectivamente. No primeiro, o sistema encontra o equilíbrio no estado 12 . Desde que a taxa de memória liberada é maior do que a taxa de páginas solicitadas ao Servidor de Aplicação há um decréscimo na ocupação média de memória bem como na quantidade de execuções do Garbage Colector. O equilíbrio é alcançado com o valor “pouco” na ocupação de memória e na execução do Garbage Colector e a quantidade de espera do Garbage Colector permanece com o

valor de “pouco” sem tendência de crescimento ou de decréscimo. A taxa de memória liberada se iguala a taxa de páginas solicitadas ao Servidor de Aplicação.

Figura 49. Simulação onde a taxa de páginas solicitadas é menor do que a taxa de memória liberada. A memória é liberada com mais velocidade do que é ocupada. Equilíbrio no valor “pouco”.

Já no caminho 1, 8, 11, 18 o sistema encontra o equilíbrio no estado 18. Essa situação apresenta um decréscimo de atividade no sistema até um nível muito baixo, ou seja, muito poucos usuários solicitando páginas ao Servidor Web e este ao Servidor de Aplicação. Da mesma forma que no caminho comportamental anterior, a taxa de memória liberada se iguala à taxa de páginas solicitadas ao Servidor de Aplicação.

Figura 50. Simulação onde a taxa de páginas solicitadas é menor do que a taxa de memória liberada. A memória é liberada com mais velocidade do que é ocupada. Equilíbrio no valor “muito pouco”. Baixa atividade do sistema.

4.2.2 Descrição da Oficina

A Seção de descrição da oficina é composta, dentre outros, pelo planejamento efetuado previamente. Nesse planejamento houve a intenção de situar