Dipl.-Inform. Andy Walter
Developing Industrial Apps in Realtime Java
Embedded World 2012 - 28 Feb - 1 Mar 2012, Nuremberg, Germany
Within just a few years since the first iPhone, apps became omnipresent in consumer devices and recently even in cars. Taking the same approach into industrial applications can result in highly customisable, flexible machines. Smarter condition monitoring solutions, even production lines or robot controls can benefit significantly from the new flexibility. Apart from flexibility, requirements of industrial applications differ significantly from those of an iPhone or Android tablet. In industrial environments, safety and security are most important. Java's security managers and signed JARs are a reasonable starting point for granting specific privileges to an app. In many cases, realtime is also mandatory. Besides that, the Realtime Specification for Java (RTSJ) opens up the possibility to restrict apps to a certain amount of CPU resources, such as CPU time or memory. This paper introduces the potential of industrial apps, and gives some guidance on how to avoid the most dangerous pitfalls.
Download: PDF (112kB)
Towards Certification of Java Applications for Safety Critical Projects
ERTS 2010 - Embedded Real Time Software and Systems - 19-21 May 2010, Toulouse, France
The increasing complexity of embedded systems also effects the area of safety critical applications. Modern development tools and approaches which are common for the development of desktop applications are not available for ADA. At the same time, using unsafe languages such as C and C++ bares a high risk in any embedded application.
A good successor for ADA would be Java: the welldefined language eliminates a good deal of potential errors inherently, which should ease certification efforts for safety critical applications. Unfortunately, the old certification standard DO-178B does not really cover the usage of object oriented languages. The certification process is hindered by a formalism, which neglects the benefits and safety that object oriented languages in general and Java in particular could introduce for the usage in safety critical applications. E.g., usage of automated memory management is not possible with reasonable effort, such that currently, developers of safety critical applications undertake enormous efforts of doing their own memory management, e.g., by using object pools, which is not only more effort, but also more dangerous than using a provably correct automated tool would be.
Luckily, the succeeding certification standard DO-178C will make certification of Java technology, including the use of virtual machine technology and garbage collection, easier.
Download: PDF (332kB)
Sicherheitskritische Anwendungen mit Java
ESE Kongress 2009 - 8-10 Dec 2009, Sindelfingen, Germany
Andy Walter, James J. Hunt
Die zunehmende Komplexität sicherheitskritischer Anwendungen ist mit der etablierten Sprache Ada kaum noch in den Griff zu bekommen. C und C++ sind jedoch fehleranfällig und für diesen Bereich eine schlechte Alternative. Safety Critical Java, JSR 302, schickt sich an, hier die Nachfolge anzutreten. Die Arbeitsgruppe SG-5 der SC 205 / WG 71 Versammlung arbeitet derzeit an Richtlinien zur Zertifizierung objektorientierter Software nach DO-178C für den Einsatz in sicherheitskritischen Anwendungen in der Luftfahrt.
Download: PDF (1,2MB)
Java in Safety Critical Systems
Embedded World 2009 - 3-5 Mar 2009, Nuremberg, Germany
Until recently, the preferred language for developing safety critical applications has been Ada, but this is beginning to change. The number of developers willing to program in Ada is diminishing, while the complexity of applications is increasing. Where as C and C++ are poor alternatives to Ada, realtime Java specifications have benefited from strong cross fertilisation from the Ada community, giving realtime Java most of Ada's advantages for developing safety critical systems.
Though strongly related to standard Java technology such as J2SE and J2EE, realtime Java is really a different beast. The differences are subtle, so as to benefit from a common language base; but essential. Realtime Java sets itself apart by having much stronger threading semantics: it provides a strict specification of thread priorities and protocols for avoiding Priority Inversion. The RTSJ also introduces techniques for avoiding timing anomalies caused by garbage collection, ideally while maintaining the reference consistency automatic object deallocation ensures.
This paper outlines the important Java standards, such as the realtime Specification for Java (JSR 1 and JSR 282) and Safety Critical Java (JSR 302), as well as proposed changes from SG-5 for object oriented technology. New garbage collection technology will also be covered. This should give the attendee a good background in the state-of-the-art of realtime Java Technology and safety certification.
Download: PDF (223kB)
Writing Platform-independent Low-level Software and Drivers with Java
SPS/IPC/Drives 2007 - 27-29 Nov 2007, Nuremberg, Germany
Writing Low-level software and drivers for Embedded Systems is a challenging task. Unlike in Desktops, a large number of Operating Systems and Processor Architectures are common in Embedded Systems. The Realtime Specification for Java, RTSJ, is a powerful extension for Embedded Java. It can help developers to write reliable, portable, and reusable code with comparatively little effort. But even with RTSJ, there are some pitfalls in Embedded Systems: Care needs to be taken whenever hardware is directly accessed. This paper introduces the features of the RTSJ and safely guides around common pitfalls of Embedded Systems.
Download: PDF (523kB)
Industrial Visualisations with Java
Embedded World 2007 - 13-15 Feb 2007, Nuremberg, Germany
Graphical panels with touch screen have become standard for the HumanMachine Interface (HMI) of industrial controls. A large number of tools that support the developer in generating an HMI exist. Common requirements are short development time, platform independence, and a demanding lookandfeel of the resulting HMI.
To ensure platform independence of the operating system and the processor architecture, many tools and applications base on Java technology. Still, the developer has to choose a reasonable tradeoff between development time and a demanding look-and-feel for his particular purpose. Generally, code generators of visual development tools can generate good looking and reasonably fast code with very little effort. In highvolume machines, development cost is usually much less critical than hardware costs of the target system. For those systems, the higher development costs of handcoded HMIs can be welljustified and result in very goodlooking visualisations with good performance.
This paper compares the development systems available on the industrial market and elaborates on their strengths and weaknesses. Examples are given from a variety of industrial applications that base on different approaches.
Download: PDF (807kB)