Grids:
Agentes, Economia e Workflow
Rodrigo Paes
[email protected]
Computação Distribuída
Profª. Noemi Rodriguez
Agenda
• PARTE I
– Agentes - Conceitos
– Agentes e Grid
• PARTE II
– Economia
• Gerenciamento de recursos baseado em modelos econômicos
– Workflow
• Exemplo em bioinformática
Agentes de Software
Introdução
Tendências
• Sistemas distribuídos
• Arquitetura aberta
• Sistemas extensíveis
• Utilização de ontologias – Web Semântica
Uma pergunta…
• Será que o paradigma e técnicas atuais
de ES serão suficientes para endereçar a
produção eficiente da próxima geração de
sistemas de software?
Evolução dos Paradigmas de
ES
• Linguagens
Assembler
Tempo
Abstrações determinadas
pela arquitetura da máquina
• Abstração
Funcional
• Programação
Estruturada
• Orientação a
Objetos
• Componentes
• ...
Abstrações determinadas
pelo domínio do problema
O que são Agentes?
• Uma pergunta controversa
– Não existe um consenso sobre o que é um agente
• Dois pontos de vista principais
– Inteligência Artificial
• Um agente é pró-ativo, inteligente, e deve ser altamente
interativo (P2P) em vez de participar de uma arquitetura
cliente-servidor
– Engenharia de Software
• Um agente é uma abstração para decompor o problema em
entidades que possuam um certo grau de autonomia e que
sejam capazes de participar de interações complexas
Exemplos de Agentes
• Agentes
– Que buscam, negociam e montam pacotes de
viagens
– Que buscam informações de interesse de
usuários na Internet
– Agentes utilizados para fazer simulações
• Catástrofes, Jogos eletrônicos ...
– Agentes que representam usuários
– Agentes que representam empresas em um
cenário B2B
Características de Agentes ES
• Básicas
– Autonomia
• Capacidade de agir sem intervenção externa
– Pró-atividade
• Atuam não somente em resposta ao ambiente – são
orientados a objetivos
– Interatividade
• Se comunicam com outros agentes e com o ambiente
– Adaptação
• São capazes de modificar, em algum grau, o seu
comportamento devido à mudanças do ambiente e de outros
agentes
Características de Agentes ES
• Adicionais
– Aprendizado
• São capazes de modificar o seu comportamento
baseados em sua experiência
– Racionalidade
• São capazes de selecionar suas ações baseados
em seus objetivos
– Mobilidade
• São capazes de se mover de um ambiente para
outro
Em resumo
• Entidade que possui
– Estado encapsulado
– Comportamento que manipula o estado
– Chame isso de objeto
• Entidade
–
–
–
–
–
–
Estado encapsulado
Comportamento que manipula o estado
Capaz de ser distribuida
Orientada a objetivos
Possui autonomia
Chame isso de agente
Benefícios da abstração de
Agentes
• Entidade Pró-Ativa
• Fraco acoplamento
– Comunicação através de mensagens de alto
nível
• Flexibilidade de customização
– individual de agentes
– protocolos de comunicação
– algoritmos de aprendizado
O Estado da Arte
• Engenharia de sistemas multi-agentes em
estado inicial
• Desenvolvimento ad-hoc
• Falta de avaliação do impacto do uso do
paradigma multi-agente
• Experimentação – Estudos de Caso
• Desenvolvimento de uma ES para o paradigma
Agentes e Grids
Foster, Ian; Jennings, Nicholas; Kesselman, Carl; Brain Meets
Brawn: Why Grid and Agents Need Each Other.
Contexo
• Sistemas abertos
– Compostos por componentes independentes
…
– … que cooperam para alcançar objetivos
individuais e coletivos
• Interesse crescente em ambas as
comunidades (grid e agentes), mas sob
perspectivas diferentes
Perspectivas
• Comunidade “Grid”
–
–
–
–
–
Infra-estrutura
Compartilhamento de recursos
Segurança
Robustez
Desempenho
• Comunidade “Agente”
– Conceitos
– Metodologias
– Algoritmos para a resolução de problemas
(negociação, …)
– Mecanismos para lidar com interações complexas
Problemas
• Grid
– Interação e interoperabilidade rígida e inflexível
• Modelos de cooperação
• Protocolos flexíveis
• Padrões abertos que se baseam em tecnologias
independentes de LP
– Web-services
» UDDI, WSDL , …
– Linguagens de comunicação de alto nível
• Agentes
– “Tipicamente” questões como escalabilidade,
robustez e segurança ficam em segundo plano
Entretanto …
• Os “Grids” estão buscando se tornar mais
flexíveis
• E os “agentes” estão se tornando mais
confiáveis e escaláveis
– Engenharia de Software
• Em outras palavras, um está caminhando
pro território do outro
Sistemas orientado a serviços
robustos e flexíveis
• Serviços autônomos
– Serviço
• “uma entidade que provê uma funcionalidade para um cliente
através de troca de mensagens bem definidas”
– Grids
• Estruturar as interações como Web-Services
– Agentes
• Podem ser considerados como provedores de serviços
– Então, quando os serviços precisam de algum grau de
autonomia, por que não, considerá-los como agentes?
• Ex.: Um serviço de acesso a uma camada de persistência
– Onde eventualmente os dados serão replicados
– O número de réplicas é determinado dinamicamente
– Algoritmos de planejamento distribuído podem ser utilizados para
mapear as consultas para as réplicas
– Pode existir a necessidade de negociar por recursos
Sistemas orientado a serviços
robustos e flexíveis
• Negociação e contratos de prestação de
serviços
– Um provedor de serviços, pode estar indisponível ou
não ter interesse em fornecer o serviço (autonomia
de decisão)
– Se é necessário um comportamento mais previsível
• Compromissos adquiridos (contratos)
– Qualidade de serviço
– Mas como obter uma qualidade de serviço que
satisfaça as necessidades do usuário?
• Custo, desempenho, precisão
• É necessário algum nível de negociação
Sistemas orientado a serviços
robustos e flexíveis
• Negociação e contratos de prestação de
serviços
– Pode envolver aspectos tais como:
•
•
•
•
•
Carga de processamento do processador
Reputação do cliente
Tempo para a entrega dos resultados
Tempo
…
Conclusões
• Os autores sugerem alguns tópicos de pesquisa
em conjunta
–
–
–
–
–
–
–
–
Arquiteturas baseadas em serviços
Estabelecimento de políticas de confiança
Gerenciamento da execução do sistema
Negociação
Composição de serviços
Organizações virtuais
Integração semântica
…
Minha opinião
• Discussão muito abstrata
• Position paper
• Boa percepção
– Grid  Agentes
– Agentes  Grid
• Visão IA de agentes
PARTE II
Exemplos: Economia e
Bioinformática
Economia
Buyya, Rajkumar; Abramson, David; Giddy, Jonathan; Stockinger, Heinz;
Economic models for resource management and scheduling in Grid
Computing. Concurrency and Computation: practice and experience, 2002; 14:
1507--1542
Motivação
• Os donos dos recursos possuem políticas
de acesso, uso e custo diferentes
• A carga e a disponibilidade dos recursos
(e provedores) varia no tempo
• Mesmo para sistemas de larga-escala,
abordagens tradicionais utilizam:
– Abordagens centralizadas que precisam do
estado global para tomar decisão
– Assumem o uso de políticas comuns
Solução apresentada
• Utilização de modelos econômicos para
alocação de recursos
– Descentralização
– Heterogeneidade
• De políticas, atributos de negociação ….
– Permite aos usuários negociarem um preço
particular baseados na demanda, prioridade e
orçamento disponível
– Preço pode ser substituído por cotas ou outra
abstração qualquer
Mercado de “Commodity” (Produto)
• Provedores de serviço dão o preço
– Geralmente baseados no custo de produção
adicionado de uma margem de lucro
...
consumer_id // this can be same Grid-ID
peak_time_price // 9am-6pm: office hours on working days
lunch_time_price // (12.30-2pm)
offpeak_time_price // (6pm-9am),
discount_when_lightly_loaded // if load is less than 50% at any time
raise_price_high_demand // % raise price if average load is above 50%
price_holiday_time // during holidays and week ends!
...
“Posted price” (Promoções)
• Similar ao “commodity”, mas permite o uso de ofertas
–
–
–
–
2mg grátis
1 hora R$3,00
2 horas R$5,00
…
Bargaining (Negociação)
• Nos modelos anteriores os preços são fixos
• Mas os clientes e os provedores podem querer
negociar até que cheguem a um acordo ou
desistam de negociar.
• Negociação é direcionada aos requisitos dos
usuário
– Deadline
– Preço
–…
Tender/Contract-Net (Licitação)
• Cliente anuncia os requisitos aos provedores
• Recebe as propostas
• Avalia e escolhe a mais apropriada
• Inicia o uso do serviço com o provedor
escolhido
Leilão
• Provedores anunciam seus serviços
• Clientes fazem ofertas (e podem ver as
ofertas dos outros clientes)
• O serviço a prestado a melhor oferta
Bid-Based Proportional Resource
Sharing
• A porcentagem de recurso alocado a um
usuário é proporcional ao valor da sua
oferta em relação as outras ofertas
• Exemplo:
– 2 usuários com requisitos similares
– O primeiro pretende gastar 2 tokens
– O segundo 4
– O primeiro fica com 1/3 e o segundo com 2/3
Community/
coalition/bartering/share holders
• Ambiente cooperativo
• Quem contribui mais ganha mais direito
aos recursos
• Presente em muitas comunidades de
compartilhamento de arquivos p2p
Nimrod-G: Grid Resource Broker
Experimento: Scheduling
• Programa com uso intensivo da CPU
#Parameters Declaration
parameter angle_degree integer range from 1 to 200 step 1;
parameter time_base_value integer default 10;
#Task Definition
task main
#Copy necessary executables depending on node type
copy calc.$OS node:calc
#Executable program with parameter values on remote node
node:execute ./calc $angle_degree $time_base_value
#Copy results file to use home node with jobname as extension
copy node:output ./output.$jobname
endtask
Experimento: Scheduling
• 2 estratégias (requisitos do usuário)
– Otimizar para tempo de execução
• Produz resultados o mais cedo possíveis, antes de
um deadline e tentando ficar dentro do orçamento
(custos)
– Otimizar para minimizar custos
• Tenta produzir os resultados antes do deadline,
mas o foco é a redução de custos
Experimento: Scheduling
Experimento: Scheduling
• Resultados
– Parâmetros: 4 horas de deadline
– Otimizar para tempo de execução
• 2h e 30 min.
• Custo: 199 968 G$
– Otimizar para minimizar custos
• 4h e 25 min.
• Custo: 141 869 G$
Conclusões (pessoais)
• Permite que cada lugar especifique o seu próprio
modelo de custo.
• O modelo pode ser baseado em alguns dos modelos
apresentados
• Apresenta comportamento flexível, do ponto de vista do
usuário
– Negociar de acordo com os atributos mais importantes
• Modelo comercial justo e viável para o uso comercial de
grids
Workflow
Moreau, Luc et al. On the use of agents in a BioInformatics Grid. International
Symposium on cluster computing and the Grid. 2003
Contexto
• Projeto em “e-Science” – MyGrid
• Auxiliam biólogos e pesquisadores em
bioinformática a realizar experimentos in
silico” baseados em workflow
Agentes
• Agente do usuário
– Permite representar o usuário no sistema.
• Recebimento de notificações de execução
• Uso de linguagens de comunicação de agentes
(ACL)
• Negociação
– Não ficou claro para mim como isto é utilizado.
MyGrid – Arquitetura Orientada a
Serviços
• Workflow
– Dada a especificação de um workflow, tem um
componente capaz de executa-la
• Interação do usuário
– Usuário pode interagir com o executor de workflow
• Suspendendo a execução, recuperando a execução,
observando, analisando logs ...
– Agentes representam usuários para gerenciar
notificações
MyGrid – Arquitetura Orientada a
Serviços
• Ontologias
– Informações sobre os usuários e sobre o
workflow
• Segurança e tolerância a falhas
– Controle de acesso baseado em papéis
– Computações persistentes
–…
Exemplo de Workflow
<serviceProvider name="reformatting_seqret“ type="ebins:seqret_derived">
<locator type="static“ service="url of file.wsdl"/>
</serviceProvider>
<activity name="Run_activity1">
<performedBy serviceProvider="reformatting_seqret"/>
<implement>
<export>
<target portType="ebins:reformatting__seqret"
operation="run"/>
</export>
</implement>
</activity>
<dataLink source="Create_activity1“ target="Run_activity1">
<map sourceMessage="createEmptyJobResponse“ targetMessage="runRequest">
<partMap source="return" target="in0"/>
</map>
</dataLink>
Download

Apresentação sobre Grid e Agentes - (LES) da PUC-Rio