(A1) Happens(R.UIS.RelKey(v, c, l),t1, (t1,t1)) ∧
¬(∃t2)Happens( R.CS S.Depart(v, l),t2, (t1,t1+6∗
tu)=⇒ (∃t3)Happens(R.CIS.Available(v, l),t3,
(t1+6∗ tu, t1+6∗ tu))
(A2) Happens(R.UIS.CarRequest(c, l),t1, (t1,t1)) ∧
Happens(R.CIS.F indAvailable(l, v3),t2, (t1,t1+
tu)) ∧ Initiates(R.CIS.F indAvailable(l, v),equalTo
(v,v3),t2)=⇒ (∃t3)Happens(Q.U IS.CarHire(c, l, v)
,t3, (t2,t2+tu))
(A3) Happens(R.CIS.F indAvailable(l, v),t1, (t1,t1))
∧ HoldsAt(equalT o(availability(v3), not avail),t1
− tu)=⇒¬Initiates(R.CIS.F indAvailable(l, v),
equalT o(v, v3))
(A4) Happens(Q.U IS.RelKey(v3,c,l),t1, (t1,t1)) ∧
Happens(Q.U IS.RetKey(v3,l),t2, (t2,t2) ∧
(t1 ≤ t3) ∧ (t3 ≤ t2) =⇒
HoldsAt(equalT o(availability(v3), not avail) ,t3)
These requirements are considered as events and
are expressed in terms of the EC predicates to facil-
itate the detection of inconsistencies that may arise.
For example, the formula A1 specifies that when CBS
invokes an operation in UIS (R.UIS.RelKey(v, c, l)
)that signifies the release of a car key to a customer, it
waits for an event signifying the exit of the car from
the car park for 6 time units (this message is to be
sent by CSS). If the latter event does not occur, CBS
invokes the operation Available(v, l) in CIS to mark
the relevant car as available.
We precise that in the above formulas, tu refers
to the minimum time between the occurrence of two
events. tu can be set by the service provider.
Given this specification and the event log of figure
2, the assumption A3 is found to be inconsistent with
the expected behavior of CBS at t=54. A3 is an as-
sumption about the behavior of the CIS service stating
that when CIS executes the operation F indAvailable
it should not report a car as available unless this is
indeed the case. The inconsistency arises because
the literals L13 and L14 in Figure 2 and the literal
HoldsAt(equalT o(availability(v2), not avail), 50),
which is derived from the literals L9 and L16 and
the assumption A4 entail the negation of A3. In this
example, the inconsistency is caused by the failure of
the CSS service to send an R.C S S.Depart(v2,l2)
event to CBS following the event
Happens(Q.UIS.RelKey(v2,c2,l2), 28, (28, 28)).
Thus, according to A1, CBS invoked the operation
Available to mark the vehicle v2 as available (see
the literal L10 in figure 2). Subsequently, when
the operation Q.CIS.F indAvailable(l2,v) was
invoked in CIS (see literal L12), CIS reported v2
as an available vehicle. Note, however, that this
inconsistency could only be spotted after the event
signified by the literal L16 and by virtue of A4
(according to A4, a car whose key is released should
not be considered as available until the return of its
key).
One other case is that at t=54, the event L15 which
was generated due to A2 can be detected as unjus-
tified behavior. This is because this event can only
have been generated by A2. Note that, although in
this case CBS has functioned according to A2, one of
the conditions of this property is violated by the literal
Initiates(R.CIS.F indAvailable(l2
,v),equalTo(v
,v2), 51). This literal can be deduced
from A3, the literal L13, and the literal
HoldsAt(equalT o(availability(v2), not avail), 50).
The latter literal is deduced from L9 and L16 and
assumption A4.
5 RELATED WORK
Specifying and managing Web services interactions
can be challenging due to the autonomous and het-
erogenous nature of services providers . Below we
discuss some leading approaches that are most related
to our work.
Recent emerging workflow projects such as eFlow
(Casati et al., 2000), and CrossFlow (Hoffner et al.,
2001) focus on loosely coupled processes. However,
they lack a formal model for specifying and verifying
Web services. They also do not address the semantics
of composite events in Web services interactions.
Web service integration requires more complex
functionality than SOAP, WSDL, and UDDI can pro-
vide. The functionality includes transactions, work-
flow, negotiation, management, and security. There
are several efforts that aim at providing such func-
tionality, for example, the recently released Busi-
ness Process Execution Language for Web Services
(BPEL4WS), which represents the merging of IBM’s
Web Services Flow Language (WSFL) and Mi-
crosof’s XLANG, is positioned to become the basis
of a standard for Web service composition. These lan-
guages are based on both SOAP, WSDL, and UDDI
basic stack, are complex procedural languages, and
very hard to implement and deploy. There are also
some proposals such as DAML-S, which is a part of
DARPA Agent Markup Language project that aims
at realizing the Semantic Web concept. However,
DAML-S is a complex procedural language for Web
service composition.
A part from this, lots of proposals originally aim at:
i) specifying web services at an abstract level using
formal description techniques and reasoning on them,
ii) using jointly abstract descriptions and executable
languages (BPEL), iii) developing web services from
abstract specifications. However, due to lack of space,
we just point the reader to the related work section of
paper (Ferrara, 2004).
On the other hand, to monitor the existence of spe-
cific patterns of events that indicate the violation of re-
quirements, the existing techniques use either special
purpose monitoring architectures such AMOS (Co-
hen et al., 1997) and FLEA (Feather et al., 1998)
that maintain event logs and offer proprietary event
AN EVENT-BASED MODEL FOR WEB SERVICES COORDINATION
87