Dale Thoma works for Saab Systems
Grintek (SSG) in South Africa, where he supervises application
development within the tactical communications environment. His roles
at SSG include that of project manager, systems engineer, and line
While he's been employed at commercial companies in the
past, he's spent the majority of his career working in the defence
industry. He has an honours degree in Computer Science from the
University of Johannesburg.
Below follows an interview with Dale about SSG's usage of the NetBeans Platform.
Hi Dale, how does the NetBeans Platform
relate to what you're doing?
To provide you with a little
background information, we are involved with the tactical
interoperability of defence platforms. Amongst other things, we
implement Command & Control type applications (in particular
relating to Situational Awareness (SA)), data links, translations
between 3rd party systems (such as Combat Management Systems (CMS) or
Electronic Warfare Systems (EWS)) and tools for interoperability
The NetBeans Platform is heavily
ingrained into our strategies for future development. We are
currently implementing several projects on top of the NetBeans Platform for the South African National Defence Force (SANDF). These
projects relate to the upgrading of the tactical communications
backbone for the SANDF. Eventually, we’ll see somewhere in the
region of several thousand defence platforms that will make use of
the NetBeans Platform.
A big part of this is "KITT".
Can you talk a bit about that?
Kaizen Integrated Tactical
Technologies (KITT) is our development strategy for the next 10-15
years. It is the result of a Research & Development project
within our organization to create a common platform for all our
future tactical applications.
It is worth noting that KITT is a 2nd
generation product suite. Previous development efforts took place on
top of our own proprietary C++ plug-in framework (developed from
scratch) called Zenith. This plug-in platform has been successfully
deployed on the South African Navy (SAN) frigate battleships,
patrol boats and a Command, Control, Communication & Information
(C3I) mobile base station. My team is currently upgrading the SAN 209
submarines Tactical Data Link (TDL) using the Zenith
What's the current state of this project?
have already built two products on top of the KITT platform:
Symmetry, and a Tactical Geographic Information System (TGIS) for the
SANDF. The TGIS is primarily used for Situation Awareness, with the
focus primarily on Military Operations Other Than War.
Some more details on these two applications, with screenshots:
- Symmetry: A generic
analysis tool for determining interoperability between nodes on a
tactical network. The focus of the tool is currently to determine the
level of semantic interoperability between consort systems on different
network nodes implementing the Link-ZA standard. Link-ZA is the
tactical data link standard that forms a part of the CNIS. This product
allows for an NxN comparison of all defence platforms making use of
- Tactical Geographical Information System (TGIS): Based on a C3I system product developed for the South African Navy (SAN) for an Operational Boat Squadron (OBS)
base camp. The TGIS component has now been ported onto the KITT
platform as a NetBeans module. The TGIS can be used in the following
- Situational Awareness on a tactical level for peacekeeping missions.
- Real-time Common Operating Picture (COP) of ground, maritime and air platforms.
- Military operations other than conventional warfare.
We are currently in the process of
implementing various projects, one of which is a Data Link Reference
System (DLRS). The DLRS is a tool for determining interoperability
compliancy of tactical messaging for the SANDF. This includes
scenario generation, a tactical GIS and message compliancy
validation. The messages are based on the Combat Net Interoperability
Standard (CNIS), a South African TDL standard.
How does the
NetBeans Platform help you with all of this?
NetBeans Platform is the foundation of our development strategy. It
provides a modular plug-and-play architecture, including advanced
Swing components (such as a window system) for free. Based on the
NetBeans Platform, KITT, in turn, provides a set of services used by
applications that operate within the tactical environment. These
include the Generic Messaging System (GMS) that operates at
bit-level, the Central Message Bus (CMB) and an Open Data Model (ODM)
for data dissemination. KITT also provides and implements a Service
Oriented Architecture (SOA) extension for a distributed architecture
Here is a diagram of the place that
the NetBeans Platform fills in our architecture:
Why did you choose the platform
provided by NetBeans over its competitors?
We approached the selection of the
NetBeans Platform in a formal and methodical way. It was important to
me that we were able to justify our decision-making process and not
choose a platform blindly. The process applied was the following:
Formalise criteria for
Select applicable platforms
Research, and document comparison
Compile a common design to be
applied for implementation for each platform
Implement design for each platform
Document results and select the
most fit platform
Our criteria not only focused on the
technical aspects of each platform. We also looked at the companies
or organizations that owned these platforms, the main contenders
being NetBeans Platform, Eclipse RCP and Spring RCP. We researched and documented the
architecture and technology choices with a long-term view of what the
impact of each of these platforms would be.
Upon completing the research phase, we
implemented a common design for a messaging program to mimic certain
functionality that was indicative of our product environment. Each
product was required to be able to exchange free-text messages with
each platform. We documented the development process, looking at the
design deviations, technical issues, duration, support etc. The
results from the research phase coupled with prototyping allowed us
to compile a fitness result. The NetBeans Platform was by far the
most-fit platform for our needs.
The NetBeans Platform proved to be the
most straightforward for implementation. The fact that the NetBeans
Platform relies only on Ant scripts to build contributed greatly to our
choice. Also, the NetBeans Platform's use of pure Swing (as opposed to Eclipse’s
use of SWT) means that integration with other products is seamless.
The NetBeans Platform does not force the design architecture to adhere to any
constraints such as the OSGi framework - Eclipse and (optionally Spring RCP) make use of OSGi.
Ease of implementation in
the NetBeans Platform allows intermediate level programmers to partake in the
development process with less training. The NetBeans Platform was more pure in
using vanilla Java as opposed to Eclipse; this allows us to migrate
to other future technology frameworks should there be a need. The use
of Swing and vanilla Java makes the NetBeans Platform the best-suited product for
OS independence i.e. running on both Windows and Linux platforms.
Do you have tips and tricks or
anything else you'd like to share with the NetBeans Platform
Getting started with the NetBeans Platform is easy.
I recommend going through the Top 10 NetBeans APIs screencast series. This
provides context and scope and gives an understanding of what is
available for a programmer on the NetBeans Platform. I also recommend
the tutorials provided by either the NetBeans IDE (FeedReader and
Paint Application) or to pick a tutorial from the NetBeans Platform learning trail. Make sure that you understand the Look-up API - it’s
fundamental for module interaction and behaviour (high-cohesion, low