Changes between Version 6 and Version 7 of Software/dOML/CollectingMeasurements
- Timestamp:
- Nov 26, 2007, 1:42:29 AM (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Software/dOML/CollectingMeasurements
v6 v7 30 30 [[BR]] 31 31 32 Within this scheme, the user defines in a XML format the measurement points and frequencies he/she is interested to collect from his/her application. Using this XML definition, an ORBIT web service will then automatically generates the source and compiled code for a specific ''OML Measurement API''. This specific API provides specific methods that the user can call within its C/C++ application code, whenever he/she wants to pass on measurement data to the OML collection service.32 Within this scheme, the user defines in a XML format the measurement points and frequencies he/she is interested to collect from his/her application. Optionally, the user can also define some filtering rules to apply on these measurements. Using this XML definition, an ORBIT web service will then automatically generates the source and compiled code for a specific ''OML Measurement API''. This specific API provides application-specific methods that handle type-safe data collection. The user can call these methods within its C/C++ application code, whenever he/she wants to pass on measurement data to the OML collection service. These methods within the ''OML Measurement API'' relies on a set of Dynamic OML Libraries to format these measurement data and forward them to the ''OML Collection Server''. This set of dynamic OML libraries are part of the standard system libraries that are installed on all the ORBIT ''baseline'' disk images. 33 33 34 === Example of Interface using OML Client Dynamic Library === 34 35 35 , and, as such, has a client application programming interface (API). A developer can use this client API through a web interface to define the measurement points and parameters for his or her application. Measurement points and their frequency of collection are an important part of ones experimental plan. 36 37 The definition of a measurement point is shown below. 36 * First, the user needs to define in a XML format the measurement points, the frequencies and any optional data filtering for the measurements to collect from the application. This definition is saved as an XML-based configuration file as shown below. 38 37 {{{ 39 38 <application id="foo"> … … 49 48 </application> 50 49 }}} 50 51 * Then, the user calls the ORBIT Web Service ''OML Generator'' to automatically generate the source and compiled C/C++ code of the ''OML Measurement API'' which corresponds to the above XML definition. The URL of this web service is "http://oml.orbit-lab.org/generator/wrapper" and it can be called using wget as shown below. As a result of this command, the user will get a TAR+GZIP file ''myDef.tgz'', which contains the source/header code and the compiled binary (as a static library) of the ''OML Measurement API''. The source code need not to be used, as the user can directly compile his/her code against the provided static library. 52 53 {{{ 54 wget -q http://oml.orbit-lab.org/generator/wrapper --post-file MyMeasureDefinition.xml -O myDef.tgz 55 }}} 56 51 57 52 58 Measurement point definitions are saved as an XML-based configuration file as shown above. The source code for the measurement client is automatically generated by the web-based OML service that accepts the xml file shown above and returns the autogenerated client API. This API contains application-specific methods that handle type-safe data collection. This source code can be compiled and linked with the application as illustrated by a Makefile and sample application code below.