• Nenhum resultado encontrado

Implementação da camada Sistema Multiagente

5.2 SISTEMA MULTIAGENTE PARA MONITORAR A OPERAÇÃO DE PERFURAÇÃO DE POÇOS DE PETRÓLEO

5.2.2 Implementação da camada Sistema Multiagente

A camada Sistema Multiagente foi implementada de acordo com os papéis especificados no Capítulo 4, através dos diagramas que descrevem os comportamentos dos agentes. Esses diagramas fazem parte da metodologia de desenvolvimento de software orientada a agentes Tropos, e foram criados com a ferramenta de modelagem TAOM4E (Seção 2.1.6.1). Com base nesses diagramas, utilizando a ferramenta t2x tool (Seção 2.1.6.1), que é um plug-in do TAOM4E, foram gerados os códigos dos agentes.

O código gerado é baseado na arquitetura de agentes BDI e é compatível com a plataforma de agentes Jadex25 (versão 2.3). Esse código consiste apenas no esqueleto dos

25 http://www.activecomponents.org

Figura 38 – Exemplo da estrutura de uma mensagem FIPA-ACL e conteúdo descrito pelas ontologias.

(inform :sender GerenciadorRecurso@mac :receiver Monitor@mac :content <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:aclo="http://.../AgentCommunication.owl#" xmlns:drab="http://.../wellDrillingAbnormality.owl#">

<aclo:Actionrdf:about="http://.../AgentCommunication.owl#inform_process_data">

<aclo:actrdf:datatype="http://www.w3.org/2001/XMLSchema#string">

informRTData </aclo:act> <aclo:argument> ... </aclo:argument> ... </aclo:Action> </rdf:RDF> )

agentes e por isso, foram feitos os ajustes necessários para a implementação. Assim os agentes foram implementados em Java no ambiente de desenvolvimento Eclipse26, utilizando os frameworks Jadex para o desenvolvimento dos agentes e Jena para a manipulação das ontologias.

Nas próximas seções são apresentados cada um dos agentes implementados.

5.2.2.1 Agente Gerenciador de Recurso

Na aplicação desenvolvida apenas um agente com o papel Gerenciador de Recurso foi implementado. Esse agente é responsável por recuperar os dados disponibilizados na camada de Dados e Serviços pelo sistema de Mud-logging. Os dados coletados correspondem aos parâmetros de perfuração e são anotados pelas ontologias de perfuração. Desta forma, esses dados são disponibilizados para os outros agentes em um formato que todos entendam. Nas seções anteriores (Figura 37 e Figura 38) foi apresentado um exemplo de como os dados são representados e enviados através de uma mensagem. O ADF que representa a estrutura interna desse agente baseado na plataforma Jadex é apresentado no Apêndice D.

Uma descrição dos objetivos desse agente é apresentada no Apêndice C.1.

5.2.2.2 Agente Monitor

Na aplicação desenvolvida dois agentes com o papel Monitor foram implementados. O primeiro foi desenvolvido para identificar a etapa da operação de perfuração, enquanto o segundo agente foi desenvolvido para detectar a anormalidade “Dificuldade de avanço”. Para isso, são utilizados os métodos apresentados nas Seções 5.1.3 e 5.1.4, e o conhecimento das etapas, das anormalidades e das causas, descritos através dos conceitos definidos na ontologia de perfuração.

Esses agentes, ao serem inicializados, buscam os agentes que fornecem os parâmetros de perfuração necessários para detectar a anormalidade “Dificuldade de avanço” e assinam o serviço desse agente para receber os dados. O agente Monitor responsável por identificar a etapa da operação analisa os parâmetros recebidos e informa o agente Supervisor quando está

sendo realizada a etapa de perfuração. O agente Supervisor notifica o outro agente Monitor que inicializa a análise dos parâmetros e informa as condições da operação para os agentes assinantes do serviço de monitoramento. Quando é detectada a “Dificuldade de avanço”, o agente Monitor informa ao agente Supervisor as condições na qual a anormalidade foi detectada. O Supervisor utiliza essas informações e também o conhecimento armazenado nas ontologias para diagnosticar e identificar as causas que levaram a essa ocorrência. O diagnóstico é informado aos agentes assinantes do serviço de supervisão.

Uma descrição dos objetivos desses agentes é apresentada no Apêndice C.2.

5.2.2.3 Agente Supervisor

O agente implementado com o papel Supervisor é responsável por supervisionar as operações de perfuração. Para isso, é utilizado o conhecimento, sobre as operações, as anormalidades e os agentes, descritos pelas ontologias e mantido na base de conhecimento pelo agente Gerenciador de Conhecimento. Com base nesse conhecimento, esse agente inicializa o agente Gerenciador de Recurso que desempenha a tarefa necessária para recuperar os dados de Mud-logging, e os Monitores para identificar a etapa da perfuração e detectar as anormalidades que podem ocorrer nessa operação.

Sempre que o Supervisor receber uma notificação de anormalidade de um agente Monitor, ele realiza uma consulta na base de conhecimento, através do agente Gerenciador de Conhecimento, a fim de diagnosticar essa anormalidade para identificar suas causas. O diagnóstico é informado ao usuário por meio de um agente Gerenciador de Interface com o Usuário, assinante do serviço de supervisão.

Uma descrição dos objetivos desse agente é apresentada no Apêndice C.3.

5.2.2.4 Agente Gerenciador de Conhecimento

O agente implementado com o papel Gerenciador de Conhecimento é responsável por gerenciar o repositório Semântico da aplicação (apresentado na Seção 5.2.1.3), dando acesso aos outros agentes para o conhecimento armazenado nesse repositório. Todo o conhecimento está descrito na forma de ontologias utilizando a linguagem OWL. Assim todas as consultas

dos outros agentes são tratadas pelo agente Gerenciador de Conhecimento, que consulta o repositório Semântico, utilizando a linguagem SPARQL27.

Uma descrição dos objetivos desse agente é apresentada no Apêndice C.4.

5.2.2.5 Agente Gerenciador de Interface com o Usuário

Na aplicação desenvolvida foi implementado um agente com o papel Gerenciador de Interface com o Usuário. Esse agente possui duas configurações as quais definem o tipo de comportamento que o agente vai apresentar. Na primeira configuração o agente funciona como um gerenciador de usuário, validando as informações de acesso do usuário quando esse entra no sistema e inicializando um novo agente Gerenciador de Interface com o Usuário (com a segunda configuração) para interagir e atender as requisições desse usuário. Assim, um agente com essa configuração é inicializado junto com o SMA e permanece ativo, aguardando a entrada de novos usuários.

Na segunda configuração o agente funciona como um “assistente pessoal” atendendo as requisições do usuário, que ele representa, e fornecendo as informações de interesse do mesmo. Um agente, com essa configuração, é inicializado para cada usuário ao entrar no sistema e o mesmo permanece ativos até o encerramento da sessão do usuário. Nessa aplicação, esse agente permite ao usuário consultar as informações sobre as anormalidades e os agentes, mantidas na base de conhecimento da aplicação. Outra tarefa desempenhada por esse agente envolve obter os dados de perfuração, assim como as informações sobre o monitoramento da operação e diagnóstico da anormalidade.

Uma descrição dos objetivos desse agente é apresentada no Apêndice C.5.

5.2.2.6 Agente Facilitador

Nessa aplicação não foi implementado um agente com o papel de Facilitador, pois foi utilizado o agente, chamado Directory Facilitator (DF) implementado e disponibilizado pela plataforma Jadex. Esse agente oferece as mesmas funcionalidades que o papel Facilitador propõe. Também por essa razão, a comunicação entre esse agente e os outros não utiliza as

ontologias para descrever o conteúdo das mensagens, pois para isso são utilizados os recursos oferecidos pela plataforma.