Slide 1

Slide 1 text

endava.com QUALITY. PRODUCTIVITY. INNOVATION. When Architecture Meets Data Self-Aware Systems for an Imperfect World Eoin Woods IEEE Software Experts Summit Beijing, October 2015 20151019.2

Slide 2

Slide 2 text

2 When Architecture Meets Data Self-Aware Systems for an Imperfect World  Defining Architecture  Architecture Today  Where Architecture is Going  Self-Adaptive Systems  Examples  Implications For Us All QUALITY. PRODUCTIVITY. INNOVATION.

Slide 3

Slide 3 text

3 3 To begin: what is “architecture”? Many uses of 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.

Slide 4

Slide 4 text

4 4 Architecture Today Software architecture today can be characterised 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.

Slide 5

Slide 5 text

5 5 Architecture – Static yet Ephemeral QUALITY. PRODUCTIVITY. INNOVATION. uml-diagrams.org http://msdn.microsoft.com

Slide 6

Slide 6 text

6 6 Architecture – Big Platform Up Front QUALITY. PRODUCTIVITY. INNOVATION. http://www.clipartpanda.com/ http://kenwoodrecords.com/ http://www.aberdeeninc.com/ http://www.tbngconsulting.com/

Slide 7

Slide 7 text

7 7 Architecture – Difficult to Change QUALITY. PRODUCTIVITY. INNOVATION. http://pubs.opengroup.org https://www.thehouseshop.com

Slide 8

Slide 8 text

8 8 Where Architecture is Going Where do current trends point for architecture? QUALITY. PRODUCTIVITY. INNOVATION. Data Driven Dynamic http://daily.captaindash.com/

Slide 9

Slide 9 text

9 9 Learning from Infrastructure Infrastructure is undergoing a revolution • 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

Slide 10

Slide 10 text

10 10 Democratisation of Data Data and analytics are also 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/

Slide 11

Slide 11 text

11 11 Analytics Providing System Insight Analytics possibilities • Descriptive – 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

Slide 12

Slide 12 text

12 12 Analytics Providing System Insight QUALITY. PRODUCTIVITY. INNOVATION. 0 50 100 150 200 Batch Time Batch Time 0 10 20 30 40 50 60 70 Memory Memory 0 10000 20000 30000 40000 50000 60000 Volume ? ? ? http://commons.wikimedia.org

Slide 13

Slide 13 text

13 13 Impact on Software Architecture? What could the effect 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.

Slide 14

Slide 14 text

14 14 Impact on Our Systems • SDx + Analytics == dynamic platform • Software architecture is still static – left behind? QUALITY. PRODUCTIVITY. INNOVATION. Dynamic Infrastructure Platform Analytics Based Controller Observations Changes http://msdn.microsoft.com

Slide 15

Slide 15 text

15 15 • What if we had an API for 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

Slide 16

Slide 16 text

16 Not a new idea 1999 – IEEE Intelligent Systems 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.

Slide 17

Slide 17 text

17 17 Self-Adaptive Systems QUALITY. PRODUCTIVITY. INNOVATION. Conditional Statements Online Algorithms Generic & Parameterised Algorithms Algorithm Selection Evolutionary Algorithms & ML

Slide 18

Slide 18 text

18 18 Self-Adaptive Systems QUALITY. PRODUCTIVITY. INNOVATION. Evolution Maintain Integrity Make changes; collect observations Adaptation Evaluate Operation Plan Change Apply Change Model (Adapted from Oreizy 99) System

Slide 19

Slide 19 text

19 19 What problems might this solve? We could have 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.

Slide 20

Slide 20 text

20 20 Performance Analytics Risk Estimator An Example QUALITY. PRODUCTIVITY. INNOVATION. Transaction Processor Request Handler Demand Message Bus Risk Calculator Risk Dashboard Predictive Controller Risk Estimator Risk Calculator

Slide 21

Slide 21 text

21 21 An API for Architecture Controlling our architecture would 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.

Slide 22

Slide 22 text

22 22 An API for Architecture Our example using an imaginary API QUALITY. PRODUCTIVITY. INNOVATION. arch = Platform.getArchitecture("MyArch") riskCalc = arch.getElement("RiskCalculator") msgBus = calc.getConnector("inboundMsg") dashBrd = calc.getConnector("dashboard") riskEst = arch.getElement("RiskEstimator") riskEst.setConnector("dashboard", dashBrd) riskEst.setConnector("inboundMsg", msgBus) riskCalc.setConnector("dashboard", null) riskCalc.setConnector("inboundMsg", null) riskCalc.deactivate() riskEst.activate() arch.commitChanges()

Slide 23

Slide 23 text

23 23 Implications What does this mean for research and 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.

Slide 24

Slide 24 text

24 24 Our Future Systems Architectures QUALITY. PRODUCTIVITY. INNOVATION. Handler Processor Calculator Store SDx Infrastructure System Analytics Architecture API Self-Adaptive Systems Dynamic Data-Driven Systems

Slide 25

Slide 25 text

25 Thank you QUALITY. PRODUCTIVITY. INNOVATION. Eoin Woods Endava eoin.woods@endava.com +44 207 367 1000 en_ewoods