Client required a BTP (Bullion Trading Portal) that should be synchronized with the existing BTS (Bullion Trading System) managed with a request – response cycle. The BTP data should be managed in web database. On the other hand, for some modules, BTP need not be synchronized with BTS for validations, authorizations and authentications. BTP must be able to display the latest bullion prices that also synchronize with the MCX server. The MCX server uses a third party MCX scripts and these should get updated on a daily basis as well as synchronize with BTS.
External as well as Internal users should be able to access this system. For External users, further categories should be “Standard” and “Premium”. Modules will be loaded as per the type of authorization of the user. Internal users include – Admin, Super User and Internal User. Back office modules can be managed by these users.
External users need registration before they can access the BTP modules. Registration process consists of two steps for Standard Users and 12 steps for Premium users. Premium users should be able to send an auto generated PDF form after completing the registration process. Premium user should require a security token code that is verified with the device provided to the users. Other common features include: viewing account information, managing user profiles, accessing periodic charts and accessing research reports. Only premium users have the facility for trading. Premium users also should have the facility for multiple logins and 1 primary and other sub users. Premium users belong to different classes available in BTS.
Internal Users must have the ability to set trade limits for various locations and metals. Day wise min and max limit should be configurable for various metals and classes. Other
functionalities include: setting currency exchange values for INR, setting portal information
display, approving the user registration, generating alerts for the external customers, resetting
the passwords on customer’s request, maintaining research reports and announcements periodically, enable or disable users etc.
The team faced the following challenges
- Site should handle millions of users without slowing down.
- Maintaining connectivity between BTP and BTS as well as maintaining synchronization between the two.
- Developing a robust data simulator using VC# in order to support real time updating of bullion prices.
- Simultaneous execution of the number of integrated featured without losing consistency.
- Smooth performance and load balance.
- Java script compatibility for all browsers and ensuring safe and secure data transfer.
- Application needed to be configured to send mails from various modules.
|Operating System & Server Management||iOS, Windows OS, Multi-Server Architecture with Staging & Production Environment through Version Controlling releases, Server Optimization, Security & SSL Implementation, Alert Monitoring System Integration, Server Performance Tuning at regular intervals, Software Firewall Configuration & Maintenance|
|Development Tools & Environments||VC#, Eclipse Indigo, SVN, HTML5, CSS3, Java Script, Spring, Hibernate, JDBC Template, JSF, JSon, Esper Engine, Velocity Template etc.|
|Database||MYSQL Database Server, JBoss, DB Clustering, DB Optimization, Master Slave Replication, Query Optimization, Scheduler for Backups|
|Quality Assurance Testers||1|
Taking into consideration the enormous nature of the project along with the number of integrated features, a four tier approach was adopted:
- The database layer – MySQL Server Database, Tables and so on
- Data Access Layer – Data Access Objects to accessing data from the database.
- Business layer – objects with all the business logic procedures like Reagent, Protocols,
Facilities, Timer, Profile and Message Center, Account Settings, Network, Event etc.
- User Interface Layer – that forms the GUI of the application.
The BTS Application consists of three parts: JSF UI, Java Server and Data Sources.
Other than this, there are data scripts that run and load data from external sources to the clients database system.
Jboss server is the heart of the application. App installs on ROOT. The code is supplied by ROOT deploy (jboss-5.1.0.GA/server/ew/deploy). Flex was used for business logic and database access in order to generate charts.
The application uses a socket based architecture and communicates for data exchange with BTS and MCX Server. JBoss processes the remote method calls originating from the JSF UI. (http://www.jboss.org/) which then uses java services. Mail API and Velocity Templates manage the sending of mails. Esper event management APIs and Cron expressions are used to schedule periodic events.
The business logic is processed by the delegate layer. This layer uses the data extractor layer to get either Hosted Data from the Edelweiss database server or fetches data saved on the file system used by the user uploaded data.
The application reads the Java script’s data every 2 seconds from the MCX server. Socket based connections are used to share data from the MCX server and application server and should be in synchronization. Bullion prices are updated using Servlet and JSON.