You are on page 1of 5

Abstract: Delphi Client/Server Suite provides developers with the scalability necessary

to develop traditional two-tier and three-tier Client/Server applications.

Developing For Multi-Tier Distributed Computing Architectures with Delphi


Client/Server Suite 2.0
By Scott Clinton
Tech. Manager, Strategic Partnerships
Borland International

VII. USER INTERFACE

Executive Summary
Two-tier Architecture
Three-tier Architecture
Multi-tier Architectures
Conclusion

Executive Summary
More and more companies are embracing the Delphi Client/Server Suite for the
development of complex, mission critical, applications. Delphi Client/Server Suite steps up
to meet and exceed the rapidly growing challenges for data accessibility and Return On
Investment (ROI). Delphi Client/Server Suite provides developers with the scalability
necessary to develop traditional two-tier and three-tier Client/Server applications.

High-volume Client/Server applications are moving from traditional two-tier to 'multi-tier,'


often referred to as 'three-tier' or 'n-tier', architecture implementations. Three-tier
architectures provide greater performance for high-volume On-Line-Transaction-Processing
(OLTP) and distributed applications exceeding 200 users.

Delphi Client/Server Suite includes the essential technologies for successful n-tier
Client/Server development: object-oriented architecture, open tools architecture, and an
extensible, component based development environment.

The Bank of First Chicago has turned to Delphi Client/Server and AT&T/NCR's TopEnd
middleware product for the development and enhancement of their Funds Transfer
Processing System. Spectra Securities of Canada has implemented a three-tier financial
management system using Delphi and EZRpc from NobelNet. Spectra developed new
solutions which leveraged existing legacy applications.

Why multi-tier?
Multi-tier Client/Server architecture offers the developer a methodology for building
Client/Server applications based on an extensible, reusable, component based, model. This
architecture provides for clean standardized interfaces between logical-component levels
called 'Tiers'.

The Garner Group has stated that it believes that multi-tier architectures will become
increasingly important in 1997 and beyond. While the number of companies who actually
require this technology is somewhat small, the applications work with thousands of clients,
with very high transaction volumes, distributed over wide-area networks.

Although your business my not need to employ a multi-tier infrastructure today, it is


important that your applications and development tools have the ability to scale into these
high transaction-volume environments tomorrow. Where other development tools "hit the
wall" when attempting to scale, Delphi's RAD (Rapid Application Development), object-
oriented, and extensible development environment allow developers to go right over the
wall without looking back.

Part I of this document introduces the concepts of two-tier and multi-tier development,
explains their significance, and shows how Delphi Client/Server provides great tools for C/S
development. Part II will present case studies from the companies mentioned above and
others.
Delphi strengths for 2-tier and n-tier development

Object-oriented architecture for business objects

Delphi Client/Server Suite's object-oriented architecture


allows the developer to create 'business objects.'
Business objects implement business rules critical to
maintaining valid data. Developers gain all the
advantages of using and developing standard
interfaces and can leverage key features of object-
orientation, such as inheritance and polymorphism.

Delphi Client/Server Suite 2.0 adds DataModules.


DataModules are containers for data access methods
and business rules. DataModules make it even easier to
separate out the tiers of a n-tier application.

DataModules can be stored in the repository and descendants created for use in other
applications. The same business rules can be shared among a team of developers and
applied to many different applications, ensuring consistent logic.

Extensible, component-based, development environment


Delphi Client/Server Suite has an entirely component-based architecture, its capabilities
are easily extended by the developer through the creation of custom components. These
components can then be shared amongst development teams to provide greater code re-
use and lead to higher productivity.

Delphi's extensible architecture allows DEC, Nucleus, NobleNet, Open Environment


Corporation, Open Horizon , and IONA Technologies to build component based solutions for
multi-tier systems. These vendors provide a variety of solutions, from middleware-
connectivity, to a complete array of middleware services.

Open Tools Architecture


Delphi Client/Server Suite's open-tools architecture makes it easy for developers and third-
party solution providers to integrate the latest technologies into the Delphi C/S Suite.
Already established enterprise wide services developed for Tuxedo, Encina, CICS, TopEnd,
Entera, have been successfully integrated into Delphi applications. Additionally, the
developer can take advantage of custom application services via standard RPC
mechanisms. Delphi Client/Server Suite can take advantage of the CORBA infrastructure
through COM, Network OLE, and Remote OLE.

The Delphi Client/Server Suite empowers the developer to develop applications which fit
the business needs of today and scale to meet tomorrow's challenges. As new
technologies evolve for n-tier application development, Delphi Client/Server Suite's
extensible architecture can be expanded by the developer to meet new or custom
requirements. Applications achieve blazing performance, thanks to Delphi Client/Server
Suites' 32-bit highly optimized native code compiler.

Two-tier architectures
About the terms 'Client/Server,' 'two-tier,' and 'three-tier'
The term 'Client/Server' has traditionally been associated with a desktop PC connected
over the network to some sort of SQL-database server. In fact, the term Client/Server
formally refers to a logical model that provides for a division of tasks into 'client' and
'server' layers or 'tiers'. The two-tier physical representation that we have become
accustomed to is actually just one possible implementation of the Client/Server logical
model. Mainframe programmers have employed the Client/Server model for years and
most mainframe applications have a Client/Server architecture.
There are no limitations to the number of tiers an application may have. The 'three' in
three-tier represents the most common number of logical separations for an application.
These logical separations are broken down into Presentation, Application, and Data
services, as described further below.

Two-tier architecture
Two tier Client/Server provides a basic separation of tasks. The client, or first tier, is primarily
responsible for the presentation of data to the user and the 'server,' or second tier, is primarily
responsible for supplying data services to the client. So far, so good.

Figure 1. Two-tier Client/Server architecture

Presentation services
'Presentation services' refers to the portion of the application which presents data to the
user. In addition, it also provides for the mechanisms in which the user will interact with
the data. More simply put, presentation logic defines and interacts with the user interface.
The presentation of the data should generally not contain any validation rules. Delphi
Client/Server Suite's Rapid Application Development (RAD) approach to application
development and component architecture allows the developer to easily assemble the
presentation layer and move quickly from prototype to production.

Business services/objects
'Business services' are a category of application services. Business services encapsulate or
componentize an organizations business processes and requirements. These rules are
derived from the steps necessary to carry out day-today business in an organization.
These rules can be validation rules, used to be sure that the incoming information is of a
valid type and format, or they can be process rules, which ensure that the proper business
process is followed in order to complete an operation.

Through Delphi Client/Server Suite these services can be encapsulated in Delphi


components which can then be shares amongst development teams providing for easier
maintenance and component/code reuse.

Application services
'Application services' provide other functions necessary for the application.

Data services
'Data services' provide access to data independent of thier location. The data can come
from legacy mainframe systems, SQL RDBMS systems, or proprietary data access systems.
Once again, the data services provide a standard interface for accessing data. Delphi
Client/Server Suite includes connectivity to Informix, InterBase, Microsoft SQL Server,
Oracle, Sybase and any other data source which supports ODBC.

Where do application logic and business rules reside in two-tier Client/Server?


As Figure 1 depicts, both business rules and application logic can reside on either the
client or the server. The Client/Server division doesn't apply to them. The resulting lack of
clarity raises several critical issues: reuse, scaleability, and maintenance. Delphi
Client/Server offers a number of features which ameliorate these issues, and an n-tier
architecture provides further resolution.

Delphi for two-tier development


Delphi Client/Server Suite addresses the issues mentioned above, smoothing the transition
from existing two-tier to three-tier solutions.

Delphi Client/Server Suite outpaces the competition such as PowerBuilder, SQL Windows
and Visual Basic for two-tier application development. Delphi Client/Server Suite employs a
true object-oriented language, to support a component-based RAD model offering greater
re-use and scaleability. Unlike competing products, Delphi allows developers to create
custom components (VCLs) in Delphi to extend the Delphi development environment
without having to resort to using another tool or language. Delphi Client/Server Suite's 32-
bit optimized native-code compiler delivers high performance native-code applications.

Three-tier architecture
A 'Multi-tier', often referred to as 'three-tier' or 'n-tier,' architecture provides greater application
scaleabilty, lower maintenance, and increased reuse of components. Three-tier architecture offers
a technology neutral method of building Client/Server applications with vendors who employ
standard interfaces which provide services for each logical 'tier'.

Figure 2. Three-tier Client/Server architecture

Through standard tiered interfaces, services are made available to the application. A single
application can employ many different services which may reside on dissimilar platforms
or are developed and maintained with different tools. This approach allows a developer to
leverage investments in existing systems while creating new application which can utilize
existing resources.
Multi-tier architectures
A multi-tier, three-tier, or N-tier implementation employs a three-tier logical architecture
superimposed on a distributed physical model. Application Servers can access other
application servers in order to supply services to the client application as well as supply
services for other application servers.

For example, in the diagram below the client application looks to Application Server #1 to
supply data from a mainframe based application. Application Server #1 has no direct
access to the mainframe application but, it does know, through the development of
application services, that Application Server #2 provides a service to access the data from
the mainframe application which satisfies the client request. Application Server #1 then
invokes the appropriate service on Application Server #2 and receives the requested data
which is then passed on to the client.

Application servers can take many forms. An application server may be anything from custom
application services, Transaction Processing Monitors, Database Middleware, Message Queue to a
CORBA/COM based solution.

Figure 3. Multi-tier Client/Server architecture

Application server vendors such as Open Environment Corporation (Entera), BEA Systems
(Tuxedo), IBM (CICS, MQSeries), IBM/Transarc (Encina), Iona Technologies (ORBix), NCR
(TopEnd) in combination with their partners offer connectivity solutions for Delphi
Client/Server Suite.

Conclusion
This paper has provided a quick overview of 2-tier and n-tier Client/Server terms, concepts and
characteristics. It has shown how Delphi Client/Server has features which are important to
Client/Server development and can help developers leverage existing legacy applications.

You might also like