Case Study Web Application for Financial & Economic Data Analysis
www.brainvire.com | Š 2013 Brainvire Infotech Pvt. Ltd
Page 1 of 1
Client
Requirement
This is a highly customized application for financial and economic data analysis. It provides unique, highly customizable, web-based financial and economic data analysis and research tools for analysts, portfolio managers, economists, traders and other financial professionals. Its intuitive tools enable users to build customized models and charts for comparing securities, options, commodities, economic and user-uploaded data with one another. Model highlights include the ability to create custom data series in a Moving Average or MACD format, blended model weights, correlation studies, lead/lag analysis and performance back testing and calculations. 30,000+ different data series combined with versatile proprietary tools, user-friendly outputs as well as chart saving and sharing features provide an unrivalled product for the price. The system currently offers three different product subscriptions: Equities, Futures & FX and Combined. Application uses Flex layer for all the calculation based on the selection (i.e. EMA, SMA or MACD). Business layer uses interface and its implementation coded in Java and Spring. DAO layer is constructed as combination of Spring and Hibernate using Spring Session Factory. Application uses different data sources such as Commitments of traders and IVOL to keep all the data synched up with current trends in the market. The data gets loaded with cron jobs, quartz schedulers and download utility that is configured with the application.
Project
Challenges
Team faced the following challenges: •
Allowing the site to handle millions of users at the same time without slowing down.
•
Incorporating web usability principles while developing numerous features designed for enhancing the users’ community networking experience.
•
Harmonizing the simultaneous execution of various integrated features and options while maintaining consistent load balance.
•
Developing a fully Ajax driven site with various features without compromising on the performance and execution level.
•
Ensuring a safe and secure transfer of data while integrating 3rd party API’s and JavaScript compatibility for all the browsers.
•
Developing a sturdy and dependable framework to support the real-time updation of content on the site
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 2 of 2
Technologies Used Operating System
Development Environment Database
Red Hat Linux, Multi-Server Architecture with Staging & Production environment through Version controlling releases Load Balancer, Apache optimization, security and SSL implementation, scheduler for backups, alert monitoring system integration, server performance tuning at regular intervals, software firewall configuration and maintenance, email server configuration etc. J2EE, Spring, Hibernate, BlazeDS Framework, Microsoft Visio, Eclipse Indigo, Java Script, CSS, HTML, SVN etc. MYSQL, DB Clustering, DB Optimization, High Availability, Master – Slave Replication, Query optimization, Slow Query Optimization, scheduler for backups, Alert Monitoring System integration, etc.
Manpower Project Leader
1
Developers
4
Designers
2
Quality Assurance Testers
2
Planning The following four-tier development approach was adopted to equip the site with numerous features and functionality mentioned below: • The Database layer containing MySQL Server Database, Tables, Triggers and so on. • The Data Access layer containing the Data Access DLL responsible for accessing data from the database • The Business layer DLL consisting of all the business logic procedures for modules such as Advertisers, Publishers, Banners, Payment Reports, Earning Reports etc. • The User Interface layer which forms the Graphical User Interface of the website.
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 3 of 3
Architecture
Development
Highlights
The Charting Tool application consists of 3 parts: Flex UI, Java Server and the Data sources. In addition to these, there are data scripts running to load data from various external sources into the system’s database. An email reader runs to fetch data from the system’s link.
Details of Servers
The application is hosted on 2 cloud server instances with Rackspace.
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 4 of 4
The heart of the application is the Tomcat app server. The application is split into 2 web applications ROOT and Charting Tool. The code for the client’s website is served by the ROOT web app (/usr/share/apache-tomcat-6.0.29/webapps/ROOT) and the services for the Charting Tool are all handled by the Charting Tool web app (/usr/share/apache-tomcat6.0.29/webapps/ChartingTool). The Charting Tool app uses Spring and Hibernate frameworks for business logic wiring and database access. The application follows a Service Oriented Architecture and the Charting Tool exposes multiple services in the Java Services layer. All remote method calls originates from the Flex UI and are processed by the Blaze DS Layer (http://opensource.adobe.com/wiki/display/blazeds/BlazeDS) which then utilizes one or more Java Service. Calls such as login, post chart, subscribe which originated from the HTML pages are processed by the JSP/Servlet layer which further uses the Java Services. The Delegate layer has the business logic and uses the Data Extractor layer to either get Hosted Data from the Elmwood database server (eg. iVol, COT) or use specialized data fetchers and parsers for Non Hosted Data (Internet search trends, FRED, DDF) or fetches data saved on the file system used by the user uploaded data. Email Reader
Email reader task is configured as a 4 hourly cron task in the Charting Tool web app using Spring Scheduling. It uses IMAPS to check the email id to extract all .xls files for data sources such as Rail Data and other adhoc data sets such as Survey, Rig etc. These are sent in a predecided .xls formats to the pre-defined id, parsed and then loaded in the system’s database.
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 5 of 5