• Nenhum resultado encontrado

5 Arquitetura do framework proposto

5.2. Definição da arquitetura

5.3.3. Configuração para o mapeamento objeto-relacional

Inicialmente, o JPA nativamente aceita trabalhar com dois tipos de frameworks de persistência opensource, o Hibernate e o TopLink. A configuração do mapeamento objeto-relacional é feita no arquivo persistence.xml. No FPOA é necessário somente fazer os mapeamentos dos objetos da DomainModel. Um trecho deste mapeamento é demonstrado a seguir.

public Object find() {

EntityTransaction trans = em.getTransaction(); trans.begin();

...

return o = em.find(o.getClass(), i); ...

}

<class>domainmodel.Scene</class> <class>domainmodel.Scenary</class> <class>domainmodel.Rived</class> …

122 Para trocar o SGBD, basta alterar as propriedades de conexão com o banco existente nesse mesmo arquivo. Para isso, necessita da alteração do driver de conexão, usuário (username), senha (password) e o caminho (url).

O trecho de código anterior configura o banco para trabalhar com o PostgresSQL em conjunto com o Hibernate.

<properties>

<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>

<property name="hibernate.connection.username" value="postgres"/> <property name="hibernate.connection.password" value="postgres"/>

<property name="hibernate.connection.url"

value="jdbc:postgresql://localhost:5432/fpoa2"/>

<property name="hibernate.dialect"

value="org.hibernate.dialect.PostgreSQLDialect"/>

<property name="hibernate.show_sql" value="true"/>

</properties>

123

6.

Validação do FPOA

Com o objetivo de que os serviços de persistência e consulta de OA fossem validados, seria necessário que existisse ao menos um OA implementado com a nova estrutura proposta. Como o processo produtivo de um OA requer mais tempo do que a própria implementação do FPOA, ainda não existe um OA produzido que pudesse ser testado nesse framework. Sendo assim, foi testada somente a persistência e a consulta de conteúdos e metadados de uma estrutura de informação elaborada pelo editor XML desenvolvido por Santos (2009).

A Figura 6.68 abaixo representa trechos do arquivo XML e do respectivo schema, mas ambos os arquivos podem ser completamente visualizados no Apêndice I.

Figura 6.68 - Trecho de código XML da estrutura de informação de um OA

...

<LOContents>

<scene id="0" name="Inicial" > <scenary id="1">

<author_name>thiago</author_name> <author_role>Professor</author_role> <author_title>mestre</author_title>

<text id="1" sequence="1" pos_x="" pos_y="">

<text>Oi, meu nome é Hidrocarboneto e eu sou o professor de

química da Amida. Qual é o seu nome?</text>

<font>arial</font>

<size>16</size>

<category>fala_de_personagem_Hidrocarboneto</category> <type />

</text>

<image id="1" sequence="1" pos_x="" pos_y="">

<extension>laboratorio_de_quimica.bmp</extension> <path />

<width /> <height />

</image>

124 Por não ser o foco desta Dissertação desenvolver uma aplicação para interagir com o FPOA, foi desenvolvida apenas uma aplicação de testes para verificar o funcionamento da persistência e da consulta de OA. Nesse caso, foi utilizado o próprio Eclipse para desenvolver a aplicação onde os resultados são visualizados tanto nas mensagens de saída do sistema (console) quanto através do pgAdmin34, um software utilizado para gerenciar bancos de dados PostgreSQL.

Para os arquivos acima mencionados, o cenário principal do Caso de Uso de persistência gera a saída apresentada na Figura 6.71.

34

http://www.pgadmin.org/ ...

<xsd:element name="LOContents"> <xsd:complexType>

<xsd:sequence>

<xsd:element name="scene"> <xsd:complexType>

<xsd:sequence>

<xsd:element maxOccurs="unbounded" name="scenary"> <xsd:complexType>

<xsd:sequence>

<xsd:element name="author_name" type="xsd:string" /> <xsd:element name="author_role" type="xsd:string" /> <xsd:element name="author_title" type="xsd:string" /> <xsd:element name="text">

<xsd:complexType> <xsd:sequence>

<xsd:element name="text" type="xsd:string" /> <xsd:element name="font" type="xsd:string" /> <xsd:element name="size" type="xsd:int" />

<xsd:element name="category" type="xsd:string" /> <xsd:element name="type" type="xsd:string" /> </xsd:sequence>

<xsd:attribute name="id" type="xsd:int" />

<xsd:attribute name="sequence" type="xsd:int" /> <xsd:attribute name="pos_x" type="xsd:string" /> <xsd:attribute name="pos_y" type="xsd:string" /> </xsd:complexType>

</xsd:element> ...

125

Figura 6.71 - Mensagens de saída no console do Eclipse

A Figura 6.71 apresenta as instruções SQL geradas ao se inserir cada recurso da estrutura de informação no banco de dados. No final, a mensagem “3 - Objeto persistido!” é gerada pela aplicação que detecta com sucesso o commit.

Figura 6.72 - Tela do pgAdmin apresentando alguns botões armazenados no banco de dados

A Figura 6.72 é uma visualização das informações do recurso Button que está armazenado no banco de dados. Cada linha é um registro de um botão no banco, e cada coluna é o atributo que classifica este recurso de acordo com a estrutura de informação (posição X, posição Y, nome, ação, etc.).

126 Para os cenários alternativos – quando houver falha em uma das etapas das análises – a aplicação poderá tratar cada uma das exceções individualmente.

As exceções geradas pelo sistema são as apresentadas na Tabela 6.2.

Tabela 6.2 - Exceções geradas pelo sistema

Exceção Significado

SAXParseException Arquivo XML não pode ser validado pelo schema enviado.

InvalidDBModelException

O banco de dados não possui a estrutura de tabelas/colunas necessárias para armazenar os conteúdos e metadados da estrutura de informação

ExtractionException Problemas na extração do XML para o preenchimento dos recursos da DomainModel

RollbackException Não efetivação das transações por levar o SGBD em um estado inconsistente.

As figuras Figura 6.73, Figura 6.74, Figura 6.75, e Figura 6.76 demonstram, respectivamente, as exceções geradas pelo sistema e as mensagens geradas pela aplicação ao detectar erros na validação do XML com o schema, validação da estrutura SGBD, na extração e falha no commit.

As exceções na validação da estrutura de informação são do tipo SAXParseException, indicando que não houve uma equivalência entre o arquivo XML e o schema enviados, que para o caso apresentado na Figura 6.73 ocorreu para o elemento button.

Figura 6.73 - Tela de erro da validação da estrutura de informação

A InvalidDBModelException informa que a estrutura atual do SGBD não possibilita armazenar os conteúdos e metadados da estrutura de informação que está sendo enviada. Um dos tratamentos para essa exceção consiste em gerar a mensagem “Estrutura do BD não suportada”, informada pela aplicação ao se detectar esta.

127

Figura 6.74 - Tela de erro na validação da estrutura do SGBD

A ExtractionException é a exceção que identifica algum problema na extração dos conteúdos e metadados da estrutura de informação que resulta no preenchimento dos objetos da DomainModel. A Figura 6.75 apresenta exatamente uma exceção para este cenário.

Figura 6.75 - Tela de falha na extração dos conteúdos e metadados

A exceção que representa a não efetivação das transações é a RollbackException, informando que todas as transações anteriormente realizadas foram desfeitas. Isto faz com que o SGBD desfaça todas as transações anteriormente feitas, deixando-o num estado consistente, conforme apresentado na Figura 6.76.

128 Para a consulta de OA, tentou-se localizar um OA através da palavra hidrocarboneto. Na modelagem que começou a ser feita para este OA, essa palavra aparece como o conteúdo de uma fala de um personagem. Ao se implementar também uma aplicação para consultar OA através do parâmetro “hidrocarboneto”, foi obtido o seguinte resultado:

Figura 6.77 - Resultado da consulta de OA

A Figura 6.77 demonstra que foram localizados dois recursos do tipo texto através da palavra “hidrocarboneto”. Percebe-se também que cada um desses textos está presente em uma cena diferente, porém do mesmo objeto.

Com base nesses resultados é possível afirmar que as deficiências de cada um dos critérios apontadas durante a análise dos repositórios nacionais de OA (Capítulo 2), serão solucionadas com a utilização desse framework. A extração automatizada das informações para catalogação do OA vai reduzir os equívocos provenientes de um processo manual, fazendo com que todas as informações e metadados relacionados a um OA estejam disponíveis para as pesquisas. A busca por conteúdos poderá, inclusive, ser realizada através de buscas avançadas, onde além de filtros por metadados (LOM), o tipo de recurso (cena, cenário, botões, etc.) também estará disponível.

129

7.

Conclusões

A partir do I Encontro Técnico dos Programas Mídias na Educação e RIVED realizado em Recife, em novembro de 2006, foram detectadas deficiências no processo produtivo de Objetos de Aprendizagem (OA). Como conseqüência da falta de uma estruturação padronizada, o repositório do próprio RIVED possuía problemas na disponibilização desse material, que, inclusive na época, ainda não disponibilizava de um mecanismo de busca para a localização dos OA nele armazenados.

A partir dessas discussões, foi iniciado um estudo, por parte da equipe RIVED-UENF, para que se encontrassem os motivos que levavam às deficiências apresentadas. Como resultado desses estudos, propostas de novas ferramentas/metodologias foram realizadas, sendo inclusive, utilizadas atualmente, por equipes em todo o âmbito nacional.

Trabalhando como um dos integrantes da parte técnica da equipe RIVED- UENF, desde 2004, o autor utilizou de experiências adquiridas para que a análise de todo o processo fosse criteriosa, focando, principalmente, na disponibilização dos OA.

Considerando a impossibilidade de apresentar numa Dissertação de mestrado, a análise de todos os repositórios de OA, o escopo desta pesquisa se restringiu aos principais repositórios nacionais. Para isso, a primeira etapa constituiu na identificação destes repositórios, onde os selecionados foram o próprio RIVED, o Banco Internacional de Objetos Educacionais (BIOE), o Laboratório Didático Virtual (LabVirt) e o Coletânea de Entidades de Suporte ao uso de Tecnologia na Aprendizagem (CESTA).

A análise dos repositórios consistiu em identificar recursos que pudessem influenciar diretamente no resultado das buscas por objetos. Durante essa análise foram detectados também alguns serviços, tais como: inserção de comentários para cada OA, download de arquivos relacionados, visualização de detalhes, catalogação gratuita, etc. Como resultado dessa análise, conclui-se que, para se obter resultados mais consistentes nas recuperações de OA, prioritariamente, deseja-se que os mecanismos de busca permitam localizar os OA por meio de outros parâmetros, além dos títulos e objetivos. Dessa forma, deve-se realizar uma busca por

130 conteúdos, metadados ou qualquer tipo de filtro suportado pelas buscas avançadas. É primordial também que a catalogação não seja realizada por um processo manual. Isso evita que equívocos dos usuários não sejam propagados para o banco de dados onde são armazenadas, persistidas, essas informações. Por fim, é indicado que o repositório utilize índices multivalorados, pois com uma redundância de armazenamento, o índice de disponibilidade do OA pode ser aumentado.

Nesse contexto, o objetivo principal desta Dissertação consistiu em desenvolver um mecanismo de catalogação de OA em repositórios, de maneira a permitir a recuperação dos mesmos por meio de todo e qualquer conteúdo na forma textual ou metadado que o OA possua. Esse objetivo foi delineado considerando a hipótese de que, automatizando o processo de catalogação de objetos nos repositórios, por meio de um framework, o índice de OA localizados seria aumentado.

A fim de que que o processo fosse automatizado, foi necessário criar uma estrutura de informação no qual seriam armazenados todos os conteúdos e metadados utilizados pelo objeto, assim como os recursos por ele utilizados. Na elaboração dessa estrutura foi necessário estudar os padrões de metadados e dos tipos de arquivos mais adequados para se armazenar essas informações. Etapa que foi realizada em conjunto com outra aluna do mestrado do PPGEP, Núbia dos Santos Rosa, e, como resultado, foi proposta uma estrutura de informação que contém os recursos cenas, cenários, botões, textos, etc., assim como os metadados no padrão do LOM.

A segunda etapa teve como meta definir uma arquitetura e analisar as ferramentas e linguagens mais adequadas para a implementação do framework proposto (FPOA). Na definição da arquitetura foi elaborada uma arquitetura de três componentes: Controller, DomainModel e Persistence. Das linguagens/ferramentas mais apropriadas para implementação do FPOA foram selecionados a linguagem Java, o SAX como parser do XML, o JPA como API utilizada pelo Java para a persistência, o PostgreSQL como SGBD e o Eclipse como plataforma de desenvolvimento.

Conforme os testes apresentados no capítulo anterior, pôde-se concluir que o FPOA efetivamente catalogou todas as informações – conteúdos e metadados – pertinentes ao OA em questão. Como resultado, os usuários puderam localizar e recuperar OA por qualquer uma dessas informações, fato este que foi comprovado

131 através da validação nas buscas. Espera-se que com esta ferramenta as demais equipes do RIVED possam utilizar esse recurso para a catalogação dos OA, inclusive, a própria coordenação do projeto. Com a escolha do LOM, é possível prover todos os serviços encontrados nos repositórios, tal como: visualização online, inserir/exibir comentários, modificações e, principalmente, a criação de índices para outros repositórios.

Outro objetivo é fazer com que este framework seja disponibilizado em um portal e usuários colaborem no desenvolvimento/aprimoramento do mesmo. Inicialmente ele estava disponibilizado no site da própria equipe RIVED-UENF, mas, devido a dificuldades de acesso a este serviço pelo público externo, está se procurando um novo local para sua hospedagem.

7.1. Trabalhos futuros

Dando continuidade à implementação do framework, pretende-se criar um método que permita, ao usuário, localizar um OA independente do tipo de recurso. Através apenas de parâmetros fornecidos pelo usuário, o framework deve localizar em toda a base de dados qual o recurso e o respectivo objeto que contenha tal informação.

Por se tratar de um protótipo, não foi possível mensurar a performance, ou seja, o tempo consumido no processamento das consultas. Sendo assim, será desenvolvida uma aplicação para que, além de medir o tempo médio das requisições, possa inclusive ponderar os conteúdos mais relevantes ou que haja fortes correlações com outros conteúdos de outros OA.

Outro fator importante é tornar o componente DomainModel mais genérico, possibilitando que novas estruturas de informação possam ser utilizadas em tempo de execução. Como conseqüência disso, além de instanciar os objetos do DomainModel sob demanda, o banco de dados também deve ser estruturado para suportar esse novo tipo.

Atualmente, a verificação da estrutura do banco de dados é feita somente considerando as entidades e os atributos existentes. Uma validação mais completa seria fazer com que os tipos de cada atributo também fossem analisados.

Apesar da estrutura de informação proposta permitir que outras mídias – principalmente imagens – sejam referenciadas a partir de fontes externas, no

132 momento da catalogação esses arquivos não são solicitados. Portanto, um melhoramento no processo de catalogação seria solicitar todos os arquivos no qual o OA faz uso para que também sejam armazenados no banco de dados. Isto permitirá que o usuário, ao localizar um OA, também recupere todas essas mídias de forma individual, podendo alterar as propriedades do arquivo sem influenciar na execução do OA. Esse processo é semelhante ao SCORM (Sharable Content Object Reference Model) que agrupa, em um único arquivo .zip, todo conteúdo educacional e metadados necessários para a execução de um determinado recurso educacional. Ainda sobre esta estrutura, pretende-se desenvolver uma ontologia que permitirá a busca semântica de OA, pois, segundo Borst (1997, p.12), a ontologia representa “uma especificação formal e explícita de uma conceitualização compartilhada”.

133

Referências

ABREU, Marlon Freitas et al., Utilizando Objetos de Aprendizagem no Processo de Ensino e Aprendizagem de Química no Ensino Médio: o Caso dos Óxidos e da Poluição Atmosférica, WIE XII - Workshop de Informática na Escola, Campo Grande- MS, p. 336-344. 2006.

ARELLANO, M. A., Preservação de documentos digitais, Ciência da Informação ,

Brasília, v. 33, n. 2, p. 15-27, maio/ago. 2004.

BASS, L., CLEMENTS, P., KAZMAN, R. Software Architecture in Practice. 2ª ed., Addison-Wesley, 2003.

BASS, L., COUTAZ, J. Developing Software for de User Interface”. The SEI Series in Software Engineering. Ed Addison-Wesley. 1991

BIOE – Banco Internacional de Objetos Educacionais. Disponível em: http://objetoseducacionais2.mec.gov.br/. Acesso em Agosto de 2009.

BOOCH, G., RUMBAUCH, J., JACOBSON, I. UML Guia do Usuário. Ed. Campus, Rio de Janeiro,2000.

CASTELLS, M. A Sociedade em Rede. São Paulo: Paz e Terra, 1999.

CESTA – Coletânea de Entidades de Suporte ao uso de Tecnologia na Aprendizagem. Disponível em http://cesta.cinted.ufrgs.br. Acesso em Fevereiro de 2009.

CHAPPLE, M. About Databases: Repository Definition. Disponível em: http://databases.about.com/cs/administration/g/repository.htm. Acesso em Maio de 2009.

CORDEIRO, R. A. C et al., Utilizando mapas conceitual, de cenário e navegacional no apoio ao processo de desenvolvimento de objetos de aprendizagem, RENOTE - Novas Tecnologias na Educação, Porto Alegre, v.5 1:1-14. Julho. 2007.

DAUM, B. Modelagem de objetos de negócio com XML: abordagem com base em XML Schema. Ed. Elsevier, 1ª Ed., Rio de Janeiro, 2004.

DEITEL, Harvey; DEITEL, Paul, Java - como programar, 4. ed. Porto Alegre: Bookman, 2003.

DIJKSTRA, E. The structure of the “the”-multiprogramming system. Proc. ACM symposium on Operating System Principles, 1967.

GAMMA, Erich; JOHNSON, Ralph; HELM, Richard; VLISSIDES, John. Design Patterns: Elements of Reusable Object-Oriented Software. Ed. Addison Wesley, 1995.

IEEE - LTSC. IEEE 1484.12.1. Standard for Learning Object Metadata. New York,

134 http://ltsc.ieee.org/wg12/files/LOM_1484_12_1_v1_Final_Draft.pdf. Acesso em: Janeiro 2008.

JOOMLA. Disponível em:http://www.joomla.org. Acesso em agosto de 2009.

KATZ, S., DABROWSKI, C., LAW, M. Glossary of Software Reuse Terms. Prepared for The Department of Defense/Ballistic Missile Defense Organization. U.S. Department of Commerce/National Institute of Standards and Technology, 1993.

KURAMOTO, H. Repositórios: mecanismo de registro e disseminação da informação científica. In: 1ª CONFERÊNCIA IBEROAMERICANA DE PUBLICAÇÕES ELETRÔNICAS NO CONTEXTO DA COMUNICAÇÃO CIENTÍFICA, 1., 2006, Brasília. Anais... Brasília: UNB, 2006. p. 81-85.

MARCHI, A. C. B. ; COSTA, A. C. R. . Uma Proposta de Padrão de Metadados para Objetos de Aprendizagem de Museus de Ciências e Tecnologia. RENOTE. Revista Novas Tecnologias na Educação, v. 2, p. 1-10, 2004.

MELO, A. C.; Desenvolvendo Aplicações com UML 2.0: do conceitual à implementação. 2ª ed., Editora Brasport, , Rio de Janeiro, 2004.

MENDES, Antônio. Arquitetura de Software: Desenvolvimento Orientado para Arquitetura. Ed. Campus, 2002.

MURTA, L.G.P., BARROS, M.O., WERNER, C.M.L.."FrameDoc: Um Framework para a Documentação de Componentes Reutilizáveis". International Symposium on Knowledge Management/Document Management (ISKM/DM), pp. 241-259, Curitiba, PR, 2001.

MUNDOJAVA. Rio de Janeiro: Ed. Mundo, ano 4, n. 24, jul. – ago. 2007. Suplemento.

NASCIMENTO, A e MORGADO, E. Um projeto de colaboração Internacional na América Latina. Disponível em <http://rived.proinfo.mec.gov.br/artigos.php> Acessado em: 22/01/2008.

NUNES, Cesar A. A. Objetos de Aprendizagem em Ação. Cadernos de Pesquisa Reflexões. NEA/FEA/USP, Vol 1, Nº1, 2004.

OMG – Object Management Group. Unified Modeling Language Specification. Disponível em http://www.omg.org/cgi-bin/apps/doc?formal/09-02-02.pdf. Acessado em Abril de 2009.

POSTGRESQL – Disponível em http://www.postgresql.org/. Acesso em Fevereiro de 2009.

PRESSMAN, R. Engenharia de Software. 6ª ed. Editora: McGraw-Hill, 2006.

RIVED (2008) Rede Interativa Virtual de Educação a Distancia , Disponível em: http://www.rived.mec.gov.br/.Acesso em Janeiro de 2008.

135 SANTOS, Núbia dos Santos Rosa Santana; RAPKIEWICZ, Clevi Elena; WIVES, Leandro Krug., O processo produtivo de objetos de aprendizagem numa unidade do RIVED/ Fábrica Virtual: problemas e soluções. In: XXVIII Encontro Nacional de Engenharia de Produção (ENEGEP ), Barra da Tijuca – RJ, 2008.

SEBESTA, Robert. Conceitos de Linguagens de Programação. 5ª Ed, Bookman, 2003.

SHAW, M., GARLAN, D; Software Architecture. Perspectives on an Emerging Discipline, Prentice Hall, 1996.

SINHA, A. Client-Server Computing.Comunications of de ACM, Vol 35, No 7, p. 77- 98. 1992

SOUZA, M. I. F., VENDRUSCULO, L. G., Melo, G. C. Metadados para a descrição de recursos de informação eletrônica: utilização do padrão Dublin Core. Ciência da

Documentos relacionados