Brueckner maschinenbau intelligent line management bitkom bigdata summit 2015
Agile Architecture v2.0 BITKOM Software Summit 2013
-
Upload
adam-boczek -
Category
Technology
-
view
1.389 -
download
0
description
Transcript of Agile Architecture v2.0 BITKOM Software Summit 2013
AGILEARCHITECTURE
Adam Boczek
@nativeagile
@codecentric
BITKOM Software Summit 2013 | Frankfurt am Main | Germany
AGILE ARCHITECTUREOXYMORON?� CONTROLLED CHAOS� OPEN SECRET� DARK LIGHT� LIVING DEAD� . . .
Adam BoczekAgile Coach | Enterprise Architect
xing.com/profiles/Adam_Boczek
@nativeagile
http://codecentric.de
@codecentric
https://www.xing.com/net/pri1f221ex/agilearchitecture
AGILITY INCORPORATESTHE IDEAS OF FLEXIBILITY, BALANCE, ADAPTABILITY, AND COORDINATION UNDER ONE UMBRELLA.(WIKIPEDIA)
ARCHITECTURE REPRESENTSTHE FUNDAMENTAL ORGANIZATION OF A SYSTEM EMBODIED IN ITS COMPONENTS, THEIR RELATIONSHIPS TO EACH OTHER, AND TO THE ENVIRONMENT AND THE PRINCIPLES GUIDING ITS DESIGN AND EVOLUTION. (IEEE1471 2007)
ARCHITECTURE REPRESENTS THE SIGNIFICANT DESIGN DECISIONSTHAT SHAPE A SYSTEM, WHERE SIGNIFICANT IS MEASURED BY COST OF CHANGE. (BOOCH 2006)
FLEXIBLESTRUCTURE
AGILE ARCHITECTURE
FLEXIBLESTRUCTUREORBEHAVIOR?
AGILE ARCHITECTURE
FLEXIBLESTRUCTUREANDBEHAVIOR.
AGILE ARCHITECTURE
AGILE ARCHITECTURE IS:� BUSINESS-CENTRIC� SIMPLE-AS-POSSIBLE� EVENT-DATA-DRIVEN � SINGLE-RESPONSIBILITY-BASED� CLOUD-ORIENTED�MULTI-PARADIGM
FLEXIBLE STRUCTURE
CLEANARCHITECTURE AND DIP*
Enterprise Business Rules
Application Business Rules
Interface Adapters
Frameworks & DriversControllers
Ext. Interfaces
Processes
Entities
* Robert C. Martin (Uncle Bob), Dependency inversion principle
AGILE ARCHITECTURE ISBUSINESS-CENTRIC
DOMAIN DRIVEN DESIGN*AGILE ARCHITECTURE IS BUSINESS-CENTRIC
Problem
Space
(Business)
Solution
Space
(IT)
* http://domainlanguage.com/ddd/
Agile Architecture
Ubiquitous
Language
Core and sub
domains
Bounded
contexts
Entities and
value objectsAggregates
Factories and
repositories
Services and
modulesDomain Events Context Mapping
AGILE ARCHITECTURE IS SIMPLE-AS-POSSIBLE
* http://simplearchitectures.blogspot.de/2011/10/sip-complexity-model.html
controlling complexity Through
Partitioning & ReductionSubclasses of a partition should be constructed
with the synergistic equivalence relation.Complexity
Number Of
the System States dice are homomorphic representatives of variables in
software systems and paths in business processes.
EVENT SOURCING & BIG DATACAPTURE ALL CHANGES TO AN APPLICATION STATE AS A SEQUENCE OF EVENTS*
* http://martinfowler.com/eaaDev/EventSourcing.html
Event Source
T1 | State 1
Event Source
T2 | State 2
Event Source
T3 | State 3
BIG Data
RepositoryEvent T1 | State 1
Event T2 | State 2
Event T3 | State 3
AGILE ARCHITECTURE IS EVENT-DATA-DRIVEN
PURE LAYERING
AGILE ARCHITECTURE IS SINGLE-RESPONSIBILITY-BASED
* MV* = MVP, MVC or MVVM
DOES ALL THE CLIENT JOB, MV*Presentation Layer
Business Layer
Persistence Layer
DOES ALL THE BUSINESS JOB
DOES ALL THE DB JOB
No business stuff
No business stuff
No Presentation stuff
CLEAN HYBRIDARCHITECTURE
Ext. Interfaces
Entities
Controllers
Use Cases
Entities
Controllers
Use Cases
Entities
Controllers
Use Cases
Active Record Command Query Responsibility Segregation
Domain DrivenDesign
AGILE ARCHITECTURE IS SINGLE-RESPONSIBILITY-BASED
SCALING OUTSTRATEGY*
AGILE ARCHITECTURE IS CLOUD-ORIENTED
* http://spacebug.com/scale-out-versus-scale-up-html/
RUNNING THE APPLICATION ON MANY HOSTS
SCALING UPSTRATEGY
JAVASCRIPTONE LANGUAGE FITS ALL*
JavaScript is a prototype-based scripting language with
dynamic typing and has
first-class functions.
It is a multi-paradigm language, supporting object-oriented,
imperative, and functional programming styles.
�Coding
�Testing
�Operating
* http://en.wikipedia.org/wiki/JavaScript
AGILE ARCHITECTURE IS MULTI-PARADIGM
JSONONE FORMAT FITS ALL*
AGILE ARCHITECTURE IS MULTI-PARADIGM
JSON or JavaScript Object Notation, is a text-based
open standard designed for
human-readable data interchange.
Derived from the JavaScript scripting language, JSON is a language for
representing simple data structures and associative arrays, called
objects.
�Calling
�Persisting
�Transforming
* http://en.wikipedia.org/wiki/JSON
MEAN STACK (JAVASCRIPT & JSON)
NodeJS is an event-driven
I/O server-side JavaScript
environment based on
Google’s V8 engine.
ExpressJS is a node.js web
application framework.
MongoDB is A superb No-SQL
database.
AngularJS is
framework to
create one-page
dynamic apps.
AGILE ARCHITECTURE IS MULTI-PARADIGM
* MV* = MVP, MVC or MVVM
DOES ALL THE CLIENT JOB, MV*� ANGULARJS
Presentation Layer
Business Layer
Persistence Layer
DOES ALL THE BUSINESS JOB� NODEJS, EXPRESSJS
DOES ALL THE DB JOB�MONGODB
No business stuff
No business stuff
No Presentation stuff
MEAN STACK (JAVASCRIPT & JSON)IN ACTION
AGILE ARCHITECTURE SUPPORTS:� SELF-DIRECTING� SELF-OPTIMIZING� SELF-HEALING
FLEXIBLE BEHAVIOR
HATEOAS/REST AGILE ARCHITECTURE SUPPORTS SELF-DIRECTING
Consumer IS Directing*
Producer/
Backend
var response = producer.foo();if (response.status == X) {
producer.foo1(); } else {
producer.foo2();};
Consumer/
Client
Hypermedia as the Engine of Application State
Representational state transfer
RPC API
Producer is directing*
var response = producer.foo();
// next_foo() is foo1() or foo2()// producer decides what is rightresponse.next_foo();
Consumer/
Client
Producer/
Backend
Rest HATEOAS
* Pseudo-source-code for demonstration purposes only
LOAD BALANCER & CACHE
AGILE ARCHITECTURE SUPPORTS SELF-OPTIMIZING
QUERY OPTIMIZER
AGILE ARCHITECTURE SUPPORTS SELF-HEALING
The microcapsules release a healing agent when the
material is damaged*
* http://www.bbc.co.uk/news/science-environment-19781862
SELF-HEALINGMATERIALS
SOFTWAREERROR DETECTIONANDSOFTWAREHEALING AGENTSMEANSELF-HEALINGSOFTWARE SYSTEMS
THE BEHAVIOR OF A SYSTEM THAT FOLLOWSAGILE ARCHITECTURE CAN BE CALLED
ARCHITECTURALINTELLIGENCE
ABILITY OF THE SYSTEMTO DIRECT, OPTIMIZE, AND HEAL
ITSELF
FLEXIBLESTRUCTUREANDBEHAVIOR.
AGILE ARCHITECTURE
� BUSINESS-CENTRIC
� SIMPLE-AS-POSSIBLE
� EVENT-DATA-DRIVEN
� SINGLE-RESPONSIBILITY-BASED
� CLOUD-ORIENTED
�MULTI-PARADIGM
� SELF-DIRECTING
� SELF-OPTIMIZING
� SELF-HEALING
https://www.xing.com/net/pri1f221ex/agilearchitecture
Adam BoczekAgile Coach | Enterprise Architect
xing.com/profiles/Adam_Boczek
@nativeagile
http://codecentric.de
@codecentric