1 Middleware Specialization for Product-Lines using Feature-Oriented Reverse Engineering (FORMS) Akshay Dabholkar & Aniruddha Gokhale Institute of Software.

Slides:



Advertisements
Similar presentations
Chapter 13 Review Questions
Advertisements

Architecture Representation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
1 Middleware Specialization using Aspect-Oriented Programming Dimple Kaul, Aniruddha Gokhale
MIS 385/MBA 664 Systems Implementation with DBMS/ Database Management Dave Salisbury ( )
Chapter 13 (Web): Distributed Databases
1 Assessing Contemporary Modularization Techniques for Middleware Specialization Akshay Dabholkar & Aniruddha Gokhale OOPSLA ACoM.
Distributed Systems Architectures
Software Architecture Design Instructor: Dr. Jerry Gao.
The Architecture Design Process
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Course Instructor: Aisha Azeem
Computer Systems & Architecture Lesson Software Product Lines.
1 Assessing Contemporary Modularization Techniques for Middleware Specialization Akshay Dabholkar & Aniruddha Gokhale OOPSLA ACoM.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Software Product Families. Generative Programming Main text: Ian Sommerville, Software Engineering, 8 th edition, chapter 18 Additional readings: K. Czarnecki.
Robust Design Strategies I Gruia-Catalin Roman and Christopher Gill Washington University in St. Louis.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Protocols and the TCP/IP Suite
An Introduction to Software Architecture
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Overlay Network Physical LayerR : router Overlay Layer N R R R R R N.
SOFTWARE DESIGN.
Generative Middleware Specializations for Distributed, Real-time and Embedded Systems Institute for Software Integrated Systems Dept of EECS, Vanderbilt.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
Generative Programming. Automated Assembly Lines.
Sunday, October 15, 2000 JINI Pattern Language Workshop ACM OOPSLA 2000 Minneapolis, MN, USA Fault Tolerant CORBA Extensions for JINI Pattern Language.
DataReader 2 Enhancing Security in Ultra-Large Scale (ULS) Systems using Domain- specific Modeling Joe Hoffert, Akshay Dabholkar, Aniruddha Gokhale, and.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Architecture-Driven Context-Specific Middleware Specializations for Distributed Real-time and Embedded Systems Akshay Dabholkar, and Aniruddha Gokhale.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
ENABLING ADAPTABILITY IN COMPOSITE SERVICES USING TRANSPARENT SHAPING TECHNIQUES Onyeka Ezenwoye Autonomic Computing Research Laboratory School of Computing.
Towards a Holistic Approach for Integrating Middleware with Software Product Lines Research Institute for Software Integrated Systems Dept of EECS, Vanderbilt.
POSAML: A Visual Language for Middleware Provisioning Dimple Kaul, Arundhati Kogekar, Aniruddha Gokhale ISIS, Dept.
Enhancing Security in Enterprise Distributed Real-time and Embedded Systems using Domain-specific Modeling Akshay Dabholkar, Joe Hoffert, Aniruddha Gokale,
Towards A QoS Modeling and Modularization Framework for Component-based Systems Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Amogh Kavimandan (Presenter)
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Fault-tolerance for Component-based Systems – An Automated Middleware Specialization Approach Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Abhishek.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Systematic Specialization of General-Purpose Middleware for Cyber-Physical Systems Akshay Dabholkar, Aniruddha Gokhale, and Sumant Tambe Dept. of EECS,
A Vision for Integration of Embedded System Properties Via a Model-Component-Aspect System Architecture Christopher D. Gill Department.
J2EE Platform Overview (Application Architecture)
Chapter 8 Environments, Alternatives, and Decisions.
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
An Approach to Middleware Specialization for Cyber Physical Systems
Tools for Composing and Deploying Grid Middleware Web Services
An Introduction to Software Architecture
Templatized Model Transformation: Enabling Reuse in Model Transformations Amogh Kavimandan and Aniruddha Gokhale Dept. of EECS, Vanderbilt University,
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Presentation transcript:

1 Middleware Specialization for Product-Lines using Feature-Oriented Reverse Engineering (FORMS) Akshay Dabholkar & Aniruddha Gokhale Institute of Software Integrated Systems (ISIS), Vanderbilt University, Nashville, TN, USA Contact : International Symposium on Middleware and Network Applications (MNA 2010) Part of ITNG 2010 April 12-14, 2010, Las Vegas, Nevada, USA

2 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Case Study: Networked Logging Server Product Line  Different product variants based on their request processing paradigm  Commonalities:  Web based  TCP protocol  File Input Output  Connection Oriented  Serialization  Block based Input Output  Logging Function  Variabilities: (request processing)  Iterative  Reactive  Multithreaded  Thread Pools  Multiprocess  Signaling General-purpose Middleware Reactive Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec SelReactor HandleSet BasicTypes Reactive Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec SelReactor HandleSet BasicTypes TPC Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec ThreadMgr Signal BasicTypes TPC Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec ThreadMgr Signal BasicTypes RT-TPC Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec TPReactor ThreadMgr Signal SchedPara RT-TPC Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec TPReactor ThreadMgr Signal SchedPara PPC Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec Process ProcMgr Signal PPC Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec Process ProcMgr Signal Iterative Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec Iterative Logging Internet TCP File IO Acceptor Connector CDR MsgBlock LogMsg LogRec Logging Server Product Variants

3 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Motivation: PLE-driven Middleware Specialization  Contemporary General-purpose middleware (CORBA, J2EE)  Focus is on horizontal decomposition into layers  Bottom-up composition using modularized design template  Generic: Well designed for broad applicability to varied product line domains  Feature-rich: Supports flexibility & configurability of non- functional properties, such as security, real-time, FT etc.  However,  Each product variant incurs additional footprint and potential performance overhead due to unwanted features  Excessive features results into additional testing and maintenance costs  Cost of developing proprietary middleware is high  Moreover,  Not developed using top-down PLE composition techniques – Application & Domain Engineering  PLE concerns are tangled across module boundaries Needs Modularization along Domain Concerns – Vertical Decomposition Middleware Feature Layers

4 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 FORMS - Overview 1.Map PIM domain concerns to PIM middleware features through user interactive wizard 2.Determine the PSM middleware feature definitions (source hints) that correspond to the pruned middleware PIM feature model 3.Compute the middleware closure sets for each PSM source hint 4.Compose closure sets into logical feature modules for each individual product variants 5.Synthesize the feature modules into specialized middleware versions

5 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Product Line Engineering Requirements Reasoning  Feature Mapping Wizard asks interactive questions to the application developer about the application characteristics  The wizard traverses it’s internal decision tree to provide optional answers to each question and developer can have single or multiple choice  Each answer determines the next set of questions that will be asked  Each answer corresponds to a feature selection and subsequently prunes the middleware feature model incrementally PIM Middleware Feature Model

6 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 FORMS - Overview 1.Map PIM domain concerns to PSM middleware features through user interactive wizard 2.Determine the PSM middleware feature definitions (source hints) that correspond to the pruned middleware FM 3.Compute the middleware closure sets for each PSM source hint 4.Compose closure sets into a logical feature module for each individual product variant 5.Compose the feature modules into specialized middleware versions

7 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 PIM Middleware Features to PSM Feature Definitions  Extract the features from the pruned Middleware FM  Extracted Features ● PIM-PSM Mapping = Source hints (Feature Definitions)  Source hints are middleware features on which product variant is directly dependent  Source hints are the starting points for finding feature modules  Initial Build Configurations are also created using the source hints

8 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 FORMS - Overview 1.Map PIM domain concerns to PSM middleware features through user interactive wizard 2.Determine the PSM middleware feature definitions (source hints) that correspond to the pruned middleware FM 3.Compute the middleware closure sets for each PSM source hint 4.Compose closure sets into a logical feature module for each individual product variant 5.Compose the feature modules into specialized middleware versions

9 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Closure Computation for a Product Variant  Closure Set - Set of dependent feature definitions and implementations that have no dependencies outside the set  Middleware Feature Definitions and Implementations are defined by the middleware developer  Using the PSM source hints, the dependent feature definitions and implementations are found

10 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Closure Computation Algorithm  Input: Product Variant Feature Set, PIM Feature - PSM Definition mapping  Output: Closure set of dependent feature files 1.For each feature, find its feature definition (source hint) A.For each pending source hint I.Recursively find feature dependencies (definitions and implementations) II.Add newly discovered dependencies to pending set B.Stop when pending set is empty 2.Combine closure sets of all features of the product variant

11 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 FORMS - Overview 1.Map PIM domain concerns to PSM middleware features through user interactive wizard 2.Determine the PSM middleware feature definitions (source hints) that correspond to the pruned middleware FM 3.Compute the middleware closure sets for each PSM source hint 4.Compose closure sets into a logical feature module for each individual product variant 5.Compose the feature modules into specialized middleware versions

12 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Evaluation of Footprint and Feature Reduction  Original ACE (Adaptive Communication Environment) middleware  1,388 PSM source files  436 features  2,456 KB footprint  Specialized ACE middleware  ~500 PSM source files  64% reduction  ~ features  60-76% reduction  ~ 1,500 KB footprint  41% reduction

13 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Concluding Remarks  Forward Engineering though systematic and elegant does not modularize middleware implementations along domain concerns  Reverse Engineering techniques based on source code analysis offer a promising and viable alternative to modularize domain concerns within middleware code.  FORMS can lend useful insights into existing middleware modularization by pointing the discrepancies in the number of features desired and the number of source files required to implement them.  Middleware modules are Tightly Coupled  FORMS provides only Coarse- Grained Decomposition Fine-Grained Decomposition based on Application Context is needed

14 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 Questions?

15 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 State of Art: Middleware Specialization Research  Forward Engineering  AHEAD, CIDE, FOMDD  Rely on manual identification of features in source  FORMS enables automatic identification of coarse-grained features  Can be integrated with FORMS  FACET (Cytron et. al.)  Requires manual refactoring of core functionalities and additional crosscutting functionality into aspects  FORMS automates detection of features and their dependencies  Modelware (Zhang et. al.)  Uses models and views to separate essential, invariant middleware core or intrinsic base view from domain variations or extrinsic or aspect view  FORMS does not differentiate functional and non-functional concerns  Reverse Engineering  Pattern Mining  Relies on discovery of design patterns and frameworks  Informal and substandard due to variations in pattern implementations  FORMS does not rely on discovering framework and design structures  FORMS uses features to drive the detection of feature modules through source code reverse engineering

16 Akshay Dabholkar et al. FORMS for Product Line EngineeringITNG 2010 System Type? ServerClient-ServerP2P Request Handling? Iterative Mechanism? Strategy? Threads ConcurrentReactive Process On-demandEager Data Delivery? SynchronousAsynchronous CallbackPolling Notification?Synchronization? M.E.Locking Strategy? Read-WriteScoped Priority? FIFORR