Andy Doddington of Bank of America discusses how the firm used GigaSpaces ' implementation of JavaSpaces technology to build a scalable trading analytics application for the middle office in the following paper City#Grid Special Report (Page 12)
Andy raises interesting points about common challenges we're seeing in middle office analytical applications built with Microsoft Excel:
"As is typical with Excel spreadsheets, they had grown way beyond the natural limits of any sensible spreadsheet, to the point where they were unmanageable, un-maintainable, and with lots of key person dependencies. They also had huge load times. "
Traders used to access these reports by loading data from the last day's trading into their Excel application, and run analytical macros that generated the appropriate report.
The exponential growth data volumes that need to be processed, and the requirement to generate these reports in near-real time is a common requirement today and obviously something that cannot be met with traditional approaches.
The solution in this case was to break the data from the application and store it in a shared In-Memory Data Grid and a rich client, based on eclipse RDP, to provide a real-time view as well as built-in reports for the data. Scalability was achieved in two dimensions:
- Capacity – by partitioning of the data across multiple machines. In this way the total capacity will be the total amount of memory available on all the machines. Scaling the capacity can be done when needed by adding another in-memory data grid instance.
- Processing – by running the analytical computation with the data. They could leverage the CPU power that was available on those machines to speed up the processing time.
Andy also mentioned the work that we did collaboratively with Interface21 and Spring , which became the foundation of our upcoming 6.0 release. An interesting part of that work was the use of Space-Based Remoting.
"we worked in partnership with GigaSpaces and Interface21, who are the originators of the Spring Framework. The RMI was based upon the Spring Remoting framework, which basically hid the fact that there was RMI under the covers and allowed us to swap back and forth between RMI and SOAP. Having constructed the query and placed it into the space, the client performs a blocking take on the query results.The results of the query return to the client for presentation to the user, and the details are hidden by the spring remoting wrapper. The overall effect is to emulate a traditional request response on the set of trades, while at the same time leveraging the JavaSpaces technology to give us performance and resilience. The desktop application was based upon the Eclipse Rich Client Platform."
In addition to that the following posts discuss how Space Based Architecture can address other common challenges when dealing with analytical application: