AU2005247027B2 - A Business System for Computing Customer Charges for a Workflow Process - Google Patents
A Business System for Computing Customer Charges for a Workflow Process Download PDFInfo
- Publication number
- AU2005247027B2 AU2005247027B2 AU2005247027A AU2005247027A AU2005247027B2 AU 2005247027 B2 AU2005247027 B2 AU 2005247027B2 AU 2005247027 A AU2005247027 A AU 2005247027A AU 2005247027 A AU2005247027 A AU 2005247027A AU 2005247027 B2 AU2005247027 B2 AU 2005247027B2
- Authority
- AU
- Australia
- Prior art keywords
- service
- workflow process
- network
- workflow
- sequence
- 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.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims description 602
- 230000008569 process Effects 0.000 title claims description 381
- 238000012550 audit Methods 0.000 claims description 55
- 230000036961 partial effect Effects 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 29
- 230000006854 communication Effects 0.000 claims description 28
- 230000001419 dependent effect Effects 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 8
- 230000001737 promoting effect Effects 0.000 claims 1
- 239000003999 initiator Substances 0.000 description 54
- 238000012360 testing method Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 22
- 230000006399 behavior Effects 0.000 description 15
- 239000012634 fragment Substances 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000007639 printing Methods 0.000 description 13
- 230000008901 benefit Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000001338 self-assembly Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000010348 incorporation Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000002147 killing effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000008093 supporting effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
S&F Ref: 733085 AUSTRALIA PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3-chome, of Applicant : Ohta-ku, Tokyo, 146, Japan Actual Inventor(s): John Charles Brook Address for Service: Spruson & Ferguson St Martins Tower Level 35 31 Market Street Sydney NSW 2000 (CCN 3710000177) Invention Title: A Business System for Computing Customer Charges for a Workflow Process The following statement is a full description of this invention, including the best method of performing it known to me/us: 584Sc -1 A BUSINESS SYSTEM FOR COMPUTING CUSTOMER CHARGES FOR A WORKFLOW PROCESS FIELD OF THE INVENTION The current invention relates to the field of business systems for calculating charges for service usage and particularly for business workflow system usage in a networked environment. 5 COPYRIGHT NOTICE This patent specification contains material that is subject to copyright protection. The copyright owner has no objection to the reproduction of this patent specification or related materials from associated patent office files for the purposes of review, but otherwise reserves all copyright whatsoever. 10 BACKGROUND Usage-based charging methods are well-known. They have been applied to usage of tangible equipment such as photocopiers in which the usage charge is strongly linked to the quantity of copies produced. Usage-based charging has also been applied to intangible services such as content provision systems, ISPs, and even including supply of 15 electricity, movies, and other content, etc. A goal for vendors of services or of intangible goods is to charge accurately according to the details of the goods or services supplied to the customer, thereby giving the vendor control of its market and of its return on any transaction and giving the customer accurate information about the cost of any requested transaction. 20 It is also sometimes a goal of vendors of tangible equipment to attract customers to using a service linked with the equipment, to add value to the original equipment, and 161205 733085 -2 to provide additional return on investment in the development and production of that equipment. Vendors may wish to specifically link properties of their products to availability and pricing of value-add services. Vendors may also wish to restrict some value-add 5 services to be provided only for certain of their products (for instance related to level of customer investment in the vendor's products) and to close out customers of rival vendors. Vendors may also wish to have the discretionary ability to define the value-add relationship for individual market segments or individual customers from time to time. The costs to the vendor of a value-add service may often depend on the specific 10 details of the service undertaken. Parameters such as the quantity of operations or delivered goods are well-known parameters, but these are very limited in their ability to predict the true cost of a value-add service. For example, the cost-per-copy method of charging for copying services and for covering maintenance costs of photocopying equipment does not discriminate at all between the quality of differing jobs (such as may 15 be set on the photocopier's control panel) or of the content of the jobs (such as may vary depending on the colour component of the job, requiring varying amounts of colour toner per job). There are some known methods of 'guestimating' (this term indicating that the estimate is only loosely based upon objective data) the amount of colour toner used per sheet of a copy job to allow modification of the cost-per-copy charge to the customer. 20 There are also methods known of downloading to a customer's photocopier machine a differing charging pattern for cost-per-copy accounting. These methods suffer from lack of accurate information and from lack of flexibility. Typically, accuracy is limited to the quantity information in a job, particularly to sheets output since this is typically the easiest and most generally applicable accounting 161205 733085 -3 method for print-type services or workflows. Other parameters are absent, or poorly accounted for or even guestimated, as in some prior art, providing for a very poor accounting of the true cost of a job. A workflow process may involve a series of services followed by a goods 5 delivery, for example a commercial printing workflow. There are known billing methods for printing processes that force a customer or retailer to tediously follow a procedure of filling parameters of the job and then the job cost is calculated according to each parameter. Although these methods force a customer or service vendor to specify additional quality parameters such as print resolution, type of print stock, number of 10 colours, etc, these methods may still not take into account a job content parameter, for example, when accounting for the true cost. These methods would also typically be only as flexible as the vendor's job control software system allows. For instance, any special variations in a job would typically involve a guestimation or even write-off of special costs incurred because of the complexity or even impossibility of collecting accurate 15 information to cost the job. Thus, the cost of particular components of the workflow such as ink cost, time per fold type cost, computing cost, even specialist labour cost, and so on, may remain unknown and only estimated, at best. When a workflow process (or, more typically, processes) are undertaken largely or wholly at a customer's premises then accurate accounting becomes more complex and 20 impractical. There is typically much less ability for a services or device vendor to control the collection and accounting of job information at a customers' site for the purposes of billing. The limitations include highly variable customer environments involving several variables such as networking setup, device and service types and versions, policies and procedures, standards, the customers' need for privacy and security for its job 161205 733085 -4 information, and the lack of information about the content and quality of any job, etc. In this context the service or device vendor has insufficient control to deploy and have faith in the success of a true service accounting method. SUMMARY 5 It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements. Disclosed are arrangements, referred to as just-in-time workflow charging (JITWC) arrangements. The JITWC arrangements are applicable to various work flow arrangements, and particularly to Just-In-Time Workflow (JITW) arrangements as 10 disclosed herein. JITW arrangements enable decentralised assembly and disassembly of instances of a Workflow Process Engine (WPE) for performing a sequence of tasks. Different sequences of tasks may require correspondingly different WPEs. The assembly of a WPE (alternately referred to as a WPE instance) is triggered by the advent of the sequence of 15 tasks. The entire WPE may be assembled before a first of the sequence of tasks is processed. Alternately, the WPE may be progressively assembled as successive tasks in the sequence are processed; hence the use of the term "just-in-time workflow". The WPE can be disassembled after all the tasks in the sequence have been processed. Alternately, the WPE may be maintained for further instances of the same type of sequence of tasks. 20 Alternately, the WPE can be progressively disassembled as tasks in the sequence are processed. From a terminology perspective, the WPE "executes" an associated Workflow Process (WP) in order to perform the sequence of tasks. A part of the WPE (ie a partial WPE) "executes" a corresponding part of the associated Workflow Process (WP) (ie a corresponding partial WP) in order to perform one or more corresponding tasks in the 161205 733085 -5 sequence of tasks. The WPE comprises a number of network services (which may also be network devices) typically drawn from a pool of network services that are connectable over a communications network. In assembling a WPE, network services successively identify subsequent network services on the basis of the suitability of the subsequent 5 network services to communicate over the network and to perform their associated tasks. JITWC arrangements seek to provide an extremely flexible manner of computing customer charges for multiple concurrent workflow processes. The disclosed JITWC arrangements accumulate usage and job information on a per partial workflow process engine basis. This provides very fine charging granularity for multiple concurrent 10 workflow processes based upon a pool of network devices and services that can be used concurrently by multiple Workflow Process Engines. In JITW systems network devices are concurrently shared across a multitude of different non-persistent Workflow Process Engines, and the disclosed JITWC approach enables accumulated usage and job information to be accurately allocated to these concurrent Workflow Process Engines 15 instances. According to a first aspect of the present invention, there is provided a method of determining customer charges for a just-in-time workflow that performs a sequence of tasks using a system comprising a pool of network services that can communicate over a computer communications network, the method comprising the steps of: 20 assembling, triggered by at least one event associated with the sequence of tasks, at least a partial workflow process engine to perform a corresponding part of the sequence of tasks, the partial workflow engine comprising a plurality of the network services in the pool; 161205 733085 -6 executing, by the assembled partial workflow process engine, an associated partial workflow process to perform said corresponding part of the sequence of tasks; determining, by the partial workflow process engine, at least one of usage information for the plurality of network services during at least one of the assembly and 5 executing steps and job information about the corresponding part of the sequence of tasks; and determining a customer charge based upon the determined usage information, wherein the assembling step comprises the steps of: processing a current task in said corresponding part of the sequence of tasks by a 10 current network service in the partial workflow engine; selecting, by the current network service, a subsequent network service from the pool dependent upon (i) the capability of the subsequent network service to communicate with the current network service over the network and (ii) the capability of the subsequent network service to perform a subsequent task in the sequence; 15 communicating, by the current network service over the network, information associated with the current task to the subsequent network service; designating the subsequent network service to be the current network service; defining the subsequent task in the sequence to be the current task; and repeating the processing step. 20 According to another aspect of the present invention, there is provided a system for determining customer charges for concurrent just-in-time workflow process engines that performs a sequence of tasks, each workflow process engine comprising network services from a pool of network services, said system comprising: 733085 / 153530v3 050808 -7 a pool of network services that can communicate over a computer communications network, each said network service comprising: means for assembling, triggered by at least one event associated with the sequence of tasks, at least a partial workflow process engine to perform a corresponding 5 part of the sequence of tasks, the partial workflow engine comprising a plurality of the network services in the pool; means for executing, as a member of the assembled partial workflow process engine, an associated partial workflow process to perform said corresponding part of the sequence of tasks; and 10 means for accumulating, as a member of the partial workflow process engine, at least one of usage information for the plurality of network services during at least one of the assembly and executing steps and job information about the corresponding part of the sequence of tasks; and a server for: 15 accumulating usage information for said partial workflow process engine and usage information for other concurrent partial workflow process engines assembled from the network services in the pool; and determining a customer charge depending upon at least one of the accumulated usage information and the accumulated job information. 20 According to another aspect of the present invention, there is provided a business system for determining customer charges for a just-in-time workflow that performs a sequence of tasks, the system comprising: a pool of network services that can communicate over a computer communications network; 733085 / 153530v3 050808 -7a the communications network; means for assembling, triggered by at least one event associated with the sequence of tasks, at least a partial workflow process engine to perform a corresponding part of the sequence of tasks; 5 said partial workflow engine comprising a plurality of the network services in the pool, and being adapted for: executing an associated partial workflow process to perform said corresponding part of the sequence of tasks; determining at least one of usage information for the plurality of 10 network services during at least one of the assembly and executing steps and job information about the corresponding part of the sequence of tasks; and determining a customer charge based upon the determined usage information; wherein: the means for assembling said at least partial workflow process engine 15 comprises: means for processing a current task in said corresponding part of the sequence of tasks by a current network service in the partial workflow engine; means for selecting, by the current network service, a subsequent network service from the pool dependent upon (i) the capability of the subsequent 20 network service to communicate with the current network service over the network and (ii) the capability of the subsequent network service to perform a subsequent task in the sequence; means for communicating, by the current network service over the network, information associated with the current task to the subsequent network service; 733085 / 153530v3 050808 -8 means for designating the subsequent network service to be the current network service; means for defining the subsequent task in the sequence to be the current task; and 5 means for repeating the processing step. Other aspects of the invention are also disclosed. BRIEF DESCRIPTION OF THE DRAWINGS One or more embodiments of the present invention will now be described with reference to the following drawings and Appendices, in which: 10 Fig. 1 is a functional block diagram of an interconnected computer system upon which described methods for JITW can be practiced; Fig. 2A is a flow diagram showing a first arrangement of a workflow process assembly method of the disclosed JITW arrangements; Fig. 2B is a flow diagram showing a first arrangement of a workflow process 15 execution method of the disclosed JITW arrangements. Fig. 2C is a flow diagram showing a first arrangement of a workflow process disassembly method of the disclosed JITW arrangements. Fig. 3 shows an exemplary workflow process chain of services. Fig. 4 shows an exemplary network pool of devices and services. 20 Fig. 5A is a flow diagram showing a second arrangement of a workflow process assembly and execution method of the disclosed JITW arrangements. Fig. 5B is a flow diagram showing a third arrangement of a workflow process assembly, execution and disassembly method of the disclosed JITW arrangements. 733085/ 153530v3 050808 -9 Fig. 6 shows an exemplary use-case of a staff purchase workflow process for the disclosed JITW arrangements. Fig. 7A is a flow diagram showing a fourth arrangement of a workflow process assembly and execution method involving two-level constraint testing. 5 Fig. 7B is a flow diagram showing a fifth arrangement of a workflow process assembly and execution method involving service self-selection to a workflow process instantiation. Fig. 8 shows a sixth arrangement of a workflow process 'pull' assembly execution document search example use-case 10 Fig. 9 is a flow diagram for a device participating in a workflow process of the disclosed JITW arrangements. Fig. 11 is a flow diagram showing a business model arrangement of the disclosed JITWC arrangement; Fig. 12A is a flow diagram showing a basic business model deployment method; 15 Fig. 12B is a flow diagram showing an extended business model deployment method; Fig. 13 is a system diagram showing workflow process, audit server and account server exemplary interconnections; Fig. 14 is a flow diagram showing a method of workflow process service 20 assembly with certificate check; Fig. 15 is a flow diagram showing a method of workflow process service execution with certificate check; Fig. 16 is a flow diagram showing a method of workflow process service execution with certificate check and audit record; 161205 733085 -10 Fig. 17 is a flow diagram showing a method of workflow process ID creation and audit logging; Fig. 18 is a flow diagram showing a method of workflow process ID creation from audit server; 5 Fig. 19 is a flow diagram showing an exemplary method of audit server certificate logging and unique logical ID generation; Fig. 20 is a flow diagram showing a method of workflow process execution with bundled service certification and audit logging; Fig. 21 is a system diagram showing an exemplary workflow process use-case of 10 document data update by query, re-layout and multiple printing with auditing and accounting; Table 1 shows exemplary job metadata that could be sent to an audit server by the use-case example of Fig. 21; Appendix A shows an exemplary XML workflow process template fragment for 15 a PDA device permitted to be involved in a staff purchase workflow and a document search workflow. Appendix B shows an exemplary XML workflow process template fragment for a scanner device permitted to be involved in a staff purchase workflow. Appendix C shows an exemplary XML workflow process template fragment for 20 a printer device permitted to be involved in a staff purchase workflow. Equation 1 is an exemplary cost-accounting equation potentially computed by an account server for the exemplary workflow process use-case of Fig. 21 based on a subset of the metadata provided to and by the audit server also participating in the exemplary use-case of Fig. 21. 161205 733085 -11 DETAILED DESCRIPTION INCLUDING BEST MODE Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the 5 contrary intention appears. JUST -IN-TIME WORKFLOW The disclosed JITW arrangements relate to the field of business workflow, and particularly relate to document workflow in an office, corporate, commercial, or print process environment utilising network communications. The purpose of the disclosed 10 JITW arrangements is to enable and construct a workflow process that is specially capable of functioning in real-world conditions, under imposition of zero-notice or arbitrary constraints. A templated workflow process is one, similar to the prior art, that is partially or wholly pre-defined in a template in terms of the workflow process' sequence of processing, or its end-to-end transformation of data, or its event-based behaviour or its 15 parameters, or its security and access control parameters or any of these and more details of execution. The disclosed JITW arrangements provides for creation and execution of a workflow process that is adapted in its construction to, or by, real-world conditions or constraints to perform the required, templated workflow process, thereby enabling a Just in-Time Workflow Process. 20 Fig. 1 is a functional block diagram of an interconnected computer system upon which described methods for JITW and JITWC can be practiced. The JITW and JITWC methods lends themselves to implementation on a system of interconnected computer systems 1000, such as that shown in Fig. 1 wherein the JITW and JITWC processes of Figs. 2A-2C, 5A-5B, 7A-7B, 9, 11, 12A-12B, and 14-20 can be implemented as software, 161205 733085 -12 such as distributed JITW and JITWC software applications executing within the various interconnected computer modules in the computer systems 1000. In particular, the steps of the JITW and JITWC methods are effected by instructions in the software that are carried out by the computer(s). 5 The instructions can be formed as one or more code modules, each for performing one or more particular tasks. Each software module, running on one of the interconnected computer modules in the computer system 1000, can also be divided into two separate parts, in which a first part performs the JITW and JITWC methods, and a second part manages a user interface between the first part and the user on the particular 10 computer module in question. The software can be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into each of the computer modules from the computer readable medium, and then executed by the respective computer modules. A computer readable medium having such software or computer 15 program recorded on it is a computer program product. The use of the computer program product in the computer preferably effects an advantageous apparatus for performing the JITW and JITWC approach. The computer system 1000 is formed by a number of computer modules 301, 310, 320 and so on. See Fig. 4 for more detail. Although Fig. 4 makes specific reference 20 to different network devices including a workstation 301, a copier 310, a server 320 and so on, it is apparent that each of these network devices incorporates a computer module, and it is to these computer modules that the computer system 1000 primarily relates. The server is used both in the JITW and JITWC arrangements, and can function to accumulate the usage and job information relating to the JITWC arrangements as well as to form part 161205 733085 -13 of workflow process engines in the JITW arrangements. Each of the network devices in question typically has a processor, memory and other computer modules such as communication modules, and the presence of these modules will be assumed without further explicit mention. The following description is directed to the computer module 5 301, however it also applies, with appropriate modifications, to the other computer modules in the system 1000. The system 1000 also includes, in relation to the computer module 301, input devices such as a keyboard 1002 and mouse 1003, output devices including a printer 1015, a display device 1014 and loudspeakers 1017. A Modulator-Demodulator 10 (Modem) transceiver device 1016 is used by the computer module 301 for communicating to and from a communications network 390, for example connectable via a telephone line 1021 or other functional medium. The modem 1016 can be used to obtain access to the other network devices 310, 320 across the Internet, and other network systems, such as a Local Area Network (LAN) or a Wide Area Network (WAN), all these networks being 15 represented in Fig. 1 by the network 390, and can be incorporated into the computer module 301 in some implementations. The computer module 301 typically includes at least one processor unit 1005, and a memory unit 1006, for example formed from semiconductor random access memory (RAM) and read only memory (ROM). The module 301 also includes an number of 20 input/output (1/0) interfaces including an audio-video interface 1007 that couples to the video display 1014 and loudspeakers 1017, an 1/0 interface 1013 for the keyboard 1002 and mouse 1003 and optionally a joystick (not illustrated), and an interface 1008 for the modem 1016 and printer 1015. In some implementations, the modem 1016 can be incorporated within the computer module 301, for example within the interface 1008. 161205 733085 -14 A storage device 1009 is provided and typically includes a hard disk drive 1010 and a floppy disk drive 1011. A magnetic tape drive (not illustrated) can also be used. A CD-ROM drive 1012 is typically provided as a non-volatile source of data. The components 1005 to 1013 of the computer module 301, typically communicate via an 5 interconnected bus 1004 and in a manner which results in a conventional mode of operation of the computer system 1000 known to those in the relevant art. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom. Typically, the JITW and JITWC application programs are resident, in regard to 10 the computer module 301, on the hard disk drive 1010 and read and controlled in its execution by the processor 1005. Similar JITW and JITWC software applications are similarly resident on the other network devices 310, 320 and so on. Intermediate storage of the program and any data fetched from the network 390 can be accomplished using the semiconductor memory 1006, possibly in concert with the hard disk drive 1010. 15 In some instances, the JITW and JITWC application programs can be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 1012 or 1011, or alternatively can be read by the user from the network 390 via the modem device 1016. Still further, the software can also be loaded into the computer system 1000 from other computer readable media. The term "computer readable medium" as used 20 herein refers to any storage or transmission medium that participates in providing instructions and/or data to the computer system 1000 for execution and/or processing. Examples of storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external 161205 733085 -15 of the computer module 301. Examples of transmission media include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like. 5 First arrangement of the JITW technique. A first process, this capable of implementation as an application software program, for performing an example of the JITW approach is shown in Fig. 2A. The method, 100, assembles a workflow process from a sequence - of network services, according to a set of constraints. The term "network service" is taken to mean either a 10 network service or a network device such as a printer. The aforementioned "assembly of a workflow process" refers to a method for putting in place a set of network services and/or network devices that are suitable for performing a desired sequence of tasks. These tasks can comprise, in a particular example, making a purchase request on the workstation 301 using, for example, a web 15 form service. The web form service selects the copier 310 as being suitable to perform the next step in the workflow, and hands control of the workflow over to the copier 310 when the purchase request has been completely filled in. See Fig. 6 for a more detailed description in this regard. The process 100 starts at 101, from which process building is initiated at step 20 103. The step 103 can typically involve some triggering event, including a device-based or software-based event or a user-based event (e.g. a user clicking on a PDA launch icon) that causes a workflow process launcher to execute. Such a launcher might involve any standard operating system or multi-tasking scheduler initiation of a process or task, as is well-known in the art. In particular, the workflow process launcher activates the JITW 161205 733085 -16 software modules in some or all of the network devices and services in the system 1000 (see Fig. 1). Alternatively, step 103 can involve the execution of a specially designed launcher for launching a unique workflow process or for launching any workflow process. Step 103 would typically involve input, provision or detection of a identifier, event type 5 or other data or metadata that could be passed out by 103 into 105 to identify an appropriate workflow process template. A workflow process template can itself be provided to or by step 103 instead of the aforementioned identifier. At 105, the desired workflow process is initiated by identifying and instantiating the next (in this case, the first) service of the workflow process. As mentioned, the 10 identification is by means of or leads to the selection of an appropriate workflow process template. This template provides a set of constraints on the workflow assembly method 100. There are other constraints (hereby named 'external constraints') that will typically affect method 100 and these would typically come from real-world sources such as user choices of devices, or user-entered parameters, or from network sources such as the 15 availability of certain devices or services, or from a device's internal capabilities or various constraints, and from other sources that will be explained or exemplified later. The selection of the first service of the workflow process assembly at 105 can typically depend on the selected template. The first service would typically be some input service or event-wait service, such as, respectively, input of a user parameter or a wait for 20 a document to be updated in a database. The first service might also involve both an input and an event-wait together such as a wait for a completed web form. At step 107, the next service is redesignated as the current service. Step 107 involves a test to see if the workflow building process is completed. This test is performed by testing the constraints known to the building process to see if completion 161205 733085 -17 criteria are met. The test, 107 is typically performed by, or in association with the last service appended to the workflow process under construction. A preferred implementation of the method 100 would involve each appended service (at 105 and 111) performing the completion test 107 during or after the service's appension to the end of 5 the workflow process. The service assembly at 105 and 111 preferably involves instantiation of a service, or some equivalent context-based operation, in a device. The constraints that are. checked at 107 can be template or external constraints. A preferred operation method for 100 would be that the template would list constraints 10 and values that would control completion of the workflow process assembly. Such constraints might include a list of the types of services and their order of assembly, or merely identification of the last service type of a workflow process (e.g. a printer device/service). The template can also identify or reference some external constraints that provide control of the completion condition tested at 107 for the workflow process 15 assembly. An example of this kind of template-referenced external constraint might be that a service completion event message has been received. External constraints can also control the completion test at 107 without being explicitly identified in the workflow process template. An example is that a service or device can have an inherent event wait constraint that the service or device itself identifies, implicitly, as an assembly completion 20 condition. Such an event could be, for example, a print complete event, or a database save completion event. If the test at step 107 is false, execution proceeds to step 109 at which the instantiated service checks template and external constraints to identify which should be the next service type to append to the workflow process. This identified next service is 161205 733085 -18 then instantiated and appended to the workflow process at step 111. Execution then proceeds to step 107 again. As can be understood by consulting Fig. 2A, method 100, the workflow process comprises a sequence of instantiated services (the term 'service' hereby includes the 5 meaning of 'device' unless otherwise indicated). Each service type is available in a pool of services scattered around a network. Services can be virtual, or real (such as in device based). Services can execute at a fixed physical location that can be inherent and explicit (such as a networked photocopier) or that can be merely implied (e.g. a software service executing on a server on a network, wherein the physical location, although fixed, is 10 irrelevant). Services can also have no fixed location, such as agents or floating software services that can execute on any number of physical network nodes depending on the constraints during their instantiation. The workflow process assembly method 100 involves each last-instantiated service being responsible for executing steps 107, 109, 111 until a service obtains a 15 positive answer to the completion test in 107. That aforementioned service is the last service of the workflow process and the workflow process is now instantiated. As may be realised, there need not be any specific location at which this workflow process instance is actually executing. In general, the execution occurs in a distributed form across a network. Preferably, the execution would occur at network nodes or devices as is decided 20 by the constraints. Therefore, the constraints define the characteristics of the assembled and instantiated workflow process. In fact, the external constraints would often include real-world and dynamic information and the method 100 is therefore capable of assembling a workflow process that is specifically adapted to the dynamic, real-world, zero-notice constraints typical of the human workflow environment. Furthermore, 161205 733085 -19 method 100 does not centralise the execution of the instantiated workflow process onto one of a restricted number of high-speed, expensive workflow engines. The method of 100 naturally distributes the execution of the workflow process across any number of nodes of the network, as is governed by the constraints affecting 100. Therefore, there 5 may be a reduced or eliminated need for installation of expensive high-speed workflow engines into a network. Fig. 3 indicates a graphical representation 200 of an assembled and instantiated workflow process 210 comprising a sequence of services. Example 200 includes an initiator 201 which was launched at the step 103 (see Fig. 2A). The initiator 201 was 10 provided information to enable selection of a process template 209 from a database 229 or other internal or external data source (not shown). By consulting the process template 209, the initiator 201 selected and instantiated the first service 203 at the step 105 in Fig. 2A. The initiator 201, having instantiated the first service 203, would handover 15 assembly control to the first service 203. The first service 203 performs the completion test step 107, thereby testing process template and/or external constraints for an assembly completion condition. Detecting a false value at the step 107, the first service 203 would check the constraints in the process template and/or the external constraints to identify the next process (205) to be selected from the network pool and appended and instantiated at 20 111 as second service 205. Similarly, the instantiated service 205 is handed control of the assembly by the first service 203. The second service 205 executes the step 107 in a similar manner to the way in which the first service 203 executed the step 107. However, the second service 205 will perform its own selection of relevant constraints for testing from the process 161205 733085 -20 template and these may not be identical to the constraints selected and tested by the first service 203. Further, the second service 205 can also test at the step 107 external constraints that differ from those tested by the first service 203 when it executed the step 107. 5 The second service 205 detects a'false result from the step 107 and then performs the step 109, checking process template and external constraints to identify and select the next service type to append to the workflow process. At the step 111, the second service 205 appends and instantiates the third service 207 and hands over control to the service 207. The third service 207 executes the step 107, as have previous instantiated services in 10 this workflow process assembly method 100, however, this time, the third service 207 detects a true condition at the completion test step 107 and the third service 207 proceeds to execute the step 121. The service instantiation steps 105 and 111 include passing of at least one parameter to the instantiated service, this parameter performing the primary task of 15 connecting the instantiated services in the order in which they were appended to the workflow process. This parameter passing helps to append the newly instantiated service to the growing workflow process. The previous service also retains the address of the next process that it caused to be instantiated. These actions thereby enable the workflow process self-assembly and inherent communication. There are many known methods for 20 allowing services or software processes to communicate and many of these are potentially applicable. For example, if external storage such as the database 211 is available, then only a reference or workflow process instantiation ID need be passed as a parameter to each next service, for instance an ID passed from the service 203 to the service 205 and thence to the service 207. That parameter can then be used by the service 205 to index the 161205 733085 -21 database 211 via a connection 225, as did the service 203 via 223 and as will the service 207 via 227, to establish context information and service URIs, etc to support the working of the instantiated workflow process 210. If the database 211 URI is not natively known to the instantiated services then that database URI will also need to be passed to each 5 instantiated service at append time. Other forms of inter-service communication include passing larger volumes of data, such as files or streams between services, therefore not requiring the external database 211 or similar. A significant function of the inter-service communication is to communicate the workflow process template that defines the workflow under construction and provides the 10 template constraints information to each service. This is how the service executing at the steps 107 and 109 obtains the workflow process template and template constraints information. It may also be how the workflow instantiator at the steps 103 & 105 knows which workflow process to start building and which is the first service to instantiate. It may be realised that variations of the method 100 are possible to achieve 15 equivalent results. For example, the workflow instantiator may in fact be itself the first service of a workflow process as specified in a workflow template. In addition, the constraint analysis and decision steps 107 & 109 might be merged or even swapped, with slight changes in behaviour but achieving a substantially equivalent result as the first JITW arrangement method 100. 20 It may also be realised that in Fig. 3, the initiator, 201 might itself be a first service of the instantiated workflow. Also, any service, 'such as 203, might be a compound service, such as is 210, for example. Therefore, a single service need not provide all of the functionality required to self-assemble into a workflow. In fact a service 161205 733085 -22 might be 'docked' into a group service (such as 210 for example) and the communication & self-assembly facilities might be provided by other parts of the group service. It may also be realised that there are many less flexible methods of embodying the disclosed JITW arrangements with at least partially equivalent results to the method of 5 100 and the example 200. For example, the workflow process template, 209, might be hard-coded into one or more services, as a 'native' workflow. Such services would then have less need for communication information or an external data repository such as 211. Another variation might be that the process workflow template explicitly defines the URIs for each service type (i.e. the location of the executable for a service type) and/or even 10 instantiation IDs of each service, therefore providing each instantiated service with implicit communication and a fixed, or quasi-fixed workflow process result. These alternative methods are approaching some of the state of the art inflexible methods involving predefined connectivity and workflow steps. Fig. 4, depicts an exemplary network 300 in which a group of network devices 15 and network services are networked together so that they can communicate. The network, 390, can be a LAN, WAN or the internet. Devices and services can be local, such as on a local corporate intranet, remote such as in a corporate WAN, remote as in an internet connected print business, or remote as in anywhere on the internet. The incorporation of remote devices or services typically requires the use of specific protocols and command 20 formats such as HTTP protocol, XML, SOAP and XML RPC, for instance in order to penetrate firewalls and to be supported by generic network systems. In a corporate WAN, it is possible that customised or proprietary protocols and command formats will be used. The network 300 in Fig. 4 exemplifies a pool of services and devices available to a Just-in-Time workflow process. The network is heterogeneous, as are many corporate 161205 733085 -23 offices, containing some equivalent or identical services. Workstations 301 and 315 each support service types A, 302, 316, and D, 304, 318. These services might include a document processing service such as layout, or a host rendering printer driver service, for example. These services may be identical in all respects except for their physical location 5 and the hardware on which they will be executed. Printer 305 may be a basic laser printer with print service E, 306, that requires a host renderer service such as service D, either 304 or 318. Printer 335 with service 336 is another example of the same but in a differing physical location. Photocopier 310 offers a scanning service B, 312 and a quality-colour printing 10 service E, 314. Photocopier 330 also offers the same services B, 332 and E, 334. Also offering scanning or document creation services B, 352 and 357 are networked scanner 350 and workstation 355. Workstation 355 also offers a service type A, 356, as does PDA 345 offer service type A, 346 via wireless connection to router 380. A scanning. or document creation service such as these examples of service B may be used as a service 15 appended to a workflow process. Such a service allows input of an analogue-paper original document as an electronic document that can be manipulated by subsequent services in the workflow process. Server computer 320 offers services C, 322 and D, 324. Database (server) 325 offers services F, 326 and A, 328. Database (server) 340 offers workflow process 20 templates 341, 342, 343, 344 for guiding and constraining construction of differing workflow process types. Returning to Fig. 2A, at step 121, after the last service is instantiated and appended, the last service signals the workflow process initiator such as 201, that the assembly process is completed. The last service can be aware of its status as the last 161205 733085 -24 service from the building instructions and constraints within the workflow process template. For example, previous services may have annotated the template to provide information of the previous services and the initiator in the workflow process. The initiator has been waiting for this signal, as shown by the method 130 in Fig. 2B. The 5 workflow process assembly ends at 125. Fig. 2B, method 130 shows the execution phase of the Just-in-Time workflow process. Method 130 starts at 132 at the initiator and typically starts after 105 in Fig. 2A. Method 130 loops at 134 until the assembly complete signal is received from~121 by the initiator. Once the assembly complete signal is received, the initiator (or the current 10 service at subsequent iterations) at 136 sends the actual task (or job) information, data files and commands or their database references to the next service in-line in the workflow process. The next service, at 138, becomes the current service. It receives the commands and data from the initiator and it executes its specific service on the task data according to any relevant constraints specified in the workflow process template and/or 15 external constraints (this being referred to as "performing" the task). The result of performing the aforementioned specific service is referred to as an "outcome" of the task that has been performed. Then at 140 the current service determines, typically from the workflow process template, if it is the last service in the workflow process. If it is not then the current service forwards its output data and commands onto the next service in 20 line by executing 136, and so on until a current service determines, at 140, that it is the last service in the workflow process. At 142 the current service signals the initiator that the execution phase has completed and thence the execution phase ends at 144. Any errors etc can also be reported to the initiator at this point. Typically the services involved in the execution phase will provide some incremental modification, processing or other 161205 733085 -25 benefit to the task data, thereby causing the workflow process to execute the desired behaviour as described in the workflow process template. The services can accumulate status and error information for the last service to forward to the initiator. However, it will be obvious to those skilled in the art that several alternative behaviours are possible 5 for accumulating and reporting this kind of information. The end of execution phase signal sent to the initiator at 142 is accepted by the initiator at 154 in Fig. 2C, method 150. The initiator can begin to execute the loop 152 & 154 after completing 136 from method 130 in the execution phase. Method 150 is the disassembly phase of the Just-in-Time workflow process. On detection of the signal from 10 142, looping at 154 ceases and the initiator executes 156. The initiator can optionally de instantiate itself at the end of executing 156. That matter is implementation dependent. At 158 the next service (immediately in sequence after the initiator) becomes the current service and determines if it is the last service (typically by consulting its copy of the workflow process template). If the current service is not the last service then 15 execution proceeds to 160 at which the current service sends a de-instantiate command to the next service. At 162 the current service de-instantiates itself. The cycle repeats from 158 as the workflow process disassembles itself until the last service is reached at which execution moves from 158 to 164 and the last service de-instantiates itself and the workflow process and disassembly method both end at 166. 20 The combined methods of Figs. 2A, 2B and 2C comprise sequential and non interleaved methods of workflow process assembly, execution and disassembly. This first JITW arrangement is suitable for enabling, supporting and enhancing single-shot workflows in which human interaction tends to occur only at the beginning of the workflow. This suitability is because of the latency between the assembly process 161205 733085 -26 responding to an external constraint, such as user interaction, and the subsequent execution phase. Some example use-cases for this first JITW arrangement include print runs, process-and-save workflows, or process-and-send workflows or similar. Second JITW arrangement. 5 A second version of the disclosed JITW arrangements is shown in Fig. 5A, method 400. Method 400 comprises an interleaved workflow process assembly and execution method. The disassembly method 150 of Fig. 2C is also applicable to the second JITW arrangement. The method 400 begins at a step 401 where a workflow process initiator executes 10 just as for the first JITW arrangement. At a step 403 the initiator analyses the workflow process template supplied to it or referenced to it and at a step 405 it selects and instantiates the next (first) service of the workflow process. At a step 415, the initiator (or the current service at subsequent iterations) applies the task data or event stimulus to the instantiated (next) service, thereby causing that next service to commence its execution 15 phase. At a step 407 the next service becomes the current service (i.e. the current end of the workflow process chain assembly) and tests the workflow process template and/or external constraints to determine if it should be the last service of the workflow process assembly. If the test returns false, execution continues to a step 409 and a subsequent step 411 at which functionality is the same as described for the step 109 and the step 111 in 20 Fig. 2A. After the step 411, execution loops back to the step 415 and the current service passes its output data and output stimulus to the next service and then it hands over control. Eventually, a current service determines at the step 407 that it is the last service in the completed workflow process and execution moves to the step 421 where the initiator is signalled that workflow process assembly and execution are completed and the 161205 733085 -27 method ends at a step 425. The initiator continues from the step 152 in the method 150 of Fig. 2C and initiates the workflow process disassembly as previously explained for the first JITW arrangement. The second JITW arrangement and the first JITW arrangement allow a workflow 5 process to be executed multiple times between assembly and disassembly. If the disassembly method of Fig. 2C is delayed by the initiator then an assembled process might have a second execution phase initiated by the initiator. This behaviour may be convenient where multiple identical workflow processes are required with the same template constraints. Typically, the multiple execution phases would be independent, 10 where the instantiated workflow process 'engine' would be re-used without the overhead of disassembling and re-creating it. The second JITW arrangement provides a workflow process behaviour such that a workflow process is assembled and its individual services execute their task-related processing in a follow-on method that chases the workflow assembly. This behaviour 15 provides for better interactivity with users as will be shown later in relation to Fig. 6. Third JITW arrangement. A third JITW arrangement is shown in Fig. 5B, method 450. This JITW arrangement is very similar to the second JITW arrangement with the addition of a step 467. The method 450 corresponds in most respects to the method 400, with steps 451, 20 453, 455, 465, 457, 459, 461 and 475 of the method 450 corresponding to the steps 401, 403, 405, 415, 407, 409, 411 and 425, respectively of the method 400. The step 467 is inserted into the method 450 after step 465, by contrast with the method 400, enabling a current service that has been appended and that has completed its own execution to de instantiate itself prior to the next service executing and processing the task data and/or 161205 733085 -28 stimulus. This self de-instantiation of services within the workflow process means that a separate de-instantiation phase is not required and so there is no step in 450 analogous to 421 in 400. (Note that in the first iteration through the loop, step 467 is null as there is no "current service" yet defined.) 5 The third JITW arrangement provides a workflow process behaviour such that a workflow process is assembled and its individual services execute their task-related processing and then de-instantiate in a follow-on method that chases the workflow assembly. This behaviour, in a similar manner to the second JITW arrangement, provides for better interactivity with users. 10 The third JITW arrangement also reduces the need for the control feature of the initiator and the need for signalling from the last service in the workflow process chain to the initiator. In fact, an initiator is not required in the third JITW arrangement. The first service in a workflow process may itself be an initiator because it no longer has much special management responsibility compared to that required by initiators in the first and 15 second JITW arrangements. This totally interleaved method 450 provides strong de-centralisation of the features of the workflow process chain, allowing a chain to continue processing a workflow even though most of the chain has disassembled, therefore not with-holding expensive network resources from other activities. For example, if a particular service 20 had a high processing latency, or awaited an event stimulus that had not arrived, then only the very local portion of the workflow process would be instantiated near that service. Preceding and succeeding services need not be instantiated any more, or yet (whichever is applicable) and therefore the network resources would be largely available for other execution of other tasks. In other words, while a network resource is not being used at all, 161205 733085 -29 it can be regarded as being fully available. While the resource is being used, it may be unavailable, or alternately, it may be partially available, ie less available than when not being used at all, but not unavailable. Thus, for example, a printer that uses a print queue to organise print jobs has reduced availability as the queue fills up, but does not become 5 unavailable unless the queue is full. This is a significant advantage of the disclosed JITW arrangements. Not only is the workflow engine de-centralised and distributed, it is using precisely only the resources that are required by a small portion (typically a single service) of any executing workflow process. It could be said that the workflow engine is a virtual entity. It has no discrete existence for all workflow processes, rather each workflow 10 process assembles its own engine, uses it in an efficient manner and then disassembles it. Fig. 6, 500 illustrates an example involving multiple user-interactivity points that is applicable to both the second and third versions of the disclosed JITW arrangements. If Fig. 6 represented a corporate workflow process such as a purchase request, then user 512 inputs details of the purchase request on a device 514, using, for example a web form 15 service 510. The purchase request is an example of a sequence of tasks, since a number of different tasks need to be performed in order to complete the purchase request. The service 510 can also perform as the workflow process initiator and it instantiates the next (ie subsequent) service(s), by selecting a subsequent network service if it is suitable (ie capable) of communicating with the current network service, and if it is suitable for 20 performing the subsequent task. Service 510 then forwards information (eg information describing the fact that the current task is a first step in the sequence of tasks associated with the purchase request) or references such as the workflow process template and the form input data (noting that the form input data is an outcome of the current task, since the form input data results from performance of, ie completion of the current task). As 161205 733085 -30 may be seen in Fig. 6, the service 510 is instructed by the workflow process template (not shown) to instantiate two services. So, returning to the method 450, the steps 455 and 465 would be applied by the service 510 to two parallel, subsequent services 520 and 530. Thence either of the subsequent services 520 and 530 would independently proceed to 5 assemble the workflow process from the step 457, and so on. An advantage of this workflow process bifurcation as shown in Fig. 6 is to allow real-time, zero-notice responses to external constraints. For example, the corporate purchase request workflow process template requires support for two alternative means of inputting supporting information, such as a supplier quotation. The workflow process 10 template intends that the supplier quotation information will be appended to the purchase request form data in some way and potentially processed with it. The second and third JITW arrangements can support this emergent functionality of the Just-in-Time workflow process by passing execution control to both of the services 520, a copier scan service implemented within copier 522, and 530, an electronic document attachment service (ie a 15 subsequent service) operating inside computer 532. At 570 workflow process execution effectively proceeds to the steps 520 or 530, but not both. In practice, service execution would likely commence at both the step 520 and 530 and then an event wait or similar external constraint wait (these being further constraints and further events) would ensue at both services. Then whichever service (ie subsequent service) received its event stimulus 20 (this being an outcome of the current task or a characterising parameter of the current event) first, would reactivate the workflow process and allow workflow process execution to continue downstream via a junction 580, etc. The merge point at 580, Fig. 6 does not typically mean a data merge, but represents alternate return paths for execution of the workflow process. 161205 733085 -31 Now that the workflow process of Fig. 6 is suspended at 520 and 530, a user 534 may arbitrarily, and at zero-notice, decide which input method will be used for the required quotation document. The user may approach the copier 522 and enter the workflow process ID (as may have been indicated at 514 and later at most devices such as 5 522) and scan a hardcopy document using the copier facilities and thereby causing the event stimulus wait at 520 to be completed and allowing 520 to control the subsequent workflow process propagation. A workflow process ID can be merely a unique identifier that is common to all instantiated services in a workflow process, established through parameter passing at service instantiation. 10 Alternatively, the user 534, may, as shown, approach the computer 532 and cause the service 530 to execute, attaching an electronic quotation document to the workflow process, where-upon 530 takes control of propagating the workflow process via 580. It may be seen that a significant advantage of the disclosed JITW arrangements is to allow arbitrary decisions by human users (or by equivalent automatic processes) at 15 zero-time, within the constraints set by a workflow process template and the external constraints implicit to a particular service type. It may also be seen that another significant advantage of the disclosed JITW arrangements is to allow alternative input of differing document types, specifically electronic documents (at 532) or hardcopy paper documents (at 522). Thus, a Just-in 20 Time workflow enables a user to make an arbitrary or unplanned, zero-notice decision about a parameter or data portion of a workflow process. It may also be seen that another significant advantage of the disclosed JITW arrangements is to allow location-dependent execution of a workflow process. In Fig. 6, service 530 could be a similar but alternate document scanning service to that of 520, and 161205 733085 -32 being provided by another physical duplicate (not shown) of copier 522, but in a differing physical location. Thus, a user may select whichever service they wish to use by parameters such as physical location, or input document type (electronic or hardcopy) and so on. 5 It may also be seen that another advantage of the disclosed JITW arrangements is to accommodate the failure or absence of arbitrary services or devices in a network. As a workflow process self-assembles, the failed services will be avoided. Furthermore, a similar method can be used to perform load-balancing of services within a network environment. One of the constraints imposed on the self assembly of a workflow process 10 could be a test of service or device workload. For example if a printer has a heavily loaded job queue then it might not be selected and appended to a workflow process because the preceding service could be instructed by the workflow process template to test the printer's workload status as a constraint. A more capable workload management method can alternatively be implemented 15 using the Just-in-Time Workflow method: a job might be apportioned between several similar devices (e.g. printers) according to external constraints such as speed, quality, other workloads on the devices and also cost of printing at each device. The capabilities depend on the level of detail of constraints that are included in a workflow process template or in a service's behaviour. It is easy to see that a workload management service 20 could be listed for assembly in a bulk printing-type workflow process template, thereby allowing complex control of printer workload by that specialist service. There is a trade off available to an implementor of a Just-in-Time workflow system: maintaining a high level of generality and simplicity to the Just-in-Time workflow services' interaction and communication capabilities is expected to be cost-effective and to support wide 161205 733085 -33 applicability, and is balanced by provision of specific services to provide more complex or specialist control; whereas, an alternative Just-in-Time workflow system could be made more specialised, being widely sensitive to many specialist external constraints and requiring a higher-level of interaction and communication capability for each service 5 comprising the system. Continuing the description of Fig. 6, the workflow process propagates from 520 or 530 via 580 through any further services (590) that were instructed by the workflow process template and thence into 540 a print service. Print service 540 sends its output data to printer 550, which prints the appropriate hardcopy document for the workflow. As 10 is shown, there is a second output from print service 540 that proceeds via 560 to potentially other services until the workflow process ends. This kind of workflow process bifurcation as shown at 540 may behave differently from that occurring at 570. A purpose of the bifurcation at or just after 540 is to allow the workflow process to execute divergent processes that are not expected to re-converge or merge at a subsequent node in the 15 workflow process. So, as shown in Fig. 6, 500, the workflow process causes a record of the purchase process workflow instance to be printed at 550. This step might represent many possible similar occurrences such as printing a purchase order, or logging the workflow or creating an audit trail, etc. The other branch of the workflow at 560 may continue with differing output from 540 to that sent to 550. For example, 540 may 20 perform a pass-through function to 560, passing the data output by previous services at 590 to 560 without affecting it. 560 may then proceed to propagate the workflow process to further services. 161205 733085 -34 Fourth JITW arrangement Fig. 7A shows a JIT Workflow method 600 that supports two-level constraint testing. This method provides a more efficient separation of constraints into two levels, such as static and dynamic constraints, or template constraints and external constraints. 5 Method 600, for instance, permits the template author to avoid the need for anticipating all external constraints of significance when authoring a particular workflow process template. Method 600 steps 601, 603, 605, 615, 617, 607 and 625 are substantially the same as the corresponding method steps of the method 450 in Fig, 5B, namely the steps 10 451, 453, 455, 465, 467, 407 and 475, respectively. When the method 600 execution reaches a step 609, the current service checks the process template constraints and selects a potential subset of next services from the available pool of networked services. These potential services are informed (ie notified) at 609 that they are potential next services of the workflow (involving passing of a 15 specific workflow ID, for instance and the URI of the current service communicating with them). At 623 the current service checks to see if the subset of potential next services is empty. If it is empty then the workflow process throws an exception condition at 619. There are various possible actions that can be taken from this point (none shown), 20 including a wait and retry for suitable services to appear on the network and possibly involving posting of the intermediate process data to a database for a temporary period, or self-disassembly of the workflow process (being the current service de-instantiating since all preceding services have already de-instantiated), or an exception message might be thrown to or logged by a higher authority such as an administrator's machine or similar 161205 733085 -35 thereby indicating that the networked service domain might not have the capability or flexibility to support the workflow process template in all cases. If the test at 623 returns a non-empty subset of potential next services then method 600 continues to 625 where the current service makes a selection from the subset 5 of the service or device that it prefers to make into the next service of the workflow process. This step 625 may involve further analysis of constraints such as cost, quality, etc that might have been preset in a template or by user input data. At step 627 the current service enquires if the next service considers itself available to be appended to the workflow process. If the selected service replies in the 10 negative to the current service then method 600 returns via 621 where the selected service is removed from the subset by the current service and thence to 623 again. The selected service decides whether it is available based, typically on dynamic external constraints such as whether it has sufficient processing capability (given other tasks that might be underway), whether it has sufficient consumables (if a printer for example), and so on. 15 This level of detail, and particularly this private detail can be analysed by the potential next service rather than being broadcast to the current service for analysis, thereby simplifying the JIT Workflow system implementation. When a selected next service decides that it is available or even suitable for the requesting workflow process, it replies in the affirmative to the current service at 627 and 20 the current service instantiates it and appends it to the workflow process at 611 and method 600 loops back to 615 where the current service provides data, etc to the next service as previously described for other JITW arrangements. This method 600, as has been discussed, has several advantages over earlier methods. It allows partitioning of constraints such that communication of significant 161205 733085 -36 information between services is not required, nor is a service required to be capable of analysing unfamiliar constraint information The method 600's steps 609, 623, 625, 627 would typically require some activation of the selected next services even before those services have indicated their 5 availability and been appended to the workflow process. There are several methods of performing this interaction and some are more economical than others. For instance, in general, it will not be necessary to fully instantiate any or all of the subset of next services between 609 and 625 in order for them to respond at 627. For example, a light-weight service manager might exist in each physical node or device that can respond on behalf of 10 all services within these. This light-weight service manager could respond to enquiries such as those made at 609 by the current service as to which services are suitable as required by the template constraints. Then at 625 when the current service selects a preferred next service, the service manager might also respond with information that it knows about the dynamic availability of the preferred next service, again without 15 instantiating that next service. Thus, the service manager, operating as an assembly helper, is not explicitly recognised by the current service or by the self-assembling workflow process. This implementation reduces the need for significant numbers of potential next services to be instantiated and then de-instantiated, thus avoiding the wasting of resources. 20 There are alternative operating modes for the method 600, including incorporation of the service manager as a support module into all services, thus having services briefly instantiated to perform this management & communication process and then de-instantiate themselves if they will not form part of the workflow process. Another alternative implementation could involve the service manager instantiating the preferred 161205 733085 -37 next service earlier in the method 60, at or about 615 or 617 so that the next service can make its own detailed decision about its dynamic availability based on external constraints. If the next service subsequently decides that it is not available then it will de instantiate itself at 627 or 621 after informing the current service, perhaps via the service 5 manager, of its unavailability. Fifth JITW arrangement Fig. 7B, shows a JIT Workflow method, 650 that also supports two-level constraint testing and also self-selection of the next service in the workflow process. This method also provides a more efficient separation of constraints into two levels, such as 10 static and dynamic constraints, or template constraints and external constraints. It also efficiently supports the use-case example in Fig. 6 by allowing potential next services to make their own decision about their availability for a workflow process and to self-append themselves to the workflow process requesting them. Method 650 steps 651, 653, 655, 665, 667, 657 and 675 are substantially the 15 same as method 450's steps 451, 453, 455, 465, 467, 407 and 475, respectively. Method 650 steps 659, 663 and 669 are substantially equivalent to method 600 steps 609, 623 and 619, respectively. When the method 650 execution reaches the 'no' condition for the empty subset test at 663, the current service goes idle awaiting a response from one of the selected next 20 services. In this method 650, the next services or their service managers wait for external constraints to be satisfied before they respond that they are available. For example, in the use-case of Fig. 6, the potential (in subset) next services 520 and 530 (where 510 is the current service) both await their external constraints being met. Whichever service's external constraints are met first, that service, say 520, for example, informs the current 161205 733085 -38 service, at 661 that it is to be the next service and therefore the next service effectively appends itself to the workflow process. Any other potential next services such as 530, must be informed that they are no longer required or will timeout and de-instantiate. There are many method of informing these redundant next services that they are not 5 required. Explicit communication of this fact may be sent by the current service at 665 once it has received a response from the self-selected next service at 661. Or, alternatively, the self-selected next service might implicitly inform the other next services of their need to de-instantiate by broadcasting openly that it is the selected next service for the JIT workflow process ID for which it was selected. Any other potential next services 10 recognising that JIT workflow process ID in the broadcast would then de-instantiate themselves. Following a next service's self-selection, method 650 loops back to 665 where the current service provides data, etc to the next service as previously described for other JITW arrangements. 15 This method 650, has similar advantages to that of method 600. Once again, as for method 600, a service manager module or process might be useful for managing the communications for potential next services. Sixth JITW arrangement A sixth JITW arrangement can be explained in relation to Fig. 8 which shows an 20 example use-case of a 'pull' assembly-execution mode of a just-in-time workflow process. The term 'pull' in this context means that the workflow process execution path involving the task data path and processing order is the opposite of the workflow process assembly or command path. The previous JITW arrangements I through 5 were all 161205 733085 -39 examples of the 'push' assembly-execution mode in which assembly commands and execution process-data travelled in the same direction. The use-case example of Fig. 8, 700, shows a distributed, hierarchical network search in which user 701 inputs a search pattern to network device 703 which initiates a 5 JIT workflow process comprising services 705, 707, 709 and 711. Service 705 typically manages the distribution of the search and the cognation or other merging method of the results returned from other services 707 and 709. Lines 720, 722, 724 and 726 show the assembly control flow and possible parameter or search task information passing in the workflow process assembly phase. Service 705 identifies appropriate network master 10 index search services 707 and 709 based on template and external constraints (e.g. search criteria entered by the user, user access rights to database servers, etc). Note that service 711 is internal to the device presenting service 709 to the network. In fact, service 711 is not visible to the network and service 705. Service 709, when requested to assemble into the workflow process by 705, offloads some of the search task requested of it to sub 15 service 711. Service 705 also requests a search by service 707, the latter performs the search of its database master index and returns failed or not found or no matches status via 734 to service 705. Service 709 was successful with its master index search, however, rather than immediately communicating its results to 705, it, as mentioned, offloads a more detailed 20 search to service 711 via 726. Service 711 returns its detailed search results (successful in this example) via 730 to service 709, which may cognate those results with any of its own and forwards this data set via 732 to service 705 which then cognates the results with those of other search services (if applicable) and forwards the result via 736 to 703 and user 701. 161205 733085 -40 This use-case example shows how the assembly and execution phases need not follow identical directions in the assembled workflow process. This use-case shows an example of a 'pull' method in which the commands (typically used for workflow process assembly) and the result data travel in differing directions. As can be seen in the use-case 5 example of Fig. 8, 700, the processing occurs at 709 before it does at 711, which is the same direction as the assembly phase, but the data returns from 711 through 709 to 705, etc, in the reverse direction to the assembly phase. This behaviour can be implemented using a modified version of method 400 of Fig. 5A, for instance. The previously explained behaviour of 400 remains with the exceptions that in 415, the search keywords 10 are passed down through the workflow assembly phase, but no process data is included as it has not been generated yet. At 407, the last service in each branch of the workflow process 707 & 711 detect that they are the final steps. At 421, each of the last services, instead of signalling the initiator, under the instruction of the workflow process template, checks its constraints, potentially executes its processing, and returns the results up the 15 workflow process chain to the preceding services in each case. These behaviours, as opposed to the original behaviour of 400, can be set out in the workflow process template and thus do not require any special modification of individual services, providing the benefit, one again, of generality in the network service pool. Subsequently, when the initiator, 703 via 705 receives the replies from one or more branches within the workflow 20 process chain, it can signal the branch of services to de-instantiate in the normal way 150 such as in Fig. 2C. Device behaviour A method 900 according to the disclosed JITW arrangements is explained in relation to Fig 98. The method 900 shows the execution flow on a device involved in the 161205 733085 -41 JIT workflow process. Each device (or service) in the network pool available for inclusion in a workflow process instantiation is expected to execute the method in 900 to manage the inclusion or chaining of the device and its specific contribution (functionality) to the workflow process or chain. The method 900 supports inter-communication 5 between devices such that workflow process assembly and execution can take place as an emergent property of the inter-communicating services. In one segment of this example, the job is pushed along the chain of devices (referred to as 'push' execution mode), so that as each device completes its sub-job, it transfers the job data and execution control to the next device in the chain. 10 In another segment of this example (referred to as 'pull' execution mode) the job is transferred to the next device in the chain only when the next device requests that it be transferred. For example, a printer device may not have sufficient resources to store multiple jobs, and therefore would request each job from the workflow chains as it is ready to print another document. 15 Comparing the method 900 to the sixth JITW arrangement illustrated in Fig. 7B, step 905 is substantially the same as step 653, step 915 is similar to step 663, and step 909 is the same as the second part of 657, which tests for an end of the workflow. Steps 911, 913, 915, 917, 919, 921, 923, 925, 927, 929, 931, 933, 935, 937 correspond to 661, a method of self-selection of the next service to attach. 20 The device performs start-up and initialisation steps, 901, then enters state 903, awaiting command stimulus. The command stimuli can include some device-based, software-based or user-based event. The device performs actions in response to different command stimuli. 161205 733085 -42 On receiving an 'External Job Start Stimulus', the device builds a new job and initialises the workflow chain at step 905, then in step 907 invokes a 'Chain Propagate" stimulus on the device. 'Chain Propagate' command stimulus initiates actions beginning with step 909, 5 which involves a test to see if the workflow building process is completed. As with method 100, this test is performed using the constraints known to the building process to see if completion criteria are met. If the test at step 909 is false, execution proceeds to step 911 at which point the instantiated device establishes accessible devices in the network pool that have the ability to form the complete chain. Note that this complete 10 chain is tentative, as each device in the chain will perform this step and can re-route the chain depending on environment current at the time the device is called upon to continue the chain. Each accessible device identified in step 911 is then queried in step 913 to test their own suitability by means of posting a "Suitability Enquiry" stimulus command to each accessible device. At step 915 the current device waits for the results of this request, 15 either at 917 posting an "Availability Indication" to a selected subset of devices that responded to the suitability enquiry with a suitability indication, or killing the workflow and returning to 903 to await further stimuli. Killing the workflow can involve reporting of exception or error condition. If an "Availability Indication" was posted in step 917, then the device waits at step 919 for one of the devices identified as suitable to post a 20 "Chain control request" stimulus. If no stimulus occurs, the workflow is killed. If a "Chain control request" stimulus does occur, step 921, posts a "Chain Propagate" stimulus for the device identified in Step 919. Step 923 then executes the sub-job on the current device via creating a "Sub-job Execution" stimulus. 161205 733085 -43 If the test at step 909 is true, that is, the current device is the final workflow device,. execution proceeds directly to Step 923, bypassing the steps which propagate the chain to subsequent devices in the workflow. Step 925 is invoked on each 'next device' in response to a "Suitability Enquiry" 5 stimulus posted at step 913 by the current device. Each 'next device' negotiates static suitability of itself against a set of constraints imposed by the workflow process being built. If the test at Step 927 yields that the device is suitable then the device responds at 929 posting a 'device suitable indication" to the current device, indicating that it is suitable. Otherwise processing on the 'next device' is returned to the wait state in Step 10 903. Step 931 is invoked on the device in response to an "Availability Indication" stimulus posted at step 917. At Step 931 the device confirms its dynamic availability against a set of constraints and some trigger stimulus condition. If the test at Step 933 yields that the device is available, then the process waits for the internal or external 15 stimulus triggered in Step 931, otherwise processing on the 'next device' is returned to the wait state in Step 903. When a stimulus is detected at Step 935, the 'next device' then decodes and requests the control of workflow process chain, then returns to the wait state in Step 903. As previously mentioned, posting the "Chain control request" at step 937 is the condition upon which the current device is waiting in Step 919. 20 Receipt of a "Job Request" stimulus by the current device, from a next device indicates that the next device is ready to receive and process the job. The current device begins at step 939, which checks whether the workflow process is constrained to a 'push' or 'pull' execution mode. If the test yields that the workflow process is a 'push' execution system, the device is returned to the wait state in step 903, as the job has or will 161205 733085 -44 be sent when the sub-job finishes at the previous device (step 957). Otherwise the process is a 'pull' execution system and the device waits for completion of the sub-job at step 941 before posting the job to the next device at step 943. The invocation of the workflow process, via "Sub-job Execution" stimulus as 5 invoked on the current device by step 923, initiates the job request check at Step 945, where again the device checks whether the workflow process is constrained to a 'push' or 'pull' execution mode. If the check yields the 'pull' execution mode, step 946 checks whether this device is first in the chain. If it is, then it already has the job information so the device proceeds to step 951 to execute the sub-job. Otherwise, the device first posts a 10 "Job Request" stimulus in 947 to the previous device then waits for the job information at step 949. If it does not receive the job under certain conditions, the device can kill the wait and return to step 903 for further command stimuli. On the other hand, if the device does receive the job, it again executes the sub-job at 951. Alternatively, if the check at Step 945 yields the 'push' execution mode then the 15 workflow process sub-job task is executed at Step 953. Step 955 checks whether the current device has fulfilled the workflow process' requirements, that is, whether it is the final device in the workflow chain. If not, it sends the workflow process execution control to the 'next device' on the workflow process chain. The device then returned to the wait state in Step 903. 20 Workflow Process Template The previous JITW arrangements one through six were described as utilising a workflow process template to describe constraints on the workflow assembly method. It is also possible to implement the disclosed JITW arrangements utilising a distributed 161205 733085 -45 workflow process template, i.e. where a particular workflow process is described by a group of documents or document parts. The method 900 uses a distributed workflow process template concept. Each device or service contains or references its own workflow process template fragment. 5 Examples of distributed workflow process template fragments are shown in Appendices A, B, and C for a portion of an exemplary purchase order workflow system similar to that shown in Fig. 6 and executed by a method such as 900 in Fig. 9. Appendix A shows an exemplary workflow process template fragment utilised by a PDA device belonging to a network pool of devices capable of being integrated into 10 one or more types of workflow processes. The template fragment is written in XML format following a suitable schema (not explicitly defined here). The template fragment for the PDA begins with line 3, tag <JITconfiguration> indicating that the following XML content is relevant to a Just-in-Time workflow system device. At line 5 the device type(s) is(are) declared for which the template fragment is 15 relevant. Between lines 7 and 12 the workflows to which the device can respond and become involved in are listed, between the workflows tags. The two workflow examples shown are for a staff purchase, similar to that shown in Fig. 6 and a document search, similar to that shown in Fig. 8. Lines 8 & 9 describe the workflow name, description and 20 initial and final services for the staff purchase workflow. Similarly lines 10 & 11 describe the same features but for a document search workflow. The capabilities of the device within the specified workflows are described between lines 14 & 23 in the capabilities section. Lines 15 & 16 describe the 'User Input Form' capability of the PDA within the Staff Purchase workflow and bind this capability 161205 733085 -46 to a form found in a workflow database on the network. This capabilities description indicates to the PDA what function to execute (bind) when it is performing the User Input Form step in a Staff Purchase Workflow. Similarly, three other capabilities are described and bound, one more for the Staff Purchase, and two for the Document Search workflows. 5 The transform section of lines 25 to 34 indicates the next step of a workflow process subsequent to the current device's activity in a specified workflow. So, for example, if the PDA is performing the initial User Input Form step of the Staff Purchase workflow, then lines 26 & 27 describe to it that the next step it should request of the network pool of devices is an Attach Quote step. Therefore, a workflow process system 10 can be built incrementally by a pool of devices obeying the constraints in their workflow template fragments and using a method of execution and inter-communication such as is shown in Fig. 9, method 900. Appendix B shows a workflow process template fragment for a scanner device that may participate in a staff purchase workflow such as shown in Fig. 6. The details are 15 similar to those shown in Appendix A, with specific entries for the scanner device in.the capabilities section, lines 12 through 15, which define the Attach Quote function that can be executed by the scanner and is bound to the scan.exe executable. Also, the transforms section, lines 17 through 20 shows that the next step after Attach Quote is the Print Order step. It may be seen that both the PDA device type and the scanner device type may 20 execute an Attach Quote capability leading to a Print Order step in a Staff Purchase workflow, thereby enabling the alternative workflow routes shown in Fig. 6. Appendix C shows an exemplary workflow process template fragment for a printer that can participate in the staff purchase workflow process. The capabilities section, lines 12 through 15 shows that the printer can perform the Print Order step and is 161205 733085 -47 bound to the print.exe internal function. The transform section, lines 17 through 20 shows that the printer should end the workflow process after execution of its Print Order step. It can be seen that the contents of each of the workflow process template 5 fragments in Appendices A, B and C, being 'workflow', 'capabilities' and 'transforms', applicable to specific device or service types, provide the template constraints information described in various versions of this disclosed JITW arrangements. When taken together, for instance, the workflow process template fragments and the specified devices or services that they instruct, utilising the specified template constraints, cause the formation 10 of an emergent workflow process instantiation. The external constraints mentioned previously in various versions of the disclosed JITW arrangements are exemplified by events such as the 'submit' button implied within the html form that is bound to the PDA's User Input Form capability in the Staff Purchase workflow, and also exemplified by the scan event (user pressing scan 15 button) implied and expected within the scan.exe function bound to the scanner's Attach Quote capability in the Staff Purchase workflow. Thus, it can be seen how a workflow process.template, in a single, centralised form or in a distributed, fragmented form, can control the assembly, execution and disassembly of a Just-in-Time workflow process system and can, in conjunction with a 20 method such as in Fig. 9 or other of the JITW arrangements described herein, enable or support the features described for such a workflow process system, particularly including zero-notice constraints, significant flexibility to support real-world requirements, and a distributed workflow engine. COMPUTING CHARGES FOR THE JUST-IN-TIME WORKFLOW 161205 733085 -48 Fig. 11, method 1100 shows an embodiment of the disclosed JITWC arrangements. The method begins at 1101 and proceeds to 1103 at which a workflow process engine is assembled and a workflow process executed across a network. Examples of step 1103 are provided as methods 400, 600, or 650. Method 1100 proceeds 5 then to step 1105 at which parts of or all of the network-distributed workflow process sends job information (metadata) and/or usage information to an audit server. The means of sending this information is well-known in the art, using any of a number of network protocols, for instance, particularly including secure protocols and/or encrypted metadata. The type and form of job metadata that is sent to the audit server may include any 10 parameters about the services or devices operations, commands or parameters, the quantity and quality values, and particularly, information about aspects of the content of a job or information about the type of processing that job content requires. Some examples of these kinds of parameters and their usefulness to accurate job accounting are given in Table 1 for several workflow contexts. 15 Step 1105 may be interleaved with step 1103 so that each service of a workflow process is involved in sending job metadata to the audit server as the service is assembled into or executed within the workflow process engine. At step 1107 the audit server, which may be typically resident in the customer's network, sends collected information to the vendor's accounting server. The audit server 20 may be replicated several times within a customer's network for convenience, security or partitioning reasons such as workflow and network topology. The audit server(s) may process the collected job metadata prior to sending it to the accounting server. The form of processing at the audit server could vary per customer if the vendor wishes. Examples of processing might include normalisation of information into standard units as received 161205 733085 -49 from differing services, workflow processes, etc. It is optional as to whether the vendor prefers some processing at the audit server or at the account server. The more processing at the audit server, the less flexibility the vendor might have to vary charging models and values, however, the less information (in terms of volume but not in terms of value) may 5 need to be sent to the accounting server. At 1109 the accounting server, which may be at the vendor's premises or typically in a secure location outside of the customer's premises, the customer charge is computed. Then at 111I the customer is invoiced according to the computed charge using any of the known methods. At 1113 the business model ends. As will be understood by a 10 person skilled in the art, steps 1107, 1109, 1111 may involve some form of caching of information across multiple execution of steps 1103 & 1105 and thence less frequent execution than steps 1103 & 1105. Although the previous description assigns different tasks to the audit server and the accounting server, it is apparent that the noted tasks can be allocated in different ways 15 in the JITWC arrangements. Furthermore a single server (referred to as a server) can perform all the tasks performed by the audit server and the accounting server. Fig. 13, 1300 shows an exemplary system in which the disclosed JITWC arrangements may be deployed. The workflow process components 1301, 1303, 1305, 1307, 1309, 1311, and 1329 perform similarly or identically to those items 201, 203, 205, 20 207, 209, 211, and 229 described for Fig. 3. However, in 1300, some or all of the items 1301 through 1307 may provide job metadata information to the audit server 1330 via network connections 1320, 1322 or 1324. The audit server 1330 will send job metadata or processed job metadata to the accounting server 1350. These servers would typically be located in differing networks and the connection would typically be via the internet 161205 733085 -50 1340 but could be via a special dial-in line or other private network connection. It would also be typical for each network to be protected by firewalls 1335 and 1345. The method of communication between the audit server and the accounting server would typically be some form of encrypted, standard internet protocol such as https or other. The audit 5 server might be polled by the accounting server, or vice-versa as may be desired by the implementor. Fig. 12A, 1200 shows a method for a basic deployment of the business model for deploying the disclosed JITWC arrangements. The method starts at 1201 and at 1203 the vendor bundles a basic workflow process package with product sales. For example, a 10 photocopier, printer or other device would have bundled with it and/or within it a number of services that collaborate to form a networked workflow process as described in the JITW arrangements with reference to Figs. 1 to 9. An option for the vendor might be to include or exclude an audit server with this basic deployment. Excluding an audit server and subsequent accounting of the service or workflow costs might be a useful loss-leader 15 strategy for some market segments. However, it would be most useful and typical for an audit server software implementation to be included in the basic bundling with one or more products sold to a customer. In a small office environment perhaps the audit server might be integral to a device or devices to make the installation effort and cost more attractive to the small customer. 20 At 1205 in 1200, the workflow process-to-audit server job metadata flow occurs as previously described in Fig. 11 and at 1207 the accounting server collects the audit server information as previously described. At 1209 the account server causes the customer to be invoiced as previously described in Fig. 11. At 1211, the vendor decides whether the conditions are right to raise the level of the relationship with the customer. If 161205 733085 -51 the decision is not to then execution of 1200 proceeds to 1215 at which if more product sales occur then the bundling process is repeated from 1203, otherwise 1200 proceeds to 1207 where the billing process continues for the customer's usage of the installed product(s) and workflow/service bundle(s). If, at 1211, the vendor decides to raise the 5 level of the customer relationship then at 1213 the vendor offers higher-value or customised services or devices as workflow components. It would be expected to be the case that these higher value components would be billed at higher rates per usage or per other parameter than would the basic components. In addition, the vendor would expect a reasonable rate of usage of these components to provide a return on the investment of 10 developing them. Thus, the decision at 1211 takes these and other issues into account. Fig. 12B, 1230 shows an extended business model deployment method. Starting at 1231, the method moves to 1233 at which the vendor decides if there is sufficient installed base in a customer group (which might be a vertical or horizontal market segment or a sufficiently large individual customer). If the decision is no then 1200 loops 15 to 1233. If the decision at 1233 is yes then the vendor, at 1235, licenses a Software Development Kit (SDK) to a third-party or to a customer for creation of services or service components compatible with those deployed within a workflow process bundle. Typically the vendor would maintain proprietary elements within the SDK that enforce standard and secure communications, auditing and other features to the vendor's required 20 level of quality. It is expected in this model that the service components of a workflow process would include job metadata auditing methods that allow a vendor to charge a customer for the use of these services/workflow processes, even though the vendor did not itself create these components. The extended business model ends at 1237. The vendor 161205 733085 -52 may of course charge the third-party in some way for use of the SDK in addition to an up front purchase cost or rental fee (not shown). Thus, with business model method 1100, and deployment methods 1200 and 1230, and the underlying workflow methods, the vendor has many options for deciding 5 charging models for customers, customer groups, market segments, sales strategies, etc, etc. The vendor also has sufficient control and accurate information that enable accurate billing of customers. It is feasible that customers may have preview access to such billing (not shown) so that they may anticipate the cost of any intended workflow process or service and consider its worthiness against other factors and constraints prior to activating 10 or completing the workflow process or service. Such a method would require one or more of a cost estimation service provided by the audit server, or a cost quotation feedback service provided by the accounting server, or similar or equivalent methods. Securing and Certifying the Workflow Process Fig. 14 shows a method 1400 for improving the security of the workflow process 15 assembly method 100 of Fig. 2A. Method 1400 replaces step 109 and the next service selection portion of step 105 of method 100 in order to check certification of the next service selection in the workflow process assembly. In Fig. 14, the next service selection starts at 1402, and at 1403 the next service is pre-selected based on a constraint check in the equivalent manner to that previously explained for 109 in method 100. At 1404 the 20 pre-selected next service's build certificate is requested. This build certificate may conform to the well-known security certification methods provided by certification authorities and based on technologies such as public key encryption and signing. In this explanation the build certificate and other certificates and verification procedures are assumed to conform to or be equivalent to the known methods. 161205 733085 -53 At 1406 in Fig. 14, the next service's build certificate is verified. This step may typically involve any of several well-known methods of using a private key hidden within the current service to verify the public key of the next service, or securely accessing a private key stored on a secure server within the workflow process system network 5 environment or on a vendor's secure server external to the customer's network environment, or by the current service performing a secure, remote verification transaction request on the next service's build certificate to a verification authority service. If the next service's build certificate is detected as invalid at 1406 then at 1412 the assembly process signals a failure and/or signals a disassembly of the incomplete 10 workflow process such as is available in Fig. 2C method 150. An alternative mode of operation (not shown) in the case of failed verification at 1406, is to loop from 1406 to the next service pre-selection step 1403 and therefore perform this loop until build certificate verification succeeds at 1406 for a pre-selected next service or all pre-selected next services failed verification at which point 1412 will be executed and the method 1400 15 terminated at 1414. If, at 1406 the next service's build certificate was verified then at 1408 the next service is adopted as the selected next service and at 1410 the method completes. The possible purposes of such certification checks include such as, ensuring that genuine services only are included within a workflow process instantiation. 20 Fig. 15, method 1500 shows a method for a current service of verifying the execution authority of a next service in an assembled workflow process. This method 1500 could be inserted between steps 134 & 136 in method 130 of Fig. 2B to verify the authenticity and security of any next service assembled into a workflow process before executing the service. The purpose of such a check might be to ensure that a customer is 161205 733085 -54 only using vendor services to which it is authorised to access, or a department or employee of a customer is similarly authorised to request execution of such a service. The execution service authentication of the next service begins at 1502 and at 1504 the next service's execution authorisation certificate is requested in much the same 5 manner as for the previous method 1400 requesting the pre-selected next service's build certificate. In fact, one certificate could be used for both build and execute authorisation. If, at 1506, the next service's certificate is not verified then at 1512 the workflow process is disassembled as per a method such as 150 in Fig. 2C and method 1500 terminates at 1512. If, however, the next service's execution certificate is verified at 1506 then method 10 1500 ends successfully at 1510. Fig. 16, method 1600 shows a variant of the method 1500 of Fig. 15 in which most steps are identical excepting the insertion of step 1608 as shown. The purpose of method 1600 and of step 1608 is to create an audit log of the particular instantiated workflow process' execution by recording specific information including, particularly, a 15 secure identifier of the next service occurring in the instantiated workflow process, and this is done by providing a record of the next service's execution certificate if this certificate is unique. It is possible that several services might have identical execution certificates and in that case the implementor of the business method may decide whether to discriminate between the services or not and if to discriminate, then another secure 20 identifier such as hash signature of the service software or other needs to be provided to the audit server. Other information may be advantageously provided at 1608 in 1600 to the audit server. Typically, metadata about the job being undertaken would be provided to the audit server and this might include information such as: date & time of the job execution, 161205 733085 -55 information about the user or access rights for the job initiation, copies of job parameters passed to services, information about the applicable workflow template, a template hash signature or certificate for the workflow, information derived by a service from its execution, such as number of pixels of particular colours in an image, or other quality and 5 quantity information and also parts of, or special derivations of the content of the job passed to one or more of the services in with workflow process instantiation. After this information is passed in a secure manner to the audit server by 1608, method 1600 proceeds to and ends at 1510. Workflow Process Template Certification and Instantiation Logical ID 10 Generation Fig. 17 shows a method 1700 of defining a logic process ID for an instantiating (i.e. assembling) workflow process. This method 1700 may occur within either of 103 or 105 of method 100 in Fig. 2A. The purpose is to provide a unique identifier for the instantiated workflow process as described in previous embodiments to assist in inter 15 connecting instantiated services into an emergent instantiated workflow process and additionally so that the unique ID may be logged by the audit server to provide ultimately more accurate information to the account server. At 1702 the method 1700 starts and proceeds to 1704 at which the workflow process initiator defines a unique logical process ID using any of the well-known methods 20 for doing so. At 1706 the initiator sends the applicable template certificate to the audit server and optionally sends further information such as the generated unique ID and other information as described for step 1608 in method 1600. Method 1700 ends at 1708. Fig. 18, method 1800 describes an alternative method to 1700, in which the audit server defines the workflow process instantiation unique logical ID and sends it to the 161205 733085 -56 instantiator in exchange for receiving the applicable template certificate. This method 1800 allows the audit server greater control and security over the logical ID generation, which may improve accounting accuracy and it also allows a reduction in the minimum capability required of the instantiator, which no longer needs to generate a logical ID. 5 As with method 1700, method 1800 may be inserted within 103 or 105 of method 100. Method 1800 begins at 1802 and proceeds to 1804. At 1804 the initiator sends the applicable template certificate to the audit server and optionally sends other information as previously described for 1608, etc. At 1806 the initiator receives from the audit server a logical process ID for the instantiating workflow process. Method 1800 then 10 ends at 1808. Fig. 19, method 1900 shows a method executed on the audit server for receiving and logging workflow template certificates sent to it by workflow process initiators and also of generating and returning unique logical IDs to the initiators. Method 1900 executing on the audit server is typically used in conjunction with method 1800 executing 15 on the initiator. Method 1900 begins at 1902 and proceeds to 1904 at which it checks to see if an initiator has sent a certificate in any of the well-known network communication methods and particularly a suitable one of the well-known secure network communication methods such as SSL. If no certificate has been received then 1904 loops back onto itself. If a 20 certificate is received then 1904 proceeds to 1906 at which the audit server securely logs the received certificate and any accompanying information. Then at 1908 the certificate is checked to determine if it is a template certificate, typically sent by an initiator. If it is a template certificate then the audit server generates a unique, logical ID and securely logs it 161205 733085 -57 and securely sends it back to the initiator in response at 1910 and method 1900 loops back to 1904. If the test at 1908 failed then execution also returns to 1904. Workflow Process Bundle-Certification Fig. 20, method 2030 shows an alternative to method 130 of executing an 5 assembled workflow process, with the addition of creating a certificate bundle describing the executing or executed workflow instantiation. The certificate bundle is assembled by method 2030 to provide an unimpeachable description of precisely what took place in the execution phase to the audit server. Method 2030, steps 2032, 2034, 2036, 2038, 2040, 2042 and 2044 map to identical descriptions given for method 130 steps 132, 134, 136, 10 138, 140, 142 and 144, respectively. The additional step 2046 in method 2030 is where the initiator creates a certificate bundle which at this early stage is a container to which subsequent services executing in the workflow process will insert or append their execution certificates. Further additional step 2048 involves the current service (which might or might not include the initiator as an option) binding its execution certificate into 15 the certificate bundle. The certificate bundle was either passed down by step 2036 or a reference to it was passed down and this proceeds down the workflow process instantiation. At further additional step 2050, at the completion of execution of the workflow process services the now-complete certificate bundle is securely sent by the last service in the workflow process to the audit server for logging. 20 Exemplary Workflow Process Use-Case Fig. 21, method 2100 shows an exemplary workflow process use-case of a document update, layout and print process. The devices and services of Fig. 21 are extracted directly from the network pool of Fig. 4, with wired and wireless network connections not shown for clarity. PDA 2145 acts as initiator of the workflow process by 161205 733085 -58 executing initiator service 2146 under user control. PDA 2145 accesses the appropriate workflow process template 2141 for this use-case from database 2140 via network correspondence 2150. Then PDA 2145's initiator service 2146 selects the next service via 2152 to be instantiated and inserted into the workflow process. Service 2146 also 5 sends a URI to the document required for processing & printing provided by the user to the next service as an input parameter. Print parameters are also provided by the user, including the IDs or locations or similar parameters allowing enough identification of destination printing devices to satisfy the user's requirements. All services communicate with the audit server (not shown), sending information 10 as previously described. The workflow process assembly and execution phases are herein described as occurring in an interleaved fashion. This is arbitrary and done for explanatory convenience. Server 2120 provides several separate services in this example (for explanatory convenience). The first service in the workflow process instantiated and appended by the 15 initiator 2146 is the query & layout service 2122. This service 2122 opens the document referenced by the URI passed to it. The document database holding the document is not shown for clarity and it may be accessed and opened using well-known methods in the art such as http access or other. Query & layout service 2122 on server 2120 queries data from database 2125 via 2154 and updates appropriate query fields built into the document 20 being processed. An example of this processing may be that the document includes a spreadsheet portion which contains queries to the database 2125. Service 2122 updates the queries automatically as part of its processing by de-referencing links to database entries in 2125 and applying this information to any equations embedded in the document spreadsheet portion, thereby yielding updated information portions within the document 161205 733085 -59 being processed. Service 2122 then performs a re-layout of the document being processed which may involve a partial re-formatting of data based on the formatting effects of the updated spreadsheet portions. Query & layout service 2122 may be exemplified by a variable-data printing service or part thereof that is well-known in the art. 5 Thence service 2122 is instructed by workflow process template 2141 and user parameters passed in by the initiator 2146 to select several next services for printing the processed document. The user and template combination have requested these bifurcations of the workflow process from service 2122 to two printer drivers 2126 and 2127. Low quality printer driver service 2126 is instantiated and appended by 2122 and is 10 directed by 2122 passing parameters and under template 2141 control to process and send the print job to low-quality printer 2105 via 2156 using embedded printer service 2106. In parallel, service 2122 also instantiates and appends to the workflow process two copies of high-quality colour print driver service 2127. The two instantiations of service 2127 receive the same job content information (i.e. the processed document from 2122) and 15 they obey identical template 2141 constraints. However, they receive slightly differing parameters passed down originally from the user and this causes the two service instantiations of 2127 to direct their outputs to differing high-quality colour printers that reside in physically separate locations (as desired & directed) by the user. These destination printers are: printer 2130 with embedded print service 2132 connected via 20 2160 and located remotely to the user location; and printer 2110 with embedded printer service 2112 connected via 2158 and this printer 2110 is local to the user. It can be seen that there is no explicit document saving service invoked in this workflow process and therefore the original document and its updates performed by service 2122 are never permanently saved. The described workflow process may be 161205 733085 -60 considered to be equivalent to running a script, where the document itself could be considered the script or a portion of the script. Each time the document is processed, a differing result may be output and the document remains unmodified. As previously mentioned, each process communicates with the audit server (not 5 shown) to provide at least a portion of the metadata information that it has to allow subsequent accurate accounting of the true cost of the workflow process. Table I shows some of the metadata types that might be reasonably available to the exemplary workflow process and its services of use-case method 2100 and that may be reasonably used to compute and charge for the cost of the workflow process execution. 10 Service Type Metadata Type Source or derivation Potential use in of metadata job-cost accounting Printing Resolution Parameter Quality & machinery wear & tear Toner/Ink quality Parameter or device Cost of ink/toner property Paper stock Parameter or device Cost of stock property Quantity of pages Parameter or metadata Multiplier on some and/or page area implicitly or explicitly other parameters, output by previous wear & tear cost & service run-time cost of services Content type: Content analysis Proportional natural image, multiplier on other graphical, text, etc properties such as ink/toner, resolution. Transparency Content analysis Compositing & rendering processing complexity, run time or similar. Distribution of print Parameter or service Multiplier on other job to various property parameters printers 1 161205 733085 -61 Print or printer Device property or Machinery-derived driver Device ID or parameter cost component type Number of jobs Parameter Multiplier on other ____________________ parameters Data query & Number of jobs Parameter Multiplier on other layout parameters Quantity of pages Parameter or metadata Multiplier on some and/or page area implicitly or explicitly other parameters, output by previous wear & tear cost & service run-time cost of _________________services Content type & Content/page/document Proportional quantity: natural analysis multiplier on other image, graphical, properties text, etc __________ Spreadsheet Embedded or Compute effort & database references referenced content & run-time, database & equations processing instructions access count. Layout processing Content analysis & Compute effort & layout algorithm run-time. Selective application quality of processing Initiator Template type Parameter/User input Overall multiplier or alternative costing method ___________Destination printers IParameter/User input Overall mult Ilier User ID Parameter/User input Overall mult & Table 1: Exemplary job metadata that could be sent to an audit server. Exemplary Job Metadata Table 1 shows a variety of possible metadata types that could be forwarded to the audit server for logging and consequently be of potential use to the accounting server for 5 accurate cost-accounting of the workflow process instantiation of Fig. 21, 2100. The content of Table 1 is not intended to be exhaustive nor are any of the metadata items necessarily required for the accounting method of the disclosed JITWC arrangements. Rather, Table 's contents show how the disclosed JITWC arrangements enables accurate accounting of a worklow process through the potential provision and potential use of 10 metadata. 161205 733085 -62 Table 1 shows several distinct service types and against these a range of metadata types that might be logged to the audit server by that type of service. Each metadata type is briefly described as to a possible source of that metadata in relation to the service type and then a potential use or meaning of the metadata in the context of cost-accounting for 5 the workflow is given. It may be seen that many types of metadata exist and that these may have overlapping meanings or usages in cost-accounting, such as, for instance, the ID or model of a printer might be used as a major input parameter to costing a job instead of other parameters shown such as paper stock, resolution, toner/ink quality, and quantity of pages. 10 It can be seen by a person skilled in the art that a useful costing equation may be executed on an accounting server using some or all of the exemplary parameters available from Table 1. There is known prior art that utilises a quantity of pages click-count and a machine ID for counting the cost of printing or photocopying services. This known method is commonly called a click-count costing or click-charge. The disclosed JITWC 15 arrangements can be seen to support such a prior art method of cost-accounting but then the disclosed JITWC arrangements can provide so much more accurate information as can be seen from Table 1. Table 1 also shows that equivalent information may be obtained from several or alternative services forming a workflow process. One service may be able to provide a 20 metadata type of information natively, (i.e. at lower cost) than another service might be able to do so. For instance, it is reasonable to assume that a layout service handling object-based data may be able to provide content type & quantity metadata natively and with minimal extra processing compared with a printer or printer driver service that operates typically at pixel level. Note, for the benefits of clarity, Table I does not 161205 733085 -63 discriminate between the printer driver services 2126, 2127 and the embedded printer services 2106, 2112, 2132 of use-case 2100 because the apportionment of functionality and processing effort between printer drivers and embedded printing services varies considerably in the market place. 5 There follows an exemplary cost-accounting equation computed by an accounting server that might be applied to costing the workflow process of 2100, Fig. 21 and is based on a subset of parameters listed in Table 1 that were logged onto the audit server: Equation 1: 10 Workflow 2100 use-case cost = Sum per print job: A$ (resolution [printer type]) * B$(toner quality[printer type]) 15 * (SUM per content type: total pages area[content type] * C$(content type)) + M$ (printer type) + L$(layout & processing run-time) 20 Exemplary costing equation 1 can be briefly explained as firstly separately costing each of the three physical print jobs described in use-case 2100 involving firstly the product of costing functions A$, B$ operating on parameters or properties of the print jobs, specifically being resolution and toner quality, respectively. The costing function 25 C$, which is operating on metadata content type, is multiplied by the total pages area 161205 733085 -64 printed for that content type and is calculated per content type, summed and then multiplied by the results of A$ & B$ costing functions. This portion of the calculation allows a more accurate costing of toner used per print job than does current known methods. The equation shown does contain at least one assumption, being the mean cost 5 of toner per content type per area per resolution. This assumption may be known by either the audit server or accounting server and might typically be built into C$ costing function, however, in a yet more accurate costing equation example, this assumption might be replaced with a more accurate, per pixel type of cost-accounting in another implementation of the disclosed JITWC arrangements (not shown). 10 The amortised maintenance cost overhead per printer, represented by cost function M$ is summed with the current calculated cost per print job, the three print job calculated costings are then together summed and then summed with the cost of the layout processing run-time of service 2122 represented by cost function L$ in Equation 1. It can be seen that this relatively simple cost-accounting example can provide a much more 15 accurate costing than the known methods in the art. The vendor is therefore able to more accurately charge the customer for the workflow with the consequent advantages to both vendor and customer as previously explained. As may be seen by a person skilled in the art, the described embodiments of the invention each demonstrate a business system for computing customer charges for a 20 workflow process. INDUSTRIAL APPLICABILITY It is apparent from the above that the arrangements described are applicable to the computer and data processing industries. 161205 733085 -65 The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive. In the context of this specification, the word "comprising" means "including 5 principally but not necessarily solely" or "having" or "including", and not "consisting only of'. Variations of the word "comprising", such as "comprise" and "comprises" have correspondingly varied meanings. 161205 733085 -66 Appendix A: Exemplary XML Workflow Process Template for PDA device <J ITconfig u ration> 5 <device type="PDA"/> <workflows> <workflow name="Staff Purchase" description="Staff Purchase" initial="User Input Form" destination="Print Order"/> 10 <workflow name="Document Search" description="Document Search" initial="User Search Keywords" destination="Display Result"/> </workflows> <capabilities> 15 <capability name="User Input Form" workflowname="Staff Purchase" description="none" bind="http://workflowdatabase/forms/staff-purchase.htm"/> <capability name="Attach Quote" workflowname="Staff Purchase" description="none" bind="http://thisdevice/documentbrowse.exe"/> <capability name="User Search Keywords" workflow name="Document Search" 20 description="none" bind="http://workflowdatabase/forms/usersearch_keywords.htm"/> <capability name="Display Result" workflow name="Document Search" description="none" bind="http://thisdevice/displaysearch_result.exe"/> </capabilities> 25 <transforms> <transform workflow="Staff Purchase" 161205 733085 -67 step="User Input Form" transformstep="Attach Quote"/> <transform workflow="Staff Purchase" step="Attach Quote" transformstep="Print Order"/> <transform workflow="Document Search" 5 step="User Search Keywords" transformstep="Master Search"/> <transform workflow="Document Search" step="Display Result" transformstep="End"/> </transforms> 10 </JITconfiguration> 161205 733085 -68 Appendix B: Exemplary XML Workflow Process Template for scanner device <J ITconfiguration> 5 <device type="Scanner"/> <workflows> <workflow name="Staff Purchase" description="Staff Purchase" initial="User Input Form" destination="Print Order"/> 10 </workflows> <capabilities> <capability name="Attach Quote" workflowname="Staff Purchase" description="none" bind="http://this-device/scan.exe"/> 15 </capabilities> <transforms> <transform workflow="Staff Purchase" step="Attach Quote" transformstep="Print Order"/> 20 </transforms> </J ITconfiguration> 161205 733085 -69 Appendix C: Exemplary XML Workflow Process Template for printer device <JlTconfiguration> 5 <device type="Printer"/> <workflows> <workflow name="Staff Purchase" description="Staff Purchase" initial="User Input Form" destination="Print Order"/> 10 </workflows> <capabilities> <capability name="Print Order" workflowname="Staff Purchase" description="none" bind="http://this-device/print.exe"/> 15 </capabilities> <transforms> <transform workflow="Staff Purchase" step="Print Order" transform step="End"/> 20 </transforms> </JITconfiguration> 161205 733085
Claims (12)
1. A method of determining customer charges for a just-in-time workflow that performs a sequence of tasks using a system comprising a pool of network services that 5 can communicate over a computer communications network, the method comprising the steps of: assembling, triggered by at least one event associated with the sequence of tasks, at least a partial workflow process engine to perform a corresponding part of the sequence of tasks, the partial workflow engine comprising a plurality of the network services in the 10 pool; executing, by the assembled partial workflow process engine, an associated partial workflow process to perform said corresponding part of the sequence of tasks; determining, by the partial workflow process engine, at least one of usage information for the plurality of network services during at least one of the assembly and 15 executing steps and job information about the corresponding part of the sequence of tasks; and determining a customer charge based upon the determined usage information, wherein the assembling step comprises the steps of: processing a current task in said corresponding part of the sequence of tasks by a 20 current network service in the partial workflow engine; selecting, by the current network service, a subsequent network service from the pool dependent upon (i) the capability of the subsequent network service to communicate with the current network service over the network and (ii) the capability of the subsequent network service to perform a subsequent task in the sequence; 733085 / 153530v3 050808 -71 communicating, by the current network service over the network, information associated with the current task to the subsequent network service; designating the subsequent network service to be the current network service; defining the subsequent task in the sequence to be the current task; and 5 repeating the processing step.
2. A method according to claim 1, comprising the further step of: sending, by the partial workflow process engine, the accumulated usage information over the network to a server; and 10 accumulating, by the server, usage and job information for said partial workflow process engine, and usage and job information for other concurrent partial workflow process engines assembled from the network services in the pool.
3. A method according to claim 1, wherein the selecting step comprises the steps of: 15 selecting the subsequent network service dependent upon a predefined set of rules associated with the sequence of tasks; and notifying the subsequent network service of the selection.
4. A method according to claim 3, wherein the selecting step further comprises 20 selecting the subsequent network service dependent upon at least one of a further constraint and a further event. 733085 / 153530v3 050808 -72
5. A method according to claim 4, wherein the selecting step further comprises selecting the subsequent network service dependent upon said subsequent network service having a valid security certificate. 5
6. A method according to claim 2, wherein the step of accumulating, by the server, usage information for said partial workflow process engine and for usage information for other partial workflow process engines concurrently assembled from the network services in the pool comprises: verifying, in regard to each said network service, that said network service has a 10 corresponding valid security certificate, and performing the accumulating step only for those network services having said corresponding valid security certificate.
7. A system for determining customer charges for concurrent just-in-time workflow 15 process engines that performs a sequence of tasks, each workflow process engine comprising network services from a pool of network services, said system comprising: a pool of network services that can communicate over a computer communications network, each said network service comprising: means for assembling, triggered by at least one event associated with the 20 sequence of tasks, at least a partial workflow process engine to perform a corresponding part of the sequence of tasks, the partial workflow engine comprising a plurality of the network services in the pool; 733085 / 153530v3 050808 -73 means for executing, as a member of the assembled partial workflow process engine, an associated partial workflow process to perform said corresponding part of the sequence of tasks; and means for accumulating, as a member of the partial workflow process 5 engine, at least one of usage information for the plurality of network services during at least one of the assembly and executing steps and job information about the corresponding part of the sequence of tasks; and a server for: accumulating usage information for said partial workflow process 10 engine and usage information for other concurrent partial workflow process engines assembled from the network services in the pool; and determining a customer charge depending upon at least one of the accumulated usage information and the accumulated job information. 15
8. A business system for determining customer charges for a just-in-time workflow that performs a sequence of tasks, the system comprising: a pool of network services that can communicate over a computer communications network; the communications network; 20 means for assembling, triggered by at least one event associated with the sequence of tasks, at least a partial workflow process engine to perform a corresponding part of the sequence of tasks; said partial workflow engine comprising a plurality of the network services in the pool, and being adapted for: 733085 / 153530v3 050808 -74 executing an associated partial workflow process to perform said corresponding part of the sequence of tasks; determining at least one of usage information for the plurality of network services during at least one of the assembly and executing steps and job 5 information about the corresponding part of the sequence of tasks; and determining a customer charge based upon the determined usage information; wherein: the means for assembling said at least partial workflow process engine comprises: 10 means for processing a current task in said corresponding part of the sequence of tasks by a current network service in the partial workflow engine; means for selecting, by the current network service, a subsequent network service from the pool dependent upon (i) the capability of the subsequent network service to communicate with the current network service over the network and 15 (ii) the capability of the subsequent network service to perform a subsequent task in the sequence; means for communicating, by the current network service over the network, information associated with the current task to the subsequent network service; means for designating the subsequent network service to be the current 20 network service; means for defining the subsequent task in the sequence to be the current task; and means for repeating the processing step. 733085 / 153530v3 050808 -75
9. A Business system according to claim 8, wherein the accounting server and the audit server are the same server.
10. A method of determining customer charges for a just-in-time workflow, 5 substantially as described herein with reference to the accompanying drawings.
11. A method of promoting the sale, to a customer, of a particular network device, substantially as described herein with reference to the accompanying drawings. 10
12. A system for determining customer charges for concurrent just-in-time workflow process engines, substantially as described herein with reference to the accompanying drawings. DATED this 8th Day of April 2008 15 CANON KABUSHIKI KAISHA Patent Attorneys for the Applicant SPRUSON&FERGUSON 733085 / 153530v3 050808
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2005247027A AU2005247027B2 (en) | 2005-12-22 | 2005-12-22 | A Business System for Computing Customer Charges for a Workflow Process |
| US11/613,019 US8185423B2 (en) | 2005-12-22 | 2006-12-19 | Just-in time workflow |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2005247027A AU2005247027B2 (en) | 2005-12-22 | 2005-12-22 | A Business System for Computing Customer Charges for a Workflow Process |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| AU2005247027A1 AU2005247027A1 (en) | 2007-07-12 |
| AU2005247027B2 true AU2005247027B2 (en) | 2009-06-04 |
Family
ID=38264996
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| AU2005247027A Ceased AU2005247027B2 (en) | 2005-12-22 | 2005-12-22 | A Business System for Computing Customer Charges for a Workflow Process |
Country Status (1)
| Country | Link |
|---|---|
| AU (1) | AU2005247027B2 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5826239A (en) * | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
-
2005
- 2005-12-22 AU AU2005247027A patent/AU2005247027B2/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5826239A (en) * | 1996-12-17 | 1998-10-20 | Hewlett-Packard Company | Distributed workflow resource management system and method |
Non-Patent Citations (1)
| Title |
|---|
| Shan et al; "HP Workflow Research: Past, Present, and Future"; Software Technology Laboratory; August 1997; * |
Also Published As
| Publication number | Publication date |
|---|---|
| AU2005247027A1 (en) | 2007-07-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8185423B2 (en) | Just-in time workflow | |
| Benatallah et al. | Facilitating the rapid development and scalable orchestration of composite web services | |
| D'Ambrogio et al. | A model-driven approach to describe and predict the performance of composite services | |
| US7930698B2 (en) | Distributed document handling system for carrying out a job by application services distributed over a network | |
| Di Penta et al. | WS Binder: a framework to enable dynamic binding of composite web services | |
| Shams et al. | A model-based approach for testing the performance of web applications | |
| US20080288464A1 (en) | Workflow system and method | |
| US20110145326A1 (en) | WORKFLOW CUSTOMIZATION METHOD IN SaaS ENVIRONMENT | |
| US20060225064A1 (en) | Flexible multi-agent system architecture | |
| Petriu et al. | Analysing software requirements specifications for performance | |
| Chung et al. | Service-oriented software reengineering: SoSR | |
| Autili et al. | CHOReVOLUTION: automating the realization of highly–collaborative distributed applications | |
| US20040093580A1 (en) | System and methodology for mobile e-services | |
| US20050086102A1 (en) | Method and system for validation of service consumers | |
| AU2005247027B2 (en) | A Business System for Computing Customer Charges for a Workflow Process | |
| Pilioura et al. | E-services: Current technology and open issues | |
| Tosi et al. | Towards autonomic service-oriented applications | |
| Sivasubramanian et al. | Dynamic web service composition: Challenges and techniques | |
| US7577904B1 (en) | Definition and distribution of business rules while enforcing syntactic and semantic validation | |
| AU2005247025B2 (en) | Just-in-time Workflow | |
| US20100010894A1 (en) | Software-as-a-service ad content | |
| Indiono et al. | Dynamic change propagation for process choreography instances | |
| Fu et al. | Modeling, validating and automating composition of web services | |
| Guidi et al. | Formalizing Mobility in Service Oriented Computing. | |
| Stein et al. | Enabling business experts to discover web services for business process automation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FGA | Letters patent sealed or granted (standard patent) | ||
| MK14 | Patent ceased section 143(a) (annual fees not paid) or expired |