938 resultados para Android, Java, GPS, PHP, MySql, XML
Resumo:
XML (eXtensibile Markup Language) é um padrão atual para representação e intercâmbio dos semi-estruturados na Web. Dados semi-estruturados são dados não convencionais cujas instâncias de uma mesma fonte de dados podem ter representações altamente heterogêneas. Em função isto, um esquema para estes dados tende a ser extenso para suportar todas as alternativas de representação que um dado pode assumir. Parte do grande volume de dados disponível hoje na Web é composto por fontes de dados heterogêneas XML sobre diversos domínios do conhecimento. Para realizar o acesso a estas fontes, aplicações na Web necessitam de um mecanismo de integração de dados. O objetivo principal deste mecanismo é disponibilizar um esquema de dados global representativo dos diversos esquemas XML das fontes de dados. Com base neste esquema global, consultas são formuladas, traduzidas para consultas sobre os esquemas XML, executadas nas fontes de dados e os resultados retornados à aplicação. Esta tese apresenta uma abordagem para a integração semântica de esquemas XML relativos a um domínio de aplicação chamada BInXS. BInXS adota um processo bottom-up de integração, no qual o esquema global é definido para um conjunto de esquemas XML representadas atrtavés de DTDs (Document Type Definitions). A vantagem do processo bottom-up é que todas as informações dos esquemas XML são consideradas no esquema global. Desta forma, toda a informação presente nas fontes de dados pode ser consultada. O processo de integração de BInXS é baseado em um conjunto de regras e algoritmos que realizam a cnversão de cada DTD para um esquema canônico conceitual e a posterior integração semântica propriamente dita destes esquemas canônicos. O processo é semi-automático pois considera uma eventual intervenção de um usuário especialista no domínio para validar ou confirmar alternativas de resultado produzidas automaticamente. Comparada com trabalhos relacionados, BInXS apresenta as seguintes contribuições: (i) uma representação canônica conceitual para esquemas XML que é o resultado de uma anállise detalhada do modelo XML; (ii) um étodo de unificação que lida com as particularidades da integração de dados semi-estruturados e; (iii) uma estratégia de mapeamento baseada em expressões de consulta XPath que possibilita uma tradução simples de consultas globais para consultas a serem executadas nas fontes de dados XML.
Resumo:
Este trabalho utilizou tecnologias tais como XML (eXtensible Markup Language) e esquemas XML, com objetivo de aprimorar a ovinocultura tornando o setor primário mais competitivo. Foram elaborados arquivos XML com a mesma estrutura (equivalentes) dos arquivos primitivos da Associação Brasileira de Criadores de Ovinos ( A.R.C.O. ), para que os mesmos possam ser disponibilizados na Internet. Para obter a integridade destes dados na Internet criou-se os esquemas XML, que são arquivos contendo as regras de formação dos dados. Os arquivos XML ficarão protegidos contra dados indesejáveis e disponíveis ao produtor rural via Internet.
Resumo:
O acesso integrado a informações provenientes de banco de dados autônomos e heterogêneos, localizadas em diferentes ambientes de hardware e software, vem sendo amplamente pesquisado pela comunidade de banco de dados, com diversas soluções propostas. A maioria delas baseia-se na comparação e na integração ou mapeamento dos esquemas conceituais dos bancos de dados participantes, implementados através de uma camada adicional de software, em um nível superior ao dos bancos de dados existentes. Inicialmente, as metodologias de acesso integrado eram limitadas às informações provenientes de banco de dados. Entretanto, com o crescimento das redes de computadores e, conseqüentemente, com a intensa utilização da Internet, novas fontes de informações passaram a ser utilizadas neste ambiente, tais como fontes de dados semi-estruturadas. Estender o acesso integrado também a esses tipos de informações tornou-se importante. Este trabalho tem como objetivo propor a utilização de um metamodelo XML como modelo de dados canônico, através do qual é possível obter a representação conceitual dos esquemas de exportação provenientes de bancos de dados relacionais, objeto-relacionais e documentos XML, permitindo, desta forma, o acesso integrado a fontes de dados estruturadas e semi-estruturadas, a partir de metodologias inicialmente voltadas à interoperabilidade de banco de dados heterogêneos. Além do metamodelo apresentado, este trabalho incluiu o desenvolvimento da ferramenta XML Integrator, cujo objetivo é fornecer ao usuário mecanismos de apoio ao processo conversão dos esquemas conceituais locais de fontes de dados heterogêneas para o Metamodelo XML, bem como de extração de um esquema conceitual correspondente a um documento XML ou a uma classe de documentos XML. Para isso, a ferramenta utiliza interfaces gráficas, que guiam o usuário através dos diversos passos, desde a seleção da fonte de dados a ser convertida, até a geração do esquema de exportação propriamente dito.
Resumo:
Em vista da maior complexidade da programação paralela e distribuída em relação à programação de ambientes centralizados, novas ferramentas vêm sendo construídas com o objetivo de auxiliar o programador desses ambientes a desempenhar sua tarefa de formas mais eficazes e produtivas. Uma das ferramentas que há algum tempo tem sido usada na programação centralizada e aos poucos está sendo empregada também na programação concorrente é a programação visual. A programação visual se vale da presença de elementos visuais na especificação dos programas como peças chaves do processo de desenvolvimento de software. No caso específico da programação concorrente, a programação visual é especialmente útil pela capacidade que os gráficos têm de representar de forma mais adequada estruturas bidimensionais. Um programa concorrente, por relacionar no espaço diversos elementos com seus próprios fluxos de execução, faz surgir duas dimensões de análise que são mais difíceis de serem observadas através de programas textuais. Atualmente existem ferramentas de programação visual paralela e distribuída, mas a ênfase é dada na programação paralela, sem muita atenção a aplicações de sistemas abertos ou cliente-servidor. Além disso, tais ferramentas sofrem da falta de apoio à engenharia do software. Considerando essas deficiências, este trabalho apresenta uma ferramenta de programação visual para o desenvolvimento de aplicações compostas por objetos distribuídos que ofereça também a possibilidade de aplicar os principais conceitos da engenharia de software, como reutilização e orientação a objeto. Nesta ferramenta, o programador especifica de maneira visual a estrutura do seu programa, insere o código textual para a lógica da aplicação e o ambiente se encarrega do tratamento da distribuição e da comunicação de mais baixo nível. A aplicação é representada como um grafo dirigido, onde os nodos representam os objetos distribuídos e os arcos indicam os relacionamentos existentes entre esses objetos. A especificação dos programas é modular, baseando-se na reunião de componentes reutilizáveis, o que torna o sistema altamente configurável e extensível. Tanto a implementação da ferramenta quanto o código das aplicações geradas usam a linguagem de programação Java. A linguagem de programação visual projetada não especifica detalhes a respeito de como irá funcionar a comunicação e distribuição dos objetos. Portanto, foram implementados componentes para comunicação e outros recursos de programação distribuída, como locks e dados globais para serem usados nas aplicações. Para validar os principais objetivos da ferramenta, foram implementados alguns exemplos de aplicações distribuídas, como um pequeno sistema de bate-papo.
Resumo:
O uso da Internet como ferramenta de ensino tem se tornado cada vez mais freqüente. A recente popularização da Internet vem permitindo o desenvolvimento de ambientes de ensino-aprendizagem baseados na Web. Os principais recursos explorados para fins educacionais são hipertexto e hipermídia, que proporcionam uma grande gama de elementos para o instrutor que pretende utilizar a WWW. Este trabalho está inserido no desenvolvimento do ambiente AdaptWeb (Ambiente de Ensino e Aprendizagem Adaptativo para a Web), que visa o desenvolvimento de um ambiente de educação a distância. A arquitetura do ambiente é composta por quatro módulos entre eles o módulo de Armazenamento de dados que armazena todos os dados provenientes da fase de Autoria utilizando XML (Extensible Markup Language). Na etapa de Autoria é feita a inserção de todos os dados relativos a disciplina que deseja disponibilizar, estes dados serão armazenados temporariamente em uma representação matricial em memória. A entrada de dados do módulo de Armazenamento de Dados é esta representação matricial que serve então como base para a geração dos arquivos XML, que são utilizados nas demais etapas do ambiente. Para a validação dos arquivos XML foram desenvolvidas DTD (Document Type Definition) e também foi implementado um analisador de documentos XML, utilizando a API (Application Programming Interface) DOM (Document Object Model), para efetuar a validação sintática destes documentos. Para conversão da representação matricial em memória foi especificado e implementado um algoritmo que funciona em conformidade com as DTD especificadas e com a sintaxe da linguagem XML.
Resumo:
Os controladores programáveis tornaram-se fator decisivo para o controle de processos em ambientes industriais. Permitir o gerenciamento desses, eleva-os ao mesmo grupo de outros equipamentos da rede. Gerenciar esses dispositivos e o processo controlado tende a facilitar a identificação de falhas, as intervenções no processo e demais vantagens trazidas por um bom esquema de gerência. Uma maneira de realizar esse gerenciamento é por meio de programas conhecidos como supervisórios. Além das aplicações de supervisão, uma nova classe de ferramentas, que também possibilita o gerenciamento tanto do controlador quanto do processo a esse submetido, vem sendo disponibilizada. A presença de protocolos de gerenciamento, tal qual o SNMP, já é uma realidade em alguns dos modelos de equipamentos oferecidos por vários fabricantes, promovendo uma integração com plataformas de gerência já existentes no mercado. A proposta deste trabalho inclui a elaboração de um modelo de gerenciamento usando XML, atualmente em ampla ascensão e aceitação. Está, também, previsto a construção de um protótipo capaz de realizar as funções de um agente. A criação de um modelo de gerenciamento baseado em tecnologias e especificações abertas, tais como XML e Web, possibilita desde a utilização de um navegador, até o desenvolvimento de novas ferramentas para a requisição/aquisição de dados em controladores.
Resumo:
A linguagem XSLT transforma documentos XML não apenas em novos documentos XML, mas também em documentos HTML, PDF e outros formatos, tornando-se bastante útil. Entretanto, como um ambiente de programação, XSLT apresenta algumas deficiências. Não apresenta um ambiente gráfico de programação e exige conhecimento prévio sobre manipulação de estrutura de dados em árvores, o que compromete a produtividade do programador e limita o uso da linguagem a especialistas. Assim, várias propostas têm sido apresentadas na tentativa de suprir estas deficiências, utilizando recursos variados como geração automática de script XSLT e reuso de transformações. Este trabalho apresenta a ferramenta X2H que visa auxiliar a apresentação de documentos XML em HTML, aumentando a produtividade de programadores que utilizam a linguagem XSLT. Para facilitar a sua utilização, a X2H possui uma interface gráfica com abordagem baseada em exemplos, na qual o usuário compõe um documento exemplo HTML a partir de um documento fonte XML. Estes documentos são visualizados como árvores hierárquicas, nas quais é vinculado um conjunto de operações dependente do contexto, que permitem a composição do documento exemplo. Este documento serve de entrada para um gerador de regras, que gera um script na linguagem XSLT que, se executado, apresenta o documento HTML resultado desejado.
Resumo:
A linguagem de programação Java vem sendo uma das escolhidas para a implementação de aplicações compostas por objetos distribuídos. Estas aplicações caracterizam-se por possuir comportamento complexo e, portanto, são mais difíceis de depurar e refinar para obter melhores desempenhos. Considerando a necessidade do desenvolvimento de uma ferramenta de monitoração para o modelo de objetos distribuídos, que colete informações mais detalhadas sobre a execução da aplicação, é apresentado neste trabalho um ambiente de monitoração de aplicações distribuídas escritas em Java, o DOMonitor. Um dos objetivos do DOMonitor é obter o comportamento que a aplicação apresenta durante a execução, possibilitando a detecção de comportamentos equivocados e seu respectivo refinamento. O DOMonitor é voltado para aplicações compostas por objetos distribuídos e caracteriza-se por identificar principalmente: (i) o comportamento dinâmico das threads; (ii) a utilização dos métodos de sincronização; e (iii) a comunicação entre os entes distribuídos da aplicação. O DOMonitor está fundamentado em quatro premissas: (i) ser transparente para o usuário, não exigindo anotações no código fonte; (ii) apresentar uma organização modular, e por isto ser flexível e expansível; (iii) ser portável, não exigindo nenhuma alteração na Maquina Virtual Java; e (iv) operar de forma a garantir a ordem dos eventos previstos pelo programa. Os dados produzidos pelo DOMonitor podem ser utilizados com diversas finalidades tais como visualização da execução, escalonamento e como suporte à execução de aplicações móveis. Para comprovar esta versatilidade, foi proposta a integração do sistema a dois outros projetos, o Pajé e o ISAM. O projeto ISAM utilizará os dados monitorados para tomadas de decisão durante o curso da execução e o projeto Pajé permite a visualização gráfica das características dinâmicas de uma aplicação Java.
Resumo:
XML has become an important medium for data exchange, and is frequently used as an interface to - i.e. a view of - a relational database. Although lots of work have been done on querying relational databases through XML views, the problem of updating relational databases through XML views has not received much attention. In this work, we give the rst steps towards solving this problem. Using query trees to capture the notions of selection, projection, nesting, grouping, and heterogeneous sets found throughout most XML query languages, we show how XML views expressed using query trees can be mapped to a set of corresponding relational views. Thus, we transform the problem of updating relational databases through XML views into a classical problem of updating relational databases through relational views. We then show how updates on the XML view are mapped to updates on the corresponding relational views. Existing work on updating relational views can then be leveraged to determine whether or not the relational views are updatable with respect to the relational updates, and if so, to translate the updates to the underlying relational database. Since query trees are a formal characterization of view de nition queries, they are not well suited for end-users. We then investigate how a subset of XQuery can be used as a top level language, and show how query trees can be used as an intermediate representation of view de nitions expressed in this subset.
Resumo:
As aplicações que lidam com dados temporais e versionados podem ser modeladas através do Modelo Temporal de Versões. No entanto, para que se possa utilizar esse modelo,é necessário que bases de dados tradicionais sejam estendidas para bases temporais versionadas, habilitando dessa forma, a manipulação desses dados. O padrão XML tem sido amplamente utilizado para publicar e trocar dados pela internet. Porém, pode ser utilizado também para a formalização de conceitos, dados, esquemas, entre outros. Com a especificação do Modelo Temporal de Versões em XML,é possível gerar automaticamente um script SQL com as características do modelo, de forma a ser aplicado a um banco de dados, tornando-o apto a trabalhar com os conceitos de tempo e de versão. Para isso,é necessário criar regras de transformação (XSLT), que serão aplicadas às especificações definidas para o modelo. O resultado final (script SQL) será executado em uma base de dados que implemente os conceitos de orientação a objetos, transformando essa base em uma base temporal versionada. Cada banco de dados possui sua própria linguagem de definição de dados. Para gerar o script em SQL com as características do Modelo Temporal de Versões, regras de transformação deverão ser definidas para os bancos que utilizarão o modelo, observando sua sintaxe específica. Essas diversas regras serão aplicadas à mesma especificação do modelo em XML. O resultado será o script em SQL definido na sintaxe de cada base de dados.
Resumo:
Este trabalho relata as atividades de estudo, projeto e implementação de uma aplicação distribuída que explora mecanismos básicos empregados em comunicação de grupo. O estudo é focado no desenvolvimento e uso dos conceitos de sincronismo virtual e em resultados aplicáveis para tolerância a falhas. O objetivo deste trabalho é o de demonstrar as repercussões práticas das principais características do modelo de sincronismo virtual no suporte à tolerância a falhas. São preceitos básicos os conceitos e primitivas de sistemas distribuídos utilizando troca de mensagens, bem como as alternativas de programação embasadas no conceito de grupos. O resultado final corresponde a um sistema Cliente/Servidor, desenvolvido em Java RMI, para simular um sistema distribuído com visões de grupo atualizadas em função da ocorrência de eventos significativos na composição dos grupos (sincronismo virtual). O sistema apresenta tratamento a falhas para o colapso (crash) de processos, inclusive do servidor (coordenador do grupo), e permite a consulta a dados armazenados em diferentes servidores. Foi projetado e implementado em um ambiente Windows NT, com protocolo TCP/IP. O resultado final corresponde a um conjunto de classes que pode ser utilizado para o controle da composição de grupos (membership). O aplicativo desenvolvido neste trabalho disponibiliza seis serviços, que são: inclusão de novos membros no grupo, onde as visões de todos os membros são atualizadas já com a identificação do novo membro; envio de mensagens em multicast aos membros participantes do grupo; envio de mensagens em unicast para um membro específico do grupo; permite a saída voluntária de membros do grupo, fazendo a atualização da visão a todos os membros do grupo; monitoramento de defeitos; e visualização dos membros participantes do grupo. Um destaque deve ser dado ao tratamento da suspeita de defeito do coordenador do grupo: se o mesmo sofrer um colapso, o membro mais antigo ativo é designado como o novo coordenador, e todos os membros do grupo são atualizados sobre a situação atual quanto à coordenação do grupo.
Resumo:
Este trabalho apresenta um mapeamento centrado nas construções não usuais da linguagem Nautilus, para a linguagem convencional, no caso Java, mantendo propriedades com atomicidade que são requisitos da semântica formal da linguagem. Nautilus é originalmente uma linguagem de especificação baseada em objetos, textual que suporta objetos concorrentes e não deterministas. Desde então a linguagem foi modificada aom extensões como classes e uma notação diagramática, além de se investigar seu uso como linguagem de programação. Suas construções incomuns (reificação, agregação, etc.) são baseados em seu domínio semântico: Automâtos Não Sequenciais. Este domíno satisfaz composição diagonal, i.e refinamentos se compõem (verticalmente) refletindo uma descrição gradual de sistemas, envolvendo múltiplos níveis de abstração, e distribui-se através de combinadores (horizontalmente), o que significa que o refinamento de um sistema composto é a combinação de do refinamento de suas partes.O trabalho inclui um mapeamento inicial de um subconjunto da linguagem(objeto base, reificação, agregação e visão), uma versão ampliada para abranger mais construções( interação e classes), e uma versão refinada mais concorrente e sugestões de modificação na linguagem.
Resumo:
Com o objetivo de realizar consultas em diferentes fontes XML,é necessário que se escreva uma consulta específica para cada fonte XML. Uma solução mais adequada é fazer uma única consulta sobre um esquema conceitual e então traduzi-la automaticamente para consultas XML para cada fonte XML específica. CXPath é uma linguagem de consulta que foi proposta para consultar dados em nıvel conceitual. Este trabalho tem como objetivos formalizar a linguagem existente, estendê-la para permitir consultas que utilizem o conceito de herança e estender o mecanismo de tradução de consultas. A formalização da linguagem é feita por meio de um conjunto de regras que definem formalmente um critério para validar uma consulta escrita nessa linguagem sobre um esquema conceitual. Essa formalização permite estender a linguagem para que ela passe a tratar os relacionamentos de herança e especialização. Outra contribuição dessa formalização é que ela apresenta o primeiro passo rumo à verificação formal de que a avaliação da consulta global traz os mesmos resultados obtidos pela avaliação da consulta resultante do processo de mapeamento de consultas proposto. A extensão do mecanismo de tradução de consultas é necessária para traduzir relacionamentos representados no modelo conceitual para junções nas fontes de dados XML. Tal aspecto é fundamental para permitir a construção de modelos conceituais com relacionamentos semânticos e que não dependam de relacionamentos físicos existentes nos documentos fontes, mas apenas de junções tal como é feito em bases de dados relacionais.
Resumo:
A utilização de conceitos de representação temporal tem sido essencial em diversas aplicações de banco de dados, por permitir o armazenamento e a manipulação dos diferentes estados assumidos pela base de dados ao longo do tempo. Durante a evolução da base de dados, através do conceito de bitemporalidade, obtém-se acesso a informações presentes, passadas e futuras. Já o conceito de versionamento permite a existência de diversas alternativas para a evolução da base de dados, possibilitando um processo de evolução ramificada, em oposição ao usual mecanismo de evolução linear do conteúdo da base. Com a migração de tais aplicações para um ambiente Web, estas passam cada vez mais a utilizar a linguagem XML como formato de representação e intercâmbio de seus dados. Tornam-se necessários, dessa forma, mecanismos para a representação e manipulação da história do conteúdo de um documento XML que sofre modificações com o passar do tempo. Apesar da existência de propostas de extensão temporal de modelos de dados convencionais e de estratégias para o armazenamento de documentos XML em modelos convencionais, a natureza semi-estruturada dos documentos XML faz com que seja necessário definir um novo modelo de dados temporal, capaz de lidar com os conceitos de bitemporalidade e versionamento em um documento semiestruturado. O objetivo deste trabalho é definir um modelo que, ao contrário das demais propostas existentes, combine os conceitos de bitemporalidade e de versionamento em uma única abordagem capaz de permitir o tratamento da evolução do conteúdo de documentos XML. O uso conjunto desses dois recursos visa combinar o poder de expressão de cada um, garantindo uma maior flexibilidade na representação do histórico dos documentos XML. O modelo resultante recebeu o nome de Tempo e Versões em XML, ou simplesmente TVX, composto por três partes: um modelo para a organização lógica dos dados, uma linguagem de consulta e uma linguagem para promover alterações ao conteúdo dos documentos XML.
Resumo:
Esta dissertação apresenta duas implementações de algoritmos para gerência dinâmica de memória em software, as quais foram desenvolvidas utilizando como alvo uma plataforma embarcada Java. Uma vez que a plataforma utilizada pertence a uma metodologia para geração semi-automática de hardware e software para sistemas embarcados, os dois algoritmos implementados foram projetados para serem integrados ao contexto desta mesma metodologia. Como forma de estabelecer comparações detalhadas entre as duas implementações desenvolvidas, foram realizadas diversas estimativas em desempenho, uso de memória, potência e energia para cada implementação, utilizando para isto duas versões existentes da plataforma adotada. Através da análise dos resultados obtidos, observou-se que um dos algoritmos desenvolvidos obteve um desempenho melhor para realização da gerência dinâmica da memória. Em contrapartida, o outro algoritmo possui características de projeto que possibilitam sua utilização com aplicações de tempo-real. De um modo geral, os custos adicionais resultantes da utilização do algoritmo de tempo-real, em relação ao outro algoritmo também implementado, são de aproximadamente 2% para a potência média dissipada, 16% para o número de ciclos executados, 18% para a energia consumida e 10% sobre a quantidade de total memória utilizada. Isto mostra que o custo extra necessário para utilização do algoritmo de tempo real é razoavelmente baixo se comparado aos benefícios proporcionados pela sua utilização. Como impactos finais produzidos por este trabalho, obteve-se um acréscimo de 35% sobre o número total de instruções suportadas pela arquitetura utilizada. Adicionalmente, 12% das instruções que já existiam no conjunto desta arquitetura foram modificadas para se adaptarem aos novos mecanismos implementados. Com isto, o conjunto atual da arquitetura passa a corresponder a 44% do total de instruções existentes na arquitetura da máquina virtual Java. Por último, além das estimativas desenvolvidas, foram também realizadas algumas sugestões para melhoria global dos algoritmos implementados. Em síntese, alguns pontos cobertos por estas sugestões incluem: a migração de elementos do processamento do escopo dinâmico para o estático, o desenvolvimento de mecanismos escaláveis para compactação de memória em tempo-real, a integração de escalonadores ao processo de gerência de memória e a extensão do processo de geração semi-automática de software e hardware para sistemas embarcados.