[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [wsbpel] Issue - 107 - Opacity and the meaning of nothingness inabstract processes
I agree on #1, I have to think about #2, I don't think that we should go towards #3. Why would you enforce an opaque start activity in your example? What will break if we don't enforce this? My gut feeling is that this will make specifying abstract processes really complicate. In order to check whether or not an abstract process may result in a legal executable process we would also have to introduce some sort of opaque join conditions, maybe opaque links etc.. Somehow, the modeler will either have to think about a set of possible alternative executable processes and abstract them accordingly to result in flexibility at an implementers side (highly non-trivial), or would significantly reduce alternatives, i.e. nearly prescribing an executable process, thus reducing flexibility of implementing an abstract process (i.e. an "interface"). Regards, Frank Please respond to firstname.lastname@example.org To: Frank Leymann/Germany/IBM@IBMDE cc: email@example.com Subject: Re: [wsbpel] Issue - 107 - Opacity and the meaning of nothingness in abstract processes I have three goals: #1 - To introduce both an <opaque> activity. #2 - To introduce a reserved opaque value for use in BPEL attributes that don't need to be specified in an abstract process. E.g. <receive variable="bpel:opaque" .../>. #3 - To make it illegal to specify an abstract BPEL whose structure would not be legal in an executable BPEL unless an <opaque> activity or opaque attribute is used. So, for example, it would be illegal to create an abstract process with no start activities unless an <opaque> activity was used as a place holder at the start of the process. It would also be illegal to specify an operation and leaves off a variable attribute, one would have to include the attribute but could use the specially reserved opaque attribute value. This doesn't stop anyone however in leaving out details that don't result in an illegal BPEL structure. For example, imagine I have the following BPEL executable process: process ... sequence ... assign receive reply ... It turns out that the assign is just some internal fix up and really isn't relevant to the definition of an abstract version of the process. So when I define the abstract process I just specify: process ... sequence ... receive reply ... The resulting structure is legal so there is no need to use <opaque>. As you point out, however, one might want to use <opaque> if one explicitly wanted to point out 'hey, put something here'. Make sense? Thanks, Yaron > > > > We need both, i.e. we should not enforce "consistent usage" of the implicit > or explicit mechanism. > > (1) Sometimes you want to hide details of on internal process; even that > fact that "something happens" between two activities in the abstract > process. Thus, we need implicit. > > (2) The explicit is not only needed for "error detection" but also for > "templating" of process models. > > Regards, > Frank > > > > > > > > Please respond to firstname.lastname@example.org > > To: email@example.com > cc: > Subject: [wsbpel] Issue - 107 - Opacity and the meaning of nothingness > in abstract processes > > > This issue has been added to the wsbpel issue list. The issues list is > posted as a Technical Committee document to the OASIS WSBPEL TC pages on a > regular basis. The current edition, as a TC document, is the most recent > document with the title in the "Issues" folder of the WSBPEL TC document > list - the next posting will include this issue. The list editor's working > copy, which will normally include an issue when it is announced, is > available at this constant URL. > Issue - 107 - Opacity and the meaning of nothingness in abstract processes > > > Status: open > Area: Abstract processes > Date added: 18 Mar 2004 > Submitter: Yaron Y. Goland > Date submitted: 18 March 2004 > Description: The design of abstract processes requires the ability to omit > information that is not relevant to the abstract process's design. There > are two general strategies for omitting information - implicit and > explicit. > > > An example of implicitly hiding data is the way that abstract processes > deal with some of the variables on message operations. If one doesn't want > to specify where a message is recorded on a receive then one may simply > leave off the variable attribute. > > > An example of explicitly hiding data would be introducing something like an > <opaque> activity. For example, imagine that one is defining an abstract > process and the start activities of the abstract process are to be omitted > since they are not relevant to the functionality the abstract process is > describing. In that case one could start a process with an <opaque> > activity. By putting in <opaque> one is explicitly communicating to the > reader of the abstract process 'There is something here but its definition > is not relevant to the goal of the abstract process.' > > > The advantage of explicit versus implicit hiding is in error detection. > > > In an implicit system where one simply leaves off variables or omits > activities there is no way to tell the difference between an error, e.g. > the person intended to include the variable or activity but forget and true > omission. This is a well known problem with treating the absence of > information as information. > > > In an explicit system where one would have <opaque> activities and special > reserved bpel:opaque place holders for attributes there is no possibility > for confusion. If an opaque value is specified then one has an unambiguous > declaration from the designer of the abstract process as to their > intention. > > > The issue before the group is - should we consistently use an implicit or > explicit omission mechanism for specifying when information has been > intentionally omitted in an abstract process? > Changes: 18 Mar 2004 - new issue > > > > To comment on this issue, please follow-up to this announcement on the > firstname.lastname@example.org list (replying to this message should > automatically send your message to that list), or ensure the subject line > as you send it starts "Issue - 107 - [anything]" or is a reply to such a > message. > > > To add a new issue, see the issues procedures document (but the address for > new issue submission is the sender of this announcement). > > > To unsubscribe from this mailing list (and be removed from the roster of > the OASIS TC), go to > http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php > . > > > > > To unsubscribe from this mailing list (and be removed from the roster of the > OASIS TC), go to > http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php . > To unsubscribe from this mailing list (and be removed from the roster of the OASIS TC), go to http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php .