Information and Alarm Tool (IAT)
ETH Zurich relies on an information and alarm tool (IAT), which has been in use since 2017.
In the event of evacuations and attacks, it allows the operator in the alarm control centre to alert affected persons, functionaries and rooms (such as lecture halls, computer rooms, etc.) at the touch of a button.
The following communication channels are used to sound the alarm:
- digitally signed e-mails
- landline calls (text-to-speech)
- text message (SMS) and text-to-speech on the mobile phone
- EVAK systems and mobile apps push notification (from April 2018)
These messages include information regarding the hazard, the location and also the required behaviour or action. On behalf of the SSHE (department of Safety, Security, Health and Environment), various productive practice alarms (evacuation of HCI and barricade of ETH Centre) were successfully tested and carried out in 2017.
The administration and configuration of the IAT alarm plans (that control which affected persons, functionaries, facilities, rooms are informed in which priority in case of an event) were handled directly in the database up until the beginning of 2018. It was not possible for change requests such as alarm notifications to be made directly by SSHE; these had to be performed by a database administrator from ITS Software Services.
IAT Admin GUI
As part of the IAT application expansion, SSHE was commissioned in the middle of 2017 to develop a tool for administering and configuring the IAT application, which would allow SSHE employees to make changes to the “IAT database” by themselves (manage and administer alarm plans, alarm messages, groups and systems/areas/types/EVK commands).
The IAT Admin GUI was put into operation in March 2018.
Technical implementation and technology used
When developing the IAT Admin Tool, we deliberately chose to use the RCP (Rich Client Platform), see [2]) and RAP (Remote Application Platform, see [1]) application to deploy or introduce the technology at ITS SWS.
The IAT Admin GUI elements and controls were implemented with SWT Designer/Windows Builder and implemented as an E4 Eclipse plug-in based application. The tool was productively delivered as an RCP application (Figure 1) (software distribution via baramundi) and could also be operated as an RAP application (web-based application, Figure 2).
Figure 1: IAT Admin GUI – RCP application (desktop application)
Figure 2: IAT Admin GUI – RAP application (web application)
Challenges for developers/development Process
The biggest challenge was to understand and apply the RCP/RAP framework and gain a sound understanding of the underlying technologies – OSGI, Eclipse Workbench/JFace/SWT, Eclipse RCP / RAP and plug-in development.
When developing a RCP application that will later be used as a RAP application, the following should be noted:
- RAP (RWT API) does not 100% implement the RCP API (SWT); i.e. certain methods (for example, “PaintListener”) and classes (such as “FileDialog”) are not supported or are not yet available in the current RAP version.
- Multiuser capability: The intention is to operate an RCP as an RAP application in the future. It should be noted that the application runs in a multiuser environment (shared VM, does not use a singleton, etc.) and accordingly, provisions should be made for this.
- Runtime Environment: An RAP application is typically operated on one central server. Clarifications regarding deployment processes, infrastructure environment, etc. must be made and agreed with the responsible BD. A corresponding environment (Docker container per RAP application) and a deployment process will be established for ITS SWS RAP applications by mid-2018.
By using the Eclipse GUI Designer “SWT Designer/Windows Builder” plug-in, it was possible to develop and discuss the GUI design together with the customer at a very early stage of the project (specification phase). It was possible to adopt and implement the GUI design without change in the implementation phase.
Furthermore, the usual approach for developing Java applications in the Eclipse IDE can be almost completely retained without the explicit use of other languages and techniques such as JavaScript, ActionScript, HTML, Ajax, JQuery, etc.
Runtime environment
As part of a small study, the IAT Admin Tool was tested in the following target runtime environments:
- RCP (desktop client, is now in productive use)
- RAP environment – standalone OSGI server
- RAP environment – WAR file deployed in Tomcat Servlet Container
- RAP environment – WAR file deployed in WebLogic Servlet Container
Summary
The fundamental idea of this technology is based on the single-sourcing approach: the application is developed once and can be operated as an RCP (desktop application) or an RAP (web application) (different runtime environments). The good and also astounding thing about RCP/RAP technology is that you can create and run an executable web application from an RCP application without ever having to deal with HTML/Java script code or come into contact with it; the application is styled (look and feel) using a corresponding style sheet. It was possible to implement and demonstrate the use of this technology with this project.
The IAT Admin GUI provides our customer SSHE with a lot of added value. They can now administer and configure their alarm plans and message text templates etc. by themselves. In addition, they have full transparency on how the alarm plans are structured and, when it comes to support, can perform problem analyses using the tool and make corrections if necessary.
It was fun to get to know this technology and to use it in a professional way.
Legend
RCP: Rich Client Platform (desktop application) [2]
RAP: Remote Application Platform, formerly Rich Ajax Platform (web application) [1]
RWT: RAP Widget Toolkit (counterpart to SWT)
SWT: Standard Widget Toolkit
OSGI: Open Services Gateway initiative (framework specification: Component model “bundle/service”) [3]
Bibliography
[1] RAP (Remote Application Platform) http://www.eclipse.org/rap/
[2] RCP (Rich Client Platform) https://wiki.eclipse.org/Rich_Client_Platform
[3] OSGI (Open Services Gateway initiative) https://en.wikipedia.org/wiki/OSGi