If, on the other hand, the found provider only of-
fers a tentative hold to the client, then the client’s ac-
tion depends on the risk they are willing to take. If
the client is willing to have this service succeed with
a possibility that the other actions in the transaction
fail, then they complete this order immediately, and
then attempt the other actions. Successful comple-
tion of the other actions means a successful comple-
tion of the entire transaction. Failure of the other ac-
tions, however, means that the transaction fails and
the client cannot cancel its completed order with the
provider without a penalty.
The final case is where the found provider offers
a tentative hold, and the client is willing to have the
other actions complete successfully while the order
for this service fails. Once the client has the ten-
tative hold on the resources, it attempts to complete
the other actions. If these fail then the client re-
leases its tentative hold and the transaction fails with-
out penalty. However, if the other actions complete
successfully then the client attempts to finalise the or-
der. As long as the tentative hold is still valid then
this will be successful, resulting in a successful trans-
action. However, it is possible for the tentative hold
to become invalid while waiting for the other actions
to complete. If this occurs, the client can attempt to
find the resources from another provider, but if this is
impossible the transaction will fail with the other ac-
tions having been completed successfully. If the other
actions are not undoable, this will result in a partially
completed transaction, which may mean a penalty for
the client.
To ease the burden on the client, the above logic
can be moved into an abstract service (Sch
¨
afer et al.,
2007). Each of the three competing providers is reg-
istered with the abstract service, and clients then send
their requests to this service rather than to any of the
providers individually. The abstract service then takes
the responsibility for finding an appropriate provider
for any booking or tentative hold request. In particu-
lar, in the event that the abstract service has a tentative
hold that is later cancelled, the abstract service can
attempt to find the resources from another provider,
only informing the client of any problem if no other
provider can satisfy the request.
4 EXAMINING THE SCENARIO
In order to determine whether having providers that
dynamically change their transactional support for a
service is beneficial, a software model of the situa-
tion in Section 3 has been created. This model simu-
lates the sending of messages between clients and ser-
vice providers, monitoring each message that is sent.
The clients directly interact with the three service
providers, though the logic would be similar if each
client instead utilised an abstract service for commu-
nicating with the different providers.
In the model, the transactions of 1000 clients are
generated to be started between times 1 and 100, with
the start time of each transaction chosen randomly. It
is assumed that the majority of these clients (80%)
would prefer providers that offer semantic atomic-
ity over those only offering tentative holds, with the
other 20% being equally split between those unwill-
ing to use any provider that does not offer semantic
atomicity and those who do not care about the trans-
action support offered by the providers. Given that
each provider offers an otherwise identical service, it
is fair to assume that the majority would prefer the
provider that offers a better transactional guarantee.
For the first test, as well as their other activities,
each client wishes to order (randomly) between 1 and
10 resources from one of the three providers. The
second test is identical except half of the clients wish
to order a large number of resources (50). When a
client needs to choose which provider to use, it ran-
domly chooses between any of the providers that of-
fer the required resources with the requested transac-
tional guarantee.
Of the clients willing to risk having a partially
completed transaction (that is, all except those who
insist on semantic atomicity), half are assumed to risk
having this service complete and the other actions in
their transaction fail, and the other half to risk having
this service fail while the other actions in their trans-
action complete. The results of failures with penal-
ties would be skewed differently if these rates were
changed, but, for this study, all that is important is the
fact that a failure with penalty occurred, not whether
that penalty was on this service or the other actions in
the transaction.
Each client also wishes to perform some other ac-
tions as a part of their transaction. These other actions
are modelled as an activity that takes between 1 and
10 time units, and fails 20% of the time. In reality,
the other actions could consist of multiple activities,
but, for this study, it is sufficient to model them as a
single activity, since all that is important is whether
they succeed or fail.
The three providers are tested using each of the
three possible transactional guarantees. When using
the variable scheme that changes from semantic atom-
icity to tentative holds, the provider changes to use
tentative hold if the request would bring the number
of available resources to under 50% of the initial re-
sources offered by the provider. This is sufficient for
WEBIST 2010 - 6th International Conference on Web Information Systems and Technologies
84