A talk given at IEEE Software Experts Summit, October 2015 in Beijing, exploring how software architecture is likely to change in the future as a result of software defined platforms and on-demand analytics, and the implications of this.
World Defining Architecture Architecture Today Where Architecture is Going Self-Adaptive Systems Examples Implications For Us All QUALITY. PRODUCTIVITY. INNOVATION.
the term “architecture” For our purposes: Software Architecture is the set of software related elements that comprise a software-intensive system, their relationships, and the set of design decisions that allow the system to meet its system quality requirements (“non-functionals”) Software architecture tends to be the decisions that are difficult to change once implemented [Fowler] QUALITY. PRODUCTIVITY. INNOVATION.
as: • Static yet Ephemeral • Set in stone, difficult to discern in the running system • Depends on “Up-Front” Platform Design • The least agile part is the runtime platform design • Difficult to change • Architectural change is a manual, time-consuming affair QUALITY. PRODUCTIVITY. INNOVATION.
• Static, device centric, manual change, request based … to dynamic, virtualised, automated, policy based • Enabled by the “API for Infrastructure” – “SDx” QUALITY. PRODUCTIVITY. INNOVATION. http://www.cxotoday.com/story/cisco-vmware-deliver-next-generation-cloud-infrastructure/ http://www.bbc.co.uk/news/business-22879160
undergoing major change • Centralised very expensive warehouses … to scalable open source and SaaS analysis platforms • Platform and algorithms becoming accessible commodities • Allow predictive analytics on large data sets QUALITY. PRODUCTIVITY. INNOVATION. http://www.iconshut.com/ http://www.dbtekpro.com/2014/10/21/scaling-data-apps-cloud/
– what has happened so far? • Predictive – what is likely in the future? • Prescriptive – how do we optimise in response? Example using Predictive Analytics • Transaction profiling of system activity metrics • Machine learning to “teach” the system what peaks in activity look like • Resulting model predicting future activity peaks QUALITY. PRODUCTIVITY. INNOVATION. https://azure. microsoft.com
be on software architecture? • SDx gives measurement and control of platform • Analytics provides insight into system operation • SDx + Analytics == dynamic platform • Where does this leave the software architecture? • The weak link? QUALITY. PRODUCTIVITY. INNOVATION.
our architecture? • Needs first class architecture in the code • SDI + Analytics + SDA == dynamic system Architecture API Control The Missing API - Architecture QUALITY. PRODUCTIVITY. INNOVATION. Platform API Analytics Based Controller Control Dynamic Infrastructure Platform Measurements
Article • An Architecture Based Approach to Self-Adaptive Systems • Oreizy, Gorlick, Taylor, Heimbigner, Johnson, Medvidovic, Quilici, Rosenblum and Wolf 2009 – QoSA Conference theme • Architectures for Self-Adaptive Software Systems Research still going on today • Recent survey paper “A survey on engineering approaches for self-adaptive systems” by Krupitzer, Roth, VanSyckel, Schiele, and Becker Self-Adaptive Systems QUALITY. PRODUCTIVITY. INNOVATION.
systems that … • Auto-scale reactively • Add capacity when load increases (we have this today) • Intelligently auto-scale predictively • Adjust capacity for predicted peaks and troughs • Change their functional behaviour • Predictively replace processing components to meet predicted requirements QUALITY. PRODUCTIVITY. INNOVATION.
involve: • Knowing the current structure (a model) • Adding & removing elements and connectors • Being able to “rewire” elements & connectors • Patterns for allowable transformations • Structural constraints to reject invalid structures • Policy based constraints for unacceptable systems • API implemented by the platform (PaaS) Programming language extension or an external language? • In the codebase & “compiled” • Maybe related to existing “ADLs”? QUALITY. PRODUCTIVITY. INNOVATION.
practice? • More cross disciplinary research than is normal • Data, machine learning, adaptive systems, middleware, … • More industry and academic cooperation • Industry has the systems, academia the models • Crossing roles including architecture, infrastructure & testing • First class runtime software architecture • You need a model of the architecture to change it • That model should be in the implementation • No (general) runtime architecture models in use today • The challenge Software Architecture research needs? QUALITY. PRODUCTIVITY. INNOVATION.