Spelling suggestions: "subject:"java."" "subject:"lava.""
371 |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas / Nprof : a monitoring tool for distributed applicationsBrugnara, Telmo January 2006 (has links)
A crescente complexidade dos programas de computador e o crescimento da carga de trabalho a qual eles são submetidos têm sido tendências recorrentes nos sistemas computacionais, em especial para sistemas distribuídos como aplicações web e sistemas corporativos. O aumento da carga de trabalho gera uma demanda por sistemas que façam melhor uso dos recursos computacionais disponíveis, enquanto a maior complexidade gera uma demanda por sistemas que se preocupem em minimizar o número de erros. Portanto, podem-se identificar dois objetivos a serem perseguidos pelos desenvolvedores de sistemas de software: melhorar o desempenho e aumentar a confiabilidade dos sistemas. A fim de alcançar os objetivos expostos, são desenvolvidos sistemas de monitoramento para automatizar a coleta e análise de dados sobre os sistemas computacionais alvo. O presente trabalho visa contribuir nos seguintes aspectos: na identificação dos dados relevantes para o monitoramento de aplicações distribuídas desenvolvidas para a plataforma Java; e na criação de uma ferramenta de monitoramento de aplicações distribuídas, explorando os novos recursos do JDK 1.5, bem como os recursos já disponíveis em Java, como carga dinâmica de classes e transformação de bytecodes A fim de avaliar a ferramenta proposta foram elaborados três estudos de caso: um utiliza uma aplicação existente sem necessidade de sua adaptação; outro avalia a sobrecarga da ferramenta frente a diferentes parâmetros; e o terceiro avalia o monitoramento de um sistema distribuído. Entende-se que a ferramenta atinge o objetivo de monitoramento de aplicações distribuídas, por meio da incorporação de técnicas e APIs distintas, ao permitir: o monitoramento de uma aplicação distribuída por meio do monitoramento de diversos nodos de tal aplicação concomitantemente; e a visualização das informações coletadas de forma online. Adicionalmente, a coleta simultânea de dados de diferentes nodos de uma aplicação distribuída pode ser útil para a descoberta de relações entre eventos que ocorrem durante a execução de tal aplicação. / The growing complexity of software and the increasing workload to which systems have been submitted are known trends in the computing system field, especially when distributed and web systems are considered. The increasing workload generates demand for systems that can make a better use of computing resources, while the increment of system complexity demands specific actions to prevent design faults. Therefore, software engineers have two main objectives to be concerned with: optimization and dependability. In order to accomplish these objectives, monitoring systems have been proposed to gather data from running systems so that their behavior can be analyzed. The present dissertation intends to contribute in the following domains: identifying relevant metrics for monitoring distributed Java applications; and developing a tool to monitor and profile distributed applications, using the new resources available in JDK 1 .5 as well as some already known techniques like dynamic classloading and bytecode instrumentation. In order to evaluate the proposed tool, three test cases have been developed: one with a well known application running without modification; another for evaluating the tools’ overhead in different scenarios; and a third one to evaluate a distributed application been monitored. We understand that the proposed tool is successful in monitoring distributed applications by the use of distinct APIs and techniques because: Nprof can monitor a distributed application by monitoring different nodes of the application simultaneously; and Nprof allows the online visualization of the collected data. Also, simultaneous collection of data from different nodes of a distributed application can be useful for discovering relations among events that occur during the execution of the application.
|
372 |
Javarray : uma arquitetura reconfigurável para o aumento de performance e economia de energia de aplicações embarcadas baseadas em Java / Javarray : a reconfigurable architecture for performance speedup and energy saving of embedded Java applicationsOtero, João Cláudio Soares January 2006 (has links)
A popularidade da linguagem Java no mercado de sistemas embarcados está aumentando como uma alternativa à necessidade de compatibilidade de software e ao crescimento da complexidade das aplicações, notadamente em eletrônica de consumo e automação industrial, mercado que também está se expandindo. Apesar de um melhor gerenciamento da complexidade do software permitido pela linguagem Java, as restrições de necessidade de economia de energia, baixo consumo de potência e necessidade de desempenho impostas aos sistemas embarcados, com especial ênfase aos sistemas portáteis, são potencializadas. Entretanto, as características da Java Virtual Machine, baseada em uma máquina de pilha, abrem possibilidades de otimização do processamento de aplicações embarcadas inerentes às máquinas de pilha e ainda não devidamente exploradas pelos processadores Java atuais. Com a aplicação de tradução binária ao código Java e utilização de técnicas de reconfiguração, consegue-se obter aumento de performance com simultânea economia de energia, permitindo-se uma melhor adequação da execução das aplicações Java para o domínio dos sistemas embarcados. Este trabalho apresenta uma unidade reconfigurável de granularidade grossa, o Javarray, a ser acoplada a um processador de execução Java nativa, destinada à execução otimizada dos blocos básicos mais representativos das aplicações embarcadas Java. Dessa forma, conseguimos explorar ILP de uma maneira simples e com a reconfiguração de poucos blocos básicos obtivemos uma redução no número de instruções executadas em até 42%, aumentamos o desempenho das aplicações em até 2,6 vezes e obtivemos economias de energia de até 64%, ao mesmo tempo em que mantivemos compatibilidade de software com as aplicações Java, e em muitos casos obtivemos simultânea redução na potência consumida. Esses dados referem-se a um conjunto de 3 aplicações específicas utilizadas por nosso grupo. A topologia básica do Javarray é desenvolvida a partir da análise de profiles de aplicações embarcadas, a partir da qual algumas variações organizacionais são exploradas. Em especial, desenvolveu-se uma arquitetura seqüencial, que habilita a utilização de técnicas de pipeline no Javarray, permitindo a exploração de paralelismo de mais alto nível. Como produto secundário dos esforços pela busca de economia de energia através do aumento de desempenho – foco deste trabalho – apresenta-se então os primeiros estudos acerca da possibilidade de execução de processamento do tipo stream em um pipeline de instruções reconfiguráveis no Javarray, aumentando dessa forma o IPC e reduzindo o impacto do consumo estático de energia. / Althought with a better management of the softwares’ complexity, allowed by the Java language, the restrictions of energy saving, low power consumption and the need of performance imposed to the embedded systems, with special emphasis to the mobile systems, are potentialized The popularity of the Java language in the embedded systems market is increasing as an alternative to the software compatibility necessity and the applications’ complexity growth, notably at consumption electronic and industrial automation, market which is also expanding. However, the characteristics of Java Virtual Machine, based upon a stack machine, open new possibilities to the optimization of embedded systems processing inherent to the stack machines and not yet properly explored by the actual Java processors. With the exploitation of binary translation to the Java code and the use of reconfiguration techniques, we can improve the performance with simultaneous energy savings, achieving achieving a better fit of Java applications execution to the embedded systems domain. This work presents a coarse grain reconfigurable unit, the Javarray, to be coupled to a native execution Java microcontroller, designed to the optimized execution of the embedded systems applications more representative basic blocks. With this, we can explore ILP in a simple way and reduce the number of the executed instructions up to 42%, improving the performance up to 2.6 times and saving energy up to 64%, at the same time in which allowing for Java compatibility and, in many cases, still having less power consumption. This data refer to a set of 3 specific applications used by our research group. The basic Javarray topology is developed from the analysis of the embedded application profiles, form which some organizational variations are explored. In special, it was designed a sequential architecture, which enables the use of pipeline techniques on the Javarray, allowing for the exploitation of coarser grains parallelism. As a secondary product of the search for the energy savings through the performance speedup – focus of this work – it is presented the first studies about the possibility of stream-based processing execution in a pipeline of reconfigurable instructions on the Javarray, this way increasing the IPC and reducing the static energy consumption impact.
|
373 |
MD-JPA : um perfil UML para modelagem do mapeamento objeto-relacional com JPA em uma abordagem dirigida por modelos / MD-JPA:a UML profile for object relational mapping with JPA in a model driven approachTorres, Alexandre January 2009 (has links)
A abordagem de desenvolvimento dirigido por modelos (DDM) propõe que modelos (e transformações entre modelos) assumam o papel principal no desenvolvimento de sistemas. Entretanto, não há uma notação consensual para modelagem de persistência baseada em arcabouços de mapeamento objeto-relacional: enquanto a UML não possui recursos específicos para a modelagem de persistência, o modelo entidade-relacionamento não expressa os conceitos dinâmicos existentes na UML. Este trabalho propõe o perfil UML MD-JPA (Model Driven JPA) para a modelagem de persistência baseada na já difundida API de persistência Java (JPA), buscando a modelagem dos elementos persistentes e transientes de forma mais coerente e integrada. São especificadas as principais características do perfil MD-JPA, assim como a maneira pela qual modelos que adotam este perfil podem ser transformados em implementação Java, através de transformações de modelos propostas em uma abordagem DDM. Por fim, uma ferramenta de código livre foi desenvolvida para disponibilizar para comunidade os resultados deste trabalho. / The model driven development (MDD) approach proposes that models (and modelto- model transformations) play the main role on system development. However, there is not a consensual notation to model persistence based upon object relational mapping frameworks: while UML lacks specific resources for persistence modeling, the entityrelationship model does not make reference to the dynamic concepts existing in UML. This work proposes MD-JPA, a UML profile for persistence modeling based on the well-known Java Persistence API (JPA), pursuing the modeling of transient and persistent elements in a more coherent and integrated way. This work describes the main characteristics of MD-JPA as well as the way that models that adopt such profile can them be used to generate a Java implementation by the application of the proposed model transformations on a MDD approach. Finally, an open source tool was developed to make the results of this work available to the community.
|
374 |
Injeção de falhas de comunicação em aplicações multiprotocolo / Communication fault injection in multi-protocol applicationsMenegotto, Cristina Ciprandi January 2009 (has links)
Aplicações de rede com altos requisitos de dependabilidade devem ser testadas cuidadosamente em condições de falhas de comunicação para aumentar a confiança no seu comportamento apropriado na ocorrência de falhas. Injeção de falhas de comunicação é a técnica mais adequada para o teste dos mecanismos de tolerância a falhas destas aplicações em presença de falhas de comunicação. Ela é útil tanto para auxiliar na remoção de falhas como na previsão de falhas. Dentre as aplicações de rede, algumas são baseadas em mais de um protocolo, como UDP, TCP e RMI. Elas são denominadas multiprotocolo no contexto desse trabalho, que foca naquelas escritas em Java e baseadas em protocolos que estão acima do nível de rede na arquitetura TCP/IP. Um injetor de falhas de comunicação adequado, que trate todos os protocolos utilizados, é necessário para o seu teste. Caso a emulação de uma falha que afete a troca de mensagens não leve em consideração todos os protocolos simultaneamente utilizados, o comportamento emulado durante um experimento poderá ser diferente daquele observado na ocorrência de uma falha real, de modo que podem ser obtidos resultados inconsistentes sobre o comportamento da aplicação alvo em presença da falha. Muitos injetores de falhas de comunicação encontrados na literatura não são capazes de testar aplicações Java multiprotocolo. Outros possuem potencial para o teste dessas aplicações, mas impõem grandes dificuldades aos engenheiros de testes. Por exemplo, contrariamente ao enfoque deste trabalho, algumas ferramentas são voltadas à injeção de falhas de comunicação para o teste de protocolos de comunicação, e não de aplicações. Tal orientação ao teste de protocolos costuma levar a grandes dificuldades no teste de caixa branca de aplicações. Entre outros exemplos de dificuldades proporcionadas por ferramentas encontradas na literatura estão a incapacidade de testar diretamente aplicações Java e a limitação quanto aos tipos de falhas que permitem emular. A análise de tais ferramentas motiva o desenvolvimento de uma solução voltada especificamente ao teste de aplicações multiprotocolo desenvolvidas em Java. Este trabalho apresenta uma solução para injeção de falhas de comunicação em aplicações Java multiprotocolo. A solução opera no nível da JVM, interceptando mensagens de protocolos, e, em alguns casos, opera também no nível do sistema operacional, usando regras de firewall para emulação de alguns tipos de falhas que não podem ser emulados somente no nível da JVM. A abordagem é útil para testes de caixa branca e preta e possui características importantes como a preservação do código fonte da aplicação alvo. A viabilidade da solução proposta é mostrada por meio do desenvolvimento de Comform, um protótipo para injeção de falhas de comunicação em aplicações Java multiprotocolo que atualmente pode ser aplicado para testar aplicações Java baseadas em qualquer combinação dos protocolos UDP, TCP e RMI (incluindo as baseadas em um único protocolo). / Networked applications with high dependability requirements must be carefully tested under communication faults to enhance confidence in their proper behavior. Communication fault injection is the most suitable technique for testing the fault tolerance mechanisms of these applications under communication faults. The technique is useful both for helping in fault removal and for fault forecasting. Some networked applications are based on more than one protocol, such as UDP, TCP and RMI. They are called multi-protocol in the context of this work, that targets on those written in Java and based on protocols above Internet layer in TCP/IP architecture. A suitable communication fault injector, that properly handles all used protocols, is required for their test. If the emulation of a fault that affects message exchanging does not take into account all simultaneously used protocols, the behavior emulated in an experiment can be different from that observed under real fault occurrence. Therefore, inconsistent results about the target application’s behavior under faults can be obtained from the experiments. Many communication fault injectors found in literature are not capable of testing multi-protocol Java applications. Others can potentially test these applications, but they impose several drawbacks for test engineers. For instance, contrarily to the focus of this work, some tools aim to communication protocol testing and not to application testing. This orientation to protocol testing usually leads to great difficulties in white box testing of applications. Other examples of difficulties related to using tools found in literature include inability to directly test Java applications and limitations in respect to types of emulated faults. The analysis of the fault injectors found in literature motivates the development of a solution specifically aimed at testing multi-protocol applications written in Java. This work presents a solution for communication fault injection in multi-protocol Java applications. The solution works at JVM level, intercepting protocol messages, and, in some cases, it also operates at the operating system level, using firewall rules for the emulation of faults that could not be emulated at JVM level. The approach is useful for both white box and black box testing and has advantages such as preserving the target application’s source code. The viability of the proposed solution is shown by the development of a prototype tool called Comform, that is aimed at multi-protocol Java application testing. Comform can be applied to test Java applications based on any combination of UDP, TCP, and RMI (including those based on a single protocol).
|
375 |
SUPORTE AO CONTROLE E ALOCAÇÃO DINÂMICA DE COMPUTADORES EM JAVA / Support to Control and Dynamic Allocation of Computers in JavaCera, Marcia Cristina 01 April 2005 (has links)
Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / This thesis presents the project and an implementation of a distributed computer allocation system, based on computer idleness. The system, called Cadeo (control and dynamic allocation of idle workstations) aims to simplify the creation of parallel applications that can be executed on distributed systems. It supports a simple programming model, similar to the model found in parallel applications that run on shared memory computers. The Cadeo s execution platform is called dynamic cluster, which is a cluster composed by momentarily avaliable computers, or idle computers. Parallel execution is obtained by concurrent task execution, implemented as asynchronous remote method invocations in Java. Mapping application onto resources happens in two levels, first, associating applications to dynamic clusters, and, second, associating application tasks to computers of such clusters. Cadeo manages these associations offering both transparent task location and cluster dynamism, thus simplifying application development. The implementation was done with the purpose of having a basic and functional structure, which should be easily adapted in the future. This version was not focused on incorporating the best known algorithms to associate applications with clusters, or tasks with computers. Nevertheless, the implemented version strictly follows the proposed model, being now possible to write applications using the transparency and assynchrony accordingly. It was possible to demonstrate that, with the version implemented, the system overhead was very low. / Esta dissertação apresenta a concepção e uma implementação de um sistema de alocação de computadores em um sistema distribuído baseado na ociosidade dos mesmos. Este sistema, chamado de Cadeo (Controle e alocação dinâmica de estações ociosas), tem a finalidade de simplificar
a criação de aplicações paralelas que possam ser executadas em sistemas distribuídos. Ele oferece um modelo de programação simples, semelhante ao modelo de aplicações paralelas que executam em computadores com memória compartilhada. A plataforma de execução do Cadeo é chamada de aglomerado dinâmico, que é um aglomerado
(cluster) composto por computadores momentaneamente disponíveis, ou ociosos. A execução paralela se dá pelo lançamento concorrente de tarefas, implementadas por invocações assíncronas de métodos remotos em linguagem Java. O mapeamento de aplicações aos recursos
reais se dá em dois níveis: no primeiro, associa-se aplicações a aglomerados dinâmicos, no segundo, associa-se tarefas de aplicações a computadores destes aglomerados. O Cadeo gerencia estas associações oferecendo transparência de localização de tarefas e da dinamicidade dos aglomerados, simplificando assim o desenvolvimento de aplicações.
A implementação foi feita com o objetivo de obter uma estrutura básica e funcional, capaz de suportar adaptações futuras. Não houve preocupação em incorporar os melhores algoritmos conhecidos para implementar as associações entre aplicações e aglomerados, ou tarefas a computadores. Entretanto, a versão implementada segue estritamente o modelo projetado, já permitindo escrever aplicações que tiram proveito da transparência e do assincronismo de lançamento segundo este modelo. Com a versão implementada, foi possível comprovar que a sobrecarga gerada pela utilização do sistema é muito pequena.
|
376 |
Implementação de multitarefa sobre arquitetura Java embarcada FemtoJava / Multitask implementation into femtojava embedded architectureRosa Junior, Leomar Soares da January 2004 (has links)
Cada vez mais equipamentos eletrônicos digitais têm sido fabricados utilizando um sistema operacional embarcado. Por razões de custo, estes sistemas operacionais são implementados sobre um hardware com os requisitos mínimos para atender as necessidades da aplicação. Este trabalho apresenta um estudo sobre a viabilidade de implementação de suporte a multitarefa sobre a arquitetura FemtoJava, um microcontrolador monotarefa dedicado a sistemas embarcados. Para tanto, o suporte de hardware necessário é adicionado à arquitetura. Também são implementados dois escalonadores de tarefas diretamente em bytecodes Java, visando à otimização de área e o compromisso com desempenho e consumo de energia. Modificações no ambiente de desenvolvimento e uma ferramenta de relocação de endereços são propostas, objetivando a utilização dos escalonadores de tarefas implementados junto ao fluxo de desenvolvimento existente. Por fim, uma análise é realizada sobre o impacto que a capacidade de multitarefa produz no sistema em termos de desempenho, consumo de área e energia. / Most digital electronic equipments are produced using an embedded operating system. Due to economic reasons, these operating systems are implemented on hardware with minimal requirements to support the application needs. This work will present a viability study to implement multitask support on the FemtoJava architecture, a monotask microcontroller dedicated to embedded applications. The support to multitask involves the addition of specific hardware mechanisms to the architecture. Two different scheduling policies are then directly implemented using Java bytecodes, aiming area optimization as well as a good performance/energy-consumption trade-off. Some modifications in the development environment and a code relocation tool were introduced, in order to enable the use of the schedulers in the existing design tool flow. Finally, an analysis is performed to evaluate the impact that the multitask support produces in the system with respect to the final performance, area and energy consumption.
|
377 |
Uso da técnica VLIW para aumento de performance e redução do consumo de potência em sistemas embarcados baseados em Java / Using the VLIW technique to increase performance and to reduce power comsumption in embedded systems based on JavaBeck Filho, Antonio Carlos Schneider January 2004 (has links)
A contribuição deste trabalho foi orientada principalmente ao desenvolvimento de alternativas de hardware para a execução nativa de bytecodes Java em sistemas embarcados que naturalmente possuem restrições quanto à potência consumida, ao desempenho e à área ocupada. Primeiramente, o desenvolvimento do Femtojava Low- Power demonstra que a utilização de um pipeline e de um banco de registradores interno em arquiteturas de pilha resultam em uma redução significativa no consumo de potência. Após, a técnica de folding, que basicamente transforma várias operações de pilha em uma operação tipo RISC, é avaliada. A análise de uma segunda solução arquitetural, baseada em VLIW (Very Long Instruction Word), também traz resultados satisfatórios na redução do consumo de potência, sendo que a paralelização do código, feita por um analisador desenvolvido, é facilitada devido à utilização de uma arquitetura de pilha. O desempenho e a potência consumida de todas as arquiteturas propostas neste trabalho foram validadas utilizando-se o simulador CACO-PS, também desenvolvido no contexto desta dissertação. Os estudos de caso adotados para a validação das alternativas arquiteturais compreenderam algoritmos matemáticos, de ordenação, busca e processamento de sinais, bastante utilizados no domínio de sistemas embarcados. Resultados promissores principalmente em termos de energia consumida são alcançados, assim como na disponibilização de diferentes arquiteturas para a execução nativa de Java, principal proposta deste trabalho. / The main contribution of this work was the development of hardware alternatives for native execution of Java bytecodes for embedded systems that have power, performance and area constraints. Firstly, the development of the Femtojava Low- Power shows that the use of a pipeline and an internal register bank in stack architectures brings a significant reduction in the power consumption. After that, the folding technique, that basically changes a set of stack operations into a simple RISC one, is evaluated. Then, the analysis of a second architectural solution, based on VLIW (Very Long Instruction Word), demonstrates also good results concerning power consumption. Moreover, it is shown that the parallelization of the code is facilitated due to the specific stack architecture. The power consumption and performance of all architectures here proposed were evaluated using the CACO-PS simulator, which was also developed in this work. The case studies adopted for the validation of the architectures were mathematic, sort, search and DSP algorithms, widely used in the embedded system domain. Promising results mainly in energy consumption were achieved, as well as the disponibilization of different architectures for native execution of Java, the main objective of this work.
|
378 |
Nprof : uma ferramenta para monitoramento de aplicações distribuídas / Nprof : a monitoring tool for distributed applicationsBrugnara, Telmo January 2006 (has links)
A crescente complexidade dos programas de computador e o crescimento da carga de trabalho a qual eles são submetidos têm sido tendências recorrentes nos sistemas computacionais, em especial para sistemas distribuídos como aplicações web e sistemas corporativos. O aumento da carga de trabalho gera uma demanda por sistemas que façam melhor uso dos recursos computacionais disponíveis, enquanto a maior complexidade gera uma demanda por sistemas que se preocupem em minimizar o número de erros. Portanto, podem-se identificar dois objetivos a serem perseguidos pelos desenvolvedores de sistemas de software: melhorar o desempenho e aumentar a confiabilidade dos sistemas. A fim de alcançar os objetivos expostos, são desenvolvidos sistemas de monitoramento para automatizar a coleta e análise de dados sobre os sistemas computacionais alvo. O presente trabalho visa contribuir nos seguintes aspectos: na identificação dos dados relevantes para o monitoramento de aplicações distribuídas desenvolvidas para a plataforma Java; e na criação de uma ferramenta de monitoramento de aplicações distribuídas, explorando os novos recursos do JDK 1.5, bem como os recursos já disponíveis em Java, como carga dinâmica de classes e transformação de bytecodes A fim de avaliar a ferramenta proposta foram elaborados três estudos de caso: um utiliza uma aplicação existente sem necessidade de sua adaptação; outro avalia a sobrecarga da ferramenta frente a diferentes parâmetros; e o terceiro avalia o monitoramento de um sistema distribuído. Entende-se que a ferramenta atinge o objetivo de monitoramento de aplicações distribuídas, por meio da incorporação de técnicas e APIs distintas, ao permitir: o monitoramento de uma aplicação distribuída por meio do monitoramento de diversos nodos de tal aplicação concomitantemente; e a visualização das informações coletadas de forma online. Adicionalmente, a coleta simultânea de dados de diferentes nodos de uma aplicação distribuída pode ser útil para a descoberta de relações entre eventos que ocorrem durante a execução de tal aplicação. / The growing complexity of software and the increasing workload to which systems have been submitted are known trends in the computing system field, especially when distributed and web systems are considered. The increasing workload generates demand for systems that can make a better use of computing resources, while the increment of system complexity demands specific actions to prevent design faults. Therefore, software engineers have two main objectives to be concerned with: optimization and dependability. In order to accomplish these objectives, monitoring systems have been proposed to gather data from running systems so that their behavior can be analyzed. The present dissertation intends to contribute in the following domains: identifying relevant metrics for monitoring distributed Java applications; and developing a tool to monitor and profile distributed applications, using the new resources available in JDK 1 .5 as well as some already known techniques like dynamic classloading and bytecode instrumentation. In order to evaluate the proposed tool, three test cases have been developed: one with a well known application running without modification; another for evaluating the tools’ overhead in different scenarios; and a third one to evaluate a distributed application been monitored. We understand that the proposed tool is successful in monitoring distributed applications by the use of distinct APIs and techniques because: Nprof can monitor a distributed application by monitoring different nodes of the application simultaneously; and Nprof allows the online visualization of the collected data. Also, simultaneous collection of data from different nodes of a distributed application can be useful for discovering relations among events that occur during the execution of the application.
|
379 |
Javarray : uma arquitetura reconfigurável para o aumento de performance e economia de energia de aplicações embarcadas baseadas em Java / Javarray : a reconfigurable architecture for performance speedup and energy saving of embedded Java applicationsOtero, João Cláudio Soares January 2006 (has links)
A popularidade da linguagem Java no mercado de sistemas embarcados está aumentando como uma alternativa à necessidade de compatibilidade de software e ao crescimento da complexidade das aplicações, notadamente em eletrônica de consumo e automação industrial, mercado que também está se expandindo. Apesar de um melhor gerenciamento da complexidade do software permitido pela linguagem Java, as restrições de necessidade de economia de energia, baixo consumo de potência e necessidade de desempenho impostas aos sistemas embarcados, com especial ênfase aos sistemas portáteis, são potencializadas. Entretanto, as características da Java Virtual Machine, baseada em uma máquina de pilha, abrem possibilidades de otimização do processamento de aplicações embarcadas inerentes às máquinas de pilha e ainda não devidamente exploradas pelos processadores Java atuais. Com a aplicação de tradução binária ao código Java e utilização de técnicas de reconfiguração, consegue-se obter aumento de performance com simultânea economia de energia, permitindo-se uma melhor adequação da execução das aplicações Java para o domínio dos sistemas embarcados. Este trabalho apresenta uma unidade reconfigurável de granularidade grossa, o Javarray, a ser acoplada a um processador de execução Java nativa, destinada à execução otimizada dos blocos básicos mais representativos das aplicações embarcadas Java. Dessa forma, conseguimos explorar ILP de uma maneira simples e com a reconfiguração de poucos blocos básicos obtivemos uma redução no número de instruções executadas em até 42%, aumentamos o desempenho das aplicações em até 2,6 vezes e obtivemos economias de energia de até 64%, ao mesmo tempo em que mantivemos compatibilidade de software com as aplicações Java, e em muitos casos obtivemos simultânea redução na potência consumida. Esses dados referem-se a um conjunto de 3 aplicações específicas utilizadas por nosso grupo. A topologia básica do Javarray é desenvolvida a partir da análise de profiles de aplicações embarcadas, a partir da qual algumas variações organizacionais são exploradas. Em especial, desenvolveu-se uma arquitetura seqüencial, que habilita a utilização de técnicas de pipeline no Javarray, permitindo a exploração de paralelismo de mais alto nível. Como produto secundário dos esforços pela busca de economia de energia através do aumento de desempenho – foco deste trabalho – apresenta-se então os primeiros estudos acerca da possibilidade de execução de processamento do tipo stream em um pipeline de instruções reconfiguráveis no Javarray, aumentando dessa forma o IPC e reduzindo o impacto do consumo estático de energia. / Althought with a better management of the softwares’ complexity, allowed by the Java language, the restrictions of energy saving, low power consumption and the need of performance imposed to the embedded systems, with special emphasis to the mobile systems, are potentialized The popularity of the Java language in the embedded systems market is increasing as an alternative to the software compatibility necessity and the applications’ complexity growth, notably at consumption electronic and industrial automation, market which is also expanding. However, the characteristics of Java Virtual Machine, based upon a stack machine, open new possibilities to the optimization of embedded systems processing inherent to the stack machines and not yet properly explored by the actual Java processors. With the exploitation of binary translation to the Java code and the use of reconfiguration techniques, we can improve the performance with simultaneous energy savings, achieving achieving a better fit of Java applications execution to the embedded systems domain. This work presents a coarse grain reconfigurable unit, the Javarray, to be coupled to a native execution Java microcontroller, designed to the optimized execution of the embedded systems applications more representative basic blocks. With this, we can explore ILP in a simple way and reduce the number of the executed instructions up to 42%, improving the performance up to 2.6 times and saving energy up to 64%, at the same time in which allowing for Java compatibility and, in many cases, still having less power consumption. This data refer to a set of 3 specific applications used by our research group. The basic Javarray topology is developed from the analysis of the embedded application profiles, form which some organizational variations are explored. In special, it was designed a sequential architecture, which enables the use of pipeline techniques on the Javarray, allowing for the exploitation of coarser grains parallelism. As a secondary product of the search for the energy savings through the performance speedup – focus of this work – it is presented the first studies about the possibility of stream-based processing execution in a pipeline of reconfigurable instructions on the Javarray, this way increasing the IPC and reducing the static energy consumption impact.
|
380 |
MD-JPA : um perfil UML para modelagem do mapeamento objeto-relacional com JPA em uma abordagem dirigida por modelos / MD-JPA:a UML profile for object relational mapping with JPA in a model driven approachTorres, Alexandre January 2009 (has links)
A abordagem de desenvolvimento dirigido por modelos (DDM) propõe que modelos (e transformações entre modelos) assumam o papel principal no desenvolvimento de sistemas. Entretanto, não há uma notação consensual para modelagem de persistência baseada em arcabouços de mapeamento objeto-relacional: enquanto a UML não possui recursos específicos para a modelagem de persistência, o modelo entidade-relacionamento não expressa os conceitos dinâmicos existentes na UML. Este trabalho propõe o perfil UML MD-JPA (Model Driven JPA) para a modelagem de persistência baseada na já difundida API de persistência Java (JPA), buscando a modelagem dos elementos persistentes e transientes de forma mais coerente e integrada. São especificadas as principais características do perfil MD-JPA, assim como a maneira pela qual modelos que adotam este perfil podem ser transformados em implementação Java, através de transformações de modelos propostas em uma abordagem DDM. Por fim, uma ferramenta de código livre foi desenvolvida para disponibilizar para comunidade os resultados deste trabalho. / The model driven development (MDD) approach proposes that models (and modelto- model transformations) play the main role on system development. However, there is not a consensual notation to model persistence based upon object relational mapping frameworks: while UML lacks specific resources for persistence modeling, the entityrelationship model does not make reference to the dynamic concepts existing in UML. This work proposes MD-JPA, a UML profile for persistence modeling based on the well-known Java Persistence API (JPA), pursuing the modeling of transient and persistent elements in a more coherent and integrated way. This work describes the main characteristics of MD-JPA as well as the way that models that adopt such profile can them be used to generate a Java implementation by the application of the proposed model transformations on a MDD approach. Finally, an open source tool was developed to make the results of this work available to the community.
|
Page generated in 0.0288 seconds