there is a need to capture extra information, or process documentation, describing what actually occurred at execution M1 time. Process documentation is to electronic data Relationship M2 what a record of owner- p-assertions ship is to a work of art.
Provenance-aware applications create process documentation and store it in a provenance store offering long-term persistent, secure storage of process documentation (see Figure 1). This role accommodates a variety of physical deployments; for instance, a provenance store can be a single, autonomous service or (to be more scalable) a federation of distributed stores.
When process documentation is recorded, the provenance of data results can be retrieved by querying the provenance store and analyzed to suit the user’s needs. The provenance store and its contents might also need to be managed, maintained, or curated.
I received M1, M4 I sent M2, M3
Interaction p-assertions
computational
:
service
M: message f : function
M3 = f1(M1)
M2 = f2(M1,M4)
M2 is in reply to M1
of p-assertions we expect applications to adopt in order to document their execution. Figure 2 out- M3 lines a computational f1 service sending and f2 M4 Service state receiving messages and p-assertions creating p-assertions that describe its involvement in such activity.
In SOAs, interactions consist of messages exchanged between services. By capturing all interactions, one can ana-
lyze an execution and verify its validity or compare it with other executions. Therefore, process documentation includes interaction p-assertions, or descriptions of the contents of a message by a service that has sent or received it.
Whether a service returns a result directly or calls
I received M1 at time t I used algorithm x.y.z
Figure 2. Categories of p-assertions made by a computational service.
Data collection request 11 Blood test request 12 13 Brain death notif 18 Decision request
Decision + justification 19
Donor data request
14
Donor data 15
16 Blood test request
OPEN MODEL FOR PROCESS
DOCUMENTATION
Process documentation for many applications cannot be produced in a single, atomic
User X
burst but must be interleaved Is logged continuously with execution.
This makes it necessary for designers to be able to distinguish a specific item documenting part of a process from the whole process of documenta-
User X
tion. We view the former—a p- Is logged assertion—as an assertion made by an individual application service involved in the process. Figure 3. Provenance Thus, the documentation of a directed acyclic graph of a donation decision. process consists of a set of p-assertions made by the services involved in the process.
In order to minimize its effect on application performance, documentation must be structured so it can be constructed and recorded autonomously by services on a piecemeal basis. Otherwise, should synchronization be required among these services to agree on how and where to document execution, application performance might suffer dramatically. To satisfy this design requirement, we’ve identified various kinds
17 Blood test result
patient User X Brain Death Is logged Notification
13
Is based on
p-assertions
service state relationship
19 interaction
Data
Collection Is caused by Request 11
Donor Data Is response to Donor Request 14 Data 15
Is based on
Decision Request 18
Is response to
Donation
Decision 19
Is caused by Is justified by
Is based on
Blood Test Is caused by Request 12
Blood Blood Test Is response to Test Request 16 Result 17
Justification Report 19
User Y Is logged
User Y Is logged
other services, the relationship between its outputs and inputs is not generally explicitly represented in the messages themselves but is understood through analysis of the service’s business logic. To promote openness and generality, we make no assumptions about the technology (such as source code and workflow language) used by services to implement their business logic. Rather, we require services to provide information in the form of relationship p-assertions, or descriptions asserted by a service as to how it obtained output data sent in an interaction by applying some function or algorithm to input data from other interactions. (In Figure 2, output message M3
References:
Archives