• Nenhum resultado encontrado

Implementação da arquitetura

No documento 2010.2Relatorio lari FINAL. (páginas 43-49)

O mapa conceitual contém três elementos fundamentais: conceito, proposição e palavras de ligação. Assim, para criar mapas precisam-se criar, fundamentalmente, estes três elementos, sendo que a proposição possui as conexões que ligam os conceitos, o relacionamento. Além destes, há outras características que podem ser inseridas em cada conceito, a exemplo de recursos como vídeo, áudio e imagem.

Para implementar a arquitetura orientada a serviços para mapas conceituais, houve a necessidade de avaliar as funcionalidades que se desejava disponibilizar como serviços. Desta forma, optou-se por desenvolver os seguintes serviços contemplando os quinze requisitos listados anteriormente: criar mapa conceitual, inserir conceito, inserir frase de ligação, inserir

conexão, inserir recurso, apagar conceito, apagar frase de ligação, apagar conexão, apagar recurso, editar conceito, editar frase de ligação, editar a aparência do conceito, editar a aparência da frase, editar estilo do conceito e editar estilo da frase. A Tabela 3 apresenta todos os Web Services implementados e os seus respectivos parâmetros de entrada e saída.

Tabela 3: Web Services da arquitetura para mapas conceituais.

Serviço Parâmetros de entrada Parâmetros Retornados

criarMapaConceitual Titulo: String Mapa: String

inserirConceito

Titulo: string Conceito: string Position_X: integer

Position_Y: integer Mapa: String

inserirFraseLigacao

Titulo: string Relacao: string Position_X: integer

Position_Y: integer Mapa: String

Inserirconexao Titulo: string From_id: integer To_id: integer Mapa: String inserirRecurso Titulo: string Parent_id: integer NameRecurso: string url: string Mapa: String

apagarConceito Titulo: string Id: integer Mapa: String

apagarFraseLigacao Titulo: string Id: integer Mapa: String

apagarConexao Titulo: string Id: integer Mapa: String

apagarRecurso Titulo: string idConceito: integer idRecurso: string

Mapa: String

editarNomeConceito Titulo: string idConceito: integer

nomeNovo: string Mapa: String

editarNomeFrase Titulo: string idFrase: integer nomeNovo: string Mapa: String editarAparenciaConceito Titulo: string idConceito: string novoX: integer

novoY: integer Mapa: String

editarAparenciaFrase

Titulo: string idFrase: string novoX: integer

novoY: integer Mapa: String

editarFontStyleConceito Titulo: string idConceito: string fontStyle: string

Mapa: String

editarFontStyleFrase Titulo: string idFrase: string

fontStyle: string Mapa: String

Observa-se que em todos os Web Services apresentados na Tabela 3 é passado como parâmetro o título do mapa conceitual. Isto se faz necessário para que possa ser identificado para qual mapa conceitual o cliente está solicitando o serviço. Outra característica comum é o parâmetro retornado, pois todos retornam o mapa conceitual, ou seja, os serviços incluem novos parâmetros no mapa e o retornam em forma de string. Essa string nada mais é que o conteúdo do arquivo CXL gerado.

Para desenvolver os Web Services da arquitetura e criar os mapas conceituais em CXL utilizou-se a linguagem JAVA aliada ao framework SOA AXIS 2 e à API JDom. AXIS 2 é responsável por mascarar a implementação dos serviços, fazendo com que o desenvolvedor possa criá-los como métodos JAVA comuns e o framework se responsabiliza por criar o serviço automaticamente. Desta forma, é o próprio AXIS 2 que cria também o arquivo WSDL – formato XML que descreve os serviços.

Já o JDOM é responsável por manipular XML. Neste modelo, o documento XML inteiro é armazenado na memória do computador em um formato de árvore de nós, todos descendendo de uma raiz. É possível, então, aplicar vários métodos para localizar e manipular os nós.

Para utilizar os serviços da arquitetura, o Web Service inicial é o “criarMapaConceitual”, cujo diagrama de sequência foi mostrado na Figura 13. Este serviço tem como entrada o título do mapa conceitual. Com este título o serviço cria o objeto do tipo

document (objeto responsável pela criação da estrutura de árvore JDOM), que representa o

elemento raiz do arquivo XML, e insere no elemento “res-meta” a tag responsável pelo título do arquivo, como pode ser visto no exemplo uefs.cxl da Figura 10. O código abaixo, Figura 14, apresenta o método em JAVA por detrás do serviço “criarMapaConceitual”.

Na Figura 14, pode-se observar que, primeiramente, é criada uma instância da classe “Mapa”, e inserido o título com a função “setTitulo”. Após isso, cria-se uma instância do tipo

Document, no qual é passado como raiz o elemento “cmap” (“mapa.getCmap”), do objeto

“mapa” que acabou de ser criado e que é o elemento raiz de todo mapa conceitual definido pela CXL, esta estrutura pode ser observada no exemplo do código uefs.cxl presente na Figura 10.

O serviço “inserirConceito”, assim como todos os outros, tem como entrada o título do mapa conceitual. Para este serviço específico, as outras entradas são: o nome do conceito a ser criado, a posição referente a coordenada x do conceito e a posição referente a coordenada y.

Voltando ao exemplo da Figura 10, do arquivo uefs.cxl, se fosse utilizado este serviço de inserir conceito para criar o conceito “Ecomp” no mapa “UEFS” com, por exemplo, x igual a 73 e y igual a 56, as tags inseridas no mapa conceitual (arquivo CXL) por este serviço estaria da forma como apresenta a Figura 15.

Figura 15: Exemplo de saída do serviço “inserirConceito”.

Os outros serviços de inserção de dados no CXL, como: inserirFraseLigacao, inserirConexao e inserirRecurso, são bem parecidos ao serviço de inserir conceito, os seus parâmetros de entrada encontram-se na Tabela 3. Porém, o serviço responsável por inserir recursos tem uma peculiaridade a mais: os tipos de recursos aceitados. Assim, o serviço “inserirRecurso” aceita recursos inseridos nos seguintes tipos Multipurpose Internet Mail

Tabela 4: Tipos MIME aceitos pela arquitetura.

Grupo Tipo MIME Grupo

Image image/jpeg image/png image/tiff image/gif Image Video video/avi video/x-motion-jpeg video/quicktime video/mpeg video/x-ms-wmv Video

Text text/plain text/html

text/xml

Text

Audio audio/mpeg audio/wav

audio/midi Audio Application application/msword application/pdf application/vnd.ms-excel application/vnd.ms- powerpoint Application

Fonte: próprio autor.

Os serviços relacionados a exclusão de informações de um mapa conceitual são: apagarConceito, apagarFraseLigacao, apagarConexao e apagarRecurso. Estes serviços têm um fluxo de execução bem parecido com os serviços de inserir, a diferença é que para excluir algum componente do mapa, precisa-se varrer a estrutura, procurar pelo id desejado e excluir todos os elementos dele. Por exemplo, o serviço apagarConceito procura o conceito que o usuário deseja deletar (através do id), apaga o conceito e também deve apagar as tags referentes a sua aparência, recursos e conexões, caso haja. A Figura 16 mostra um exemplo de um arquivo CXL, onde o usuário inseriu dois conceitos “novela” e “atores”.

Figura 16: Arquivo cxl do mapa conceitual com os conceitos “novela” e “atores”.

Ao apagar o conceito “novela” (concept id= “1”), será apagado também a conexão em que ele está envolvido (connection id= “4”), a sua aparência (concept-appearance id= “1”) e os seus recursos (resource-group parent-id= “1”). Assim, o exemplo da Figura 16 estará agora como mostrado na Figura 17.

Figura 17: Arquivo cxl do mapa conceitual apenas com o conceito “atores”.

Os serviços de edição, por sua vez, têm um fluxo parecido com os serviços de exclusão. Estes serviços, editarNomeConceito, editarNomeFrase, editarAparenciaConceito, editarAparenciaFrase, editarFontStyleConceito e editarFontStyleFrase também precisam varrer a estrutura (document do mapa que se deseja editar), procurar pelo id desejado e editá- lo. Os conceitos que começam com “editarNome” são utilizados para modificar o nome do conceito e da frase de ligação, os serviços que começam com “editarAparencia” modificam as posições x e y dos conceitos e das frases de ligação, já os serviços que iniciam com “editarFont” modificam o tipo da letra dos conceitos e frases. Estes últimos serviços podem modificar a fonte para negrito, itálico ou sublinhado.

No documento 2010.2Relatorio lari FINAL. (páginas 43-49)

Documentos relacionados