Using WebHLA to Integrate
HPC FMS Modules with Web/Commodity based
Distributed Object
Technologies of CORBA, Java, COM and XML
Geoffrey C. Fox, Ph. D., Wojtek
Furmanski, Ph. D.,
Ganesh Krishnamurthy, Hasan T.
Ozdemir, Zeynep Odcikin-Ozdemir, Tom A. Pulikal, Krishnan Rangarajan, Ankur Sood
Northeast Parallel
Architectures Center, Syracuse University
111 College Place, Syracuse
University, Syracuse NY 13244-4100
{gcf, furm, gkrishna,
timucin, zeynep, tapulika, krrangar, asood} @ npac.syr.edu
Keywords:
Interactive Simulation,
Military, Personal Computers, Standards
ABSTRACT
HLA standards
for interoperability between various DoD Modeling and Simulation paradigms are
being enforced in parallel with the rapid onset of new Object Web / Commodity
standards for distributed objects and componentware, emergent at the crossroads
of CORBA, COM, Java, and XML technologies. WebHLA explores synergies between
and integrates both trends by offering Object Web based implementation of the
HLA framework. Our goal is to deliver a uniform platform that facilitates
conversion of legacy codes to and development of new codes in compliance with
HLA, HPC and Object Web standards. We outline here the overall design of
WebHLA, we summarize the system components prototyped so far and we illustrate
our approach for one HPC FMS application – Parallel CMS (Comprehensive Mine
Simulator) - in the area of large scale minefield simulation and countermine
engineering.
1.
INTRODUCTION
We present here early results of our work on Web / Commodity based High Performance Modeling and Simulation, conducted as part of the academic branch of the Forces Modeling and Simulation (FMS) domain within the DoD HPC Modernization Program. Our approach explores synergies between ongoing and rapid technology evolution processes such as: a) transition of the DoD M&S standards from DIS and ALSP to HLA; b) extension of Web technologies from passive information dissemination to interactive distributed object computing offered by CORBA, Java, COM and W3C WOM; and c) transition of HPCC systems from custom (such as dedicated MPPs) to commodity base (such as NT clusters).
One common aspect of all
these trends is the enforcement of reusability and shareability of products or
components based on new technology standards. DMSO HLA makes the first major
step in this direction by offering the interoperability framework between a
broad spectrum of simulation paradigms, including both real-time and logical
time models (DMSO 1998).
However, HLA standard specification leaves several implementation decisions open and to be made by the application developers - this enables reusability and integrability of existing codes but often leaves developers of new simulations without enough guidance.
In WebHLA, we fill this gap by using the emergent standards of Web based distributed computing – we call it Pragmatic Object Web (Orfali 1998; Fox et al. 1999) - that integrate Java, CORBA, COM and W3C WOM models for distributed componentware as illustrated in Fig. 1.
Figure 1: Pragmatic Object Web concepts and components.
We believe that WebHLA, defined as the convergence
point of the standardization processes outlined above will offer a powerful
modeling and simulation framework, capable to address the new challenges of DoD
computing in the areas of Simulation Based Design, Testing, Evaluation and
Acquisition.
In this document, we summarize the WebHLA architecture (Section 2), we review the status of WebHLA components as of Feb ’99 (Section 3) and we illustrate our approach on example of one large scale HPC FMS application – Parallel CMS (Section 4).
2. WEBHLA
OVERVIEW
The
overall architecture of WebHLA follows the 3-tier architecture of our Pragmatic Object Web (Fox et al. 1999)
(see Figure 1) with a mesh of JWORB (Java Web Object Request Broker) based
middleware servers, managing backend simulation modules and offering Web portal
style interactive multi-user front-ends. JWORB is a multi-protocol server
capable to manage objects conforming to various distributed object models and including
CORBA, Java, COM and XML. HLA is also supported via Object Web RTI (OWRTI) i.e. Java CORBA based implementation of
DMSO RTI 1.3, packaged as a JWORB service. As illustrated in Fig. 1, objects in
any of the popular commodity models can be naturally grouped within the WebHLA
framework as HLA federates and they can naturally communicate by exchanging
(via JWORB based RTI) XML-ized events
or messages packaged as some suitable FOM interactions.
Figure 2: Example of protocol integration support in JWORB.
HLA-compliant
M&S systems can be integrated in WebHLA by porting legacy codes (typically
written in C/C++) to suitable HPC platforms, wrapping such codes as WebHLA
federates using cross-language (Java/C++) RTICup API, and using them as
plug-and-play components on the JWORB/OWRTI software bus. In case of previous
generation simulations following the DIS (or ALSP) model, suitable bridges to
the HLA/RTI communication domain are also available in WebHLA, packaged as
utility federates. To facilitate experiments with CPU-intense HPC simulation
modules, suitable database tools are available such as event logger, event
database manager and event playback federate that allow us to save the entire
simulation segments and replay later for some analysis, demo or review
purposes. Finally, we also constructed SimVis – a commodity (DirectX on NT)
graphics based battlefield visualizer federate that offers real-time
interactive 3D front-end for typical DIS=>HLA entity level (e.g. ModSAF
style) simulations.
In
the following, we describe in more detail in Chapter 3 the WebHLA components
listed above, followed (in Chapter 4) by an example of using the system to
integrate a realistic large scale HPC FMS simulation.
3. WebHLA COMPONENTS
3.1 JWORB based Object Web RTI
DMSO’s longer range plan includes transferring HLA
to industry as CORBA Facility for Modeling and Simulation.
Figure 3: Top view representation of the Object Web RTI.
Anticipating these developments, we have recently
developed in one of our HPCMP FMS PET projects at NPAC an Object Web based RTI
(Fox et al.1998c) prototype, which builds on top of our new JWORB (Java Web
Object Request Broker) middleware integration technology. JWORB is a
multi-protocol Java network server, currently integrating HTTP (Web) and IIOP
(CORBA) and hence acting both as a Web server and a CORBA broker (see Fig. 2)
Such server architecture enforces software economy and allows us to efficiently
prototype new interactive Web standards such as XML, DOM or RDF in terms of an
elegant programming model of Java, while being able to wrap and integrate
multi-language legacy software within the solid software engineering framework
of CORBA.
We are now testing this concept and extending JWORB
functionality by building Java CORBA based RTI implementation structured as a
JWORB service and referred to as Object
Web RTI (see Fig. 3). Our implementation includes two base user-level
distributed objects: RTI Ambassador and Federate Ambassador, built on top of a
set of system-level objects such as RTI Kernel, Federation Execution or Event
Queues (including both time-stamp- and receive-order models). RTI Ambassador is
further decomposed into a set of management objects, maintained by the
Federation Execution object, and including: Object Management, Declaration
Management, Ownership Management, Time Management and Data Distribution
Management.
Figure 4: RTI services (rounded
rectangles) implemented as CORBA objects in Object Web RTI.
RTI is given by some 150
communication and/or utility calls, packaged as 6 main management services:
Federation Management, Object Management, Declaration Management, Ownership
Management, Time Management, Data Distribution Management, and one general
purpose utility service. Our design is
based on 9 CORBA interfaces, including 6 Managers, 2 Ambassadors and RTIKernel.
Since each Manager is mapped to an independent CORBA object (see Fig. 4), we
can easily provide minimal support for distributed management by simply placing
individual managers on different hosts.
Figure 5: Architecture of C++ RTI API that allows to link C++ RTI clients with
Java RTI services of OWRTI.
To be able to link C++ clients with OWRTI, we
developed a C++ library (see Fig. 5) which: a) provides RTI C++ programming
interface; and b) it is packaged as a CORBA C++ service and, as such, it can
easily cross the language boundaries to access Java CORBA objects that comprise
our Java RTI. Our C++ DMSO/CORBA glue library uses public domain OmniORB2.5 as
a C++ Object Request Broker to connect RTI Kernel object running in Java based
ORB. RTI Ambassador glue/proxy object forwards all method calls to its CORBA
peer and Federate Ambassador, defined as another CORBA object running on the
client side, forwards all received callbacks to its C++ peer. This library is
running on Windows NT, IRIX and SunOS systems.
3.2
Parallel ports of selected
M&S modules
In parallel with prototyping core WebHLA technologies described above, we are also analyzing some selected advanced M&S modules such as the CMS (Comprehensive Mine Simulator) system developed by Steve Bishop’s team at Ft. Belvoir, VA that simulates mines, mine fields, minefield components, standalone detection systems and countermine systems including ASTAMIDS, SMB and MMCM. The system can be viewed as a virtual T&E tool to facilitate R&D in the area of new countermine systems and detection technologies of relevance both for the Army and the Navy. We recently constructed a parallel port of the system to Origin2000, where it was packaged and can be used as either a DIS node or as an HLA federate.
Origin systems support
a variety of parallel programming tools. These include: a) Parallel Compilers that take sequential
Fortran, C or C++ codes, optionally with some user-provided compiler directives
(pragmas), and they return the corresponding parallel codes, generated in
either fully automatic and semi-automatic (compiler directives based )
parallelization modes; b) Message Passing libraries such as MPI, PVM, and Cray
SHMEM; c) Scientific & Math Libraries as made available in the Silicon
Graphics Cray Scientific Library (SCSL) and other third party libraries; d) Operating system-based inter-process and
inter-thread communication via standards-based sockets, pthreads, and shared
memory.
Based on the analysis
of the sequential CMS code, we found the semi-automatic, compiler directives
based approach as the most practical parallelization technique to start
with in our case. The most
CPU-intensive inner loop of the CMS simulation runs over all mines in the
system and it is activated in response to each new entity state PDU to check if
there is a match between the current vehicle and mine coordinates that could
lead to a mine detonation. Using directives such as 'pragma parallel' and 'pragma pfor' we managed to partition the
mine-vehicle tracking workload over the available processors, and we achieved a
linear speedup up to four processors. For large multiprocessor configurations,
the efficiency of our pragmas based parallelization scheme deteriorates due to
the NUMA memory model. Indeed, on a distributed shared memory architecture such
as Origin, the latency for a CPU to access main memory increases with the
distance to the physical memory accessed and with the contention on the
internal network. In consequence, the cache behavior of the program has a
significant impact on the performance. To assure scalability across the whole
processor range, we need therefore to enforce data decomposition that matches
the already accomplished workload/loop decomposition. Our initial experiments
with enforcing such full decomposition by using a combination of pragma
directives did not succeed, most likely due to rather complex object oriented
and irregular code processed in the CMS inner loop. We are currently rebuilding
and simplifying the inner loop code so that the associated memory layout of
objects is more regular and hence predictable. For example we are replacing
linked lists over dynamic object pointers by regular arrays of statically
allocated objects etc.
Having ported the CMS
code to Origin2000, we also converted it from DIS to HLA simply by mapping all
PDUs to the corresponding HLA interactions and by using C++ RTI API that offers
connectivity between the C++ and Java RTI models. An HLA port abstraction layer
was introduced that allows for easy switch between DIS and HLA communication
modes with the minimal modification of the original code. CMS Federate
Ambassador receives interactions from RTI and it passes them to the HLA port
that translates them into DIS PDU, to be further parsed internally by the
legacy CMS code. In a similar way, HLA port translates PDUs generated
internally by the CMS into HLA interactions before passing them to the RTI
Ambassador.
3.3 JDIS: DIS-HLA Bridge and Event I/O Manager
DIS/HLA bridge for CMS
described above was constructed internally inside the CMS federate code. In an
alternative approach, explored for ModSAF modules, we use another DIS-HLA
bridge that operates as an independent process and acts as DIS node on the input
channel and as an HLA federate on the output channel. We constructed such a
bridge called JDIS in Java, starting from the free DIS Java parser offered by
the dis-java-vrml working group of the Web3D Consortium and completing it to
support all PDUs required by the linked ModSAF + CMS simulators.
Figure 6: JDIS Front-End control and display panel.
JDIS provides linkage between
DIS applications such as ModSAF and CMS running as HLA application. JDIS
receives DIS PDUs produced by ModSAF, translates them into HLA interactions and
lets RTI forward them to CMS.
JDIS can also write / read PDUs from a file and
hence it can be used to log and playback sequences of simulation events. We
also used this tool to generate point-like PDU probes as well as stress test
PDU sequences when testing and measuring performance of Parallel CMS.
Visual front-end of JDIS, illustrated in Fig. 6,
supports runtime display of the PDU flow, and it offers several controls and
utilities, including: a) switches between DIS, HLA and various I/O (file,
database) modes; b) frequency calibration for a PDU stream generated from file
or database; c) PDU probe and sequence generators; d) simple analysis tools
such as statistical filters or performance
benchamrks that can be performed on accumulated PDU sequences.
We have written implementations for converting most
of the PDUs in the XML format. These include the Entity State, Detonation,
Collision, MineField, Transmitter, Receiver, Acknowledge, Designator, Fire,
Repair Response, Repair Complete, Resupply Cancel, Resupply Received, Signal,
Service Request, Signal, Start / Resume, Stop / Freeze, Mine, MineField
Request, MineField Response, MineField State and MineFeld Nack.
There is an ongoing
standardization effort within the HLA community called A Real-Time Platform Reference FOM (RPR-FOM) with the aim to define
a FOM that offers complete mapping of DIS. Our JDIS will fully comply with
RPR-FOM after the standard specification if completed.
3.4 PDUDB: Event DB Logger and Playback Federate
Playing the real
scenario over and over again for testing and analysis is a time consuming and
tedious effort. A database of the equivalent PDU stream would be a good
solution for selectively playing back segments of a once recorded scenario. For
a prototype version of such a PDU database we used Microsoft’s Access database and
Java servlets for loading as well as retrieving the data from the database
using JDBC.
The PDU logger servlet
receives its input via HTTP PORT message in the form of XML-encoded PDU
sequences. Such input stream is decoded, converted to SQL and stored in the
database using JDBC. The DIS header field common to all the PDUs is stored in a
separate table from the PDU bodies. This table has all the attributes in the
DIS header like the PDU type, timestamp, etc. When the PDUs are generated from
the database this timestamp value is used for calculating the frequency with
which the PDUs are to be send. Some PDUs have some variable number of
attributes like articulation parameters etc., and these attributes are stored
in separate tables so the entire database is normalized.
The Playback is done
using another servlet that sends the PDUs generated from the database as a
result of a query. The servlet is activated by accessing it from a web browser.
Currently the queries are made on timestamps. But any possible queries can be
made on the database to retrieve any information. The servlet can send the PDUs
either in DIS mode or in HLA mode.
PDU-DB also has a
dynamic HTML interface to the tables and data stored in the database. The
interface lets you select any of the PDU tables and browse quickly and
efficiently through the individual records or groups in the table.
3.5 SimVis: DirectX based Battlefield Visualizer
In our Pragmatic Object Web approach, we integrate
CORBA, Java, COM and WOM based distributed object technologies. We view CORBA
and Java as most adequate for the middleware and backend, whereas COM as the
leading candidate for interactive front-ends due to the Microsoft dominance on
the desktop market.
Of particular interest for
the M&S community seems to be the COM package called DirectX which offers
multimedia API for developing powerful graphics, sound and network play
applications, based on a consistent interface to devices across different
hardware platforms.
Figure 7: Sample screen from CMS simulation
in SimVis.
Using DirectX/Direct3X technology, we constructed a
real-time battlefield visualizer, SimVis (see Fig. 7) that can operate both in
the DIS and HLA modes. SimVis an NT
application written in Visual C++ and it contains the following components: a)
internal HLA-DIS bridge, constructed in a similar way as for Parallel CMS
discussed above; b) a fast Winsock library based PDU parser; c) Direct3D based
rendering engine. PDU parser extracts the battlefield information from the
event stream, including state (e.g. velocity) of vehicles in the terrain,
position and state of mines and minefields, explosions that occur e.g. when
vehicles move over and activate mines etc. The parser performs also suitable
type conversions for the network to NT data formats, it constructs the suitable
memory data structures and it passed them to the viewer.
SimVis visual interactive controls include base
navigation support in terms of directional keys (left, right, up, down, Home,
End) as well as some other modes and options, including: a) various rendering
modes (wireframe, flat, Gouraud; b) mounting the camera/viewport on a selected
vehicle or plane; c) several scene views such as Front, Top, Right, Left and
Satellite Views.
4.
APPLICATION EXAMPLE: PARALLEL CMS
We illustrate now how all WebHLA components
described above cooperate in one specific HPC FMS application – Parallel CMS.
Figure 8: Parallel CMS demo at SC’98
in Orlando, FL.
CMS is an advanced DIS
system under development by the Night Vision Lab at Ft. Belvoir, VA. CMS
simulates a broad spectrum of mines and minefield to interact with vehicles such
as those provided by ModSAF, on the virtual battlefield. Modern warfare can
require millions of mines to be present on the battlefield, such as in the
Korean Demilitarized Zone or the Gulf War.
The simulation of such battlefield arenas requires High Performance
Computing support. Syracuse University is building Parallel and Metacomputing
Support for CMS by porting the CMS module to Origin2000 and linking it with a
collection of distributed simulators handling terrain, vehicles and
visualization.
Our early results for
Parallel CMS were demonstrated at Supercomputing ’98. The overall configuration
of the demonstrated system, still based on the DIS communication and the
multicast/MBONE networking is
illustrated in Fig. 8 and it includes: a) Parallel CMS running on Origin2000;
b) a set of ModSAF vehicles running on SGI workstation; and c) real-time 3D
visualization front-ends, including Mak Stealth and our SimVis tool described
before.
More recently, we
completed the process of converting Parallel CMS from a DIS node to an HLA
federate, and we also constructed the JDIS bridge that allowed us to
effectively treat ModSAF nodes as HLA federates. Finally, we also completed the
PDUDB federate that allows us to log simulation events (DIS PDUs or the equivalent
HLA interactions) in an SQL database and reply the whole simulation or its
selected/filtered segments on demand.
Figure 9: Architecture
of WebHLA based Parallel CMS.
The overall
configuration of the most recent,. HLA-compliant version of Parallel CMS system
is presented in Fig 9. Parallel CMS federate runs on Origin2000 at ARL MSRC,
other modules (ModSAF, JDIS, PDUDB, SimVis) are running on NPAC SGI and NT
workstations. Using JDIS, we can easily switch between DIS and HLA modes and
between real-time and playback simulation modes. The latter is useful for
analysis and demonstrations. In particular, we also constructed a mobile laptop
demo in the playback mode with Microsoft Access based PDUBD federate, Javasoft
JDK based JDIS, and DirectX based SimVis.
5. SUMMARY
We presented here our approach towards building
WebHLA as an interoperable simulation environment that implements new DoD
standards on top of new Web / Commodity standards. In particular, we illustrated how HLA/RTI can cooperate with Java
(used in JWORB, OWRTI, JDIS), CORBA (used in JWORB, OWRTI), XML (used as
alternative representation for FED files and as a wire format for DIS PDUs) and
Mocrosoft COM (used via DirectX in SimVis front-end). Parallel CMS described
above is a rather sophisticated FMS application and yet we were able to
construct it in a low budget academic R&D environment by making the optimal
use and exploring fully the synergy between all involved Web/Commodity
technologies listed above.
Hence, our initial results are encouraging and we
therefore believe that WebHLA with evolve towards a powerful modeling and
simulation framework, capable to address new challenges of DoD and commodity
computing in many areas that require
federation of multiple resources and collaborative Web based access such as
Simulation Based Design and Acquisition.
6.
ACKNOWLEDGEMENTS
This work was partially funded by the DoD High
Performance Computing Modernization Program’s Programming Environment and
Training (PET) project, including ARL Major Shared Resource Center support,
Contract Number: DAHC 94-96-C-0010 with Raytheon Systems Company, and CEWES
Major Shared Resource Center support,
Contract Number: DAHC 94-96-C-0002 with Nichols Research Corp.
7. REFERENCES
Defense Modeling and
Simulation Office (DMSO) 1998, High Level Architecture, http://hla.dmso.mil.
D. Bhatia, V. Burzevski, M.
Camuseva, G. Fox, W. Furmanski and G. Premchandran, 1997, WebFlow
- a visual programming paradigm for Web/Java based coarse grain distributed
computing , Concurrency: Practice and Experience, vol. 9, no. 6, June 97,
555-577.
Robert Orfali and Dan Harkey,
1998, Client/Server
Programming with Java and CORBA , 2nd Edition,
Wiley.
G. C. Fox, W. Furmanski, H.
T. Ozdemir and S. Pallickara, 1999, Building Distributed Systems
for the Pragmatic Object Web, Wiley, (in progress).
G. C. Fox, W. Furmanski, S. Nair, H. T. Ozdemir, Z.
Odcikin Ozdemir and T. A. Pulikal, WebHLA
- An Interactive Programming and Training Environment for High Performance Modeling and Simulation, In Proceedings of the SISO Simulation
Interoperability Workshop, SIW Fall 98, paper SIW-98F-216, Orlando, FL, Sept
14-18, 1998)
G. C. Fox, W. Furmanski and
H. T. Ozdemir, 1998, Java/CORBA
based Real-Time Infrastructure
to Integrate Event-Driven Simulations,
Collaboration and Distributed Object / Componentware Computing, In Proceedings of PDPTA’98 (Las Vegas, NV,
July 98.
G. C. Fox, W. Furmanski, S. Nair, H. T. Ozdemir, Z.
Odcikin Ozdemir and T. A. Pulikal, WebHLA
- An Interactive Multiplayer Environment for High Performance Distributed
Modeling and Simulation, In Proceedings of
the International Comference on Web-based Modeling and Simulation,
WebSim99, San Francisco, CA January 17-20 1999.