Version 1 (modified by Rudra Dutta, 13 years ago) (diff)







This wiki page serves as the Status Report following GEC11 for the IMF project.

  • Draft created by Rudra Dutta on September 10, 2011
  • Modified by IMF team during ...
  • Final version released on ...

See post-GEC10 status report. Between GEC10 and GEC11, the main focus of the IMF project was:

  • Streamlining and improving the pS IMFRealTime service developed before GEC10
  • Creating a standalone standard pS command-line client that can access IMF-obtained measurement data
  • Creating a standalone standard pS GUI client for the same purpose
  • Starting work on defining and developing the OMF-compatible interface to the IMF substrate control handler

The first three of these resulted in deliverables in this cycle; for the fourth, a deliverable is expected at a future GEC.

Due to shortage of demo and poster space at GEC11, the IMF team did not receive demo or poster space. We separately demonstrated the new IMF capabilities to GPO at an individual meeting at the GEC, and a followup webex meeting post-GEC.

Major Accomplishments

Milestones Achieved

  • IMF: S3.e Demonstration at GEC11 and Experimenter Outreach
  • IMF: S3.f Documentation and Code Release

Deliverables made

Description of work performed during last quarter

IMF project achievements for this first part of Spiral 3 consist of:

  • Streamlining and improving the pS IMFRealTime service developed before GEC10
  • Creating a standalone standard pS command-line client that can access IMF-obtained measurement data
  • Creating a standalone standard pS GUI client for the same purpose
  • Starting work on defining and developing the OMF-compatible interface to the IMF substrate control handler
  • Demonstrating new capabilities at GEC11

Activities and Findings

At the GEC10 demo, IMF’s PSM and MH communicated using pS query (GEC8 demo and before – used proprietary (arbitrary) XML-RPC interaction). The MH integrated new pS service “IMFRealTime” (based on “skeleton” service of pS) – it fields pS queries from the outside world, then triggers measurements.

In the GEC11 version, the “IMFRealTime” service was updated to subsume true MP+MA (with database) functions: this enables the IMF MH to serve more versatile pS queries. pS queries can be sent by clients without going through the rest of IMF. All measurements, triggered as well as scheduled, are stored in the database.

The GEC11 view of the IMF code is shown below in terms of the system architecture at GEC8 in the diagram below.

Doodling on architecture diagram to show GEC11 code structure

The Java subscriber to the XMPP pub-sub service is not packaged in this release; the previously supplied code can, without change, be used (as part of a SILO service or standalone, as before), to extract the measurement data stored in the XMPP server. The difference in this version is in how the IMF Pub-Sub Module acquires that data - it can now use a perfSONAR query to access the Measurement Handler (the IMF PSM can continue to reach the MH using an XML-RPC query as before as another alternative).

In the MH, the pS capability is introduced by including a new pS service that we have called the "IMFRealTime" pS service. (Note: this name may be somewhat misleading and may change in subsequent releases; see discussion below.) The IMFRealTime service is different from a normal Perfsonar service (MA or MP) in the sense that it implements a bit of both. It uses the mh Perl module and expands Perfsonar's configuration file to provide the MP service. However, instead of sending the results to an MA, the collected data are saved locally.

The main reason behind this solution is that we want to avoid the delay introduced by adding an extra layer of database between the users and the MP. Consequently, the IMFRealTime service also needs to provide a user interface for real-time user queries in the absence of a standard Perfsonar MA. In essence, the IMFRealTime service acts as a pS MP service (that uses previously developed IMF Measurement Handler capability to gather measurement data), but also looks like a pS MA service to external users who issue queries to obtain measurement data from the Measurement Archive. In fact, internally, it uses shared memory as inter-process communication to access the most fresh data in response to user queries. The shared memory acts as the rendezvous instead of the usual MA database.

About "RealTime" Nomenclature: This behavior is obviously not actually "real-time" in terms of the time when measurement is made. In contrast, the original XML-RPC approach is "real-time" in that measurements are "triggered", or undertaken (by the MH) in response to incoming user queries. Rather, the behavior is "real-time" in only the sense that the IMFRealTime service looks for the most recent available data in response to user queries. To avoid this potential confusion, we are considering re-naming the IMFRealTime pS service to something else in future releases, and use the term "real-time" exclusively to refer to cases where actual fresh measurements are undertaken once user queries are received. In the future, we hope to investigate the possibility of triggered real-time measurements using the pS pathway as well; at this time, it appears this may not be a suitable match, since the pS architecture relies on static configuration file for measurements, and thus clearly separates the data query from collection.

The developer notes, and other documentation included in the code below, provide more details regarding specifics.

Project Participants

  • Rudra Dutta, George Rouskas (NCSU)
  • Shu Huang, Ilia Baldine (RENCI)
  • Keren Bergman, Michael Wang, Bala Bathula, Cathy Chen (Columbia U)


Integrated quarterly report and code documentation (this wiki)


Participants of the IMF team attended GECs as well as meetings of the Instrumentation and Measurement Working Group as possible. We have previously collaborated with the GENI LEARN project team, and progressing toward deploying IMF in LEARN.


The IMF team continued to collaborate with Deniz Gurkan of the GENI project LEARN.

The IMF team collaborated with Martin Swany of the perfSONAR team to define and discuss the requirements of IMF as a pS usecase, resulting in the articulation of an alternate type of pS client and functionality, one that more nearly matches the needs of real-time oriented systems such as IMF.

Other contributions


Code Release

Code Snapshot

The GEC10 version of the IMF system can be built from source in the following tarballs:

Documentation and Release Notes

The diagram above (in "Activities/Findings" section) shows where these tarballs fit in. The pubsub_for_perfsonar.tar.gz file (PubSub for perfSONAR) replaces the imf.tar.gz file of previous releases: the internal file heirarchy is the same, but the top-level name is different: "imf_pfsr" instead of "imf"; this is a kluge that will be fixed in the next release. As a consequence, this version of the code can only use pS query to reach the MH, the previous XML-RPC option is not available in this cut (the MH is still capable of it).

The following developer's notes on the IMFRealTime pS service provide more detail which should be helpful in using this code. This file is also included as "doc/README.imf" in the perfsonar_imf_realtime.tar.gz tarball. In addition, the following diagram of the code organization for the "PubSub for perfSONAR" module (pubsub_for_perfsonar.tar.gz) may be helpful.

No image "PubSub_PerfSONAR_Source_Code_Folder_Structure.png" attached to IMF-GEC11-QSR

Attachments (6)