ofmp the road to osgi eclipse democamp luxembour 2008
TRANSCRIPT
OFMP
OFMP: the road to OSGi
Eclipse Democamp Luxembourg 2008
Frederic ConrotteCovariance Luxembourg
Project background Middle Office Financial Market Platform in Kaupthing Bank Luxembourg started in April 2006
Eclipse RCP / J2EE based on JBoss
Prototype ready on October 2006
Implementation started on October 2006
First release on March 2007 for Forex Desk
Second release on February 2008 for Money Market Desk
Main features
STP Front Office to Back Office workflowTreasury Coverage (Forex and Money Market Desks)Spot, Forward, Swaps products supportedDeal Monitor, Profit and Loss, Position Keeping servicesCLS compliancyOn-Demand Reporting
Reuters
DealingFront OfficeMid OfficeBack OfficeEBSBloombergFlat
filesmanualentries[other systems]Middle Office Financial Market
Application
(Foreign Exchange / Money Market / Capital Market)Back Office
System
Front to Back Workflow
Technology Behind Eclipse RCP for client side
Eclipse Data Binding
Equinox runtime J2EE services based on Spring/Spring DM framework
Spring Security
Spring IDE
IBatis persistence framework
RCML (www.rcml.net)
JUnit tests suites
Client notifications and STP workflow with JMS
BIRT Report Engine
Maven and m2eclipse
Eclipse AspectJ
Eclipse API Tooling
Global Architecture
TIG : Captures trades from Front Office platforms, BackOffice or any other input trade provider.CDG: Provides contextual data like various Market DataTOG: Send processed trades to BackOffice, Risk Management platforms or any other system.
Rich Client Markup LanguageRCLM allows to express higher level DSL langages useful in several areas like testing, reports generation and UI databinding
This is a test deal entered by RCML.
From EAR to OSGiOld architecture
1 single EAR deployed on JBoss exposing several stateless EJBs using RMI
Pros:- Standard JEE services provided by JBoss
Cons:- Production Server restart required to update a single service- Services interdependency management issues due to growing codebase.- System tend to be synchronous
OSGi OverviewOSG What?
OSGi:
A dynamic module system for Java
OSGi is
a module system for Java that allows the definition of Modules (called bundles),
Visibility of the bundle contents (public-API vs. private-API)
Dependencies between modules
Versions of modules
OSGi Overview
OSGi Overview dynamicBundles can be installed, started, stopped, uninstalled and updated at runtime
OSGi is
OSGi OverviewOSGi is
service orientedBundles can publish services (dynamically)
Bundles can find and bind to services through a service registry
The runtime allows services to appear and disappear at runtime
OSGi OverviewWhat does OSGi look like? (Low Level)
From EAR to OSGiNew architecture
Multiple OSGi bundles defining a single group of related services using Spring DM and exposing them thru Spring HTTPInvoker
Pros:- True hot services upgrade- Services status management improved- Asynchronous communication/separation of concerns- Improve modules dependency design
Cons:- OSGi is great, but tooling is not quite there yet: JAR to OSGi bundle automated conversion using BND tool; Service querying, Runtime visualisation
- Lack of properly OSGified JARs => Thanks SpringSource- Strict import/export versioning discipline required- Number of bundles quickly reach more than 100 or 200 => distributed runtimes coming in next OSGi spec 4.2
Current StatusMaven External Dependencies management infrastructure
OSGi based standard JEE servicesDatasources
Transaction Management
JMS
Logging
Security
Spring DM Integration Testing Framework
Currency bundle migrated including Unit and Integration Tests
Goal to release to full set of OSGified bundles by end of year
IP Issues
Move under umbrella of Eclipse Financial Project
Future plan Technical levelFPML (fpml.org) Data Structure
Replace iBatis with EclipseLink for modular persistency support
Asynchronous inter modules communication using
Enterprise Integration Pattern solutions like Apache Camel
Future plan Business level Asset/Liability Management (ALM)
The ALM is a set of tools that allow to the bank management to: - Reach returns objectives - Manage their liquidity risk - Manage their interest rate risk - Stress test their balance sheet - Meet Basle II requirement
Will become essential in banks regarding to the current events
Trader books, Limits management, Reports Set
Treasury products (TRS, currency options, IRS, ...)
Enhancement of Derivative products coverage :
Swaps structures, CFDs, structured products
More informationWebsite: http://www.eclipse.org/ofmp
Project wiki: http://wiki.eclipse.org/OFMP
Eclipse OFMP Newsgroup
Demos
Foreign Exchange functionnalities
Portfolio Management functionnalities
Contacts:[email protected]
Credits: Martin Lippert, akquinet agile GmbH [email protected]
2008 made available under the EPL v1.0