Category Archives: finance

Trading Applications Developer Workshops

If you’re in London on March 1st or New York on March 15th and have an interest in trading application development then you might be interested in the following Oracle, Sun and Intel event.

Trading Applications Developer Workshops

The presentations cover a range of technologies, from each layer in the stack, that should be considered when designing or maintaining trading applications.

Coherence .NET: Just Works…

It’s been a while since I’ve had a chance to play around with Coherence.NET (mainly because I predominantly been working with Java). However over the weekend I decided it was time to put a .NET and Excel front-end on one of my Coherence demos.  

I essentially have an application that keeps a few hundred thousand financial positions in cache (call it a Data Grid if you like) and would like to run some queries against them from .NET and later Excel.  Even without .NET equivalent classes of my Java object model, it was cool that I could still run a lot of queries out-of-the-box.

eg 1: Getting an .NET INamedCache – the equivalent of a Java NamedCache – was easy;

      INamedCache positionsCache = CacheFactory.GetCache("positions");

eg 2: Determining how many positions I had, also easy;

      int nrPositions = positionsCache.Count();

eg 3: Determining the distinct symbols for the positions (an aggregation);

      Object[] result = (Object[]) positionsCache.Aggregate(AlwaysFilter.Instance, new DistinctValues("getSymbol"));

The AlwaysFilter.Instance specifies that all positions must be considered.  While it’s possible to specify any other filter, in my example I’m looking for distinct symbols across all positions.  The result of the aggregator is an Object[], simply because the result of the DistinctValues aggregator is an Object[].  Note however that the Coherence permits aggregating any type of value (especially non-primitives).  In this case we’re aggregating the result of the “getSymbol” method on the positions class.  This aggregation is performed in parallel across the Data Grid.

More examples in the next few days.

QCon: In Finance Exchange (free event)

Ok… I’m a little late in blogging this, but on Wednesday next week (8th of October) I’ll be speaking at QCon: In Finance eXchange on the topic of Patterns for managing order books and reference data on a global basis.  Over the past few years I’ve been involved in numerous commercial projects (predominantly with tier-1 investment banks) that face the challenge of “how to manage and keep multiple globally distributed clusters containing fragmented order books and reference data (interconnected by potentially unreliable wide-area-networks) in sync (close to real time)”. Or similarly, how to keep your Disaster Recovery site(s) in sync and potentially in active+active configuration at all times.

While most of these challenges have been solved in the past using a combination of technologies (including messaging platforms, enterprise service buses, database log shipping and Oracle Coherence), several recent implementations have solely been based on Oracle Coherence, providing a simple, elegant, high-capacity and close-to-real-time solution without the need for additional servers or infrastructure.  In the talk, I’ll cover some of these new patterns.

Even if you’re not interested in this talk, there are two things I think you’ll really like about this event; a). it’s FREE and b). the speakers are well known (perhaps not me… it’s a privilege to be invited to talk!)… but people like Rod Johnson (of Spring Source) and Eric Evans (Domain Driven Design guru) and many others will be there to share some of their insights.  

If you’re in London, work in Financial Services (I hope you’re doing ok!) and have some time free, drop by.