Provenance Query interface to the provenance store:
functional specification of this interface can be found here.
XQuery interface to the provenance store:
documentation on using this interface can be found here.
In order to facilitate the recording and querying of provenance, PASOA has developed PReServ an implementation of the Provenance Recording Protocol (PReP).
Figure 1: PReServ Component Interactions
The Provenance Store Web Service is a repository for provenance documentation. It handles requests both to store and query such documentation and provides well defined interfaces for doing so. Figure 2 shows the layered design of the Provenance Store.
Figure 2: PReServ Layers
Normally, a SOAP message is sent to PReServ to either record or query provenance documentation. (SOAP is the Web Services messaging layer.) Based on the port that the message was sent to, the SOAP Message Translator strips off the HTTP and SOAP Headers and passes the contents of the SOAP body to an appropriate PlugIn. Each PlugIn is responsible for knowing how to handle the content of the message it receives. The content, however, must conform to the schemas distributed with PReServ. For example, the Store PlugIn handles messages in order to record data in the Provenance Store. The selected PlugIn then makes calls on the backend data store to generate an appropriate response for the received message. Currently, PReServ comes with in-memory, and database backends. Each of these backends implements the same API, the Provenance Store Interface. This abstraction makes it easy to integrate new backend stores without having to change already developed PlugIns.
The Provenance Store is accessed directly using Web Service calls. (See figure 1) However, developers may not want to deal with the intricacies of building their own SOAP messages to send to the Provenance Store. Therefore, PReServ provides a set of Java libraries to both record and query documentation from the Store. Figure 1 shows how the Java libraries (PS Client Side Library) can be used to interact with the Provenance Store. A recording API (Application Programming Interface) presents methods that are directly mapped to the messages that specified by PReP. A query API presents a set of basic methods for browsing the Provenance Store's hierarchy of data. Both APIs take method calls and translate them into Web Service invocations to the Store.
The third software component is an Axis Handler. Axis is one of the most common set of libraries for developing Java based Web Services. Therefore, PReServ provides a mechanism for "automatically" recording interactions for services developed using Axis. A developer can add this functionality by adding a provided Jar file to their classpath. The developer's Web Service is then wrapped by PReServ's Axis Handler, which then intercepts all incoming and outgoing data and records it to a configured Store. This "automatic" recording is shown in Figure 1, where two Axis Handlers wrap the WS Client and Web Service in order to record their interaction in the Provenance Store.
Warning: This release may not be complete and is not completely documented. It is intended only as a technology preview. We assume you have had experience developing web services and using Apache Tomcat.
Dependencies:
PReSev and Java 1.4:
PReSev and Java 1.4
Change Log:
Changes between 0.3 and 0.3.1
Changes between 0.2.6 and 0.3
Changes between 0.2.5 and 0.2.6
Changes between 0.2.4 and 0.2.5
Changes between 0.2.3 and 0.2.4
Changes between 0.2.2 and 0.2.3
Changes between 0.2.1 and 0.2.2
Changes between 0.2 and 0.2.1
Changes between 0.1.5 and 0.2
Changes between 0.1.4 and 0.1.5
Changes between 0.1.3 and 0.1.4
Changes between 0.1.2 and 0.1.3
Changes between 0.1.1 and 0.1.2
Changes between 0.1 and 0.1.1