• Nenhum resultado encontrado

O Framework Knowframe

3.4 A API Task Plugin

56 3. OFrameworkKnowframe

Figura 3.15:Diagrama de Classes - APITask Plugin

AbstractInferenceMethod: esta classe abstrata deve ser estendida quando se deseja usar os recursos de avaliac¸˜ao de express˜oes, pois fornece o m´etodo evaluateBooleanExpression, que faz uso da engine de scripts groovy, que ´e uma linguagem com tipagem dinˆamica que pode ser executada em uma m´aquina virtual java sem a necessidade de compilac¸˜ao. Com esta funcionalidade, o desenvolvedor pode alterar as regras de seu Pluginap´os seu registro sem ter que realizar um novoupload.

O pr´oximo diagrama de classes, da Figura 3.16, mostra as anotac¸˜oes utilizadas para configurac¸˜ao do Knowframe, que est˜ao descritas a seguir:

REST: Esta anotac¸˜ao configura uma classe que implementa a interface TaskPlugin para responder uma solicitac¸˜ao em um determinado caminho, o qual ´e fornecido pela propriedade url.

Input: Deve ser utilizado em um m´etodo pertencente `a classe que implementa a interface TaskPlugin, informando ao ambiente de execuc¸˜ao qual o m´etodo que recebe a entrada de

3.4 A APITask Plugin 57

Figura 3.16:Diagrama de Classes -Anotac¸˜oes

informac¸˜oes. A propriedadenameindica qual o nome do parˆametro da requisic¸˜ao que cont´em a string em formato XML que deve ser transformado em objetos java e passado como parˆametro.

Output: Tamb´em utilizado na classe que implementa a interfaceTaskPlugin, define o m´etodo que o ambiente vai invocar para receber a sa´ıda do processamento da tarefa.

RuleTypeInstance: Esta anotac¸˜ao possui trˆes propriedades,knowledgeBaseindica a base de conhecimento,from ´e nome do esquema euses´e o nome da express˜ao que ser´a utilizada. Esta anotac¸˜ao pode ser usada em um m´etodo de qualquer classe que implemente a interfaceInference ou estenda a classeAbstractInference. Representa a instˆancia de um tipo de regra usada por uma inferˆencia.

Concept: deve ser usada para atribuir a uma classe a semˆantica de Conceito do Common-KADS, a priori quando ´e realizado ouploaddo arquivo .jar que cont´em umPlugin. O ambiente verifica se as classes que possuem esta anotac¸˜ao cont´em somente m´etodos de recuperac¸˜ao e acesso (m´etodosget/set) a atributos.

Na Figura 3.17 s˜ao ilustradas algumas classes que podem auxiliar o desenvolvedor na construc¸˜ao do modelo de dom´ınio da aplicac¸˜ao.

A interfaceKnowledgeRoledeve ser utilizada para realizar um mapeamento para um objeto de dom´ınio. Os m´etodosineoutdas classes abstratas da Figura 3.15 recebem e retornam uma implementac¸˜ao desta interface. Conforme os conceitos do CommonKADS, somente o m´etodo de inferˆencia deve realmente conhecer o objeto de dom´ınio espec´ıfico.

As outras classes da Figura 3.17 representam relacionamentos que podem ser utilizados por composic¸˜ao ou heranc¸a.

58 3. OFrameworkKnowframe

Figura 3.17:Diagrama de Classes -Dom´ınio

3.4.1 Requisitos para Implementac¸ ˜ao de um Plugin

Para realizar a implementac¸˜ao de um Plugin, o primeiro requisito ´e implementar a interface TaskPlugin. Como a interface define apenas o m´etodo execute, este m´etodo deve ser imple-mentado. Posteriormente, esta classe deve ser configurada com a anotac¸˜aoRESTatribuindo um valor `a propriedadeurlque indica quando essa tarefa vai ser executada pelo ambiente.

Para completar a implementac¸˜ao doPlugin, devem ser criados mais dois m´etodos:

• Um m´etodo de entrada, que ´e destinado a receber as informac¸˜oes para o processamento e deve conter um parˆametro e, tamb´em, deve ser configurado com a anotac¸˜ao Input, obrigatoriamente a propriedadenameda anotac¸˜ao deve ser preenchida.

• Um m´etodo de retorno, que tem o objetivo de retornar o valor resultante do processamento e deve receber a anotac¸˜aoOutput.

Um exemplo de implementac¸˜ao de umPluginpode ser observado na Figura 3.18, logo no cabec¸alho verifica-se a anotac¸˜aoRESTcom a propriedadeurlcontendo o valor/tarefaExemplo.

3.4 A APITask Plugin 59 Em seguida, a palavra chave implementsindica que a classe TaskPluginSampleimplementa a interfaceTaskPlugin. Como a Figura 3.18 constitui um exemplo fict´ıcio, o m´etodoexecuten˜ao possui implementac¸˜ao alguma, somente um coment´ario foi adicionado a ele.

Figura 3.18:Exemplo de Implementac¸˜ao dePlugin

Os requisitos de implementac¸˜ao doPlugins˜ao satisfeitos por completo, pois observa-se na Figura 3.18 os m´etodos com as anotac¸˜oesInputeOutput, como foi solicitado na especificac¸˜ao acima.

3.4.2 Realizando requisic¸ ˜ oes aos Plugins

Para realizar a execuc¸˜ao de uma tarefa que est´a disponibilizada no ambiente, o software cliente n˜ao precisa conhecer nenhum detalhe de implementac¸˜ao.

A Figura 3.19 ilustra como deveria ser a URL para realizar execuc¸˜ao da tarefa da Figura 3.18.

Figura 3.19:Exemplo de URL - Execuc¸˜ao de Tarefa

60 3. OFrameworkKnowframe O item1da Figura 3.19 indica ohostonde o ambiente est´a instalado, o item2 ´e o caminho padr˜ao do ambiente para que sejam executadas as tarefas e, finalmente, o item 3 indica qual tarefa deve ser executa.

O formato do arquivo XML que deve ser enviado ao servidor para que o processamento da tarefa seja realizado deve ser fornecido ao cliente, isto pode ser realizado com um arquivo XSD (XML Schema Definition), que fornece uma maneira de definir a estrutura, conte´udo e semˆantica de documentos XML.

Esta solicitac¸˜ao deve ser realizada com uma requisic¸˜ao do tipo POST, um m´etodo HTTP destinado ao envio de informac¸˜oes.

Para recuperar o resultado de um processamento que foi realizado, o formato da URL est´a exibido na Figura 3.20, os itens1e2s˜ao idˆenticos aos da Figura 3.19, o item 3 ´e o identificador do processamento, este identificador ´e retornado junto com o XML de resposta da execuc¸˜ao da Tarefa.

Figura 3.20:Exemplo de URL - Recuperac¸˜ao de Processamento

3.5 Mapeamento da Metodologia CommonKADS para

Documentos relacionados