A Novel Approach for Modeling Business Process Definitions

advertisement
1
2
3
4
5
6
A Novel Approach for Modeling Business Process
Definitions
Jean-Jacques Dubray
Eigner
200 Fifth Ave
Waltham, MA 02451
Abstract
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
In this paper we introduce a new approach to specify the metamodel of a business
process definition. The concept of message exchanges between two roles
assembled as Business Transaction represents the foundation of our process
definition metamodel. This type of model enables the definition of decentralized
processes which involve business-to-business collaborations, user interactions as
well as application-to-application integration, in a technology neutral way.
Introduction
The “process-oriented” logic of an application has received increased attention in the past
3 years. It was first identified by the initial members of the BPMI consortium1 that this
kind of business logic is locked within applications, most often as hard-to-maintain code,
just like data was locked in the 70s before the development of relational databases.
RDBMS introduced a clear separation of the data and the data management system from
the “model-oriented” business logic of the application. In the past this concept was not
possible because of network bandwidth and the variety of proprietary platforms, data
sources and applications that needed to be integrated. Tremendous progress have been
made in the last few years and it is expected now that business applications will achieve a
new level of development productivity and customization once we can successfully
create a metamodel of the process-oriented logic and develop “business process
management systems” which can execute it.
However, if we want to successfully extract the “process-oriented” logic from the
applications, we must first agree on what needs to be modeled, automated and executed.
Alonso et al2 provide an excellent classification of business processes as administrative,
ad hoc, collaborative and production processes. In this paper, we distinguish at least four
levels of business processes which need all to be supported by such metamodel. These
levels can participate in any of the process categories identified by Alonso. The first level
corresponds to “enterprise processes” which provide a global view of the activities
performed by a value chain to achieve a particular goal. These processes do not show any
boundary and typically span multiple businesses (for instance “make a plane”). Their
automation often requires several business process management systems which cooperate
to achieve a particular goal. The second level corresponds to “executable processes”
which coordinate the actions of employees and the business transactions initiated by
1
2
http://www.bpmi.org
G. Alonso et al “Functionality and limitation of current workflow systems”, 1997
1
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
systems and business partners within the boundary of a single corporation or department
to achieve a particular business goal (for instance “process an order”). Executable
business processes may be executed by a single business process management system.
The state of executable processes is centrally accessible. In the case of enterprise
processes, the state is often distributed and is not physically or even logically centralized
because of corporation boundaries. The third level corresponds to “business process
collaborations” (or collaboration) models the interactions between executable processes.
The last level is called “task” and isolates the interactions between a user or a system and
the business process itself. This level is often related to “workflow” defined as a
succession of user “tasks” handling specific work items.
Several approaches3 have been suggested to define the metamodel of these different
levels. Historically most approaches are based on the concept of “activity” which
represents the lowest level of decomposition of the business process. For instance in
BPML 1.04 everything is an activity including the control flow. An activity represents a
unit of work performed by a user, system or partner. An activity may have some input
and output and some associated actions (pre and post activity). A business process is
merely considered a succession of activities following a specific control flow. When an
activity completes the control flow specifies which activity starts. This approach is
usually very close to the concept of UML activity diagrams (UML v1.x).
The second approach is to consider the states of a company and the actions which are
executed that cause the state to change. This approach is actually not fundamentally
different from the one based on activity. An activity is usually performed to go from one
state to another. These states actually should be called pseudo-states as they do not
represent physical states of the company but rather some partial state that is modified in
isolation within the boundaries of a business process. Typically a transition from a state
to another will be modeled as an Event-Condition-Action (ECA).
These approaches have shown their limits in their ability to model the message flow of
business process as well as providing a good interoperability model between different
BPMS2. For instance, in some cases one has to create a “dummy” activity just to model
the fact that you are waiting on a message. A state or activity based model leads to
business process definitions which are “centralized”. The process merely distributes the
work. In particular it is difficult to associate a direct communication between two
components to a process state change.
In this paper we introduce a simple model which is based on the flow of messages
between roles participating in the business process. The flow of messages between any
two roles is defined as a collaboration.
M. Peleg et al „Modeling biological processes using Workflow
and Petri Net models“, 2001,
http://smi-web.stanford.edu/people/peleg/ModelingBiologicalProcesses_paper_RBA.pdf
4
BPML 1.0 Specification, www.bpmi.org, June 2002
3
2
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Message Flow, Control Flow and Data Flow
In our model, the fundamental entity of a business process is the “message” and not the
notion of “unit of work”. In other words, a business process at any of the four levels that
we identified can be expressed as an exchange of messages between two or more roles.
Every state change within a company can be associated with the processing of a message.
These messages obey particular a control flow (no control flow being a particular case of
a control flow), and may or may not carry data or binary documents -the data flow
associated with the message flow.
A message is defined between two roles, it has a direction (from role A to role B), it has a
name (usually composed of a verb and a noun) and it may optionally have a payload
made of a primary business document and related attachments. Exceptions may occur
during its realization: technical exceptions (the message could not be received, or the
sequence of the message is incorrect), business exceptions (the message was received but
could not be processed, therefore the respective state could not be reached, or the
message itself signals an exception, such as Reject Purchase Order) and timeout
exceptions (the message did not arrive on time). These exceptions are based on the
semantics of ebXML BPSS5.
Message exchanged may be a) individual notifications not logically related to any other
message exchange, or b) a request message followed by ‘n’ correlated responses. The
responses maybe exclusive (only one response out of several possible) or additive
(received one after another, including several times the same message type). A message
exchange whether it is of type a) or b) is called a business transaction5.
The first step in defining a business process is to identify all the roles and all the possible
message exchange between these roles regardless of the sequence of message exchange.
The second step specifies the data flow, identifying the payload of each message and the
relations between the payloads of different messages, including the transformations.
The third step is to define the possible (or lack of) control flow. We do not believe that
there is only one possible control flow model possible. Control flow may be defined with
a block-structured approach, or with transitions. It is conceivable we also need to be able
to define ad hoc processes including some parts of the control flow that could be defined
dynamically at run-time. The business process definition metamodel should exhibit a
“plug-able” control flow definition. This is only possible if the message flow, data flow
and control flow specifications are independent.
We can envisage other steps such as one step in which “activities” or “transactions” are
defined.
5
ebXML BPSS team area, http://www.ebtwg.org/projects/documentation/bpschema/ppbpschema.html
3
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
Message Flow of an Executable Business Process
The message flow definition is achieved by identifying all roles and all individual
message exchange between the respective roles. In addition, we need to specify a role
which can be identified as “self” which represents the perspective of the process.
Typically, this “role” will be implemented by the business process management system,
while other roles will be implemented by other systems and components. This role is
involved each time services such as transformation or routing is needed to connect the
sender or a message to its received. This model allows for external roles such as buyer,
seller, finance institution… for which specific collaboration agreements are in place.
The important aspect of this model is that when a given message exchange does not need
to be mediated by a business process management system, it can be directly expressed as
an exchange between the two specific roles (between your order entry and billing
components). However, this particular message exchange is integral part of the business
process definition because it changes the state of the process instance. This is a very
important concept which is not well addressed by traditional “centralized” business
process definition where all the message flow is modeled between the different parties
and the process engine (BPML, XLang, WSFL, WfMC).
Figure 1 represents a simple “Process Purchase Order” executable business process based
on the OAGIS6 scenario 40. There are four roles involved in this particular business
process: buyer, supplier, order entry and billing. As we mentioned earlier the “Supplier”
role represents “self” i.e. the perspective of the BPMS. We adopt a simple notation:
 Each role is represented by a swim lane.
 Each box represent a message exchange including a either a notification or a
request/response(s).
 The arrow across the boxes indicates the direction of the initiating message.
 The left side and right of the box are represented within the swim lane of the role
participating in the message interchange.
The scenario features a business partner (buyer). Our model is technology neutral: every
message exchange can be done with a different protocol over various transports
(technical characteristics). In particular it is important to be able with the technologies du
jour (such as Web Services and ebXML) as well as the coming ones. In a previous paper7
we have represented ebXML BPSS business transactions as square box and web service
operations as rounded boxes. We keep this convention here.
The first two business transactions (BTA1 and OpA1) are equivalent; of course they
typically deal with different data formats. They are mediated by the process engine
(represented by the supplier role). Because the message types are different, the process
engine may have the opportunity to apply a transformation to the payload.
6
M. Rowell et al, OAGIS 8.0, 2002, www.openapplications.org
Jean-Jacques Dubray, “A new model for ebXML BPSS Multi-party Collaborations and Web Services
Choreography”, 2002, http://www.ebpml.org/ebpml.doc
7
4
Start
Buyer
Supplier
Order Entry
Billing
(Self)
PO
BTA1
PO
Sales
order
OpA1
OpA2
Invoice
OpA3
Invoice
BTA2
166
167
168
169
170
171
172
173
174
175
176
177
178
Success
Failure
Figure 1 Message Flow of a "Process Purchase Order" executable business process
It may also be possible to route the incoming purchase order from the buyer to a manager
for approval (Figure 2 User interaction modeled as a message exchange). The business
transaction with the manager role is a PO (request) and a PO (response) with the approval
value which would have been added. Alternatively it is also possible to keep the approval
information separate and return an approval response.
When we define the control flow, we would probably define a “choice” control flow that
would decide to directly route the PO to the order entry component or ask for a manager
approval based on an amount value for example.
5
179
Start
Buyer
Supplier
Order Entry
Manager
Billing
(Self)
PO
AckPO
PO
PO
BTA1
Wit1
PO
AckPO
Sales
order
OpA1
OpA2
180
181
182
183
184
185
186
187
188
189
Figure 2 User interaction modeled as a message exchange
We could also design a scenario where the purchase order may be routed directly to the
Order Entry component (Figure 3) completely bypassing the process engine, without any
transformation. This is not a typical scenario but it is conceivable and supported by our
model.
Buyer
Supplier
Order Entry
(Self)
PO
BTA1
190
191
Figure 3 A direct integration between a B2B message exchange and an EIS component
192
193
194
195
196
197
198
199
200
The business process definition specified as a message flow may also be decomposed in
individual collaborations involving any two roles. These collaborations are important to
identify because the technical binding usually happens at the collaboration level as it is
expected that two roles will often exchange messages with the same technology. Note
that this is not mandatory as several collaborations may be defined between any two
roles. However, it is expected that any binding between a message and a technology will
happen at the collaboration level. Collaboration may have their own “choreography”
specification. This information can be used in two ways: first we could infer the
appropriate control flow (at least assist the user in designing the control flow) or simulate
6
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
the execution of a process definition and verify that it is compatible with the
choreography specifications.
Our model as we define it is a generalization of the ebXML BPSS specification5 which
specifies binary collaborations as a message exchange packaged as business transactions.
The fundamental advantage of this model is to keep the correlation of request and
responses that constitute the same transaction as part of the process definition. Other
approaches like the one of BPML or WfMC based on activity tend to separate request
(coming from a business partner or a component), processing of this request – as a series
of activities performed by users or internal components – and response to the initial
requests assembled during the processing of the request. This kind of separation makes
the binding between a collaboration definition (whether specified by BPSS or a global
model like the one of WSFL8) harder.
The major advantage of this approach is to organize the process definition as a series of
collaborations between components, between components and the process engine itself,
or between business partners and the process engine or directly with components. If the
process engine adds value, for instance by routing or transforming a message, its services
will be used. Otherwise, this process definition model allows for a decentralized
communication directly between two components or a component and a business partner.
This approach leads to greater scalability. Naturally, at the implementation level the
process must be made aware of the message exchange such that the process state can
advance.
Process
initiating
1
Role
1..*
1
CollaborationActivity
BusinessTransactionActivity
BusinessTransaction
1..*
1
1
Collaboration
WSDL
Activity
226
227
Operation
ebXML
ebXMLBusinessTransaction
Figure 4 - UML Class Diagram of a Business Process Definition
8
WSFL specification, IBM, 2001, http://www.ibm.com
7
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
It also makes the BPMS adopt a more passive profile, not distributing work but rather
monitoring that work happen as defined and adding value as a mediator. It is of course
always possible to use a more centralized mode as needed.
Figure 4 represents the UML Class diagram of the message flow of a business process
definition. Green elements correspond to definitions, and yellow elements correspond to
a usage of a definition (a CollaborationActivity is a usage of a Collaboration –Definition
– in the context of a Process). The concept of activity becomes a characteristic of the
message exchange rather than its nature. In particular an activity has a state associated
with it which goes from: started to completed9.
This approach can be used to model all levels of process-oriented logic that we defined in
the introduction. Collaboration are by definition modeled following the same approach
because, we actually took the collaboration definition model and extended to specify an
executable process. An enterprise process being the combination of collaborations and
executable processes may also be modeled the same approach. I will show in a
subsequent paper how “tasks” may also be modeled following the same approach.
This approach simplifies interoperability between different engines as it is likely that a
collaboration activity sharing the same collaboration definition may be used by each
process definition to model its interactions with the other processes.
Finally, this approach also simplifies the notion of process composition, since a “sub
process” may simply be viewed as a new role within the global process definition. Like
BPML, this sub-process maybe “spawned” or “called” based on the nature of the
collaboration that links it to the parent process. But unlike BPML, a sub-process may also
fully “collaborate” with is parent process spanning multiple peer-to-peer data exchanges.
Not that this approach is in a way related to the EDOC specification10. This is no
surprised since there has been a conscious alignment made by design between ebXML
BPSS and the EDOC specification. However, EDOC does not integrate well the concept
of B2B “collaboration”, does not rely on generic business transaction definitions, and
offers very limited control flow specification. EDOC is rather focused on defining a new
architecture for business object components and their composition. Our model introduces
new concepts such as external roles such as “Buyer”, user roles such as “Manager” and
the notion of “Self” which represents the business process management system.
9
WfMC Specification, http://www.wfmc.org
J.J. Halliday et al “Flexible Workflow Management in the OPENflow system”, HP
10
8
271
272
Message flow and Unit of Work
Start
Buyer
Supplier
Order Entry
Manager
Billing
(Self)
PO
AckPO
BTA1
Mapping
Routing
PO
PO
Wit1
PO
AckPO
OpA1
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
Unit of
Work
Sales
order
Unit of
Work
OpA2
Figure 5 - Relationship between unit of work (a.k.a. activity) and message exchange
The major problem we see in relating in an approach based on “unit work” is that
typically “unit of work” or activities are not homogeneous with respect to the number of
messages they are related to. Here we see that the Order Entry activity is related to four
messages, while the Billing activity is related to only two messages while the process
engine is not really doing any specific work besides mapping and routing messages. It is
conceivable that one could also define activities that are related to many more messages
in particular when forks are used to specify that an activity need to wait on more than one
request to do some work. In this case we could end up having an activity coordinating the
exchange of 6 or more messages.
Typically standards like BPML, XLang or WSFL consider message exchange and
activity at the same level. So a unit of work can only be viewed as a request/response
from the perspective of the process engine. It is then become very difficult to describe
cases like the Order Entry unit of work in Figure 5 where the unit or work coordinates
several business transactions.
In these standards, the control flow is then used to tie together related message
exchanges, therefore establishing a convolution between the message flow and the
control flow.
9
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
Example
Here is an example of an XML definition corresponding to Figure 2.
<?xml version="1.0" encoding="UTF-8"?>
<ProcessSpecification
xmlns="http://www.ebxml.org/BusinessProcess"
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="http://www.ebxml.org/BusinessProcess C:\Projects\EBPML\ebBPMML0.5.xsd"
name="SimpleProcessDefinition"
uuid="5678"
<!-- Business transaction definition -->
<BusinessTransaction name="ProcessBuyerPO_BT">
…
</BusinessTransaction>
<BusinessTransaction name="ProcessPO_BT">
…
</BusinessTransaction>
<BusinessTransaction name="ProcessPO_BT">
…
</BusinessTransaction>
<BusinessTransaction name="ApprovePO_BT">
…
</BusinessTransaction>
<BusinessTransaction name="SynchSalesOrderPO_BT">
…
</BusinessTransaction>
<!-- Process definition -->
<Process name="ProcessOrder" initiatingRoleID="R1" timeToPerform="P5D">
<Role name="Buyer" nameID="R1" type="partner"/>
<Role name="Supplier" alias="Self" nameID="R2" type="process"/>
<Role name="OrderEntry" nameID="R3" type="component"/>
<Role name="Billing" nameID="R4" type="component"/>
<Role name="Manager" nameID="R5" type="user"/>
<CollaborartionActivity name="ProcessBuyerPO_CA" fromRole="Buyer" toRole="Supplier"
collaboration="ProcessBuyerPO_C" timeToPerform="P5D"/>
<CollaborartionActivity name="ProcessPO_CA" fromRole="Self" toRole="OrderEntry"
collaboration="ProcessPO_C" timeToPerform="P1D"/>
<CollaborartionActivity name="ApprovePO_CA" fromRole="Self" toRole="Manager"
collaboration="ApprovePO_C" timeToPerform="P4H"/>
<CollaborartionActivity name="SynchSalesOrrder_CA"
fromRole="OrderEntry" toRole="Billing"
collaboration="SynchSalesOrder_C" timeToPerform="P4H"/>
</Process>
<!-- Collaboration definition -->
<Collaboration name=" ProcessBuyerPO_C" fromRole="Buyer" toRole="Supplier">
<BusinessTransactionActivity name="ProcessBuyerPO_BTA" fromRole="Buyer" toRole="Supplier"
businessTransaction="ProcessBuyerPO_BT" timeToPerform="P1D"/>
</Collaboration>
<Collaboration name="ProcessPO_C" fromRole="Self" toRole="OrderEntry">
<BusinessTransactionActivity name="ProcessPO_BTA" fromRole="Self" toRole="OrderEntry"
businessTransaction="ProcessPO_BT" timeToPerform="P1H"/>
</Collaboration>
<Collaboration name="ApprovePO_C" fromRole="Self" toRole="Manager">
<BusinessTransactionActivity name="ApprovePO_BTA" fromRole="Self" toRole="Manager"
businessTransaction="ApprovePO" timeToPerform="P4H"/>
</Collaboration>
<Collaboration name="SynchSalesOrder_C" fromRole="OrderEntry" toRole="Billing">
<BusinessTransactionActivity name="SynchSalesOrder_BTA" fromRole="OrderEntry" toRole="Billing"
businessTransaction="SynchSalesOrder_BT" timeToPerform="P1H"/>
</Collaboration>
</ProcessSpecification>
10
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
Control Flow
I would like to take the risk to disappoint many by asserting that there is not a single
“magic” control flow which can be used in all situations to model any scenario.
So far there have been two approaches to establishing the model of a control flow:
 Annotated directed graph where the nodes represent the activities (unit of work)
and the edges represent the flow of control and data among the different steps
 Block-structured approach where the units of work are assembled into blocks of
different types (BPML uses All and Sequence to express parallel or serial
execution of the unit of work).
Of course a combination of both approaches is always possible. Blocks are important to
model and demarcate the context of transactions while transitions are easier to use to
model ad hoc or collaborative processes.
These models remain almost always too low level and a “library” of construct need to be
built on top of the basic concepts to enable an effective modeling of business processes.
There is also the semantics of “publish/subscribe” which is very important for modeling
application-to-application integration scenarios which is often overlooked by control flow
specifications such as WfMC, BPML 1.0, WSLF, XLang…
Start
Buyer
Supplier
Order Entry
Manager
Billing
(Self)
PO
AckPO
PO
PO
BTA1
Wit1
PO
AckPO
Sales
order
OpA1
OpA2
[BusinessFailure]
385
386
387
388
389
390
[Success]
Failure
Success
Figure 6 - Control flow added to the message flow
Our approach is to avoid constraining the user into a given control flow model. In
particular, we may want to use the control flow model of ebXML BPSS5. Its model is
based on a direct graph. However, there are also some particularities that I would like to
11
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
stress. This model offers a semantic called “onInitiation” which is an attribute of a
transition from a business transaction activity. This simply means that upon the request of
a business transaction activity, this transition will fire. This is what allows us to keep the
corresponding business transaction activity “intact” and does not require separating
request, processing and response from a process definition perspective. Figure 6
represents the control flow of the example detailed in Figure 2.
A synchronization bar (in gray) allows us to evaluate a condition expression on the
context of the purchase order and decide whether this particular PO requires approval
from a manager.
This can be expressed simply in XML using the BPSS control flow elements:
<?xml version="1.0" encoding="UTF-8"?>
<ProcessSpecification
xmlns="http://www.ebxml.org/BusinessProcess"
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation="http://www.ebxml.org/BusinessProcess C:\Projects\EBPML\ebBPMML0.5.xsd"
name="SimpleProcessDefinition"
uuid="5678"
<!-- Process definition -->
<Process name="ProcessOrder" initiatingRoleID="R1" timeToPerform="P5D">
<!-- Roles -->
…
<!-- Collaboration activities -->
…
<!-- Control flow -->
<ControlFlow type="ebXMLBPSS " version="1.05">
<Start toBusinessState="ProcessBuyerPO_BTA" />
<Transition fromBusinessState="ProcessBuyerPO_BTA" toBusinessState="Approve_Fork"
onInitiation="true" conditionGuard="Success"/>
<Fork name="Approve_Fork" />
<Transition fromBusinessState="Approve_Fork" toBusinessState="ApprovePO_BTA">
<ConditionExpression expressopLanguage="XPath" expression="//Amount/[@value>=1000]">
</Transition>
<Transition fromBusinessState="Approve_Fork" toBusinessState="ProcessPO_BTA">
<ConditionExpression expressopLanguage="XPath" expression="//Amount/[@value<1000]">
</Transition>
<Transition fromBusinessState="ApprovePO_BTA" toBusinessState="ProcessPO_BTA"
conditionGuard="TechnicalSuccess"/>
<Transition fromBusinessState="ProcessPO_BTA" toBusinessState="SynchSalesOrder_BTA"
conditionGuard="Success"/>
<Failure
fromBusinessState="ProcessPO_BTA"
conditionGuard="BusinessFailure"/>
<Success fromBusinessState="SynchSalesOrder_BTA"
conditionGuard="Success"/>
</ControlFlow>
</ProcessSpecification>
An important point to note is the way this process definition reaches a “failure” end state.
If a purchase order requires approval and a manager rejects this purchase order, the
transition from the ApprovePO_BTA to ProcessPO_BTA would still fire because it is
guarded by a “TechnicalSuccess” condition. This simply means that the work item was
executed without problem regardless of the fact that the PO was approved or not. The
12
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
OrderEntry component should have different business rules that decide whether it will
return an AcceptPO or RejectPO response. In the event that this component a RejectPO
response, this is considered as a “BusinessFailure” of the business transaction. In this
case, the process ends in failure and the last business transaction activity
(SynchSalesOrder_BTA) will not be executed.
This model effectively separates the message flow from the control flow, therefore
enabling the concept of a plug-able control flow specification. Other approaches
including the one of BPML 1.0 require to model a “solicit response” in three activities
related by the control flow in order to correlate the request with the response.
We have not addressed the aspects of exception in details. In the example above, we have
simply used ebXML BPSS exceptions which are divided in three groups: technical failure
(either the request or response could not be processed), business failure (the response
what characterized as negative) and timeout (either the request or the response was
exchange beyond the allowed time).
ebXML BPSS does not specify particular exception paths. If an exception is detected the
control flow will simply continue based on the corresponding transition. The subsequent
business transaction activities are no different from the others. Specification like BPML
1.0 introduces the concept of “compensating transactions” that are executed when an
exception occurs. Again, we believe that there is not a single and ultimate control flow
exception and these kinds of semantics should be handled with a “plug-able” control flow
mechanism.
13
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
Data and document flow
The message flow serves as the basis of the data flow definition as messages may contain
a payload of business documents and binary documents with their metadata. In addition,
it is well established that we need to define a set of “properties” also known as “process
variables” in which specific values of a business document or metadata of a binary
document may be stored and manipulated.
<!-- Process definition -->
<Process name="ProcessOrder" initiatingRoleID="R1" timeToPerform="P5D">
<!-- Roles -->
…
<!-- Collaboration activities -->
…
<!-- Control flow -->
<!—Data flow -->
<DataFlow>
<Property name="POAmount" value="//PO/Amount/@value" />
<Map fromBusinessState="ProcessBuyerPO_BTA" toBusinessState="ApprovePO_BTA"
fromDocument="PO" toDocument="PO">
<Transformation transformationLanguage="XSLT" transformation="map1.xslt">
</Map>
<Map fromBusinessState="ProcessBuyerPO_BTA" toBusinessState="ProcessPO_BTA"
fromDocument="PO" toDocument="PO">
<Transformation transformationLanguage="XSLT" transformation="map1.xslt">
</Map>
</DataFlow>
</ProcessSpecification>
There are other aspects associated to the data flow that we do address in this paper.
Correlation has been first addressed by Microsoft with the XLang specification11, and it is
relatively clear that this approach could be used as the basis of a correlation mechanism
for business transactions.
Transactions have not been addressed in this paper. It is expected that in this case, the
fact that this process model is based on messages and not “activities” could change
significantly the way transactions can be handled.
11
XLang specification, Microsoft, 2001, http://www.gotdotnet.com/XLANG.htm
14
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
Conclusion
We have extended the approach of ebXML BPSS which enables the modeling of peer-topeer business collaboration to be able to model all levels of the process-oriented business
logic found in business applications today. This approach based is based on the concept
of “Business Transaction” which provide for model for request/response between two
roles. Operations of a web service as well as ebXML BPSS business transactions can be
bound seamlessly to a business transaction definition. This concept:
 Allows to specify “decentralized” business process definitions,
 Leads itself to a simple specification of a sophisticated interoperability and
process composition models.
 Requires a simple data and document flow mapping since most of the data and
document flow is already specified as part of the message exchange.
 Simplifies greatly the technical binding since business transaction activities can
easily be related to web service operations and WSDL definitions on one hand
and ebXML business collaboration definitions on the other hand.
 Enables us to use a very basic but efficient notation
Overall these concepts provide a technology neutral process definition model, unlike
some other specification which only focuses on web services.
This concept was also designed with a large number of standard organizations and
consortia in mind such as UMM (Unified Modeling Methodology), RosettaNet12, the
Open Applications Group, STAR XML13. In particular we believe that all the OAGIS6
integration scenarios may be modeled with this approach.
In three subsequent papers, we will provide a detailed description of the application of
this approach to model “tasks” and work items. We will also provide in a general paper
the complete specification of the ebPML Process Definition Language. Finally we will
give implementation guidelines to the business process management systems that will
execute ebPML process definitions.
12
13
RosettaNet consortium, http://www.rosettanet.org
STAR XML working group, http://www.starstandard.org
15
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
Glossary
Actor – A physical partner, system component or user participating in a process instance
Business Transaction – a message exchange between two roles. It is either a notification,
or a request/response message exchange. The response may be one of many possible
responses, or any number of correlated responses.
Business Transaction Activity – the usage of a business transaction within a collaboration
definition.
Collaboration – a series of business transaction activities between two roles.
Collaboration Activity – the usage of a collaboration within a process definition
Process – a series of collaboration activities
Role – represent a logical business partner, system component or user within the process
definition. Roles are resolved at run time into a physical Actor. A process definition
exhibit a special role identified as Self which represents the process instance. A process
which interacts with the later is represented by a separate role.
16
Download