Characteristics of the Web Service Offerings Language (WSOL) Presenter: Vladimir Tosic (work with K....

45
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 [email protected] http://www.sce.carleton.ca/netmanage/

Transcript of Characteristics of the Web Service Offerings Language (WSOL) Presenter: Vladimir Tosic (work with K....

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

EngineeringCarleton University, Ottawa, Canada

[email protected]://www.sce.carleton.ca/netmanage/

Outline

Definition of terminologyProblem definition

Classes of service and service offeringsWSOL language constructs and examplesApplications and tools

Related work and summary of WSOL benefitsFuture work

WSOL: Definition of Terminology

=> Definition of terminologyProblem definition

Classes of service and service offeringsWSOL language constructs and examplesApplications and tools

Related work and summary of WSOL benefitsFuture 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 StandardTechnologies 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 ServiceConsumer

WSSupplier

WSAnother

WS

WSOL: Problem Definition ...

Definition of terminology=> Problem definition

Classes of service and service offeringsWSOL language constructs and examplesApplications 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

WebService

• Functionality• Access methods• Location

• Various constraints• Management statements• Multiple classes of service for one Web Service

WSDLdocument

WSOL document

WSDL vs. WSOL

WSOL: Classes of Service & Service Offerings ...

Definition of terminologyProblem definition

=> Classes of service and service offeringsWSOL language constructs and examplesApplications and tools

Related work and summary of WSOL benefitsFuture 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 ServicesWith different utilization of the

underlying resources

Example: buyStock WSClasses of Service

buyStock Web Service

class of service 1 class of service 2 …Usage privilegesQuality, verbosity, and/or formatting of resultsGuaranteed response time / Rate and priority of

notificationPayment models (pay-per-use, subscription)Prices and/or penalties for broken guaranteesEntities involved in monitoring and management ...

Classes of Service vs. Potential Alternatives

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

Not a complete replacement for alternativesAn 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 terminologyProblem definition

Classes of service and service offerings=> WSOL language constructs and examplesApplications and tools

Related work and summary of WSOL benefitsFuture work

WSOL Language Features

Defined using XML SchemaCompatible with WSDL 1.1

WSOL constructs: constraint statement constraint group (CG) constraint group template (CGT) service offering

ConstraintA condition to be evaluated

Boolean expression Evaluation: with operation invocations or

periodicSupported 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 WSOLBoolean expressionsComparisonsArithmetic expressionsArray expressions - quantifiers ForAll &

ExistsString 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>

StatementInformation, other than constraint, about

the service offeringPrice/penalty statements

Subscription, pay-per-use, or combinationsManagement responsibility statements

Supplier, consumer, 3rd partiesInclusion statementsInstantiations of constraint group templatesDeclarations 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 CGTsA 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 … buyStockBindingbuyStockPort

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 offeringsSyntax: <SO1, S, SO2>

WSOL: Applications and Tools ...

Definition of terminologyProblem definition

Classes of service and service offeringsWSOL language constructs and examples=> Applications and tools

Related work and summary of WSOL benefits

Future work

Applications of WSOLWeb 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

ConsumerWS

AccountingParty QoS

ConstraintEvaluation

Party

MeteringParty 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 WSDLUsing 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 terminologyProblem definition

Classes of service and service offeringsWSOL language constructs and examplesApplications and tools

=> Related work & summary of WSOL benefits

Future work

Some Related Work

Differentiated servicesFormal 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 communityOGSA (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 specificationsDescription 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 examplesApplications and tools

Related work and summary of WSOL benefits

=> Future work

Future WorkImproved toolsImproved syntax

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

Compatibility with WSDL 1.2Compatibility with BPEL4WS (Business Process

Execution Language for Web Services)…

Questions, please ...