The Artima Developer Community
Leading-Edge Java | Discuss | Print | Email | First Page | Previous | Next
This article is sponsored by the Sun Microsystems, Inc..

Leading-Edge Java
Banking on Jini Services
Innovative Architectures
by Frank Sommers
December 7, 2005

Page 1 of 3  >>

Advertisement

Summary
Ubiquitous high-bandwidth networking pushes computing increasingly away from the data center and into the network's edges. Branch office computing traditionally relied on client-server technologies with centrally located databases containing all system knowledge. The first in an occasional Leading Edge Java series on innovative architectures, this article describes a distributed system design developed by Rubean, A.G., that extends J2EE with Jini technology to help manage banking devices in a cost-effective decentralized manner.

Harvard Business School researcher Clay Christiansen's classic, The Innovator's Dilemma, defines a key challenge facing organizations. The "dilemma" is that even a large organization's carefully developed planning might come to naught as a result of disruptive changes brought about by a suddenly appearing upstart or technology. For instance, disruptive change occurred as PCs became powerful enough to take on jobs previously reserved for mainframes and expensive servers, to the chagrin of mainframe and server manufacturers. More recently, as traditional desktop software is increasingly supplanted by software as a service delivered over the Internet, entrenched PC software houses must scramble to devise new plans to cope with nascent businesses built around that new delivery model.

Disruptive change is not the sole domain of business managers, however. Change can as easily disrupt technology as it can the course of business. That may at first sound trite, since technology is a near synonym of rapid change. But a more careful look reveals that technology evolution is often the result of incremental change rather than disruptive innovation. For instance, most enterprises using Java technology to develop internal systems follow the J2EE architecture, a model now almost ten years old. During that decade most J2EE progress occurred as stepwise change, not in sudden leaps. Similarly smooth evolution marked the path of the Java programming language, most operating systems, and even desktop and enterprise software.

Among the many reasons to favor progress in small doses is compatibility: Since today's fresh source files become tomorrow's legacy code, the need to allow old and new code to work together preserves investment and minimizes business interruptions. But that is just Christiansen's thesis: While most of us prefer incremental progress, sometimes disruptive change occurs as a result of a conditions beyond the control of a single organization. Then an organization - or technology - must rise to the challenge, or see its relevance fade. This occasional Leading Edge Java series on innovative architectures is about projects that successfully navigated disruptive change, and in doing so created novel solutions to problems that soon all of us might face.

Extending the enterprise Java platform to the network's edge

A significant disruptive change is currently brought about by ubiquitous high-speed networking that enables computing to move away from the data center to the network's edges. While current enterprise software architectures are often labeled as "distributed," distribution is often between a fairly static client and a remote server containing all business and presentation logic.

A typical example of this client-server model is a web browser invoking a backend J2EE server: The browser is relegated to rendering a view already assembled on the server and to passing user input back to that server, hardly taking advantage of either the bandwidth of a broadband connection or the impressive computational fire power assembled on the user's PC.

Most important, however, is that this model relegates the user experience to interacting with static images rendered on the screen, and is absent of the high levels of interactivity users are increasing spoiled with not only in desktop software, but especially in video games and multimedia applications that do take advantage of locally available hardware resources.

Asynchronous JavaScript and DHTML - "AJAX" - point the trend toward a more distributed future in enterprise software as well, and are but a few of many technologies likely to cause disruptive change in how we design and build enterprise systems. In time, current enterprise architectures must embrace that distributed computing reality, or risk becoming irrelevant.

This article presents an example of extending J2EE with Jini technology to enable computing to move to the network's edges, and to allow devices located on the network to fully participate in an enterprise Java environment. The architecture presented here was developed by Rubean, a German software firm, and came about by the requirement to enable thousands of banking devices - ATMs, teller machines, cash registers - to operate in a Java framework. The devices are distributed in hundreds of bank branch offices, and must be invoked from J2EE applications running in a centralized data center.

Substitute banking devices with any other type of device, or even with legacy software, and the architecture is generally useful in extending the enterprise Java platform to the new reality of increasingly distributed computing. While applicable outside its immediate context, it is helpful to understand how Rubean's distributed architecture came about.

Page 1 of 3  >>

Leading-Edge Java | Discuss | Print | Email | First Page | Previous | Next

This article is sponsored by the Sun Microsystems, Inc..

Sponsored Links



Google
  Web Artima.com   
Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us