Post on 17-Apr-2015
Grids:Agentes, Economia e Workflow
Rodrigo Paesrbp@les.inf.puc-rio.br
Computação DistribuídaProfª. 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
Tempo
Abstrações determinadas pela arquitetura da máquina
Abstrações determinadas pelo domínio do problema
• Linguagens Assembler
• Abstração Funcional
• Programação Estruturada
• Orientação a Objetos
• Componentes
• ...
• Agentes de Software
• 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
O que são Agentes?
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-IDpeak_time_price // 9am-6pm: office hours on working dayslunch_time_price // (12.30-2pm)offpeak_time_price // (6pm-9am),discount_when_lightly_loaded // if load is less than 50% at any timeraise_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 Declarationparameter angle_degree integer range from 1 to 200 step 1;parameter time_base_value integer default 10;#Task Definitiontask main
#Copy necessary executables depending on node typecopy calc.$OS node:calc#Executable program with parameter values on remote nodenode:execute ./calc $angle_degree $time_base_value#Copy results file to use home node with jobname as extensioncopy 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>