PoliGrid

ILogotipo do nstituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa

Inesc-ID - Instituto de Engenharia de Sistemas e Computadores, Investigação e Desenvolvimento em Lisboa

PoliGrid - políticas distribuídas de gestão de recursos em Grids

Investigador responsável: Paulo Jorge Pires Ferreira

Financiamento: 145.873 €

O aparecimento de plataformas Grid potencia a utilização de grandes capacidades de processamento e armazenamento. Assim, numa perspectiva global, é possível que várias instituições constituam organizações virtuais, que adicionem os seus recursos (computacionais, armazenamento, etc.) à Grid e que, em troca, possam aceder a uma quantidade de recursos enorme, muito maior do que dispõem de uma forma individual. Esta abundância de recursos permite o aparecimento de novas aplicações assim como de novos modelos de negócio, proporcionando a solução para problemas de grande escala, como é o caso do projecto denominado CERN´s Large Hadron Collider, que tem grandes necessidades em termos de processamento e de armazenamento de informação.

É expectável que no futuro próximo se torne realidade uma verdadeira “economia da Grid”; neste cenário, os recursos existentes são transacionados de forma alargada e automática entre as várias entidades participantes na Grid. Por exemplo, uma entidade pode disponibilizar serviços de rede mas querer limitar o seu consumo a um determinado valor em cada semana (e.g. 10 GB) para um dado utilizador. A entidade fornecedora de um dado recurso pode ainda querer reservar uma determinada quantidade da sua capacidade de processamento (ou de armazenamento) para os seus clientes mais relevantes. Um outro exemplo seria o seguinte: o utilizador de um dado recurso paga o serviço prestado com base num acordo que lhe garante uma determinada qualidade de serviço (QoS); neste caso, a entidade fornecedora do serviço/recurso em causa é obrigada a garantir esse QoS (e.g. 5 horas de CPU durante o próximo intervalo de 24 horas).

O primeiro dos exemplos ilustra a necessidade de dispôr de políticas baseadas em história que permitam especificar como os recursos são usados. Ou seja, é indispensável que, com base em eventos passados, seja possível especificar como os recursos devem ser usados. Obviamente, além da especificação acima mencionada é necessário que o sistema de Grid garanta o seu cumprimento. Outros exemplos deste tipo de políticas são: i) a política de segurança denominada “chinese-wall”, que analiza as acções anteriormente efectuadas antes de autorizar, ou não, uma determinada acção), e ii) as regras de separação de deveres. Actualmente, existem vários motores de políticas que já suportam políticas baseadas em história; no entanto, sofrem de algums problemas sérios dos quais se destacam a sua expressividade limitada e a não consideração de aspectos críticos no que diz respeito à sua escalabilidade. Com efeito, os sistemas existentes que suportam políticas baseadas em história não consideram de forma adequada o custo de armazenamento dos eventos que ocorreram no passado assim como a procura, neste conjunto, dos eventos relevantes para a avaliação das políticas. Em particular, as soluções actuais não resolvem o problema do crescimento do repositório dos eventos passados que, consequentemente vai aumentando de forma a degradar o desempenho do sistema no seu todo. Assim, estes sistemas não apresentam um desempenho que seja aceitável para a sua aplicação real.

O segundo exemplo ilustra a necessidade de políticas que permitam especificar a noção de obrigação aplicadas à gestão de recursos. De facto, embora por vezes seja possível transformar uma política de obrigação numa política baseada em história (i.e. baseada apenas em eventos ocorridos no passado) há muitos casos em que tal não é possível: quando a acção a que se é obrigado depende causalmente da acção que desencadeia a obrigação em causa; isto implica que a ordem das acções em causa não possa ser invertida o que seria necessário para transformar uma política de obrigação numa política baseada em história. As políticas de obrigação complementam as políticas baseadas em história pois possibilitam que certas acções sejam obrigatoriamente executadas no futuro. Esta funcionalidade é necessária pois certas semânticas de utilização de recursos são mais facilmente expressas através da noção da obrigação e outras são mesmo impossíveis de expressar usando os mecanimos tradicionais de controle de acesso.

Assim, há uma forte necessidade de dispôr de um sistema que, integrado na Grid, permita a especificação e o garante do cumprimento de políticas de utilização de recursos, baseadas em história, de forma eficiente. Contudo, as plataformas de Grid actuais apenas oferecem primitivas muito simples nos seus módulos de autorização. Basicamente, estes módulos oferecem mecanismos de controle de acesso baseados em listas de acesso (ACLs) e em modelos de papéis (RBAC). Assim, é impossível suportar semânticas ricas de utilização de recursos.

Neste projecto propomos desenhar a arquitectura e implementar um sistema distribuído que consiste num motor de políticas baseadas em história para Grid que também suporte políticas de obrigação.