skip to main content
research-article

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

Authors Info & Claims
Published:26 September 2020Publication History
Skip Abstract Section

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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  3. Neil C. Audsley, Yu Chan, Ian Gray, and Andy J. Wellings. 2014. Real-time big data: The JUNIPER approach. Technical Report.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  6. John Barnes. 1997. High Integrity Ada: The SPARK Approach. Vol. 189. Addison-Wesley, Reading, MA.Google ScholarGoogle Scholar
  7. Jean Bézivin. 2005. On the unification power of models. Softw. Syst. Model. 4, 2 (2005), 171--188.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Gregory Bollella and James Gosling. 2000. The real-time specification for Java. Computer 33, 6 (2000), 47--54.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  10. Alan Burns and Andy Wellings. 2016. Analysable Real-Time Systems: Programmed in Ada. CreateSpace Independent Publishing Platform.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Peter Dibble. 2002. Real-time Java Platform Programming. Prentice Hall Professional.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  22. Les Hatton. 2004. Safer language subsets: An overview and a case history, MISRA C. Inf. Softw. Technol. 46, 7 (2004), 465--472.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  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).Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  26. Ari Jaaksi. 2002. Developing mobile browsers in a product line. IEEE Softw. 19, 4 (2002), 73--80.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  29. Timothy Patrick Kelly. 1999. Arguing Safety: A Systematic Approach to Managing Safety Cases. Ph.D. Dissertation. University of York, York, UK.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  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).Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. No Magic. 2007. MagicDraw. Retrieved from https://www.nomagic.com/products/magicdraw.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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. DOI:https://doi.org/10.1002/spe.2346Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Ben Potter, David Till, and Jane Sinclair. 1996. An Introduction to Formal Specification and Z. Prentice Hall PTR.Google ScholarGoogle Scholar
  41. Ragunathan Rajkumar. 2012. Synchronization in Real-time Systems: A Priority Inheritance Approach. Vol. 151. Springer Science 8 Business Media.Google ScholarGoogle Scholar
  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.Google ScholarGoogle Scholar
  43. RTEMS. Retrieved February 21, 2020 from http://www.rtems.org/.Google ScholarGoogle Scholar
  44. Douglas C. Schmidt. 2006. Model-driven engineering. Computer 39, 2 (2006), 25.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  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).Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Fridtjof Siebert. 2010. Concurrent, parallel, real-time garbage-collection. In ACM Sigplan Notices, Vol. 45. ACM, 11--20.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar
  51. Dave Steinberg, Frank Budinsky, Ed Merks, and Marcelo Paternostro. 2008. EMF: Eclipse Modeling Framework. Pearson Education.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Sparx Systems. 2012. Sparx Systems SysML. Retrieved March 23, 2020 from https://sparxsystems.com/.Google ScholarGoogle Scholar
  53. Chris Tapp. 2009. An introduction to MISRA C++. SAE Int. J. Passeng. Cars - Electron. Electr. Syst. 1, 1 (2009), 265--268.Google ScholarGoogle ScholarCross RefCross Ref
  54. Kleanthis Thramboulidis. 2007. IEC 61499 in factory automation. In Advances in Computer, Information, and Systems Sciences, and Engineering. Springer, 115--124.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Andrew J. Wellings. 2004. Concurrent and Real-time Programming in Java. John Wiley, New York, NY.Google ScholarGoogle Scholar
  59. Shuai Zhao. 2018. A FIFO Spin-based Resource Control Framework for Symmetric Multiprocessing. Ph.D. Dissertation. University of York.Google ScholarGoogle Scholar
  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.Google ScholarGoogle ScholarCross RefCross Ref
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.Google ScholarGoogle Scholar

Index Terms

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

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!