A METHOD OF CONTROLLING DATA PROCESSING OPERATIONS

Abstract: A method of controlling data processing operations in a data processing system, preferably consisting of a plurality of spatially separate system components connected via a data transmission medium, comprises the following steps: reception of a data processing request for the execution of a data processing process, selection of a process flow description which defines the flow of the data processing process by a sequence of function modules and control modules and corresponds to the received data processing request, execution of the data processing process by calling the function modules and control modules in accordance with the process flow description, where a function module in each case is a self-contained, preconfigurable unit for the execution of data processing operations in the data processing system and a control module in each case specifies the linking of the function modules to one another.

Description: A Method of Cortrollincr Data Processing Operations The present intention relates to a method, computer system and computer program for controlling data processing operations in a data processing system, in particular a system of distributed system components interconnected via a suitable data transmission medium. As information and communication technologies penetrate ever more into virtually all areas of life, high-speed, secure information exchange is emerging as an increasingly significant competitive factor. Now it is no longer a guestion of a simple exchange of information; rather, information technologies are being used to an increasing extent to perform complete operating and business processes . The local limitation of data processing systems is increasingly being overcome by modern, powerful communications means such as the internet. Previously, business applications have been controlled by a local client-server network primarily accessing local resources and data memories. However this configuration has the disadvantage that the stored data can be updated only with an in part considerable outlay and with a time delay corresponding to the application. Through the use of more powerful data transmission media, direct access to remote data carriers and applications servers is becoming ever simpler however, thus opening up the possibility of having specific business data processing operations performed externally. In many cases this obviates the need for double data management, data storage and data updating, if central server computers are available for access by a plurality of data processing systems and cover corresponding sub-areas. Then the data only need be updated in this central server computer. The data processing operations or processes to be performed for business applications can differ considerably, so that data processing systems which execute such processes must be individually adapted, thereby necessitating a high outlay in terms of development and costs according to the complexity of the data processing system. The need thus exists for business processes to be reproduced by corresponding data processing operations which can be executed in spatially distributed computers, it being possible to modify and adapt the data processing operations in accordance with modified business processes (for example inclusion of new clients or suppliers, take-over of a subsidiary company, conversion to the Euro) as simply as possible and without an interruption in operation. This need applies in particular to providers of e-commerce solutions who offer their clients a virtual trading environment whereby a conventional business process is not merely reproduced but also gains the advantages of a virtual environment (for example speed) . It is known to permanently define the communication between distributed data processing system components connected via a network by means of a computer program. However this has the disadvantage that the communications structures can be changed only by changing the communications software with intervention in the corresponding program code. This is costly in terms of time and expenditure and also necessitates an undesirable interruption in operation. It is also known to distribute the individual functions of data processing processes between individual, self- contained function units or modules which can be individually varied without affecting other components of the overall system. However, with this approach the variability is restricted to changing the individual system modules. With this method, process flows can be defined only in one variant. It is not possible to model process flows such that the process can be executed in different ways and in several variants as a function of specific events within the process, which makes it very difficult to reproduce real process flows. These must in each case firstly be adapted to the limited system. In contrast, the object of the present invention is to propose a method of controlling data processing operations in a data processing system, in particular comprising spatially distributed, interconnected system components, which permits fast and simple adaptation of the data processing operations with a minimal interruption in operation. In particular, it is to be possible not only to modify and update individual functions, but also to change the linking of the functions to one another. This object is achieved in accordance with the invention by a method of controlling data processing operations in a data processing system, preferably consisting of a plurality of system components spatially separate from one another and connected via a data transmission medium, comprising the following steps: reception of a data processing request, selection of a process flow description which defines the process flow by a sequence of function- and control modules and corresponds to the data processing request, and execution of the data processing request by successively calling the function- and control modules defined by the process flow description, where the function modules specify data processing operations in the data processing system and a control module specifies the linking of the function module to one another. The method according to the invention provides a control mechanism for data processing operations which can be used universally to control the data processing operations running in the data processing system independently of the configuration of the data processing system, i.e. the number and location of the individual system components, and independently of the complexity of the processes to be executed. Furthermore, the method can be reconfigured rapidly and substantially with no interruption in operation and can be scaled according to different data processing magnitudes both in terms of participating system components and in terms of data quantities or system complexity. Advantageous further developments of the invention are described in the sub-claims. Preferably, a function module receives at least one input value when called, and forwards an output value following the completion of the function. Here the input- and output values are preferably assigned specific names, the name of the input value of a function module corresponding to the name of the output value of a preceding function module in the process flow. The input- and output values are preferably temporarily stored in a hash table and are addressable under the given name. In this way a secure and verifiable transfer of parameters from one function module to the next can be ensured. The control modules, which specify the sequence of individual function modules in a process flow description, can define a plurality of process sequences, in particular also non-linear process sequences. Preferably, a start module is provided for defining a start point of a process flow (of a process flow description) , the start module being assigned a specific name with which the process flow description is addressable, optionally also as sub-module. Preferably, control modules are provided for further process flows, such as conditional branches, jumps (with and without return) , integration of two process flows and process end. To create a process flow, i.e. to reproduce a business process as a flow of data processing operations, the user defines the sequence of function modules and control modules for the desired process flow. Here the function modules can be arbitrarily varied by the user, while the control modules have a standardized structure. The assembly of a process flow description from function- and control modules preferably takes place via a graphic user interface. In this case a flow check of a new or modified process flow description can be performed, in which the names of the output values of the function modules are checked for conformity with the names of the input values of the respective following function modules. The process flow description concept permits the modification or adaptation of process flows without interruptions in operation. While the previous process flow description is still stored in the data processing system and is available for use, the new process flow description is created, and optionally checked, via the graphic user interface. A change to the new process flow description can take place without time loss and initially without erasure of the previous process flow description. The invention also proposes a computer program comprising: an interface for receiving external and/or internal data processing requests for the execution of a data processing process, function modules for executing data processing operations in a data processing system, control modules for specifying links between the function modules, process flow descriptions for defining a process flow by means of a sequence of function- and control modules, and a processor unit for calling function modules and control modules in accordance with a process flow defined by a process flow description . In accordance with a further aspect of the present invention, a server computer for use in a computer network is proposed comprising: an interface for receiving a data processing request or the execution of a data processing process, a memory for storing function modules for specifying preconfigurable data processing operations in the computer network, a memory for storing control modules for specifying links between the function modules, a memory for storing process flow descriptions which define a process flow by a sequence of function modules and control modules, a control processor for selecting and calling a process flow description in accordance with the received data processing request and for executing the data processing process by calling the sequence of function modules and control modules defined by the process flow description . In the following the invention will be explained in detail by way of an example in the form of preferred exemplary embodiments making reference to the attached drawings in which: Figure 1 is a schematic illustration in explanation of the mode of operation of the present invention; Figure 2 is a schematic illustration of an example of a hardware configuration in which the invention can be employed; Figure 3 is a schematic illustration of procedural steps according to the present invention; Figure 4 is a schematic illustration of the storage of input values and output values of the function modules in the hash table; Figure 5 is a schematic illustration of an example of a process flow description according to the invention; Figure 6 illustrates another example of a process flow description configuration according to the invention and Figure 7 illustrates a process flow description configuration, shown in simplified form, for executing an order via the internet. The method and computer program according to the invention for controlling data processing operations in a data processing system will be explained in the following making reference to the attached drawings. Figure 1 is a schematic block diagram in explanation of the mode of operation of the method according to the invention. A processor 10 is connected to a client 12 via an input/ output unit 11 by means of a suitable network such as for the example the internet. The client can consist of a home PC or another terminal such as a mobile telephone with internet connection or the like. Naturally the processor 10 can be connected via the internet to an arbitrary number of clients or also other server computers. The processor 10 constitutes the central control unit for controlling the data processing operations in the data processing system. This consists of physical and logic system components (hardware and software) connected to one another via a medium suitable for the data transmission. The hardware configuration is schematically illustrated in Figure 2. A server 70 is connected via a data transmission medium, such as the internet, to a client 72 and also to a further server 71, for example a supplier. An essential feature of the present invention consists in that the data processing is not bound to a specific hardware configuration, but data processing operations running in different, spatially separate system components are controlled centrally by means of the processor 10. The processor 10 thus is to be understood not as a hardware component but as a control program which controls the cooperation of different physical and logical system components communicating with one another. The flow plan of a specific data processing operation is in each case specified in a process flow description 100. These descriptions are stored in a memory 20. A process flow description 100 is composed of a plurality of function modules 101 and control modules 102. A memory 30 is provided for the function modules and a memory 40 for the control modules. A function module is a self-contained, machine-readable program for executing a specific function, for example for executing a numeric calculation or for generating a print-out. The type of function of a function module will depend upon the desired concrete purpose of the application. The function modules require input values in order to execute the function and generate output values following the execution of the function. These values are in each case stored in a so-called hash table 50, as will be explained in detail later with reference to Figure 4 . As the relationships between the individual system components of the data processing system are not defined directly but via the function modules, it is unnecessary for each system component to be adapted in its relationship to the others in order to change the configuration of the system. The time outlay required to adapt communications protocols and interfaces can thus be substantially reduced. Here it is immaterial whether the system components are spatially separate from one another. To be able to modify the functionality of the data processing system by the addition, alteration or replacement of execution steps, individual function modules can be added, exchanged or replaced as described in detail later in the description. To construct a complex data processing process from the individual execution steps defined by the function modules, the function modules must communicate with one another. This is facilitated via a so-called hash table. Both for its input values and for its output values, each function module has names which are listed in the hash table 50 which is created when a specific function module is called (see Figure 4) . During the process flow each function module again stores its output values under the corresponding names in the hash table 50. A following function module in the process flow has the same names for its input values. It searches for these names in the hash table 50, accepts the values stored thereunder by the preceding function module as its input values, and executes a specific function. The hash table is erased following the completion of the entire process flow at the end of the process flow description. In addition to the function modules, a process flow description also comprises control modules which specify the linking between the function modules. Whereas the function modules can be configured according to the user's requirements, the control modules have a standardized structure which ensures the executability of a process flow description. In principle, the control modules represent the nodal points via which the function modules can be linked. They define the start, course and end of a process flow. In particular they enable process flows to be connected by linking of the function modules provided therefor. The control modules are likewise implemented in machine-readable form. Some important types of control modules will be defined in the following. However it should be noted that the invention is in no way limited to the types of control modules described here, but it rests with those skilled in the art to define suitable control modules according to their requirements. Start Module Each process flow description has a start point at which the execution of a process flow commences. Each start point has a name which is used to call the corresponding process flow description; in the example shown in Figure 5 the two start points have been provided with the names "PAB 1" and "PAB 2". Upon an external data processing request, the client preferably calls a URL containing the name of the process flow description, whereby the corresponding process flow is started. Naturally the location at which a data processing operation is performed can change again in the course of the execution of a process flow description. The start module can also specify which parameters are required for calling the process flow description and which optional parameters are available. A process flow description can also have two start points, as illustrated in Figure 6. End Module Each process flow also has one or more end points. An end module ends the execution of a process flow description. If a process flow description has been called as a subroutine, the execution returns to the main process at the end point (see pipeline 2 in Figure 5) . Decision Module A decision module (decision node) has the function of causing the process to proceed differently in dependence upon the input values, thus for example of selecting between two system components to be included in the further execution of the process. The function of this control module corresponds to a "if-then-else" branch in a computer program. If for example a transferred parameter value is below a threshold value, a first process course is selected, whereas if the value is above the threshold value a second process course is selected. A decision module 203 is schematically illustrated in Figure 5 by a rhombus containing a question mark. Integration Module The integration module is the counterpart to the branching module and integrates two process flow branches to form one, such as for example the branches PAB 1.1 and PAB 1.2 in Figure 6. Call Module The call module is a control module which calls a different process flow description as sub-program and returns to the original process flow following the execution of the called process flow description. The function of this control module corresponds to the programming command "go sub". Figure 5 illustrates the call control module 207 which calls the process flow description 2. At the end point of the process flow description 2, the execution of the process returns to the originating point. Jump Module This control module executes a ump to a start point of another pipeline without returning to the originating point. Its function corresponds to the programming command "go to". This is shown by way of an example in Figure 6 in which the jump module 225 "jump P2" initiates a process flow ump to the process flow description 2. Interaction Module The interaction control module is used to provide the possibility of interaction with a user within a process flow, i.e. the input of data by activation of an input unit. Data previously stored in the hash table are used for the visualisation. The input data are then likewise stored in the hash table. Examples of possible process flow descriptions will be explained in the following with reference to Figures 5 to 7. Figure 5 shows a process flow description 1 commencing with the start module 201 with the name "PAB 1" which is followed by a function module 202 "function module A". After a branching module 203 the process then proceeds either to the function module "function module B" or to the call control module 207 "call PL2" with which the process flow description 2 is called. This comprises the two function modules 212 "function module D" and 213 "function module E", following the execution of which the process returns to the control module 207 and then the function module 208 "function module C" is executed, whereupon the processing ends with an end module 209. Figure 6 shows a first process flow description with two start points 220 "PAB 1.1" and 221 "PAB 1.2" which converge in an integrating module 224. Then the process flow description comprises a jump module 225 "jump P2" which initiates a jump in the process to the start module 226 of the process flow description 2. The mode of operation of the method according to the invention will now be explained with reference to Figure 2 and Figure 7 which illustrates the example of a simplified order process flow description. Firstly, in a step S2 (Fig. 3) the processor 10 receives a data processing request to execute an order, for example from a client- computer connected via the internet. The processor 10 selects the associated process flow description from the stored process flow descriptions and executes the individual function modules in accordance with the stored description by accessing the corresponding memories of the function modules and control modules. Simultaneously to the calling of the start module, the hash table 50 is created which facilitates the communication between the function modules and control modules. After the start module 240 the processing proceeds to the decision module 241, where it is checked whether the subscriber is already registered. If so, the processing continues to the integrating module 244. If no registration exists, the call module 242 calls the process flow description "PL registration " with the start module 270. By means of the interaction module 271 the user can make the inputs required for the registration, such as name, address etc. These values are stored in the hash table. The following function module 272 reads out the values from the hash table as its input values and performs the registration. After the end module 273 the processing returns to the process flow description "order", whereupon the registration is checked again in the decision module 243. If the registration was unsuccessful, this is displayed to the user in the function module 246 and the process flow is ended with the end module 247. Otherwise the processing continues via the integrating module 244 to the order module 250 which displays a virtual order catalogue or the like from which the customer can select goods. The products are assigned IDs which, via the hash table, are further processed or forwarded by the following function modules. The processing then proceeds to the function module 251 which establishes a connection to an external server (not shown) which performs the price calculation and sends back the result. The following decision module 252 enquires whether the user cancels the order or not. If cancellation takes place, the operations which have been performed are erased, with the exception of the registration, by the function module 255 and the processing ends with the end module 256. If the order is confirmed by the user, the call module 253 calls for the execution of the order, which can take place in external servers (see server 71 in Figure 2) of different suppliers. Here the required data are again transferred by means of the hash table. The process flow descriptions for the execution of the order have not been shown in Fig. 7. Following the execution of the order, the processing returns to the order process flow description and ends with the end module 254. Preferably, process flows can also be started in the background as a result of internal events. For example it is possible for an internal automatic device, such as for example a time circuit, counter or the like, to start specific process flows at regular intervals. Preferably, the data processing system according to the invention comprises a process flow description editor with a display unit for graphically representing the function modules and control modules of a process flow description. Via a graphic user interface, the process flow description editor also permits the modification of existing process flows and the generation of new process flow descriptions. The process flow description editor preferably also includes the option of formally checking a newly generated or modified process flow description, whereby the names of the output values of the function modules are checked for conformity with the names of the input values of the following function modules in the process flow. Thus the present invention facilitates the development of a control mechanism for complex and locally distributed data processing operations by means of preassembled modules, the function modules and control modules. The data processing operations can be easily adapted to new circumstances with no interruption in operation by replacing suitable function- and control modules in a user-friendly manner via a graphic user interface.

Claims: Claims 1. A method of controlling data processing operations in a data processing system, preferably consisting of a plurality of spatially separate system components communicating via a data transmission medium, comprising the following steps: reception of a data processing request for the execution of a data processing process, selection of a process flow description which defines the flow of the data processing process by a sequence of function modules and control modules and corresponds to the received data processing request, - execution of the data processing process by calling the function modules and control modules in accordance with the process flow description, wherein a function module is a self-contained unit for the execution of data processing operations in the data processing system and a control module specifies the links between the function modules. 2. A method according to Claim 1, wherein the function modules control data processing operations in a plurality of spatially separate data processing system components. 3. A method according to Claim 1 or 2, wherein a function module receives at least one input value when called and forwards at least one output value following its completion . 4. A method according to Claim 3, wherein specific names are in each case assigned to the input values and output values. 5. A method according to Claim 4, wherein a hash table is provided for the temporary storage of the input values and output values under their respective names. 6. A method according to Claim 5, wherein the name of the input value of a function module corresponds to the name of the output value of a preceding function module in the respective process flow. 7. A method according to one of Claims 5 to 6, wherein the hash table is erased following the completion of the process flow. 8. A method according to one of Claims 1 to 7, wherein a start control module is provided for defining a start point of a process flow. 9. A method according to Claim 8, wherein a different name is assigned to each control module defining a start point . 10. A method according to Claim 9, wherein the name of the process flow description is contained in a URL. 11. A method according to Claim 8, 9 or 10, wherein the control module defining a start point defines the parameters required for calling the associated process flow description module and/or optional parameters. 12. A method according to one of Claims 1 to 11, wherein the control modules have a standardized structure. 13. A method according to one of Claims 1 to 12, wherein control modules are provided which define a conditional branching of the process flow dependent upon a parameter value. 14. A method according to one of Claims 8 to 13, wherein control modules are provided for initiating a process flow jump to a start module with return. 15. A method according to one of Claims 8 to 13, wherein control modules are provided for initiating a process flow jump to a start module with no return. 16. A method according to one of Claims 1 to 15, wherein control modules are provided for initiating an integration of two or more process flows. 17. A method according to one of Claims 1 to 16, wherein end control modules are provided for defining the end of a process flow. 18. A method according to one of Claims 1 to 17, wherein control modules and function modules can be combined and modified by the user to form a process flow description. 19. A method according to Claim 18, wherein the configuration and/or modification of a process flow description can be performed by means of a graphic user interface . 20. A method according to Claim 18 or 19, wherein a flow check of a newly created or modified process flow description is performed, in which the names of the output values of the function modules are checked for conformity with the names of the input values of the respective following function modules. 21. A method according to one of Claims 1 to 20, wherein process flows are started by internal events. 22. A computer program comprising: an interface (11) for receiving an external and/or internal data processing request for the execution of a data processing process, function modules (101) for executing predefinable data processing operations in a data processing system, control modules (102) for specifying links between the function modules, at least one process flow description (100) for defining a process flow by means of a sequence of function- and control modules and a processor unit (10) for calling function modules and control modules in accordance with a process flow defined by the process flow description. 23. A computer program according to Claim 22, wherein a function module receives at least one input value when called and forwards at least one output value following its completion . 24. A computer program according to Claim 23, wherein specific names are in each case assigned to the input values and output values. 25. A computer program according to Claim 24, comprising a hash table for temporarily storing the input values and output values under their respective names. 26. A computer program according to Claim 25, wherein the name of the input value of a function module corresponds to the name of the output value of a preceding function module in the respective process flow. 27. A computer program according to one of Claims 22 to 26, comprising a start control module for defining a start point of a process flow. 28. A computer program according to Claim 27, wherein a different name is assigned to each control module defining a start point. 29. A computer program according to Claim 28, wherein the name of the start control module is contained in a URL for finding the process flow description. 30. A computer program according to one of Claims 22 to 29, wherein the control modules have a standardized structure . 31. A computer program according to one of Claims 22 to 30, comprising control modules which define a conditional branching of the process flow dependent upon a parameter value. 32. A computer program according to one of Claims 27 to 31, comprising control modules for initiating a process flow jump. 33. A computer program according to one of Claims 22 to 32, comprising a process flow description editor for arranging and modifying control modules and function modules to form a process flow description. 34. A computer program according to Claim 33, wherein the process flow description editor comprises a graphic user interface for displaying and modifying the process flow description . 35. A server computer for use in a computer network comprising: an interface (11) for receiving a data processing request for the execution of a data processing process, - a memory (30) for storing function modules for specifying data processing operations in the computer network, a memory (40) for storing control modules for specifying links between the function modules, a memory (20) for storing process flow descriptions which define a process flow by a sequence of function modules and control modules, a control processor (10) for selecting and calling a process flow description in accordance with the received data processing request and for executing the data processing process by calling the sequence of function modules and control modules defined by the process flow description. 36. A server computer according to Claim 35, comprising a storage device for temporarily storing a hash table (50) containing input values and output values of the control modules . 37. A server computer according to Claim 35 or 36, comprising a graphic user interface for creating or modifying process flow descriptions. 38. A computer program comprising program code for the execution of the procedural steps according to one of Claims 1 to 21.

Inventors: GESSNER FRANK, MALLWITZ CHRISTIAN, MUELLER ULRIKE, SCHAMBACH STEPHAN, GESSNER, FRANK, MALLWITZ, CHRISTIAN, MUELLER, ULRIKE, SCHAMBACH, STEPHAN
Applicants: GESSNER FRANK, INTERSHOP SOFTWARE ENTWICKLUNG, MALLWITZ CHRISTIAN, MUELLER ULRIKE, SCHAMBACH STEPHAN, GESSNER, FRANK, INTERSHOP SOFTWARE ENTWICKLUNGS GMBH, MALLWITZ, CHRISTIAN, MUELLER, ULRIKE, SCHAMBACH, STEPHAN
Application year: 2000
Main classification: G06F9
IPC codes: G06F9