|
||||||||
|
GTS System Architecture Overview The architecture of the GTS system is very modular. The major components fall into the following main categories:
Operating System The Operating System provides the machine level interface on which the Java and MySQL environments can run. Currently the GTS has been successfully run on many different distributions of Linux (Fedora or CentOS preferred), Mac OS X (Leopard, Snow Leopard, and Lion), OpenBSD, FreeBSD, and Windows platforms (WinServer, XP, Vista, Win7, etc). Java JDK The Java JDK provides the compiler and runtime environment for running the GTS. It is important to note that the Java "JDK" (Java Developer Kit) installation is required, rather than the "JRE" (Java Runtime Environment). The "JDK" includes the runtime environment, as well as the compiler, which is needed both to compile the GTS code, and by Tomcat to create te dynamic web interface pages (ie. "JSP" Java Server Pages). The "JRE" contains only the runtime environment and is unable to compile any Java code. MySQL Database The MySQL database is used as the persisent storage for the Accounts, Users, Devices, Events, and other data types. The complete list of currently configured data tables, along with a list of their contained fields/columns, can be displayed with the following command: cd $GTS_HOME bin/dbAdmin.pl -schemaAccess to the MySQL database is abstracted through the classes provided in the " org.opengts.dbtools "
package. The main class in this package is the "DBProvider " class. This allows
unplugging one database provider and plugging in another, such as Microsoft SQL Server or PostgreSQL
(partial support is available for both of these alternate DB providers).When we initially started development of the GTS system (back in 2006), we had started working on using Hibernate as our database access layer. At the time it did not provide the features that we required in the GTS (the GTS relies a lot on metadata provided by the database provider). However, revisiting the integration of Hibernate into the GTS is something that would be very welcome should someone wish to volunteer their expertise in this area. Tomcat Servlet Container The Tomcat Servlet container is used to run web-based modules, such as the " track.war ",
or "Track Servlet" user interface login module. It can also be used to
run the M2M "events.war "
event retrieval module, as well as various HTTP-based DCS modules, such as "gprmc.war " and
"gc101.war " (more information on these modules can be found in the
OpenGTS_Config.pdf
document).Runtime Configuration " .conf " files:Global system-level settings are configured in one of the " .conf " files available
in the GTS installation directory. There are several ".conf " files available which
are arranged in a hierarchy to allow for having configuration
files that seldom change, or other configuration files which may change more often. A property
setting may be specified in more than one file, however it will always be the last property
setting that "wins". That is, the value assigned to a property will always be the last value
assigned in the hierarchy.The following list describes the configuration files which are loaded, and their hierarchy. The properties defined in the " .conf " files closer to
the top of this list have a higher precedent than the same property defined in a file lower
in this list. That is, if a property is defined in more than one file, the property setting
in the file closer to the top of the list will have precedent (if a config file in this list
is not present, it will be skipped):
Most property changes defined in the " private.xml " and/or "private/private_common.xml "
file can be overridden with a property configuration setting in the "config.conf " file.
When attempting to make a configuration change to the system, first check the "config.conf "
file to see if a property override setting is available. If not, then go ahead and modify the
"private.xml " and/or "private/private_common.xml " file if necessary.Here are a few items that can be configured in the " config.conf " file:
The " config.conf " should be examined to see all of the available property
settings that can be configured within this file.GTS Libraries The GTS libraries are comprise of lower-level tools and utilities for performing common tasks, such as String or Date/Time manipulation, Base64 encoding, TCP/UDP Socket handling, Database Provider abstraction, etc. These library utilities are built from sources mainly in the following directories:
Device Communication Server (DCS) Modules A Device Communication Server (DCS) is the module that listens for incoming connections from a specific type of remote tracking device and understands how to communication with the device to parse incoming data, and insert the received events into the EventData table. In some cases
the DCS will also generate additional events based on changes in the Geozone arrival/departure state,
or detected changes in the digital inputs.There are essentially two types of DCS modules:
.conf "
files in the GTS installation directory are also used to provide runtime configuration to the DCS
process.GTS Track Servlet ( track.war )The track.war "Track Servlet" is very modular as well, and can be
broken down as describe in the following diagram:private.xml (and "private/private_common.xml "):The " private.xml " file (or "private/private_common.xml " file) plays
an important role in the display of the various web pages to the user.
Here are some of the functions performed by the "private.xml " and/or
"private/private_common.xml " files:
JSP Templates: The JSP (Java Server Pages) template defines the page 'outline' within which the various web pages will be displayed. The " JSPEntries " tag in the "private.xml " and/or
"private/private_common.xml " files defines which JSP template file to use.
The JSP files themselves usually reside in one of the following directories (before they are
built into the "track.war " file:
gts:var " and "gts:track
in the above JSP files.Web Pages: The web-pages which will be available to the user are defined in the " WebPages " tag
section of the "private.xml " and/or "private/private_common.xml " files.
Within this tag section, there will be a "Page " tag definition for each web page
that will be made available to the user for selection. The "Page " definition specifies
the Java 'class' that is to be used to create the content of the page, and whether the class definition
is optional (an optional "Page " definition will not generate an error if the class
is missing or not found).Other GTS Web-based Servlets The web-based servlets which are part of the GTS (other than the "Track Servlet" described above) include the following:
These various servlets obtain their runtime configuration from a combination of the " private.xml " (or "private/private_common.xml ") files, or the
various ".conf " files available in the GTS installation directory. |
|||||||
Copyright(C) 2007-2015 GeoTelematic Solutions, Inc., All Rights Reserved |