Characteristics of the Web Service Offerings Language (WSOL)

insidiousbehaviorSecurity

Nov 3, 2013 (3 years and 9 months ago)

138 views

Characteristics of the Web Service
Offerings Language (WSOL)


Presenter: Vladimir Tosic

(work with K. Patel, B. Pagurek)

Network Management & Artificial Intelligence Lab
Department of Systems & Computer Engineering

Carleton University, Ottawa, Canada

vladimir@sce.carleton.ca

http://www.sce.carleton.ca/netmanage/

Outline


Definition of terminology


Problem definition



Classes of service and service offerings


WSOL language constructs and examples


Applications and tools



Related work and summary of WSOL benefits


Future work

WSOL: Definition of Terminology


=> Definition of terminology


Problem definition



Classes of service and service offerings


WSOL language constructs and examples


Applications and tools



Related work and summary of WSOL benefits


Future work

Definition of a Web Service (WS)


A unit (
component
) of business, application,
or system functionality


Using XML (Extensible Markup Language)
messaging, description, and discovery



Software
-
based

and/or

hardware
-
based



Goal: Internet
-
wide A2A and B2B integration
of heterogeneous systems

Some Standard

Technologies for Web Services


XML (Extensible Markup Language)
-

data
representation



SOAP (a.k.a. XML Protocol)
-

message format



WSDL (Web Services Description Language)
-

language for description of Web Services



UDDI (Universal Description, Discovery, and
Integration)
-

discovery of Web Services

Other Terms Used

in This Presentation


Web Service composition (a.k.a.
orchestration, choreography, flow, network)



Consumer (a.k.a. requester) Web Service


Supplier (a.k.a. provider) Web Service

Consumer

WS

Supplier

WS

Another

WS


WSOL: Problem Definition ...


Definition of terminology


=> Problem definition



Classes of service and service offerings


WSOL language constructs and examples


Applications and tools



Related work and summary of WSOL
benefits


Future work


The Need for More
Comprehensive Description of WS


WSDL does not formally describe:


constraints (functional, QoS
-

Quality of Service,
access rights)


service level agreements (SLAs) and other
contracts between Web Services


multiple classes of service for one Web Service



=> Our solution: WSOL (Web Service
Offerings Language)

WSOL
-

Further Goals


Usable for monitoring and management


Both for Web Service Management (WSM) and
Web Service Composition Management (WSCM)



Reusable specifications



Reduction of run
-
time overhead


The “simple consumer” assumption



Fully compatible with WSDL

Web

Service


Functionality


Access


methods


Location


Various
constraints


Management


statements


Multiple
classes of


service
for one


Web Service

WSDL

document

WSOL


document

WSDL vs. WSOL

WSOL: Classes of Service


& Service Offerings ...


Definition of terminology


Problem definition



=> Classes of service and service offerings


WSOL language constructs and examples


Applications and tools



Related work and summary of WSOL
benefits


Future work

Classes of Service for

One Web Service


Discrete variations of service and QoS



Same functionality (WSDL description)


Differ in constraints, prices, and/or other
management issues



For different consumer Web Services


With different utilization of the underlying
resources

Example: buyStock WS

Classes of Service


buyStock Web Service



class of service 1



class of service 2





Usage privileges


Quality, verbosity, and/or formatting of results


Guaranteed response time / Rate and priority of
notification


Payment models (pay
-
per
-
use, subscription)


Prices and/or penalties for broken guarantees


Entities involved in monitoring and management


...

Classes of Service vs.

Potential Alternatives


Alternatives: customized SLAs, user profiles,
parameterization, separate ports, …



Not a complete replacement for alternatives


An additional and complementary mechanism



Main advantages: relatively low overhead and
limited complexity of required management

Definition of a Service Offering


A formal specification of a class of service for
a Web Service (“component
-
level”)


Contains formal specification of various
constraints and management statements


A simple contract and SLA between Web
Services



One Web Service can offer multiple service
offerings

WSOL: Language Constructs ...


Definition of terminology


Problem definition



Classes of service and service offerings


=> WSOL language constructs and examples


Applications and tools



Related work and summary of WSOL
benefits


Future work

WSOL Language Features


Defined using XML Schema


Compatible with WSDL 1.1



WSOL constructs:


constraint


statement


constraint group (CG)


constraint group template (CGT)


service offering

Constraint


A condition to be evaluated


Boolean expression


Evaluation: with operation invocations or periodic


Supported categories of constraints:


Functional constraints (pre
-
, post
-
, and future
-
conditions)


QoS (a.k.a. non
-

or extra
-
functional) constraints
-

using external ontologies of QoS metrics


Simple access rights


Generic <constraint> construct

Example WSOL Constraint

<
wsol:constraint

name
="C3"
xsi:type
=
"preConditionSchema:preCondition"
service
="buyStock:buyStockService"
portOrPortType
="buyStock:buyStockServicePort"
operation
="buyStock:buySingleStockOperation">



<
expressionSchema:booleanExpression
>





</expressionSchema:booleanExpression>


</wsol:constraint>

Expressions in WSOL


Boolean expressions


Comparisons


Arithmetic expressions


Array expressions
-

quantifiers ForAll & Exists


String expressions (limited)


Date/time and duration expressions (limited)


“External” operation calls


SOAP calls to other Web Services


Internal calls within constraint evaluators

Example WSOL Expression

<
expressionSchema:booleanExpression
>



<
expressionSchema:arithmeticExpression
>


<
expressionSchema:arithmeticVariable

avName
="buyStock:buySingleStockRequest.quantity"/>


</expressionSchema:arithmeticExpression>



<
expressionSchema:arithmeticComparator

type
=">"/>



<expressionSchema:arithmeticExpression>


<
expressionSchema:arithmeticConstant
>



<
expressionSchema:integerConstant

value
="0"/>



</expressionSchema:arithmeticConstant>


</expressionSchema:arithmeticExpression>


</expressionSchema:booleanExpression>

Statement


Information, other than constraint, about the
service offering


Price/penalty statements


Subscription, pay
-
per
-
use, or combinations


Management responsibility statements


Supplier, consumer, 3rd parties


Inclusion statements


Instantiations of constraint group templates


Declarations of external operation calls

Example WSOL Price Statement

<
wsol:price

name
="Price1"
service
="…"
portOrPortType
="…"
operation
="…">



<
wsol:numberWithUnitConstant
>



<
wsol:value
>3</wsol:value>



<
wsol:unit

type
="
currencyOntology
:milliDollar"/>


</wsol:numberWithUnitConstant>


</wsol:price>

Constraint Group (CG)


A named set of constraints, statements,
and/or nested CGs



Potential unit of reusability and management
responsibility



Single inheritance (a.k.a. extension) of CGs

Example WSOL CG

<
wsol:CG

name
="CG7"
service
="…"
portOrPortType
= "…"
operation
="...">



<
wsol:CG

name="CG8" service="…" portOrPortType= "…"
operation="...“>





</wsol:CG>



<
wsol:constraint

name="C7“ …>...</wsol:constraint>



<
wsol:include

constructName
="C3"
resService
="buyStock:buyStockService"
resPortOrPortType
= "buyStock:buyStockServicePort"
resOperation
="buyStock:buySingleStockOperation"
resName
="NewC3"/>


</wsol:CG>

Constraint Group Template (CGT)


A parameterized CG


Begins with declaration of abstract parameters


Parameters can be used in contained expressions



Single inheritance of CGTs


A CGT must be defined outside definitions of
other CGTs, CGs, and service offering



Instantiation of a CGT with concrete
parameters => a CG

Example WSOL CGT

<
wsol:CGT

name
="CGT2"
service
="…"
portOrPortType
= "…"
operation
="...">


<
wsol:parameter

name
=“maxResTime"
dataType
="wsol:numberWithUnit"
unit
="
QoSMeasOntology
:millisecond"/>



<
wsol:constraint

name = "QoScons2" …>


<expressionSchema:booleanExpression>



<expressionSchema:arithmeticExpression>



<
expressionSchema:QoSmetric
metricType="QoSMetricOntology:ResponseTime“

service="…"
portOrPortType= "…" operation="...“ measuredBy="WSOL_INTERNAL"/>


</expressionSchema:arithmeticExpression>



<expressionSchema:arithmeticComparator type = "&
lt
;"/>



<expressionSchema:arithmeticExpression>



<expressionSchema:arithmeticVariable
avName="
tns:CGT2.maxResTime
"/>



</expressionSchema:arithmeticExpression>


</expressionSchema:booleanExpression>


</wsol:constraint>


</wsol:CGT>

Syntax of a Service Offering


Similar to a CG: constraints, statements, CGs



Single inheritance of service offerings



No nesting of service offerings!


Use CGs instead



Single accounting party

Example WSOL Service Offering

<
wsol:serviceOffering

name
="SO1"
service
=
"buyStock:buyStockService"
accountingParty
="WSOL
-
SUPPLIERWS">





<
wsol:instantiate

CGTName
="CGT2"
resService
="..."
resPortOrPortType
="..."
resOperation
="..."
resCGName
="CG5">


<
wsol:parmValue name=“maxResTime"
>



<wsol:numberWithUnitConstant>


<wsol:value>
30
</wsol:value>



<wsol:unit type="QoSMeasOntology:
millisecond
"/>



</wsol:numberWithUnitConstant>


</wsol:parmValue>


</wsol:instantiate>

</wsol:serviceOffering>

Example: buyStock Web Service


buyStock Web Service


buyStockPortType


buySingleStockOperation


buySingleStockRequest


symbol


quantity


buySingleStockResponse


totalStockBuyingCost




buyStockBinding

buyStockPort

buyStock.wsdl

ServiceOffering1


accounting party: supplier


Constraint1: preCondition


scope: buyStockOperation


quantity > 0


Constraint2: QoSConstraint


scope: buyStockOperation


ResponseTime < 0.5 s


Price: 0.5 $

ServiceOffering2 …


buyStock.wsol

WSOL Support for

Reuse of Specifications


To model similar, but somewhat different,
classes of service


Supported reuse mechanisms:


Inclusion statements


Specialization of scope (for inclusion, instantiation)


Grouping: CGs, CGTs, and service offerings


Nesting of CGs


Single inheritance (a.k.a. extension): CGs, CGTs,
and service offerings


Templates: CGTs

Dynamic Relationships

Between Service Offerings


Dynamic = Run
-
time



For easier selection and negotiation of service
offerings


For dynamic adaptation of Web Service
compositions



Specified outside service offerings


Syntax: <SO1, S, SO2>

WSOL: Applications and Tools ...


Definition of terminology


Problem definition



Classes of service and service offerings


WSOL language constructs and examples


=> Applications and tools



Related work and summary of WSOL
benefits


Future work

Applications of WSOL


Web Service management: monitoring,
metering, accounting, and control


Contracts and SLAs between Web Services



Dynamic and autonomous adaptation and
management of Web Service compositions


To further increase agility, flexibility, adaptability



Dynamic selection and negotiation of Web
Services and classes of service

Example:

Management Third Parties

Consumer

WS

Accounting

Party

QoS

Constraint

Evaluation

Party

Metering

Party

Supplier

WS

Prototype WSOL Tools


WSOL parser with syntax checks and some
semantic checks



Future work:


Automatic generation of Java constraint
-
checking
code from WSOL and WSDL


Using composition filters and/or other aspect
-
oriented
(AO) approaches?


Java API for generation of WSOL files


WSOL: Related Work &

Summary of WSOL Benefits ...


Definition of terminology


Problem definition



Classes of service and service offerings


WSOL language constructs and examples


Applications and tools



=> Related work & summary of WSOL benefits


Future work

Some Related Work


Differentiated services


Formal specification of various constraints



Specification of SLAs for Web Services:


WSLA (Web Service Level Agreements)
-

IBM


WSML (… Management ...)
-

HP


WSEL (… Endpoint …)
-

IBM (no detail yet)


DAML
-
S
-

the Semantic Web community


OGSA (Open Grid Services Architecture)

Summary of Benefits of WSOL ...



Expressive power



Reduced run
-
time overhead



Orientation towards management
applications


Summary of Benefits of

WSOL: Expressive Power


Formal specification of various categories of
constraints and management statements


Multiple classes of service per Web Service



Mechanisms for reuse of specifications


Description of both static and dynamic
relationships between service offerings



Extensibility through external ontologies of
QoS metrics and measurement units

Summary of Benefits of

WSOL: Reduced Run
-
time Overhead


Classes of service



One language for various constraints



Metering and monitoring of WSOL
specifications can be done by 3rd parties


SOAP intermediaries or probes



Reasoning about WSOL service offerings can
be outsourced to specialized Web Services

Summary of Benefits of

WSOL: Management Applications


Simple contracts and SLAs that can be
monitored, metered, and controlled



Manipulation of service offerings useful in
both Web Service Management (WSM) and
Web Service Composition Management
(WSCM)



Development of tools in progress


WSOL: Related Work &

Summary of WSOL Benefits ...


Problem definition



Classes of service for one Web Service and
definition of a service offering


WSOL language features and examples


Applications and tools



Related work and summary of WSOL
benefits


=> Future work

Future Work


Improved tools


Improved syntax



Research of Web Service Composition
Management (WSCM) applications of WSOL



Compatibility with WSDL 1.2


Compatibility with BPEL4WS (Business Process
Execution Language for Web Services)





Questions, please ...