wso2con eu 2015: a quick startup in transportation – inter-company data exchange in railway...
TRANSCRIPT
A Quick Startup in Transporta1on
Inter-‐Company Data Exchange in Railway Opera1ons
Thomas Goetz, André Bally, MaHhias Günter
BLS AG Switzerland
Business Context Train path procurement process
Train operating company
Railway infrastructure
operator
Path request
Path provision
Train composition
Actual and forecast times
Invoice
The project scope at BLS
• Enterprise Service Bus (ESB) Pla[orm - Requirements - First pilot (product based on JEE applica1on server) - Re-‐evalua1on of product - Proof-‐of-‐concept with WSO2 Quickstart Program - Pla[orm installa1on and development of the interface
applica1ons (s1ll in progress)
• Coopera1on between train and infrastructure opera1ng companies - Governance (joint specifica1ons) - IT roadmap - Funding
Timeline for ESB pla[orm re-‐evalua1on and implementa1on
Task Timeframe Start of re-‐evalua1on Dec 2014 Pre-‐evalua1on (4 products, based on general criteria)
Dec 2014
Cost-‐benefit evalua1on (reduc1on to 1 or 2 products)
Jan 2015
Proof-‐of-‐concept with the best product Feb -‐ Mar 2015 Decision for WSO2 Apr 2015 Build-‐up of pla[orm May -‐ Jul 2015 Implementa1on of interface applica1ons Aug -‐ Dec 2015 Produc1on Dec 2015
Cost-‐benefit analysis Criteria assessed by 4 experts
Company - Strengths, Weaknesses - Analyst ra1ng - Cloud integra1on - Por[olio - Partners - Company health
Product - Price - Development model - Number and type of developers / contributors - Architecture / components - Func1onality - License - Consul1ng / support
Community - References in Switzerland - User groups
So6 factors Individual opinions of the experts on - Architecture - Integra1on - Development
Train path procurement process
Resource planning
Train operating company
Train operations
Railway infrastructure operator
Route planning
Train composition
Path provision
Path request Path request
Path planning
Production
Customer information
Path price
Train plannerTrain path planner
new interfaces
Standardized integra1on
Integration problem
Integration solution
characterize
analyze
design
build
Set of non-‐functional properties
Set of non-‐functional properties
Weighted decision matrix
Non-‐functional requirements
Candidate integration pattern
Softwarearchitecture
Implementa1on guidelines
Decision matrix Entscheidmatrix - Integrationsmuster
Attribute Werte x
Business-Motivation Durchgängigkeit von Geschäftsprozessen 1 1 1 1 1 1 1 1Konsistenz von Geschäftsdaten x 1 1 1 1 1 1 1 0.5
Mehrfachverwendung Benutzerschnittstelle 1 5 5Architekturprinzipien D1, G2 Services / Anwendungen 1 1 1 1 1 1
Datenbestände x 1 1 1 1 1 1 1 0.5Kontrollierte Weiterentwicklung Ablösung von Altsystemen, Sanierung von Problemen 0.5 5 1 1 1 1 1 1Architekturprinzip U12 Wartbarkeit und Erweiterbarkeit 1 1 1 1 1 1 1 1 1 1Granularität der ausgetauschten Datensätze wenige Datensätze (<10) 1 1 1 1 1 1 1 1
viele Datensätze x 1 1 1 1 1 1 1 1 1 1komplette Datenbestände 1 1 1 1 1 1 1
Grösse der ausgetauschten Datensätze klein <1 KB 1 1 0.5 0.5 0.5 1 1 1 1 1 1 1 1 1 1mittel 1 KB - 1 MB x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1gross (>1 MB) 1 1 1 1 1 1 1 1 0.5 0.5sehr gross (>100 MB) 0.5 1 1 1 1 1 1
Zeitnähe des Datenaustausches zeitgleich (synchron) 1 0 0 1 1 0.5 0 1 1 1 1zeitnah (asynchron) x 1 1 1 1 1 1 1 1 1 1 0 0zeitfern (Batch) 1 1 1 1 1 1 0 0 0
Periodizität des Datenaustausches einmalig 1 0.5 1bei Bedarf 1 1 1 1 1 1 1 1 1 1 1periodisch < minütlich x 1 1 1 1 1 1 1 1 1 1periodisch minutlich - stündlich 1 1 1 1 1 1 1 1 1 1periodisch täglich, wöchentlich, jährlich 1 1 1 1 1
Verhältnis von Quell- zu Zielsystemen n:1 (Aggregator) 0 0 0 1 1 1 1 1 1 11:1 (Punkt-zu-Punkt) x 1 1 1 1 1 1 1 1 0 1 11:n (Distributor) 0 0 0 0 1 1 1 0 0n:m (Kombination von Aggregator und Distributor => Mediator) 0 0 0 0 0 1 1 0 0
Datenflussrichtung Quelle zu Ziel x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1Ziel zu Quelle 0 0 0 0 1 1 1 1 1 1 1
Integrations-Distanz sehr nah (anwendungs-intern) 0 1 0 1 0 1 1 1 0nah (anwendungsgruppen-intern) x 1 1 1 1 1 1 1 1 1 1 1 1 1mittel (anwendungs-übergreifend) 0 1 1 1 1 1 1 1 1 1 1 1 1weit (domänen-übergreifend) 1 0 1 1 1 1 1 1 1 1 1 1 1sehr weit (unternehmens-übergreifend) 1 0 0 0 0 1 0 1
Daten-Transformation keine x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1Datentyp (Format, Benennung der Attribute) 0 1 1 1 0.5 1 1 1 1 1 1 1einfache Abbildung von Datenwerten (Mapping von Konstanten, Selektionen) 0 0 1 1 1 1 1 1 1 1 0.5 0.5komplexe Abbildung von Datenwerten (allgemeine Funktionen auf Einzelwerte) 0 0 1 1 0.5 0 0analytische Funktionen (Aggregatfunktionen auf alle Datenwerte) 0 1 1 0 0
Integrationsfunktionalität direkte Kommunikation (Funktionsaufruf, Datenaustausch) 1 0 0 0indirekte Kommunikation x 1 1 1 1 1 1 1 1 1 1 1 1 1 1Auslieferungsgarantie (at-least-once, exactly once) 1 1 1 1 1 1 1 1 1 1Logging / Auditing / Archivierung 1 1 1 1 1 1 1 1 1 1Verschlüsselung der Kommunikation 1 1 1 1 1 1 1 1 1 1 1 1 1 1Authentisierung und Autorisierung 1 1 1 1 1 1 1 1 1 1 1 1 1Routing (Adress- oder Inhalt-basiert) 0 0 0 0 0 5 1 1 1 1 1Prozess-Orchestrierung - ohne Benutzer-Interaktion (indirekte Kommunikation) 1Workflow - mit Benutzer-Interaktion (indirekte Kommunikation) 0 0 0 0 1 0 0Serviceaufruf 0 0 0 0 0 0.5 1 1 0.5 1 1 1 1
Datenstrukturierung Texte (schwach strukturiert) 1 0 0 1 1Ausmodellierte Daten (stark strukturiert) x 1 1 1 1 1 1 1 1 1 1 1 1 1
Ressourcennutzung Gemeinsame Nutzung der physischen Ressource (sharing) 1 1 1 1 1 1 1 1Gemeinsame Nutzung einer virtuellen Ressource (federated view) 1Getrennte Nutzung einer physischen Kopie der Ressource (copying) x 1 1 1 1 1 1 1
Anbindungsart DB-Schnittstelle 1 1 1 1 1 1 0 0 0 0Files x 1 0 1 1 1 0 0 0 0Messaging 0 0 0 0 1 1 1 1 1 0 0Service 0 0 1 0.5 0.5 0.5 1 0 0User Interface 0 0 1 1 1
physikalische Integrationsdistanz gleicher Provider x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1providerübergreifend (schweizweit) 1 0.5 0.5 0.5 0.5 1 1 1 1 1 1 1 0.5providerübergreifend (international) 1 1 1 1
0 0
0 0 0 0 0
0 0 0 0 00 0 0 0 0 0 0 0
Summe Bewertung 11 13 15 11 13 9 11 7 1 3 8 3 1 1 1
Mögliche Integrationsmuster ü ü ü ü ü û ü û û û û û û û û
Empfohlenes Integrationsmuster:
Sha
red
DB
Mes
sagi
ng
Pro
zess
orch
estr
ieru
ng (o
hne
UI)
Inte
grat
ion
Bro
ker:
Eve
nt P
ropa
gatio
n
Agg
regi
eren
von
Dat
enba
nken
: Mas
ter
Dat
a M
anag
emen
t (M
DM
)
Rem
ote
Pro
cedu
re In
voca
tion
=> Kopieren von Massendaten (ETL): Datenpropagation operativ zu operativ
Datenintegration Funktionsintegration
Wor
kflo
w (m
it U
I)
Kop
iere
n vo
n M
asse
ndat
en (E
TL):
Dat
enag
greg
atio
n op
erat
iv z
u op
erat
iv o
der
anal
ytis
ch (D
WH
)
Inte
grat
ion
Bro
ker:
Gat
eway
Por
tal (
Web
, Ric
h C
lient
)
UI-Integration
Por
tal m
it S
essi
on (W
eb, R
ich
Clie
nt)
File
Tra
nsfe
r
Kop
iere
n vo
n M
asse
ndat
en (E
TL):
Dat
enpr
opag
atio
n op
erat
iv z
u op
erat
iv
DB
-Cop
y
Kop
iere
n vo
n M
asse
ndat
en (E
TL):
Dat
enm
igra
tion
oper
ativ
zu
oper
ativ
Broker
ETL
Non-‐func1onal requirement e.g. data volume
OUTPUT Recommended integra;on pa<ern e.g. File transfer
Value-‐benefit analysis mul1ple aspects taken into account simultaneously
Contribu1on of the paHern in solving this requirement (yes, somewhat, no)
Integra1on paHern e.g. file transfer
INPUT value of each non-‐func;onal requirement e.g. 1 GB per day
0. Ini1al solu1on 3. Process
2. Transac1on / master data 1. Media1on
Train path provision service analysis and design
Master data
Transac1on data
Thank You!
We thank Igor Berchtold from SUVA for the reference. We thank our QuickStart team from WSO2: • Suhothayan Sriskandarajah (Technical Lead) • Nirmal Fernando (Associate Technical Lead) • Dassana Perera (Architect)
We thank also our BLS team: • Reto Zaugg, • CharloHe Bachmann • Michael Zaugg They made the Quick Startup possible.