• Nenhum resultado encontrado

CONSTRUÇÃO DO PROTÓTIPO

O protótipo mostrará os resultados obtidos através da manipulação de dados XML na plataforma Java.

Através de dois exemplos poderemos ver em qual caso é mais viável o uso do DOM e em qual caso é viável o uso do SAX. Será possível escolher se a consulta será feita em SAX ou em DOM. A Figura 7 mostra o esquema do protótipo, desde o conversor até o resultado.

Figura 7 - Esquema do protótipo

Será usado um programa que converterá banco de dados Firebird ou Interbase exportando o banco para um arquivo XML, para que seja possível a manipulação de dados no protótipo. O programa chama-se Fixmlexport, é da empresa TECT Software Ltda. Depois de feito o cadastro no site é possível fazer o download do programa, pois ele é um software livre. A Figura 8 mostra a tela principal do programa, depois de especificado o caminho do banco de dados e programa faz a conexão mostrando todas as tabelas. Para converter o BD é preciso especificar o caminho onde será salvo e exporta-lo, como mostra a Figura 9.

Figura 8: Programa Fixmlexport (Tela Principal).

37

6.1. Caso de Uso

Figura 10 - Caso de Uso do Protótipo.

O usuário pode escolher qual o arquivo ele deseja procurar e em seguida escolher qual método utilizar. E o cliente final visualiza a consulta dos dados que ele solicitou como mostra a Figura 10.

6.2. Desenvolvimento

Inicialmente temos um documento, que pode ser um XML qualquer ou um arquivo convertido através do Fixmlexport. Assim que o protótipo é executado é preciiso escolher qual arquivo será processado (Figura 11).

O protótipo utilizará duas APIS Java destinado à manipulação de dados em XML, SAX e DOM.

Depois de escolhido o arquivo é preciso escolher entre as duas APIs, o protótipo retornará o documento escolhido processado integralmente e também o início, fim e tempo decorrido da consulta (Figura 12).

Como mostra a seção 5, para cada caso é preciso escolher entre utilizar a API DOM ou a SAX. Se o arquivo for muito extenso recomenda-se que se utilize a aplicação com a API SAX, pois está não armazena na memória o documento e sua busca é feita seqüencialmente. Se o Arquivo for menor ou se houver a necessidade de busca através de árvores é recomendado que se utilize à aplicação com API Dom, já que está cria uma arvore de nodes na memória, porém essa aplicação não é recomendada se o arquivo for muito extenso, pois ocupará muita memória.

Figura 11: Protótipo – Tela para escolher o arquivo.

39

6.3. As APIS no protótipo

A API DOM tem uma complexidade maior na programação, embora o seu

entendimento seja razoavelmente fácil, sua implementação é mais complexa. O Exemplo 20 mostra um fragmento da criação do parsers DOM e o printNode que é o responsável pela impressão dentro do ta (JTextArea).

// cria uma fábrica de parsers DOM

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(true); // Testa DTD/Schema

factory.setNamespaceAware(true); // Testa o name space DocumentBuilder builder = factory.newDocumentBuilder(); // obtem a árvore do arquivo XML

Document documento = builder.parse( new File( uri ) ); …..

…..

// imprime o documento

printNode( (Node)documento, "" ,ta);

Exemplo 20: Fragmento do protótipo – criando parsers DOM

SAX é considerado mais fácil na sua implementação, já possui classe prontas como o Handler que percorre e imprime o documento (Exemplo 21).

SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(true); // se considera a DTD/Schema

factory.setNamespaceAware(true); // se o parser considera o name space SAXParser saxParser = factory.newSAXParser();

….. …..

class EchoHandler extends DefaultHandler { private JTextArea ta;

public EchoHandler(JTextArea xta){ ta = xta;

}

public void startDocument() throws SAXException { ta.append("\nInício do documento");

}

6.4. Os testes do protótipo

Os testes do protótipo foram realizados em 3 arquivos XML. O primeiro arquivo foi um arquivo convertido através do conversor Fixmlexport, TATI.xml, porém o banco de dados continha poucos registro o que deixou o XML com apenas 3 Kb. Com esse arquivo não foi possível realizar teste comparativos entre DOM e SAX devido ao seu pequeno tamanho.

O segundo arquivo foi o SectorsAndIndustries90_1.xml que contém 7473 elementos e 578 Kb. O terceiro arquivo foi o SectorsAndIndustries90_2.xml, o mesmo que o segundo arquivo, porém com 22419 elementos e 2,25 Mb. Foi preciso utilizar arquivos de tamanhos diferentes para confirmar que quanto maior for o arquivo mais lenta se torna a busca em DOM.

Tabela 6 – Testes entre Dom e SAX – comparação tempo decorrido.

DOM SAX DOM SAX DOM SAX

Nº Teste Arquivo 1 – 2,25 Mb Arquivo 1 - 2,25 Mb Arquivo 2 – 578 Kb

01 16,360 11,282 9,969 8,125 3,62 5,046 02 16,625 8,297 16,79 7,625 2,453 2,704 03 16,907 8,562 16,515 7,36 2,250 2,531 04 17,297 8,157 17,31 7,594 2,562 2,422 05 18,437 8,438 17,953 7,718 2,0 2,516 06 19,187 7,891 17,824 7,328 2,656 2,482 Média 17,469 8,771 16,060 7,625 2,590 2,950

Para arquivos maiores é recomendado o uso do SAX, os resultados na Tabela 6 indicam que quanto maior o arquivo mais lento o DOM se torna.

Para o arquivo com 578 Kb o DOM obteve média de 2,590, enquanto o SAX 2,950 Para o arquivo com 2,25 Mb o DOM obteve médias 17,469 e 16,060, enquanto o SAX 8,771 e 7,625.

A escolha da API irá depender o tipo de consulta a ser realiza e do tamanho do arquivo. DOM tem melhor performance em arquivos menores.

6.5. Ambiente de Desenvolvimento

O protótipo foi desenvolvido através da plataforma Java utilizando o programa Netbeeans, versão 5.0.

Para desenvolver o projeto foi utilizado um microcomputador com processador Celeron 2.5 Mhz, memória Ram de 512 Mb e Hd de 80 Gb. O sistema operacional utilizado foi o Windows XP.

41

7. CONCLUSÕES

7.1. Conclusão

O desenvolvimento desse projeto nos últimos meses foi sem dúvidas um período de grande aprendizagem, um grande desafio. Hoje posso afirmar estar mais preparada para enfrentar novos desafios.

Ao concluir este projeto posso dizer que esta experiência foi marcante e enriquecedora, descobri o sentido da grande responsabilidade da estruturação e organização de um plano de trabalho.

O projeto envolveu várias áreas estudadas no curso, foi possível relembrá-las e aplicá- las, além disso, o projeto envolveu o estudo da linguagem XML, uma tecnologia que para mim foi totalmente nova, o que me acrescentou muito e aumentou o desfio do projeto.

Com o passar do tempo o projeto foi ganhando forma, onde cada obstáculo ultrapassado deixava antever um obstáculo ainda maior que o anterior. Foram meses de trabalho, onde a capacidade de organização, estruturação, análise e resolução de problemas foram grandes.

A construção do protótipo foi um dos maiores desafios desse projeto, porém ao termino pode-se constatar que ele preencheu os requisitos que foram estabelecidos.

Enfim o projeto é uma realidade, um grande desafio que delimitou a conclusão da vida acadêmica.

7.2. Melhoramentos

O protótipo é uma idéia inicial para que se possa visualizar os resultados da utilização do XML no Java.

Um melhoramento que sugeria é que tivessem mais opções de campos para se consultar, assim a consulta seria agilizada, pois seria possível escolher o que procurar e em qual método procurar.

8. REFERÊNCIAS BIBLIOGRÁFICAS

CRIAR WEB. “Manuais e recursos para desenvolvimento web”. [INTERNET:

http://www.criarweb.com/XML/, recuperado em: 04/04/2006]

FARIA, Rogério Amorim de . Treinamento Avançado em XML. 1. ed. São Paulo, Digerati Books, 2005.

IMPACTA Tecnologia. “IPM - Impacta Pesquisa Periódica de Mercado”. [INTERNET:

http://www.impacta.com.br/ipm/pdfs/20050719_Iccorp_analises.pdf, recuperado em:

05/12/2005]

JANDL JUNIOR, Peter, Introdução ao Java. São Paulo, SP: Berkeley, 2002

LIGHT, Richard ; MORAES, Neilande. Iniciando em XML. 1. ed. São Paulo, Makron Books, 1999.

ORG SAX. “Package org.xml.sax “. [INTERNET:

http://www.saxproject.org/apidoc/org/xml/sax/package-summary.html, recuperado em:

13/06/2006]

PITTS-MOULTIS, Natanya.; KIRK, Cheryl. XML Black Book. 1. ed. São Paulo, Makron Books, 2000

SUN Microsystems, Inc. “Inner Circle Program”.

[INTERNET:http://www.sun.com/emrkt/innercircle/newsletter/brazil/0605howard.html, recuperado em: 30/11/2005 A]

SUN Microsystems, Inc. “The Java Tutorial”. [INTERNET:

http://java.sun.com/docs/books/tutorial/, recuperado em: 25/11/2005, B]

SUN Microsystems, Inc. “Java Technology”. [INTERNET: http://java.sun.com, recuperado em: 25/11/2005, C]

SUN Microsystems. “Java API Documentation”. [INTERNET: http://java.sun.com/docs/, recuperado em 15/02/2006, D]

TECT Software. “Fixmlexport”. [INTERNET: http://www.tectsoft.net/, recuperado em 13/08/2006]

WIKIPEDIA. “Manual XML”. [INTERNET: http://pt.wikipedia.org/wiki/XML, recuperado em: 10/03/2006]

W3C. “World Wide Web Consortium”. [INTERNET: http://www.w3c.org, recuperado em 16/03/2006

Documentos relacionados