Title: Adaptation Description Language, Past and Present Directions.
1Adaptation Description Language, Past and Present
Directions.
2Web Applications, Producers, Consumers and User
Agents
Producers
Consumers (or integrators)
Clients
Legacy Web App
Application Back End Services
WSXL service
3The Scope
Users
Consumer
Producers
Legacy Web App
WSIA Proxy
HTTP(SOAP)
WSIA Service
WSIA Runtime
Travelers Check Application
WSIA Proxy
Business Logic Web Service
HTTP(HTML)
HTTP(SOAP)
Stock Application
WSIA Service
WSIA Application
WSIA Runtime
WSIA Runtime
4Adaptation Language Requirements
- R1. Reasonable evolution model The methodology,
the technical effort by a provider to make an
existing web application into an adaptable WSIA
service must be reasonable. - R2. Low Entry Point wrt Computation and
Scalability The minimum computational and
scalability demands that are placed on the
provider must be reasonable. - R3. Allow for Consumer-Customer Confidentiality
Consumer to adapt a providers output in a manner
that is confidential between the consumer and the
end-user. For example, it is possible for a
consumer to insert additional markup into the
output stream without provider having access to
the inserted markup. - R4. Allow for Provider support for adaptation It
is possible for a provider to provide support and
perform the adaptations needed by the consumer so
as to allow a low-entry consumer or for complex
adaptations. - R5. Choice of adaptation implementation models A
single consumer can use a combination of
available provider operations and local execution
to achieve a desired set of adaptations. - R6. Adaptation Description is available
statically for design-time use. - R7. Adaptation constraints can be specified by a
provider.
5Example of Client ? WSXL Service Interaction with
Customization and Adaptation
Aggregation Component (Consumer)
Service Component (Producer)
User
Creates customized instance
createInstance( customization properties )
I
I
P
Allocate new Customized Instance
Views WSIA Instance
getOutput
A
I
S
I
I
Generate Markup, (opt adaptation desc)
Consumer markup adaptation
S
A
Clicks Action
Action Adaptation
I
S
A
I
A
I
S
A
S
Action Handling (opt create Session)
performAction
Local implementation or redirection of action to
other Producer
A
I
S
performAction
6Rest of the Talk
- Part I WSXL Adaptation Language in Position
Paper - Part II New work in progress.
7Part I Adaptation Description Language
- Part I Adaptation Description Language
- Position paper version.
8Adaptation Language Position paper version
- Based on the core idea of adaptation points.
- An adaptation point is a point of observation or
manipulation exported by a producer to enable
consumer adaptation. - Adaptation points can provide information
regarding - Content (e.g the price of a certain item)
- Look and feel (e.g font attribute for a certain
table) - Behaviour (e.g a handler for a click event)
- Related Adaptation points can be grouped under
Adaptation groups. - Adaptation group is the root of an adaptation
description.
9Adaptation Point
- An application-specific Adaptation Point name
- The kind of operation (insert, replace, lookup).
Specifies the adaptations intended use. - The names of pages/states, i.e., to the different
components outputs, that it applies to. - An extensible locator to the items of interest
in the output. For instance, xpath, xquery are
used for XML documents. Note that a locator can
point to multiple locations in document. - An Adaptation Point category (XML, CSS, etc).
Specifies the category of the items of
interest. - The information specific to the application of an
adaptation of that category (XML, CSS). - Adaptation Generator mechanism for specifying
provider support - Tooling Info/Hints.
10Example 1. Look and Feel Adaptations
- ltadaptationGroup name"LookAndFeel"allOrNone"fals
e"gt - ltpageNameListgt selector result detail error
- lt/pageNameListgt
- ltcommentgtChange look and feel of FastMem pages
- lt/commentgt
- ltCSSAdaptation name"changeFont" use"override"gt
- ltlocator name"fontStyleLocator typexpath
value"//div_at_adaptationMarker'changeFont'/_at_styl
e"/gt - ltpropertygt font lt/propertygt
- ltcommentgtAdapt the size of the font used on this
page lt/commentgt - lt/CSSAdaptationgt
- lt/adaptationGroupgt
11Example 2. Data Value Lookup and Replace
- ltadaptation name"CustomerNumber" usereplace"gt
- ltlocator typexpath value_at_/xhtml/body/
table/row/customer"gt ltXMLAdaptationgt - ltvalidTypesgtintegerlt/validTypesgt
lt/XMLAdaptationgt - lt/adaptationgt
12Example 3. Replace a presentation element
- ltadaptation name"ContactInfo" use"replace"gt
- ltlocator name"ContactLocator" type"xpath"
value"//cntctInfo"/gt - ltXMLAdaptationgt
- ltvalidTypegt ShortContactInfo
LongContactInfo lt/validTypegt
ltschemaLocationgthttp//www.itsme.com/TypeInfo.xml
lt/schemaLocationgt - lt/XMLAdaptationgt
- lt/adaptationgt
13Adaptation Generator
- AdaptationGenerators are operations implemented
by provider - Introduced to handle three kinds of situations
- For providers to provide assistance in creating
markup for the aggregator for use in adaptation. - To retain control over markup fragments
inserted/modified. - To sidestep the limitations of the constraint
language. - The operations can be provider specific.
- A provider implements these AdaptationGenerator
operations and includes their names suitably in
the adaptation description. - Invoked by a client to perform presentation and
data related transforms and use the resulting
message in performing the adaptation.
14Example 4. Consumer using Provider support.
- Provider implements an operation named
"addColumnToTable" - ltAdaptationGroup nameaddColumnToTableAgt
- ltadaptation nameTableAKey uselookupgt
-
- lt/adaptationgt
- ltadaptation name"addColumnAtEndOfTableA"
use"replace"gt - ltlocator name"TableALocator"
type"xpath" value"//..."/gt - ltAdaptationGeneratorgt
addColumntoTable - lt/AdaptationGeneratorgt
- lt/adaptationgt
- lt/AdaptationGroupgt
- Signature obtained from providers WSDL, two part
input message - a) Portion/ID of original message sent down by
the provider - b) Consumers presentation and/or content
adaptation information
15Part II Work in progress
- Unify the models and mechanisms for
- Customizations executed by the consumer
- Customizations executed by the provider.
- A single ADL that can be used for both.
- Extend ADL to
- support coordination
- support orchestration
- Other Specification requirements
- Proportional to customization complexity.
- Extensible to additional output types.