NEESgrid logo

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:
Diagram of basic NTCP setup
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:

Two-system NTCP setup

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
  1. Setting up the development environment
    1. Developing on a NEES-POP
    2. Developing from CVS
  2. Looking at the client source code
  3. Working with NTCP control plugins
  4. Writing an NTCP control plugin
  5. Writing an NTCP control plugin in C
  6. 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.