Borland®
Shop
Products Downloads Services Support Partners News & Events Company Community
DataSnap

MIDAS 3
White Papers
FAQ
MIDAS 3 Licensing


Order Now

Register

Support

Case Studies

News & Press
News Articles
Press Releases

Previous Versions
MIDAS 2 Product Information
MIDAS 2 Licensing Information
MIDAS Client for Java

jobs@borland.com

Got Training

We Support CORBA

 MIDAS

Why Multi-tier?
A white paper discussing the benefits of a multi-tier application system.

Executive Summary
Architecting For Change
One-tier Applications
Two-tier Applications
Multi-tier Applications
Summary

Executive Summary

Today's information technology departments face a dilemma-is it possible to create a competitive advantage for the organization by developing, deploying, and managing distributed applications that scale across the LAN, WAN, and Internet, while preserving investments in systems, applications, information, and people? IT organizations are today being asked to build the future, without breaking systems that maintain the current business.

A possible answer to this dilemma is the implementation of a multi-tier distributed computing architecture. Multi-tier architecture has the potential to provide better, more timely information across the enterprise at a lower cost than the current combination of PC LAN, two-tier client/server, or mainframe applications that have been developed in most organizations.

This paper discuss the limitations of the traditional one-tier and two-tier application structures that have developed, while looking at the advantages the multi-tier application architecture can provide.

For multi-tier architecture to be effective, three key components need to be present:

  1. Empowerment of the developer to integrate a distributed computing architecture within existing databases, tools, and components.
  2. Certainty of efficient network traffic.
  3. Mechanisms to handle load balancing to distribute the work across many servers.

Borland is able to provide a product that matches these three key requirements-Multi-tier Distributed Application Services Suite (Borland MIDAS). With Borland MIDAS, Borland is providing a suite of middle-tier application services that extend the operating system standards. These services are designed to solve particular distributed computing challenges, ranging from directory services designed to locate applications on the network to database integration and business rule processing.

Borland is able to provide this technology due to its traditional expertise in development tools and component models, and technologies brought to Borland by the Open Environment Division. The Open Environment Division's Entera product provides an open and flexible architecture that will last well into the next decade. The infrastructure built with Entera gives a scalable environment for deploying enterprise-wide applications that integrate multiple GUIs and multiple data sources into a fully distributed computing environment.

Architecting For Change

Today's IT marketplace is flooded with application development tools that promise flexibility. Open systems, client/server computing, and object-oriented programming show tremendous promise in terms of technology to take us into the next computing age. So far, most businesses have had difficulty delivering on this promise.

It is estimated that only 15 pecent of client/server projects are successful, where success is defined as being delivered on time, within budget, and with required functionality. The failure of these projects has little to do with the available technology. The three primary reasons for failure are:

To be successful with these new technologies, businesses not only need to use new tools, they also need to change the way application systems are developed.

To assist in this process, an organization must define its overall architecture. An architecture can help define how systems, subsystems, tools, or applications fit into a business environment. It provides metrics which can be used to select the technologies which will be used to develop systems. An architecture should not specify actual products that are to be used. An architecture should be based on corporate principles and should uniquely reflect a corporation.

An application architecture dictates the way in which an application is created and how its components are distributed across systems. Most application programs are made up of three fundamental types of application components.

  • A presentation component contains the logic which presents information to an external source and obtains input from that source. In most cases, the external source is an end user working at a terminal or workstation, although the external source might also be a robotics system, a telephone, or some other input device.
  • A business component contains the application logic that governs the business function and process performed by the application. These functions and processes are invoked either by a presentation component when a user requests an option, or by another business function.
  • A data access component contains the logic that interfaces either with a data storage system, such as database systems or hierarchical file systems, or with some other type of external data source, such as a data feed or an external application system.
One-tier Applications

The one-tier application architecture is based on a comprehensive environment where all components are combined in a single integrated program, running only on one machine. This is the traditional mainframe or mini-computer environment.

The one-tier approach provides a number of significant advantages. Since the application is centralized in a single environment, it is easy to manage, control, and secure these applications. These systems are dependable, reliable, and support a large number of users.

There are a number of significant disadvantages associated with the one-tier approach. Since one-tier applications are confined to a single processor, scalability can be a costly prospect. If the current machine in use becomes overloaded, the only recourse is to upgrade to a larger machine. However, one-tier applications are extremely dependent on their hardware-based operating environment. Essentially, companies are locked into their specific hardware platform. As a result, companies are not able to take advantage of new technologies until they are made available by their vendor.

Two-tier Applications

With the advent of personal computers, local area networks, relational databases, and powerful desktop applications and tools, the computing industry has moved into the realm of open systems and client/server. Decision-makers can generate their own reports and manipulate data in powerful tools on their desktop workstations. Two-tier architecture allows the user to perform functions they haven't been able to do before.

The two-tier client/server architecture divides the processing between a desktop workstation and a server machine. The most popular client/server environment uses a Windows-based PC with a powerful GUI development tool and a UNIX or Windows NT server with a relational database.

The two-tier client/server approach provides some significant advantages over the one-tier approach. The GUI development tools allow more rapid development and deployment of applications. By off-loading much of the application processing to the desktop workstations, the server systems do not need to be as large. The smaller UNIX server systems are significantly cheaper than the large mainframe systems. The hardware-independent database systems allow easy portability between systems, effectively breaking the hold of hardware lock-in.

In exchange for these advantages, the two-tier approach loses some security, reliability, scalability, and control. The two-tier model works extremely effectively as long as it is restricted to development of smaller applications, accessing few relational databases, and not supporting a large user base. But as applications become more complex, in terms of business algorithms processed, number of databases accessed, or number of users supported, the two-tier approach starts to fall short. Without the tight security controls provided by a centralized environment, each client application must enforce its own security process.

Since the GUI tools are so easy to use, less skilled programmers can easily become proficient developers. More importantly, the desktop systems are the least manageable hardware platform within the computing environment. Hence, many companies are still reluctant to move their mission-critical production application systems onto PCs. For the moment, client/server is still most useful in decision support applications.

Multi-tier Applications

There is a way to make the benefits of client/server outweigh the drawbacks. The multi-tier client/server architecture provides an environment which supports all the benefits of both the one-tier approach and the two-tier approach, and also supports the goals of a flexible architecture.

The three tiers refer to the three logical component parts of an application, not to the number of machines used by the application. The multi-tier application model splits an application into its three logical component types-presentation logic, business logic, and data access logic, where there may be any number of each of the component types within an application. The application components communicate with each other using an abstract interface, which hides the underlying function performed by the component. This infrastructure provides location, security, and communication services for the application components.

Object Reuse in Other Applications
The advantages of a multi-tier environment extend beyond the life-cycle of a single application. In fact, what is being built is not actually an application: it is a collection of client and server modules that communicate through standardized, abstract interfaces and, when combined, they behave like an integrated application system. Each module is actually a shareable, reusable object that can be included in other application systems. This plug-and-play versatility is useful when an IT department needs to support different but related parts of the business.

For example, a strategic application within a sales department should be able to view inventory information and interface with the order entry system. Therefore, the sales application could include business and data access objects from the inventory and order entry applications. These objects could also be reused in a strategic scheduling application for the manufacturing department.

Abstract Interface
The object-oriented concepts of encapsulation and abstraction are fundamental to the multi-tier architecture and to application flexibility. Each application component can be viewed as an encapsulated object-a data structure with a set of operations or methods that can be used to manipulate the data. The data within the object can only be manipulated by using one of the defined operations. The operations are invoked using an abstract interface. The abstract interface identifies the operation to be performed and defines the input and output parameters that are required to perform the operation.

An abstract interface masks the actual application logic performed within the application object. The abstract interface allows the object to be viewed as a black box by the outside world. More to the point, the application logic within the object can be modified or replaced without impacting the other application objects that interface with it. As long as the operation, the input, and the output parameters do not change, no modifications need to be made in any other component.

Easier System Maintenance
The most obvious advantage of a multi-tier architecture is ease of maintenance. Since application functions are isolated within small granular application objects, application logic can be modified much more easily than ever before. For example, one function that is performed by a financial application is to project post-tax earnings. The algorithms of this function change periodically as tax regulations change. Normally, changing tax regulations requires significant modifications to the entire financial application. By isolating these business rules into an autonomous business object, the algorithms can change to match the tax regulations without adversely affecting the rest of the application.

A More Effective Use of Data And Networks
A more subtle advantage of the multi-tier architecture results from the fact that the application logic is no longer tied directly to the database structures or a particular DBMS. Individual application objects work with their own encapsulated data structures, which may correspond to a database structure, or may be a data structure derived from a number of different data sources. When application objects communicate, they only need to send the data parameters as specified in the abstract interface rather than entire database records, thereby reducing network traffic. The data access objects are the only application components that interface directly with the databases. Conceivably, a database could be completely migrated from one DBMS to another without adversely affecting the entire application: only the data access logic would need to be modified. This autonomy provides IT departments with the ability to better react to either business or technological changes.

The abstraction of the data access logic leads to another significant benefit. The concept of data can be extended to include sequential files, indexed files, nonrelational databases, data feeds, and even legacy application systems. There are no limitations based on the capabilities of SQL. A set of data access modules can be developed to provide access to these legacy environments, with a convenient set of abstract interfaces that are accessible from anywhere throughout the enterprise. The abstract model also proves valuable when migrating legacy data structures to relational systems. In a multi-tier world, a data access module that accesses legacy data today can be replaced by a data access module that accesses relational data tomorrow, without affecting the rest of the application.

Higher Developer Productivity through Specialization
With two-tier methodologies, each programmer must develop all aspects of an application, including presentation, business, and data access logic. This approach does not exploit the fact that most programmers excel in certain tasks and not in others, and that they are more productive when they are specialized.

In a multi-tier world, programmers who have excellent user interface skills can concentrate on developing powerful presentation components, and they don't need to know, nor do they care, about the inner workings of the application's business logic or how the data is accessed from a database. Meanwhile, database analysts who know the best ways to access data from a database do not need to be concerned with how the data is presented to an end user. Business analysts can concentrate on developing business algorithms. When a business component requires data, it calls the appropriate interface to call the data access component.

Distributed Computing Infrastructure
Integral to the workings of the multi-tier architecture is a distributed computing infrastructure. A distributed computing infrastructure provides the services that allow the application components to be transparently distributed across any number of physical systems, a concept often referred to as partitioning.

The partitioning of application components across a number of different systems introduces a new spectrum of technological issues:

In the two-tier environment, communications are accomplished using the DBMS connectivity environment. The developer must identify the location of the database system within the application, and the client application and/or the database system performs the necessary security checks. Conversely, in the multi-tier environment, communications are performed through an abstract interface. The abstract interface does not indicate the actual location of the requested server object. The application programmer does not need to directly address these issues. Server location, security checks, and communications should be handled dynamically at run time by a distributed computing infrastructure.

A dynamic distributed computing infrastructure allows the distributed application environment to be reconfigured to accommodate additional users, increased workloads, or unexpected hardware failures as they happen, without loss of service. Physical partitioning of application systems is the most effective means to support scalability, reliability, and availability issues. As additional users are added to the system, CPU utilization exceeds acceptable levels, or database connections overwhelm memory, server modules can be shifted to alternate machines or can be replicated across a number of machines. Physical partitioning maximizes hardware utilization because partially idle machines can be incorporated into a load-balancing mechanism. Overall system load can be spread evenly across a number of different machines. Because each application component can be replicated independently, virtually any server machine can be used to run some part of the application for some set of users.

Service distribution and replication do more than eliminate processing bottlenecks. They also provide a mechanism for fault tolerance and increased system availability. The replication of services removes any single point of failure. If a particular process encounters a problem, a replica can handle subsequent service requests. If a server machine unexpectedly shuts down or an entire network subnet becomes unavailable, the requests can be directed to application replicas on other systems.

Obviously, the distributed computing infrastructure that enables application partitioning, transparency, security, scalability, reliability, availability, and manageability is a critical component for the development and deployment of mission-critical, multi-tier client/server applications. There are three major services which must be provided by the distributed computing infrastructure:

  • Directory Service

    A directory service maintains a dynamic list of all application services throughout the enterprise. Whenever a client makes a request, the directory service locates an application service which can handle the request and tells the client how to communicate with the service.

  • Security Service

    A security service maintains a registry of all authorized users throughout the enterprise and keeps track of which functions each user or groups of users are allowed to perform. The security service provides a single login service for all systems throughout the enterprise. Once a user is authenticated by the security service, he is authenticated on all systems.

  • Application Management Service

    An application management service maintains a dynamic configuration of application services. It is responsible for starting the appropriate application services on the appropriate machines and monitoring the application services to ensure that they are available and performing within required parameters. If any application services are lost, the management service must restart the service or perform some other appropriate action, according to the configuration. As load increases or decreases, the management service can start or stop replica services on various nodes throughout the enterprise.

Borland is able to provide these three services via Delphi 3 Client/Server and Borland MIDAS. The three key broker technologies available in Delphi 3 and Borland MIDAS-the Business Object Broker , the Remote DataBroker, and the ConstraintBroker-provide a solution to these distributed computing challenges. For a complete discussion of the Borland MIDAS broker technologies, please refer to the Borland MIDAS Overview white paper.

Summary

A multi-tier application architecture is the most effective and comprehensive system architecture available for developers. It overcomes the limitations imposed by one-tier and two-tier structures without compromising any part of the development process. The benefits of a multi-tier system can be summarized as:

With Delphi 3 Client/Server and Borland MIDAS, Borland provides tools to enable the multi-tier application developer to take advantage of the benefits inherent in this infrastructure.

 
Site Map Search Contact