[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Development Automation of Real-Time Java: Model-Driven Transformation and Synthesis

Published: 26 September 2020 Publication History

Abstract

Many applications in emerging scenarios, such as autonomous vehicles, intelligent robots, and industrial automation, are safety-critical with strict timing requirements. However, the development of real-time systems is error prone and highly dependent on sophisticated domain expertise, making it a costly process. This article utilises the principles of model-driven engineering (MDE) and proposes two methodologies to automate the development of real-time Java applications. The first one automatically converts standard time-sharing Java applications to real-time Java applications, using a series of transformations. It is in line with the observed industrial trend, such as for the big data technology, of redeveloping existing software without the real-time notion to realise the real-time features. The second one allows users to automatically generate real-time Java application templates with a lightweight modelling language, which can be used to define the real-time properties—essentially a synthesis process. This article opens up a new research direction on development automation of real-time programming languages and inspires many research questions that can be jointly investigated by the embedded systems, programming languages as well as MDE communities.

References

[1]
Austin Armbruster, Jason Baker, Antonio Cunei, Chapman Flack, David Holmes, Filip Pizlo, Edward Pla, Marek Prochazka, and Jan Vitek. 2007. A real-time Java virtual machine with applications in avionics. ACM Trans. Embed. Comput. Syst. 7, 1 (2007), 5.
[2]
Neil Audsley, Alan Burns, Mike Richardson, Ken Tindell, and Andy J. Wellings. 1993. Applying new scheduling theory to static priority pre-emptive scheduling. Softw. Eng. J. 8, 5 (1993), 284--292.
[3]
Neil C. Audsley, Yu Chan, Ian Gray, and Andy J. Wellings. 2014. Real-time big data: The JUNIPER approach. Technical Report.
[4]
Jason Baker, Antonio Cunei, Chapman Flack, Filip Pizlo, Marek Prochazka, Jan Vitek, Austin Armbruster, Edward Pla, and David Holmes. 2006. A real-time java virtual machine for avionics-an experience report. In Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS’06). IEEE, 384--396.
[5]
Konstantinos Barmpis, Dimitrios Kolovos, and Justin Hingorani. 2018. Towards a framework for writing executable natural language rules. In Proceedings of the European Conference on Modelling Foundations and Applications. Springer, 251--263.
[6]
John Barnes. 1997. High Integrity Ada: The SPARK Approach. Vol. 189. Addison-Wesley, Reading, MA.
[7]
Jean Bézivin. 2005. On the unification power of models. Softw. Syst. Model. 4, 2 (2005), 171--188.
[8]
Gregory Bollella and James Gosling. 2000. The real-time specification for Java. Computer 33, 6 (2000), 47--54.
[9]
Hugo Bruneliere, Jordi Cabot, Grégoire Dupé, and Frédéric Madiot. 2014. Modisco: A model driven reverse engineering framework. Inf. Softw. Technol. 56, 8 (2014), 1012--1032.
[10]
Alan Burns and Andy Wellings. 2016. Analysable Real-Time Systems: Programmed in Ada. CreateSpace Independent Publishing Platform.
[11]
Alan Burns and Andrew J. Wellings. 2001. Real-time Systems and Programming Languages: Ada 95, Real-time Java, and Real-time POSIX. Pearson Education.
[12]
Alan Burns, Andy J. Wellings, and Fengxiang Zhang. 2009. Combining EDF and FP scheduling: Analysis and implementation in Ada 2005. In Proceedings of the International Conference on Reliable Software Technologies. Springer, 119--133.
[13]
Ana Cavalcanti, Alvaro Miyazawa, Andy Wellings, Jim Woodcock, and Shuai Zhao. 2017. Java in the Safety-Critical Domain. Springer International Publishing, Cham, 110--150.
[14]
Wanli Chang and Samarjit Chakraborty. 2016. Resource-aware automotive control systems design: A cyber-physical systems approach. Found. Trends Electr. Des. Autom. 10, 4 (2016), 249--369.
[15]
Wanli Chang, Dip Goswami, Samarjit Chakraborty, and Arne Hamann. 2018. OS-aware automotive controller design using non-uniform sampling. ACM Trans. Cyber-Phys. Syst. 2, 4 (2018), 26.
[16]
Wanli Chang, Dip Goswami, Samarjit Chakraborty, Lei Ju, Chun Xue, and Sidharta Andalam. 2017. Memory-aware embedded control systems design. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 36, 4 (2017), 586--599.
[17]
Wanli Chang, Shuai Zhao, Ran Wei, Andy Wellings, and Alan Burns. 2019. From Java to real-time Java: A model-driven methodology with automated toolchain. In Proceedings of the 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems. 123--134.
[18]
Robert I. Davis and Alan Burns. 2011. A survey of hard real-time scheduling for multiprocessor systems. Acm Computing Surveys 43, 4 (2011), 1--44.
[19]
Peter Dibble. 2002. Real-time Java Platform Programming. Prentice Hall Professional.
[20]
Ian Gray, Neil Cameron Audsley, Jamie Garside, Yu Chan, and Andrew John Wellings. 2015. FPGA-based acceleration for real-time big data systems. In Proceedings of the 9th HiPEAC Workshop on Reconfigurable Computing.
[21]
Ian Gray, Yu Chan, Jamie Garside, Neil C. Audsley, and Andy J. Wellings. 2015. FPGA-based hardware acceleration for real-time big data systems. In 9th HiPEAC Workshop on Reconfigurable Computing.
[22]
Les Hatton. 2004. Safer language subsets: An overview and a case history, MISRA C. Inf. Softw. Technol. 46, 7 (2004), 465--472.
[23]
Florian Heidenreich, Jendrik Johannes, Mirko Seifert, and Christian Wende. 2009. Closing the gap between modelling and java. In Proceedings of the International Conference on Software Language Engineering. Springer, 374--383.
[24]
Thomas Henties, James J Hunt, Doug Locke, Kelvin Nilsen, Martin Schoeberl, and Jan Vitek. 2009. Java for safety-critical applications. In Proceedings of the 2nd International Workshop on the Certification of Safety-critical Software Controlled Systems (SafeCert’09).
[25]
Erik Yu-Shing Hu, Eric Jenn, Nicolas Valot, and Alejandro Alonso. 2006. Safety critical applications and hard real-time profile for Java: A case study in avionics. In Proceedings of the 4th International Workshop on Java Technologies for Real-time and Embedded Systems. ACM, 125--134.
[26]
Ari Jaaksi. 2002. Developing mobile browsers in a product line. IEEE Softw. 19, 4 (2002), 73--80.
[27]
A Juan, Jorge Garrido, Juan Zamorano, and Alejandro Alonso. 2014. Model-driven design of real-time software for an experimental satellite. IFAC Proc. Vol. 47, 3 (2014), 1592--1598.
[28]
Juha Kärnä, Juha-Pekka Tolvanen, and Steven Kelly. 2009. Evaluating the use of domain-specific modeling in practice. In Proceedings of the 9th OOPSLA Workshop on Domain-Specific Modeling.
[29]
Timothy Patrick Kelly. 1999. Arguing Safety: A Systematic Approach to Managing Safety Cases. Ph.D. Dissertation. University of York, York, UK.
[30]
Dimitrios S. Kolovos, Richard F. Paige, and Fiona A. C. Polack. 2008. The epsilon transformation language. In Proceedings of the International Conference on Theory and Practice of Model Transformations. Springer, 46--60.
[31]
Dimitrios S. Kolovos, Ran Wei, and Konstantinos Barmpis. 2013. An approach for efficient querying of large relational datasets with ocl-based languages. In Proceedings of the XM 2013–Extreme Modeling Workshop. 48.
[32]
Björsn Konieczek, Michael Rethfeldt, Frank Golatowski, and Dirk Timmermann. 2015. Real-time communication for the internet of things using jcoap. In Proceedings of the 2015 IEEE 18th International Symposium on Real-Time Distributed Computing. IEEE, 134--141.
[33]
Agnes Lanusse, Yann Tanguy, Huascar Espinoza, Chokri Mraidha, Sebastien Gerard, Patrick Tessier, Remi Schnekenburger, Hubert Dubois, and François Terrier. 2009. Papyrus UML: An open source toolset for MDA. In Proceedings of the 5th European Conference on Model-Driven Architecture Foundations and Applications (ECMDA-FA’09). Citeseer, 1--4.
[34]
Shaoshan Liu, Jie Tang, Chao Wang, Quan Wang, and Jean-Luc Gaudiot. 2017. Implementing a cloud platform for autonomous driving. arXiv preprint arXiv:1704.02696 (2017).
[35]
Shaoshan Liu, Jie Tang, Chao Wang, Quan Wang, and Jean-Luc Gaudiot. 2017. A unified cloud platform for autonomous driving. Computer 50, 12 (2017), 42--49.
[36]
No Magic. 2007. MagicDraw. Retrieved from https://www.nomagic.com/products/magicdraw.
[37]
HaiTao Mei, Ian Gray, and Andy Wellings. 2016. Real-time stream processing in java. In Proceedings of the Ada-Europe International Conference on Reliable Software Technologies. Springer, 44--57.
[38]
Parastoo Mohagheghi and Vegard Dehlen. 2008. Where is the proof?-A review of experiences from applying MDE in industry. In Proceedings of the European Conference on Model Driven Architecture-Foundations and Applications. Springer, 432--443.
[39]
Renaud Pawlak, Martin Monperrus, Nicolas Petitprez, Carlos Noguera, and Lionel Seinturier. 2015. Spoon: A library for implementing analyses and transformations of Java source code. Softw. Pract. Exp. 46, 9 (2015), 1155--1179.
[40]
Ben Potter, David Till, and Jane Sinclair. 1996. An Introduction to Formal Specification and Z. Prentice Hall PTR.
[41]
Ragunathan Rajkumar. 2012. Synchronization in Real-time Systems: A Priority Inheritance Approach. Vol. 151. Springer Science 8 Business Media.
[42]
Louis M. Rose, Richard F. Paige, Dimitrios S. Kolovos, and Fiona A. C. Polack. 2008. The epsilon generation language. In Proceedings of the European Conference on Model Driven Architecture-Foundations and Applications. Springer, 1--16.
[43]
RTEMS. Retrieved February 21, 2020 from http://www.rtems.org/.
[44]
Douglas C. Schmidt. 2006. Model-driven engineering. Computer 39, 2 (2006), 25.
[45]
Martin Schoeberl, Andreas Engelbredt Dalsgaard, René Rydhof Hansen, Stephan E. Korsholm, Anders P. Ravn, Juan Ricardo Rios Rivas, Tórur Biskopstø Strøm, Hans Søndergaard, Andy Wellings, and Shuai Zhao. 2017. Safety-critical Java for embedded systems. Concurr. Comput. Pract. Exp. 29, 22 (2017), e3963.
[46]
Martin Schoeberl, Hans Sondergaard, Bent Thomsen, and Anders P. Ravn. 2007. A profile for safety critical java. In Proceedings of the 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC’07). IEEE, 94--101.
[47]
Lui Sha, Ragunathan Rajkumar, and John P. Lehoczky. 1990. Priority inheritance protocols: An approach to real-time synchronization. IEEE Transactions on Computers 39, 9 (1990).
[48]
Fridtjof Siebert. 2007. Realtime garbage collection in the JamaicaVM 3.0. In Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems. Citeseer, 94--103.
[49]
Fridtjof Siebert. 2010. Concurrent, parallel, real-time garbage-collection. In ACM Sigplan Notices, Vol. 45. ACM, 11--20.
[50]
Rashmi P. Sonar and Rani S. Lande. 2018. Javolution-solution for real time embedded system. In Proceedings of the 2018 International Conference on Research in Intelligent and Computing in Engineering (RICE’18). IEEE, 1--10.
[51]
Dave Steinberg, Frank Budinsky, Ed Merks, and Marcelo Paternostro. 2008. EMF: Eclipse Modeling Framework. Pearson Education.
[52]
Sparx Systems. 2012. Sparx Systems SysML. Retrieved March 23, 2020 from https://sparxsystems.com/.
[53]
Chris Tapp. 2009. An introduction to MISRA C++. SAE Int. J. Passeng. Cars - Electron. Electr. Syst. 1, 1 (2009), 265--268.
[54]
Kleanthis Thramboulidis. 2007. IEC 61499 in factory automation. In Advances in Computer, Information, and Systems Sciences, and Engineering. Springer, 115--124.
[55]
Kleanthis Thramboulidis and Alkiviadis Zoupas. 2005. Real-time Java in control and automation: A model driven development approach. In Proceedings of the 2005 IEEE Conference on Emerging Technologies and Factory Automation, Vol. 1. IEEE, 8–pp.
[56]
Christian Wawersich, Michael Stilkerich, and Wolfgang Schröder-Preikschat. 2007. An OSEK/VDX-based multi-JVM for automotive appliances. In Embedded System Design: Topics, Techniques and Trends. Springer, 85--96.
[57]
Ran Wei, Tim P. Kelly, Xiaotian Dai, Shuai Zhao, and Richard Hawkins. 2019. Model based system assurance using the structured assurance case metamodel. J. Syst. Softw. 154 (2019), 211--233.
[58]
Andrew J. Wellings. 2004. Concurrent and Real-time Programming in Java. John Wiley, New York, NY.
[59]
Shuai Zhao. 2018. A FIFO Spin-based Resource Control Framework for Symmetric Multiprocessing. Ph.D. Dissertation. University of York.
[60]
Shuai Zhao, Jorge Garrido, Alan Burns, and Andy Wellings. 2017. New schedulability analysis for MrsP. In Proceedings of the 2017 IEEE 23rd International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’17). IEEE, 1--10.
[61]
Shuai Zhao, Jorge Garrido, Ran Wei, Alan Burns, Andy Wellings, and A Juan. 2020. A complete run-time overhead-aware schedulability analysis for MrsP under nested resources. J. Syst. Softw. 159 (2020), 110449.
[62]
Shuai Zhao, Andy Wellings, and Stephan Erbs Korsholm. 2015. Supporting multiprocessors in the ICECAP safety-critical java run-time environment. In Proceedings of the 13th International Workshop on Java Technologies for Real-time and Embedded Systems. ACM, 1.
[63]
Athanasios Zolotas, Ran Wei, Simos Gerasimou, Horacio Hoyos Rodriguez, Dimitrios S. Kolovos, and Richard F. Paige. 2018. Towards automatic generation of UML profile graphical editors for papyrus. In Modelling Foundations and Applications, Alfonso Pierantonio and Salvador Trujillo (Eds.). Springer International Publishing, Cham, 12--27.

Cited By

View all
  • (2024)Research on electrical automation devices under embedded real-time operating system designApplied Mathematics and Nonlinear Sciences10.2478/amns-2024-12659:1Online publication date: 30-May-2024
  • (2021)Priority Assignment on Partitioned Multiprocessor Systems With Shared ResourcesIEEE Transactions on Computers10.1109/TC.2020.300005170:7(1006-1018)Online publication date: 1-Jul-2021

Index Terms

  1. Development Automation of Real-Time Java: Model-Driven Transformation and Synthesis

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Transactions on Embedded Computing Systems
      ACM Transactions on Embedded Computing Systems  Volume 19, Issue 5
      Special Issue on LCETES, Part 1, Real-Time, Critical Systems, and Approximation
      September 2020
      229 pages
      ISSN:1539-9087
      EISSN:1558-3465
      DOI:10.1145/3426818
      Issue’s Table of Contents
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Journal Family

      Publication History

      Published: 26 September 2020
      Online AM: 07 May 2020
      Accepted: 01 March 2020
      Revised: 01 March 2020
      Received: 01 November 2019
      Published in TECS Volume 19, Issue 5

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Real-time programming languages
      2. model-driven engineering
      3. real-time specification for Java

      Qualifiers

      • Research-article
      • Research
      • Refereed

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)27
      • Downloads (Last 6 weeks)1
      Reflects downloads up to 12 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Research on electrical automation devices under embedded real-time operating system designApplied Mathematics and Nonlinear Sciences10.2478/amns-2024-12659:1Online publication date: 30-May-2024
      • (2021)Priority Assignment on Partitioned Multiprocessor Systems With Shared ResourcesIEEE Transactions on Computers10.1109/TC.2020.300005170:7(1006-1018)Online publication date: 1-Jul-2021

      View Options

      Login options

      Full Access

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format.

      HTML Format

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media