1 Assessing Contemporary Modularization Techniques for Middleware Specialization Akshay Dabholkar & Aniruddha Gokhale OOPSLA ACoM.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
Technical Architectures
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Communication in Distributed Systems –Part 2
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.
1 Middleware Specialization for Product-Lines using Feature-Oriented Reverse Engineering (FORMS) Akshay Dabholkar & Aniruddha Gokhale Institute of Software.
Messaging Technologies Group: Yuzhou Xia Yi Tan Jianxiao Zhai.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.
Chapter 10 Architectural Design
1 Assessing Contemporary Modularization Techniques for Middleware Specialization Akshay Dabholkar & Aniruddha Gokhale OOPSLA ACoM.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
Tiny Components – a collection of initial ideas copyright © 2003 Tiny Components Tiny Components A Component Model for Small, Embedded or Mobile devices.
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Introduction to MDA (Model Driven Architecture) CYT.
Lecture 15 Introduction to Web Services Web Service Applications.
Architecting Web Services Unit – II – PART - III.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Information Management NTU Interprocess Communication and Middleware.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Generative Middleware Specializations for Distributed, Real-time and Embedded Systems Institute for Software Integrated Systems Dept of EECS, Vanderbilt.
Architectures of distributed systems Fundamental Models
Architecture of Message Oriented Middleware [1]
Service Oriented Architectures Presentation By: Clifton Sweeney November 3 rd 2008.
Generative Programming. Automated Assembly Lines.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Architecture-Driven Context-Specific Middleware Specializations for Distributed Real-time and Embedded Systems Akshay Dabholkar, and Aniruddha Gokhale.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Towards a Holistic Approach for Integrating Middleware with Software Product Lines Research Institute for Software Integrated Systems Dept of EECS, Vanderbilt.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
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,
The Middleware By Jiraphat Wattanapateepgorn Jearanai Muangsuwan.
The Role of Reflection in Next Generation Middleware
Chapter 1: Introduction to Systems Analysis and Design
Architecting Web Services
Architecting Web Services
OO Methodology OO Architecture.
#01 Client/Server Computing
An Approach to Middleware Specialization for Cyber Physical Systems
Inventory of Distributed Computing Concepts and Web services
Software Connectors – A Taxonomy Approach
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Inventory of Distributed Computing Concepts
Tools for Composing and Deploying Grid Middleware Web Services
Service Oriented Architecture (SOA)
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Architectures of distributed systems
Design Yaodong Bi.
Architectures of distributed systems Fundamental Models
Chapter 1: Introduction to Systems Analysis and Design
#01 Client/Server Computing
Presentation transcript:

1 Assessing Contemporary Modularization Techniques for Middleware Specialization Akshay Dabholkar & Aniruddha Gokhale OOPSLA ACoM 2008 Workshop Oct 19,

2 Motivation: Intelligent Transportation Systems  Gives rise to disparate middleware specialization needs i.e., minimizing footprint, maximizing throughput, real-time computation, dynamic adaptation to unpredictable runtime changes  Dynamic and constantly evolving systems  Rich in communication and information exchange  Stringent QoS and performance requirements  Invariably require middleware solutions and optimizations Intelligent Transportation Systems: An example DRE system Resource Constrained Real time (customization) High Performance Differentiated Services Real time High Performance Differentiated Services Adaptive to weather 2

3 Challenges in Middleware Specialization  Dynamic middleware-based systems require context specific optimizations and adaptations i.e., middleware specialization  How can we identify these specializations? Goal is to enable specializations at all stages of development life cycle in an integrated manner. Layered Middleware When ? What ? 3 COMPUTATIONAL REFLECTION How ?

4 Challenge 1: When to specialize?  Pre-postulated  Customizable o compile/link time, after development time o Generates specialized versions o e.g. static aspect weaving, compiler flags, precompiler directives,  Configurable o deployment/startup time, after compile time o e.g. CORBA PI, command-line parameters, ORB configuration files 4  Just-in-time (JIT)  Tunable o Fixed middleware core o After the startup time but before run time – init / bootstrap time o e.g. Component Configurator & Virtual Component patterns, two-step process (compile time: AOP, run time: Reflection)  Mutable o Most powerful (adaptive) o No concept of fixed middleware core so can evolve into something completely different or unexpected o e.g. MetaSockets, Reflection, Late Composition, dynamic aspect weaving

5  Feature Pruning  Traditional middleware provides a broad range of features (generic) for multiple application domains  Remove unessential features  Benefits: reduces footprint, improves performance Challenge 2: What to specialize?  Feature Augmentation  Traditional middleware may not provide the desired supporting features  Add the required features  Commonly used by next generation middleware designed to overcome the limitations of monolithic architectures  Particularly useful to incorporate domain- specific semantics within middleware  Context: Resource constrained embedded software require footprint management  Solution: Map application features to the supporting middleware features and optimize the middleware Need for consistent and correct feature management 5

6 Challenge 3: How to specialize?  Computational Reflection  Ability to introspect, reason about and adapt own behavior without exposing implementation 6  Model-Driven Engineering  Integrates MDSD with QoS- enabled component middleware  AOP for Middleware Specialization  Factorization and separation of cross-cutting concerns from the middleware core  Generate customized versions of middleware for application-specific domains  e.g. CORBA Interceptors, Two-step process (compile time: AOP, run time: Reflection)

7 Taxonomy of Middleware Specialization Techniques  Overlapping dimensions share concepts e.g. MDE/AOP includes both feature pruning & augmentation and can be used for customization as well as tuning  Dimensions can be combined to produce new variants of specialization  Serves as a guideline for synthesis of tools for design, V&V, analysis of specializations Three dimensional Taxonomy of Middleware Specializations How? What? When? 7

8 Assessment of the Taxonomy 8

9 Open Middleware Specialization Research Areas  Based on the survey at least four research areas show up:  Specialization of Domain-specific middleware services  Mutable middleware specialization is powerful but a dangerous technique  Application inconsistency caused by overlapping specialization techniques (similar to feature interaction problem in pattern recognition)  No single specialization that can adapt a entire distributed application → Safe specializations? → V&V of specializations? → Integrated specializations? → Pattern Languages of Specializations? An Integrated Tool Suite based on specialization pattern languages to support synthesis, verification and validation of specializations 9

10 Thank You! Questions? 10

11 Traditional Middleware operation () Object : Interface X : Client OO Middleware  RPC Middleware  Extends traditional procedure calls to remote  Specialized using dynamic binding selection  Object Oriented Middleware  combines object-oriented programming paradigm and the RPC architecture  Specialized using design patterns, frameworks, reflection  Transactional Middleware  supports distributed transactions among distributed processes  Specialized similar to OO middleware using most resource and performance efficient bindings  Message Oriented Middleware (MOM)  facilitates asynchronous message exchange between clients and servers using the message-queue  Specialized for a particular routing substrate, protocols 11

12 Traditional Middleware Specialization  Traditional specialization techniques  use OO, design patterns and frameworks  mostly focus on runtime and compile-time  No way to integrate multiple specializations  don’t focus on domain-specific specializations Middleware TypeExamples RPC middlewareSun RPC, DCE Object-Oriented middleware Java RMI, CORBA, DCOM Transactional middleware IBM CICS, BEA Tuxedo Message-oriented middleware (MOM) IBM MQ-Series, Sun JMS 12

13 Middleware Specialization Solutions (1/2)  AOP + Feature management Footprint minimization for embedded systems product lines Aspects Beat Objects (Spinczyk et. al.)  AOP as an alternative to OO  AOP achieves better SoC than OO with significantly smaller memory footprints  Features Pruning FACET (Cytron et. al.)  Minimal middleware core  Encapsulate crosscutting concerns into user selectable aspects  Feature Augmentation  AOP + MDA Modelware (Zhang et. al.)  “Intrinsic “ or middleware core or base view – o essential, invariant, architectural elements o composed with design patterns  “Extrinsic” or aspect view – o optional elements subject to refinements o domain variations o Feature Augmentation  Concrete middleware instances o Realization – select abstraction implementations from both views o Projection – create ontological relationships between both views  AOP + Reflection Aspect OpenORB (Batista et. al.)  Separation of application code and configuration files  Feature Augmentation though AOP  Dynamic specialization though MOP

14 Middleware Specialization Solutions (2/2)  Patterns + AOP + MDE Cross-Layer Specialization  Explicit cooperation between layers e.g. Gnutella (Gregori et. al.)  Functionality migration to lower layers e.g. Vertical Migration (Stockenberg et. al.)  Generate context dependent versions of system calls using partial evaluation  Incorporate routing, caching in networking layers e.g. Web servers  Manual/automated bundling of several system calls to do more work with fewer protection boundary crossings  AOP + Pre-postulated + Mutable Bypassing Middleware Layers (Devambu et. al.)  Eliminates rigid middleware layer processing  Beneficial where response is a simple function of the request input parameters  Uses AOP and code generation (IDL-based) to build bypassing implementations  MDE + Reflection + Pre-postulated Deployment Time Optimization (Lee et. al.) IBM BluePencil  Based on configuration settings of target environment  Select correct binding (Java RMI vs. SOAP)  Select drivers offering only the required features and better performance (databases) 14