Title: Overview%20of%20Today
1Overview of Todays Talks
- Provenance Data Structures
- Recording and Querying Provenance
- Break (30 minutes)
- Distribution and Scalability
- Security
- Methodology
2Process Documentation Concepts and Data
Structures
by Simon Miles (sm_at_ecs.soton.ac.uk)
3Process Documentation
- The provenance of x is the process that led to x.
- How do we find the provenance of x?
- Two steps
- Document the process in an application
- Retrieve the process that led to X from the
documentation
4World View
- Every application is made up of actors
- Every change that happens is an action by an
actor - Actors communicate by sending messages.
- Every action is triggered by a message
- The outputs of (messages sent by) an actor are
caused by the inputs to (messages received by)
the actor
5Interaction in the Organ Transplant Process
Request healthcare record for patient PID1
Donor Data Collector
Electronic Healthcare Record System
6Request Message Contents
- ltsoapenvelopegt
- ltsoapheadergtlt/soapheadergt
- ltsoapbodygt
- ltechrsrequestgt
- ltechrspatientgt PID1 lt/echrspatientgt
- lt/echrsrequestgt
- lt/soapbodygt
- lt/soapenvelopegt
7Identifying a Message
- An interaction is a message being sent by one
actor and received by another - An interaction is identified by the following
- The source of the message (startpoint)
- The sink of the message (endpoint)
- A unique ID that distinguishes between
interactions with the same source and sink
8Interaction Key
Web Services Endpoint Reference
9Asserting the Content of a Message
- In asserting the content of a message it has sent
or received, an actor provides the following - A unique id for the assertion
- The style in which the content is asserted
- The content of the message
10Interaction P-Assertion
11Request Message Contents
- ltsoapenvelopegt
- ltsoapheadergtlt/soapheadergt
- ltsoapbodygt
- ltechrsrequestgt
- ltechrspatientgt PID1 lt/echrspatientgt
- lt/echrsrequestgt
- lt/soapbodygt
- lt/soapenvelopegt
12Styled P-Assertion
- ltpsinteractionPAssertiongt
- ltpslocalPAssertionIdgt1lt/pslocalPAssertionIdgt
- ltpsdocumentationStylegt
- http//www.pasoa.org/.../stylesAnonymisedPa
tient - lt/psdocumentationStylegt
- ltpscontentgt
- ltsoapenvelopegt
- ltsoapheadergtlt/soapheadergt
- ltsoapbodygt
- ltechrsrequestgt
- ltechrsanoymisedPatientgt x93ab4 lt/
echrsanoymisedPatientgt - lt/echrsrequestgt
- lt/soapbodygt
- lt/soapenvelopegt
- lt/pscontentgt
- lt/psinteractionPAssertiongt
13Asserting the State of an Actor
- In asserting its state, an actor provides the
following - A description of part or all of its state
- Optionally, the style in which it is asserted
- A unique id for the assertion
14Actor State P-Assertion
15Example (Donor Data Collector)
- ltpsactorStatePAssertiongt
- ltpslocalPAssertionIdgt 2 lt/pslocalPAssertionIdgt
- ltpscontentgt
- ltdonordataHeldOngt
- ltechrspatientgt PID5 lt/echrspatientgt
- ltechrspatientgt PID16 lt/echrspatientgt
-
- lt/donordataHeldOngt
- lt/pscontentgt
- lt/psactorStatePAssertiongt
16Data Within Assertions
- Application messages and actor states contain
parts, e.g. arguments to operations - These parts can have independent provenance
17Another Interaction
Donor Data Collector
Testing Lab
Blood Analysis Results
18Analysis Results Message Contents
- ltsoapenvelopegt
- ltsoapheadergtlt/soapheadergt
- ltsoapbodygt
- lttestlabanalysisResultsgt
- lttestlabsampleIDgt Sample3
lt/testlabsampleIDgt - lttestlabresultsgt negative lt/
testlabresultsgt - lt/testlabanalysisResultsgt
- lt/soapbodygt
- lt/soapenvelopegt
19Referring to Data ina P-Assertion
- ltsoapenvelopegt
- ltsoapheadergtlt/soapheadergt
- ltsoapbodygt
- lttestlabanalysisResultsgt
- lttestlabsampleIDgt Sample3
lt/testlabsampleIDgt - lttestlabresultsgt negative lt/
testlabresultsgt - lt/testlabanalysisResultsgt
- lt/soapbodygt
- lt/soapenvelopegt
20Pointing to Data Within Assertions
- In order to refer to a part of an assertions
content, we need to provide the following - The ID of the assertion
- How to access the part within the assertions
content
21Pointing to Data Within Assertions
- In order to refer to a part of an assertions
content, we need to provide the following - The ID of the assertion
- How to access the part within the assertions
content - In the example, the ID of the assertion is given
by - Interaction Key
- View Kind
- Local P-Assertion ID
22Pointing to Data Within Assertions
- In order to refer to a part of an assertions
content, we need to provide the following - The ID of the assertion
- How to access the part within the assertions
content - In the example, the ID of the assertion is given
by - Interaction Key
- View Kind
- Local P-Assertion ID
- The data part is given by a data accessor, such
as an XPath expression - / soapenvelope / soapbody / testlabanalysisResu
lts / testlabsampleID
23Related Interactions
Electronic Healthcare Record
Donor Data Collector
User Interface
Blood Analysis Results
Organ Donation Decision
24Functional View of Decision
Lab Results
Healthcare Record
lttestlabresultsgt negative lt/ testlabresultsgt
ltechrsrecordgt lt/ echrsrecordgt
Diagnose Potential Organ
ltdonordecisiongt fit for donation
lt/donordecisiongt
Decision
25Functional View of Decision
Lab Results
Healthcare Record
lttestlabresultsgt negative lt/ testlabresultsgt
ltechrsrecordgt lt/ echrsrecordgt
Diagnose Potential Organ
Parameter Names
ltdonordecisiongt fit for donation
lt/donordecisiongt
Decision
26Functional View of Decision
Object
Object
Lab Results
Healthcare Record
lttestlabresultsgt negative lt/ testlabresultsgt
ltechrsrecordgt lt/ echrsrecordgt
Relation
Diagnose Potential Organ
Subject
ltdonordecisiongt fit for donation
lt/donordecisiongt
Decision
27RelationshipP-Assertion
28Sharing Context
- To connect assertions made by different actors
some information must be shared. - For example
- A sender receiver in an interaction need to use
the same interaction key. - An actor might like to inform other actors as to
which provenance store it used to store
assertions. - Messages can be marked as being part of the same
process.
29Demarcating Processes
Run 1
Run 2
Testing Lab
Testing Lab
Donor Data Collector
Donor Data Collector
User Interface
User Interface
30Demarcating Processes
Run 1
Run 2
Testing Lab
Testing Lab
Donor Data Collector
Donor Data Collector
Tracers
User Interface
User Interface
31Tracers
- Tracers are added by an originating actor
- Tracers are passed between actors if the
messages are part of the same process
32Interaction Context
- States some metadata about an interaction.
- It contains
- An interaction key for that interaction
- And interaction metadata.
- Examples of such metadata are
- Tracers
- References to provenance stores that contain
assertions about the interaction.
33P-Header
- Interaction Contexts can be transferred in
P-Headers. - P-Headers are additional provenance specific
information added to existing application
messages. - P-Headers can also be used to assign an
interaction key to the message that its sent in.
34P-Header
35Message with P-Header
- ltsoapenvelopegt
- ltsoapheadergt
- ltpHeadergt
- ltinteractionKeygt
- ltmessageSourcegt Donor Data Collector
lt/messageSourcegt - ltmessageSinkgt Testing Lab
lt/messageSinkgt - ltinteractionIdgt 345 lt/interactionIdgt
- lt/interactionKeygt
- ltinteractionMetaDatagt
- ltlinkgt http//DDC.provenance.store
lt/linkgt - lttracergt http//process/9467 lt/tracergt
- lt/interactionMetaDatagt
- lt/pHeadergt
- lt/soapheadergt
- ltsoapbodygt lt/soapbodygt
- lt/soapenvelopegt
36Summary
- Our data structures allow assertions about past
processes to be succinctly and exactly specified - Interaction and actor state p-assertions can be
styled, so that what is asserted differs from
that which actually occurred in a well-specified
way - Relationship p-assertions express functions
between wholes or parts of p-assertions - Actors share context to ensure that consistent
identifiers are used throughout documentation - Context can include process identifiers, called
tracers
37Questions?
- Simon Miles
- sm_at_ecs.soton.ac.uk