CA2443476A1 - System and method for conversion from graphical business process representations to structural text-based business process representations - Google Patents

System and method for conversion from graphical business process representations to structural text-based business process representations Download PDF

Info

Publication number
CA2443476A1
CA2443476A1 CA002443476A CA2443476A CA2443476A1 CA 2443476 A1 CA2443476 A1 CA 2443476A1 CA 002443476 A CA002443476 A CA 002443476A CA 2443476 A CA2443476 A CA 2443476A CA 2443476 A1 CA2443476 A1 CA 2443476A1
Authority
CA
Canada
Prior art keywords
representation
node
resultant
text
graphical representation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002443476A
Other languages
French (fr)
Inventor
Lok T. Loi
Tak S. Chau
M. Kelly Lalonde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM Canada Ltd
Original Assignee
IBM Canada Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IBM Canada Ltd filed Critical IBM Canada Ltd
Priority to CA002443476A priority Critical patent/CA2443476A1/en
Priority to US10/947,766 priority patent/US7305412B2/en
Publication of CA2443476A1 publication Critical patent/CA2443476A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Conversion from a graphical representation to a structural, text-based representation of a business process. A method and system identities shared nodes in the graphical representation having more than one incoming control connection. Segmenting at graph based on the initial graphical representation based on the lociation of the shared nodes.
Converting each segment of the graph to a set of corresponding segment-based structural, text-based representations. Creating a resultant structural text-based representation comprising the set of corresponding representations in which each of the segment-based representations is defined to potentially execute concurrently. Generating synchronization elements in the resultant representation defined with reference to the incoming control connections of the previously identified shared nodes, while maintaining the semantics of the initial graphical representation in the resultant structural text-based representation.

Description

SYSTEM AND MI:'1'HOD h()IZ C()NVI:RSION FROM (~RAi'HI(.',A1, BUSINESS
YR()(_'h:SS Rh.I'RI~SI';N'1'A'I'IONS'1'O S'1'RU('.'1'IJRAI,'I'I?X'1'-13ASI:D
I3LISiNH:SS
I'ROCF,SS REI'Rh.SI:N'1'ATIONS
Field of the Invention The present inventicm relates ~~encrally lit curnputcr-implententc-d reprcscntatiuns of processes and mare specifically tct a system and mcthctd I~<.tr conversion Brunt graphical business process representations having certain types of nude-connection cctnfi~~urotions to structural text-based business process representations.
Baek:tround o1~ the. Invention to A business process incluclcs a defined set oi~ actions taken in the cx'tursc of.
conducting business. Through the use of computer systems, business processes can he automated. An au(umattcd business process typieatlly reduires input and generates output. A
business process r»ay he a single W sk or a complicated procedure such as a procedure fur building a product. An example of a more cetmplicatted business process is a cctmputer_ IS irrtplcmented business transaction (carried out against a clatahase) fur the purc:hasc of goods on the Internet. The term "business process"" also includes other processes that atrc related to a business context in a broad sense. Fur example, a pr-occss used to nrtnage donor lists i'or at charity is referred to as a "business" process although IC relates to a <:Itaritahlc activity and nut a business activity as narrowly defined.
''0 For' VII hustness processes, but in particular for autctmatcd business prctcesscs. it is potentially advantageous to document the processes using a computer-implemented rcprcsentatiun. ()I~ten business prctccsscs arc graphically rcpmsented in a rumputcr_ implemented system using a visual rcprescntatiun.
Cotoputcr software such us the Wcb~ipherew' Studio Apltlicatietn 1)cvclupcr ~i Intcgrattion Edition (WSADIE) process tool distrihutcct by (F3M
C'urpuratidn allows users to visually represent a business process as a graph having node, terminal and cunncctiitn clernents. Connection elements connect nudes as in a dircctccl graph and provide a llow that is apparent in the visual rcprescntatiun anti which is intended to represent the relatiunshilos between activities in business pruce sscs. In a graphical rcprcscntatiun that is usccl tit control a CA9-?()()3-()OCt9 - I -business process, control over the process is transferred from node to node as the c<tnnectictn elcn tents are follcn~~ed.
Alternatively, business processes rnay be represented in a cc»rtputer system textually usin~~ a structural cuntputer lan~ua'~e, auch as ftusinesa Proccas Execution Lan'=ua~~e for Web Services (BNEL4W,~). E3l'EL~WS is used to describe business processes and is based on Extensible Markup Lan~~ua~e (XML) spccific<ttiuns. 13PEL4WS allows for tcxt-based business process representations having a structure of hierarchical nested elcrnents.
It is desirable to convert between graphical anti text-based representations of business processes. However, the curnplex structure of many business processes rcttders such to conversion difficult. In a business ltr-ucess represented in a graphical system, control dependency of ctnc node <tr activity un another is defined by the Ilow of the control connections between the nodes. In a simple process, the cunirul dependency' t~olluws a single path; when a first activity finishes. control is passed f~rc»n that nude to the next node following the control corm cctiun, and the next activity represented by tltc next node is cxeW tcd.
However, tier a complex process, there is typically net single path defining control dependency. C'crtain configurations of control cunnerticrns and nude-s in ~,raphical representattions present difficulties in the cunvc:rsic>n to a structural text-based reprcsentatic:>n.
Une such configuration is the graphical representation of at "cross-over"
process, irt which a first node is connected to more than one subscduent node, and the execution of one of those subseduent nodes depends un receipt of output frc»n that first nude as well as output 1~r'orn another node which may he executed concurrently with the first. Another configuration presenting conversion difficttltics is a rortditionatl process that depends on an event or a fault:
control is passed to one of many potentially nudes via one ol~ many control connections, depending on the output I~rortt a previous etude.
For such curtfiguratiuns, Ihcrc may be a number of solutions by which the business prui;cas represented in the ~raphical rcprescntatir~n ntay hr cunvcrtccl to a structural text-httscd representation. F~rch of these text-hatscd representations arty he valid, in that the process represented provides the santc result as the business Itretcess rcpt'cscnt I
'~raphi~ally.
3tl However, these possible solutions stay nctt hr consistent ur easily derived. Lvtrrthcr, they ntay CA9-2()():~-()(>6c) ? _ not all necessarily rc1'Icct the correct semantics and rclntiunships nmon~~
the elements of the process. The cross-aver and conditional processes cre<tl difficulties in the ~Trarph-to-text conversion because there is no directly translatable structure- pr'ctvidrd in the available text lan~~ua'~es which proviclc hier'archics of nested elements. 'ho determine a correct ectrtversic~n, s graphical analysis may he undertaken to crhtain a better semantic unclcrslanclirtg of the process represented by the ori'rinal graph.
Because there are no direct equivalents in the structurGtl text-based reprcscntations for these types al' node-connection conl'i'Turalions, there arc a number of possible solutions that may hi chosen in converting a s~raloh-based rcl'oresentatiun of a basin ess process to a It) structural text-based representation. This potential set cof conversion possibilities creates problems with consistency of conversion as well as potential docuntcnt<ttion problems. since some soluticms are more dit~ficult to document than others.
It is known, for example, to transform dGtta puhlishccl durin~~ the execution of a business process into a standard torntat such as XMI." as tnentionecl in U.S.
Patent 15 Application No. 2()()2/()116362 (,Li ct al.). The business pr<oeess representation may he constructed using a graphical process toc'>i. However, L.i et al. does not disclose a ntethdct or system for tranal'oming the graphical relorcscntation of the business process itself to anc,tther forrnat.
It is therefore clesirahle to provide a system and method for converting ~~raphical 2o representations at business processes cuntainin~~ crow-over and/or conditional processes to structural, text-haled representations in a consistent manner that corn be implemented automatically without requiring extensive semantic graphical analysis.
Summary of the Invention Accordingly, the present invention provides a system and method for ceonverting a 25 graphical business process representation to a structural, text-based representation An <tspcct of the invention provides a computer program product lire cctnvertin'T
an initial graphical representation of a business process having nooks and control connections to a structural text-based rcprescntation, including prc>'~rmnt code for identifying as shared nodes those nodes in the initial ~~raphirul rcloresenltion having more than one incomin~.~, 3o control connection; representing a sc~~mented ~~raph based cm the initial ~~raphical CAS)-2()()3-()()6i) repl'eSenlatlon, the segmented graph comprisin',~ sc~~ments hcin'~ defined by the location of slutrcci nocds in the initial ~~rn[~hicol re[~rcsenttttion; ohUinin'~ a set of~ sc<~ment-based structural text-based representations corrraponciin~~ to the sc~~menis in the segmented '~ra[~h;
dcl~inin~~ a resultant structural text-based repreaenUttion cc>nrprisin'~ the set ol~ se'~mertt-based structural text-based representations and in which each of the segtrent-bused structural text-based representations is defined to potentially execute concurrently; and generating synchronization elements in the resultant structural text-based rcprescntation c[efined with reference to the incoming control connections of the shared nodes in the initial ~~ra[ohical reprcsentatic'rn, while matintainiry the semantics of the initial '~raphicttl representatiun in the l0 resultant structural text-based representattion. In a further aspect of the invention, the program code for' gen~ralin~T synchronization clernents includes code I~or generating link code portions in the resultant structural text-based rcprcsentation, in which each link code portion textually represents a selected incoming control connection of the shared noc[es in the initial graphical representation, and each rrICOIT11r1~~T, control connection is W xtually mpresented by om link code portion, where each incoming control connection connects at sourer nc'.tc(e and at target node and each link code portion has a source activity <tnd t<tr~ct activity, the source activity of the link code portion hein g the activity tlntt represents the source node of the: ~ot'respc>ndiml incoming control connection, the target activity of ihc link code portion being the activity that represents the tt.trget node of the corresponding incoming control connection.
A further aspect ?o of the invention provides code for implcrncntin~~ dead path elimination in the resultant structural text-based reprcscntation.
A further aspect of the invention provides a compute;.r-implemented method li>r converting an initiatl graphicatl representation <of a business process to a resultant structural text-h<tsed representation, the initial graphical rcprescntation comprising nodes and control connections, the method cornprisin~ the steps of: defining a representation c7f a segmented graph based on the initial graphical representation, the sc~~mcnlcd graph cornprisin~~
segments bein~~ defined by the location of shared nodes in tlrc initial ~~raphical reprcscntation;
obtaining a set u1~
segment-based structural text-based representations corresponding to the segments in the segmented graph; ;~encratting a re;;ultant structural text-based rcpresentatic,n com[trisin~' the ;o set of segrncnt-based structural text-hosed reprewntations and in which each of Ihc se~~rnent-hascd structural text-based rcprescntations is de tined to potentially execute concurrently; and ~~encralin4~ syn chroniration clemrnts in the resultant structural text-based representation CAS)-20()3-()()G9 - 4 -defined with reference to the incoming control connections of the shared nodes in the source ~~raphic<rl rcprcsentation, whereby the semantics c>f the initial graphical reprcscntation arc maintained in the resultant structural text-based representation. Still a further aspect provides that the step of ~~eneruting synchronioation elements includes the steps of generatin~~ link code portions in the resultant structural text-based representation, each said link code portion textually reprcsentin~z a selected one of incoming control connections oi~ the shared nodes in the initial graphical representation and each incomin~,~ control connection bein~~ textually represented by one link code portion, each incornin~J control connection connecting a source node and a target node and each link code pc»-tion lurvinl~ a source activity and target activity, l0 the source activity of the link code pmUion hein<~ the activity that represents the source node of the corresponding incoming control connection, the target activity of the link code portion being the activity that represents the lar~~et node of the corresponding incoming control connection, and the step of generating structural text-based representation code for implementing dead path elimination in the resultant structural text-based representation.
Still a further aspect of the invention provides a computer implemented method for converting an initial graphical representation of a business process to a resultant representation, the initial ~~raphical representation comprising nodes and e:ontrol connections and the resultant representation bein~~ a structural text-based representation with the steps of:
identifyin~~ shared nodes in the initial graphical represcntatic>n by collecting the nodes in the 2O initial graphical representation and determining if each node contains multiple incoming connections; storing identified shared nodes in a data reprcsentalion;
truversin',~ the initial representation and currying out the followin~~ steps:
i. creating a structural element .~e<~cncein the resultant representation;
ii. l~or each node visited, translating the current node to a correspc>ndin'~
structural text-based representation activity in the resultant representation and marking the current node as "visited", the traversal skippin~T nodes already marked "visited"; and iii. generating a <sequrnce> structural element or a <flow> structural ,n element in the resultant representation, whereby if there is only one C'A9-20()3-OOC9 - 5 -outgoing control connection for the current node, no structural elerncnts are '=cnerated and if there are multiple out~;oin'r control ccmneclions i~c>r the current node a ~ f 7 ow> element is placed in the resultant representation and rcheutin'~ all procedures in step (c) for each s path ce>nnccted by an oul~oin~~ control connection to the current node;
iv. repeating all steps in step (c) if the current node is a shared node and is not marked as "visited", the resultant representation comlrisin~~
segment-defined code correspondin~T tc»~odcs in the initial representati<m th<rt arc shared nodes;
to then generating a structural element <llow> in the resultant representation whereby all se~~ment-defined code in the resultant representation are included in the <flow> element:
~~eneratin~~ a synchronization element <link> to connect segment-defined code in the r~sull.uU
representation corresponding to the control concoctions in I~or the shared nodes in the initial graphical representation, whereby the source o1~ each such <link> element is the 15 correspondin4~ resultant representation activity th<rt represents the source node of the control connection in the initial graphical representation and the target o1~ each arch <link> element is the corresponding resultant representation activity that represents the shared node that the control connection connects to in floc initial ~~r<rphical representation. In a l~urthcr aspect, the invention provides that l~or each current node in the traversal that is a conditional fault-20 handlin~, node with conditionally activated terminals and correspondin<~
conditional hranclres comprising segments, ~~cnerating a <catch> element in the resultant representation for each such terminal and generating the first segment ol~ the conditional hranclr within the <catch>
element and further generating an <empty> element if the fir's( se~~mcnt is shared whereby the <emply> element acts as a <link> hc>Idcr within each <catch> clement, and for each current ?S node in the traversal that is a conditional event-handling node with c<rnditionally activated terminals and corresponding conditional branches comprising segments, generating a <pick>
element I~or the event-handling node, ~~cncrutin'~ an <onMcssage> clement I~or caclr such terminal, generating the first segment of the conditi<mal branch within an <onMcssage>
element in the <pick> clement, and further generating an <empty> clement il the first 3o se~~ment is al~ared whereby the <crnlUy> clement nets us .r <link> holder within each <pick>
element. Another aspect of the invention provides that structural text-based represe ntation CA9-2()03-0069 - 6 -code is generated for irnplementin'~ dead path elimination in the rcsulttutt structural text-hosed rcprcsentation. An aspect of the invention also provides that this computer-implemented method is executable using a conrlouter program product on a rccordahle data stor~r~~c medium, or in a modulated carrier signal that is trtrnsmittcd over a network such as the S Illlel-rlCt.
The ioresent invention provicds the advantage of~ allowing conversion of graphical representations having "cross-over" and/or conditional configurations.
Further, it allows high readability of the gertcratcd textual representations of business processes by facilitating the use of structural elements in text-based representtrtions, in a manner that preserves a lU significant portion oi~ the ahatte and flow lc>~~ic o1~ the business process rcpt-esentcd in the graphical representation.
Brief Description of the Drawings In drawirt~s which illustrate by way of ex<trrtple only a preferred cmbodintent of the invention, 15 Fi~~ure I illustrates a graphical representation of a business process containing a shared node.
Figure 2 illustr-atcs a gra[~hicul representation of n business process containing a CI-OSS-OVC I'_ Figure 3 is a segntcnted representation of the illustration of f~i~urc ?.
3t) Figure 4 is a flowchart reltrescnUrtion ol~ ten entlaodiment c>f the method ctf the preferred eIllhC)(tltt7erlt applied to a graphical representation ol'a business process.
Figure 5 illustrates a bra[thicul rrlor'csent<rtion of tt business process containing a fault.
Fi~urc 6 is a segmented representation of the illustration of Figure 5.
'; I~'i~~ure 7 illustrWCS a graphical representation of a business process containing a receive event mode.
CAS)-2()03-()()(i9 - 7 -Figure H illustrates a graphical rcprescntatictn oi~ a business process ce~ntainin~ a fault node.
1~igure 9 illustrates a 'Tr~rioltical relot'csentatiun of a business process containing a shared node.
I)ctailed Dcscritaion of the Invention The prelcrred enthodiment is described using cxantloles of graph-based business process representations as supported by WcbSpherc'"' Studio Aplolicatiort Developer Integration Edition (;WSADII) and text-based representations expressed in the 13NF_Lf1.WS
business process language. 13YEL4WS is an XML-based language perrnittin'~ the definition to of hierarchical structures of nested elements to define various processes and protocols commonly used in business loroccss notation. In this dcscriptic:tn, sc»ne 13NEL4WS syntax has been removed i~r-orn the code excerpts I~ur ease of readability. It will he rrnderstooci by those skilled in the art than the preferred embodiment may he implcntented l~or other graph-based and structural text-hatred representations that share characteristics with those set out in the description below.
The exarttples of the preferred emhe'tdimcnt, below, are concern ed with conversion (or export) of those parts of business process ~~raphs which include cross-over or conditi<.tnal configurations. 'hhe technidues for the conversion c>1~ other aspects of suelt graphical representations is not described and is to he accomplished usin~~ tcchniclues known ctr ?(> developed by those skilled in the art.
The preferred crnhodiment requires identification of shared nodes, which in this specification are defined as modes in a graphical representation ctf a business pre>cess havin~~
ntctre than one incoming control tonnertion. Ry identifyin~~ shared nodes and carrying out simple steps after identification, cross-over and conditionrtl configur<stions may he ''S consistently converted without requirin~~ time-consuming graphical semantic analysis.
'The business process ~~raph of 1~i4~ure 1 includes an exarnpie of a shared node.
'The process graph ol~l~i~~ure 1 shows input node 1(), output node 12 and activity nodes 14, 16, lei. Nodes I~, 16 have control corm cctions to node la, which is tltcr~fore a shared mode.
CA9-2()03-()069 - H -Similarly. the process graph of Fi'~urc 2 illustrates two shared nodes. '1'hc configuration of Fi'Ture ? also includes a crows-over process confi!~uration of nodes and control connections. In Fi~~ure ?, none A ~? and node 13 34 ham control connections a8 and 39 to shared node D 36. Output node 48 is also a shared node since it is the target of two control connections 4O and 47 from nodes C.' 4() and D 3(. rl'he type of cross-over configuration of the process graph shown in Figure ? may present difficulties for consistent conversion to a text-based representation such as that made using BNEI~WS.
The preferred embodiment provides an approach to the conve-rsion of graphs such as those shown in Figures 1 and 2 (including shared nodes) whereby consistent eduivalent to text-hascd representations may he ohtaincd. In the preferred ernhodiment, the initial process ~~raph is manipulated to define an segmented graph having a set of segments.
Each segment in the ac~~mented graph is converted into an cquivalcnt textual representation. Where there are multiple ae~~tncrUs in the segmented <~raph, the cwiginally defined inter-segment control connections arc rclercnced to complete the textual representation of the initial process graph.
I S The segmented graph for the process graph of Figure ? is shown in Figure 3. As referred to above, Figure ? contains shared node D 3C and shared output node 4~. 'The Figure 3 segmented graph is obtained by traversing the graph of Figure ? and defining a new segment at the input node and at each shared node. 'I'hc segrmented graph is the process graph with the incomin<~ connections to that shared node removed. Whether the original process 2o graph is itself modified to rcrnovc the connections, or whether there is a new graph created.
will depend on implementation choices.
In the example of Fi<~ures ? and 3, segment H2 is defined at input node 88.
Segment 84 is defined due to node D 36 hcin~~ a shared node. Similarly, output node 4R is a shared node <rnd therefore sc'=meat 8h is defined in the segnoentcd graph of Figure 3. In the ~5 segmented graph, the multiple control connections that deline shared nodes are removed i'rom the ~~raph.
Using the approach set out whom, the preferred emho diment exporter parses a process graph, '~ener,rtea an segmented ~~r.rph. and generates an equivalent textual representation. Generally, in the prrierred enohodirncnt, the present invention performs the 3o followin~~ steps in converting a cross-over process ~~raph such as that shown in Fi~'ure ? (the CA9-2()(>3-()()(W _ St('.pS al'e Shuwll In the t~uWCltill't ()1~ I"It;Ure ~ allll the 1'CfCI'ence IlUlttel'illS to tltat t~I~~UI'L al'C
~~iven below in loarentllcses):
1. All shared nodes in the process ~~ralth arc identified (2()());
?. An irtternlediatc process graph is generated by rreatin~~ smTments where shared nodes arc found in the initial process graph (hy relne)vin<~ the incc>rtting connections to the shared nudes) (? 1 ()):
a. Each segment in the intermediitte process gratoh is converted to an cquivalcltt text seglttent in the tar4~et text-based, structured business prwcess lan~;uuge (~''()):
If there is only one segment, then there is no shared node issue and the conversion is complete. Otherwise, it there are several segments, the cclnversion continues with lhc lollowirtg steps:
4. All converted text sc~~mcnta arc delincd to be concurrent with each other.
In BPEL4WS, this is accomplished by placing the seglncnts within a single <:tlow:. structure (?3());
I5 5. All converted text se~~ntenta c<')rrcsportding to shared ttodea arc I~urthcr subject to a synchronization cc.>ntrul in the text-based languil're to correspond to the control connections to the shared nudes in the initial process ~~l-irph. In 13PEL4WS
this is ilecumplished usin~~ the. <:lin)..> synchronization olclttrnt tc) econnect alll of the converted text segments that correspond to shared nodes (?4()).
2o IN 13PEL4WS, the <:linn:~ synchronization element is an implementation of a 11a1r Of <source> and <target;> cleltlellls Illat COtlstl'alIlS 1110 eXCCUlIUn of aClIVIIIeS that I11lt)' otherwise run concurrently. An activity may hr declared as the source of one ur n lore links tllrou~h the inclusion of one or n1c)rc <:~ourcc~.> elements; the activities that arc the targets of these arc deli<~nated by the inclusion c)f a .::tar~ar> cletncnt hciu'ing the carne distinct ''S <link> name . li~an activity is delincd as the target in a <~ i.r)k> in tplerllcntatiun, then it will niri execute until the <:;<-~urce> activity is evaluated as leaving completed.
Applying the above steps to process '~rahh shown in Ei~;ure ~, node D 3(i anal c)ulput node 48 are identified as shared nodes due to the respective multiple incomirt~ control CAS)-?()()3-0()(0) - I()-eonnectictns (control connections _~~ and sc) l~ur node I) 3fi. and control conn ections 4G and =17 for output nerd a ~~i)_ 'hhe initial prose-ss graph is divided into three sc'~ments tc> obtain the senntented ~~raph, shown in Fi~~ure s, as sr~~ntcnts 8?, H4, anti 86. 'The first se~zment ~2 lrtCludeS input node 42, node A 3?, node li _34, and node C 4(). The second se'=ntcnt 8~
conttlins only shared node 1) ,6. 7'hc third segment H6 contains only shared node output 4i~.
As will be apprrc;iated by those skilled in the art, althou~~lt the prel'crred embodiment is dcscrittcd as defining an scgmerttccl graph such <ls that shown in hi~,urc 3, it is sufCicicnt that the aegntenUrtion shown in the segmented graph is identified in a ntanncr that is then usable tc>
define the athpropriatc text-based converted scgntents. I)itiermt implementations rnay to represent this information in dill erent manners, although the infc>rlnation corresponds to wh<rt is shown in the segmented graph set out in Figure 3 The business prctccss atctivities anti connections dc'I'ineci ilt each ctt~
the scgntenls in the se~~ment~d graph are converted tct an ecluivulent text-based rcpreserttatic>n. In the rxantple of Figure 2 and 3 of the preferred embodiment, this conversion is sltetwn with respect to a notional set of activities A, 13, C, D shown in nodes 32, a4, 4(), ~6, respectively. An example set of three BPEI_~WS fragments relating to the. three scgmonls )32, R4, 86 is shown below:
< ! __g~~n~nt 82 begin ~ - -<secruence:>
<Y~~Ct.lVE'. ...%-' <:floW>
SeC'xLleT7Cf.>
invoke namee-="A"><!invoke~;
<::inviske nam<e:="C"'></:invo'ke~~
<; :~eque:nce>
<invoke~ name--"B">:/invc~ke.>
< / ~ l ow>
< ! sec~ience:>
~_ ! -Segment 82 ends -- -~(1 <!-Segment: 84 k~ec~ins <invoke name-"I7"><!invoke~
!-:segment 84 en<l:
< I__~~eqment 86 k:~egin.~ - -<reply ... ><i reply>
is < ! _. Segment 8 ~ end:
f_'A9-?()()3-0(169 - 1 1 -According tc> the 1'treferred etnbodintent, the three fragments ul~ text-based rel~r~sentatien corrcspondin~T to the. segments in tlrc sc~~mentcd ~~ruph arc placed within a single struttore clefinin'7 cconcurrent processing for lltc converted sc~mnrnt text l~ragmcnts.
In the example od Figures ? and 3, since there arc three segments H?, f;4, and Hfi t~or the process graph shown in Figure 3, the text-hosed rclarcsentations l~ar those segrttcnts arc placed within the f3PFL~WS
structural element <flow>.
The control connections pointin~T to shared node in the initial prc>ccss graph arc then referenced to define synchroniratiort structure for the converted text-based representation. In the example of the preferred cmboclintcnt, the t3>'Et_4WS <a i nk:~ strmture is used to ciefinc t0 the required synchronization and control relationships in the converted text-hosed rcpresentatton.
<flow>
<links>
clink name="FlowConditican~zlContx'olCOnn~ction 3F3";'>
IS clink narnc2-"FlowC'onditi~nn<zlCOnt.rcnlCcmr'r<.c:tion 39"/>
clink nanz<..:-"FlowC'c>nditii:~rozlContrc>7Connc>ction ~6"/>
clink name"F:lowC-'onditic_~nalControlC.'onnect:ion 4?",~'>
</link>
<sequs-:nce>
'_() <receive ...% >
<flow>
<sequence>
<~invoke nams="A">
:>our <ve .1 i nh-Names -25 "FlowCec>nditic>nalConterolConnoction 3H"!>
</invoke>
<invoke n~une="C">
e;; ounce linkNarne--"Flowc.'ondit:ic:~r~alc_'oni:r.«lConne~ctiom 4C"/>
~~ 1.1'l.VOke:>
<: % SeqllE-'..TlCe>
<:invoke name-.-"fi">
<satzlrce 1 i nkName=
"FlcwCc~nditionalContTalC~mneution 39"i>
/ invol~:e:>
</flow:>
<%sequence>
< i _- <,,hared Activit,i.es l>ec7in -CA9-?()();~-0()O9 _ 1? _ <r~:~ly ...

~:t~rc,ert. JinJcN-rmc:~"t'l~uwu'cnrl'.i.t.i mril.Ccntrol~'unnect.ic>n4(i"-.

<Yarc~eta linktlam<:="F'l:~~taC~=nditine~lContr~olConnection4?".-!rE.epl~>

J <imoke nam e--"D">

:~caurce linkNam<~-"I'lowC~or~di.t_ionczl.ControL<'c,nneoti.c:sn~'l", target linkName="Flowy,edit:ir~nc~l.C'cintr~o7Conneetic~n-W", >

~t_arge~t: limkName.:. r'lowc~c~.rd:i.t.iona;l.Cont=a:olConne~3~3";'>
t-:iun <!invoke>

1() <!-- SharedActivities end - .

~!flow>

As may be seen from the above example, the synchronization and control provided by tyre preferred etnbodimcnt results in ~ut equivalent text-based representation of the cross-over c<'tnfiguration 1~c'tund in the process graph example of Figure 2. Although the three converted IS text segments corresponding to segments H2, R4 and t~6 in the se~~mcnted graph of Figure ?
arc placed in the <tl.ow> clement of the converted 13NEL4.WS representation, the use of the syrtchr<°>nizatic:~n links ensures that business process is equivalently represented. In the above example, activity D 3O will not start until activities A 3? and B 34 cot~tplcte because of the defined source and target locations for the synchrc'tnization <l.i.nk>
elements defined for ?() control connections aH, 39. Similarly, activity output 48 will not start until activities C 4O and D 36 complete, due to tyre defined source and target elements iitr the link elements correspcanding to control connections 4(i, 47. (,"consequently, the resulting 13NEL4WS business process will behave in the same manner as the process graph shown in Figure 2.
As will be appreciated by those skilled itt the art, this approach to conversion o'f <~r'aloh-based 2s business process representations that include shared nodes may be implcrnentcd in a system for automatically identifying shared nodes and carrying out the apprcopriate graph manipulartions and ec'onversic'>ns to the text-based target. '1'hc preferred ~nthodimcnt larovides for a consistent conversion of ~~raph-based to text-based business process representations where a shared node is found in the graph-based representation. t'otcntial prcthlerns aU <.tssociatcd with conversion of cross-over configurations arc hanellcd by the system and method of the prelcrred embodiment.
The preferred emhodintent rnay' also he used to convert process ~~raphs containing conditional pritccsses such as those clentertts such as those comrnanly f~f~crr~-d to in CA9-?()()3-()()69 - 13 -Rf'EL4WS notation as "pick" or "fault" ~onli~~urations, respectively used tr>
represent event handling and vault bundling in business process rcprcscnOOions. Conditional elerncnts within the ~raphiral representation of a businesa process wills event handling may be used to determine which path in the gralah slwuld be taken h<tsed un a received event.
Conditional elements in a ,Traphical representation ol~ a business pre cess with laurlt handling may he used to determine which vault-handlin~~ path in the graph should be taken when a i~ault is thrown.
A conditional node such as a 1'atult handling or event handling node may he represented graphically as a node evith one or more output terminals. For example, a fault handling process is shown in Figure S. In Figure 5, there <u~e two control connections t~rc'>ttt l0 two terminals in node A 7~ point which both paint to a single fault node 72.
Figures 5 and (~ set c.tut a sintplc example which illustrates how the preferred embodiment handles the presence of multilolc conditional contro'1 cc»mections leadin;~ to a shared node in a graph-based business process representation.
According to the preferred embodiment, the graphical represcntatiott o1~
Figure 5 is divided into two se~~menta 174 and 176, as shown in the segmented graph representation of Figure 6. Segment 174 contains the input nctdc, activity node A 7H and output node ~?.
Segment 176 contains only shared fault node 72. As set out <rhove, segments 174, 176 are converted tc> the BPE1.4WS equivalent. The text-based segments arc placed in a single <:flow> structure.
2tt In the preferred cmbodirnent, conditional corttrctl connections arc eortvertcd tco the conditional element <ratch> in F3f fl~fWS. In the example, the Fault Maths shown in Figure 5 arc connections to shared node 7'? and arc th creforc defined in the text-based representation usin~~ synchronisation and control elerncnts fchc link clctnent in Bf'E1..,4WS). Its the preferred embodiment, the fault terminals in node A 7H arc rnodcllcd with <catch>
elements. Because ''S the fault paths point to a shared node, the contents of the catch elements will be link elements, in the text-based representation. Further, dm: tc> the clul~irtition of the BPE1.4WS langua~;c, a link must relate to an activity and lug this reason an <cmpty> activity (a null or placeholder activity) is also included in the aploropriatc <catch> clemertts in the resulting ccluivalent text-bused representation.
C'Ac)-200~i-(1()69 - 14 -In the example of Fi~~ures > and 6, sr~mcnt 176 contains the shared fault node 7?.
Since this node is pointed to by control connections frono fault terminals 74, 76. <empty>
activities are inlined within the two <<:<.rtch> elements that relate to those tcrrninals in the text-based segment representations. The <m"pty> activities act as <1 ink>
holders 1'or the <source> elements. As is shown below, <reply> activity Fault I 7? is lhc target of both links indicated by the <target> elements. The resultant code I~<>r the example has following structure:
<:flow>
<links>
clink name="FlowControlConnection '75"/>
clink name="F.LowControlConnection '/'/"/>
clink name="DPELink AToReply"/::~
</links>
<!--Segment 174 begins -IS <sequence>
<receive ....
<invoke name..-"A"~
<catch faultName="ns3:FaultR">
<empty>
2U <source linkName="Fl~~wConditionalConYrolC_'onncect:ion 75"/>
</empty>
<catch faultName="ns3:FaultY"
<:empt:y >
source linkName="F1c>wConditic~nalContr~~LConrrc~ction '7'7"-?5 ~ errrt~ty':
</catch>
<scurce linkName="DPET,inl~:-AToRsrply"/>
</invoke>
<reply name="reply">
30 <=target. linkName="DPELinL: AToReply";'>
</reply>
~~; >equence>
<'!--Segment 174 ends --! - Llared .~"~ctivi 1 ie:.; begin !-Segment 176 l~egin> -. >
<reply faultName="Fault'72">
<target limkName="FlowC_'onditionalControlConnmction 75"/:.
<target 1 inkName ="FlowCondp t Bona I~'ontr~~lC'onmmti~,n 77"i-reply=.
<!regmr=nt= l'i6 c~nd:-~ -, (.A9-20() i-()()69 - I > -~ -- sheared ~c;t:iv~ ie~s c.mel -< % f 7 o~r~ >
As is c'lescribc(1 with respect to the example of Figures 2 an('I :3, text-based re:prcscntations correspondin~~ to segments 174, l7fi in Fi~~urc 6 are placed in a single <_tlow>
cle ment in the rcstrlting text-based rcprcscntatictn. The relationship of the catch and link elclnents in the ah('>vc example ensure that the activity correspondin~~ t(') Fault 72 will nut slur( Lentil either FaullX (tr FauItY is thrown by activity A 71i. According tct the Clelinition C>f 13PEL4WS, once either F'aultX or FauItY is thrown, the status of the link correspondin'T to the tilUll C.'aUgltt IS Set to true artCl the StatUS of the Ollt~,~ollt~r Illlk Wltltllt the ~=catctl> elelllent (hell to will not he pcrforlneCl will be act to I~<rlsc. At that time the status of hotlt incoming links of the target activity can he determined, unit in the I3YEL4WS implentcntation of the preferred enthodintent, the turret reply activity will then run, as the utrgct elements for the defined links will each have a determined value. '1'hc resulting HPEL4WS representation of the business process will behave in the sarnc manner as the business process represented in Figure 5.
(5 An example of a l:ondItIOIIaI node fur event handling is shown in Fi~~urc 7. The receive event node has two terminals ()?, ()4, each i~l~ which is associated with an event. If ctne of these events occul°s, then control over the process will puss thr-uu~~l't the associated tcrrninal atlt(t all activities than arc inlined with that terminal will run, while the activities associated with the cother terminal will not. In the, cx<unplc itl~ Figure 7, what tltc event associated with ?o terminal ~)? occurs, then the proccw at node A ()H will he executed (connection I()() is l~ctllowed; af~tcr cxccutic>n of no(Ic A ()h, connection I()? is 'f~collowc(i to output nctdc 104'). In such a case connection l0O will not he lollowed. Conversely, connection I()6 is lollowc(t to output n(tde 1()4 when the event associated with tcrlninal ()4 occurs hctorc the event f~c:~r terminal ()?. In this case, connection I ()() iwot follcwve(1. In the preferred cmhoClimcnt, such 25 at conditic:tnal structure is mculclleil in a similar manner teo the fault handling scenario, hut using a <~ick> element rather than <:catcn~. an(1 represcntin'~ each tcrrninal with an <onMessa~e> structure. If node A ()5 were pointed to by more than one control connection, then <empr_y> activities would he inlimCl within the two ~ >oM~r:> >a<~e..
elements that relate to those ternoinals in the text-based sy~lncnt representations. The <_em)vt~>
activities act as iU <.link> holders fur <aource> clcrncnts.
C.'A~)-?OOa-()()C() - IC -In a structural solution to cc>nvcrting a ~~raphic:rl representation u1~ a business process to a text-based representation, dead path elimination is a concern. In a graphical representation, dead path elimination is implied in the representation. In a structural text-based representation, explicit structures <rrc necessary to handle dead path diminution. I~or example, once a fault is thrown, the rest of the normal seducnce path should be climinatod. In the pattern mappings to the structural text-based representation, link elements arc included in sequence structures to handle dead path elimination.
F'referahly, dead path elimination links ("DI'F links"j comply with the l~ollowin;~
IlafTllllg cOnVCntIC)Il:
lU link name = "DPELink," + [source node name] + "'1'0" + f t_argot node name]
An example of the handling of dead path elimination by the exporter is <~iven with reference to Figures R and 9. Figure H shows the body ol~ a block with a fault node I'28.
Figure 9 illustrates a ~~raphical representation ol~ a process with a shared node, containing block node 120 with a fault, the hotly of the hlc>ck being that shown in Figure ~).
In the preferred embodiment, thr structure of the resultant code is as follows:
<!-- from T3PEL4W5 tile -<;flow>
clink s>
clink name="FlowCondit ional('ontzolConmction 4"~

clink name="F:lowCondil icmal~'~>ntrLComnc~ct.ion S"/:--<link name="DPELmkrrc,eive'l'<>;;eyufmce"/%

clink name-"DP>l~ink-: ~~qu<:~nc.<.'1'oRR.ROp"
/ >

clink name="DPFLink-Input- Imput'1~Q4)Up"i>

clink name="DPEI,ink-~~QQOp~f~>AAA<)p"
/ =-clink name="DPFLinkAA110pTo0utput-Output"/>

clink name="DPFLink 'I"I"C'c)p__1'foFault ", link:>>
sequenwc_w~
C:A9-2003-00(9 - 17 -rc.=,ceive cmt°ai_nzr::":input." cm~at_mlri>t,.<tmw-"yes: "
operation="Ti 'Tfr ~ce~_s,;~)t;" pert'I'~~1»-"n~:?:TT'l'I'ortT~;t~e"
<aourc.c: linkNam2-<-"DPELink-reeeiveTosequence";
<</receiv<e>
:acope ctimtai.nePrW<,~~;-; <mx':ialr~Gtl>1w-"r:co" na~xtE,."Hlmc:k"_ <:faultHan~ilc>r>:>
<cat.ch faultiJame=.~ns3;LQQFaultM~g":>
<inwcJ~,e imputContainex'="tT'l'7:nputM~>c~" name="TTTOp"
oper't:~t ic~m=-"TTTOgo" outptttC.'a>nt: nner "t'I'T~)utputM;rel"
IU port.''.I'yt~r -"n:: ~ . T'f"I'Port':L'ype"=
~. ;~~ (.? 111' C' [:
linkNante="FlowCondit=ionalControlConnection 4"!
i lIIVOF;e.'~~
</cat<vh>
</fattltHandlers=
<sequence>
<emptY name="Inputs-Input">
srnlrc:~ li.nkN~mE;~="DPELmk TnFnat__InF7utTo4)~>QOp" /:.>
<; emg~t:y>
?() <invoke inptot<'ont;.amer="qQQInputM;~c7" namo -"QQQOp"
opart.tt.i.on= "~?yQc>p" outputC'c>nt:.amsr-° 'cI4i4>Out:putMaca"
port'fYpe="n:? : p)~PortTYpe"_>
<catc~ln faultCont airier="qQQF'tiultMaq"
faul.t:.Nmme="n ~3: qc:,tclF<au l t ".
?5 <:~eq~aenre>
-: irt Voke i nput<.'unt_c~iner=_ " t_fTInputM_.g l "
t ame.=",TT,POt.,>.....1 ~~ ~t1>t°r<~ticm="7'T'POp"
c~utpu t.Cc>nttainer - ° tTT«utFoutM::tc31 "
prir t'fypE:-v"rt:7. : TT'fPort'fyl,>e"=
cap-~oo:~-ooo~o - i ~ -:source:
lWnkName=°OPh'Link- l~ITi)I31'1'oF'awlt "
irme~ke :>
.throw LaultContminc~r 'Fault"
tauLtNamia-- 'ns3:Qc~>~7FaultM:;q' name Fau.l.t":
t a t'<Jat linkNamc.="DPELink. TT7'np__lTc~Fault", thrmv>
<: /:>equonce:>
</catch>
<target 1 inkName= "DPE:L~ink Input-Input roQ(>~Op" i source LinkName-="DPELink ~pQOp'I'oAAAOp" i.
invoke>
<.i.nvoke inp~:tC'ont<~im~r="aAAInputM:>c~' nrame="AAAC)p"
IS operation="AAAOt>" cmtput C'ont<~imer= 'aAAOutput:Msg"
portTypr, _ ~n:;5 : AAAIe ~r-tType°
<targwt linkName="DPELink QyQOpToAAAOp"j:>
::ourcm linkName="DPELink AA~:)pTo~n.tput c)utput"
<:i'invoke empty name=-"Output Output">
<targ<=W iinklVame="DPELink AAAOp'1'oOutlout Output"/%-%empty>
<t~srget linl,:N<rme="DPFLlnk rewmive'Ic~:mqutmwe"/?
>ourcc_ linkN<ame= "DPELW k sequence T~>RRR: >p" j ~5 aequence:>
.:/sco pe>
<cinvol-:e inp,ztContai-ner =-"rF:RInI>utMscJ° n<i~n~= "RRkOp"
~perat ion=-"RRROp" outputCont W ner ="rRIR utput M:~g"
portT~he="ns4:RRRPortPypc:"=

source linkName="I'l ~wC~ndi.ti<umlC' :mi-woi('c,nneot m~n 5";
<tarclet l.inkN~ime="DI'i?Liuk :~mc~mmvc,'I'<>RRAOI~ i, < i' invoke sec~uencwe~
!--Shard Act ivitw:~ br~~in.-<reply container--"output aper<ation--"TTTPm>ce~~~Op"
portType="n:~2 : T'I'TPortTy~~r~"-<tarc~et linkName F'lc:wCondWional('ontrc~l(_ommction-9"/>
<target linkName Fl< ,auondi t i~na LC.'ont r c~ l ('onm~ct- i«co5 " />
1() </reply>
~!--Shared Activitie_~ enc: .:
< / f low>
In the hrcfcrred cmbociimcnt, when vault handling is detected, dead lath elimination links arc added to all seduences in the structural text-based rchresentation of the 15 process (three in this case). In the main seducmc shown in Figure 7, a I~PE
link is created hor control connection 13() between the r,~ceive~~ activity and block 12().
Another DPE link is created for the control connection 1 ~2 between block node I ?() and the ~
inv:o.:e> activity RRROp. This link is necessary because if a fault is thrown, the RIZR()h activity should not he executed because it is in the name scducnce as tllc < :cop<>> of the Mock, however it will be 2o executed unless there is a link to prevent it. In the seduencc inside the <_acopt> activity, a DPE link is created f~c>r the control connection I I() between the <t~n,hty>
irrlut anti the <invoke> activity QQQOp. Another I)lE link is created for the control connection 112 between the QQQ()p activity and tllc <_in -«kE>> activity AAA()l. finally, a I~PE link is created for the control connection I I~ between the AAA()p activity and the <em~ty> (>utput.
?5 The links between the (~(~(~()h activity, the AAA()h activity, the AAA()h activity, and the outlet arc necessary in cure a fault is thrown and that larch must he eliminated. In the seduence for the catch, there is a I~PE link l~or control connection l I(~
between lhc T'7"I'()h1 activity and fault node I?~.
A detailed dcscriltion of the method of the present invention in accordance with 3U the preferred embodiment is as follows:
CA9-?(>()~-(>()69 ?() -St~~ l: IOcline Shared Nodes F3e~rin at the input nude, the initial nude of the ~~rapltical representation oi~ the hrnsincss process. Identify all shared ncxJcs by collecting all nodes in the '~raiphicarl reprrsentatiun anti checking etch to sec if any of the nudes ce>ntain mttltiplc incoming s connections. Store shared nodes in memory fur use in Stop 2.
Stop '?: Generate se;,7ments of~ the ~~ruhhicnl rcprescntatiott i. Create a structural clement <~~quemce> as the root of the current segment.
ii. Translate the current nuc'Ic to its corresl,tunclin~~ IiI Cl_~~IWS
activity. For example, if the current node is an input ttodc, it rnay he tratnslarterl tot a .:receive..
activity. Place to floe generated activity intc»ts current segment, and mark the current ncode us "visited'".
For nodes that at°c marked "visitec.l", the method skips tttc node and generates nc'tthin~;.
iii. Continue tot the next available node by travet'sirt~~ the outgoing control connections of the current node. Repeat (ii) etl~ Step 2 if the next nude is nut marked as "visited".
Also ~~enerate the structural clement, -.~~quEence~::. or <~f.la~w.~, to ntudel the l~Ictw IS structure, based on the f~c>Ilowing rules:
1. If there is only ono out;~oin4~ control conne-coon, do not generate any structural e.lernents.
'. If tltere <tre multiple outgoing control cunnectictns, generate: a <:W ow>
element and place it into the current segment. Repeat all procedures in Step 2o t~ur each path connected by an outgc~in~ control connection. This will result in creating a E3PEL~=IWS <rctivity that represents the branch. 'these activities arc placed into the <flow> element, such that the <flow> clement maintains the slow of the prowess.
iv. If the current nc>dc is a shared node and is n<tt ntarkcd as "visited", the current ~5 se~~ntent is completed. All lorc>ccciurcs in Stop ? <ur repeated using the shared node fns the initial node of a new segment. As a result, the new se~~ment contains the shared node and its suhscduent nudes. Nlace both segments in memory for use in Step i CA9-?()()3-0()69 ? 1 -v. It the current node iv a service node with fault terminals, '~cnerntc a «-~:zt<vtu>
clement for each i~ault terminal arid inlinc the lirst segment r>f the larult branch within the «<~c.ce> clement. If the first scgntcnt is shared, an . tmt~u.~>> element that acts as a <iink>> holder will he inlined within each <ce~,t~~rm~ elctttcnt instead.
Place the rest of s the se~~ments itt memory I~or ust= irt Step 3.
vi. If the current node is a node with event terminals, generate a <uick:>
clc:rncnt for the node, and an <onMe~:~a~t,:= slructurc f'~r each evcrtt terminal, and inlinc the first segment of the event brunch. within the <c~nMevsa~e:> elcntent. If~ the first segment iv shared. an <tmt~tY> clement acting as a <l:i.nk:> holder will be inlined within each I() <onMe~;~~~e> clement instead. 1'lacc the rest of the segments in nocmory fc>r use in Step 3.
vii. The walking procedure ends when all nodes have been examined as all c>t the segments in the process graph have been stored in memory.
Step ~: Connect the sc~~menls 15 i. If there are multiple se~mcttts, place all the scgntents into the structural element <~ f lows .
ii. Gencratc° a synchronization clement <linh:> to connect up the segments that ltad a contrc>1 connei:tion between thctn. 'I'hc s<turcc: c'>I~ the <:limk> element is the correspe>nding l3pEL4W5 activity that reprments the source nc>dc crf the c:c:~ntrc~l 2u conttcction. The target of lhc ~lir~k> clement is the cctrrcaportdin~~
BI'EL~WS activity that represents the shared node tit<tt the control connection connects to.
()nee the segments that should he connected are connected, the conversion is complete.
An alW .rnativc emhoctirttcnt c>f the method of the present invention I~or a business process lan~~ua~~e that does not support conditional elements would he as above ex~:ept that it ?5 would omit Stcp ?(vj.
Thus, the method and system cleseribed ahoy, through the application of structural elements, preserve a si~~niiirant portion of the flow logic arid "shape" of the ori~~inal graphical representation of the business process in the text-based reprcacntalion. Even where ~~raphical representations contain cross-over or conditionatl confit_urations, linkiny~ elements in CAc)-?()()3-()()(~) _ ~? _ the structural test-hasecl rchrescnlation am used only when nccrss4try to constrain tltc flow of the hroccss and to retain the lull semantics o1~ the graphical reltrcscntation. L)cad path elimination may al,o he carried out. where necessary.
As the preferred ctnhodintent of the present invention has peen clescrihed in detail by way of cxatnhle, it will he apparent to those shilletl in the art tltttt variations and tnodific:ations may he made without dcltartin':. from the invention. rhht' Invenll()Il lnelUCll'~ all such vari<ttiona and modifications as ball within the sc<>pc ctf the apltcnded claims.
CA9-2()03-()()(i9 - ?3 -

Claims (15)

WHAT IS CLAIMED IS:
1. A computer product product for converting an initial graphical representation of a business process to a structural text-based representation, the initial graphical representation comprising nodes and control connections, the computer program product comprising a computer usable medium having computer readable program code means embodied in sand medium, and comprising computer readable program code means for identifying as shared nodes those nodes in the initial graphical representation having more than one incoming control connection, computer readable program code means for representing a segmented graph based on the initial graphical representation, the segmented graph comprising segments being defined by the location of shared nodes in the initial graphical representation, computer readable program code means for obtaining a set of segment-based structural text-based representations corresponding to the segments in the segmented graph, computer readable program code means for defining a resultant structural text-based representation comprising the set of segment-based structural text-based representations and in which each of the segment-based structural text-based representations is defined to potentially execute concurrently, and computer readable program code means for generating synchronization elements in the resultant structural text-based representation defined with reference to the incoming control connections of the shared nodes in the initial graphical representation, whereby the semantics of the initial graphical representation are maintained in the resultant structural text-based representation.
2. The computer program product of claim 2, in which the computer readable program code means for generating synchronization elements comprises means for generating link code portions in the resultant structural text-based representation each said link code portion textually representing a selected one of incoming control connections of the shared nodes in the initial graphical representation and each incoming control connection being textually represented by one link code portion, each incoming control connection connecting a source node and a target node and each link code portion having a source activity and target activity, the source activity of the link code portion being the activity that represents the source node of the corresponding incoming control connection, the target activity of the link code portion being the activity that represents the target node of the corresponding incoming control connection.
3. The computer program product of claim 2, in which the computer readable program code means for generating synchronization elements in the resultant structural text-based representation defined with reference to the incoming control connections of the shared nodes in the initial graphical representation further comprises means for implementing dead path elimination in the resultant structural text-based representation.
4. A computer implemented method for converting an initial graphical representation of a business process to a resultant structural text-based representation, the initial graphical representation comprising nodes and control connections, the method comprising the steps of:

identifying as shared nodes those nodes in the initial graphical representation having more than one incoming control connection.

defining a representation of a segmented graph based on the initial graphical representation, the segmented graph comprising segments being defined by the location of shared nodes in the initial graphical representation.

obtaining a set of segment-based structural text-based representations corresponding to the segments in the segmented graph.

generating a resultant structural text-based representation comprising the set of segment-based structural text-based representations and in which each of the segment-based structural text-based representations is defined to potentially execute concurrently, and generating synchronization elements in the resultant structural text-based representation defined with reference to the incoming control connections of the shared nodes in the source graphical representation, whereby the semantics of the initial graphical representation are maintained in the resultant structural text-based representation.
5. The method of claim 4, in which the step of generating synchronization elements comprises the steps of generating link code portion textually representing a text-based representation, each link code portion textually representing a selected one of incoming control connections of the shared nodes in the initial graphical representation and each incoming control connections being textually represented by one link code portion, each incoming control connection connecting a source node and a target node and each link code portion having a source activity and target activity, the source activity of the link code portion being the activity that represents the source node of the corresponding incoming control connection, the target activity of the link code portion being the activity that represents the target node of the corresponding incoming control connection.
6. The method of claim 5, in which step of generating synchronization elements in the resultant structural text-based representation further comprises the step of generating structural text-based representation code for implementing dead path elimination in the resultant structural text-based representation.
7. A computer implemented method for converting an initial graphical representation of a business process to a resultant representation, the initial graphical representation comprising nodes and control connections and the resultant representation being a structural text-based representation, the method comprising the steps of:

a. identifying shared nodes in the initial graphical representation by collecting the nodes in the initial graphical representation and determining if each node b. storing identified shared nodes in a data representation;

c. traversing the initial representation and carrying out the following steps:

i. creating a structural element <sequence> in the resultant representation:

ii. for each node visited, translating the current node to a corresponding structural text-based representation activity in the resultant representation and marking the current node as "visited", the traversal skipping nodes already marked "visited"; and iii. generating a <sequence> structural element or a<flow> structural element in the resultant representation, whereby if there is only one outgoing control connection for the current node, no structural elements are generated and if there are multiple outgoing control connections for the current node a <flow> element is placed in the resultant representation and repeating the procedures in step (c) for each path connected by an outgoing control connection to the current node;

iv. repeating the procedures in step (c) if the current node is a shared node and is not marked as "visited", the resultant representation comprising segment-defined code corresponding to nodes in the initial representation that are shared nodes:

d. generating a structural element <flow> in the resultant representation whereby all segment-defined code in the resultant representation are included in the <flow> element:

e. generating a synchronization element <link> to connect segment-defined code in the resultant representation corresponding to the control connections in for the shared nodes in the initial graphical representation, whereby the source of each such <link> element is the corresponding resultant representation activity that represents the source node of the control connection in the initial graphical representation and the target of each such <link> element is the corresponding resultant representation activity that represents the shared node that the control connection connects to in the initial graphical representation.
8. The method of claim 7, further comprising the step of, for each current node in the traversal that is a conditional fault-handling node with conditionally activated terminals and corresponding conditional branches comprising segments, generating a <catch> element in the resultant representation for each such terminal and generating the first segment of the conditional branch within the <catch> element and further generating an <empty> element if the first segment is shared whereby the <empty> element acts as a <link> holder within each <catch> element.
9. The method of claim 8, further comprising the step of, for each current node in the traversal that is a conditional event-handling node with conditionally activated terminals and corresponding conditional branches comprising segments, generating a <pick> element for the event-handling node, generating an <onMessage> element for each such terminal, generating the first segment of the conditional branch within an <onMessage> element in the <pick> element, and further generating an <empty> element if the first segment is shared whereby the <empty> element acts as a <link> holder within each <pick>
element.
10. The method of claim 9, in which step (c) further comprises the step of generating structural text-based representation code for implementing dead path elimination in the resultant structural text-based representation.
11. A computer program product comprising a computer-readable signal-bearing medium, the said medium comprising means for accomplishing the method of claim 10.
12. The computer program product of claim 11 in which the medium is a recordable data storage.
13. The computer program product of claim 11 in which the medium is a modulated carrier signal.
14. The computer program product of claim 13 in which the signal is a transmission over a network.
15. The computer program product of claim 14 in which network is the Internet.
CA002443476A 2003-09-30 2003-09-30 System and method for conversion from graphical business process representations to structural text-based business process representations Abandoned CA2443476A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA002443476A CA2443476A1 (en) 2003-09-30 2003-09-30 System and method for conversion from graphical business process representations to structural text-based business process representations
US10/947,766 US7305412B2 (en) 2003-09-30 2004-09-23 System and method for conversion from graphical business process representations to structural text-based business process representations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002443476A CA2443476A1 (en) 2003-09-30 2003-09-30 System and method for conversion from graphical business process representations to structural text-based business process representations

Publications (1)

Publication Number Publication Date
CA2443476A1 true CA2443476A1 (en) 2005-03-30

Family

ID=34318791

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002443476A Abandoned CA2443476A1 (en) 2003-09-30 2003-09-30 System and method for conversion from graphical business process representations to structural text-based business process representations

Country Status (2)

Country Link
US (1) US7305412B2 (en)
CA (1) CA2443476A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490048B2 (en) * 2006-03-17 2013-07-16 International Business Machines Corporation Apparatus, system, and method for tool-based creation of a hub server/application interface
US8429627B2 (en) * 2009-10-12 2013-04-23 National Instruments Corporation Asynchronous preemptive edit time semantic analysis of a graphical program
US9020944B2 (en) * 2009-10-29 2015-04-28 International Business Machines Corporation Systems and methods for organizing documented processes
US9372844B2 (en) * 2011-10-01 2016-06-21 Oracle International Corporation Automatically generating a business process flow GUI using a symbolic annotation language
US10346516B2 (en) * 2013-02-27 2019-07-09 International Business Machines Corporation Readable structural text-based representation of activity flows
US10318641B2 (en) 2015-08-05 2019-06-11 International Business Machines Corporation Language generation from flow diagrams
US11233705B2 (en) 2019-12-23 2022-01-25 Robert Brennan Garvey System and method for visualizing and navigating network data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737557A (en) * 1995-05-26 1998-04-07 Ast Research, Inc. Intelligent window user interface for computers
US6763353B2 (en) * 1998-12-07 2004-07-13 Vitria Technology, Inc. Real time business process analysis method and apparatus
GB0018839D0 (en) * 2000-08-02 2000-09-20 Salamander Organization The Li Method for process-driven knowledge activation
DE60203117T2 (en) 2001-05-12 2006-05-24 International Business Machines Corp. SIGNALING EVENTS IN WORKFLOW MANAGEMENT SYSTEMS
US7222302B2 (en) * 2003-06-05 2007-05-22 International Business Machines Corporation Method and apparatus for generating it level executable solution artifacts from the operational specification of a business

Also Published As

Publication number Publication date
US20050071312A1 (en) 2005-03-31
US7305412B2 (en) 2007-12-04

Similar Documents

Publication Publication Date Title
Honda et al. Multiparty asynchronous session types
US8701085B2 (en) Graphical event and binding editor for software development
Rensink Model checking graph grammars
CN103729330A (en) Distributing services in graph-based computations
JP2006252557A (en) Method and system for managing development object for computer program code
Lohmann et al. Analyzing BPEL4Chor: Verification and participant synthesis
US20120272190A1 (en) Method and System for Graphically Enabled Service Oriented Architecture
CA2443476A1 (en) System and method for conversion from graphical business process representations to structural text-based business process representations
Ntentos et al. Assessing architecture conformance to coupling-related patterns and practices in microservices
Tröls et al. Live and global consistency checking in a collaborative engineering environment
US6546549B2 (en) Source code transformation process and recording medium
Corradini et al. Walking through the semantics of exclusive and event-based gateways in BPMN choreographies
US7844978B2 (en) Artifact management for an extensible runtime environment
Ferreyra et al. PDP-ReqLite: A lightweight approach for the elicitation of privacy and data protection requirements
US9547841B2 (en) Deriving overlay information from a user input for a base message schema associated with a node in a message flow
Hopkins et al. Two approaches to integrating UML and performance models
Camilli Continuous formal verification of microservice-based process flows
CN108846582A (en) Health degree data determination method, electronic equipment and computer readable storage medium
Li et al. Transformation and visualization of BPMN models to petri nets
Buneman et al. Composition and Substitution in Provenance and Workflows.
Wirtz et al. RE4DIST: Model-based Elicitation of Functional Requirements for Distributed Systems.
Alshraiedeh et al. An approach to extend WSDL-based data types specification to enhance web services understandability
CN110096266A (en) A kind of characteristic processing method and device
GB2443438A (en) Method of constructing and storing a document
Recalde et al. Improving the decision power of rank theorems

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued