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>