Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
2008, Lecture Notes in Computer Science
The Real-Time Specification for Java (RTSJ) is becoming a popular choice in the world of real-time and embedded programming. However, RTSJ introduces many non-intuitive rules and restrictions which prevent its wide adoption. Moreover, current state-of-theart frameworks usually fail to alleviate the development process into higher layers of the software development life-cycle. In this paper we extend our philosophy that RTSJ concepts need to be considered at early stages of software development, postulated in our prior work [2], in a framework that provides continuum between the design and implementation process. A component model designed specially for RTSJ serves here as a cornerstone. As the first contribution of this work, we propose a development process where RTSJ concepts are manipulated independently of functional aspects. Second, we mitigate complexities of RTSJ-development by automatically generating execution infrastructure where real-time concerns are transparently managed. We thus allow developers to create systems for variously constrained real-time and embedded environments. Performed benchmarks show that the overhead of the framework is minimal in comparison to manually written object-oriented applications, while providing more extensive functionality. Finally, the framework is designed with the stress on dynamic adaptability of target systems, a property we envisage as a fundamental in an upcoming era of massively developed real-time systems.
2006
The object-oriented paradigm has become popular over the last years due to its characteristics that help managing the complexity in computer systems design. This feature also attracted the embedded systems community, as today's embedded systems need to cope with several complex functionalities as well as timing, power, and area restrictions. Such scenario has promoted the use of the Java language and its real-time extension (RTSJ) for embedded real-time systems design. Nevertheless, the RTSJ was not primarily designed to be used within the embedded domain. This paper presents an approach to optimize the use of the RTSJ for the development of embedded real-time systems. Firstly, it describes how to design real-time embedded applications using an API based on RTSJ. Secondly, it shows how the generated code is optimized to cope with the tight resources available, without interfering in the mandatory timing predictability of the generated system. Finally it discusses an approach to synthesize the applications on top of affordable FPGAs. The approach used to synthesize the embedded real-time system ensures a bounded timing behavior of the object-oriented aspects of the application, like the polymorphism mechanism and read/write access to object's data fields.
2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC), 2008
The Real-Time Specification for Java (RTSJ) [10] is becoming a popular choice in the world of real-time programming. However, the complexities introduced by RTSJ bring the needs for an extensive framework comprising all the aspects of RTSJ development. As the first contribution of this paper, we present a real-time component model directly fitting the needs of RTSJ. Our motivation is to clearly separate real-time and business concerns of applications. We further argue that the RTSJ concerns need to be considered at early stages of architecture design in order to mitigate the complexities of the implementation phase. Therefore, as our second contribution, we propose a design process introducing gradually RTSJ concepts into the architecture. We are thus able to alleviate the development of real-time systems and to tailor them for different real-time conditions. Finally, we demonstrate the feasibility of our solution on an example scenario.
Proceedings Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2000) (Cat. No. PR00607)
Java is a programming language with features not found in traditional languages such as platform independence and dynamic loading. Because of this, Java is extending and beginning to be used in many new environments. In particular, the advantages that Java provides make it a good candidate for distributed, real-time and embedded systems. However, Java presents some problems regarding its use in embedded and real-time environments. In this paper, we examine the state-of-the-art in the development of embedded realtime systems using Java. We analyze the limits that the Java language and its execution environment present to develop real-time and embedded systems, and we present current research in this area aimed at solving these limits.
2006
We present our joint view for efficient development of efficient and dependable ERTS (Embedded Real-Time Systems). This view is based on the three main viewpoints of (1) the software designer, (2) the analysis tools, and (3) the code synthesis tools/run-time environment. Our position is that any approach that is to achieve (i) decreased development effort, (ii) increased software quality, and (iii) efficient resource utilization, needs to take all three viewpoints into consideration. We exemplify how our work with execution-model independent software components fits into this joint view and outline some research directions.
ACM Transactions on Embedded Computing Systems, 2010
2008 11th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC), 2008
The partitioning of applications into hardware and software is an important issue in embedded systems, opening room for high level specifications as well as the exploration of different implementation strategies. This paper presents a software architecture to specify threads in hardware in the context of the Real Time Specification for Java (RTSJ) standard. There is a Java class that encapsulates hardware components, providing an abstraction layer to the application developer. Below this Java class, a wrapper hardware component provides a standard interface between RTSJ-based software components and the hardware that implements the thread behavior. This approach provides a high flexibility in choosing either a hardware or software implementation, allowing to postpone hardware/software partitioning to the very end of system development. The paper includes some quantitative data from an example containing hardware and software threads. While both implementations are compatible with the rest of the application from an interface pointof-view, they lead to very different timing and area results.
Ninth IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'06), 2006
Abstract This paper presents the evaluation of a multithread distributed real-time object-oriented platform. A communication API was developed to increase functionalities of an API that implements the real-time specification for Java standard, extending it to cover embedded distributed applications. Real-time restrictions of the communication are ensured by a time-out mechanism. The API can be adapted to be used with different underlying network and physical mediums. The development focused on restrictive embedded ...
2005
The embedded real-time development community is investigating different approaches in order to provide modularity and reuse features for system design in this area, as well as a more appropriate mapping technique between requirements and implementation. The Java technology is very promising for this community, mainly after the research efforts on its real-time extension RTSJ-real-time specification for Java. However, there are still some critic factors related to the adoption of Java for real-time applications, and some of them deserve special attention. This paper reports a study of some of these decisive factors, such as the choice of the underlying operating system, the use of a middleware (virtual machine) or a native code, and the use of the Java real-time API (RTSJ)
Journal of Computers, 2009
This paper describes work in progress on a tool for component-based design of embedded real-time software. The tool supports graphical modeling of software systems using concurrent reactive objects and components, as well as generation of C code from the model. The resulting application code can then be combined with a lightweight kernel for execution on bare metal.
Journal of Systems and Software, 2014
Please cite this article in press as: Panunzio, M., Vardanega, T., A component-based process with separation of concerns for the development of embedded real-time software systems. J. Syst. Software (2014), http://dx.a b s t r a c t Numerous component models have been proposed in the literature, a testimony of a subject domain rich with technical and scientific challenges, and considerable potential. Unfortunately however, the reported level of adoption has been comparatively low. Where successes were had, they were largely facilitated by the manifest endorsement, where not the mandate, by relevant stakeholders, either internal to the industrial adopter or with authority over the application domain. The work presented in this paper stems from a comprehensive initiative taken by the European Space Agency (ESA) and its industrial suppliers. This initiative also enjoyed significant synergy with interests shown for similar goals by the telecommunications and railways domain, thanks to the interaction between two parallel project frameworks. The ESA effort aimed at favouring the adoption of a software reference architecture across its software supply chain. The center of that strategy revolves around a component model and the software development process that builds on it. This paper presents the rationale, the design and implementation choices made in their conception, as well as the feedback obtained from a number of industrial case studies that assessed them. (M. Panunzio), [email protected] (T. Vardanega).
IEE Proceedings - Software, 2001
Abstract The aim of component-based software engineering is to create applications from reusable, exchangeable and connectable components. However, current component models lack support for important concepts of distributed embedded real-time systems, ...
Electronic Notes in Theoretical Computer Science, 2005
In this paper, we describe a methodology for the design and the development of component-based real-time systems. In our model, a component consists of a set of concurrent real-time threads that communicate by means of synchronous and asynchronous operations. In addition, each component can specify its own local scheduling algorithm. We also discuss the support that must be provided at the operating system level, and present an implementation in the SHaRK operating system.
2011 6th IEEE International Symposium on Industrial and Embedded Systems, 2011
Tool support is instrumental for efficient and correct design of embedded software. In this paper we present ongoing work on an Integrated Development Environment (IDE) for Component-Based Design (CBD) of embedded real-time software, supporting the design methodology presented in our earlier work [1]. The aim is to construct system models based on concurrent reactive objects and components in a graphical
2011 Ninth Working IEEE/IFIP Conference on Software Architecture, 2011
Settling down the software architecture for embedded system is a complex and time consuming task. Specific concerns that are generally issued from implementation details must be captured in the software architecture and assessed to ensure system correctness. The matter is further complicated by the inherent complexity and heterogeneity of the targeted systems, platforms and concerns. In addition, tools capable of conjointly catering for the complete design-verificationdeployment cycle, extra-functional properties and reuse are currently lacking. To address this, we have developed Pride, an integrated development environment for component-based development of embedded systems. Pride is based on an architecture relying on components with well-defined semantics that serve as the central development entity, and as means to support and aggregate various analysis and verification techniques throughout the development -from early specification to synthesis and deployment. Pride also provides generic support for integrating extra-functional properties into architectural definitions.
Knowledge and Information Systems, 2013
The usage of components brings significant help in development of real-time embedded systems. There have been a number of component frameworks developed for this purpose and some of them have already become well-established in this area. However, although the component frameworks share basic concepts and the general approach, they substantially differ in the range of supported features and maturity. This makes relatively difficult to select the right component framework and thus poses a significant obstacle in adoption of the component-based development for real-time embedded systems. To provide an overview, we present a survey in this paper, which illustrates distinguishing features of selected modern component-based frameworks for real-time embedded systems. The survey identifies features which are important for building systems from components in this area and compares these frameworks with respect to these features.
Using component-based software development in real-time system development offers significant benefits especially in enabling configurability, and rapid development and deployment of real-time software. Successful integration of component-based software development into real-time system development is greatly dependent on identifying issues that a design method for component-based real-time systems needs to address. The issues focused on by existing design approaches are decomposition of a real-time system into tasks and temporal analysis, while issues such as components, their relationship to tasks, and separation of concerns are not addressed. In this paper, we identify the criteria a design method for component-based real-time systems should fulfill to enable efficient, reuse-oriented, development of reliable and configurable real-time systems. The criteria include a real-time component model that supports mapping of components to tasks, separation of concerns in real-time systems through the notion of different types of aspects, and composition support, namely support for configuration and analysis of the composed real-time software. By introducing a new set of criteria for the design of component-based real-time systems, we help bridging the gap between the real-time and software engineering community and offer a good basis for evaluating existing, and developing new, design methods for building component-based real-time systems.
Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems - JTRES '06, 2006
During the past few years, Component Based Software Engineering (CBSE) has emerged as an excellent candidate to achieve greater software understanding, reuse and reliability. Through our research work, we have designed a component model that provides abstractions and means to facilitate design, analysis and validation of real-time systems. In this paper, we investigate the applicability of our model in the Real Time Specification for Java. We also show how our framework provides a programming model that facilitates realtime development using RTSJ by abstracting away memory management and traversal complexities.
2002
Embedded real-time applications are often built from scratch on a trial-and-error basis, which leads to sub-optimal designs with latent errors that are not detectable in early stages of use or deployment and often incurs prolonged time-to-market. A new application framework called Verifiable Embedded Real-Time Application Framework (VERTAF) is proposed for embedded real-time application development, with the aim of reducing design errors and increasing design productivity. VERTAF is an integration of three technologies, namely object-oriented technology, software component technology, and formal verification technology. VERTAF consists of five software components: Implanter, Modeler, Scheduler, Verifier, and Generator. Experiences of using VERTAF show a significant increase in design productivity through design reuse, and a significant decrease in design time and effort through design verification. An example shows a relatively low design effort on the part of the designer using VERTAF.
2009
As embedded systems must constantly integrate new functionalities, their developement cycles must be based on high-level abstractions, making the software design more flexible. CBSE provides an approach to these new requirements. However, low-level services provided by operating systems are an integral part of embedded applications, furthermore deployed on resource-limited devices. Therefore, the expected benefits of CBSE must not impact on the constraints imposed by the targetted domain, such as memory footprint, energy consumption, and execution time. In this paper, we present the componentization of a legacy industry-established Real-Time Operating System, and how componentbased applications are built on top of it. We use the Think framework that allows to produce flexible systems while paying for flexibility only where desired. Performed experimentions show that the induced overhead is negligeable.
Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems - JTRES '07, 2007
This paper addresses the need to reduce the difficulties in developing time-constrained Java applications. We present a design pattern for a class of time-constrained real-time applications that allows developers to use (and re-use) Java code libraries and non-developmental items (NDI). The proposed design pattern simplifies the implementation of the timeconstrained tasks substantially by not requiring the use of no-heap real-time threads. We tested the design pattern with the Java Real-Time System (RTS) 2.0 from the Sun Microsystems. This paper also presents a simple methodology for determining the appropriate values for the RTS run-time parameters (thread priorities, memory usage, process load, and task deadlines) in order to ensure the deterministic execution of the timeconstrained tasks.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.