450 likes | 602 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
E N D
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 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 Service Supplier WS Another WS Consumer 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
WSDL vs. WSOL Web Service WSDL document WSOL document • Various constraints • Management • statements • Multiple classes of • service for one • Web Service • Functionality • Access • methods • Location
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 WSClasses of Service buyStock Web Service • 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 • ... class of service 1 class of service 2 …
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:constraintname="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:arithmeticVariableavName="buyStock:buySingleStockRequest.quantity"/> </expressionSchema:arithmeticExpression> <expressionSchema:arithmeticComparatortype=">"/> <expressionSchema:arithmeticExpression> <expressionSchema:arithmeticConstant> <expressionSchema:integerConstantvalue="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:pricename="Price1" service="…" portOrPortType="…" operation="…"> <wsol:numberWithUnitConstant> <wsol:value>3</wsol:value> <wsol:unittype="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:CGname="CG7" service="…" portOrPortType= "…" operation="..."> <wsol:CG name="CG8" service="…" portOrPortType= "…" operation="...“> … </wsol:CG> <wsol:constraint name="C7“ …>...</wsol:constraint> <wsol:includeconstructName="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:CGTname="CGT2" service="…" portOrPortType= "…" operation="..."> <wsol:parametername=“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 = "<"/> <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:serviceOfferingname="SO1" service= "buyStock:buyStockService" accountingParty="WSOL-SUPPLIERWS"> … <wsol:instantiateCGTName="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 buyStock.wsdl buyStock.wsol ServiceOffering1 accounting party: supplier Constraint1: preCondition scope: buyStockOperation quantity > 0 Constraint2: QoSConstraint scope: buyStockOperation ResponseTime < 0.5 s Price: 0.5 $ ServiceOffering2 … buyStockPortType buySingleStockOperation buySingleStockRequest symbol quantity buySingleStockResponse totalStockBuyingCost … buyStockBinding buyStockPort
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 Supplier WS Consumer WS Accounting Party Metering Party QoS Constraint Evaluation Party
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) • …