SOFTENG 306B Part 1

Download Report

Transcript SOFTENG 306B Part 1

Developing .NET Web Servicebased 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
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
AOCE
AO Components will vertically slice the application
Distribution
related services
User Interface
related services
Software application
built using
AOCE techniques
Aspects will
horizontally slice the
Components
Persistency
related services
Performance
related services
Data processing
comp.
Event History
Process
Views
AWSA '04 Presentation (c) Santokh, John Grundy
& John Hosking
Process
Users
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
AO-Discovery
Agencies
(AOUDDI)
Find, using
aspectual
queries &
responses
Publish
Runtime
Validation and
Adapting
AOService
Requestors
Aspectoriented
Clients
AO-Service
Description
(AOWSDL)
Validating
agents/
Adaptors
AOService
Providers
Interact/bind
Aspectoriented
Services
AWSA '04 Presentation (c) Santokh, John Grundy
& John Hosking
AO-Service
Description
(AOWSDL)
AOCE.NET
 Overview of using AOCE to develop .NET web service-based
software systems
AO-Servers
Fully Componentised
Aspect-oriented Web
services providers
AOAdaptors
Flights Web Services
6. Validate and
Integrate Web
Services
Hotels Web Services
.Car Rentals WS
1. AO-Specification
and AO-Designs
2. Implementation
Using AOCE
4. Register Web
Services
Validation
Agents
AO-Client(s)
3. Deploy Web
Services
AO-WSDL
AO-UDDI
AWSA '04 Presentation (c) Santokh, John Grundy
& John Hosking
5. Discover Web
Services
AOCE design for travel planner
components
SearchInterface
BookingInterface
Middleware
MakeBooking
PaymentManager
Aspect
Annotations
Provides
Requires
Distribution
TravelItemsManager
Persistency
TransactionCo-ord
Security
Transaction
Database
+begin(): void
+commit(): void
AWSA '04 Presentation (c) Santokh, John Grundy
& John Hosking
User interface
Travel planner's AO-web
service-based architecture.
<<UI>>
+process v iews
-f orm/f rame
Staf f Trav elPlanner Client
SQL
<<Persistency >>
+ store data
+retriev e data
- storage media
<<UI>>
+process v iews
-f orm/f rame
<<Security >>
+ authentication
- encode data
- decode data
<<WebService>>
-services
-locate service
HTTP
Customer Trav elPlanner Client
SQL
SOAP
Interact
Trav el Planner Database
Serv ice Requester Application
<<Transaction
Processing>>
+commitdata
+ rollback data
- lock data data
<<Distribution>>
+ locate object
- object transf er
<<Persistency >>
+ store/retriev e data
<<WebService>>
+services
Validating
and Testing
agents
AO-Post Filter
AP
SO nd
Fi
c
era
I nt
t
SQL
Other Web
Serv ice Prov iders e.g.
Itenary Manager,
HotelsWebServ iceetc.
<<Distribution>>
+ locate object
- object transf er
<<Persistency >>
+ store/retriev e
data
<<WebService>>
+locate service
AO-WSDL
<<Persistency >>
+ store data
+retriev e data
- storage media
Prov iderDatabase
AO-Adapter
<<Transaction
Processing>>
+commitdata
+ rollback data
- lock data data
<<Distribution>>
+ locate object
SQL
- object transf er
<<Persistency >>
+ store/retriev e data
<<WebService>>
+services
Discov ery Agencies
(AO-UDDI)
SOAP
Publish
Hotels
Serv ice Prov ider Serv er
SOAP
Publish
AWSA '04 Presentation (c) Santokh, John Grundy
& John Hosking
<<Persistency >>
+ store data
+retriev e data
- storage media
Prov iderDatabase
Travel Planner: simplified version
AOUDDI
Registry
Testing Agents
Web services
repository
AOWSDL
Flights Services
Pay & Book
Composite
Travel Planner
Client
AOWSDL
Hotels Services
AOWSDL
Car Rentals Services
AOWSDL
Booking Adaptor
AOWSDL
Payment Services
AWSA '04 Presentation (c) Santokh, John Grundy
& John Hosking
Example of using the AO-UDDI
registry
•AOUDDI – AspectOriented 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 - 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.
……..
<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" />
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…
AWSA '04 Presentation (c) Santokh, John Grundy
& John Hosking