Academia.eduAcademia.edu

Embedded Java

description63 papers
group1 follower
lightbulbAbout this topic
Embedded Java refers to the use of the Java programming language and its associated technologies in embedded systems, which are specialized computing devices designed to perform dedicated functions within larger systems. It enables developers to create portable, efficient applications that can run on resource-constrained hardware.
lightbulbAbout this topic
Embedded Java refers to the use of the Java programming language and its associated technologies in embedded systems, which are specialized computing devices designed to perform dedicated functions within larger systems. It enables developers to create portable, efficient applications that can run on resource-constrained hardware.

Key research themes

1. How does the performance and optimization of the JVM interpreter affect embedded Java execution efficiency?

This research area concentrates on understanding and improving the execution efficiency of Java bytecode on embedded systems by analyzing the performance bottlenecks within the Java Virtual Machine (JVM) interpreters. It is critical because embedded Java environments often have limited hardware resources and require optimal runtime performance for real-time and embedded applications. By exploring the effects of different JVM builds, compiler toolchains, and CPU interactions, researchers aim to reduce overheads and enhance interpreter performance, ultimately improving responsiveness and energy efficiency in embedded contexts.

Key finding: This study evaluated the impact of different GNU GCC compiler versions on JVM interpreter performance across multiple OpenJDK releases using the Renaissance Benchmark Suite. It found statistically significant performance... Read more
Key finding: By employing a multifaceted profiling methodology that combines high-level object metrics with low-level microarchitectural counters within MaxineVM, this paper characterized memory behaviors of Java benchmarks... Read more
Key finding: This research demonstrated that reorganizing Java objects during garbage collection using Breadth First (BF), Depth First (DF), and optimized ordering schemes can yield 3-16% improvements in execution time and reduce cache... Read more

2. What are the design and implementation paradigms enabling effective embedded Java development for real-time and resource-constrained systems?

This theme explores specialized software engineering methodologies, architectural frameworks, and programming language extensions that support embedded Java development in real-time and resource-limited environments. The objective is to understand how object-oriented paradigms, component-oriented designs, and real-time Java extensions can be harnessed for embedded system constraints such as timely execution, memory footprint, and system safety. These paradigms enable maintainable, reusable, and modular embedded Java applications suitable for critical systems including manufacturing and robotics.

Key finding: The paper advocates embedding software engineering principles and abstraction methods tailored to embedded systems characterized by constraints on memory, power, and timing. It underscores the growing predominance of software... Read more
Key finding: This study presents a Java PLC architecture integrating Petri Nets and Sequential Function Charts with real-time Java, enabling concurrent execution and control of manufacturing processes. It introduces a component-oriented... Read more
Key finding: The paper introduces DECCA, a Java API and methodology for developing synchronized, concurrent component-based systems with formal verification capabilities. It enables high-level behavioral modeling using Java’s OOP features... Read more

3. How do language-level features and interoperability influence the adaptability and security of embedded Java systems?

This theme investigates the adaptation of new Java language constructs (e.g., generics, lambda expressions), cross-language interoperability mechanisms, and security enforcement models to embedded Java environments. It includes the practical implications of integrating functional programming paradigms, enabling runtime interaction with heterogeneous hardware, and protecting mobile code and bytecode from attacks, which are essential concerns in embedded systems where resource constraints and security risks coexist.

Key finding: This paper proposes an approach to Java generics inspired by C++ templates to reduce runtime overhead by generating separate typed Java source code through instantiation, improving performance. The technique mitigates type... Read more
Key finding: Through empirical analysis of the top 50 Java APIs, this study finds that only a minority have adopted functional interfaces and lambda support, revealing a cautious ecosystem transition. The paper discusses barriers and... Read more
Key finding: This work analyzes challenges in achieving cross-language interoperability of heterogeneous hardware-accelerated code generated via TornadoVM on the JVM, proposing modifications to support 'code-interoperability-mode.' The... Read more
Key finding: This paper presents an access control framework integrating the Ponder policy language with Java security to enforce flexible, dynamic permissions on mobile Java code. The framework enables separation of policy specification... Read more
Key finding: The authors propose a system employing a thin hypervisor-based trust zone to execute encrypted Java bytecode securely, addressing the key management challenges posed by JVM interpretation. By integrating a protected... Read more

All papers in Embedded Java

This paper shows that it is possible to dramatically reduce the memory consumption of classes loaded in an embedded Java virtual machine without reducing its functionalities. We describe how to pack the constant pool by deleting entries... more
This article shows how it is possible to place a great part of a Java system in read-only memory in order to fit with the requirements of tiny devices. Java systems for such devices are commonly deployed off-board, then embedded on the... more
With the diffusion of Java in advanced multimedia mobile devices, there is a growing need for speeding up the execution of Java Bytecode beyond the limits of traditional interpreters and just-in-time compilers. In this area, Java... more
This paper describes a radical approach to aggressively optimize an embedded Java virtual machine interpretation in a portable way. We call this technique Semantically Enriched Code (sEc). The sEc technique can improve the speed of a JVM... more
The production of embedded systems is continuously increasing, but developing reusable software for such systems is notoriously difficult, in particular in the case of low-end embedded systems based on 16-bit or 8-bit processors. We have... more
Je tiensà remercier sincèrement ma directrice et mon co-directeur de recherche, les docteurs Nadia Tawbi et Mourad Debbabi pour leur encadrement, leur encouragement et leur grande compréhension. Leur conseils prodigués, leur appui... more
In systems that support garbage collection, a tension exists between collecting garbage too frequently and not collecting it frequently enough. Garbage collection that occurs too frequently may introduce unnecessary overheads at the risk... more
In systems that support garbage collection, a tension exists between collecting garbage too frequently and not collecting it frequently enough. Garbage collection that occurs too frequently may introduce unnecessary overheads at the risk... more
In systems that support garbage collection, a tension exists between collecting garbage too frequently and not collecting it frequently enough. Garbage collection that occurs too frequently may introduce unnecessary overheads at the risk... more
Java is gaining popularity in software development. It is widely used in network computing and embedded systems because it offers several key advantages such as safe programming, code verification and checking, automatic memory... more
Java is widely applied from the small embedded devices to enterprise systems nowadays due to its object-oriented features and corresponding advantages of security, robustness, and platform independence. Java programs are compiled into... more
− − − − This article describes the current work to extend the Java processor Java Silicon Machine (JSM) for usage in embedded systems. The JSM is a JavaCard processor supporting all JavaCard bytecodes. The JSM is a fully synthesizable... more
Simulation tools help creating a low cost and efficient development of embedded system. SID is an open source simulator software that consists library of components for modelling hardware and software components. A component can be... more
Problem in Java processor is small supported memory, and the device that using Java processor need to refresh (restart) memory manually in the ending of one thread. Automatic memory management of garbage collection greatly simplifies the... more
A distributed Java Virtual Machine (DJVM) spanning multiple cluster nodes can provide a true parallel execution environment for multi-threaded Java applications. Most existing DJVMs suffer from the slow Java execution in interpretive mode... more
It's the year 2015. The number of processors in a commercial microprocessor chip has been increasing by a factor of two every year, so your desktop has at least a thousand processors. Furthermore, your desktop is connected to millions of... more
Problem in Java processor is small supported memory, and the device that using Java processor need to refresh (restart) memory manually in the ending of one thread. Automatic memory management of garbage collection greatly simplifies the... more
by A Java
The Java programming language has potentially significant advantages for wireless sensor nodes but there is currently no feature-rich, open source virtual machine available. In this paper we present Darjeeling, a system comprising offline... more
Object oriented languages, in particular Java, use a frequent dynamic dispatch mechanism to search for the definition of an invoked method. A method could be defined in more than one class. The search for the appropriate method definition... more
This paper presents a new selective dynamic compilation technique targeting ARM 16/32-bit embedded system processors. This compiler is built inside the J2ME/CLDC
A new acceleration technology for Java embedded virtual machines is presented in this paper. Based on the selective dynamic compilation technique, this technology addresses the J2ME/CLDC (Java 2 Micro Edition for Connected Limited Device... more
Java is widely applied from the small embedded devices to enterprise systems nowadays due to its object-oriented features and corresponding advantages of security, robustness, and platform independence. Java programs are compiled into... more
Certainly, in hard real-time systems, it is reasonable to argue that no hard real-time threads should behave in an unpredictable way and that schedulability should be guaranteed before execution. In order to guarantee the timing... more
Performing worst-case execution time (WCET) analysis on the highly portable real-time Java architectures without resulting in the under utilisation of the overall system has several challenges. Current WCET approaches are tied to either a... more
A distributed Java Virtual Machine (DJVM) spanning multiple cluster nodes can provide a true parallel execution environment for multi-threaded Java applications. Most existing DJVMs suffer from the slow Java execution in interpretive mode... more
Designing a robot controller that can optimally manage limited resources in a deterministic, real-time manner can be challenging. Behavior-based architectures, which split autonomy into levels, are very popular but neither have realtime... more
Java für Embedded Systems n PC-basiertes System miniJava Ø 80386 und höher Ø Basis: JVM Kaffe von Transvirtual n mikrocontroller-basiert Ø Testplattform für Smartcard und Prozessor JavaCard-Umgebung Ø zu Testzwecken compilierbar mit jedem... more
This paper describes JuNI++, a C++ native interface for interpreted Java Virtual Machines. While JuNI++ was initially designed in order to integrate the RTSJ implementation jRate with Juice, a virtual machine for small footprint... more
Download research papers for free!