Transactions as billable service units
Our transaction concept is also used to attain the goal of charging users per transaction. In contrast to traditional billing for computing resources using one-time (for example, software licensing) or periodical payments (for example, software or website subscriptions) our cloud-based time-limited transaction manager opens up the possibility to charge users per individual transaction successfully run.
As depicted in detail in Figure 12, each transaction run on our cloud-based time-limited transaction manager might have an associated cost, measured using a system of credits defined by our transaction manager (in order not to depend on currency conversions while running transactions). Whenever a transaction is started successfully, the individual user (or a group the user belongs to) will be charged: that is, their current balance will be reduced by the amount of the cost of the transaction.
If there is not enough balance available to pay for the cost of a specific transaction, the corresponding '…Allow' call will fail, returning a specific error code to inform the caller. Users can be assigned new balance through calls to the 'UserBalanceAddAllow' and 'UserBalanceAddCommit' APIs or have balance transferred from other users by means of the 'UserBalanceTransferAllow' and 'UserBalanceTransferCommit' API calls.
In case the paid transaction does not complete successfully, the amount charged is reimbursed to the payer, as part of the transaction deletion process. Waiting until success for charging is not an option, as one user can start as many simultaneous transactions as he likes (which could sum up to an amount greater than his balance).
It is possible to define free (zero-cost) transactions as part of a specific solution, but solutions which do never charge their users are not allowed on our cloud-based time-limited transaction manager's public implementation.
Spending of credit by users can be limited in time by means of calls to the 'UserExpenseLimitAllow' and 'UserExpenseLimitCommit' APIs. The 'UserExpenseLimit…' transaction defines a maximum amount of credit to be spent during a time period – this concept is similar to vehicle speed limit on roads (maximum distance, instead of credit expense, per time period).
While users are charged for running transactions defined as part of specific solutions, the solution's owner gets paid a percentage of the revenue generated by running these transactions on our cloud-based time-limited transaction manager.
US Patent Requested