946 resultados para EBWorld, Java, Offline, XML, GIS
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:
Este trabalho apresenta o desenvolvimento de uma ferramenta computacional de apoio ao diagnóstico através de imagens ecocardiográficas, denominada de “Echo Offline”. O “Echo Offline” foi projetado para mensuração de grandezas lineares em imagens ecocardiográficas digitais, possibilitando a realização de diagnósticos pós-exame e a integração dos dados colhidos no banco de dados da instituição médica. Um estudo transversal contemporâneo e aleatório foi realizado com uma população de quarenta e nove pacientes submetidos a exames ecocardiográficos, as imagens resultantes deste exame foram digitalizadas e um médico especialista mensurou um conjunto de variáveis pré-definidas utilizando o método convencional, ou seja, usando as facilidades oferecidas pelo equipamento de ultra-som comercial. Um segundo médico especialista produziu outros dois conjuntos de dados utilizando o “Echo offline” e desta forma foi possível avaliar a exatidão e a repetibilidade das medidas realizadas pela ferramenta “Echo offline”. O “Echo offline” apresentou uma elevada concordância com o método convencional e apresentou significativa redução no tempo de realização das medidas.
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.
Resumo:
Esse trabalho de dissertação está incluído no contexto das pesquisas realizadas no Grupo de Processamento Paralelo e Distribuído da UFRGS. Ele aborda as áreas da computação de alto desempenho, interfaces simples de programação e de sistemas de interconexão de redes velozes. A máquina paralela formada por agregados (clusters) tem se destacado por apresentar os recursos computacionais necessários às aplicações intensivas que necessitam de alto desempenho. Referente a interfaces de programação, Java tem se mostrado uma boa opção para a escrita de aplicações paralelas por oferecer os sistemas de RMI e de soquetes que realizam comunicação entre dois computadores, além de todas as facilidades da orientação a objetos. Na área a respeito de interconexão de rede velozes está emergindo como uma tentativa de padronização a nova tecnologia Infiniband. Ela proporciona uma baixa latência de comunicação e uma alta vazão de dados, além de uma série de vantagens implementadas diretamente no hardware. É neste contexto que se desenvolve o presente trabalho de dissertação de mestrado. O seu tema principal é o sistema Aldeia que reimplementa a interface bastante conhecida de soquetes Java para realizar comunicação assíncrona em agregados formados por redes de sistema. Em especial, o seu foco é redes configuradas com equipamentos Infiniband. O Aldeia objetiva assim preencher a lacuna de desempenho do sistema padrão de soquetes Java, que além de usar TCP/IP possui um caráter síncrono. Além de Infiniband, o Aldeia também procura usufruir dos avanços já realizados na biblioteca DECK, desenvolvida no GPPD da UFRGS. Com a sua adoção, é possível realizar comunicação com uma interface Java sobre redes Myrinet, SCI, além de TCP/IP. Somada a essa vantagem, a utilização do DECK também proporciona a propriedade de geração de rastros para a depuração de programas paralelos escritos com o Aldeia. Uma das grandes vantagens do Aldeia está na sua capacidade de transmitir dados assincronamente. Usando essa técnica, cálculos da aplicação podem ser realizados concorrentemente com as operações pela rede. Por fim, os canais de dados do Aldeia substituem perfeitamente aqueles utilizados para a serialização de objetos. Nesse mesmo caminho, o Aldeia pode ser integrado à sistemas que utilizem a implementação de soquetes Java, agora para operar sobre redes de alta velocidade. Palavras-chave: Arquitetura Infiniband, agregado de computadores, linguagem de programação Java, alto desempenho, interface de programação.
Resumo:
Esta pesquisa, batizada Astrha (Automata Structured Hyper-Animation), tem suas raízes no projeto “Hyper Seed - Framework, Ferramentas e Métodos para Sistemas Hipermídia voltados para EAD via WWW” que possui, entre seus objetivos e metas: (a) o desenvolvimento de uma fundamentação matemática para a unificação, de maneira coerente e matematicamente rigorosa, de especificações de sistemas hipermídia e animações baseadas na Teoria dos Autômatos; (b) a construção e validação de um protótipo de sistema com suporte à criação de conteúdo multimídia e hipermídia com ênfase em educação assistida por computador; (c) a definição e aplicação de estudos de caso. Atender às demandas acadêmicas e construtoras supra citadas, no que se refere à unificação de especificações de sistemas hipermídia e animações baseadas na Teoria dos Autômatos, em nível conceitual, é o objetivo principal do Astrha. Mais especificamente, unificar conceitos das especificações Hyper-Automaton; Hyper- Automaton: Avaliações Interativas; eXtensible Hyper-Automaton (XHA) e Animação Bidimensional para World Wide Web (AGA). Para resolvê-las, propõe uma solução em cinco fases. A primeira constitui-se numa investigação conceitual sobre unificação de ambientes hipermídia com animações por computador, da qual conclui-se que as hiperanimações são uma resposta adequada ao contexto. Em seguida, um autômato finito não-determinístico, reflexivo, com saídas associadas às transições, denominado Astrha/M, é especializado para modelar, formalmente, estruturas hiper-animadas. Na terceira fase, uma linguagem de quarta geração denominada Astrha/L é proposta com a finalidade de proporcionar semântica à ambientes hiper-animados. Construída a partir da metalinguagem XML, é composta de quatro dialetos: (1) Mealy, que traduz o modelo Astrha/M; (2) Environment, que oferece opções de configuração e documentação; (3) Hyper, linguagem hipermídia, de sintaxe simples, que oferece hiperligações estendidas; (4) Style, especificação de estilos em cascata e de caracteres especiais. A quarta fase é a modelagem e construção do protótipo, denominado Astrha/E, através das linguagens UML e Java, respectivamente, com uso de tecnologias de software livre, resultando em um applet interativo, dinâmico, multimídia, que oferece características e propriedades de uma hiper-animação, traduzindo não-determinismos em escolhas pseudo-aleatórias e reflexividades em inoperabilidades aparentes. Por fim, a quinta fase trata de estudos de caso aplicados em educação a distância, em diversas áreas, de onde se conclui sua validade como conceito, modelo e ferramenta para programas educacionais que utilizam a Internet como meio de auxílio ao aprendizado.