OPe NDAP User Versus Programmatic Access John Chamberlain
OPe. NDAP: User Versus Programmatic Access John Chamberlain, Developer, OPe. NDAP. org Thursday, February 22, 2007
Client Access Has Two Halves ● Client access has a left half and right half: User Client Programmatic Client ● User Client interacts with the user ● Programmatic Client interacts with the server ● ● Example: IDL uses the OCAPI to access OPe. NDAP data. IDL functions as the user client. The OCAPI is the programmatic client. In some applications the two halves are integrated, but in an OPe. NDAP solution often they are distinct.
The User/Programmatic Separation is Important ● OPe. NDAP is a middleware architecture ● OPe. NDAP is modular ● ● Client components are written by different groups for different purposes Separating the user client from the programmatic client aids design from a data validation and integrity standpoint
User Client Functionality ● Provides an interface for user input ● Guides the user through retrieval process ● Features lists and other choice tools ● Validates inputs field-by-field ● Has data handling or direction ability ● May be integrated into analysis or visualization system
Programmatic Client Functionality ● Has an API (programmatic interface) ● Validates inputs as a set ● Sets up communication sessions ● Formulates server query or queries ● Transforms data stream into an object ● May be able to manipulate the data object
The OCAPI: A Pure Programmatic Client ● Fully implements DAP data model in C ● Data retrieval API ● Data model access API ● Output API ● May be operated in unattended batch mode ● Works on virtually any hardware platform ● Has tiny embedded interactive user client
The ODC: A Combined Client ● A client may combine user and programmatic functionality as in the ODC or LAS ● Seemless integration ● Richer functionality ● Increased feedback and user control ● ● Hybrid borrowing aids rapid prototyping (eg use of Java data model and TMap) Con: lack of modularity, standardization
Use Case and Solution: the IDL Client ● Need to add basic OPe. NDAP functionality to existing analysis package ● Integration problems affected C++ library usage ● Must work on multiple platforms ● ● Basic data transfer and object construction required OCAPI solves problem
Use Case: Web Data Browser ● ● Want to quickly create a web tool to browse numerical values in large datasets. Useful for auditor or dataset integrity checker Solution: create a Java applet that uses the Java-OPe. NDAP lib or the OCAPI to access data and navigate to individual data elements The applet is the user client which leverages the programmatic client capabilities of Java. OPe. NDAP or the OCAPI
Conclusion: Key Observations ● ● ● Querying and presentation abilities are unique to a user client To the programmatic client the query is just a blob in most cases A programmatic client interfaces reliably with the data server The user client should segregate the GUI transactions from the data transactions The more sophisticated the programmatic client is the less need there is for a combined client
- Slides: 10