Delphi 2 - Developing For Multi-Tier Distributed Computing Architectures with Delphi Client/Server Suite 2.0

By: Borland Staff

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.

    data module screen shot 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.

    Two-tier diagram
    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'.

    Three-tier diagram
    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.

    Multi-tier diagram
    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.


Server Response from: ETNASC03