OFMP The Road To OSGi Eclipse Democamp Luxembour 2008

Embed Size (px)

Citation preview

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