46
openMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Embed Size (px)

Citation preview

Page 1: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

openMDM5: From a fat client to a scalable, omni-channel architecture

EclipseCon Europe 2015November 4, 2015, Ludwigsburg

Sibylle Peter
Vorstellungsslides!
Andreas Benzing
Why not use the picture from the official spec?
Sibylle Peter
will do, don't know yet if before or after. :-)
Sibylle Peter
hier würde ich noch verletzte architekturprinzipien anfügen, wie Modularisierung, Separation of Concerns etc.
Sibylle Peter
ich würde hier wirklich die konkreten Probleme als Beispiele nehmen. Keine Abstraktion: -> CorbaKeine klare Schnittstelle: -> Performanzprobleme, alles muss upgedated werden.Separation of Concerns: single ext. changes entire API, all modules must be updated.Tight coupling: dep. mgmt, testability, changes.No, or old standards:Build systemDep. Mgmtetc.
Page 2: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Sibylle PeterCanoo Engineering AG@persillie

Andreas BenzingICS AG@andreasbenzing

Page 3: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

openMDM IWG

„The open MDM Working group […] wants to foster and support an open and

innovative eco-system providing tools and systems, qualification kits and adapters for

standardized and vendor independent management of measurement data in

accordance with the ASAM ODS standard.“openMDM charter

Page 4: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 5: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Measurement Process

Page 6: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

History

1999: Start of openMDM @ AUDI AG

2008: openMDM becomes open source- community gains new members- more functions, components- codebase grows

2014: Transition to Eclipse IWG

Page 7: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

First Idea

Page 8: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

(Very) Rich-Client

Sibylle Peter
Cool - LIKE :-)
Page 9: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 10: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Abstractions/Interfaces

• CORBA and ODS sprawled everywhere– Once CORBA is in place, why not use it again? Separate data access and logic!

• Transparent data access masks bottlenecks– Getters can trigger query to ODS server Data retrieval must be done explicitly!

Page 11: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Separation of Concerns

• Monolithic API hinders maintainability– Extension changes entire API, all modules affected Modularize API!

• Dependencies result in tight coupling– Home-grown solution difficult to handle Establish solid dependency management!

Sibylle Peter
Hier würde ich noch klarstellen, dass das die festgestellten Flaws sind.
Andreas Benzing
Hätte ich über die Tonspur dazu erzählt. Eigentlich sollten die unteren Zeilen auch jeweils einen Pfeil als Schlußfolgerung dran haben. Der wurde nur beim Upload kaputt gemacht
Page 12: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Let’s build openMDM5!

• Be compatible with ASAM ODS• Shield CORBA interfaces from applications• Provide method for integrating external data• Break compatibility with MDM4

• Work split between driving members

Sibylle Peter
Sollten wir nicht statt break compatibility nicht lieber sagen better architecture in favor of compatibility? oder so ähnlich?
Andreas Benzing
Wegen mir gern, steht aber so in der offiziellen version
Page 13: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

The Goal

Design a flexible, configurable, pluggable, adaptable, resilient System

Page 14: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

http://tinyurl.com/nohztsu (flickr: juanaidrao)

BigDesignUpFront?

Page 15: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

“The best architectures, requirements, and designs emerge

from self-organizing teams.”11th Principle of the agile manifesto.

Page 16: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 17: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Open Source

Open-source software may be developed in a collaborative public manner. (Source: Wikipedia)

Page 18: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

elastic/elasticsearch

Page 19: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Just enough

to guide emergent architecture

Page 20: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

UI

ODS

MDM API

Business LogicData

Access

MDM API

Business Logic Data

Access

MDM API

Business LogicData

Access

Page 21: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Step 1

Layers

Page 22: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Data Access

ODS

Business Logic

UI

MDM APIBOM

Page 23: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Step 2

Modularization

Page 24: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Data Access

ODS

UI

MDM APIBOM

Business Logic

Page 25: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 26: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

MDM Component

Po

rts

Adap

ters

Sibylle Peter
Muss aus Ports und Adapter einen Overlay machen. Aber wie??? Transparent
Page 27: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Ports & Adapter

http://www.dossier-andreas.net/software_architecture/ports_and_adapters.html (Patrick van Bergen)

Page 28: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

MDM Component

Page 29: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 30: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

And the Data???

Page 31: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

MDM Data Access Module

BOM

Page 32: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Bringing it all together

Page 33: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Explorer Component

Page 34: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

OpenMDM API

DataProvider ComponentExplorer Component

Client

Rich

PresentationModel

Server

PresentationModel

Logic Component API

Server

Logic Component API

Server

Logic ModelLibraries

de.rechner.openatfx

ATFX-Datei

Dat

a Ac

cess

Moc

k

available at: http://git.eclipse.org/c/mdmweb (read the readme files!)

Page 35: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 36: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Data Access

ODS

UI

MDM API

Platform

Business Logic

BOM

Page 37: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

MDM Components managed

Page 38: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

MDM Platform

Page 39: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 40: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Guiding Emergence

• Design for testability• Design for learning• Return to design fundamentals• Make technical decisions at the last

responsible moment• Use standards instead of concrete

implementations

Page 41: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 42: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

THANK YOU!

Questions?

Page 43: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg
Page 44: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Technologies used

OpenMDM API

DataProvider ComponentExplorer Component

Client

Rich

PresentationModel

Server

PresentationModel

Logic Component API

Server

Logic Component API

Server

Logic ModelLibraries

de.rechner.openatfx

ATFX-Datei

JavaFX & Griffon

OpenDolphin

Java 8, Google Guice

Java 8, Google Guice

Dat

a Ac

cess

Moc

k

Page 45: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Distribution of Project modules

OpenMDM API

DataProvider ComponentExplorer Component

Client

Rich

PresentationModel

Server

PresentationModel

Logic Component API

Server

Logic Component API

Server

Logic ModelLibraries

de.rechner.openatfx

ATFX-Datei

explorer-component-javafx

explorer-component-guice

explorer-component

explorer-api

explorer-pm

dataprovider-component dataprovider-api

Dat

a Ac

cess

Moc

k

dataprovider-component-guice

Page 46: OpenMDM5: From a fat client to a scalable, omni-channel architecture EclipseCon Europe 2015 November 4, 2015, Ludwigsburg

Deployment

Instead of platform: components integrated in application window using Griffon (MVC framework)

Client-Server Communication: Remote Presentation model implemented in Open Dolphin.

There are .bat scripts to start client and server.

available at: http://git.eclipse.org/c/mdmweb

RichClient Server Mock

Server

explorer-component-guice

dataprovider-component-guice

dataprovider-component

Client Java 8, JavaFX, Google Guice Java 8, Google Guice

OpenDolphin

explorer-componentexplorer-component-javafx