Você está na página 1de 22

CAPTULO 8 O SERVIO DE BALANCEAMENTO do senso comum capturar um mtodo e experiment-lo.

. Se ele falhar, admita isso com franqueza e experimente outro. Mas acima de tudo tente algo. (Franklin Delano Roosevelt)

O servio de balanceamento apresenta-se como o responsvel por analisar os dados coletados e armazenados pelo servio dos agentes. O objetivo principal deste servio consiste em propor mecanismos capazes de distribuir o processamento de CPU entre os ns predefinidos utilizados na arquitetura SICSD, buscando, dessa forma, otimizar os recursos computacionais existentes. Toda a atualizao da base de configurao deve ser captada pelo servio de

balanceamento. Existem vrios motivos que levam atualizao dessa base, dentre eles, podem-se citar: a alterao (incremento ou decremento) no nmero de solicitaes de servios atendidas por um objeto; a mudana de status de um objeto de ready para failed; a migrao de um objeto de um n para outro etc.

Aps a anlise das atualizaes, e se for o caso, o processo de balanceamento de carga disparado e o resultado consiste normalmente na replicao ou na migrao de um objeto do n origem para o n destino. As caractersticas de flexibilidade e dinamismo, propostas na arquitetura, so implementadas pela atuao do servio de balanceamento. A flexibilidade deriva da capacidade de a Arquitetura SICSD se adaptar ao nmero de usurios do sistema. Ou seja, se houver um aumento na demanda por solicitaes de servios, o servio de balanceamento responsabiliza-se por instanciar novos objetos no sistema que atendam a essa solicitao.

117

A caracterstica de dinamismo proposto na Arquitetura

consiste na capacidade dada

aos objetos de se moverem de um n para outro, de acordo com a demanda por solicitao de servios. Ou seja, se a demanda aumenta, o objeto da aplicao, que atende essa solicitao, pode mover-se para o n remoto solicitante. Vrios motivos podem disparar o processo de balanceamento de carga, dentre eles podem ser citados os seguintes: Condio 1: O n de origem est congestionado, ou seja, vrios objetos foram

criados e a taxa de disponibilidade de CPU apresenta-se abaixo da mdia da taxa dos outros ns. Nesse caso, faz-se um levantamento entre os ns remotos para identificar qual o n remoto tem o maior nmero de conexes com o n origem. Finalmente, instancia-se uma cpia do objeto mais solicitado no n remoto, que contenha o maior nmero de conexes com o n origem. Condio 2: A busca por disponibilidade de servios. Se existem vrios ns ociosos na rede, podem ser instanciadas cpias de objetos de mquinas saturadas em mquinas ociosas. Condio 3: Uma necessidade operacional, por exemplo, um processo de

manuteno em um n. Nesse caso, h necessidade de uma interveno do administrador que deve alterar o status deste n de ready para suspend. O servio de balanceamento assume em seguida o controle desse n. Sua atuao

compreende, em um primeiro instante, suspender todas as conexes existentes com os objetos naquele n; em seguida, h a criao desses objetos em mquinas remotas mais ociosas. Condio 4: Queda de um n. A queda de um n, involuntariamente, ser

detectada na primeira tentativa de comunicao de um agente com esse n. De acordo com a arquitetura SICSD, o agente supervisor tem as informaes de todos os objetos instanciados nos ns remotos. Dessa forma, o primeiro n que identificar a falha no n vizinho ser o responsvel por instanciar os objetos desse n, em outros ns, que estejam disponveis. As conexes existentes com o n que entrou no estado failed sero perdidas.

118

Condio 5: Incluso de um novo n: A incluso de um novo n no sistema conta

com a cooperao do administrador de sistemas. Os agentes apresentam-se como os responsveis por disseminar pela rede, o endereo do novo n. O processo consiste em disponibilizar os recursos computacionais desse n inserido na rede para proceder o balanceamento de carga. Condio 6: Excluso de um objeto. Os objetos que foram instanciados,

entretanto, no esto sendo referenciados por nenhum usurio ou outro objeto, devem ser excludos. Nesse caso, no apresentam nenhuma conexo ativa. Os objetos que foram criados para atender um pico na demanda, por solicitao de servios, como por exemplo na fase de lanamento de um satlite, podem ser excludos ao trmino dessa fase. Condio 7: Criao de um objeto. O servio de balanceamento apresenta-se como

um mediador entre o usurio e a aplicao de controle de satlites. Esse servio mostrase capacitado a criar uma instncia de um objeto, caso no encontre nenhuma

disponvel no domnio de rede definido para a aplicao de controle de satlites. Existe a possibilidade de ocorrer esta condio, j que a condio 6 pode ter excludo um objeto que se encontrava ocioso (nmero de conexes igual a zero). Condio 8: Atender solicitao de um usurio. Toda solicitao de servio de

um usurio para a aplicao de controle de satlites analisada pelo servio de balanceamento. Este presta o servio de identificar o objeto que atenda solicitao do servio, bem como o n onde ele se encontra instanciado. De acordo com a arquitetura SICSD, instancia-se um servio de balanceamento em cada n; portanto, atravs desse servio, cada n tem autonomia para migrar ou replicar seus objetos. A implementao das condies citadas anteriormente esto distribudas em sete mtodos do servio de balanceamento, assim denominados: a) balancear carga; b) remover n; c) inserir n;

119

d) realizar manuteno; e) atender solicitao do usurio; f) excluir objeto e g) criar objeto. O mtodo balancear carga implementa as condies 1 e 2. O mtodo remover n auxilia na soluo da condio 4. O mtodo inserir n auxilia na soluo da condio 5. A soluo da condio 3 utiliza os recursos do mtodo realizar manuteno. Os mtodos excluir objeto e criar objeto colaboram na soluo das condies 6 e 7 respectivamente . O mtodo atender solicitao do usurio implementa a condio 8. 8.1 - MTODO PARA BALANCEAR CARGA O processo de balanceamento de carga consiste em cada n se auto-analisar e comparar a carga de processamento local com as cargas de processamento remoto. Se os ns remotos tm maior disponibilidade de processamento, ativa-se o processo de

balanceamento. A lgica deste mtodo deve implementar a seguinte tabela de decises: TABELA 8.1-TABELA DE DECISES DO MTODO BALANCEAR CARGA
Recursos de CPU CPU CPU CPU CPU Nmero de conexes > 0 > 0 = 0 = 0 Replicar objeto para n com maior disponibilidade de CPU No faz nada Migrar objeto para n com maior disponibilidade de CPU No faz nada Ao realizada

Legenda: CPU : O n contm uma taxa de disponibilidade de CPU acima da mdia das taxas de outros ns. CPU : O n contm uma taxa de disponibilidade de CPU abaixo da mdia das taxas de outros ns.

120

> 0: O objeto est atendendo a solicitaes de servios, ou seja, o nmero de conexes maior do que zero. A interpretao da primeira linha da tabela deve ser a seguinte: A taxa de disponibilidade de CPU (CPU ) do n se apresenta abaixo da mdia das taxas de outros ns; o nmero de conexes com esse objeto maior do que zero(>0). Neste caso, deve-se replicar este objeto para um n que expresse maior disponibilidade de CPU. As taxas de disponibilidade de CPU e o nmero de conexes so recuperados da base de configurao.

121

Os possveis caminhos seguidos pelo mtodo so mostrados a seguir e ilustrados na Figura 8.1. - Acessar a base de configurao, com o auxlio do agente supervisor e recuperar a taxa de disponibilidade de CPU para todos os ns. - Calcular a mdia das taxas de disponibilidade de CPU . Se (a taxa de disponibilidade de CPU da mquina local + ) se apresentar menor que a mdia { = valor emprico = 10% da mdia da CPU} ento { Esperar um tempo aleatrio (0 <= t <= ) }. { Na implementao da simulao desse algoritmo utilizou-se = 8 segundos valor emprico; entretanto, esse valor pode ser configurvel }. - Recuperar novamente a taxa de disponibilidade de CPU para todos os ns. - Calcular novamente a mdia das taxas de disponibilidade de CPU. Se (a taxa de disponibilidade de CPU do n local + ) mantiver abaixo da mdia ento {A primeira tentativa de balanceamento consiste em replicar o objeto mais solicitado da mquina local para a mquina remota solicitante }. - Recuperar da base de configuraes o n remoto que contenha o maior nmero de conexes com o n local. - Recuperar o objeto mais solicitado por esse n remoto. - Chamar a rotina replicar_objeto. { A Segunda tentativa de balanceamento consiste em migrar os objetos ociosos das mquinas que se apresentam com a disponibilidade de CPU abaixo da mdia}. Se (a taxa de disponibilidade de CPU do n local + ) mantiver abaixo da mdia ento -Recuperar objetos com nmero de conexes = 0 -Enquanto houver objetos com conexo = 0 e (a taxa de disponibilidade de CPU do n local + )< mdia Incio - Chamar a rotina migrar_objeto. - Recuperar objetos com nmero de conexes = 0. fim_enquanto fim-se fim-se fim-se

122

rotina replicar_objeto { Verificar se o n solicitante tem disponibilidade de CPU }. Se a taxa de disponibilidade de CPU do n solicitante se apresentar maior que a mdia das taxas de disponibilidade de CPU ento - instanciar uma cpia do objeto mais solicitado no n solicitante. - Acionar o servio dos agentes para instanciar um agente monitor desse objeto. seno { Uma outra tentativa de balanceamento consiste em instanciar o objeto da mquina local mais solicitado no n com a maior taxa de disponibilidade de CPU }. - Instanciar uma cpia do objeto com o maior nmero de conexes no n com a maior taxa de disponibilidade de CPU. - Acionar o servio dos agentes para instanciar um agente monitor desse objeto. fim-se rotina migrar_objeto { Esta rotina consiste em instanciar uma cpia do objeto a ser migrado no n remoto com maior disponibilidade de CPU e, finalmente, excluir esse objeto do n local}. - Identificar n com maior disponibilidade de CPU. - Instanciar uma cpia do objeto a ser migrado no n remoto com maior disponibilidade de CPU. - Acionar o servio dos agentes para instanciar um agente monitor desse objeto. - excluir este objeto do n local. - Acionar o servio dos agentes para excluir o agente monitor desse objeto no n local . Observao: O algoritmo de balanceamento espera por um tempo aleatrio para

comear sua execuo com o objetivo de evitar que mais de um n tome decises semelhantes na busca pelo balanceamento de carga. O algoritmo de balanceamento faz um levantamento da taxa de disponibilidade de CPU de todos os ns integrantes da arquitetura proposta. A finalidade bsica deste algoritmo consiste em distribuir a carga de processamento entre os ns; para isto, tenta-se migrar ou replicar objetos de mquinas saturadas para mquinas ociosas. A identificao do n mais ocioso pode estar sendo realizado ao mesmo tempo pelo algoritmo em ns diferentes da rede, o que poderia provocar a migrao ou replicao de objetos de vrios ns saturados para um mesmo n ocioso. Se este fato ocorrer, provavelmente o n ocioso se tornar

123

saturado e, da mesma forma, o servio de balanceamento desse n tentar reverter esse quadro migrando/replicando os objetos instanciados nesse n para ns ociosos. Isso poderia provocar oscilaes que inviabilizariam o processo de balanceamento do sistema. Se cada n aguardar um tempo aleatrio de espera, pode ser que, ao trmino do tempo, o sistema se estabilize e no seja necessrio executar o balanceamento. Observa-se que, acrescentou-se um ( valor emprico = 10% da mdia da CPU) na taxa de disponibilidade de CPU do n local para verificar se disponibilidade de CPU deste n estava abaixo da mdia. Este recurso foi utilizado para evitar que um n com uma taxa de disponibilidade de CPU prximo da mdia, tente replicar ou migrar objetos. Caso isto ocorra esse n poderia aumentar sua disponibilidade de CPU e receber novas migraes ou replicaes na prxima atuao do servio de balanceamento. Ou seja, a atuao do servio de balanceamento no iria ser to eficaz no processo de distribuio de cargas. A diferena bsica entre a tarefa de replicar e migrar um objeto reside no fato de que a primeira opo mantm uma cpia do objeto a ser replicado no n local e instancia uma outra cpia no n remoto. Utiliza-se esta poltica de balanceamento quando o objeto ainda est sendo referenciado, ou contm um nmero de conexes maior do que zero no n local. A segunda tarefa consiste realmente em transferir uma instncia de um objeto do n local para um n remoto. Aplica-se esta poltica quando o objeto no est sendo mais referenciado no n local. A poltica de replicao contribui com o balanceamento medida que disponibiliza na rede uma cpia de um objeto instanciado em uma mquina saturada. As novas solicitaes de servio para esse objeto, provavelmente sero atendidas pela rplica. A migrao desponta como a segunda alternativa de balanceamento de carga de um n saturado. Ela propicia a transferncia de objetos de mquinas saturadas e

conseqentemente a reduo de carga. No processo de migrao no migra o estado de um objeto. Simplesmente cria-se uma nova instncia do objeto migrado no n destino. Esta poltica foi adotada porque considerou-se mais importante disponibilizar os servios encapsulados do objeto

124

migrado do que simplesmente seu estado. Alm disto, objeto que est sendo migrado no uma atividade trivial.
obj1 obj2

armazenar o estado de um

Serv. Balanceamento

Serv. de Agentes

N 1

balancear carga

N 2
obj3 obj1

N 3
obj1 base de configuraes

obj2

Fig 8.1 Ilustrao do funcionamento do mtodo de balancear carga.

A Figura 8.1 ilustra o seguinte cenrio: 1) O servio de balanceamento instanciado no n 1 acessa a base de configurao com o auxlio do servio dos agentes. 2) O n 1 se apresenta com uma taxa de disponibilidade de CPU abaixo da mdia; portanto, o mtodo balancear carga deve ser ativado. 3) O objeto denominado obj1, instanciado no n 1, contm o maior nmero de solicitaes de servios originadas do n 2. 4) O n 3 apresenta-se como o n que contm a maior taxa disponibilidade de CPU. A primeira tentativa de execuo do mtodo balancear, instanciado no n 1, consiste em: Instanciar uma cpia do objeto obj1 no n 2, se a taxa de disponibilidade no n 2 se apresentar maior do que a mdia das taxas de disponibilidade de CPU. Isto porque o n 2 tem o maior nmero de solicitaes de servios com o objeto obj1.Caso o n 2 tambm esteja saturado, o mtodo balancear examina qual o n, dentro do domnio da

125

arquitetura SICSD, possui a maior taxa de disponibilidade de CPU. Uma instncia do objeto obj1 deve ser criada no n 3, j que nesse exemplo ele expressa a maior taxa de disponibilidade de CPU. 8.2 - MTODO PARA REMOVER UM N 1) O Primeiro n que detectar a falha de um n alterna o estado deste n de ready para failed. 2) O n com maior taxa de disponibilidade de CPU assume o controle do n failed e executa as seguintes atividades: 2.1) Eliminar o n da tabela de ns, 2.2) Enquanto houver objeto no n failed, incio Identificar o objeto instanciado naquele n, Identificar o n com maior disponibilidade de CPU, Criar uma cpia do objeto nesse n, Acionar o servio dos agentes para instanciar um agente monitor desse objeto fim-enquanto 8.3 - MTODO PARA INSERIR UM N O processo de insero de um novo n no conjunto de ns, predefinido para a A

arquitetura proposta, conta com a cooperao do administrador do sistema.

interveno do administrador se resume em executar a rotina de carga deste n que est sendo inserido no contexto. A partir desse momento, todo o processo de insero passa a ser automtico. Como j foi mencionado anteriormente, o papel da rotina de carga do sistema consiste em instanciar para aquele n os servios bsicos (servios dos

agentes, segurana, persistncia e balanceamento). A carga do servio dos agentes engloba instanciar, para cada n, os agentes supervisor, monitores e mensageiros. A primeira tarefa executada pelos agentes consiste em

cadastrar esse novo n na base de configurao local. Os agentes mensageiros se apresentam como os responsveis por propagar a existncia desse novo n para os ns remotos. Esse fato se concretiza nos ns remotos na primeira tarefa de atualizao das bases de configuraes executadas pelos agentes mensageiros desse novo n. Em um prximo balanceamento de carga do sistema, esse novo n inserido se apresenta como um candidato em potencial para receber migraes ou replicaes de objetos
126

oriundos de outros ns, j que em princpio possui uma alta taxa de disponibilidade de CPU. A seqncia lgica desse mtodo mostrado a seguir e ilustrado na Figura 8.2: 1) O administrador de sistemas ativa a rotina de carga no novo n. 2) A rotina de carga de um novo n consiste em carregar os servios bsicos (agentes, persistncia, balanceamento e segurana). 3) Este novo n deve ser cadastrado na base de configurao. 4) O agente mensageiro responsvel pela disseminao do contedo da base de configurao deve ser ativado.
obj1 obj2

N 1
base de configurao

insero do novo n

N 2

N 3
base de configurao

obj3

novo N

agentes mensageiros

obj2

base de configurao base de configurao

Fig 8.2 Ilustrao da insero de um novo n.

A Figura 8.2 elucida o processo de insero de um ou mais ns. A rotina de carga do n inserido instancia os agentes mensageiros, que apresentam-se como os responsveis por distribuir e atualizar o contedo da base de configurao dos outros ns remotos. 8.4 - MTODO PARA REALIZAR A MANUTENO NO SISTEMA

127

O processo de manuteno em um dos ns, pertencentes ao domnio predefinido para a arquitetura SICSD, pressupe a interveno do administrador de sistemas. Vrias

atividades realizadas em um n podem ser designadas como atividades de manuteno, dentre elas pode-se destacar: a instalao de um software ou a instalao de um novo perifrico. O algoritmo desse mtodo engloba as seguintes atividades: 1) Alterar o status do n de ready para suspend com o auxlio do agente supervisor. 2) Ativar o mtodo realizar manuteno do servio de balanceamento responsvel pelas seguintes tarefas: 2.1) Levantar todos os objetos instanciados nesse n com o auxlio do agente supervisor. Enquanto houver objetos instanciados nesse n incio Identificar o n com maior disponibilidade de CPU. Criar uma cpia do objeto nesse n. Acionar o servio dos agentes para instanciar um agente monitor desse Objeto. fim-enquanto 2.2) Liberar o n para efetivar a manuteno aps o trmino da migrao dos objetos. A Figura 8.3 ilustra o processo de desativao do n 3 para uma possvel manuteno. O mtodo de manuteno do servio de balanceamento se responsabiliza pela instanciao de todos os objetos existentes nesse n em outros ns remotos, que se apresentem com a maior taxa de disponibilidade de CPU.

128

obj1

obj2

N 1
base de configurao

N 2

N 4
base de configurao obj2

objetos sendo migrados


base de configurao

N 3

n em manuteno

base de configurao

Fig. 8.3 Ilustrao do processo de manuteno em um n.

8.5 - MTODO ATENDER SOLICITAO DO USURIO O servio de balanceamento apresenta-se como o responsvel pela interface entre a arquitetura proposta e o usurio. Aps a identificao do usurio, o servio de

balanceamento disponibiliza para o mesmo um conjunto de funes, de acordo com o seu perfil (por exemplo, o controlador de satlites compreende um conjunto de funes diferentes de um engenheiro de satlites). O servio de balanceamento analisa a solicitao de servio do usurio e o processo de atendimento segue os seguintes critrios: Primeiro verifica-se, no n local, se

existem objetos que atendam solicitao desejada. Em seguida verifica se a taxa de disponibilidade de CPU do n apresenta-se acima da mdia. Em caso afirmativo, deve ser estabelecida a conexo no prprio n. Caso contrrio, faz-se uma busca na base de configurao (tabela de objetos) e recuperam-se aqueles objetos que atendam ao

servio solicitado. Estabelece-se a conexo com o objeto que esteja instanciado no n que apresentar maior disponibilidade de CPU. Esse parmetro se encontra na tabela de n (Tabela 7.1).
129

Algoritmo do mtodo atender solicitao Acessar a base de configurao com o auxlio do agente supervisor. Se objeto existe no n local e a disponibilidade de CPU do n local for acima da mdia Ento - Conectar-se com o n local. - Informar ao agente supervisor o n local e o objeto solicitado, com o objetivo de atualizar a base de configurao, em relao ao nmero de conexes com esse objeto. Seno Se existir um n que contenha disponibilidade de CPU e uma instncia do objeto desejado ento Conectar-se com o n remoto. Informar ao agente supervisor o n remoto e o objeto solicitado, para atualizar a base de configurao, em relao ao nmero de conexes com esse objeto. Incrementar o nmero de conexes para esse objeto. Seno Chamar o mtodo criar objeto. Fim-se Fim-se A Figura 8.4 ilustra o processo de atendimento de servio para um usurio. O usurio necessita dos servios do objeto denominado X. Nesse caso, no existe instncia desse objeto no n onde o usurio est conectado (n 1). Portanto, a ao do servio de balanceamento concentra-se em identificar quais outros ns remotos possuem instncias desse objeto. No caso, os ns 2 e 4 mostram-se aptos para atender a essa solicitao; entretanto, estabelece-se a conexo com o n 4, j que ele possui a maior taxa de disponibilidade de CPU.

130

Obj. X N 2 Obj. A objetos instanciados em cada n

Obj. W

N 1
3-conexo

N 3

Obj. Z

Obj. B
Servio de balanceamento 2 - busca do n Atender solicitao

N 4 Obj. X

1
base de configurao

solicitao do usurio: conexo com o obj. X Fig. 8.4 -Processo de solicitao de um servio do usurio.

8.6 - MTODO EXCLUIR OBJETO A implementao de mecanismos que, excluam objetos que no esto sendo mais referenciados pelo sistema, no uma atividade trivial em ambientes distribudos. A Arquitetura DCOM implementa o Garbage Collection, utilizando contadores que indicam o nmero de vezes que um determinado objeto est sendo referenciado no contexto do sistema distribudo. Ou seja, incrementa-se o contador para toda solicitao de servio recebido por esse objeto. Ao termino da operao, decrementa-se este contador. Objetos que no contm nenhuma referncia (contador=0) devem ser excludos. A perda de conexo entre um objeto cliente e um objeto servidor, ocasionada por exemplo por uma falha na rede, pode inviabilizar a contabilizao do nmero de referncias do objeto servidor, que, no caso, deveria ser decrementada. A arquitetura RMI implementa um temporizador para controlar as referncias dos objetos. Em intervalos de tempos predefinidos um algoritmo verifica se um determinado
131

objeto est sendo referenciado. Em caso negativo, o algoritmo assume que no h mais usurios utilizando os servios prestados por esse objeto; portanto, ele pode ser excludo. A limitao desse algoritmo tambm se relaciona com eventuais falhas na rede. Como por exemplo, uma falha na rede, no momento do pedido de desconexo do objeto cliente com um objeto servidor, pode inviabilizar o decremento do nmero de referncias do objeto servidor. O algoritmo assume que um objeto servidor deve ser excludo se a comunicao entre esse objeto e um objeto cliente for interrompida por um tempo superior ao intervalo de tempo definido no algoritmo. Conclui-se, ento, que o desenvolvimento de algoritmos garbage collection no se caracteriza por uma atividade trivial. Talvez, por essa complexidade, a OMG sugeriu que a aplicao assumisse o controle do ciclo de vida (criao e destruio) das instncias de seus objetos. (Pedrick, et al, 1998). A arquitetura SICSD, atravs do servio de balanceamento, presta o servio carbage collection desde que o servio dos agentes mantenha atualizado, na base de configuraes, o nmero de conexes ativas de um objeto. A contabilizao do nmero de conexes ativas de um objeto, na arquitetura SICSD, apresenta-se similar ao

proposto na arquitetura DCOM: incrementa-se o contador a cada solicitao de servio e decrementa-se a cada desconexo. O mtodo excluir objeto acionado em cada n, em um intervalo de tempo

predefinido, e sua funo bsica consiste em destruir os objetos que apresentarem o valor nulo ou zero no atributo nmero de conexes. A diferena do mtodo proposto excluir objeto, em relao ao mtodo Garbage collection da arquitetura DCOM, reside no processo de decrementar o nmero de referncias de um objeto. No processo de desconexo de um servio, atualiza-se primeiro a base de configuraes local, onde est instanciado o objeto, e posteriormente a base de configurao remota. Uma falha na rede, justamente no momento de decrementar o nmero de referncias do objeto servidor remoto, coberta pela atualizao da base local. Atribui-se aos agentes mensageiros a responsabilidade da disseminao do contedo dessa base local para os outros ns remotos.
132

Algoritmo do mtodo excluir objeto: Identificar supervisor. Enquanto houver objetos instanciados neste n incio Se o nmero de conexes = 0 ento excluir objeto. Acionar o servio dos agentes para excluir o agente monitor desse objeto, fim-se fim-enquanto todos os objetos instanciados em um n, com o auxlio do agente

8.7 - MTODO CRIAR OBJETO Como j foi citado anteriormente, atribui-se a responsabilidade de criar os objetos da aplicao rotina de carga do sistema. Entretanto, no perodo entre as passagens de

um satlite, os objetos da aplicao para controle de satlites podem se tornar ociosos e, conseqentemente, ser excludos pelo mtodo excluir objetos. O servio de balanceamento, atravs de seu mtodo criar objeto, apresenta-se capacitado a instanciar novamente um objeto. O mtodo atender solicitao do usurio,

apresentado na seo 8.5, pode utilizar os servios prestados pelo mtodo criar objeto, caso o servio de balanceamento no encontre o objeto que atenda solicitao do usurio. Algoritmo do mtodo criar objeto: Se a taxa de disponibilidade de CPU do n local est acima da mdia Ento Criar uma instncia do objeto no n local. Acionar o servio dos agentes para instanciar um agente monitor desse Objeto. Seno Criar uma instncia do objeto no n que apresentar maior taxa disponibilidade de CPU. Acionar o servio dos agentes para instanciar um agente monitor desse Objeto. fim-se

133

8.8 - COMPARAO ENTRE O BALANCEAMENTO DE CARGA DA PROPOSTO NA ARQUITETURA CORBA E O PROPOSTO NA

ARQUITETURA SICSD a) Arquitetura CORBA O balanceamento de carga, na maioria dos aplicativos que implementam a especificao CORBA, caracteriza-se por uma distribuio seqencial de carga. Ou seja, se o sistema distribudo contm mais de um objeto, para atender a uma mesma solicitao de um

usurio, estabelecida a conexo de forma seqencial. Primeiro com o objeto 1 depois com o objeto 2 etc. Ao alcanar o ltimo objeto, retorna-se para o primeiro. Esse processo de conexo no leva em considerao a carga de processamento no n onde o objeto est instanciado. A Figura 8.5 elucida as solicitaes de servio de um usurio, considerando que no ambiente distribudo exista mais de um objeto para atender mesma solicitao.

objeto 1
solicitao 1

N 1

solicitao 2

objeto 2

usurio
solicitao n

N 2

objeto n N n

Fig. 8.5 O processo de balanceamento de carga sugerido na especificao CORBA. FONTE: adaptada do Visibroker, (1998, p. 14-3).

b) Arquitetura SICSD

134

A Arquitetura Proposta considera duas formas distintas, realizadas pelo servio de balanceamento, na busca por uma boa distribuio de carga do sistema. A primeira forma anunciada na seo 8.1, concentra-se basicamente em migrar ou replicar objetos de mquinas saturadas para mquinas ociosas. A segunda objetiva distribuir a carga de processamento, desde o processo de atendimento da solicitao de servio de um usurio. Ou seja, de acordo com a arquitetura proposta, o processo de atendimento das solicitaes de servios dos usurios utiliza-se de um algoritmo capaz de localizar qual o objeto mais apto para atender a essa solicitao. A seo 8.5 apresentou os

detalhes desse algoritmo. 8.9 - COMPARAO ENTRE O SERVIO DE NOMES DA ESPECIFICAO CORBA E O SERVIO DE LOCALIZAO DE UM OBJETO PELO

SERVIO DE BALANCEAMENTO A base de configurao, mais especificamente a tabela de objetos, mantm um controle de todos os objetos instanciados em cada n. Servio semelhante (name service) j se encontra disponvel nas arquiteturas que implementam a especificao CORBA. O ganho proposto neste trabalho de pesquisa no se restringe apenas em identificar a localizao fsica de um objeto, mas identificar outras informaes, que so agregadas, tais como: o status do objeto: ready, failedor suspend; o nmero de conexes ativas que esse objeto est atendendo em um determinado instante etc. A arquitetura proposta mantm um controle de todos os objetos instanciados em cada n, atravs da base de configurao (tabela de objetos). A arquitetura CORBA tambm tem um controle de todos os objetos instanciados, em um ambiente distribudo, atravs do servio de nomes name service. O servio de nomeao CORBA apresenta-se como um servio genrico de diretrio anlogo a uma lista telefnica, isto , se o cliente possui o nome do objeto, ele pode, atravs desse servio, recuperar a sua referncia (Mowbray, Ruh, 1997). As operaes chaves do servio de nomeao so de ligar (bind) e resolver (resolve). Utiliza-

135

se a operao de ligar para adicionar um nome de objeto e sua referncia no diretrio do servio. Na operao de resolver, o cliente entra com um nome de objeto particular e recebe uma referncia de objeto, como valor de retorno, ou uma exceo, caso o nome no se encontre no diretrio. As diferenas entre o servio de resoluo de nomes propostos pela arquitetura CORBA e o servio de localizao de um objeto proposto pelo servio de balanceamento so conforma apresentado a seguir: A especificao CORBA recupera o primeiro objeto disponvel que atenda determinada solicitao de servio; o servio de balanceamento proposto seleciona o objeto que se encontrar instanciado em um n, com a maior taxa de

disponibilidade de CPU. Teoricamente esse objeto apresenta-se mais apto a prestar servios do que os outros objetos que estejam instanciados em ns com uma menor taxa. Na especificao CORBA, se o sistema distribudo contm mais de uma instncia de um objeto para atender a uma mesma solicitao de servio, estabelecida a conexo de forma seqencial. Primeiro, com o objeto 1, depois com o objeto 2, etc. Na arquitetura proposta, o servio de balanceamento seleciona o objeto

instanciado em um n, com a maior taxa de disponibilidade de CPU. 8.10 - A IMPORTNCIA DO SERVIO DE BALANCEAMENTO A heterogeneidade das mquinas que compem um ambiente distribudo constitui um parmetro que sempre deve ser levado em considerao, quando se deseja otimizar o balanceamento de carga de um sistema. Partindo desta premissa, o servio de balanceamento proposto apresenta mecanismos de como explorar os recursos

computacionais existentes. Esses mecanismos esto implementados dentro dos principais mtodos do servio de balanceamento (balancear, inserir n, remover n e realizar manuteno). O resultado esperado da execuo de qualquer um dos mtodos do servio de balanceamento consiste em otimizar a distribuio de cargas do sistema. O mtodo balancear assume a responsabilidade de migrar ou replicar objetos de mquinas

136

saturadas para mquinas ociosas. O mtodo inserir n tem como conseqncia imediata incrementar recursos computacionais no ambiente predefinido para a arquitetura

SICSD. O n inserido passa a ser um candidato em potencial a receber a migrao de objetos de mquinas saturadas. Apesar de eliminar recursos computacionais, no processo de excluso de um n, faz-se necessrio o balanceamento de carga, j que esse mtodo dispara um conjunto de aes, tentando criar nos ns remotos os objetos que estavam instanciados no n excludo. O mtodo realizar manuteno tem funes semelhantes ao mtodo excluir n, a diferena reside no fato de que aciona-se o mtodo excluir n de forma imprevisvel, j o mtodo realizar manuteno previsvel e acionado pelo administrador de sistemas. Entretanto, em ambos os casos, as funcionalidades dos mtodos se traduzem em buscar o balanceamento de carga, migrando os objetos do n que est sendo excludo para mquinas ociosas.

137

138

Você também pode gostar