Redundant and Reliable Architecture Based on Open Source Tools for Light-Rail-Transit On-Board-Systems
The LRT (Light Rail Transit) systems are a kind of urban transport that has aspects in common to both tramways and metros. This paper analyses the Thales LRT On-Board-Systems (OBS) architecture, which is designed to achieve a high level of availability. Such architecture is built on top of open source technologies and consolidated telecommunication standards. Architectural requirements are met also thanks to the used Open-Source foundations. In particular the Qt framework, the 0MQ and the ASN.1 to C compiler have been used to develop a micro-service oriented fault resistant system. Redundant services are spawned on replicated identical hardware units, one of which is the master, and are seamlessly and automatically kept in sync by the algorithms described in this paper. In case of a service failure on one of the replicated hardware boxes, a choice is made between two alternatives: (1) a full mastership changeover is performed and another redundant box becomes the new master (2) a micro-service is migrated to another redundant box in order to take control of the same non-faulty device. The described architecture is being actively used in both LRT and metro solutions, thus this work will describe the benefits on the field and the effectiveness of the architecture in terms of code quality and maintainability. Since the development of the mentioned projects has been carried on inside an Agile team, some considerations will be made about benefits, constraints and pitfalls of such kind of methodologies, on strictly regulated and safety related projects.
KeywordsOn board systems Light rail transit Open source Software architecture Redundant system Micro service Agile
- 1.Sustrik, M.: ØMQ: The Theoretical Foundation (2011). http://250bpm.com/concepts
- 2.ØMQ The Guide. http://zguide.zeromq.org/page:all
- 3.ITU-T Recommendation X.680 (2002) – ISO/IEC 8824–1:2002, Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notationGoogle Scholar