Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Computação e Estatística Servidor de Documentos XML Usando.

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Programação em Java Prof. Maurício Braga
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Material II-Bimestre Conceitos de lógica.
1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
INFORMAÇÕES COMPLEMENTARES
AULA 8 Profa. Sandra de Amo GBC053 – BCC
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
Operadores e Funções do LINGO
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Laboratório de Informática Introdução à Linguagem HTML
Análise de Casos de Uso.
ANÁLISE DE SOFTWARES APLICÁVEIS A UNIDADES E SERVIÇOS DE INFORMAÇÃO
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Excel Profa. Cristina M. Nunes.
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
Maurício Edgar Stivanello
Análise de Requisitos Use Case Renata Araujo Ricardo Storino
PERSPECTIVA CONCEITUAL
Arquivos Seqüenciais Inhaúma Neves Ferraz
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
1 Objetos Relacionados a um banco de dados. 2 Introdução Visual Basic dispõe de um conjunto de objetos, que através de suas propriedades e métodos, nos.
April 05 Prof. Ismael H. F. Santos - 1 Módulo II XML Processing: XSLT, SAX e DOM Prof. Ismael H F Santos.
Estudo de Caso 1: UNIX e LINUX
Capítulo 1 Introdução 1.1 O que é um sistema operacional
FUNÇÃO MODULAR.
Linguagens de Programação
Questionário de Avaliação Institucional
FES – Grupo 4 – Trabalho 4 – 2008/1 1 Grupo 4 Artur Figueira de Santana Carlos Wagner da Silva Fellipe Ribeiro Duarte Francisco Garrigó Departamento de.
Classes e objetos Arrays e Sobrecarga
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Aula 01 – Apresentação e introdução html
Provas de Concursos Anteriores
Análise de Casos de Uso Alexandre Motnteiro.
Desenvolvimento de Projetos e Aplicações Web
Sistemas Operacionais
Engenharia de Requisitos
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Object Oriented Software Construction (MEYER, Bertrand)
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Estruturas de Dados com Jogos
VI e-Science XXXII Congresso da Sociedade Brasileira de Computação (CSBC) BIOPEN MANAGER FERRAMENTA COMPUTACIONAL PARA COLETA E ANÁLISE DE DADOS LABORATORIAIS.
Taxonomia Profa. Lillian Alvares,
Coordenação Geral de Ensino da Faculdade
Modelagem Estatística
EXERCÍCIOS PARA GUARDA-REDES
Módulo: Gerenciamento de Incidentes e
Ritornello Um Framework para Representação de Conhecimento Musical
IF696 - Integração de Dados e DW
1.
Técnicas de Modelagem para Aplicações em Computação Gráfica
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Capítulo 5 Garbage Collector.
Computação Gráfica Aula 3 Transformações Geométricas
Orientedora: Prof a. Daniela Barreiro Claro Graduando: Anderson Tiago Barbosa de Carvalho Universidade Federal da Bahia Instituto de Matemática Departamento.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Stream – Fluxo I/O Sistema de Arquivos
EBSCOhost Pesquisa avançada.
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
UML - Unified Modeling Language
Configuração do Ambiente de programação
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Transcrição da apresentação:

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Computação e Estatística Servidor de Documentos XML Usando Java Aluno: Werley Ribeiro Martins Orientador: Prof. Dr. Dilvan de Abreu Moreira Setembro

2 Organização da Apresentação Introdução Introdução Tecnologias Utilizadas Tecnologias Utilizadas Arquitetura do Servidor XML Arquitetura do Servidor XML Funcionamento dos Métodos Funcionamento dos Métodos Aplicação Gráfica Aplicação Gráfica Testes Realizados Testes Realizados Conclusões Conclusões

3 Introdução Crescimento de aplicações no ambiente WWW (World Wide Web) Crescimento de aplicações no ambiente WWW (World Wide Web) Disponibilização de uma variedade de informações Disponibilização de uma variedade de informações Documentos eletrônicos estão cada vez mais complexos Documentos eletrônicos estão cada vez mais complexos Surgimento de novos e complexos tipos de dados Surgimento de novos e complexos tipos de dados O padrão HTML (HyperText Markup Language) não fornece recursos suficientes para formatar tais documentos O padrão HTML (HyperText Markup Language) não fornece recursos suficientes para formatar tais documentos

4 Introdução XML (Extensible Markup Language) XML (Extensible Markup Language) criada para resolver as limitações da linguagem HTML criada para resolver as limitações da linguagem HTML separa o conteúdo de sua apresentação separa o conteúdo de sua apresentação permite criar seus próprios tipos de elementos (tags) permite criar seus próprios tipos de elementos (tags) XSL (Extensible Stylesheet Language) XSL (Extensible Stylesheet Language) expressa como o conteúdo dos documentos XML é apresentado expressa como o conteúdo dos documentos XML é apresentado converte um documento XML em outras linguagens converte um documento XML em outras linguagens

5 Introdução Motivação Motivação Como os dados XML podem ser extraídos de grandes documentos XML? Como os dados XML podem ser extraídos de grandes documentos XML? XQL (XML Query Language) é uma linguagem de consulta para documentos XML XQL (XML Query Language) é uma linguagem de consulta para documentos XML A partir daí, deseja-se realizar algum tipo de manipulação com os dados de documentos XML A partir daí, deseja-se realizar algum tipo de manipulação com os dados de documentos XML Executar diversas operações sobre esses dados, que podem ser obtidos através da linguagem de consulta XQL Executar diversas operações sobre esses dados, que podem ser obtidos através da linguagem de consulta XQL

6 Introdução Objetivo Objetivo Desenvolver um servidor capaz de realizar diversas operações sobre documentos XML e XSL como: Desenvolver um servidor capaz de realizar diversas operações sobre documentos XML e XSL como: incluir novos documentos no repositório ou dentro de um documento já existente incluir novos documentos no repositório ou dentro de um documento já existente apagar um documento por inteiro ou somente parte dele apagar um documento por inteiro ou somente parte dele realizar consultas sobre esses documentos, retornando conteúdos em diversos formatos realizar consultas sobre esses documentos, retornando conteúdos em diversos formatos transformar um documento XML em outras linguagens, através da linguagem XSL transformar um documento XML em outras linguagens, através da linguagem XSL

7 Tecnologias Utilizadas DOM (Document Object Model) DOM (Document Object Model) Representa um documento XML bem formado na forma de uma árvore Representa um documento XML bem formado na forma de uma árvore Cria um modelo de objeto na forma como estão organizados os dados do documento Cria um modelo de objeto na forma como estão organizados os dados do documento Fornece um conjunto de objetos e interfaces que representam o conteúdo e a estrutura de documentos XML sem perda de informações significativas Fornece um conjunto de objetos e interfaces que representam o conteúdo e a estrutura de documentos XML sem perda de informações significativas Permite acessar e manipular a informação contida em documentos XML Permite acessar e manipular a informação contida em documentos XML

8 Tecnologias Utilizadas Servidor de Documentos XML Usando JAVA Capítulo 1 - Introdução... documento título conteúdo capítulo Servidor de Documentos XML Usando Java Servidor de Documentos XML Usando Java Capítulo 1 - Introdução... DOM (Document Object Model) Documento XML Representação DOM

9 Tecnologias Utilizadas Interfaces DOM Interfaces DOM Node - qualquer objeto em uma árvore de nós Node - qualquer objeto em uma árvore de nós Document - documento XML como uma árvore de nós Document - documento XML como uma árvore de nós Element - um elemento em uma árvore de nós Element - um elemento em uma árvore de nós Attr - um atributo contido em um Element Attr - um atributo contido em um Element Text - texto contido em um Element ou Attr Text - texto contido em um Element ou Attr DocumentType - DTD associado à árvore de nós DocumentType - DTD associado à árvore de nós

10 Tecnologias Utilizadas JavaSpaces JavaSpaces Pode ser utilizado como um repositório para armazenamento de objetos JAVA Pode ser utilizado como um repositório para armazenamento de objetos JAVA Documentos XML são armazenados na forma de objetos DOM, que são objetos JAVA Documentos XML são armazenados na forma de objetos DOM, que são objetos JAVA Um espaço compartilhado onde objetos (entradas) são armazenados Um espaço compartilhado onde objetos (entradas) são armazenados Permite armazenamento de forma transiente ou persistente Permite armazenamento de forma transiente ou persistente Possui um conjunto de operações reduzido Possui um conjunto de operações reduzido

11 Tecnologias Utilizadas JavaSpaces

12 Tecnologias Utilizadas Utilização de bibliotecas para a realização das operações: Utilização de bibliotecas para a realização das operações: Xerces – parser XML para converter um documento XML em um objeto DOM, além de verificar sua validade, caso tenha um DTD Xerces – parser XML para converter um documento XML em um objeto DOM, além de verificar sua validade, caso tenha um DTD Xalan – processador XSL para transformar documentos XML em documentos HTML, texto ou em outros documentos XML Xalan – processador XSL para transformar documentos XML em documentos HTML, texto ou em outros documentos XML GMD-IPSI XQL – ferramenta de consulta e armazenamento que utiliza a linguagem XQL para consultar dados de documentos XML, podendo ser aplicadas em qualquer nó de uma árvore DOM GMD-IPSI XQL – ferramenta de consulta e armazenamento que utiliza a linguagem XQL para consultar dados de documentos XML, podendo ser aplicadas em qualquer nó de uma árvore DOM

13 Arquitetura do Servidor XML Interface Interface define quais os métodos que são executados pelo servidor sobre os documentos armazenados define quais os métodos que são executados pelo servidor sobre os documentos armazenados Proxy Proxy realiza a conexão entre as aplicações cliente e o servidor realiza a conexão entre as aplicações cliente e o servidor implementa a interface implementa a interface esconde do usuário o que é feito localmente do que é feito no servidor esconde do usuário o que é feito localmente do que é feito no servidor permite a migração de funcionalidade entre os lados cliente e servidor, implementando a mesma interface permite a migração de funcionalidade entre os lados cliente e servidor, implementando a mesma interface

14 Arquitetura do Servidor XML Acesso aos Documentos Solicitação dos Serviços Conexão Manipulação dos Serviços JavaSpaces Servidor XML Servidor XML Proxy Interface Cliente

15 Arquitetura do Servidor XML

16 Funcionamento dos Métodos Os objetos DOM são armazenados dentro de uma classe, chamada Name, que são as entradas do espaço JavaSpaces Os objetos DOM são armazenados dentro de uma classe, chamada Name, que são as entradas do espaço JavaSpaces Name possui 3 campos: Name possui 3 campos: document - representação DOM do documento a ser armazenado document - representação DOM do documento a ser armazenado name - name único para identificar um DOM name - name único para identificar um DOM dtd - conteúdo do arquivo DTD, caso exista, ou null, caso contrário dtd - conteúdo do arquivo DTD, caso exista, ou null, caso contrário Uma estrutura Vector contém os campos name para identificar quais names estão armazenados no espaço Uma estrutura Vector contém os campos name para identificar quais names estão armazenados no espaço JavaSpaces possui vários Names e um Vector em seu espaço JavaSpaces possui vários Names e um Vector em seu espaço

17 Funcionamento dos Métodos Manipulações com Names Manipulações com Names isName(doc) createName(Java_course) getNames(//título) destroyName(course) true OK [ doc ] getNames(null) [ doc, course, server, Java_course ] doc course Java_course server

18 Funcionamento dos Métodos Manipulações com Names Manipulações com Names isName(doc) createName(Java_course) getNames(//título) changeName(server, XMLServer) destroyName(course) true OK [ doc ] course getNames(null) [ doc, course, server, Java_course ] XMLServer doc Java_course server XMLServer

19 Funcionamento dos Métodos Adicionando um novo documento no repositório Adicionando um novo documento no repositório String add(String name, Document XML, boolean DTD) String add(String name, Reader XML, boolean DTD) Verificar Validade Verificar Validade XERCES Documento XML Documento XML Tem DTD Não tem DTD name = name document = Document(XML) dtd = null name = name document = Document(XML) dtd = null Name

20 O Servidor XML Verificar Validade Verificar Validade Documento não é adicionado no repositório Documento não é adicionado no repositório name = name document = Document(XML) dtd = null name = name document = Document(XML) dtd = null Inválido Válido DTD não está embutido no documento XML DTD está embutido no documento XML name = name document = Document(XML) dtd = String(DTD(XML)) name = name document = Document(XML) dtd = String(DTD(XML)) Name - Pode ser adicionado no repositório se DTD = false

21 Funcionamento dos Métodos Adicionando um novo documento em um já existente Adicionando um novo documento em um já existente String addIn(String name, String XQLquery, Document xml) String addIn(String name, String XQLquery, Reader xml) String addIn(String name, Reader XQLquery, Document xml) String addIn(String name, Reader XQLquery, Reader xml) Documento XML já existente no repositório Documento XML já existente no repositório Documento XML já existente com o novo documento Documento XML já existente com o novo documento GMD-IPSI XQL GMD-IPSI XQL Novo documento XML Novo documento XML

22 Funcionamento dos Métodos título conteúdo capítulo Capítulo 2 - Linguagens de Programação... Adicionando um novo documento em um já existente Adicionando um novo documento em um já existente Ex: addIn(doc, /documento, capitulo2.xml) documento título conteúdo capítulo Servidor de Documentos XML Usando Java Servidor de Documentos XML Usando Java Capítulo 1 - Introdução... Documento XML já existente no repositório Novo documento XML

23 Funcionamento dos Métodos título conteúdo capítulo Capítulo 2 - Linguagens de Programação... Adicionando um novo documento em um já existente Adicionando um novo documento em um já existente Ex: addIn(doc, /documento, capitulo2.xml) documento título conteúdo capítulo Servidor de Documentos XML Usando Java Servidor de Documentos XML Usando Java Capítulo 1 - Introdução... Documento após a operação

24 Funcionamento dos Métodos Adicionando um novo documento em um já existente Adicionando um novo documento em um já existente Query indica onde o novo documento será adicionado no documento existente no repositório Query indica onde o novo documento será adicionado no documento existente no repositório Query deve retornar um único elemento Query deve retornar um único elemento Documento é adicionado sem verificar sua validade Documento é adicionado sem verificar sua validade A validade pode ser verificada através do método validateDOM A validade pode ser verificada através do método validateDOM

25 Funcionamento dos Métodos Validar um objeto DOM Validar um objeto DOM String validateDOM(String name) Documento Válido Documento Válido Documento Inválido Documento Inválido XERCES XML Representação XML do objeto DOM XML Representação XML do objeto DOM DTD Valor contido no campo dtd da classe Name DTD Valor contido no campo dtd da classe Name Cria dois arquivos temporários: Cria dois arquivos temporários:

26 Funcionamento dos Métodos Apagando dados XML Apagando dados XML void delete(String name[], String XQLquery) void delete(String name[], Reader XQLquery) Query deve retornar um ou mais elementos Query deve retornar um ou mais elementos GMD-IPSI XQL GMD-IPSI XQL Documento XML Documento XML Documento XML sem os dados consultados Documento XML sem os dados consultados

27 Funcionamento dos Métodos Apagando dados XML Apagando dados XML Ex: delete(doc, //capítulo/título) documento título conteúdo capítulo Servidor de Documentos XML Usando Java Servidor de Documentos XML Usando Java... Documento antes da operação título Capítulo 1 - Introdução

28 Funcionamento dos Métodos Apagando dados XML Apagando dados XML Ex: delete(doc, //capítulo/título) documento título conteúdo capítulo Servidor de Documentos XML Usando Java Servidor de Documentos XML Usando Java... Documento após a operação

29 Funcionamento dos Métodos Operações de Consulta Operações de Consulta boolean isQuery(String name[], String XQLquery) boolean isQuery(String name[], Reader XQLquery) Document[] getDoc(String name[], String XQLquery) Document[] getDoc(String name[], Reader XQLquery) Reader[] getText(String name[], String XQLquery) Reader[] getText(String name[], Reader XQLquery) GMD-IPSI XQL GMD-IPSI XQL Documento XML Documento XML Um novo documento com os dados consultados Um novo documento com os dados consultados

30 Funcionamento dos Métodos documento título conteúdo capítulo Servidor de Documentos XML Usando Java Capítulo 1 - Introdução... Operações de Consulta Operações de Consulta Ex: getDoc(doc, //título) título Servidor de Documentos XML Usando Java título Capítulo 1 - Introdução xql:result Documento após a operaçãoDocumento antes da operação

31 Funcionamento dos Métodos Operações de Transformação Operações de Transformação Document[] transformDoc(String name[], String XSLname) Document[] transformDoc(String name[], Document XSL) Document[] transformDoc(String name[], Reader XSL) Reader[] transformText(String name[], String XSLname) Reader[] transformText(String name[], Document XSL) Reader[] transformText(String name[], Reader XSL) XSLname é um campo name que identifica um documento XSL armazenado no repositório XSLname é um campo name que identifica um documento XSL armazenado no repositório

32 Funcionamento dos Métodos Documento XML Documento XML Documento HTML Documento HTML XALAN Documento XSL Documento XSL Operações de Transformação Operações de Transformação Xalan possui recursos suficientes para converter um Xalan possui recursos suficientes para converter um documento XML em outras linguagens

33 Aplicação Gráfica Ilustra como podem ser realizadas algumas das manipulações permitidas Ilustra como podem ser realizadas algumas das manipulações permitidas Realiza a conexão com o servidor Realiza a conexão com o servidor Demonstra a funcionalidade de alguns métodos definidos na interface Demonstra a funcionalidade de alguns métodos definidos na interface

34 Aplicação Gráfica

35 Aplicação Gráfica

36 Aplicação Gráfica

37 Testes Realizados Testes básicos realizados: Testes básicos realizados: cada método da interface foi testado ao menos uma vez cada método da interface foi testado ao menos uma vez foram conectados 3 clientes ao servidor, solicitando as mesmas manipulações e ao mesmo tempo foram conectados 3 clientes ao servidor, solicitando as mesmas manipulações e ao mesmo tempo em métodos como delete, getDoc e transformDoc, foram realizados testes sobre 3 documentos do repositório, de modo que foram retornados 3 objetos de acordo com o resultado desejado em métodos como delete, getDoc e transformDoc, foram realizados testes sobre 3 documentos do repositório, de modo que foram retornados 3 objetos de acordo com o resultado desejado foram criadas situações em que a operação solicitada não retornava resultados válidos foram criadas situações em que a operação solicitada não retornava resultados válidos

38 Testes Realizados Resultados obtidos: Resultados obtidos: O servidor atendeu a todas as solicitações que lhe foram feitas O servidor atendeu a todas as solicitações que lhe foram feitas O servidor não parou de funcionar em nenhum dos testes efetuados O servidor não parou de funcionar em nenhum dos testes efetuados O resultado foi obtido conforme o esperado ou foi retornada uma mensagem de erro adequada O resultado foi obtido conforme o esperado ou foi retornada uma mensagem de erro adequada O servidor possui uma funcionalidade mínima O servidor possui uma funcionalidade mínima

39 Conclusões Resultados e contribuições Resultados e contribuições Construção de um servidor capaz de realizar operações, sobre um repositório de documentos XML e XSL, como adicionar, consultar, apagar e transformar Construção de um servidor capaz de realizar operações, sobre um repositório de documentos XML e XSL, como adicionar, consultar, apagar e transformar Facilita diversos tipos de manipulações que podem ser aplicadas aos documentos Facilita diversos tipos de manipulações que podem ser aplicadas aos documentos Utilização e integração de diversas tecnologias Utilização e integração de diversas tecnologias

40 Conclusões Sugestões para trabalhos futuros Sugestões para trabalhos futuros Desenvolvimento de uma interface gráfica mais amigável Desenvolvimento de uma interface gráfica mais amigável Implementação do método validateDOM de uma outra maneira que não necessite criar os arquivos temporários Implementação do método validateDOM de uma outra maneira que não necessite criar os arquivos temporários Inclusão do serviço de transações Inclusão do serviço de transações Estudo de novos métodos de armazenamento e manipulação de documentos XML que dispensem o uso de JavaSpaces Estudo de novos métodos de armazenamento e manipulação de documentos XML que dispensem o uso de JavaSpaces