|
Autrace: a brief functional and technical description
Autrace is designed as an extensible modular system for performing the tasks of intelligent logistics, vehicle tracking and navigation, in a secure and efficient manner. It is modular, because every major functional part of the system is completely encapsulated and carefully severed from the rest. It is extensible, because the modules are designed and developed around programming interfaces that are conceptually specific yet open for various implementations.
In practice, the main advantages of modularity and extensibility are the following:
- issue scope localization: the development of each part of the system (database persistence, TCP/IP communication, central management and registry, tracking devices handling, client platform support, GUI, reporting...) can be easily assigned to separate teams, which only have to adhere to strict interface specifications in order for the whole to merge seamlessly. Meaning, each team is free from being concerned with the problems other teams might have.
- new demands adaptability: a new client platform (e.g. intelligent mobile device) or a new tracking device may be quickly and effortlessly incorporated into the existing system by simply adding another implementation of one of the specified interfaces. The system will always be up-to-date with the most popular new tools and gadgets at the very low cost and with the extremely short time-to-market.
- ease of maintenance and support: the potential bugs can be less painfully hunted down and repaired, the eventual new features requests are promptly addressed and dealt with, the future maintenance and support teams will be more easily trained. The system is kept under tight control and supervision even though being constantly reconfigured, upgraded, improved and open for every possible progressive idea.
Technologically speaking, the Autrace system is a cutting-edge product, adhering to the state-of-the-art patterns of object-oriented design, and implemented using the most recent and commonly approved programming environments, tools and libraries.
The Autrace system is 100% pure Java based, which makes it inherently secure and truly portable. Java Standard Edition (J2SE) libraries of Java Database Connectivity (JDBC), Socket Programming, Remote Method Invocation (RMI), Internationalization and Swing, and Java Enterprise Edition's (J2EE) Java Servlet Technology, JavaServer Pages (JSP) and JSTL and JavaServer Faces Technology are mainly used. Some most popular third party open source solutions were included, in order to realize the use of lightweight inversion-of-control (IOC) container (the Spring Framework), data persistence (Hibernate), event logging (log4j), and plenty of other useful packages were used from the bountiful Apache Software Foundation repertoire.
The system is built around a central core, called the Autrace Server, actively residing on an internet-enabled computer. The base of the Autrace Server is a SQL database (RDBMS), by its virtue completely secure, robust, scalable, and highly efficient. The object/relational mapping (ORM) and transparent object persistence are applied to the database access, encapsulated in the 'dao' (data access object) module, one of the three Autrace core modules. The other two are 'bean manager', which maintains the internal system organization, and 'registry', which keeps record of the connected external clients.
Autrace Server's supplemental modules are the 'bean controls' module, which contains the control structures for certain business objects (TraceDevice, TracedObject, Map, Plan) that need to be remotely exported for the external clients to access, and the trio 'trace device connection', 'trace record parser' and 'trace command composer', that provides the support for all varieties of existing and yet-to-come tracking devices and their different types of connecting to the Autrace Server, formats of tracking records they use, and rules of composing the commands they respond to, respectively.
Different kinds of Autrace Clients, running on different platforms (for example: PC standalone application or web enabled applet, web servlet, handheld or mobile device application), remotely connect to the Autrace Server from anywhere on the Internet via the standard Java RMI protocol. The Autrace Client is designed following the commonly used MVC (Model-View-Controller) pattern, which further modularizes the architecture by completely decoupling the business logic from the presentation layer (GUI). Optimistically, a migration to another client platform would then imply only re-creating or adapting the presentation layer, leaving the business logic intact. Clients are fully user-configurable, not only in terms of functionality, but also in appearance, using the Java Internationalization, Resource Bundles, Look and Feel and other design techniques.

|