Grids: Agentes, Economia e Workflow Rodrigo Paes rbp@les.inf.puc-rio.br Computação Distribuída Profª. Noemi Rodriguez
Agenda PARTE I PARTE II Agentes - Conceitos Agentes e Grid 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 Abstração Funcional Programação Estruturada Orientação a Objetos Componentes ... Agentes de Software Abstrações determinadas pela arquitetura da máquina Tempo 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 Entidade Estado encapsulado Comportamento que manipula o estado Chame isso de objeto Entidade 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” Comunidade “Agente” 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 Agentes 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
Exemplos: Economia e Bioinformática 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 In-vivo – Experimentos realizados dentro de organismos vivos In-vitro – Experimentos realizados em ambientes artificiais In-silico – Experimentos realizados em computador (in silicon) silício http://www.worldwidewords.org/weirdwords/ww-ins1.htm
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>