Academia.eduAcademia.edu

Asynchronous Remote Management of Agents for Subverse Project

2012, IEEE Latin America Transactions

The main idea of Subverse Project is focused on not only creating a virtual world for the interaction of agents. It also has the goal of being a development laboratory for computing students. Several agents can connect in this virtual world and interact with each other. However, if the agent lose connection with virtual world, then it can not control its avatar any more. A backup system (safe-mode) in the avatar may be sufficient to manage it until the connection can be restored. Thus, this paper presents a proposal for management of agents in the virtual world of Subverse Project asynchronously.

IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 1, JAN. 2012 1289 Asynchronous Remote Management of Agents for Subverse Project S. P. Zambiasi, L. P. Z. B. Oberderfer and Benin M. R. Abstract— The main idea of Subverse Project is focused on not only creating a virtual world for the interaction of agents. It also has the goal of being a development laboratory for computing students. Several agents can connect in this virtual world and interact with each other. However, if the agent lose connection with virtual world, then it can not control its avatar any more. A backup system (safe-mode) in the avatar may be sufficient to manage it until the connection can be restored. Thus, this paper presents a proposal for management of agents in the virtual world of Subverse Project asynchronously. Keywords— Subverse Project, Agents, Scripts asynchronous, remote management, Services Orientend Architecture. I. INTRODUÇÃO A IDEIA principal do Projeto Subverse está em não ser apenas um mundo virtual para a interação de agentes, mas também de se apresentar como um laboratório para a implementação de teorias e técnicas computacionais direcionado para alunos de cursos das diversas áreas da computação. Sendo assim, não é a intenção produzir um software propriamente dito como objetivo final, mas sim apresentar aos estudantes uma plataforma em constante desenvolvimento e evolução. A premissa disso é que no meio acadêmico deve-se buscar fornecer aos estudantes oportunidades e desafios para o desenvolvimento de softwares, técnicas, algoritmos, etc. . O projeto Subverse é composto de um mundo virtual em que diversos agentes podem se conectar remotamente e interagir entre eles, tentando sobreviver, evoluir e trabalhar de forma a alcançar seus objetivos . O Subverse, funcionando tal como um jogo multijogador, utiliza atualmente uma arquitetura de comunicação clienteservidor síncrona. Os clientes se conectam e enviam mensagens para um servidor responsável pelo processamento do jogo e recebem mensagens processadas para mostrar em uma interface gráfica do usuário. Ele também se utiliza de um middleware de comunicação para facilitar o desenvolvimento de aplicações distribuídas, deixando o desenvolvedor livre da preocupação de escrever o código para gerenciar interações entre os processos conectados remotamente , . Entretanto, ao se utilizar de uma forma de comunicação síncrona, podem haver atrasos de comunicação (lags) ou a perda da conexão, principalmente quando houverem muitas S. P. Zambiasi, Universidade Federal de Santa Catarina (UFSC), Florianópolis, Santa Catarina, Brasil, [email protected] L. P. Z. B. Oberderfer, Instituto Federal de Santa Catarina (IFSC), Chapecó, Santa Catarina, Brasil, [email protected] M. R. Benin, Pontifícia Universidade Católica do Paraná (PUCPR), Curitiba, Brasil, [email protected] conexões ocorrendo ao mesmo tempo no servidor ou houver algum problema de comunicação na rede de comunicação em si. Concomitantemente, o agente conectado deixa de controlar seu avatar devidamente, deixando-o indefeso às atividades do mundo virtual ou à ataques de agentes inimigos. Uma forma que se mostra atraente para resolver tal problema é a implementação de uma forma de safe-mode no avatar (elemento no mundo virtual controlado remotamente pelo agente). Este mecanismo de safe-mode caracteriza-se por uma implementação embutida no próprio avatar e que pode ser implementada ou configurada pelos usuários. Partindo dessa ideia, duas formas diferentes de controle do avatar pelo agente podem ser verificadas: (i) o algoritmo safemode entraria em execução depois de um timeout de comunicação entre o avatar e seu agente e (ii) toda a comunicação entre agente e avatar poderia ser assíncrona. Um outro problema que ocorre muitas vezes são os firewalls fechados de empresas ou mesmo de Instituições de Ensino, não permitindo que hajam conexões para diferentes portas, que não a porta 80. Uma alternativa a isso, e em adendo ao que já foi exposto, poder-se-ia utilizar para a comunicação entre agente e avatar uma forma padronizada, atual e assíncrona, tal como a estrutura fornecida pela tecnologia de serviços web, no estilo da Arquitetura Orientada a Serviços (SOA padrão OASIS) . Dessa forma, este artigo apresenta uma proposta de gerenciamento dos agentes no mundo virtual do Projeto Subverse de forma assíncrona no padrão SOA e com gerenciamento e controle do avatar pelo agente via um mecanismo safe-mode. Este artigo está organizado da seguinte forma. O capítulo I. introduz e contextualiza o problema e o trabalho de pesquisa. O capítulo II. apresenta uma revisão básica do assunto abordado. No capítulo III. é apresentada a proposta propriamente dita e no capítulo IV. são apresentadas as considerações finais do trabalho e os próximos passos. II. BREVE REVISÃO DA ABORDAGEM Uma vez apresentada a problemática básica e os objetivos da proposta, toma-se como próxima etapa a apresentação dos elementos teóricos e tecnológicos envolvidos. A. Projeto Subverse O Projeto Subverse caracteriza-se por se apresentar como um ambiente de aprendizado para alunos de cursos de computação. Não é a intenção que deste seja gerado um produto implementado ou software como objetivo final, por exemplo um jogo de computador online multijogador. Por 1290 meio do Projeto Subverse deve ser possível que os alunos possam implementar comportamentos nos agentes, que são diretamente aplicados aos seus avatares – elementos do mundo virtual que representam os agentes conectados. Também deve ser possível que os alunos possam criar novos ambientes de configuração, middlewares, plugins, softwares de visualização gráfica do que ocorre no mundo virtual, etc. Por meio dessa plataforma os alunos podem trabalhar, na prática, diversas teorias apresentadas em disciplinas de computação, tais como Inteligência Artificial, Algoritmos, desenvolvimento de Jogos de Computador, Sistemas Distribuídos e outras . O Subverse possui uma estrutura de arquitetura básica (Fig. 1) composta de dois lados, o servidor com um banco de dados, um ambiente de configuração via web, um mundo virtual e avatares que interagem nesse mundo virtual, controlado pelos agentes (do lado do cliente). Figura 1. Visão geral da proposta. Do lado do cliente é necessário que o usuário possua um navegador web instalado em seu dispositivo computacional. Este serve para que o usuário possa acessar o ambiente de configuração dos seus agentes. Além disso, o usuário pode instalar uma interface visual gráfica para que ele possa visualizar o que ocorre no servidor. Por fim, do lado do cliente é efetuada a implementação dos agentes, que controlam seus avatares no mundo virtual do Subverse . Propriamente, o Subverse é composto de partes modulares de um mundo virtual para a implementação de agentes. Estes são baseados no paradigma de jogos multijogador que trabalham em rede. Essa estrutura apresenta-se aos alunos como um desafio de implementações em constante evolução. O Projeto Subverse também sugere a utilização de tecnologias opensource, atuais e disponíveis de forma gratuita . Esta estrutura distribuída para múltiplas conexões de agentes remotos para interação no mundo virtual do Subverse pode ser vista, comparativamente, na forma de um Massive Multiplayer Online Game (MMOG). Porém, diferentemente de um jogo de computador, ou console, não são pessoas que se conectam ao servidor para jogar, mas sim são agentes préprogramados que se conectam ao servidor com o propósito de gerenciarem/controlarem seus avatares . No Subverse, os usuários podem implementar e executar seus agentes. Cada agente possui um avatar representante no mundo virtual que IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 1, JAN. 2012 precisa estar cadastrado no servidor via interface web. Estes se conectam ao mundo virtual e iniciam seu ciclo de vida. O usuário pode então visualizar o que está acontecendo por meio de uma interface visual gráfica. B. Agentes Como o Subverse apresenta agentes como elemento base para gerenciar os avatares no mundo virtual, uma explanação sobre essa tecnologia torna-se necessária neste ponto do artigo. Segundo , agentes podem perceber o meio ambiente em que se encontram através sensores e podem responder com ações de forma a atingir os seus objetivos. Não obstante, um agente precisa se comunicar com outros agentes e/ou outros sistemas para poderem alcançar seus objetivos. Dessa forma, este passa a participar inevitavelmente de um sistema multiagente. Conforme “um agente é tudo aquilo que pode perceber o ambiente em que se encontra, através de sensores, e agir sobre este ambiente por meio de atuadores”. Assim como um agente humano dispõe de sensores (olhos, ouvidos, tato, etc.) e atuadores (mãos, pernas, etc.), um agente robô, por exemplo, pode ser provido de sensores, tais como câmeras, infravermelhos e possuir atuadores, como rodas, braços mecânicos e diversos tipos de motores. Em complementação, um agente pode ser visto como um elemento físico ou virtual com capacidade de atuar em um ambiente. Este pode se comunicar diretamente com outros agentes, possuir objetivos individuais de satisfação e sobrevivência, recursos próprios, ser capaz de perceber o ambiente, possuir habilidades, oferecer serviços, ser capaz de se reproduzir e possuir comportamentos que visam satisfazer seus objetivos . Para , o princípio básico da utilização de agentes é que eles devem “saber das coisas” e o objetivo da Inteligência Artificial é projetar agentes que façam um bom trabalho com ações satisfatórias em seu ambiente. Já para , o agente é definido por um sistema de computador situado em algum ambiente e com capacidade de ações autônomas neste ambiente. Este ambiente pode ser tanto real (agentes de hardware) como virtual (agentes de software). Ainda, o agente deve ser capaz de perceber o meio em que se encontra e responder satisfatoriamente as mudanças que ocorrem no mesmo para poder cumprir com seus objetivos com certa autonomia flexível. A principal distinção destes em relação a agentes inteligentes é a capacidade de tomar iniciativas, a fim de satisfazer seus objetivos e pela aptidão de interagir com outros agentes e, possivelmente, com pessoas. Outras definições de agentes concebem um refinamento da tecnologia em um sentido mais avançado, tais como a definição de um agente racional. Este busca realizar uma ação que maximiza seu desempenho para cada possível sequência de percepção. Tal especificidade é chamada de mapeamento ideal e toma como base para suas deliberações evidências fornecidas pela sequência de percepção e pelas informações já existentes em sua base de conhecimento . POPOV ZAMBIASI et al.: ASYNCHRONOUS REMOTE MANAGEMENT Para , na computação, o termo agente abrange uma ampla gama de comportamentos e funcionalidades. Para ele, um agente ativo computacional é uma entidade que: tem uma identidade persistente, necessária para realizar transações, manipular exceções e para construir uma história de interações para definir a confiança com os outros agentes da qual este interage; pode perceber e responder ativamente às suas atividades no seu ambiente e pode se comunicar com outros agentes, ou pessoas. Além disso, os níveis de autonomia para estes agentes variam conforme as restrições do ambiente em que se encontram. A autonomia desses agentes depende da quantidade de sensores, atuadores e informações que eles possuem, além disso, grau de autonomia está relacionado à capacidade de decidir por si só como relacionar as informações dos sensores com seus atuadores para atingir seus objetivos e satisfazer suas motivações. Os agentes autônomos trabalham em ambientes dinâmicos e imprevisíveis, interpretando as informações obtidas pelos sensores e atuando, como resposta, no ambiente . De fato, as abordagens da utilização das tecnologias de Agentes e Sistemas multiagentes (MAS) já são bastante conhecidas e vêm sendo muito utilizadas para engenharias complexas, flexíveis e aplicações orientadas a serviços . C. Arquitetura Orientada à Serviços Conforme definido nos objetivos deste artigo, a Arquitetura Orientada a Serviços (SOA – Service Oriented Architecture) é sugerida para ser utilizada como base para a comunicação assíncrona entre o agente e seu avatar no mundo virtual do Subverse. Em verdade, o SOA foi escolhido como Estilo Arquitetural para que sirva como norteador dos princípios de funcionamento de controle do avatar e interoperabilidade. Dessa forma, se torna necessária uma explanação sobre o assunto ao leitor, situando-o de certas especificidades e apontando alguns importantes conceitos. Também, não convém extrapolar, ou estender exaustivamente o assunto referente à SOA, mas sim colocar o leitor a par dos termos utilizados na proposta. A Arquitetura Orientada a Serviço (SOA), conforme "é um paradigma para organização e utilização de competências distribuídas que estão sob o controle de diferentes domínios proprietários". Ou seja, as pessoas e organizações criam competências para resolver problemas específicos conforme suas necessidades. Estas são modeladas através de um conjunto de componentes que compõe a arquitetura e podem ser invocados por meio da descrição de suas interfaces, que podem ser publicadas e descobertas. . Segundo , o ponto central está no conceito de serviço e consumidores de serviços. Sendo assim, a tecnologia de serviços web é só uma maneira de aplicar a teoria na prática. Por meio da utilização de SOA, há uma negociação entre fornecedor e consumidor por meio de uma interface comum. A tecnologia da Arquitetura Orientada a Serviços surgiu como forma de reduzir o tempo, custos e recursos gastos na tentativa de uma integração rápida e flexível dos sistemas de 1291 Tecnologia da Informação e Comunicação envolvidos nas organizações. A utilização de SOA enfoca no aumento da agilidade na implementação de novos produtos e processos e na composição de novos processos por meio da orquestração de componentes já prontos. Além disso, abrange a possibilidade de reuso de sistemas e aplicações legadas. Esta tem como base componentes baseados em serviços, para que se possa atingir essa integração de forma rápida e flexível . Na arquitetura SOA, as aplicações de negócios do cotidiano são divididas em funções e processos de negócios individuais, compartilhados e reutilizáveis. Estes, chamados de serviços, são a composição básica da arquitetura SOA e podem fazer parte da composição de outros serviços pela integração/orquestração destes, independente das aplicações e plataformas computacionais para a execução . Para tornar estes serviços disponíveis, e viabilizados para o uso por terceiros, deve ser disponibilizada uma descrição deste serviço contendo as informações necessárias para a interação com ele e descrevendo suas entradas, saídas e semânticas associadas à eles . As interfaces de todas as funções devem estar bem definidas na forma de serviços independentes com interfaces de invocação bem definidas. Estas podem ser implementadas com várias tecnologias. Contudo, a principal tecnologia empregada hoje por diversas empresas por possuir um meio padronizado de implementação e a um custo razoável é a tecnologia de serviços web . Um dos principais objetivos da utilização de serviços web é a implementação de SOAs, por ser a tecnologia que melhor atende seus requisitos. Estes requisitos, segundo , são:  Baixo acoplamento: Os serviços da arquitetura não devem ter uma dependência forte entre si.  Independência de implementação: Não se deve depender de características específicas de linguagens de programação ou ambientes de execução.  Configuração flexível: Os diferentes serviços devem poder ser ligados entre si de forma dinâmica e configurável.  Tempo de vida longo: Os serviços devem existir por tempo suficiente para que sejam descobertos e utilizados até se obter confiança em seu comportamento.  Granularidade: As funcionalidades de um sistema devem ser divididas em vários serviços.  Distribuição: Os serviços devem ficar distribuídos, para aproveitar melhor os recursos computacionais. A arquitetura SOA combina a habilidade de invocar objetos remotos e funções com ferramentas para a descoberta dinâmica de serviços, com ênfase na interoperabilidade . Entretanto, a arquitetura SOA não é, por si só, uma solução para problemas para um dado domínio, e sim um paradigma de organização e entrega que permite obter mais valor das competências localmente disponíveis e daquelas controladas por terceiros . Um serviço, por sua vez, é um componente de software caracterizado como uma implementação bem definida de uma 1292 funcionalidade de negócios e com uma interface que pode ser publicada e descoberta por consumidores de serviços. Estes componentes podem ser agrupados para a criação de diferentes aplicações e processos de negócios utilizando-se de um modelo de comunicação baseado na troca de mensagens com baixo acoplamento . Estes buscam a interoperabilidade através da interação entre um computador e uma rede e se comunicam entre eles e outros sistemas por meio de mensagens baseadas no protocolo HTTP (Hipertext Trasnfer Protocol). Os três elementos principais dos serviços web são: (i) o protocolo de comunicação, (ii) a descrições dos serviços e (iii) a descoberta de serviços. . Segundo , os serviços Web trouxeram um novo paradigma suportando sistemas distribuídos fracamente acoplados com a descoberta e execução de serviços. A base para esses três elementos é a linguagem XML (Extensible Modeling Language). O protocolo de comunicação entre os serviços Web e seus clientes é o SOAP (Simple Object Access Protocol), o WSDL (Web Services Definition Language) é a linguagem que provê um mecanismo para descrever formalmente os serviços Web, utilizando-se de XML Schema para especificar a estrutura e os tipos dos dados que estão contidos nas mensagens e, por fim, o UDDI (Universal Descripition, Discovery and Integration) é o diretório de registro de serviços, acessados por meio de mensagens SOAP . É importante observar que inicialmente, SOAP significava Protocolo Simples para Acesso a Objetos, mas ele passou a ser apenas um nome em versões mais recentes, pois ele foi considerado um acrônimo incorreto se comparado com a funcionalidade atual do protocolo . A linguagem XML é uma linguagem de marcação de propósito geral que pode ser utilizada para a criação de linguagens de marcação com propósitos específicos, chamadas de dialetos. Com a linguagem XML é possível representar diferentes tipos de dados, além de fornecer recursos para combinar textos e informações extras sobre estes. Isso significa que trechos do texto podem conter informações de como este trecho específico do texto deve ser representado. A especificação 1.0 da XML apresenta uma sintaxe que define uma forma de se criar linguagens específicas, tal como a DTD (Document Type Definition), ou Definição de Tipo de Documento. Porém, com a utilização do XML Schema, o DTD se tornou obsoleto . A linguagem XML Schema, por sua vez, se utiliza da linguagem XML para a criação de esquemas de validação para XML. Um documento XML Schema é constituído por declarações de elementos, atributos e tipos. A cada elemento ou atributo é associado um tipo, o que pode ser declarado juntamente com o elemento, como no caso dos elementos mensagem e destinatário ou referenciando-se um tipo declarado separadamente através de um atributo type. Este tipo pode ser declarado no mesmo documento ou importado de outro documento XML Schema, podendo ser tipos simples ou complexos . IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 1, JAN. 2012 D. Implementação Embutida Segundo , a maioria dos jogos se utilizam do auxílio de alguma linguagem de script embutida no software. Essas linguagens normalmente são interpretadas, com tipagem dinâmica e gerenciamento automático de memória. A construção de estruturas de informações são bastante dinâmicas, fornecendo aos usuários uma forma interessante de ampliar as possibilidades do software em tempo de execução e sem a necessidade de uma nova compilação do código do software implementado. O funcionamento dessa ideia se dá por meio da implementação de um script em um programa hospedeiro, desenvolvido em uma linguagem de programação não necessariamente igual ao programa em si (por exemplo, o script em linguagem LUA e o programa em C++). Uma outra característica, que somada com a anterior torna a scriptagem uma excelente ferramenta de desenvolvimento, é que essas linguagens também não devem poder acessar execuções não autorizadas no programa hospedeiro . Várias vantagens podem ser identificadas pela utilização de uma linguagem de script acoplada em um software (normalmente utilizadas em jogos de computador). O script pode ser utilizado para definir configurações, objetos e seus comportamentos, gerenciar algoritmos de inteligencia artificial e tratar os eventos de entrada . Em , a linguagem Lua é apresentada como uma linguagem de script bastante atual e como uma das mais utilizadas no desenvolvimento de jogos. Isso devido “ao seu pequeno tamanho, bom desempenho, portabilidade e facilidade de integração”. Essa linguagem é extensível e projetada para oferecer metamecanismos que facilitam a adequação da linguagem às necessidades da aplicação. III. PROPOSTA DE GERENCIAMENTO ASSÍNCRONO A proposta deste artigo está embasada em alguns pontos básicos: (i) os agentes podem, por algum motivo, perder a conexão de rede, não mais podendo ter o controle sobre seus avatares para sobreviverem no ambiente virtual de forma segura. Assim, o avatar pode ficar sem ação, podendo não cumprir devidamente com os objetivos do agente ou sendo atacado por algum inimigo ou ficando sujeito às ameaças do ambiente virtual onde ele se encontra; (ii) A tecnologia da Arquitetura Orientada à Serviços (SOA) oferece uma forma de conexão assíncrona que, além de ser uma forma alternativa de conexão ao avatar do agente, é baseada em padrões abertos e interoperáveis para se trabalhar em um estilo de desenvolvimento modular e distribuído baseado em softwareas-a-service; e (iii) A linguagem Lua, já conhecida e utilizada por diversos desenvolvedores para a criação de código embutido em um programa (script), é apresentada aqui como sugestão de criação dos scripts de comportamentos do tipo safe-mode, que podem manter o avatar em operação enquanto a conexão com o agente não é restabelecida. Baseando-se nos pontos apresentados acima, é apresentada na Fig. 2 uma visão geral da proposta desse artigo. POPOV ZAMBIASI et al.: ASYNCHRONOUS REMOTE MANAGEMENT 1293 Não obstante, há de se considerar que o controle do avatar via agente, pode se dar pela soma das duas formas de comunicação. Se alguma dessas falhar, outra (backup) é estabelecida. Ou mesmo, se o avatar ficar sem o controle do agente, o módulo de comportamentos autônomos, desenvolvidos pelo usuário via scripts em linguagem de programação Lua, assume o controle do avatar. IV. CONSIDERAÇÕES FINAIS Figura 2. Visão geral da proposta. Do lado do cliente, continua existindo um agente que se utiliza de um middleware de comunicação com o avatar e o servidor, tal como apresentado em . Este é provido de métodos para gerenciar o avatar. Entretanto, agora do lado do servidor, a forma de conexão se dá pelo acesso à serviços web. Por meio de um conjunto de operações que o middleware fornece, ações podem ser atribuídas para serem executadas no avatar do agente e requisições de informações e contexto podem ser retornadas para que o agente esteja a par do que se passa com seu avatar. Também é importante agora considerar que a conexão não é mais síncrona, e a atividade do avatar necessita ser melhor planejada. Em tempo, como não há mais uma conexão direta para o controle do avatar via agente, nas configurações do avatar do lado do servidor é acrescentado um novo módulo, aqui chamado simplesmente de Comportamentos. Estes se caracterizam pelo somatório de scripts escritos em linguagem de programação Lua, cadastrados pelo usuário no avatar via ambiente web de configuração e que podem ser acessados/utilizados pelo agente remotamente. Com este recurso, várias ações mais complexas podem ser tomadas pelo avatar, comandado pelo agente. Porém, devido ao fato da conexão não mais ser síncrona, é necessário que a implementação do lado do agente seja focada agora para o planejamento, isto é, o usuário deve programar uma sequência de ações que podem ser executadas pelo avatar. Um exemplo de autonomia de execução que o avatar pode possuir, é a forma utilizada pelo Rover em Marte. Para que as pessoas na terra possam controlar este dispositivo robótico foi necessário que ele tivesse certa autonomia. Isso pois há um delay de comunicação entre o planeta Terra e o planeta Marte, não sendo possível controlar o sistema em tempo real. Em caso de pane, obstáculos e outros problemas, o robô em Marte necessita encontrar a solução sem o auxílio obrigatório das pessoas na Terra . Este artigo apresentou uma proposta de controle do avatar pelo agente no mundo virtual do Projeto Subverse via comunicação Assíncrona. Para tal, sugere-se a utilização da Arquitetura Orientada a Serviços com serviços web, adaptando a comunicação à um protocolo padrão e interoperável. Em tempo, a proposta sugere também a utilização de scripts embutidos no avatar, no servidor do Subverse. Estes implementados em linguagem de programação Lua, que se apresenta como uma ferramenta para fornecer certa autonomia ao avatar, quando este não se encontra mais em comunicação com seu agente (controlador). A proposta foi apresentada no nível de pesquisa dos assuntos relacionados, em nível de visão geral e de forma conceitual. Um protótipo inicial baseado na proposta já foi implementado e testado. Contudo, este se caracterizou de forma muito simples e não sendo aplicado ao próprio Subverse. Dessa forma, uma nova versão, sendo agora implementada em cima da estrutura atual do Projeto Subverse encontra-se em seu período de desenvolvimento e os resultados da execução da implementação devem ser avaliados. Em tempo, além de apresentar neste artigo novas linhas de pesquisa a serem adicionadas ao Projeto Subverse (planejamento, autonomia do avatar remotamente, linguagens de scripts, etc), é aqui sugerida uma forma de comunicação via SOA, padronizada, permitindo que outras instâncias de agentes possam se comunicar de maneira mais interoperável. Contudo, a implementação ainda não foi testada e novos desafios ainda devem ser encontrados e avaliados, incluindo ao que se refere a limitações do próprio servidor do Subverse, da linguagem de script e da forma de comunicação. Além de ser necessário avaliar os impactos na atual metodologia de execução e comunicação dos agentes com seus avatares e propriamente do funcionamento do Sistema do Projeto Subverse como um todo. Neste sentido, este trabalho deve ser visto como uma contribuição para o Projeto Subverse, em vários níveis. Há vários aspectos que devem ser mais bem estudados e implementados. Como próximos passos, o trabalho direcionase ao término do protótipo do módulo a ser acrescentado ao conjunto de módulos do sistema do Projeto Subverse para testes e avaliação. Também, devem ser implementados os agentes que serão conectados de forma assíncrona ao servidor, controlando seus avatares, agora com certa autonomia. 1294 IEEE LATIN AMERICA TRANSACTIONS, VOL. 10, NO. 1, JAN. 2012 REFERÊNCIAS [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] Agrawal, R., J.Bayardo Jr., R., Gruhl, D., Papadimitriou, S. Vinci: a service-oriented architecture for rapid development of Web applications. Computer Networks, 39(5):523–539. <http://www.sciencedirect.com/science/article/B6VRG-45KNFVW3/2/>. Accessed in Nov/2008. 2005. Booth, D.; Haas, H.; Mccabe, F.; Newcomer, E.; et al. Web Services Architecture. <http://www.w3.org/TR/ws-arch/> Accessed in Fev/2009. 2004. Bray, T.; Paoli, J.; Sperberg-McQueen, C.M.; at al. Extensible Marckup Language (XML). W3C Recomendation. <http://www.w3.org/TR/xml> accessed in Mar/2009. 2008. Celes, W. and de Figueiredo, L.H. and Ierusalimschy, R.. A Linguagem Lua e suas Aplicações em Jogos. Rio de Janeiro, 2004. Disponível em: <http://www.tecgraf.puc-rio.br/~lhf/ftp/doc/wjogos04.pdf> Acessado em Ago/2011. Dickey, C.G, Zappala, D. and Lo LO, V., 2004. A Distributed Architecture for massively multiplayer online games. ACM NetGames Workshop. Dudley, C.; Rieu, L.; Smithson, M.; Verma, T.; et al.. WebSphere Service Registry and Repository Handbook. First Edition ed. IBM RedBooks: IBM. 2007. Estefan, J. A.; Laskey, K.; McCabe, F.; Thornton, D. Reference Architecture for Services Oriented Architecture Version 1.0. OASIS. <http://docs.oasis-open.org/ soa-rm/soa-ra/v1.0/soa-ra-pr-01.pdf>, Accessed in Dec/2008. 2008. Ferber, J., Multi-agent systems: an introduction to distributed artificial intelligence. Addison-wesley, United Kingdom, London, 1998. Gesser, Carlos E. Uma abordagem para a integração dinâmica de serviços web em portais. Eng. Elétrica - UFSC. Dissertação. 2006. Haas, H; e Brown, A.; 2004. Web Services Glossary. <http://www.w3.org/TR/ws-gloss/>, acessado em Dez/2008. Huhns, Michael N. Singh, M.P., Personal assistants, IEEE Internet Computing, Vol. 2, Issue 5, pp. 90-92. Sep./Oct. 1998. Huhns, M.N.; Singh, M.P.; Burstein, M.; at al. Research directions for service-oriented multiagent systems. IEEE Internet Computing. vol 9, num 6, pg 65-70. 2005. MacKenzie, C.; Laskey, K.; McCabe, F. at all. Reference Model for Service Oriented Architecture 1.0. OASIS Standard, 12 October 2006. <http://docs.oasis-open.org/soa-rm/v1.0/soa-rm.pdf> acessado em Fev/2009. O'Brien, L.; Bass, L.; Merson, P. Quality Attributes and ServiceOriented Architectures. Technical Note - Software Engineering Institute, Carnegie Mellon University. 2005. Paurobally, S.; Jennings, N.R. Developing Agent Web Service Agreements. Proceedings of the IEEE/WIC/ACM International Conference on Web Intelligence (WI'05). 2005. Piazza, André P. Uma abordagem para interoperabilidade entre plataformas heterogêneas de serviços web para redes colaborativas de organizações. Eng. Elétrica - UFSC. Dissertação. 2007. Russel, S., Norvig, P., Inteligência Artificial, 2aEd, Tradução da segunda edição. Rio de Janeiro: Elsevier, 2004. Singh, M. P. e Huhns, M. N. Service-Oriented Computing: Semantics, Processes, Agents. John Wiley & Sons, New York, NY, EUA, 1a. Edição. 2005. Stojanovic, Z.; Dahanayake, A.; Service-oriented software system engineering: challenges and pratices. Idea Group Inc. Hershely, PA. 2005. Thompson, H. S., Beech, D., Maloney, M., e Mendelsohn, N.; 2004. XML Schema (2nd Edition). <http://www.w3.org/TR/xmlschema-1/> acessado em Abril/2006. 2004. Wang, H., Huang, J. Z., Qu, Y., e Xie, J.Web services: problems and future directions. Journal of Web Semantics, 1(3):241–320. 2005. Wooldridge, M. An introduction to multi-agent systems. England: John Wiley and Sons. 2001. Volpe, R. Rover functional autonomy development for the mars mobile science laboratory. Proc. 2003 IEEE Aerospace Conf, pg.243-652. 2003. Zambiasi, S.P.; Benin, M.R.; Silva, F.C. Projeto Subverse: Um Mundo Virtual Baseado em Jogos Multijogadores como Ferramenta de Ensino Multidisciplinar em Cursos de Tecnologia da Informação. I Simpósio Santa Catarina Games (SCGames2009). Florianópolis, Brasil, 2009. [25] Zambiasi, S.P.; Silva, F.C. Uma proposta de middleware de comunicação para jogos multijogador online com enfoque no Projeto Subverse. IX Simpósio Brasileiro de Jogos e Entretenimento Digital SBGames2010. Florianópolis - SC. 2010. Saulo Popov Zambiasi possui graduação em Ciência da Computação pela Universidade do Oeste de Santa Catarina - Campus de Chapecó (1998), especialização em Ciência da Computação pela Universidade Federal de Santa Catarina (2000) e mestrado em Ciências da Computação pela Universidade Federal de Santa Catarina (2002). Atualmente é Pesquisador – Estudante de doutorado do Programa de Pós-Graduação em Engenharia de Automação e Sistemas da Universidade Federal de Santa Catarina. É professor da Universidade do Sul de Santa Catarina (UNISUL), das Faculdades Barddal e Revisor de periódico da Revista IEEE América Latina. Tem experiência na área de Ciência da Computação, com ênfase em Computação Aplicada, atuando principalmente nos seguintes temas: Inteligência Artificial Distribuída, Sistemas Multiagentes, Agentes Inteligentes, Computação Gráfica, Jogos de Computador e Automação Residencial. É membro integrante do Projeto Subverse. Lara Popov Zambiasi Bazzi Oberderfer é formada em Ciência da Computação pela Universidade Comunitária da Região de Chapecó (UNOCHAPECO). Possui especialização em Gestão Estratégica em Tecnologia da Informação pela Faculdade Exponencial. Trabalha atualmente como professora do Instituto Federal de Santa Catarina (IFSC) Campus de Chapecó. É membro integrante do Projeto Subverse. Tem experiência nas áreas de desenvolvimento de sistemas para internet e Inteligência Artificial. Max Ricardo Benin possui graduação em Sistemas de Informação pela Faculdades Barddal em 2007. Pósgraduado em Desenvolvimento de Jogos Eletrônicos pela Pontifícia Universidade Católica do Paraná em 2011. Atualmente é professor de um curso livre em desenvolvimento de aplicações WEB, Analista Sênior em empresa privada e CTO e fundador de uma startup com foco em Desenvolvimento de Jogos Eletrônicos. Possui experiência na área de Desenvolvimento de Aplicações WEB com ênfase em semântica, padrões e WEB 2.0 e também possui experiência em Desenvolvimento de Jogos Eletrônicos multiplataforma com ênfase em Arquitetura e Padrões de Sistemas, Design e Prototipagem. É membro integrante do Projeto Subverse.