Um modelo de referência é caracterizada por ser uma abstração da realidade, que pode ser expressa por um formalismo de um método de modelagem, conforme os objetivos de um usuário (Vernadat, 1996).
Um modelo de referência é um framework abstrato para entendimento dos relacionamentos significantes entre as entidades de algum ambiente. Ele habilita o desenvolvimento de arquiteturas específicas usando padrões consistentes ou especificações suportando aquele ambiente. Um modelo de referência consiste de um conjunto mínimo de conceitos unificados, axiomas e relacionamentos com um domínio de um problema particular, e é independente de padrões específicos, tecnologias, implementações, ou outro detalhe concreto (MacKenzie et al., 2006, 2009).
Para Bass et al. (2003), um modelo de referência é uma divisão de funcionalidades, juntamente com o fluxo de dados entre as partes. Ele se caracteriza como um padrão de decomposição do problema. Os modelos de referência possuem características de domínios maduros, decorrente da experiência sobre este domínio.
No modelo de referência é proposto um vocabulário e um entendimento comum sobre o que são os elementos específicos do domínio trabalhado. Este contém uma normativa na forma de um modelo abstrato (MacKenzie et al., 2006, 2009).
Nesta seção é apresentado um modelo de referência para assistentes pessoais. Contudo, ainda mantendo o enfoque no conceito de assistentes pessoais firmado neste trabalho em que um assistente pessoal se caracteriza como:
…um conjunto de processos computacionais trabalhando em conjunto e criados para
representar um usuário na execução de certas tarefas, automaticamente ou com algum grau de intervenção/supervisão humana (Zambiasi e Rabelo, 2010).
Para apresentar o modelo de referência, primeiramente separam- se os requisitos desejáveis para assistentes pessoais que devem se enquadrar neste ponto, identificados na seção 2.1. Isso pois alguns deles são resolvidos apenas em nível de implementação ou em nível da utilização do estilo arquitetural.
A autonomia é, de certa forma, genérica e está intrinsecamente ligada às ações que um SAP deve executar. A interatividade é requisito geral e que deve ser já abstraído neste ponto. Para fazer uma ligação da autonomia com a interação, um módulo de gerenciamento também é identificado, fazendo a integração entre estes dois outros elementos.
Flexibilidade, adaptabilidade ao usuário e ao contexto, e generalidade de propósito são características que podem tomar diversos caminhos distintos neste ponto. Dessa forma, eles são deixados para se solucionar nas próximas etapas. Interoperabilidade e conectividade à rede são em nível de tecnologia e também são resolvidos mais a frente.
A Figura 14 ilustra os principais conceitos identificados acima e são definidos no modelo de referência de SAPs deste trabalho.
Figura 14: Modelo de Referência de SAPs.
A notação trabalhada neste modelo de referência segue o estilo da notação apresentada no modelo de referência de SOA, apresentado por MacKenzie et al. (2006). Para apresentar o modelo de referência visualmente são utilizados mapas de conceitos. Neste, uma linha entre dois conceitos representa um relacionamento, não havendo um nome, mas uma descrição de como eles estão relacionados. A seta indica uma relação assimétrica, em que um conceito é dependente de outro da qual está relacionado. Em verdade, não há uma convenção normativa para
interpretar mapas de conceitos. Estes são uma forma visual para complementar a explicação textual (MacKenzie et al., 2009).
Comparativamente, pode-se fazer um paralelo com a ideia de agentes. Um agente percebe o ambiente por meio de sensores e responde a esse ambiente por meio de atuadores. Internamente no agente, existe a deliberação, ou seja, o que fazer com as informações de entrada e com as informações que estão armazenadas na forma do “conhecimento” do Agente. Dessa forma, o agente pode agir de forma a alcançar seus objetivos. Um agente também pode interagir com outro agente ou sistemas para satisfazer seus objetivos (Russel e Norvig, 2004), (Weiss, 1999).
Assim, poder-se-ia definir um SAP na forma de um agente. Entretanto, isso limitaria a implementação a ser direcionada a apenas SAPs como agentes, e na verdade, não obrigatoriamente tal problema pode ser resolvido apenas com agentes. Portanto, na proposta abre-se essa escolha para o nível da implementação, ou da Arquitetura de Referência para Implementação”. Neste ponto são definidos os itens que podem permitir a solução do resto dos requisitos identificados, e de forma que a arquitetura seja ampla o suficiente para permitir vários estilos de tecnologias de implementação, mas que possam conversar entre si pelos elementos definidos na arquitetura. Assim, abandona-se aqui a obrigatoriedade da utilização da tecnologia de agentes no nível da arquitetura de referência para SAPs.
Entre os elementos principais estão a Ação, que se refere aos comportamentos do assistente, a Interação para com o usuário ou outros assistentes ou softwares e o Gerenciamento, para gerenciar a execução do assistente, organizar as informações e o fluxo dessas entre os demais elementos.
3.1.1 Ação
A Ação é aquele elemento da qual se refere a forma como o assistente deve agir para auxiliar o usuário, e corresponde as atividades definidas por Bocionek (1994), Bush et al. (2006), Franco et al. (2007), Huhns e Singh (1998). Este elemento de atividade se refere ao comportamento do assistente propriamente dito (Figura 15). Contudo, a ação se subdivide em um conjunto de atividades do SAP, conforme os autores citados. Assim, o Elemento Ação pode se caracterizar como a composição do conjunto de n ações que podem ser utilizadas pelo
assistente pessoal para que este possa cumprir com seus objetivos e com os objetivos do seu usuário.
Figura 15: Conjunto de Ações que compõem a Ação do Assistente Pessoal.
Para que um SAP possa tomar iniciativa, por meio do elemento ação do modelo de referência, ou mesmo reagir a uma determinada entrada de informações, é necessário que o assistente possua um conjunto de módulos de execução. Na Figura 16, o elemento Ação do modelo de referência é detalhado em subelementos de grande relevância para que o comportamento do SAP possa se tornar efetivo e operacional.
Figura 16: Visão do subelemento da Ação do Modelo de Referência para Softwares Assistentes Pessoais.
Por Informações, tem-se o conjunto de dados ou a base de conhecimento armazenados no SAP de suporte à execução de uma determinada ação do SAP. A relevância e importância dessas
informações, (Michaell et al., 1994), (Bush et al., 2006), (Huhns e Singh, 1998), (Schiaffino e Amandi, 2006), está diretamente ligada a sua utilização para a execução de cada ação. O item Entradas refere-se ao conjunto de informações que chegam de elementos externos ao assistente e que são suficientes para iniciar uma determinada ação do SAP, assim como agentes sentem o seu ambiente por sensores (Huhns e Singh, 1998), (Russel e Norvig, 2004). Essa ação, por fim, reage com um Efeito, que pode ser tanto interno do próprio SAP como externo, com parceiros, outros SAP, outros softwares, ou mesmo na forma de interação do usuário. Isso é correspondente com a ideia da ação dos agentes no ambiente, de Huhns e Singh (1998) e Russel e Norvig (2004).
3.1.2 Interação
A Interação, conforme subelementos explodidos do elemento Interação na Figura 17, é a forma como se dá a comunicação e negociação entre Usuário e módulo de Gerenciamento do assistente, ou entre o módulo de Gerenciamento do assistente e terceiros (pessoas, softwares, outros assistentes, etc.). Isso condiz com as teorias da interação com os assistentes pessoais e usuário, ou outros elementos (Bocionek, 1994), (Bush et al., 2006), (Franco et al., 2007) , de forma a alcançar os objetivos do usuário (Levin et al., 2000) .
Figura 17: Explosão do elemento Interação do assistente em subelementos.
Para que o usuário possa interagir com o SAP, é necessário que esse faça uso de recursos fornecidos pelo conjunto de elementos do SAP específicos para a interação com o usuário. Esses recursos visam
fornecer facilidades para o lado do Usuário enviar comandos ao SAP como receber informações e relatórios do andamento e do resultado das ações executados pelo SAP. Esse elemento é também responsável por facilitar o acesso do assistente ao usuário, de forma a iniciar a comunicação entre o SAP e o usuário quando necessário para o cumprimento dos objetivos (Levin et al., 2000), (Huhns e Singh, 1998) . Essa interação também deve ser suficiente para resolver conflitos com terceiros, também visando o cumprimento dos objetivos do usuário do assistente ou do assistente propriamente dito.
3.1.3 Gerenciamento
O Gerenciamento é o mecanismo responsável pela organização das informações do usuário, das ações e do fluxo dessas informações entre os demais elementos do modelo, tal como comportamentos distribuídos (Brooks, 1991), (Brooks, 1989). Este é também responsável pela organização da chamada de execução das ações, a ordem temporal como essas ocorrem e possíveis conflitos que possam haver entre esses elementos.
A Figura 18 apresenta a forma como o módulo de Gerenciamento do assistente se relaciona com os outros elementos no modelo.
Figura 18: Explosão do elemento Gerenciamento.
Para que o gerenciamento do SAP seja efetivo, é necessário que um conjunto de informações acerca do usuário do SAP esteja armazenada e que possa ser utilizada quando necessário. Essas
informações devem evoluir com o tempo em concordância com a evolução do usuário no mundo real, com mudanças de tarefas, preferências, atividades, etc. (Michaell et al., 1994) , (Bush et al., 2006), (Huhns e Singh, 1998), (Schiaffino e Amandi, 2006).
Por meio dessas informações, o módulo de gerenciamento do SAP deve decidir quando e como iniciar uma ação. Essa também, para que possa ser executada de forma condizente, deve ser carregada com um conjunto de informações específicas e também armazenadas no SAP. Com essas informações é possível que a ação se torne operacional quando certas condições forem satisfeitas.
3.1.4 Visão Geral do Modelo de Referência
Compilando todos os conceitos em uma visão geral do modelo de referência, pode-se ter uma figura ilustrativa de todos os elementos relacionados (Figura 19).
Figura 19: Visão Geral do Modelo de Referência.
Com definições abstratas e genéricas formando um modelo de referência para softwares assistentes pessoais, pode-se agora reunir o modelo, juntamente com o estilo arquitetural escolhido, SOA, para definir a Arquitetura de Referência. Contudo, é apresentado primeiramente uma visão geral da proposta.