FeaturesPluginsDocs & SupportCommunityPartners

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]



Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by