logo-yarra-trams

A system that provides more accurate and timely data for Melbourne’s tram network

Custom-built software service for Yarra Trams


Excellent technical expertise & client engagement.

— Prashanth Mullapudi, Principal Advisor, YarraTrams.

Inoutput won a tender to create a software solution for Yarra Trams that could integrate historical and real-time tram information to provide a more efficient collection and analysis of tram data.

Yarra Trams had been using the Automatic Vehicle Monitoring system (AVM) to receive constantly-streaming tram data via radio transmissions which they used to analyse and monitor tram performance and produce reports.

The AVM system had to read data via a series of binary files it wrote to disk at predefined intervals, before running this information through a series of custom programs to convert them into readable files for Yarra Trams staff to use.

This process was mostly manual, time-consuming and very labour intensive as it required staff to locate and load large non-readable binary files – a process that could not be automated because the files were so large.

The AVM system required old DOS programs to read the binary files which had very limited functionalities and a minimal user interface – only text and numbers could be displayed on screen. As such, the program only allowed small segments of information to be produced at one time, meaning there was no way for Yarra Trams staff to query comprehensive information about tram vehicles in times of need.

To solve this problem, inoutput built the AVMIS (AVM Integration Services) system for Yarra Trams. AVMIS provides a new method of reading real-time tram data by interpreting a constant stream of information (about 1.5 million packets per day). The AVMIS system stores this data in a data warehouse to make it available via an API for consumption by internal applications and other systems such as tramTRACKER.

The AVMIS system has been successful in meeting the demand of integrating data from a legacy system while providing real-time information to provide a more efficient way for Yarra Trams to access, analyse and report on their data.

Project highlights:

  • Real-time processing of tram updates packets
  • Large data warehouse for storing and analysing vehicle data
  • Monitor scheduled timetable changes and import new timetables for running vehicles
  • Delivery of real-time tram data through modern REST-based API for other systems.
Avmis Integration

Challenges and solutions:

There were some challenges to address with this project as finding ways to integrate an old system proved to be multifaceted and quite intricate.

Some challenges we encountered were:

  • Building a lightweight database access layer to allow real-time tram data to be saved and retrieved quickly from the database. Initially, Microsoft Entity Framework was used to implement the database access layer however, it was not ideal for performance-critical tasks. We implemented a lightweight database access layer from scratch by using the classic method of vanilla SQL statements. An asynchronous mechanism was also implemented to avoid locking and allow for faster data inserts and updates.
  • Building an historical vehicle data warehouse that grows 1.3 GB to 1.5 GB per day, averaging 500 GB per year, as it stores all historical information for every tram daily. We decided on 2 TB disk space on the data warehouse server to support the full 5-year lifecycle of the project.
  • Re-importing a tram schedule during an operational day for a late change. The system needed to be able to switch to the new schedule and match constantly streaming vehicle updates at a rate of 30 records per second. A new ‘Schedule Revision’ loads the new schedule directly into the system memory and replaces the old schedule instantly, without any pausing or stopping time.
  • Meeting the requirement of making real-time data available to other systems in less than one second. This was done through in-memory caching of mapping schedule timetables and in-memory caching of the results of frequently requested REST API endpoint data to reduce the time for each API request.
  • Testing time-sensitive tasks. This required simulation of thousands of real-time tram data packets shooting at the service every minute to make sure the service could handle an intensive workload. We used a combination of a packet sending simulator, command line service launchers and SQL Server Profiler traces to test the service.

The AVMIS now allows Yarra Trams to easily and effectively monitor their tram data. Some major benefits of integrating the new system include storing large volumes of data in a more readable and structured format, faster access to data when using complex queries and the automation of operating vehicles against scheduled timetables. AVMIS also provides high-level data security, easy migrations, regular backups and restores

The inoutput team have been responsive and efficient, and it’s clear that they’re on top of their game. They’ve been a great pleasure to deal with.

— Joachim Mika, Project Manager, YarraTrams.

Links:


Tram Image Credit: Yarra Trams.

Are you ready to get started?

Tell us about your project

Get Started