Experience on Developing Adaptive Middleware Based Systems : Cost, benefit and design approach Research Seminar
Jan 17, 2018
Experience on Developing Adaptive Middleware Based Systems : Cost, benefit and design approach Research Seminar Outline About Me Background and Motivation Research Challenges and Business Demands Experience in 5 Aspects Collaboration Opportunities Research Vision About Me Researcher, present. ESE, NICTA Software architectures and middleware systems PhD, University of Sydney Supervisors: Prof. Alan Fekete and Prof. Ian Gordon Thesis: A framework of performance prediction of component-based applications Reviewers: Dr. Len Bass, Prof. John Grundy and Dr. Piyush Maheshwari PhD Thesis : Performance Prediction Method Performance Prediction Architecture model (calibrating) Application model (design modeling) Performance Model (populating) Performance Profile (benchmarking) Performance Modeling How I get here Research Mission Devising analysis models, architectures and frameworks to improve the design and runtime performance and dependability of distributed software systems. Background and Motivation What is Middleware? Middleware is connectivity software that consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. Cited from SEI definition of middleware, ww.sei.cmu.edu/str/descriptions/middleware.html Middleware Behind the Scene of Complexity diagram from Jeff Kapharts talk on Software Agents and the Information Economy What is Middleware? Middleware Characteristics Many kinds and widely used Pervasive and ambient to the end users Failure and malfunction of middleware can directly affect user experience Capability of current middleware systems Stack of services to facilitate distributed computing Already built in with smartness Challenges that middleware-based systems are facing today Increasing complexity Heterogeneity Mapping from business goals to middleware QoS management Adaptive Middleware Value Proposition Provide a sense and respond solution that supports the response to stimulus threats and opportunities to the enterprise in a timely and safe fashion Adaptive Middleware Characteristics Sense Detect stimuli across the Environment in real-time Analyse Aggregate stimuli across multiple sources; Analyse the reality Plan Compare reality and expectation Make optimal plans of actions Respond Invoke actions in real-time Research Challenges and Business Demands Business Demands and Open Problems Research Challenges 1.Extensible software architectures 2.Mechanisms to enable dynamic monitoring and adaptation 3.Accurate and reliable predictive models 4.Mapping high level business goals to low level QoS management Business Demands 1. Sense and Respond 2. Asynchrony 3. Global situational awareness 4. Accuracy and efficiency 5. Lower cost and higher quality than human administration Software Engineering Solutions 1.Architectural styles (patterns) and frameworks 2.Separation of concerns 3.Non-instrument probes 4.Process orchestration 5.Model-based analysis 6.Empirical evaluation Developing Adaptive Systems : ROI Enterprises are already middleware based Large scale, loose coupled, heterogeneous environment Enterprises have key elements for adaptation Databases, rules engines, service buses, data-mining capabilities. ROI: Incremental cost versus incremental benefits. Costs: Additional components in software stack Additional development time Benefits Applications are more efficient QoS assurance Experience in 5 Aspects Take-away Points 1.Requirement : adaptation is specialized for domains 2.Design principle: separation of concerns 3.Development method: composition rather than green field development 4.Evaluation criteria: preserving safe changes 5.Research adoption: unrealistic assumptions setup barriers Research Statement Integrating analysis models with software architectures to provide specialized solutions for domain specific applications to self-manage the performance and dependability and to preserve safe changes. Point 1 : adaptation is specialized for domains Enterprise Systems Defence systems Road and traffic management systems Is there anything generic and reusable? Initial attempt : adaptive message compression/decompression of Web services A little bit more complex : adaptive image processing of Web applications There IS something generic and reusable Architecture styles and patterns Common components for constructing sense-analyse-plan-respond loop Development of Adaptive Server Framework (ASF) Aims for ASF Factor out common services into infrastructure Reduce effort to build adaptive components Transparently enhance adaptive components with advanced features Make it faster, easier to build and enhance adaptive capability Adaptive Server Framework Architecture ASF Supported Adaptive Application Servers Middleware (.Net Framework/JAVA EE/ Enterprise Service Bus) Standard-based Management Layer Operating System Engine Executor Effector Sensor Effector SensorMonitorAnalyzer Repository Policy Manager Event Correlation Security Manager Web Services Wrapper ASF service layer Tested and and Optimized Sample ASF-based Implementation Customized, Application specific Adaptive component ASF pre-defined component with default implementation What is the software architecture design principle? Typical Stovepipe Solution Architecture Business logic and adaptation are crosscutting One-off solutions, hard to weave in customized adaptation Point 2 : Separation of Concerns Separate business logic components and adaptive components Plug-and-play deployment model Adaptive middleware provides programming models and services Easy to reconfigure and incorporate new adaptation What is the development method? You (ABC) Loan Broker Loan quote please? Quote please? 6.25% 6% 5.4% 5.4% from NAB Credit history? Hes alright Lets get a loan! Overload control Failover control Scenario 1 : Overload Control Scenario 2 : Automatic Failover What is the development method? Point 3 : Composition, Not From Scratch Legacy is the reality Enterprises have key elements for composing adaptive systems existing middleware, software frameworks, rules engines, service buses, data-mining capabilities Composing adaptive systems saves time and money ! But how ? Extending the architecture Adding in new components Adding in new mechanisms Composing Overload and Failover Control Application specific scenarios driven what to be composed ASF helps with how to compose them SmartProxyMonitorTesterPlanerManager Esper Complex event processing Quartz Job scheduling Reinforcement Learning OS Monitors jBPM Business process engine General SOA Architectures With Services Connected Through Endpoints Current Work : Developing a Process Driven Monitoring and Actuation Framework Increasing Sophistication of ASF Process Orchestration Chameleon Dashboard ASF Machine Learning Algorithms Model driven development Chameleon Dashboard Point 4 : Preserve Safe Changes Changes are made to the configuration, the behaviour, and the structure of the system. Demands on Efficient architecture designs Architecture evaluation methods Accuracy of analysis models Simulation and empirical evidence Optimization of learning process Heuristic hints Detecting and recovering from unsafe changes OS mechanisms Tools for mapping between business goals and infrastructure QoS management Business process and policy management Tools for development and maintenance IDE and model driven development Current Work : Enabling Design Level Prediction Design models analysis/simulation models Analysis/simulation models Prediction Point 5 : Avoid Unrealistic Assumptions Single server Hard coded control logic Empirical evaluation of accuracy Distributed as Web services Hard coded control logic Empirical evaluation of accuracy Distributed as any objects, components and services Control logic modelled as processes Built-in algorithms Design level prediction ASF Version 1 ASF Extension with services ASF Version 2 Summary Adaptation is specialized for domains Good separation of concerns is the design principle Composing adaptive systems saves money and time Preserving safe changes is the key to be successful Unrealistic assumptions blocks the way of research adoption Collaboration Opportunities Research Collaboration A platform to demonstrate integrated NICTA research capabilities AMP is under ArMature umbrella, leveraging process orchestration to control QoS management Opportunities for interdisciplinary research collaboration Software engineering methodologies and tools : testing and formal analysis Machine learning algorithms : mining rules, problem diagnosis Computing theories: queueing theory, random algorithms Operational research : linear programming and optimization Networking QoS control mechanisms : token bucket, QoS differentiation Impact A technology demonstrator with the differentiator, the capability of preserving safe changes Industry Collaboration Todo Research Vision Sense and Respond: Beyond Middleware "Sense and respond systems" are systems that detect critical conditions in an extended distributed environment and respond proactively. Prof. K. Mani Chandy, California institute of technology WP3 Linkages Process QoS System QoS COST=F(v1, v2, v3,, vn) Execution Engine Execution Engine WP3 WP2.2 Performance Analysis WP2.3 Design Level PredictionRun Time Adaptation From imagination to impact Backup Slides PhD Thesis : Performance Prediction Method Performance Prediction Architecture model (calibrating) Application model (design modeling) Performance Model (populating) Performance Profile (benchmarking) Performance Modeling Sense and Respond: Beyond Middleware Emerging platforms with much simpler programming models, larger scope and more unpredictable usage behavior. Design and develop adaptware to provide internet facing applications with cost-effective adaptation capability of managing performance and dependability Adaptware consists of a stack of adaptive components and a lightweight runtime environment deployable to the platforms