Provisioning method and system

A method and system of provisioning one or more Network Elements, as well as a method and apparatus for resuming a failed Customer Service Order for provisioning one or more Network Elements, is disclosed. A provisioning logic framework receives a Customer Service Order CSO from a Business Support System, calls respective provisioning logic for performing said Customer Service Order and detects if the received Customer Service Order is a CSO to be resumed. During the performing time of said Customer Service Order, historical processing data is stored. If it is detected that the received Customer Service Order is a CSO to be resumed, the provisioning logic framework builds up a fake environment on the basis of historical processing data stored previously for the CSO to be resumed. Then the successful part of the CSO is directed to the fake environment and the uncompleted part of the CSO is directed to actual Network elements.

TECHNICAL FIELD

The present invention relates to a provisioning method and system, more specifically, to a solution for resuming a failed Customer Service Order for provisioning one or more Network Elements.

BACKGROUND

Provisioning is an important aspect in getting the network ready to serve the end users. It normally involves provisioning of multiple parameters, multiple nodes and the provisioning system needs to keep the data consistent.

A typical provisioning system works like the following:

A CSO (Customer Service Order) is sent from business support systems of the operator to the provisioning system. A CSO normally contains a bunch of parameters that can get one or more NEs (Network Elements) ready to support a certain service and enable the subscriber to use said service. Such a CSO would need to be provisioned into the network, where it might end up with provisioning of multiple NEs (Network Elements), with multiple request/response communications towards each of them.

In such a provisioning sequence it is very important to keep the completeness or consistency of the data, both within the same node or across multiple NEs, since the incompleteness and inconsistency of the data will result in the incapability of implementing the service. These are typical cases:Part of the subscriber data resides in multiple NEs and they need to be exactly the same, or they are related. These data is either in all places or they should be in some of them.In case of only one NE is provisioned, there might be multiple requests sent and each with part of the data. The business support systems would like to have the whole CSO completed.

The traditional solutions for the completeness/consistency problem include:Retrying by storing the uncompleted commands, i.e. the uncompleted part of the CSO. If a command fails in the middle, typically due to the NE is not available because of e.g. link failure, the command that failed together with all the ones following that will be stored in a queue to be executed later.Rollback previous commands. The commands that have been successfully executed which impacts the consistency of the subscriber data will be rolled back, to remove inconsistency.

However, said existing solutions are both problematic. A CSO might end up with multiple commands towards one or more NEs. The generation of the commands might be dependent on the status of NE itself. For example you need to do a “Read” command to read the status of the NE from the NE before you know how to generate and execute the next “Modify” command. This means that the generation very often needs to be done by some logic/code dynamically not static.

Then for the retrying approach above by storing the not executed commands, it would need to predict for the commands that are left upon the failure. This is very often not possible to be done successfully, especially in scenarios with a complex logic or when interactions (e.g. read) with NE is mandatory.

Rollback tries to solve the inconsistency immediately, compared with retry approach by trying to fix it later, by undoing what has been successfully done and reverting to the previous state. The problems with this one is the rollback scenarios might be many, especially for a complex logic, and rollback can fail too probably where the CSO has just failed, then you will get stuck. For example, if a “create subscriber” command fails and the subsequent rollback also fails in the middle, then you can't move forward by either trying to create again (because part of it already exists and creating a new one with the existing part remaining will result in inconsistence) or delete (because part of it has not been created yet, the delete won't succeed).

SUMMARY

It is the object of the present invention to solve at least some of the above problem and provide a new mechanism to solve the data consistency issues via resuming the previously failed provisioning attempt.

According to one aspect of the present invention, there is provided a method of provisioning one or more Network Elements. Said provisioning method comprise steps of receiving a Customer Service Order CSO from a Business Support System and calling respective provisioning logic for performing said Customer Service Order. The method further comprises the step of detecting if the received Customer Service Order is a Customer Service Order to be resumed or not. If it is detected that the received Customer Service Order is a Customer Service Order to be resumed, the provisioning method further comprises steps of: directing the successful part of the Customer Service Order to a fake environment which is based on historical processing data stored for the Customer Service Order, and directing the uncompleted part of the Customer Service Order to actual Network elements.

Preferably, the historical processing data is stored as log data.

Preferably, said provisioning method further comprising the step of generating at least one provisioning command from the received CSO and executing said at least one provisioning command.

Preferably, the successful part of the CSO comprises the successfully executed provisioning commands.

Preferably, the historical processing data comprises the successfully executed provisioning commands and corresponding responses.

Preferably, the step of directing the successful part of the CSO to the fake environment comprising the steps of retrieving the stored response corresponding with the command that was previously successfully executed and forwarding the retrieved response to the provisioning logic.

Preferably, the provisioning method further comprises the step of storing the Customer Service Order.

Preferably, the provisioning method further comprises: if the Customer Service Order is performed successfully, marking the Customer Service Order as completed, otherwise, marking the Customer Service Order as failed.

Preferably, the provisioning method further comprises the step of automatically resuming/retrying the CSO marked as failed.

According to another aspect of the present invention, there is provided a method of resuming a failed Customer Service Order CSO for provisioning one or more Network Elements. Said resuming method comprises steps of calling a provisioning logic for performing said Customer Service Order, directing the successful part of the Customer Service Order to a fake environment which is based on historical processing data of said Customer Service Order, and directing the uncompleted part of the Customer Service Order to actual Network elements.

According to yet another aspect of the present invention, there is provided an apparatus for resuming a failed Customer Service Order CSO for provisioning one or more Network Elements. The resuming apparatus comprises means for calling a provisioning logic for performing said Customer Service Order, means for directing the successful part of the Customer Service Order to a fake environment which is based on historical processing data of said Customer Service Order and means for directing the uncompleted part of the Customer Service Order to actual Network elements.

According to still another aspect of the present invention, there is provided a provisioning system. The provisioning system comprises a provisioning logic framework adapted to host at least one provisioning logic, the provisioning logic framework is operable to receive Customer Service Order CSO from a Business Support System, communicate with one or more Network Elements NEs and detect whether the received CSO is a CSO to be resumed; and a memory for storing the historical processing data regarding said Customer Service Order. The provisioning system further comprises the resuming apparatus as defined above for resuming a Customer Service Order detected to be resumed.

According to still another aspect of the present invention, there is provided a computer program product. The computer program product comprises program instructions, when loaded by a computer machine, operable to cause the computer machine to perform the provisioning or resuming method as described above.

By means of the above technical solutions, the present invention overcomes the problems in the prior art resuming solution. The traditional approaches of handling the consistencies (retry by queuing and rollback described above) need to make the provisioning logic aware of all scenarios that could cause consistencies. This might grow quite complicated for solutions with complex subscriber data relations. And the solution is specific for each NE provisioning solution built (e.g. IMS, core network, messaging). With the solution according to the present invention, one can get a generic framework and free the provisioning logic from such consistency issues, so that it can be simplified and focus on the normal provisioning flow.

In this way, the designer of the provisioning logic need not consider the generic issues such as consistency issues. Therefore, the design of the provisioning is significantly simplified and the corresponding design cost is also decreased significantly. At the same time, the present invention provides the possibility of configuring different provisioning logics in one provisioning logic framework or platform as desired. The present invention can add/remove freely a provisioning logic into/from the provisioning system and hence decreases the total deploying cost of the provisioning system.

Therefore, the present invention brings decreased development cost significantly for each specific provisioning solution. At the same time, the invention is more robust against the failure of the CSO, hence the subscriber data in the operator's network is kept more consistent, getting rid of a lot of troubles for the operator brought by data inconsistencies.

Throughout the figures, same reference numerals indicate similar or corresponding features. Some of the features indicated in the drawings are typically implemented in software, and as such represent software entities, such as software modules or objects. But the invention is not limited thereto. Said features can also be implemented in hardware, firmware or any combination of software, hardware and firmware.

DETAILED DESCRIPTION

The inventor recognizes that the provisioning system can be divided into 2 layers, a general provisioning logic framework and provisioning logic. The provisioning logic framework hosts the provisioning logic and provides a common environment or platform for provisioning logic execution.

The inventor also recognizes that various tasks the provisioning system takes on can be divided and be partaken of by the provisioning logic framework and the provisioning logic, respectively. The provisioning logic framework can take on the general transactions common to various provisioning logics so that the provisioning logics need not consider the general transactions which will complicate the design and can be dedicated to the specific provisioning tasks.

The aforementioned general transactions include, among other things, to keep the completeness or consistency of data and resume from failure. One or more embodiments herein address the completeness/consistency problem by building up a “fake” environment for the provisioning logic. This fake environment may be built, for example, by using the historical processing data. Historical processing data may include, for example processing log which has been stored for the previous failed CSO. In the “fake” environment, transactions for resuming from the failure are processed by the provisioning logic framework and are kept transparent to the provisioning logic. In this way the provisioning logic does not need to be aware of the failure, it just does the normal provisioning flow as if no failure occurs. That is, the failure recovery mechanism may be omitted from the provisioning logic. The provisioning of that CSO can be resumed by the provisioning logic framework using the aforementioned fake environment.

FIG. 1schematically illustrates a block diagram of the provisioning system200according to one embodiment of the present invention. As illustrated inFIG. 1, the provisioning system200is coupled to a Business support system300and one or more Network Elements, NE1-NEn,101-10n. Said Business support system300is a dedicated system for managing and configuring the services supported in the network and said Network Elements NE1-NEn refer to all devices or system in the network that are needed for providing a certain service to the end users. That is, said Network Elements NE1-NEn represent all necessary units for supporting the service. It is noted that said coupling can be wired or wireless. Said coupling can also be direct coupling or indirect coupling in which there is at least one intermediate node. The present invention applies to various coupling and it is not intended to limit the present invention in this respect.

The provisioning system200comprises a provisioning logic framework400adapted for hosting various provisioning logics700, a log database500for storing historical processing data regarding the CSO execution and a CSO database600for storing the received CSO.

The provisioning logic framework400hosts the provisioning logic700and can create a “fake” environment for the provisioning logic700in order to resume previously failed provisioning

At the beginning of the provisioning process according to the present invention, the provisioning system200(or the provisioning logic framework400) receives Customer Service Order CSO from the Business support system300and provisions said one or more Network Elements, NE1-NEn,101-10nwith the received CSO. Therefore, the provisioning system200(or the provisioning logic framework400) comprises communicating means (not shown) for communicating with the Business support system300and one or more Network Elements, NE1-NEn,101-10non behalf of provisioning logic700. Then the provisioning logic framework400calls hosted corresponding provisioning logic for performing said received CSO and detects whether the received CSO is a CSO to be resumed. The called provisioning logic700generates one or more commands based on the received CSO. The provisioning Logic Framework400records all the commands and response in the log database500along with the relevant parameters and the execution status of each command. Note that it is also feasible to store the historical processing data in other storage media. But it is advantageous to use the log database500storing the logging data in the provisioning system200since the existing provisioning system often has such function and such implementation will bring less alternation to the existing provisioning system. The CSO database600stores the orders from Business support systems300. This is needed if the business support systems300don't want to send the CSO again, then the provisioning system can retrieve it and automatically resume/retry it intermediately after the CSO fails.

If it is detected that the received CSO is a CSO to be resumed, the provisioning logic framework400will build up a fake environment for executing the previously successfully executed commands of said CSO. Otherwise, no fake environment will be built up. In both case, the provisioning logic700executes the generated commands in the same manner and always considers the generated commands to be generated from a new CSO, without being aware of any failure. In the fake environment, the provisioning logic framework400retrieving historical processing data from the log database to get all information about the successful executed command, including request for execution of the command, relevant parameters, response to the command and the like. With all these historical processing data, the provisioning logic framework400receives request from the provisioning logic700and ignores the request, forwards the retrieved response, perhaps along with necessary parameters or status, to the provisioning logic700. The reason why the actual Network Elements, NE1-NEn,100-10ncan be excluded from this process is that this process has been previously executed successfully by the actual Network Elements, NE1-NEn,100-10nand need not be performed once again. For the provisioning logic700, the provisioning logic framework400pretends to be the actual Network Elements, NE1-NEn,100-10nand interacts with the provisioning logic700.

The important point is the provisioning logic700is not impacted and even not aware of the resumed provisioning solution. It is the provisioning logic framework400that supports the fake environment. According to one embodiment of the present invention, the provisioning logic framework400comprises various modules responsible for various functions that are common to a plurality of provisioning logic and can be implemented in the provisioning logic framework400. For example, the provisioning logic framework400may comprise a resuming apparatus dedicated to the resuming issues.

Although the log database500and the CSO database600are illustrated as two separate databases, they can be comprised in one single database or distributed across a plurality of databases when needed. Although the term “database” is used herein, it can be implemented by all kinds of storage media which can be used to store the desired information and which can accessed by a computer, including, but not limited to, volatile and non-volatile, removable and non-removable media implemented in any method or technology.

Below, the sequence of operations and steps will be described with reference toFIG. 2-6in detail.

FIG. 2schematically illustrates a flow diagram of the provisioning method according to the present invention. The provisioning method starts at step S1, where a CSO is received by the provisioning system200from the Business support system300, and is passed to the provisioning logic framework400. Alternatively, the CSO is received directly by the provisioning logic framework400itself. Preferably, the CSO is stored in the CSO database600during step S1. Then at step S2, the provisioning logic framework400calls corresponding provisioning logic700for performing said received CSO and the called provisioning logic700generates a few provisioning commands based on the received CSO. At step S3, the provisioning logic framework400detects whether the received CSO is a CSO to be resumed. This should have been marked in the CSO. If the received CSO is not a CSO to be resumed, then the process proceeds to step S4, where the provisioning logic framework400fetches a command from the previously generated commands. Then at step S5, the provisioning logic framework400directs request and relevant parameters (if any) regarding the fetched command to actual Network Elements, NE1-NEn,100-10n, i.e. requesting NE1-NEn100-10nto execute the fetched command and to return a corresponding response. At step S6, the actual Network Elements, NE1-NEn,100-10nexecute the fetched command and return the corresponding response to the provisioning system200. Then at Step S7, the request including executed command and relevant parameters are stored in the log database500along with the corresponding response. After step. S7, the process proceeds to step S8, where it is determined if the CSO is completely performed. That is, it is determined whether all commands of the CSO have been executed. If the answer is “YES”, it means that all commands of the CSO have been executed and the process proceeds to step S13where the response is sent to the Business Support System300and the provisioning method ends. However, if it is determined, at step S8, that there are still commands remaining unexecuted, the process returns to step S4at which a next command is fetched and the procedure proceeds in the similar way as above.

If, at step S3, the received CSO is detected to be a CSO to be resumed, the process proceeds to step S9. At step S9, the provisioning logic framework400builds up a fake environment for executing the generated commands. Then at step S10, the provisioning logic framework400fetches a command from the previously generated commands. Then at step S11, it is determined whether the fetched command of the resumed CSO was previously executed successfully. This can be done by checking the log database500. If it has been executed successfully, then at step S12, the provisioning logic framework400directs the request to the fake environment built up. More specifically, the provisioning logic framework400receives the request from the provisioning logic700being executed and retrieve the corresponding response from the log database500, perhaps along with relevant parameters or status information required by the provisioning logic700. Then the response is forwarded to the provisioning logic700. That is, the provisioning logic framework400or the fake environment built up thereby pretends to be the actual Network Element and return the response required by the provisioning logic700. In this way, execution of said command is completed as usual in the view of the provisioning logic700. Then the process returns to step S10to fetch and execute the next command of the resumed CSO as above. If, at step S11, it is determined that the command has previously failed, then the process proceeds to step S5, where the provisioning logic framework400directs the fetched command to actual Network Elements, NE1-NEn,100-10n. Then the process continues as described above until all commands of the resumed CSO are executed successfully. If all commands of the resumed CSO have been executed, the process proceeds to step S13, where a response is sent to the Business Support System300and the resumed provisioning method ends.

Note that even the above the provisioning method might fail due to any kind of failure. If the provisioning method fails at any one of steps S1-S13, the method ends at once and report errors to the provisioning system. Then in order to resume the provisioning, one need only restart the above provisioning method according to the present invention.

Such a solution does not really care what is implemented inside provisioning logic, it can even be doing rollback. Then the resumed provisioning will continue whatever it was doing: rollback for example.

Note that the order of method steps is not necessarily as above. Those skilled in the art appreciate that the above order can be changed as desired, unless otherwise specifically indicated. For example, the detection step may be performed before the step of calling provisioning logic. In addition, the operation of generating provisioning commands sometimes will be performed in step S4since the generation of certain commands relies on the result of the previous commands. More generally, the operation of provisioning logic700can be distributed differently from the above since the present invention does not really care what is implemented inside provisioning logic and the above flow diagram is illustrated and described in the perspective of the provisioning logic framework400.

FIG. 3shows a typical application scenario of the invention, in which one NE is provisioned with several commands. In this scenario, the provisioning logic700generates a few provisioning commands to one Network Element100. There can be inconsistency for the Network Element100if one or several commands executed successfully but the left ones are not executed due to failure.

As illustrated inFIG. 3, the provisioning system receives one Create User CSO from Business Support System300. In an alternative embodiment, the CSO may have been stored in the provisioning system200, i.e. in the CSO database600, and does not need receiving from the Business Support System300. In order to create the user on the Network Element100, at least one command need to be generated from the CSO. For example, two commands are generated, i.e. one command1for creating a Subscriber Service Profile for the User and another for creating the Subscriber which will refer to the service profile. If the first command succeeds but the second one fails, data inconsistency will exist in the Network Element100as the Subscriber Service Profile is created for the subscriber not existed in the system.

With the provisioning resuming solution according to the present invention, the Provisioning Logic Framework400will retry the Create User CSO, automatically (requiring that the failed CSO is stored in the provisioning system200along with corresponding historical processing data) or after receiving again the CSO and detecting that it is to be resumed, the provisioning logic runs as normal without knowing that it has been run for the same CSO as before. When the first Create Subscriber Service Profile command1′ is generated by the provisioning logic700, the Provisioning Logic Framework400detects that this command1′ belongs to a “resumed” CSO, and will check the log database500to see if the command has already been successfully executed. In this is case, it is yes, then the Provisioning Logic Framework400will get the response in the historical processing data from the log database500and forward it to the provisioning logic700. The provisioning logic700gets the response and continues processing without knowing the Create Subscriber Service Profile command is not really executed at all. Then the second command Create Subscriber2′ is generated, the Provisioning Logic Framework400again detects that this command2′ belongs to a “resumed CSO” and checks the log database500to see if the command has already been successfully executed. This time the command2′ was failed, so the Provisioning Logic Framework400will direct it to the NE. Then the Create Subscriber command2′ will be executed in the Network Element100and the Subscriber will be created. This time, the Subscriber is created successfully in the Network Element100and hence the user is successfully created with the created Subscriber referring to the created Subscriber Service Profile. That is, the CSO is performed completely and the provisioning method is resumed successfully.

The above CSO is just an example for purpose of illustration. Other kinds of CSOs are also possible. The number of commands generated from the CSO is not limited to two, it may be one, three, four, five or more. The present invention can be applied regardless of the number.

FIG. 4shows another typical application scenario of the invention, in which the present invention provisions across multiple Network Elements. This is the most typical use of the resumed provisioning solution according to the present invention. As illustrated inFIG. 4as an example, Business support system300sends a Create User CSO to Provisioning System200. In order to complete the provisioning, in this example, three Network Elements, NE1-NE3,100-103will be involved in three steps:

Step 1: Create the User as a Subscriber in NE1100

Step 2: Activate the presence service for User in NE2102

Step 3: Add the telephone public Id of the User into NE3103in order to make the user to be accessed via telephone

In the example illustrated inFIG. 4, the first two steps are successfully executed and the third step fails perhaps due to the failure of NE3103. Therefore, all commands and responses in the first two steps have been stored in the log database500. When the CSO is retried, all previous successful commands to NE1and NE2will be “intercepted” by the Provisioning Logic Framework400in the same way as above. The historical processing data stored in the log database500is also used to give the provisioning logic700a fake response1′,2′. This will make sure provisioning logic700does not need to be modified and still continue as if it is executing a new CSO rather than a resumed one.

When it comes to the point where it failed in previous execution, i.e. in the third step 3, it continues as normal since the commands3′ in this stage are directed to the actual Network Element NE3103. In this way, the CSO is performed completely and the provisioning method is resumed successfully.

In another application scenario, the present invention handles rollback failure. In order to ensure data consistency, some of provisioning logics themselves support rollback when there is provisioning failure. According to one embodiment of the present invention, the Provisioning Logic Framework400can handle scenarios where such a rollback procedure fails and resume the rollback procedure in a similar way as for a normal provisioning procedure. In this way, the rollback procedure can continue from wherever it fails. By completing the rollback, it removes the potential inconsistencies and reverts the network state to the original one.

FIG. 5andFIG. 6illustrate the more specific sequence of a typical scenario for provisioning across multiple Network Elements. Due to the big amount of steps, it is grouped into 2 big steps. The first step describes the normal provisioning, which is illustrated inFIG. 5. The second one describes the retry CSO and resume provisioning, which is illustrated inFIG. 6. For the purpose of simplifying the illustration and explanation, there are only two Network Elements NE1-NE2101-102illustrated in the figures. But the present invention is not limited to it. From the teaching of the present disclosure, those skilled in the art can easily extend the two Network Elements to more Network Elements without involving any inventive efforts.

FIG. 5shows the sequence diagram of the normal provisioning method, in which there is failure occurring and the CSO is performed unsuccessfully. FromFIG. 5, we can obviously see the timing sequence of the provisioning method. The provisioning method works as follows:

1. Business Support System300sends out a CSO for provisioning.

2. Provisioning Logic Framework400receives the CSO and calls the corresponding provisioning logic700.

3. The provisioning logic700generates a command and send the command to the Provisioning Logic Framework400to execute on NE1100.

4. The Provisioning Logic Framework400detects the command and determines that it is not generated from a “resumed” CSO. Alternatively, the detection may have already been done on the received CSO.

5. The Provisioning Logic Framework400sends the command to NE1100.

6. The NE1100executes the command and returns a successful response to the Provisioning Logic Framework400.

7. The Provisioning Logic Framework400records the command and response to log database500as historical processing data.

8. The Provisioning Logic Framework400forwards the response to the Provisioning Logic700.

9. The Provisioning Logic700gets successful response from NE1and continues processing to generate the second command to NE2102.

10. The Provisioning Logic Framework400detects the command and determines that it is not generated by a “resumed” CSO.

11. The Provisioning Logic Framework400sends the command to NE2102.

12. The NE2102executes the received command. This time the NE2102fails to execute the command and returns a failed response.

13. The Provisioning Logic Framework400records the command and response to log database500as historical processing data.

14. The Provisioning Logic Framework400forwards the response to the Provisioning Logic700.

15. The Provisioning Logic700gets the failed response from NE2102and aborts the processing and generates an error response.

16. The Provisioning Logic Framework400detects the error response, and stores the failed CSO into the CSO database600. This step is needed if the Business support system300does not resend the CSO.

17. The Provisioning Logic Framework400informs the Business Support System300about the error.

FIG. 6shows the sequence diagram of the method of retrying the failed CSO ofFIG. 5and resuming the provisioning according to one embodiment of the invention. The resuming procedure is as follow:

1. Either Business Support System300resends the CSO or after a certain period (configurable) the Provisioning Logic Framework400gets the failed CSO from CSO database600.

2. The Provisioning Logic Framework400calls again the corresponding provisioning logic700and re-sends the CSO to the provisioning logic700with the CSO marked a “resumed” flag.

3. The provisioning logic700will start normal processing without knowing that this CSO has been processed before and generate the first command to NE1100.

4. The Provisioning Logic Framework400detects that this is a resumed CSO and checks the log database500to see if the command has been successfully executed or not. In this case, the answer is “yes”.

5. Since the command was successfully executed, the Provisioning Logic Framework400will check the log database500for the previous responses from NE1100. No command will be actually sent to NE1100.

6. The Provisioning Logic Framework400forwards the response to the Provisioning Logic700.

7. The provisioning logic700gets the response without knowing that the response is from the log database500and continues the processing. The second command is generated to provisioning NE2102.

8. The Provisioning Logic Framework400detects that this is a resumed CSO and checks the log database500to see if the command has been successfully executed or not. In this case, the answer is “no”.

9. Since the command was not successfully executed, the Provisioning Logic Framework400will send actually the command to NE2102to execute again.

10. The NE2102executes the command and returns a successful response.

11. The Provisioning Logic Framework400records the command and response to the log database500as historical processing data.

12. The Provisioning Logic Framework400forwards the response to the Provisioning Logic700.

13. The provisioning logic700gets the successful response from the NE2102and completes the processing for the NE2102.

14. The Provisioning Logic Framework400detects the successful response and marks the CSO as completed in CSO database600.

15. A notification of successful execution is sent to the Business Support System300. This step is optional.

Above, the invention is described in connection with the specific embodiments of the invention. It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims.

In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. The invention can be implemented by means of hardware comprising several distinct elements, and by means of a suitably programmed computer.

In device or system claims enumerating several means, some or all of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.