3. Ein junges Unternehmen mit anspruchsvollen Zielen
und solider Kapitalausstattung
Standorte Kernfakten Festangestellte
Aktiengesellschaft in
Mitarbeiterbeteiligung
Grundkapital: 1,375 Mio. €
Gründung: Juli 2007
Berlin
Branchenfokus
Finanzindustrie
Auszug Kundenliste Umsatz in Mio. €
Frankfurt
Commerzbank AG
Karlsruhe DWS Investments GmbH
Xchanging
München
FIDUCIA IT AG
ING DiBa AG
Landesbank Berlin AG
Union Investment Gruppe
01.04.2012 - COINOR AG - 3
4. COINOR unterstützt Deutschlands führende Finanzdienstleister
bei der Verbesserung von Geschäftsprozessen
IT Trends
Open Source
SOA
Prozess
Cloud Computing
…
Strategie
Business Trends
Konsolidierung
Spezialisierung
Geschäftsmodelle
… Implementierung
Business Transformation
Wir transportieren Strategien in Prozesse und implementieren diese Prozesse in der IT
Unser Erfolgskonzept ist dabei ganz besonders: Wir kombinieren hohe Fach- und
Technologiekompetenz mit den Methoden unseres Business Engineering Frameworks
Die einzigartige Bündelung dieser 3 Kompetenzen ermöglicht uns die effektive
Entwicklung von Konzepten, innovativen Architekturen und Technologien
01.04.2012 - COINOR AG - 4
14. Content-based Routing ergänzt Messaging
Beispiel Aktienkauf
Depotbuchung?
Depot.in Depot.out
Aktienkurs anreichern
Buchung.in
Kontobuchung?
Börse Webservice
Depots
Girokonto.in
Routing und Queues setzen gemeinsam Datenflüsse um
Enterprise Integration Patterns bilden Integrationsprobleme ab
www.eaipatterns.com
01.04.2012 - COINOR AG - 14
15. Umsetzung des Routings mit Apache Camel
Open Source Rules & Routing Engine
Apache Camel setzt Enterprise Integration Pattern um
Regelbasiertes Routen und Konvertieren (auf Event/Nachrichten-Basis)
Konfiguration der Regeln durch eine Java DSL oder Spring XML
Bietet über URIs Zugriff auf verschiedenste Protokolle („Components“)
JMS
JPA
HTTP
CXF
FILE
…
Erweiterung durch Beans für ETL-Aufgaben möglich
Ergebnis ist ein Java Programm („Camel Route“)
01.04.2012 - COINOR AG - 15
16. Umsetzung des Routings mit Apache Camel
Aktienkauf Routen
Ausschnitt Aktienkauf mit Spring XML und Java DSL
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="jms:buchung.in"/>
<choice>
<when><simple>${in.body} contains '<banksystem>giro</banksystem>'
</simple> <to uri="jms:giro.in"/></when>
<when><simple>${in.body} contains '<banksystem>depot</banksystem>'
</simple> <to uri="jms:depot.in"/> </when>
</choice>
</route>
</camelContext>
public class DepotBanking extends RoutBuilder{
...
public void configure() throws Exception {
AggregationStrategy aggregationStrategy = new KursAggregationStrategy();
from("jms:depot.in")
.enrich("cxf:bean:boerseEndpoint", aggregationStrategy )
.to("jms:depot.out");
}
...
}
01.04.2012 - COINOR AG - 16
17. Umsetzung des Routings mit Apache Camel
Aktienkauf - Kursermittlung
KursAggregationStrategy Bean wertet Webservice-Ergebnis aus
public class KursAggregationStrategy implements AggregationStrategy {
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
// JMSMessage auswerten und in ein BoerseImpl Objekt konvertieren.
BoerseImpl boerse = newExchange.getIn().getBody(BoerseImpl.class);
// Erstelle ein neues Wertpapier-Objekt und setze den aktuellen Kurs.
Wertpapier wertpapier = new Wertpapier();
wertpapier.setKurs(boerse.getAktienKurs());
// Erstelle ein DepotObjekt und mappe das Wertpapier auf das Depot.
DepotKonto depotKonto = new DepotKonto();
depotKonto.getWertpapiere().add(wertpapier);
// Überschreibe den aktuellen exchange mit dem neuen Depot Objekt.
oldExchange.getIn().setBody(depotKonto);
return oldExchange;
}
}
01.04.2012 - COINOR AG - 17
18. Routing greift auf externe Geschäftslogik zurück
Umsetzung durch Webservices
Aktienkurs anreichern
Börse
Börse Webservice
MOM benötigt neben Messaging und Routing auch Geschäftslogiken und Zugriff
auf „exotische Systeme“
Webservices bieten Berechnungen und Systemkapselung
Einheitliche Technologie für Geschäftslogiken innerhalb der MOM
„System as a Service“-Ansatz
Vereinheitlichung heterogener Systeme innerhalb der MOM
01.04.2012 - COINOR AG - 18
19. Apache CXF
Webservice Framework
Apache CXF
Namenzusammenschluss aus IONA Celtix und Codehouse XFire
Frontend Programmiermodelle
Simple public interface Boerse{
public double getAktienKurs(String isin);
JAX-WS }
JAX-RS @WebService
public interface Boerse{
public double getAktienKurs(@WebParam(name="isin") String isin);
}
DataBindings
JAXB
Webservice Standards
WS-*
Transport
JMS / Apache Camel Transport
01.04.2012 - COINOR AG - 19
20. Apache CXF
Beispiel
Freiheit bei der Entwicklung
Bottom-Up
Top-Down
JAVA WSDL
./java2ws
-d /Users/chris/workz/BED/BED-Bank-WS/test/
-cp /Users/chris/workz/BED/BED-Bank-WS/bin/ de.coinor.bedbank.ws.Boerse
org.apache.cxf.service.factory.ReflectionServiceFactoryBean
buildServiceFromClass
INFO: Creating Service {http://ws.bedbank.coinor.de/}BoerseService
from class de.coinor.bedbank.ws.Boerse
01.04.2012 - COINOR AG - 20
21. MOM Komponenten benötigen Container
Depots
Börse
Anforderungen der BED Bank MOM an einen Container
Hot Deployment der Komponenten aus Repository
Kontrolle über Artefakte (Starten, Stoppen)
Logging
One MOM, one Container
01.04.2012 - COINOR AG - 21
22. Apache Karaf
Open Source OSGi Container
Zur BED Bank MOM passender leichtgewichtiger Runtime Container
Unterstützt OSGi 4.2 Container (Apache Felix 3.0 und Eclipse Equinox 3.6)
OSGi Bundle = .jar Datei, zusätzliche Manifest Header
Vorgestellte Technologien der MOM Komponenten sind OSGi-tauglich
01.04.2012 - COINOR AG - 22
23. BED Bank MOM im Karaf
Startbildschirm und installierte Bundles
01.04.2012 - COINOR AG - 23
25. Bundeling der Apache Projekte
Projekte auf Apache Seiten frei und kostenlos verfügbar
Quellcode, Beispiele, Dokumentation und Tutorials meist verfügbar
Herausforderungen
Projektübergreifende Nutzung oft im Dunkeln
Out-of-the-Box-Nutzung schwierig, Anpassung an Use Cases
Support im Enterprise-Umfeld notwendig
Kein Tooling im Lieferumfang, effektive Nutzung erschwert
Lösungsansatz: Bundeling der Technologien durch kommerzielle
Anbieter, vergleichbar Linux-Distributionen
01.04.2012 - COINOR AG - 25
26. Kommerzielle Apache Produktanbieter
Talend ESB
Talend ESB ist Out of the Box nutzbar
Talend IDE ermöglicht grafische Entwicklung von Camel Routen und CXF Services
Standard Edition kostenlos (www.talend.org), ohne Support
Enterprise Edition mit Professional Support mit Developer Seat Lizensierung
Aktive Mitglieder in Apache Projekten
01.04.2012 - COINOR AG - 26
28. Kommerzielle Apache Produktanbieter
FuseSource
Tochterunternehmen von Progress Software, Fokus auf Enterprise ready Apache
25 Mitglieder in den Apache Projekten tätig
Lösung basiert auf Apache Camel, CXF, ServiceMix, ActiveMQ, HypericHQ
Fuse ESB – ServiceMix
Fuse Mediation Router - Camel
Fuse Message Broker – ActiveMQ
Fuse Services Framework - CXF
Fuse HQ – Hyperic HQ
Enterprise Support bei Professional Edition
01.04.2012 - COINOR AG - 28
29. FuseSource
IDE Unterstützung
Zusätzlich Fuse IDE for Camel
Alle Produkte als Open-Source Editionen zum Download verfügbar
Routen aus IDE heraus nicht deploybar
01.04.2012 - COINOR AG - 29
30. Abschluss
Apache Open Source Projekte können zentrale
Integrationsaufgaben übernehmen
Karaf
ActiveMQ Camel CXF
Enterprise Support durch kommerzielle Anbieter bietet breite
Einsatzmöglichkeiten im Produktionsumfeld
Umgehung teurer Wartungsverträge / attraktiveres Lizenzmodell
OpenSource-Ansatz bietet Einflussmöglichkeiten und sichert Weiterentwicklung
01.04.2012 - COINOR AG - 30