Information Technology Reference
In-Depth Information
the response message.
( ID ) determines a reference to the actual advice that
has to be applied by providing an ID containing a reference to the advice.
The preceding elements are mandatory, whereas the following elements are
optional:
I
K
( key value store ) provides configuration data in the form of key-value
pairs optionally needed by the aspect.
D
C
( conflicts )containa
list of aspects that refer to woven aspects. The first one enforces the listed aspects
to be woven, whereas the latter one forbids them to be applied. This enables the
weaving operation to respect (in-)compatibilities between different aspects.
The pointcut description is represented by the XML schema type shown in
Listing 1.1. The first six elements of the tuple, namely
( depends )and
P
,
O
,
F
,
M
,
I
,
K
,are
mapped to the schema type. The fields
(depends) are not
present in the schema type, because they are expressed by the implementation
of the advice itself. Hence, they are omitted in the schema declaration.
C
(conflicts) and
D
<complexType name="Aspect">
<sequence>
<element name="portType" type="xsd:QName" />
<element name="operationName" type="xsd:string" />
<element name="field" type="xsd:string" />
<element name="mode" type="xsd:string" />
<element name="aspectPlugIn" type="xsd:string" />
<element name="aspectData" type="tns1:HashMap" />
</sequence>
</complexType>
Listing 1.1. XML Schema type of an aspect
4
Implementation
Our Java-based, prototypical implementation 1 of the aspect framework rests
upon Apache Tomcat 6 as the application container in combination with Apache
Axis 1.4 as the SOAP processing engine and web service execution environment.
On the caller's side, the Axis client libraries are used. The orchestration engine
for composing web services is ActiveBPEL [1], an open-source implementation
of the BPEL standard.
Adding and removing of request/response aspects and listing of available ad-
vice are performed by a single web service that offers the corresponding meth-
ods. Further methods provided by this aspect configuration service are (1) a
method to check whether an advice of an aspect is supported, and (2) a method
to determine whether an aspect is woven into a service. These two methods
allow the client-side component to ensure the atomic behavior of the overall
framework.
1 Thesourcecodeisavailableonrequest.
 
Search WWH ::




Custom Search