Our excellent software engineers made the MicroDoc platforms and applications portable, maintainable, and open for extensions of the future. But our strength is not only about technology. The innovative team also tackled new business models and engagement forms: from traditional consulting and programming services they developed into a system integrator and finally helps customers to operate their complex computing environments with DevOps engagements.
At the core of our success within the automotive sector, is our capability to create custom virtual machines on non-standard embedded platforms. The first telematics and fleet-management project started 15 years ago with a porting job of an embedded Java™ virtual machine for a small handheld computer. Germany’s leading truck manufacturer spawned a project to optimize logistic processes for their freights truck fleets. We were engaged to implement Java on their handhelds, and our profound knowledge in mobile computing led to a cooperation also in the application development domain. The decision to use Java as a programming language for the solution as well as the introduction of a proper and extensible component architecture in the software was a key success factor for the client.
The customer solution was extended and expanded continuously, supporting multiple generations of handheld computers, after market add-ons and onboard devices (including changes of hardware architectures and operation systems), while we were able to maintain a single-source strategy for most of the functions needed and the portable Java code provided secure and reliable applications through all generations of devices. No significant change of the application code was needed when mobile phone became ubiquitous and the customers wish to run the services on Android phones.
But the auto industry never stops. Current cars and trucks became essentially computers or rather cyber centers on wheels. “In the early days, telematic and logistics functions were hosted on individual devices” says Georg Szeiler, system developer and team lead for logistics software. “Nowadays we need to be able to run and distribute our software functions on onboard and offboard systems and integrate seamlessly in existing large dashboard displays. Even though today’s hardware and software architectures are completely different from what we have seen in the beginning of the project, we can still use our Java based software component platform to extend the customer systems with the latest advanced functions required by the market”. Today the solutions supports functions like configurable workflows, navigation, advanced logistics support, eco telematics for efficient driving, remote diagnostics, and predictive maintenances as well as security, crypto and anti-theft measures.
From application developer to platform provider
It is interesting to see how this is all possible on a more technical level. When we started to develop Java applications on proprietary handheld computers, we made the decision to employ a strictly modular component model and a clearly layered service architecture. In addition, the engineers employed a methodology called “test driven development”. All software components are accompanied by test routines that are being used during the continuous development and deployment procedures and make sure that the introduction or exchange of components can be managed easily. “Today we have a build- and test-management system that allows us to run multiple thousands of tests on-site and remote in the customers integration labs” says Dr. Udo Schramm, project lead for on-board telematics software.
One obvious example of the advantages of the modular approach is the evolution of “connectivity” in vehicles: In the early days of handheld logistics support apps, there was no on-line whatsoever. The mobile computers were “loaded” with data in a cradle when the trucks came to their homebase. When the mobile computers were equipped with SIM cards, messages were passed by sending and receiving SMS. Later, when IP connections over the air became affordable, the apps started to talk to their backends through standardized protocols like MQTT. And our service architecture allowed for adoption of all the new technologies, including Edge, 2G, 3G, 4G etc. without touching much of the application code.
Based on these positive experiences, we offered the implementation of a connectivity gateway software stack when one of their customers decided to renovate their in-car communication gateway. We got the job and was even awarded the position of general contractor for the device – which also meant coordination of multiple hardware and software suppliers. The resulting telematics platform is a standard product of a leading German truck manufacturer and is being developed further into the 3rd generation as of today. The modular architecture also paid off in the headless communication device – i.e., when Automotive Ethernet was introduced on the hardware level to replace CAN and MOST communication in many situations. When Bluetooth was needed for interaction with after-market add-ons or tachograph applications – we just added another communication adapter to the mix.
Our software was developed into an almost generic in-car/in-truck platform and was also expanded with 3rd party APIs to allow other software and service suppliers to use functionality and process live truck data available on the built-in telematics devices. Using the Java platform API even allows to connect to and exchange live truck data with other peripheral devices or various kinds of services running in a server backend.
An essential addition to the platform was the introduction of “Over the Air (OTA)” software update. This transaction-oriented update mechanism allows for software updates in the field over wireless communication channels, even when they are as shaky as GSM connections in some parts of the world). It also supports so-called delta update mechanisms to compress the needed amount of data to be sent over-the-air to a minimum.
The next evolutionary step was to implement connectivity and security to integrate proprietary app stores. These stores offer apps from third party vendors which are targeted towards value-add functions which don’t fit into the mainstream portfolio of a truck vendor. Typical examples are apps to support domain specific functions like cargo temperature monitoring or apps that are made for regional markets like demobilization for theft protection in South America.
The best is yet to come…
The ever-expanding portfolio of functions and applications in cars and trucks calls for additional computing power and resources. Future models will be equipped with centralized high performance computing clusters with virtualized environment to handle the rising demand for MIPS. So far – so good. But what happens with the large installed base of telematics and fleet management systems in older trucks still on the road for many years? Are those vehicles cut off from the latest functional enhancements?
First of all, applications written to interface with the 3rd party APIs of the platform can be deployed on any kind of hardware. The Java based interfaces are stable and provide secure access to platform functions, no matter what underlying hardware is used. Second, functionality written in Java can be distributed between various hardware devices in a truck since they can communicate via standard interfaces with each other. The concept of “edge computing” can be applied and previously monolithic applications can use multiple CPUs in case additional computing power is needed. And finally, we offers the latest advances in Java technology: GraalVM Embedded. This new virtual machine product can create platform specific executables from Java code. The so called “native images” have a significantly smaller footprint than traditional Java applications with full JVMs and they provide better startup time. Replacing a conventional JVM on a smaller hardware with GraalVM Embedded gives your device more space and computing power for deploy brand new features on legacy systems.