Service Orchestration Functional
Specification - Broken Reference Detection and Rules.
$Revision: 1.2 $
$Date: 2008/03/06 14:26:03 $
Note: This document contains hidden sections. You may show them
using the following links: Reader Notes: Hide
/ Show
: Author Notes: Hide
/ Show
1. Introduction
The
BPEL Module will support a modular approach to Validation. See Design Guidance Functional Specification. One of the valdiators will detect and report the presence of broken references inside the BPEL process document.
2. Use Cases and Scenarios
UC1: User deletes an entity which is referred to somewhere in the BPEL file, thereby creating a broken reference.
Scenario:.
- User is working with WSDL file or
Schema files or BPEL file. The user may be editing these files in the IDE or outside of the IDE.
- User deletes an entity in one of those files.
- One or more entitties in the BPEL process document refers to the deleted entity. These reference(s) are now "broken".
- Validation system should detect the broken reference(s) and report error condition to the user.
UC2: User renames an entity but does not use the Refactoring -> Rename action. Thereby creating a broken reference.
Scenario:
- User is working with WSDL file or Schema files or BPEL file. The user may be editing these files in the IDE or outside of the IDE.
- User renames an entity in one of those files and does so without making use of the IDE's Refactoring->Rename action. For instace the user directly edits the source code rather than using the Design View actions.
- One or more entitties in the BPEL process document refers to the renamed entity. These reference(s) are now "broken".
- Validation system should detect the broken reference(s) and report error condition to the user.
3. Specification
WSDL Entities which may trigger broken references
|
Upstream WSDL Source
(when this is deleted or renamed)
|
BPEL Targets
(these may contain broken reference)
|
WSDL Extension Targets
(these may contain broken reference)
|
|
|
TargetNameSpace for WSDL file.
|
Import : namespace
|
|
|
|
Name/Location of WSDL file
|
Import : location
|
|
|
Message : name
|
Variable : messageType
Catch : faultMessageType
OnEvent : messageType
|
PropertyAlias :
messageType
|
|
Message : name
|
** These adjustments are XPath adjustments and require special processing.
Parent Element : XPath Expression
Wait : for
Wait : until
OnAlarm Pick : for
OnAlarm Pick : until
OnAlarm Event : for
OnAlarm Event : until
OnAlarm Event : repeatEvery
If : condition
Else If : condition
While : condition
RepeatUntil : condition
ForEach : startCounterValue
ForEach : finalCounterValue
ForEach : completionCondition
Variable : fromSpec [TODO Clarify this one]
Copy From : ? [XPath Expression]
Copy To : ? [XPath Expression]
|
|
|
Message -> Part : name
|
Copy From : part
Copy To : part
|
PropertyAlias :
part
|
|
Message -> Part : name
|
** These adjustments are XPath adjustments and require special processing.
Parent Element : XPath Expression
Wait : for
Wait : until
OnAlarm Pick : for
OnAlarm Pick : until
OnAlarm Event : for
OnAlarm Event : until
OnAlarm Event : repeatEvery
If : condition
Else If : condition
While : condition
RepeatUntil : condition
ForEach : startCounterValue
ForEach : finalCounterValue
ForEach : completionCondition
Variable : fromSpec [TODO Clarify this one]
Copy From : ? [XPath Expression]
Copy To : ? [XPath Expression]
|
|
|
Fault : name
|
Catch : faultName
Reply : faultName
Throw : faultName
|
|
|
Fault : name
|
TODO – does the faultName affect any XPath usages?
|
|
|
TODO
What affects the PropertyAlias Query?
|
|
Property Alias :
Query
TODO -
What does this
need to react to?
|
|
PortType : name
|
Receive : portType
Reply : portType
Invoke : portType
OnEvent : portType
OnMessage : portType
|
Role : portType
|
|
Operation : name
|
Receive : operation
Reply : operation
Invoke : operation
OnEvent : operation
OnMessage : operation
|
|
|
|
TODO
|
Receive : messageExchange
Reply : messageExchange
OnEvent : messageExchange
OnMessage : messageExchange
|
|
|
|
|
|
|
|
|
TODO
|
copyFrom : endpointReference
|
|
|
|
TODO
|
fromPart : toVariable
|
|
|
|
TODO
|
fromPart : part
|
|
|
|
TODO
|
toPart: fromVariable
|
|
|
|
TODO
|
toPart : part
|
|
|
XML Schema entities which may trigger broken references
|
Upstream Schema Source
(when this is deleted or renamed)
|
BPEL Targets
(these may contain broken reference)
|
WSDL Extension Targets
(these may contain broken reference)
|
|
|
TargetNameSpace for Schema
|
Import : namespace
|
|
|
|
Name/Location of XSD file
|
Import : location
|
|
|
complexType : name
|
Variable : type
|
Property : type
PropertyAlias :
type
|
|
complexType : name
|
** These adjustments are XPath adjustments and require special processing.
Parent Element : XPath Expression
Wait : for
Wait : until
OnAlarm Pick : for
OnAlarm Pick : until
OnAlarm Event : for
OnAlarm Event : until
OnAlarm Event : repeatEvery
If : condition
Else If : condition
While : condition
RepeatUntil : condition
ForEach : startCounterValue
ForEach : finalCounterValue
ForEach : completionCondition
Variable : fromSpec [TODO Clarify this one]
Copy From : ? [XPath Expression]
Copy To : ? [XPath Expression]
|
|
|
simpleType : name
|
Variable : type
|
Property : type
PropertyAlias : type
|
|
simpleType : name
|
** These adjustments are XPath adjustments and require special processing.
Parent Element : XPath Expression
Wait : for
Wait : until
OnAlarm Pick : for
OnAlarm Pick : until
OnAlarm Event : for
OnAlarm Event : until
OnAlarm Event : repeatEvery
If : condition
Else If : condition
While : condition
RepeatUntil : condition
ForEach : startCounterValue
ForEach : finalCounterValue
ForEach : completionCondition
Variable : fromSpec [TODO Clarify this one]
Copy From : ? [XPath Expression]
Copy To : ? [XPath Expression]
|
|
|
element : name
|
Variable : element
Catch : faultElement
|
Property : element
PropertyAlias :
element
|
|
element : name
|
** These adjustments are XPath adjustments and require special processing.
Parent Element : XPath Expression
Wait : for
Wait : until
OnAlarm Pick : for
OnAlarm Pick : until
OnAlarm Event : for
OnAlarm Event : until
OnAlarm Event : repeatEvery
If : condition
Else If : condition
While : condition
RepeatUntil : condition
ForEach : startCounterValue
ForEach : finalCounterValue
ForEach : completionCondition
Variable : fromSpec [TODO Clarify this one]
Copy From : ? [XPath Expression]
Copy To : ? [XPath Expression]
|
|
|
attribute : name
|
** These adjustments are XPath adjustments and require special processing.
Parent Element : XPath Expression
Wait : for
Wait : until
OnAlarm Pick : for
OnAlarm Pick : until
OnAlarm Event : for
OnAlarm Event : until
OnAlarm Event : repeatEvery
If : condition
Else If : condition
While : condition
RepeatUntil : condition
ForEach : startCounterValue
ForEach : finalCounterValue
ForEach : completionCondition
Variable : fromSpec [TODO Clarify this one]
Copy From : ? [XPath Expression]
Copy To : ? [XPath Expression]
|
|
|
|
|
|
|
|
BPEL Extensions to WSLD which may trigger broken references
These are special BPEL extensions
(defined by BPEL specification) that appear in WSDL files.
|
Upstream WSDL Source
(when this is deleted or renamed)
|
BPEL Targets
(these may contain broken reference)
|
WSDL Targets
|
|
PartnerLinkType : name
|
PartnerLink : partnerLinkType
|
|
|
Role : name
|
PartnerLink : myRole
PartnerLink : partnerRole
|
|
|
Property : name
|
Copy From : property
Copy To : property
CorrelationSet : properties
|
PropertyAlias :
propertyName
|
|
Role : portType
|
Receive : portType
Reply : portType
Invoke : portType
OnEvent : portType
OnMessage : portType
*The port type will probably be blank in most cases since it is already specified
in the PartnerLinkType -> Role, and is optional in the Web Service activities.
|
|
|
Implicit BPEL entities which may result in broken references.
|
BPEL Source
(when this is deleted or renamed)
|
BPEL Targets
(these may contain broken reference)
|
|
|
Variable : name
|
** These adjustments are straight adjustments.
Receive : variable
Reply : variable
Invoke : inputVariable
Invoke : outputVariable
OnMessage : variable
Catch : faultVariable
Throw : faultVariable
Validate : variables
Copy From : variable
Copy To : variable
Note - OnEvent : Variable and Catch : Fault Variable are not references.
Therefore they are not affected by variable defintiion modification made elsewhere.
|
|
|
Variable : name
|
** These adjustments are XPath adjustments and require special processing.
Parent Element : XPath Expression
Wait : for
Wait : until
OnAlarm Pick : for
OnAlarm Pick : until
OnAlarm Event : for
OnAlarm Event : until
OnAlarm Event : repeatEvery
If : condition
Else If : condition
While : condition
RepeatUntil : condition
ForEach : startCounterValue
ForEach : finalCounterValue
ForEach : completionCondition
Variable : fromSpec [TODO Clarify this one]
Copy From : ? [XPath Expression]
Copy To : ? [XPath Expression]
|
|
|
CorrelationSet : name
|
Correlation : set
TODO – verify that this is correct mapping.
|
|
|
ParnerLink : name
|
Receive : partnerLink
Reply : partnerLink
Invoke : partnerLink
OnEvent : partnerLink
OnMessage : partnerLink
Copy From : partnerLink
Copy To : partnerLink
|
|
|
|
|
|
|
|
Source : LinkName
OOS for NB 5.5
|
CompensateScope :
Target
Flow ->
Links -> Link : Name [TODO – maybe I have this reversed]
|
|
|
Target : LinkName
OOS for NB 5.5
|
Flow -> Links
-> Link : Name [TODO – maybe I have this reversed]
|
|
|