Creating an NTCP Client
Paul Hubbard
Argonne National Lab
hubbard@mcs.anl.gov
Revision History
1.0 March 15, 2004
1.1 March 30, 2004 - Split development setup page into two, one for
each configuration
1.2 April 6, 2004 - On source page, add explanation of ogsaPath
1.3 April 9, 2004 - Fixed a couple of typos, added Ant and Java
sections to install
1.4 April 18, 2004 - Added GAR information and URL link to CVS
development page
1.5 May 4, 2004 - Added printout of control points to source code page
1.6 July 10, 2004 - Added loop to nclient, C gateway instructions from
Xin Feng
1.7 July 23, 2004 - More work on the C gateway page, added sub-list for
devel environments, various typos fixed.
1.8 July 30, 2004 - Updating for v3.2 of Globus and NEESGrid release
3.0.
Notation and conventions
Bold monospace type
denotes commands typed into the computer and
Monospace type
denotes output from a command.
Introduction
This document is an introduction to writing network-based control
systems for the NEESGrid project.
Control, in this context, means any program or hardware driven by the
NEESGrid Teleoperations Control Protocol, a.k.a NTCP. There are several
parts to NTCP; this document is about NTCP 'clients', or programs that
direct the movement of hardware or simulations.
Clients, despite the name, are the prime movers in NTCP. They define
what happens, who does it, and how.
Here's a diagram of the basic components. Green denotes
user-replaceable portions:

Examples are provided for each of the green boxes, never fear, and
we'll be using them as we work.
More elaborate systems are quite possible, here's one with two
different pieces of hardware under the control of one NTCP client:

Background Information
In writing an NTCP client, we will be using the NTCP Helper
API (PDF). This provides an abstraction layer between OGSA and our
Java code. You'll also need to be familiar with the NTCP control
plugin API (PDF) if you plan to write a control plugin.
Additionally, there's a document describing the architecture
and design of NTCP (PDF). All of these should be considered
background material for working with NTCP.
Table of contents
Due to its increasing length, I've created separate pages
for
- Setting up the development environment
- Developing on a NEES-POP
- Developing from CVS
- Looking at the client source code
- Working with NTCP control plugins
- Writing an NTCP control plugin
- Writing an NTCP control plugin in C
- Doxygen-generated source code documentation
Navigation links
Back to NEESGrid at Argonne
Back to home page
Support
This work was supported primarily by the George E. Brown,
Jr. Network for Earthquake Engineering Simulation (NEES) Program of
the National Science Foundation under Award Number CMS-0117853.