Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.

Slides:



Advertisements
Similar presentations
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
Advertisements

A component- and message-based architectural style for GUI software
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Aspect Oriented Programming - AspectJ Radhika Rajput.
Copyright © 2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Andrew Stone Common Security.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
Transparent Robustness in Service Aggregates Onyeka Ezenwoye School of Computing and Information Sciences Florida International University May 2006.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
A Framework for Smart Proxies and Interceptors in RMI Nuno Santos P. Marques, L. Silva CISUC, University of Coimbra, Portugal
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Chapter 7 Java Server Pages. Objectives Explain how the separation of concerns principle applies to JSP Describe the operation and life-cycle of a JSP.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
Aspect Oriented Programming Gülşah KARADUMAN.
Domain Driven Web Development With WebJinn Sergei Kojarski College of Computer & Information Science Northeastern University joint work with David H. Lorenz.
JCMP: Linking Architecture with Component Building Guoqing Xu, Zongyuan Yang and Haitao Huang Software Engineering Lab, East China Normal University SACT-01,
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Architectural pattern: Interceptor Source: POSA II pp 109 – 140POSA II Environment: developing frameworks that can be extended transparently Recurring.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Domain Driven Web Development With WebJinn Sergei Kojarski College of Computer & Information Science Northeastern University joint work with David H. Lorenz.
Devon M. Simmonds Computer Science Department, CSC592 1 Devon M. Simmonds Computer Science Department University of North Carolina, Wilmington
Application of AI techniques for Computer Games BSc Computer Games Programming, 2006 Julien Delezenne GAMES ARTIFICIAL INTELLIGENCE.
Aspect Oriented Programming Adlux Consultancy Services Pvt Ltd
Kansas City Java User’s Group Jason W. Bedell July 12, 2006
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Aspect Oriented Security Tim Hollebeek, Ph.D.
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
Introduction to Yan Cui Aspect Oriented Programming by
Enterprise JavaBeans: Fundamentals. EJB Fundamentals(c)CDAC(Formerly NCST)2 Contents Introduction Technology Overview EJB Architecture EJB Specification.
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
Basic Characteristics of Object-Oriented Systems
TTCN-3 Testing and Test Control Notation Version 3.
Leveraging ColdSpring to build a robust Flex applications Chris Scott, Cynergy Systems.
CompSci 280 S Introduction to Software Development
Chengyu Sun California State University, Los Angeles
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Inventory of Distributed Computing Concepts and Web services
Chengyu Sun California State University, Los Angeles
Inventory of Distributed Computing Concepts
JAsCo an Aspect-Oriented approach tailored for
CS520 Web Programming Spring – Aspect Oriented Programming
AspectAda Aspect-Oriented Programming for Ada95
Aspect Oriented Software Design
Distributed System using Web Services
Adaptive Programming in JAsCo
Presentation transcript:

Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering Lab Vrije Universiteit Brussel ECOOP Workshop

Introduction –Web Services –Aspect Oriented Programming Web Services Management Layer –Architecture –JAsCo Technology –Redirection Mechanism and Hot Swapping –Service Management Conclusions Overview

Introduction Web Services –Independent modules Described, published, localised and invoked over a network using XML-standards –Integrated in client-applications using the Wrapper Approach Automatically generate client-stub and treat service as an internal component Used in Visual Studio.NET, Bea Web Logic, etc

Introduction Problem Statement –Services are hard-wired in application How to adapt to changes? What if service or network fails? How to deal with other service related issues? –Checking of availability, switching to other services, dealing with billing, security, logging, etc –Needs to be provided manually by the programmer –Results scattered and tangled in the application  Use AOP to achieve better separation of concerns

Introduction Aspect Oriented Programming (AOP) –Tyranny of the dominant decomposition Impossible to modularize some concerns (e.g. logging) using current software engineering methodologies such as OO. As a result code gets scattered all over the system AOP Concepts –Modularize these concerns in Aspects –An aspect defines a set of join points –Weavers to weave aspect logic in the core application

Web Services Management Layer The Wrapper Approach

Web Services Management Layer Introducing the WSML to decouple Web Services from the client-application

Web Services Management Layer Use the WSML to deal with all web service related issues

Web Services Management Layer Core Functionality –Decoupling of Services from application Redirection of application requests to service invocations –Hot-Swapping Switch between services at runtime –Advanced Service Selection and Monitoring Select services based on business driven requirements –Service Management Security, logging, billing, transaction management, etc

Web Services Management Layer Use of JAsCo Technology –Dynamic Aspect Oriented Language –Introduces two new concepts: Aspect Beans: –specify crosscutting behaviour in a reusable manner: »When the normal execution of a method should be intercepted »what extra behaviour should be executed at those points. Connectors: –Specify deployment details: »where the crosscutting behaviour should be deployed.

Web Services Management Layer

Hotel Service Example

Web Services Management Layer Code Example 1 1. Class ListAvailableHotelsAspect { 2. hook RedirectionHook { 3. RedirectionHook(method(..args)){ 4. execute(method); 5. } 6. replace() { 7. return specificMethod(args); 8. } 9. abstract public String specificMethod(args); 10. } 11. } Redirection Aspect for the request ListHotels One Aspect for each request Hook specifying to replace method (..args) with specificMethod (args) specificMethod is specified in the connector

Web Services Management Layer Code Example 1 1. static connector HotelServiceC_listHotels { 2. ListAvailableHotelsAspect.RedirectionHook redirectionhook = new 3. ListAvailableHotelsAspect.RedirectionHook(List listHotels(args)){ 4. public String specificMethod(args) { 5. try { 6. Stub stub = new Stub (WebServiceC); 7. result = stub.listAvailableHotels(args); 8. return result; 9. } 10. catch (ServiceUnavailableException e) { 11.WSML.failureNotification ("WebServiceC"); 12.return asi.HotelServiceASI.listHotels (args); 13. } 14. } 15. } 16. redirectionhook.replace(); 17. } Connector for WebService C Connector for each Service Invocation specificMethod with actual service call Hook instantiation

class BillingPerUse { hook BillingHook { private int total = 0; private int cost = 0; public void setCost(int aCost){ cost = aCost; } private void pay(){ total = total + cost; } BillingHook(method (Date d1,Date d2,CityCode cc)) { call(method); } after() { pay(); } Web Services Management Layer Code Example 2 Service Management: Billing Aspect Billing Aspect to bill each time a service is invoked Billing hook

Web Services Management Layer Code Example 2 Service Management: Billing Aspect Same connector before, now extended with billing hook Instantiation of the billing hook static connector HotelServiceC_listHotels { … BillingPerUse.BillingHook billPerUse = new BillingPerUse.BillingHook (List listHotels(args)); billPerUse.setCost(2); redirectionhook.replace(); billPerUse.after(); }

Conclusions AOP is suited to modularize Web Service related issues Use JAsCo to dynamically hot-swap between services and allow runtime management More flexible applications that can easily adapt to changes in the environment