<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Rule-Based Service Composition and Service-Oriented Business Rule Management</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Hans Weigand</string-name>
          <email>H.Weigand@uvt.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Willem-Jan van den Heuvel</string-name>
          <email>wjheuvel@uvt.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marcel Hiel</string-name>
          <email>m.hiel@uvt.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>INFOLAB, Tilburg University</institution>
          ,
          <addr-line>Warandelaan 2, Tilburg</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2008</year>
      </pub-date>
      <abstract>
        <p>As business processes change constantly, there is a growing need for adaptive composite services. Unfortunately, existing service composition languages and techniques result in rather brittle and rigid processes, whose services live in a straitjacket. In this paper, we propose a rule-driven approach for service composition that is purely declarative, highly adaptive and integrated in a truly service-oriented approach to business rule management.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Today’s business environment dictates organizations to be agile so they are able to
accommodate their business processes to rapidly changing market conditions,
including updated or new legislations and regulations, swiftly changing consumer
demands and novel technological innovations, e.g., new mobile platforms. Service
Oriented Architecture captures an emerging paradigm that is quickly gaining broad
industry acceptance, and enables the development of a new breed of (cross-)
enterprise applications that are comprised of loosely coupled services, which holds
the promise that these applications can be modified and/or extended on the fly..</p>
      <p>
        One of the key impediments towards realizing this vision, unfortunately, is that
currently services are predominantly composed using block-structured and
graphbased languages, notably BPEL, resulting in static and brittle composite services,
although some work has been done on trying to make them a bit more adaptable, e.g.,
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Composite services that are developed in this way are liable of intermingling
process logic with business rules, providing the perfect ingredients for unmanageable
and rather repellent process/rule spaghetti. This has become even more problematic as
companies have begun to apply languages such as BPEL for very agile, real-world
applications, and have observed that rules are in fact much more dynamic than
business processes. Consequently, updating these rules that are deeply buried in the
scattered process definitions has quickly grown into a complex, labor-intensive and
cumbersome task.
      </p>
      <p>
        It has been suggested that business rules can be separated from the BPEL code in a
kind of aspect-oriented flavor [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Although this alleviates the management problem
to some extend, adaptations are still only possible as long as they concern the content
of pre-identified business rules that fit into the fixed BPEL frame.
      </p>
      <p>In this paper, we argue that business rules can be used in service composition
without the need of such a BPEL frame, thus increasing the adaptability of the
orchestration significantly. At the deployment level, we introduce a CA-rule engine
that supports rule-based service composition. To keep the business rules manageable
themselves, we describe a service-oriented approach.</p>
      <p>This paper is organized as follows. In the following section we will introduce a
realistic running example that motivates the rule-based approach. In section 3, we will
elaborate on this approach and how it fits in a service-oriented architecture. In section
4, we introduce the FARAO approach towards service composition that is based on
the use of a CA-rule engine, and analyze to what extent business rule compliance can
be realized in this framework. The last section summarizes the main findings of our
work, and sketches directions for future research.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Motivating Case Study</title>
      <p>MultiTech (fictitious name) is a wholesaler SME that buys and sells mobile
phones. Its primary business process revolves around (re-)selling mobile phones,
which it acquires from various international vendors. In this fictional, yet realistic,
case study we exemplify business services, rule services and the actors invoking
them, concentrating on the purchase-and-payment cycle of MultiTech.</p>
      <p>ReSqeurairevsnQduiecikitoTitcsmpeer™itshaionoerpdcature.n Permison Policy</p>
      <p>This cycle is organized as follows. The cycle starts with an authorized sales clerk
requisitioning mobile phones. After his permission to requisite a particular product is
ascertained, he may issue a purchase requisition to the inventory manager.</p>
      <p>The inventory manager then sends the verified purchase requisition to the purchase
agent, whose authorization to deal with this particular kind of order is then checked
(PermissionPolicy). The purchase agent transforms the purchase requisition in a
purchase order, while ensuring that the used master data complies to the supplier’s
product code; in case of a problem, an exception is raised (ExceptionPO-Policy).
Also, the internal stock level is checked; a policy describes the stock replenishment
level. Thereafter, he sends the purchase order to the vendor, and issues two additional
copies of the purchase order, one to the warehouse clerk and one to the payment clerk.</p>
      <sec id="sec-2-1">
        <title>Service</title>
        <p>RequisitionService</p>
      </sec>
      <sec id="sec-2-2">
        <title>Business policy</title>
        <p>PermissionPolicy
CreatePurchaseOrderService
PurchaseOrder-Policy
CreatePurchaseOrderService
ExceptionPO-policy
CheckAgainstPOService
CheckSHPO-Policy
PurchaseProcessService
VerificationPolicy
PurchaseProcessService
InstitutionalPolicy
PurchaseProcessService
SODPolicy
PaymentService
PaymentService
EscalationPolicy
OrderingPolicy</p>
      </sec>
      <sec id="sec-2-3">
        <title>Definition</title>
        <p>The sales clerk should be authorized to
requisition particular (quantities of)
products, e.g., Sales Clerk “Klaus” is
allowed to requisition not more than
1000 mobile phones a time.</p>
        <p>A sales order can only then be created
if, and only if, the purchase requisition
is complete, the order would cause
stock dropping below the allowed
replenishment level, and he is
authorized.</p>
        <p>A purchase order cannot be created if
the ordered product does not exist cf.
the master data; in this case, a new
purchase requisition is required.</p>
        <p>An incoming shipment document must
be checked against a purchase order
document within 24 hours after receipt.</p>
        <p>If the verified document is not valid,
then the ordering process is
terminated.</p>
        <p>A purchase must be financially reported
on a real-time basis (cf. institutional
policies declared in Sarbanes-Oxley)
The actor invoking this service should
be another than the actor invoking the
requisition process to obey segregation
of duties.</p>
        <p>In case of dubious credits, the payment
should be escalated to a human
manager.</p>
        <p>A payment can only be invoked, after
the ordered products have been
received, and checked against the PO.</p>
        <p>The vendor invoices MultiTech by sending an invoice along with its shipment to
the warehouse clerk. After receipt of the goods and its accompanying shipment
document, the warehouse clerk uses the purchase order and the receiving report to
verify the correctness of the delivery. Then he sends the verified receiving report to
the accounts payable clerk.</p>
        <p>If the purchase is not valid, the process is terminated according to the
VerificationPolicy, e.g., in case the budget has been exceeded. Also, the
accountant is liable of reporting any payments directly to the government cf.
Sarbanes-Oxley act, section 409 (InstitutionalPolicy). Also, to ensure segregation
of duties, and circumvent potential fraud, the accountant cannot be the same person as
the sales clerk (SODPolicy).</p>
        <p>The accountant creates and sends a payment voucher to the payment manager,
together with the verified receiving report, purchase order, and verified invoice; only
after all this information is available the payment can be processed (OrderPolicy).
Note that in case of excessively large purchase orders in a specific time period, the
payment process is escalated to the management for further consideration
(EscalationPolicy).</p>
        <p>The example makes clear that business policies are first-class citizens in the
modern enterprise and directly influence business services.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Business Rules and Service Composition</title>
      <p>In this section, we first define and classify business rules and policies. In 3.2, we
review previous work on rule-based service composition, and in 3.3 a new
serviceoriented approach to business rule management is described.</p>
      <sec id="sec-3-1">
        <title>3.1 Business Rules and Policies</title>
        <p>
          We follow the fundamental distinction between business rule and policy [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Policies
arise from internal sources such as business needs, from corporate-level guidance,
from external laws and regulations, and from ethical motivations. Based on the OMG
Business Motivation Model (BMM) such policies "govern or guide an enterprise,"
specifying business design aspects that complement information and operation models
[
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          Business policies are usually written in natural languages to cater for evaluation by
domain experts, viz. business analysts. That evaluation assumes human interpretation,
as the ambiguities of natural languages must be resolved and application of policies to
specific business contexts generally requires analysis of impacts, consequences, and
trade-offs. Thus, policies provide guidance but insufficient detail for implementation.
Considerable research has been conducted into the conceptualization of business
policies using languages such as ORM ([
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]), ILOG and OCL.
        </p>
        <p>
          The application of policies in specific contexts leads to business rules, meaning
highly structured, discrete, atomic statements "carefully expressed in terms of a
vocabulary" [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] to enforce constraints (integrity rules), to deduce new information
(derivation rules) or to trigger actions on satisfied conditions (reaction rules) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. If a
business rule “defines and constrains some aspect of the business” [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], we can
distinguish between norms or constraints (constraining) and definitions (defining).
The former category can, without loss of generality, be expressed as prohibitions,
indicated in deontic logic with the F modality, whereas the latter typically take the
form of derivation rules.
        </p>
        <p>
          Following [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], we posit that business rules are about business requirements, rather
than about execution. They model “what” is required, rather than “how” it should be
implemented. Hence we distinguish business rule languages from (executable)
production rule languages such as ECA-Rules [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] and “IF…THEN” (CA)-rules [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
SBVR is an OMG proposal for the representation of business rules in Structured
English [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>
          In order to operationalize constraints, often information has to be added. According
to [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], a constraint (called norm frame in their terminology) should consist of 5
elements: a norm condition, a violation condition, a detection mechanism, a sanction
and repairs. The violation condition is a formula denoting the state when the norm is
violated. Although in simple cases, there is a 1-1 relationship between norm and
violation condition – for example, if the norm is F(α) for an observable action α then
the violation condition is DONE(α) – it is not possible to derive one from the other in
all cases. For example, when a certain action is not defined in the operational context,
or when the norms cannot be interpreted in isolation. The detection mechanism
provides the procedure necessary to determine whether the violation holds at a certain
moment. For example, the OBL(α BEFORE d), expressing that action α must be
performed before deadline d, can be checked efficiently by a trigger that fires when
the deadline d has been reached (based on a clock signal), and that checks DONE(α).
Note that the detection mechanism here is more specific than the violation condition.
The sanction is an action that is to be performed when a violation has been detected,
whereas a repair is an action that tries to undo or compensate a violation. Following
this approach, it is clear that the translation from norm to executable rule is not a
simple transformation.
        </p>
        <p>
          In SOA, a series of (partially overlapping and conflicting) specifications and
standards have been proposed that can be used to render business policies and rules.
WS-Policy entails a family of semantic-agnostic languages to express assertions about
constraints and capabilities of service end-points. These constraints and capabilities
can be either very generic, or domain-specific, e.g., defining security-, transaction or
reliability policy constraints (cf., WS-Security, WS-Transactions and WS-Reliaiblity).
KAoS [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], Cassandra [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] and Rei [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] denote executable policy specification
languages from the semantic web community, which are based on RDF and OWL.
RuleML [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] and the Semantic Web Rule Language [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] constitute two
generalpurpose executable rule languages.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 Rule-driven Service Composition –state of the art</title>
        <p>Service composition sits at the heart of the Service Oriented Architecture, allowing
service requesters to assemble several services that meet their requirements, into
composite services. Unfortunately, languages like BPEL, suffer from severe
problems, especially with regard to their flexibility and adaptability. Instead, rules
have been investigated as an alternative declarative approach, boasting the following
key advantages:</p>
        <p>Intuitive formal semantics: Rule-based languages exploit a limited set of
primitives with the formality of an underlying logical and/or mathematical
framework, and the quality of being meaningful to the domain expert.
Direct support for business policies: business rules enact business policies in
that policies can be transformed into business rules in a straightforward and
transparent manner. These business rules are externalized and managed
separately from the processes in which they are applied
Flexibility: rule-based compositions are believed to be more flexible than
BPEL-like compositions, given their ability to pursue alternative execution paths
in case a particular execution path fails, without having to redefine the
composite service and redeploy it on a service engine.</p>
        <p>Adaptability: given the declarative nature of rule-enabled service compositions,
they can be modified and/or extended to accommodate context-specific
situations, e.g., in terms of external services or the deployment platform.
Reusability: Since rules isolated from the business process context, they can be
more easily reused in other service application contexts.</p>
        <p>
          Recently, considerable efforts have been invested in rule-engines to support service
compositions. In particular, we herein wish to mention the following key
contributions. Firstly, in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], a service-oriented rule engine was introduced that allows
enterprises to access business rules by invoking distributed service-enabled ruleML
engines that sit at the service supplier’s service end-point. [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] introduces an
alternative service execution environment in which rules can be defined, and
subsequently injected in WSDL specifications, after which they can be deployed on a
service executor. [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] introduces AO4BPEL, an aspect-oriented extension to BPEL that is
able to weave business rules into BPEL frames. Alternatively, in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] an approach is
suggested to incorporate business rules in BPEL specifications, while enforcing them
in rule engines that work in concert with BPEL engines, and coordinate themselves
through an ESB. This approach basically works as follows; an interceptor is used to
catch incoming and outgoing BPEL service invocations (activities), after which a
business rule broker service is initiated, through which applicable business rules can
be accessed. Depending on the interceptor mode (before/after), the BPEL activity is
either fired or the control flow is continued.
        </p>
        <p>In addition to research prototypes that were developed for the purpose of
validation, several service-oriented rule engines are nowadays available, viz. the
Oracle Fusion Middleware Rule Engine. This rule engine allows specifying business
rules as ILOG facts that can be inserted into BPEL specifications. This is achieved by
allowing users to map BPEL variables to facts in a rule repository.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 A service-oriented approach to business rule management</title>
        <p>
          Business rules are an example of crosscutting concerns, especially those encountered
in composite services with a coordinating function, and run the risk of getting
scattered over the system. In a service-oriented approach it is possible to encapsulate
a certain business policy into a service. The advantage is that this service can be
called from anywhere, and rule redundancy can be avoided (cf. [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]). However, given
the presumed autonomy of services in SOA, it is not immediately clear how
compliance to such rule services is ensured. This situation is similar to the situation in
Multi-Agent Systems (MAS), where autonomy is a fundamental property of agents as
well. In MAS, the problem is addressed by an institutional approach. As one of the
earliest papers on this topic, [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] described a market place architecture for agents that
draws on exception handling third parties that act like “institutions” as we know them
from human societies (e.g. notary, registry). To realize such an institutional approach,
[
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] suggests three concepts. First, each agent in the system is assigned a “sentinel”
that mediates the interactions of the agent with other agents. These sentinels monitor
message traffic, detect violations to commitments, and apply resolution handlers. The
sentinel incorporates domain-independent exception handling expertise. Secondly, the
system includes institutional or ancillary services such as a reputation service that can
be called upon by the sentinels. Thirdly, agents cannot just enter the system; the only
way to join is to register at the Registrar service, who only allows entrance after
having assigned the agent a sentinel. Is it possible to use this solution approach in
SOA?
        </p>
        <p>
          As we just noted, the second element of the solution can be easily applied in SOA.
We can introduce institutional services as services, and as far as they represent not
only mechanisms (which is the focus of [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]) but also policies, it is possible to
implement them using a rule-based approach. The first element requires more
attention, as sentinels are clearly not part of SOA. However, there are recent
developments within SOA that provide each service with a service manager (e.g.
[
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]). This service manager can be realized as a service and has the possibility to
adapt the service via a management interface (MOWS). In ASOA [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], the service
manager follows a monitor-plan-act cycle as envisioned in autonomic computing,
which is close to the specified behavior of the sentinel.
In order to apply an institutional solution approach and to solve the compliance
problem, we make the fundamental assumption that services have a dual orientation.
One orientation is the client-orientation that lies at the heart of SOA. However,
implicitly or explicitly, there is also another orientation towards someone who wants
this service to be delivered. This party can be called the principal, and the relationship
is one of delegation. Delegation means that a party wants to achieve something –
typically providing a service to some customer – but rather than doing it himself, he
asks another party (“agent”) to do it on his behalf. Conceptually, the relationship can
be characterized as a service offered by the “agent” to the principal. The delegation
provides us with a mechanism to introduce services. A service X is introduced by a
service provider – which we identify with a service manager – by replying to a
request from the principal to deliver service X.
        </p>
        <p>Now it becomes clear how a service can be bound to a business policy. When the
principal requests the service manager to deliver service X, the request contains a
reference to all the policies that should be respected as well. By adopting the request,
the service manager commits himself to respect these policies. Within these policies,
a distinction can be made between generic rules, such as for detecting norm
violations and reporting, and context-specific rules; the latter can be offered as
separate services, and a generic rule only says that the service manager should call
these services for this or that occasion. Fig. 2 describes the process of service
introduction. A certain business rule service is assumed to exist representing some
policy, for example, the PermissionPolicy of MultiTech. The principal uses this
service (1). The service manager of the “agent” provides a service delivery service to
the principal (2) upon his request. In performing this service, it uses and invokes the
business rule service (3). Typically, in the case of a composite service, this implies
that the service execution itself involves the business rule service (4), by
orchestration. This all being in place, a client can call the service (5).</p>
        <p>This scenario offers a solution to the compliance problem, but it does not assume a
central Registrar authority. Each principal can impose its own policies. However,
what the principal imposes is not an autonomous decision, as it depends on the
policies imposed on him by powers above him.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Framework for Designing, Reusing and Evolving Business</title>
    </sec>
    <sec id="sec-5">
      <title>Rules in Service Compositions</title>
      <p>
        FARAO stands for a FrAmewoRk for Adaptive Orchestration. The ultimate goal of
FARAO is to support the development of adaptable service orchestrations and to
prepare for adaptivity by providing a manageability interface to a service manager,
such as described in xSOC [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] and ASOA (Adaptive Service Oriented Architecture)
[
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Fig. 3 conceptualizes the relations between the ingredients of our service
orchestration. Given a set of services to be orchestrated, the designer starts with
retrieving the interface and data descriptions, typically from the registry. From these
descriptions, Condition-Action (CA) rules are derived that manage the data flow. We
have chosen for CA-rules rather than ECA-rules as the latter introduce more
dependencies between the rules. In step (2), these rules are extended with business
rules that typically steer the decisions in the orchestration. In step (3), the designer has
the opportunity to add additional control-flow constraints, if required. In ASOA, all
three steps will be delegated to the service manager who executes them autonomously
or semi-autonomously.
      </p>
      <sec id="sec-5-1">
        <title>4.1 Data dependencies</title>
        <p>The FARAO lifecycle model starts with a data-driven approach where the process
structure is derived essentially from the data dependencies between the services
involved in the orchestration. For example, if an orchestration involves both an
Inventory service that returns, among others, the actual price of the product and a
message to the customer with a quote, there is a data dependency between the two
services that (implicitly) enforce that the former precedes the latter. If there is no data
dependency between two services, there is no need to schedule one before the other,
and by refraining from an arbitrary ordering we increase flexibility.</p>
        <p>As hinted at in the above, we generate a CA-rule for each message that the
orchestrator has to send. From the WSDL of the service in question, we derive the
structure of the document it expects. Range restrictions on the message elements are
copied into the conditions of the CA-rule. If there is not a range restriction, a NOT
NULL condition is generated. In the action part, we put a send action that takes the
service and its input document as parameters.</p>
        <p>
          Rules refer to data items. In order to increase adaptability, we require that the
orchestration is based on a shared ontology. WSDL-S [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] provides a mechanism to
add semantics to web services. This allows, among others, that the message elements
of the service are mapped to a given ontology. By requiring the WSDL descriptions of
the services to be semantically annotated, we can let the rules refer to data items in
terms of the shared ontology. In this way, changes in the service interface do not
influence directly the orchestration, as long as the services adhere to the shared
ontology.
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>4.2 Inference rules</title>
        <p>The CA rules generated from the data dependencies provide an executable
orchestration, but it only works well to the extent that the data items in the documents
are seamlessly integrated. This is not always the case: sometimes an inference step is
needed. For example, if one data item is "credit rating" and another is "creditworthy",
then we need a rule to correlate the two that essentially prescribes when a person is
creditworthy (for example, if credit rating &gt; 10).</p>
        <p>The general format of these inference rules is:</p>
        <p>IF &lt;condition&gt; THEN a1 = v1 .. aj =vj</p>
        <p>Technically, these inference rules are not CA-rules. We coerce them into CA rules
by giving the consequent part an assignment interpretation: if the conditions are
satisfied, then assign values v1 .. vj to the variables a1 .. aj
Example: After the accounts payable clerk has got the information from the
CheckAgainstPO service it must decide whether or not to further process the order.
The business rules for this decision can be formulated as follows:</p>
        <p>Rule 1: IF verified-shipping-doc != "ok" THEN shippingstatus = reject
Rule 2: IF verified-shipping-doc == "ok" THEN shippingstatus = accept
These rules are to be used in combination with the rule (for the action) that processes
the verified shipping document. This rule contains the condition that shippingstatus
= accept. The rules 1 and 2 can be fed directly into the CA-engine, but they may also
be part of a business rule service included in the orchestration. In the latter case, they
are much easier to maintain of course. In a real-life implementation, a combination of
the two approaches can consist in a caching solution, where the rules from the
business rule service are moved to the CA-engine of the service temporarily. This
approach saves on the communication overhead attached to service invocations. The
cache has to be refreshed when the business rules are modified at the source.</p>
      </sec>
      <sec id="sec-5-3">
        <title>4.3 Control flow constraints</title>
        <p>The most prominent control flow constraint is the precedence constraint, where a
certain service can only be executed after some other service has happened or some
state has been reached. In Linear Temporal Logic, such a precedence constraint is
usually described as: ¬β UNTIL α, where α and β are arbitrary propositions. In the
case of orchestration, we restrict ourselves to constraints in which β is a service call.
Then the meaning of the constraint is that this service cannot be called as long as α is
not true.</p>
        <p>For example, ¬send(PaymentVoucher) UNTIL (PurchaseProcessing = "ok")
which enforces payment voucher is not issued to the service PaymentService before
the PurchaseProcessing service has been concluded (MultiTech OrderingPolicy).
A fundamental restriction of SOA is that services are autonomous, so the orchestrator
cannot verify himself whether a certain service is finished; he is dependent on return
messages of that service. If no return message is returned, there is no way to enforce
precedence. Hence we restrict the α part of the precedence constraint to propositions
on data (and not on the completion of some service as such). Within the present
context, the β part is restricted to the event of sending a document.</p>
        <p>In FARAO step (3), the control flow constraints are inserted into the CA-rules. In
step (1), a CA-rule has been generated for each outgoing document. Let this rule be of
the form "IF D THEN send(M)", and let a control flow constraint be ¬send(N)
UNTIL C". If M=N, then we derive the rule "IF D AND C THEN send(M)".</p>
        <p>Atomic prohibitions such as the PermissionPolicy in MultiTech can be injected
into the CA-rule condition in a similar way (not worked out for lack of space).</p>
      </sec>
      <sec id="sec-5-4">
        <title>4.4 Business Rules Implementation in FARAO</title>
        <p>As far as business rules are concerned, we made a distinction between definitions and
constraints. In the above, we have indicated how definitions can be incorporated in
(the CA-engine of) FARAO as inference rules. Precedence constraints can be injected
into the CA-rules. However, the interpretation of a norm frame requires more than
precedence constraints. Not all norms are enforceable. In that case, the norm frame
includes detection and remedy parts, among others. In FARAO, these can be directly
implemented as CA-rules, although preferably, the service orchestration itself only
contains detection rules and the remedy is left to the service manager or an
institutional service.</p>
        <p>A type of rules not mentioned so far are permissions. If we follow the “everything
is permitted unless forbidden” regime, permissions are not strictly needed. However,
often permissions function as “second-order” constraints, determining which
prohibitions can be added and which can not. In other words, they prohibit certain
prohibitions, in which case they can be treated as constraints.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>5. Conclusions</title>
      <p>At present, organizations typically rely on block-structure, light-workflow
specifications such as BPEL, to realize their business processes as composite
Webservices. Unfortunately however, this style of composition assumes that at run-time, a
detailed and complete process layout is “carved in stone”, making its adaptation
cumbersome, complex and time-consuming, requiring re-compilation of the process
engine, and causing disruptions in, potentially mission-critical, business processes.</p>
      <p>In this paper, a declarative and rule-driven framework to dynamic service
composition, labeled “FARAO”, is introduced, while its ramifications are further
explored and illustrated with a realistic case study. The “heart-and-soul” of FARAO
constitutes business rules that prescribe the way in which services can actually be
aggregated dynamically into processes. The business rules are fed into the engine in a
service-oriented way, that is, by a principal requesting a service delivery in
accordance with given policies and by the service manager accepting this request. The
business rules are maintained and updated outside the operational services. Given the
platform independence offered by SOC, this can be anywhere inside or outside the
company.</p>
      <p>Our current research efforts concentrate on the implementation of the FARAO
framework to experiment with rule-based service composition. A topic for future
research is the mapping of our business rule representation to standard business rule
languages, and to define a transformation from this language to the operational
FARAO environment using a model-driven engineering approach.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Reichert</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rinderle</surname>
          </string-name>
          , S.: “
          <article-title>On design principles for realizing adaptive service flows with bpel”</article-title>
          . In: Weske,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Nttgens</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          , (eds),
          <source>EMISA. Volume 95 of LNI., GI</source>
          , pp.
          <fpage>133</fpage>
          -
          <lpage>146</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Charfi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Mezini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , “
          <article-title>AO4BPEL: An Aspect-oriented Extension to BPEL”</article-title>
          , World Wide Web, V.
          <volume>10</volume>
          ,
          <issue>nr</issue>
          . 3, pp.:
          <fpage>309</fpage>
          -
          <lpage>344</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>N.</given-names>
            <surname>Nayak</surname>
          </string-name>
          et al., “
          <article-title>Core business architecture for a service-oriented enterprise”</article-title>
          ,
          <source>IBM Systems Journal</source>
          , Vol
          <volume>46</volume>
          , No.
          <issue>4</issue>
          , pp.
          <fpage>723</fpage>
          -
          <lpage>742</lpage>
          ,
          <year>2007</year>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>The</given-names>
            <surname>Business Motivation Model</surname>
          </string-name>
          , Business Rules Group and the Object Management Group (OMG), http://www.businessrulesgroup.org/bmm.shtml
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Hargreaves</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          “
          <article-title>Expressing Business Rules with Object Role Modeling”</article-title>
          ,
          <source>Proceedings of the 17th NACCQ</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          “
          <article-title>Business Rules and Object Role Modeling”, Database Programming</article-title>
          and Design, Oct
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Nagl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenberg</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dustdar</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>ViDRE - A Distributed</surname>
          </string-name>
          Service
          <article-title>-Oriented Business Rule Engine based on RuleML</article-title>
          .
          <source>In: Proceedings of the 10th IEEE International Enterprise Distributed Object Computing Conference (EDOC'06)</source>
          ,
          <fpage>16</fpage>
          -
          <lpage>20</lpage>
          .
          <year>October 2006</year>
          ,
          <string-name>
            <given-names>Hong</given-names>
            <surname>Kong</surname>
          </string-name>
          , China.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>L</given-names>
          </string-name>
          et al.,
          <article-title>“ECA Rule-based workflow modeling and implementation for service composition”</article-title>
          ,
          <source>IEEE Transactions on Information &amp; Systems</source>
          , Vol.
          <volume>89</volume>
          ,
          <string-name>
            <surname>Nr</surname>
          </string-name>
          . 2, pp.
          <fpage>624</fpage>
          -
          <lpage>630</lpage>
          , Feb.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Geminiuc</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          “
          <article-title>A Services-Oriented Approach to Business Rules Development”</article-title>
          , In: SOA Best Practices: SOA Cookbook, Oracle,
          <year>2007</year>
          . Available at: http://www.oracle.com/technology/pub/articles/bpel_cookbook/geminiuc.html.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <article-title>Semantics of Business Vocabulary and Business Rules (SBVR), The Object Management Group</article-title>
          ,
          <year>Sept 2006</year>
          , http://www.omg.org/cgi-bin/apps/doc?dtc/06-08-05.pdf
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Vasquez-Salceda</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Aldewereld</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Dignum</surname>
          </string-name>
          ,
          <article-title>Implementing norms in multiagent systems</article-title>
          . In: G. Lindemann,
          <string-name>
            <given-names>J.</given-names>
            <surname>Denzinger</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Timm</surname>
          </string-name>
          , R. Unland (eds),
          <source>Multi-Agent System Technologies. LNAI 3187</source>
          , Springer Verlag, pp.
          <fpage>313</fpage>
          -
          <lpage>327</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Bradshaw</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dutfield</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Carpenter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Jeffers</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Robinson</surname>
          </string-name>
          .
          <article-title>"KAoS: A Generic Agent Architecture for Aerospace Applications"</article-title>
          ,
          <source>in Proc. of the CIKM'95 Intelligent Information Agents Workshop</source>
          . Baltimore,
          <string-name>
            <surname>MD</surname>
          </string-name>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Becker</surname>
            ,
            <given-names>M.Y.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Sewell</surname>
          </string-name>
          , P Cassandra:
          <article-title>distributed access control policies with tunable expressiveness</article-title>
          .
          <source>Proc. Fifth IEEE Int. Workshop on Policies for Distributed Systems and Networks (POLICY</source>
          <year>2004</year>
          ), pp.
          <fpage>159</fpage>
          -
          <lpage>168</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Kagal</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Joshi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>'A Policy Language for a Pervasive Computing Environment'</article-title>
          ,
          <source>Proceedings of IEEE 4th Int. Workshop on Policies for Distributed Systems and Networks (POLICY</source>
          <year>2003</year>
          ), Lake Como, Italy,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Schroeder</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>G</surname>
          </string-name>
          . Wagner (Eds.):
          <source>Proc. of the Int. Workshop on Rule Markup Languages for Business Rules on the Semantic Web</source>
          .,
          <string-name>
            <surname>Italy</surname>
          </string-name>
          ,
          <year>June 2002</year>
          .
          <string-name>
            <surname>CEUR-WS Publication</surname>
          </string-name>
          Vol-
          <volume>60</volume>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Horrock</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          et al.,
          <string-name>
            <surname>“</surname>
            <given-names>SWRL</given-names>
          </string-name>
          :
          <article-title>Semantic Web Rule Language”</article-title>
          , http://www.daml.org/rules/proposal/ , Dec.
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Kamada</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mendes</surname>
          </string-name>
          , “
          <article-title>Business Rules in a Service Development and Execution Environment”</article-title>
          ,
          <source>Proc. of the Int. Symposium on Communications and Information Technologies</source>
          , pp.
          <fpage>1366</fpage>
          -
          <lpage>1371</lpage>
          , IEEE,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Rosenberg</surname>
            ,
            <given-names>F</given-names>
          </string-name>
          . and
          <string-name>
            <given-names>S.</given-names>
            <surname>Dustdar</surname>
          </string-name>
          , “
          <article-title>Business rules integration in BPEL: A service-oriented approach”</article-title>
          ,
          <source>Proceedings of the 7th International Conference on E-Commerce Technology, IEEE</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Rosenberg</surname>
            ,
            <given-names>F</given-names>
          </string-name>
          . and
          <string-name>
            <given-names>S.</given-names>
            <surname>Dustdar</surname>
          </string-name>
          , “
          <article-title>Towards a distributed service-oriented business rule system”</article-title>
          ,
          <source>Proceedings of the Third European Conference on Web Services (ECOWS'05)</source>
          , IEEE,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Dellarocas</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Rodriguez-Aguilar</surname>
            ,
            <given-names>J. A.</given-names>
          </string-name>
          <article-title>An exception-handling architecture for open electronic marketplaces of contract net software agents</article-title>
          .
          <source>In Proc. of the 2nd ACM Conf. on Electronic Commerce, EC '00</source>
          , pp.
          <fpage>225</fpage>
          -
          <lpage>232</lpage>
          . ACM,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Papazoglou</surname>
            ,
            <given-names>M.P.</given-names>
          </string-name>
          and W.J. van den Heuvel, “
          <article-title>Service oriented architectures: approaches, technologies and research issues"</article-title>
          ,
          <source>VLDB Journal</source>
          , Vol.
          <volume>16</volume>
          (
          <issue>3</issue>
          ):
          <fpage>389</fpage>
          -
          <lpage>415</lpage>
          ,
          <year>2007</year>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Hiel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Weigand</surname>
          </string-name>
          and W.J. van den Heuvel, “
          <article-title>An Adaptive Service-Oriented Architecture”</article-title>
          , In: Mertens,
          <string-name>
            <surname>K</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ruggaber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Popplewell</surname>
          </string-name>
          , X. Xu (eds),
          <source>Enterprise Interoperability III</source>
          , pp.
          <fpage>197</fpage>
          -
          <lpage>208</lpage>
          , Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Papazoglou</surname>
            ,
            <given-names>M.P.</given-names>
          </string-name>
          ,
          <article-title>Extending the Service-Oriented Architecture</article-title>
          .
          <source>In: Business Integration Journal</source>
          ,
          <year>February 2005</year>
          , pp.
          <fpage>18</fpage>
          -
          <lpage>21</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <fpage>W3C</fpage>
          , “Web Services Semantics”, Version 1, W3C member submission,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>