Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

Why ETrade banks on Java to keep bulls and bears in line

Java adds high-availability and reliability to online trading infrastructure

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Page 2 of 4

"Everything we buy or build has to scale very well, and the Kiva server is fully multithreaded," says Bennett Ting, ETrade's senior software developer. "We use Kiva to drive the entire conversation between what we offer and the customer's Web browser -- the session state, dynamic page generation, where the user came from, what the user has selected, where they go to, etcetera," he says.

ETrade's infrastructure consists of 30-plus Web servers, a series of Kiva application servers, a series of Tuxedo application servers, and a series of databases. Both the Kiva layer and the Tuxedo layer can handle and distribute load factors over multiple servers, says Fleming. Moreover, this entire infrastructure -- Web servers, Kiva servers, Tuxedo servers, and databases -- is fully reproduced and mirrored at the firm's Sacramento data center, making everything fully redundant and thus minimizing the possibility of online service downtime.

The Kiva layer is used to normalize the Web conversation -- interactions between the Web servers and clients' browsers -- and then pass requests to a series of services. The Kiva layer serves up applications to get a quote, buy or sell something, do research, and so on. These requests are simplified into discrete requests and, in turn, converted into a series of API calls that are handed off to Tuxedo services such as order management, quote management, and portfolio management. These in turn go to various databases.

"Everything turns out to be a series of simple requests that are passed from one layer to the next, and then back to the user," says Fleming. "This gives us a tremendous amount of flexibility to write a service only once but be in a position to deploy it over multiple gateways."

With six months of experience, ETrade is now incrementally deploying a similar Kiva-Tuxedo architecture under the rest of its electronic commerce infrastructure. The entire ETrade Australia portion of its business and selected portions of its North American applications beyond mutual funds are now running on top of Kiva.

Failover code

The Kiva version 1.5 infrastructure deployed by ETrade in November delivered tremendous functionality, says Fleming, but needed additional code to ensure robust "failover" capabilities to prevent (or at least minimize) downtime.

"If you're running a storefront, it is one thing to go down for awhile and delay your customers from purchasing books, but with a rapidly shifting [stock] market, downtime is simply not acceptable," says Fleming.

Custom code was written, with Kiva's help, to ensure the infrastructure would provide uninterrupted operations 24 hours a day, 7 days a week.

The Kiva Enterprise Server version 2.1 now in place provides very similar failover support out-of-the-box. Session keys (which contain all the crucial information about who is doing what) are distributed over several servers. If one of the servers goes down, the users' Web session automatically rolls to another server with only a momentary delay, and perhaps only requiring a second mouse-click.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources
  • ETrade http://www.etrade.com
  • Neural Applications Corp. http://www.neural.com
  • Quote.com http://www.quote.com