• Nenhum resultado encontrado

4 INSTANCIAÇÃO DA ARQUITETURA DE REFERÊNCIA E IMPLEMENTAÇÃO DE PROTÓTIPO

4.1 CASO DE IMPLEMENTAÇÃO

4.1.2 Camada de Processo

Na camada de processos está localizado o Gerenciador de Assistentes Pessoais (GAP). Este é o elemento que se utiliza das informações do usuário e de cada comportamento, juntamente com a forma de execução do comportamento e os executa, efetuando as devidas chamadas a serviços web. Também estão localizados os Motores de Execução de Serviços Web. Este é responsável por carregar o serviço web na memória e efetuar sua execução. Considera-se apenas que um serviço é uma informação que é carregada em um motor de software que a executa.

Das aplicações Legadas tem-se:

iwEstoque: Sistema com seu próprio banco de dados e interface web da qual o usuário necessita efetuar o gerenciamento. No caso, o assistente pessoal irá auxiliar o usuário nessa tarefa.

iwFornecedor: Sistema com seu próprio banco de dados e interface web que gerencia o estoque no fornecedor. Este sistema é necessário para que possa ser feita de forma efetiva a simulação o processo de compra pelo cliente. Se um produto estiver com estoque baixo na hora da venda, a ordem de venda é modificada e o cliente deve estar ciente das modificações. Das Aplicações de Configuração tem-se:

iwGAP: Ambiente web de configuração do assistente pessoal. Por meio deste sistema, o usuário efetua o cadastro do seu assistente pessoal, cadastra comportamentos e os configura, com informações gerais que todos os comportamentos podem utilizar, com suas próprias informações, com a maneira como o comportamento deve ser executado e com suas chamadas à serviços web.

iwRelatório: Sistema com interface web para a criação de um usuário do sistema de geração automática de relatórios e para gerenciar as informações deste usuário.

iwISAP: Sistema web para configuração do elemento “Interface Social para Assistentes Pessoais”. A função desse elemento é efetuar uma interface entre o usuário e o assistente pessoal. O usuário deve se comunicar por meio de mensagens de twitter, Gtalk ou SMS de celular. As mensagens são filtradas e apenas o que é relevante ao assistente pessoal é enviado ao

GAP. Da mesma forma, o GAP envia mensagem ao ISAP, que deve processá-la antes de enviar ao usuário.

iwMailA: Interface para configuração do assistente de leitura de e-mails. É possível cadastrar filtros e para cada filtro um conjunto de regras.

iwChatbot: Quando um usuário entra em contato com seu assistente pessoal, enviando uma mensagem ou uma requisição de tarefa, ou mesmo quando alguma outra pessoa deseja entrar em contato com o usuário, pode enviar mensagens ao assistente pessoal. O elemento de chatbot serve para retornar um feedback ao usuário de uma forma mais amigável, como se fosse uma conversa com alguma pessoa real, tal como o Cleverbot11. A

interface de configuração do Chatbot serve para configurar as conversas com o usuário e verificar os logs de conversas com as pessoas.

A forma como esses elementos estão dispostos na arquitetura e são implementados é apresentada mais a frente.

4.1.3 Camada de Dados

Na camada de dados encontram-se os bancos de dados das aplicações legadas, o cadastro de assistentes pessoais, com informações de cada assistente cadastrado. O sistema permite que possam haver vários usuários de assistentes pessoais, cada um com suas informações, comportamentos, etc.

Cada comportamento também necessita das informações necessárias para que cada um seja executado e de uma base de dados que é definida a forma como o comportamento é executado e os serviços web são instanciados.

Os serviços web, também considerados aqui como estando na camadas de dados, são os seguintes:

wsAudit: é utilizado para auditoria geral. Neste serviço são enviadas informações que podem servir para, posteriormente avaliar como o sistema está sendo executado. Útil para a avaliação final do trabalho.

11O Cleverbot é uma máquina de inteligência que venceu um concurso de teste de

wsChatter: serviço bastante simples, que recebe uma frase e retorna uma resposta. Têm a finalidade de criar uma forma mais natural de interação com o usuário.

wsCC: simulação de transação com cartão de crédito. Utilizado pelo comprador e pelo vendedor.

wsMaila: avalia os e-mails do usuário e retorna mensagens que deve ser enviadas ao mesmo, caso seja de algum assunto específico e com as características definidas pelo próprio usuário.

wsReport: recebe informações de tarefas realizadas e gera um relatório dessas quando requisitado. As tarefas são separadas em tarefas públicas e tarefas privadas. Isso tem consequência posteriormente na hora da forma que o relatório é apresentado ao usuário.

wsMBox: gerenciador de mensagens, separa conforme o comportamento que deve receber a mensagem. As mensagens provindas do ISAP, são requisitadas pelo GAP. Essas mensagens podem ser direcionadas a comportamentos específicos. Assim, para que as mensagens não se percam, o GAP as envia para o wsMBox especificando de qual comportamento é a mensagem, e quando o comportamento requisitá-la, o wsMBox as retorna.

Libs12: Esses são serviços que podem ser utilizados pelos

comportamentos para funções especificas de manipulação de informações e outros. Neste caso, há algumas implementadas que são:

kqml: manipulação de mensagens no formato kqml sob XML;

math: funções matemáticas;datetime: funções de data e horário;string: funções de manipulação de strings;

myMsgTable: manipula uma estrutura própria de tabelas. Desenvolvido e utilizado pelo desenvolvedor. O KQML (Knowledge Query and Manipulation Language) é uma linguagem e um protocolo para troca de informações e conhecimentos. Ela pode ser utilizada para a interação e troca de conhecimentos entre sistemas inteligentes em prol da resolução cooperativa de problemas (Hunhs, 1999). Ela é utilizada aqui por ser um padrão e já possuir uma

certa maturidade. Contudo, ainda assim, é apenas uma escolha do autor dessa implementação e que não compromete de forma alguma a proposta.

Há também os serviços de interoperabilidade, que têm a função de criar interoperabilidade de algum elemento que não se encontra no padrão de serviços web da OASIS (MacKenzie et al., 2006). Para a implementação do caso em questão, são apresentados os seguintes serviços de interoperabilidade:

wsTwit: interoperabilidade com o serviço de microblog Twitter;

wsMail: interoperabilidade com serviços de e-mail via protocolo POP3;

wsXMPP: interoperabilidade com serviços de Instant Messaging que funcionam sob o protocolo XMPP (eXtensible Messaging and Presence Protocol). No caso do protótipo, é utilizado o Gtalk.

wsEstoque: interoperabilidade com o sistema de controle de estoque, via banco de dados do sistema.

wsOrdem: para gerenciamento das ordens de compra no cliente.

wsVenda: para contatar um fornecedor e negociar a compra de produtos.

Todos os serviços acima citados podem ser utilizados pelo GAP e também por outros serviços.