When an orchestration plan arrives on some
face, a lookup is done on its Service Name. The
index structure used for lookup is ordered so that a
Service Store match will be preferred over a FIB
match.
Thus if there is already a service in the Service
Store that matches the service listed in the plan, it
will initiate the execution of the single service. and
after the execution, the output of this service is
added to the plan. If there is more than a service in
the Service Store that matches the service listed in
the plan, it will initiate the execution of the services
in the order described in the orchestration plan. And
after the execution, the output of this service or these
services will be added to the plan.
If there is no service in the Service Store that
matches the service listed in the plan, the plan is to
be forwarded downstream.
Then a look up is done for a FIB match. If there
is a service in the FIB that matches the “first to be
done” service listed in the plan, the plan is sent out
one of the faces to the next service node.
If there is no match for the services in the FIB,
plan is forwarded to a service registry. Then the next
service node IP is returned to the original service
node and the plan is forwarded to the next service
node. The original service node added a record of
this <servicename, IP> pair to the FIB.
All service nodes can provide some service
executing and routing to next service node.
4 IMPLEMENTATION
To show the service routing process, we present an
example of E-Commerce service orchestration in an
e-bookshop scenario. We explain how the service
nodes can support a process for the user’s e-
purchase in the on-line bookshop. We depict the
orchestration process. In Figure 2, the whole process
is accomplished without user intervention.
Figure 2: Example of service orchestration for e-
commerce service.
The orchestration plan is passed to the involved
service nodes one by one. The most suitable service
is selected according to the predefined optimal path
in the orchestration plan. At the end of each
execution of SERVICE, orchestration plan will be
sent to the consequent service node with an output
added to the orchestration plan. Note that this
procedure follows the optimal path and the service
nodes communicate with each other based on the
routing method without any centralized coordination
or control.
Figure 3 shows the Orchestration Plan described
in XMLschema. It shows how the plan controls the
path and invokes services in service node perform
orchestration. Single Service is identified with a
serviceName and each service node is associated
with a providerID. The two uniquely identifies the
business en-tity offering that service. Each AS has
four attributes (serviceName, state, control path, data
path) defined in names of (serviceName, state, Ctrl,
dataIn, DataOut). Once the service is successfully
accomplished, its attributes except serviceName are
changed. The execution order of AS is defined by
thetag ”step”. Each AS may have multiple service
nodes provided with different negotiated QoS by
different provider. The service node candidates are
listed in each Service field.
<?xml version="1.0" encoding="UTF-8" ?>
<op>
<e-commerce customerID=”cus1”
customerAddr= “ 215.35.67.33 ”
ecommerceID=”ec1”/>
<step stepnum=“1” Ctrl=“orderly”>
<service serviceName=”S1” state= “ wait ”
ProviderID= “ sohu ” DataIN= “ Din1 ”
DataOUT=“Dout1”S1.addr=“null”/>
<service serviceName=”S2” state= “ wait ”
ProviderID= “ sohu ” DataIN= “ Din2 ”
DataOUT=“Dout2” S2.addr=“null”/>
</step>
<step stepnum= “ 2 ” Ctrl= “ parallel ”
returnpoint=“S2.addr”>
<service serviceName=”S3” state= “ wait ”
ProviderID=“sohu” Ctrl=“orderly”
DataIN= “ Din3 ” DataOUT= “ Dout3 ”
S3.addr=“null”/>
<service serviceName=”S4” state= “ wait ”
ProviderID=“ sohu” Ctrl=“OL1” DataIN=“
Din4” DataOUT=“Dout4” S4.addr=“null”/>
</step>
</op>
Figure 3: Orchestration Plan in XML Schema.
The orchestration plan is passed through
ICEIS 2011 - 13th International Conference on Enterprise Information Systems
562