More Related Content
Similar to Web application-for-financial-and-economic-data-analysis3
Similar to Web application-for-financial-and-economic-data-analysis3 (20)
More from Mike Taylor (20)
Web application-for-financial-and-economic-data-analysis3
- 1. www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 1 of 1
Case Study
Web Application for Financial & Economic Data
Analysis
- 2. www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 2 of 2
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.
Client Requirement
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
- 3. www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 3 of 3
Technologies Used
Manpower
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.
Operating System 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.
Development Environment J2EE, Spring, Hibernate, BlazeDS Framework, Microsoft Visio, Eclipse
Indigo, Java Script, CSS, HTML, SVN etc.
Database MYSQL, DB Clustering, DB Optimization, High Availability, Master –
Slave Replication, Query optimization, Slow Query Optimization,
scheduler for backups, Alert Monitoring System integration, etc.
Project Leader 1
Developers 4
Designers 2
Quality Assurance Testers 2
- 4. www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 4 of 4
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.
- 5. www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 5 of 5
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-tomcat-
6.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 pre-
decided .xls formats to the pre-defined id, parsed and then loaded in the system’s database.