usiness applications today are stuck in a time warp. Web-based applications offer ubiquitous access, but the business application architecture many companies use is still locked into the decades old centralized mainframe model?a model where end-users often access a single instance of the application and almost always access a centralized corporate database.
Applications have moved from the client/server paradigm, to the multi-tier architecture, to Web-based GUIs, to application servers, to open-source platforms, and now are embracing Web services. Yet all of these changes have left the database layer of the application architecture largely untouched.
This is why, for example, a sales rep in Tokyo might have to connect over the Internet to a sales force automation application in New York to get information on a customer located half a block away. If the database administrator (DBA) in New York has taken down the database for some midnight maintenance, the sales rep in Tokyo?who’s in the middle of her workday?is back to writing notes on paper for later data entry into the application. It’s just like the 1960s.
Even when the database system in this example is up, the sheer distance to a server halfway across the world would cause delays, making the user experience poor. On top of it all, the investment her company made in providing sales staff with powerful laptops and PCs is largely wasted because the centralized application architecture uses these platforms as nothing more than browser-based terminals?just as mainframe architectures used dumb terminals.
All of this raises a number of questions. Why do we continue to lock applications into a centralized database model? When you take an inventory of your critical applications, can they run without connectivity to a centralized database? Are users forced to work around applications that they cannot run disconnected? Is the sales rep in Tokyo frustrated because she cannot access important facts about her account unless she is online? And even when she is online, is the quality of service she experiences at the level she needs to be successful?
The flaws of the centralized model in this example are clear: both the sales person and the New York-based DBA would be much more productive if the application and customer database were deployed in her local office or on her laptop. Each could do their job without dependence on the other, each would be more productive, and the existing resources of the enterprise would be used more effectively.
The Value of Decentralization
Most business applications are interactive in nature and are a bad match for the centralized deployment model. Whether it’s a sales person in the Tokyo sales office, a maintenance technician on an airfield in Paris, or a national retail chain store manager in Omaha, all would be better served by a decentralized architecture in which their applications are deployed across regional locations and local devices, rather than in a distant data center.
Microsoft Word is an excellent example of the value of decentralization. Asking workers to connect to a centralized data center to access Microsoft Word would make no sense. Productivity would take an enormous hit, because people wouldn’t be able to use their word processor offline, and outside of corporate headquarters, network latency would be so frustrating that typing pools probably would be reinstated.
The fact that field workers and distributed business locations today must be online and connected to access their applications is equally incongruous. Field workers need access to rich data when they’re in the field driving business, not just when they’re in the office connected to the Internet. And workers in a retail store in Omaha need to be able to capture customer information, view inventory, and serve customers efficiently, even during network outages. That being the case, why are so many business applications centralized and available only online, when more and more workers are remote or mobile?
The answer is that managing distributed applications in remote and disconnected offices has historically been difficult. Today, however, emerging heterogeneous bi-directional replication technologies make distributed applications practical.
I know what you’re thinking: “I’m already doing this today with my Palm and my PC and my synchronization software.” Well, you’re wrong. The advanced synchronization technology available today can cope with very large databases?databases with hundreds of tables and millions of rows?while ensuring that only data required by the end users is transferred. The technology can preserve complex interdependencies between data (often the basis for business transactions) and restart a partial synchronization effort without skipping a beat. All this can be done with any application. This is a dramatic contrast to the typical brute-force comparison of all data available, as is typical with most first-generation mobile platforms.The Roadblock to Decentralization: The Corporate Database
The corporate database represents the thorniest problem in adopting decentralized, or distributed, application architectures, for the following reasons:
A number of market forces at work today are breaking down these barriers to the distributed application model. For one, cheap disk storage and powerful PCs make it possible and cost-effective to distribute, store, and process vast amounts of data anywhere in the enterprise. Databases used to be centralized out of necessity. Today, however, it is quite possible to, for example, put the entire customer database on a salesperson’s notebook. Additionally, today’s corporate emphasis on disaster recovery and high availability, combined with slashed IT budgets, make an inherently redundant, decentralized application infrastructure far more attractive and cost-effective than today’s capital-intensive “fail-over” or “hot-standby” backup schemes.
Network infrastructure has improved to the point where many systems actually operate in an “occasionally disconnected” mode. Remote workers generally have network connectivity or can easily gain access to a corporate network with limited effort. These connections?whether they are wired or wireless?likely have limited bandwidth or are subject to latency unsuitable for presenting a complex user interface, but they are ideal for providing a channel for synchronizing data on a near real-time frequency. This, combined with an approach that allows for disconnected operation, means that the user experience can have the highest quality possible.
To illustrate this, think about a simple trip from home to the airport during which a wireless network device might operate great on the highway, lose connectivity for a short time in an underpass, tunnel, or parking garage, and suffer complete loss once the airplane departs. That type of generally available, but occasionally disconnected, access is going to be the typical connectivity model for remote workers for the foreseeable future. This is a network infrastructure that cannot support true continuous access to critical, centralized applications and data, but is entirely capable of transferring data to provide the highest quality user experience for applications that can support disconnected operation. There is no reason enterprise applications cannot provide the same network transparency that a mail reader can.
While encryption of data being transferred is no longer an issue with widely available strong encrypted stream technology, the additional power of today’s computing devices also makes it possible to encrypt data stored on disk without sacrificing basic performance characteristics. The advent of biometric devices such as the PC-Card thumbprint reader means that special devices can be deployed at a very low cost. The net result is data?whether stored in remote servers or on individual laptops?can enjoy a high level of security at a reasonable cost.
And finally, open-source databases and application servers enable companies to overcome the cost barriers inherent in traditional vendor licensing schemes, making it economically feasible to deploy these system components in multiple locations at the edge of the network.
The time is ripe for IT departments to decentralize their business applications and move databases and applications to the edge of the network. So, how do they do it?How to Decentralize
To date, companies have attempted to decentralize in the following two ways:
Bi-directional Replication for Distributed Databases
Today’s new heterogeneous bi-directional replication technologies provide a much better approach to decentralizing. They provide a powerful way to distribute databases across the enterprise. Because these technologies are available as general-purpose software, they enable a new approach to building distributed software solutions. Their heterogeneity enables companies to use any combination of databases. Because they are bi-directional, they enable companies to create redundant architectures populated by replicated systems.
The products featuring heterogeneous bi-directional replication technology can eliminate the manual programming and integration efforts that are so common when building complex synchronization infrastructure. Once a product offering supports hundreds or thousands of deployed sites, software developers can rapidly deliver applications that support distributed deployment (see Figure 1) .
|Figure 1: The Distributed Enterprise
Often software vendors find that once they build support for distributed deployment, they are able to address a much larger marketplace and provide competitive differentiation by delivering a new class of applications.
This new class of distributed database applications does not eliminate the need for large centralized databases. It provides a robust environment in which data can be distributed across an enterprise, providing end users with better quality of service and eliminating the dangerous single point of failure inherent in centralized database application architectures.
The Early Adopters
Retail is one of the early areas of adoption for this type of replication technology. Instead of centralizing point-of-sales (POS) systems and polling the systems, retailers are deploying distributed databases so all of their POS systems are local, but dynamically linked. This means that even if the network goes down, the retailer can continue conducting business as usual: capturing customer information, processing transactions, and even viewing sister stores’ inventory.
Field force automation is another area of early adoption, especially in the area of field maintenance for complex systems because it is so data intensive. Service systems can be built for devices like jet engines, providing service technicians with direct access to complete history, specifications, and even expert systems that help diagnose and perform complex repairs?regardless of whether the system technician has a full-time network connection.
Application and business requirements will often limit the amount of time a worker can operate without network connectivity. For a sales force selling very large and complex products, configuring an order directly with a customer may be an important requirement, but confirmation of acceptance of that order may need to wait until it has been transmitted to the central system. An application may need to account for this change in order-processing behavior, and once it does can provide a significantly improved sales experience over a multi-step review process necessary when a salesperson must return to their office to do final configuration of an order.
In the healthcare industry, application developers are finding they can employ devices on existing desktops to provide superior authentication solutions at very low cost, supporting legislated security requirements even at individual doctors’ offices.
Let’s Not Do the Time Warp Again!
As organizations gain experience with distributed deployment, they discover secondary benefits that are often just as valuable to an organization as the improved quality of service for end users. For example, a distributed system that has not only applications but also data maintained locally provides a level of resilience not possible with traditional application architectures. Properly deployed applications can survive virtually any failure?including even the loss of the centralized database?for an extended time without any loss of service to most end users.
It’s time for business applications to get out of the centralization time warp. Developers should take a long, hard look at their applications and evaluate the benefits that might be delivered by distributing both execution and data. Would end-users benefit if your applications could continue to operate disconnected from a central database? Do you need to provide mobile workers full-function applications but see no way to do it in a world dominated by centralized databases? Can your business process be modified to provide a better experience for a customer and support distributed processing? Do new low-cost authentication and encryption technologies provide adequate security for your data? Examine your application architecture, and you may find that the assumptions you have made about data are no longer valid.
In a world where advanced bi-directional heterogeneous replication technologies let you move data to the user, and keep that data synchronized without writing complex application code and without having to build a reduced function application, the centralized model seems as archaic as its forebear: the mainframe architecture. This concept of distributed data may seem new today, but technology evolution, combined with market opportunity and competitive pressure, will make it commonplace tomorrow. And at that point, end-users will expect all their critical applications to run disconnected from the network.