developing.net web service- based architectures with aspect-oriented component engineering santokh...
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…