developing.net web service- based architectures with aspect-oriented component engineering santokh...

16
AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking Developing .NET Web Service-based Architectures with Aspect-Oriented Component Engineering Santokh Singh 1 , Professor John Grundy 1,2 and Professor John Hosking 1 1 Department of Computer Science 2 Department of Electrical and Computer Engineering, University of Auckland, New Zealand

Upload: gertrude-payne

Post on 29-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Developing .NET Web Service-based Architectures with

Aspect-Oriented Component Engineering

Santokh Singh1, Professor John Grundy1,2 and Professor John Hosking1

1 Department of Computer Science

2 Department of Electrical and Computer Engineering, University of Auckland, New Zealand

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Outline Introduction & Motivation Aspect-oriented Component Engineering AO Components & Aspect Details AOCE – web services architecture AOCE.NET AOUDDI and AOWSDL Current and Future Work Conclusions

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Introduction

Present component-based systems engineering focuses on low level software component interface design and implementation.

Great setbacks – Often results in development of components whose

services are hard to understand and combine. Makes too many assumptions about other

components related to it. Component documentation is too low level which is

again hard to understand at higher levels.

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Motivation

Low-level software component interface design and implementation - cumbersome and difficult to comprehend.

The larger the software system, the more prevalent and critical this problem becomes.

Problem even in industries producing or refactoring the code for commercial software tools and systems.

Leads to tremendous wastage in terms of time, effort and resources.

A solution need to be found, real fast!

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Aspect-oriented Component Engineering

AOCE - a new component based software engineering technique.

Aims at enabling software engineers develop efficient, better and more reusable software components.

AO-Components are better characterised and categorised.

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

AOCEAO Components will vertically slice the application

Data processing comp. Event History Process

Views

Distributionrelated services

Software applicationbuilt using

AOCE techniques

Process Users

User Interfacerelated services

Persistencyrelated services

Performancerelated services

Aspects will horizontally slice the Components

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Aspects in AOCE

Aspects horizontally slice the overall software system that was vertically componentised.

Aspects characterize specific cross-cutting functional and non-functional properties of the components.

Examples of Aspects: security, persistency, configuration, collaboration,

transaction processing, distribution, user interface, performance and resource utilization.

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Aspect-oriented web services architecture

Find, using aspectualqueries & responses

AO-Discovery Agencies(AOUDDI)

AO-Discovery Agencies(AOUDDI)

AO-Service

Providers

AO-Service

Providers

AO-Service

Requestors

AO-Service

RequestorsInteract/bind

Publish

AO-ServiceDescription(AOWSDL)

Aspect-oriented Clients

Aspect-oriented Services

AO-ServiceDescription(AOWSDL)

Validating agents/

Adaptors

Validating agents/

Adaptors

Runtime Validation and

Adapting

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

AOCE.NET Overview of using AOCE to develop .NET web service-based

software systems

1. AO-Specification and AO-Designs

3. Deploy Web Services

2. Implementation Using AOCE

Fully Componentised Aspect-oriented Web

services providers

.Car Rentals WS

Hotels Web Services

Flights Web Services

AO-Adaptors

AO-Client(s) Validation

Agents

AO-Servers

AO-UDDI

4. Register Web Services

5. Discover Web Services

6. Validate and Integrate Web

Services

AO-WSDL

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

AOCE design for travel planner components

SearchInterface

BookingInterface

MakeBooking

Middleware

PaymentManager

TravelItemsManager

TransactionCo-ord +begin(): void +commit(): void Database

Provides

Requires

Distribution

Persistency

Security

Transaction

User interface

Aspect Annotations

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Travel planner's AO-web service-based architecture.

<<Distribution>>+ locate object- object transf er<<Persistency >>+ store/retriev edata<<WebService>>+locate serviceAO-WSDL

<<TransactionProcessing>>+ commitdata+ rollback data- lock data data<<Distribution>>+ locate object- object transf er<<Persistency >>+ store/retriev e data<<WebService>>+services

<<TransactionProcessing>>+ commitdata+ rollback data- lock data data<<Distribution>>+ locate object- object transf er<<Persistency >>+ store/retriev e data<<WebService>>+services

Staf f Trav el Planner Client

Discov ery Agencies(AO-UDDI)

Trav el Planner Database

Other WebServ ice Prov iders e.g.

Itenary Manager,HotelsWebServ ice etc.

Prov ider Database

SQL

SOAPPublish

SQL

SQL

HotelsServ ice Prov ider Serv er

SOAPPublish Prov ider Database

SQL

Customer Trav el Planner Client

Serv ice Requester Application

<<UI>>+process v iews

-f orm/f rame

<<UI>>+process v iews

-f orm/f rame

<<Persistency >>+ store data+retriev e data- storage media

<<Persistency >>+ store data+retriev e data- storage media

<<Persistency >>+ store data+retriev e data- storage media

<<Security >>+ authentication- encode data- decode data<<WebService>>-services-locate service

AO-Adapter

AO-Post Filter

Validatingand Testingagents

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Travel Planner: simplified version

AOUDDI Registry

AOUDDI Registry

Web services repository

Web services repository

Flights ServicesFlights ServicesAOWSDL

Payment ServicesPayment ServicesAOWSDL

Hotels ServicesHotels ServicesAOWSDL

Car Rentals ServicesCar Rentals ServicesAOWSDL

Booking AdaptorBooking Adaptor

AOWSDL

Pay & BookComposite

Pay & BookComposite

Testing AgentsTesting Agents

Travel Planner Client

Travel Planner Client

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Example of using the AO-UDDI registry

•AOUDDI – Aspect-Oriented Universal Description, Discovery and Integration business registry for locating and integrating ao-web services.

•AODDI can also handle multiple queries.

•Aspect details can be ascertained from the AOUDDI.

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

AOUDDI & AOWSDL (continued)

………… <xs:element name="Component" type="xs:string" use="required">   <xs:attribute name="ComponentName" type="xs:string" use="required" /> <xs:element name="ComponentDescription">   <xs:attribute name="Description" type="xs:string" use="required" />   </xs:element> <xs:element name="Aspects"> <xs:element name="FunctionalAspects"> <xs:element name="Aspect"> <xs:sequence> <xs:attribute name="Type" type="xs:string" use="required" /> <xs:attribute name="AspectName" type="xs:string" use="required" /> <xs:attribute name="WSEntryPoint" type="xs:string" use="required" /> <xs:attribute name="Standalone" type="xs:string" use="required" /> <xs:element name="AspectDescription">   <xs:attribute name="Description" type="xs:string" use="required" />   </xs:element> …………

…….. <aowsdl:Component ComponentName="FlightsDataManagementComponent"> <aowsdl:ComponentDescription Description="Component to find Flights to various cities and countries including seats availability in the flights" /> <aowsdl:Aspects> <aowsdl:FunctionalAspects> <aowsdl:Aspect Type="Persistency" AspectName=“Persistency_FlightsData" WSEntryPoint="true" Standalone="true"> <aowsdl:AspectDescription Description="To search for Flights based on dates and city or country query" /> …… <aowsdl:Parameters> <aowsdl:Parameter ParameterName="strCity" ParameterType="string" /> <aowsdl:Parameter ParameterName="strCountry" ParameterType="string" /> ….. </aowsdl:Parameters> <aowsdl:Return ReturnType="DataSet" />

AOWSDL - Aspect-Oriented Web Services Description Language for describing ao-web services.

•A sample of the component element in the AOWSDL document is shown on the left.

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Current/Future work

•Further AOUDDI, AOWSDL development

•Investigating automated AO-WS component discovery

•Automatic validation and integration/ adaptation

•Tool support

AWSA '04 Presentation (c) Santokh, John Grundy & John Hosking

Conclusions Time, effort and resources unnecessarily expanded

to understand low-level software component designs and implementations.

The bigger the system, the greater is the wastage. These losses can be minimised or even prevented.

Aspect-Oriented Component Engineering proposes a better way to characterise and categorise components in system architectures.

Hopefully it can address other issues like reducing outsourcing…