• Nenhum resultado encontrado

Aplicações distribuídas em larga escala requerem diferentes formas de adaptação. Uma das formas mais simples de adaptação é a configuração de parâmetros operacionais aplicados no sistema antes do início de sua execução. Por outro lado, sistemas mais sofisticados ap- resentam uma configuração dinâmica e flexível, uma vez que permitem alterar valores dos parâmetros em tempo de execução. O algoritmo de eleição de líder em grupos de máquinas pertencentes a uma mesma rede é um exemplo de algoritmo para coordenação em sistemas distribuídos. Esse algoritmo permite que um processo ou máquina seja determinado para executar tarefas específicas dentro do grupo, como por exemplo, compartilhar dados com um servidor remoto. Caso o líder seja desconectado da rede, é possível eleger um novo líder a partir da execução do algoritmo (HUNT et al., 2010).

Os sistemas distribuídos atuais exigem cada vez mais adaptação a partir de mudanças do ambiente e dos usuários, resultando em um aumento de processamento na adminis- tração desses sistemas. Como consequência desse comportamento, os sistemas precisam de módulos capazes de se auto-adaptar a partir dessas mudanças. Uma abordagem comum para garantir o auto-gerenciamento é adicionar componentes específicos cuja função é monitorar o comportamento dos sistemas, e reagir em tempo de execução caso um estado inválido seja alcançado (GARLAN; SCHMERL; STEENKISTE, 2004).

A funcionalidade de auto-gerenciamento implica em uma série de aspectos envol- vendo diferentes dimensões, e pode ser dividida em quatro habilidades: auto-configuração, auto-cura, auto-proteção e auto-otimização. Sistemas considerados auto-gerenciáveis são chamados de sistemas autonômicos, e são regidos por instruções de alto-nível (AGRAWAL SERAPHIN CALO, 2008). Uma das maneiras de se alcançar esse nível de gerenciamento é através da aplicação do loop de controle Monitor-Analyze-Plan-Execute over a Knowl-

edge base (MAPE-K) (BRUN et al., 2009) (AGRAWAL SERAPHIN CALO, 2008). A Figura 10

apresenta o loop MAPE-K.

Oloop de controle permite que o sistema se torne auto-consciente em relação à qual- idade das suas operações, e pró-ativo em relação a possíveis problemas. Esse nível de auto-gerenciamento é alcançado através do monitoramento e análise da execução do sis- tema. Quando problemas são encontrados, o sistema define e executa uma estratégia de adaptação, alterando o estado dos elementos gerenciados.

2.5.1

Políticas

Os sistemas baseados em políticas são capazes de reagir à situações indesejáveis, mantendo seu estado sempre consistente e fiel às suas especificações. Ou seja, são sistemas auto-

Figura 10 – MAPE-K:Feedback loop control

gerenciáveis e por isso são considerados autonômicos (PEDIADITAKIS et al., 2012).

Na área da computação, política descreve regras, regulamentos, objetivos gerais ou planos de ação. Com objetivo de evitar ambiguidades, e também seguir uma definição única, este trabalho seguiu o conceito de políticas introduzido por (AGRAWAL SERAPHIN CALO, 2008).

Primeiramente, é preciso entender quatro conceitos base, para depois ser apresentada a definição de política:

1. O Alvo/objeto da política, chamado de sistema alvo, pode ser um simples dis- positivo como um smartphone ou um notebook, ou alguma entidade mais complexa, como um sistema reserva de passagem aérea ou mesmo um servidor de banco de dados localizado na Nuvem;

2. Um atributo é uma característica do sistema alvo, podendo ter um determinado valor. Um sistema alvo possui um conjunto de atributos;

3. Um estado é representado como um conjunto de valores dos atributos do sistema alvo em determinado instante de tempo;

4. O comportamento do sistema alvo é definido como um conjunto ordenado e con- tínuo de estados, onde a ordem é imposta pelo tempo.

Considere um sistemaS e 𝐵(𝑆) como o conjunto de todos os possíveis comportamentos que o sistema S pode exibir. A definição de política é:

“Uma política é um conjunto de restrições que podem ser aplicadas sobre os possíveis comportamentos 𝐵(𝑆) de um sistema alvoS; Ou seja, uma política define um subconjunto de 𝐵(𝑆) como comportamentos válidos de S.”

Para o sistema ter um uma transição de estados, é preciso ter ações implementadas. Essas ações não participam da definição da política em si, porém, se um sistema não executa nenhuma ação, não faz sentido implementar políticas nesse sistema.

2.5.2

Tipos de Políticas

(AGRAWAL SERAPHIN CALO, 2008) também apresenta 4 tipos de políticas, conforme lista abaixo.

1. Políticas de configuração: especificam restrições definidas por configuração que de- vem ser satisfeitas pelo sistema alvo em todo e qualquer estado que ele possa assumir. 2. Políticas de métricas: especificam restrições de métricas que precisam ser satisfeitas

pelo sistema durante a sua execução, independente do seu estado.

3. Políticas de ação: especificam uma ou mais ações que precisam ser executadas quando o estado do sistema alvo alcança determinada restrição.

4. Políticas de alerta: é um tipo de política de ação que tem como objetivo enviar notificações sobre o estado do sistema.

2.5.3

Arquitetura de Políticas

O ponto de partida para construir um sistema de gerenciamento baseado em políticas é definir uma arquitetura que atenda às necessidades de auto-gerenciamento. O Internet

Engineering Task Force (IETF) / Distributed Management Task Force (DMTF)1 possui

uma arquitetura composta por quatro componentes, como mostra a Figura 11.

Figura 11 – Arquitetura de Políticas - IETF/DMTF

1 https://www.dmtf.org/ - Grupo comercial de software com intuito de simplificar e gerenciar tecnolo- gias acessíveis por rede.

O componente Policy Management Tool (PMT) provê um mecanismo para criação e gerenciamento das políticas. Essas são armazenadas no Policy Repository (PR), per- mitindo consultá-las quando necessário. OPolicy Decision Point (PDP) é responsável pelo processo de tomada de decisão, examinando as políticas armazenadas no PR, aplicando- as em determinadas circunstâncias e determinando o que for necessário para garantir as políticas. Já o componente Policy Enforcement Point (PEP) é responsável por monitorar a execução do sistema, garantindo que as políticas não serão violadas.

O uso de políticas está relacionado à informações do sistema em execução. Sempre que o ambiente ou seus atores mudam seus estados, é preciso verificar se as políticas definidas não foram violadas. Essas características formam o contexto do sistema. Esse conceito é essencial no mundo da IoT, uma vez que a mobilidade dos dispositivos é constante e o volume de dados produzidos é variável.

Documentos relacionados