UNITIII THREE-TIER COMPUTING

Objective

The Objectives of 3-Tier Architecture can be defined as given below:Centralized Management of data warehouse applications, Platform independent access, Mobile Computing Access to existing applications without reengineering and retraining. GUI based universal interface, interfacing multimedia data with conventional data bases, highly scalable environment and Easy migration of applications.

Technologies

The technology requirements at the three level of architecture are different. Let us examine the Requirements at these levels and the matching technologies available in the market todayApplication Processing provided by multiple tiers there are:

1. PC Workstation (Presentation layer)

2. Application Server

3. Database Server

3-Tier Architecture Considerations:

Client program contains presentation logic only

  • Less resources needed for client workstation
  • No client modification if database location changes
  • Less code to distribute to client workstations

One server handles many client requests

  • More resources available for server program
  • Reduces data traffic on the network

Three- tier architecture

3-Tier Architectures

Enhancement of network performance is possible in the alternative 'N-tier' client-server architecture. Inserting a middle tier in between a client and server achieves a 3-tier configuration. The components of three-tiered architecture are divided into three layers: a presentation layer, functionality layer, and data layer, which must be logically separate. (Figure-A) The 3-tier architecture attempts to overcome some of the limitations of 2-tier schemes by separating presentation, processing, and data into separate distinct entities. The middle-tier servers are typically coded in a highly portable, non-proprietary language such as C. Middle-tier functionality servers may be multithreaded and can be accessed by multiple clients, even those from separate applications.

The client interacts with the middle tier via a standard protocol such as DLL, API, or RPC. The middle-tier interacts with the server via standard database protocols. The middle-tier contains most of the application logic, translating client calls into database queries and other actions, and translating data from the database into client data in return. If the middle tier is located on the same host as the database, it can be tightly bound to the database via an embedded 3gl interface. This yields a very highly controlled and high performance interaction, thus avoiding the costly processing and network overhead of SQL-Net, ODBC, or other CLIs. Furthermore, the middle tier can be distributed to a third host to gain processing power capability.

3 – TIER ARCHETECTURE FOR ENTERPRISE WIDE IT SOLUTIONS

- Application level parallelism (threads option)

- Network centric computing

- Visual operating environment

- Object oriented programming

Man/Machine interface

The front end Man/Machine interface is crucial for_ 3 – Tier architecture_. The INTERNET has taken world by storm due to web technology. This easy flexible interface has attracted students, cine-actors, business men and executives to surf the net. The same interface is ideal for implementing applications also. The HTTP protocol of web technology enables access to data, text, audio and video seamlessly. It provides for action points in the HTML text to enable processing at both client and server ends. Hence, the front end is any JAVA enabled browser and typical examples are given below:

Network computers with Netscape Navigator(NC) Java station with HOT JAVA Windows 95 desktop with INTERNET EXPLORER Novel client with browser Phones, PDA_s Macintosh clients

Web server

The technology on Web server plays a crucial role in interfacing front end with data warehouse. The action points of interface between web browser and web server is provided through several methods which make the web pages interactive. The CGI, Java Script, Lotus Script, JAVA and Active X are some examples. The CGI and Java script are embedded in the HTML document and are executed on the web server. The Web server will capture data from browser, process it and create HTML document which can be sent to browsers. CGI provides easy interface and development environment. However, it has some inherent disadvantages like under utilization of NC power of processing overloading the server, web server OS dependency and complex development skills Java is the language for INTERNET applications with its object orientation, simplicity, ease of development, platform independence, built in network features and security.

The applet, a small program downloadable from web server and executable on browser provides distributed processing and centralized control on applications. JAVA enables development of powerful applications on this environment. The JDBC connectivity classes provide for ODBC compatible RDBMS servers access. However, the built in security features of JAVA are posing some problems. The Java applets cannot utilize any local resources of the browser (NC) and can only communicate with web server from which it is downloaded. Hence, the JAVA applets have to talk to a process on web server which can in turn talk to data base server to get the required data. This process can be an application server to get the required data. This process can be an application developed in JAVA as per the specific requirements. Many software houses are working in this area to develop appropriate software to provide generalized access mechanisms. SCO is developing tarantella server and prototype is already demonstrated in SCO-Developers conference in India. Web logic is developing T3 server and beta version is available for downloading on INTERNET. Lotus Corporation has announced its DOMINO Server with some of the features required IBM announced latest version of OS400 with net server which will provide browser interface to its native applications without redevelopment

Components Interconnections

3-tierapplication architecture is characterized by the functional decomposition of applications, service components, and their distributed deployment, providing improved scalability, availability, manageability, and resource utilization. During an application’s life cycle, the three-tier approach provides benefits such as reusability, flexibility, manageability, maintainability, and scalability. Each tier is completely independent from all other tiers, except for those immediately above and below it. You can share and reuse the components and services you create, and you can distribute them across a network of computers as needed. You can divide large and complex projects into simpler projects and assign them to different programmers or programming teams. You can also deploy components and services on a server to help keep up with changes, and you can redeploy them as growth of theapplication’s user base, data, and transaction volume increases. Logic layer is moved outside the presentation layer and into the business layer as it enhances reuse. As applications grow, applications often grow into other realms. Applications may start out as a web application, but some of the functionality may later be moved to a smart client application. Portions of an application may be split between a web site and a web or windows service that runs on a server. In addition, keeping logic helps aid in developing agood design (sometimes code can get sloppier in the UI). The main benefits of the 3-tier architectural style are:

  • Maintainability. Because each tier is independent of the other tiers, updates orchanges can be carried out without affecting the application as a whole.
  • Scalability. Because tiers are based on the deployment of layers, scaling out anapplication is reasonably straightforward.
  • Flexibility. Because each tier can be managed or scaled independently, flexibility isincreased.
  • Availability. Applications can exploit the modular architecture of enabling systemsusing easily scalable components, which increases availability.

Consider the 3-tier architectural style if the processing requirements of the layers in the application differ such that processing in one layer could absorb sufficient resources to slow the processing in other layers, or if the security requirements of the layers in the application differ. For example, the presentation layer should not store sensitive data, while this may be stored in the business and data layers. The 3-tier architectural style is also appropriate if you want to be able to share business logic between applications, and you have sufficient hardware to allocate the required number of servers to each tier. This involves one more layer called the business logic tier, service tier or middle tier (layer). In the client-server solution the client was handling the business logic that makes the client

“thick”. A thick client means that it requires heavy traffic with the server, thus making it difficult to use over slower network connections like Internet and Wireless (3G, Edge or Wi-Fi).

By introducing the middle layer, the client is only handling presentation logic. This means that only little communication is needed between the client and the middle tier making the client “thin” or “thinner”. An example of a thin client is an Internet browser that allows you to see and provide information fast and almost with no delay. As more users access the system a three-tier solution is more scalable than the other solutions because you can add as many middle tiers (running on each own server) as needed to ensure good performance (N-tier or multiple-tier).Security is also the best in the three-tier architecture because the middle layer protects the database tier. There is one major drawback to the N-tier architecture and that is that the additional tiersincrease the complexity and cost of the installation.

1. Presentation Layer

In the presentation layer the user interaction takes place as defined before. The user enters theaddress in the web browser and in the browser the URL is decoded into protocol/host/file, i.e. host name converted to IP address. Then an issue request is sent to remote server using appropriate protocol (usually HTTP). Also a returned HTML from the logic tier might be accepted. In the presentation layer interaction with client side scripts (e.g. using DHTML) is supported and user inputs of variety controls on the form are accepted.

2.Application Logic Tier

In the logic Tier the application’s functionality is done by performing detailed processing of data from presentation layer. Server such as Appache (or IIS) or Server Script (such as PHP) can be used to support this. With Server (Apache or IIS) the appropriate action to be taken is identified, such as fetching a file, or passing request to an interpreter. Also it sends an output back to caller in MIME package. As such support for thousands for concurrent users, multithreading (allow multiple processor to run concurrently) and caching (holding results in a temporary store to reduce recalculation) is achieved). With Server script (example in PHP) interacting with server such as accessing input or generating input is done. It interprets the requests according to business rules and past transactions from this client, and requests appropriate data from the persistence layer. It also computes the derived data and creates HTML (or GIF…) for the page.

3. Data Layer

This tier consists of database servers. The interaction with the database is done using standard languages such as SQL queries using database specific protocol over TCP/IP. The data structures (for example tables) are defined and modified themselves, that insertion, updating and deleting of data for example. Data maintenance should be maintained with backup and recovered. Access to compilation of queries should be optimized, with indexing or replication of tables. An example of technology using this would be .NET that is built into the .NET framework, as ADO.NET contains a mechanism to query data out of the database and return it to the caller in a connected or disconnected fashion. Real life example of a web system explained above would be in Emails done using 3 Tier Architecture. Reading e-mail using a Web-based interface, such as Hotmail, uses three-tier architecture. The three tiers are:

Requirements

General system requirements for the 32 bit and 64 bit edition of CONTROL are detailed below. Use this box to navigate the information.

Server sizing is approximated. Actual requirements will vary based on the required dimensionality, the cardinality of each dimension, the number of scenarios, time horizons, the number of concurrent users of the implementation will support, data volumes, etc.

Comparison between 2-Tiers and 3-Tier Architecture

2-tier

Security :low

Performance :poor

Scale :poor

Application reuse :poor

Ease of development :high

Server to server infrastructure :no

Legacy application :no

Internet support :poor

System administrations :complex

3-tier

Security :high

Performance :high

Scale :good

Application reuse :good

Ease of development :low

Server to server infrastructure :yes

Legacy application :yes

Internet support :good

System administrations :less complex

Database Management System in 3-Tier Architecture

At first, the Web was used to access static documents. Now companies want to use web browsers as a way to provide access to corporate databases. This requires linking the web server to the database system. The methods used to link web servers and DBMS systems have evolved into the three-tier network architecture shown below. In the "front" tier, is the user interface and a web browser running on a PC or "thin client". The front tier communicates with a web server in the "middle tier." When the user request is for something more complex than a simple web page, the web server passes the request to an application server. The application server role is to handle the business logic required to process the request. Often, the request will involve access to a corporate database. The database systems run in the "back" tier of the architecture. SQL is the standard database language for communication between the application server and back-end database. All of the packaged application server products provide a SQL-based API for database access.

Advantages of three-tier architectures

Scalability – middle tier can be used to reduce the load on a database sever by using a transaction processing (TP) monitor to reduce the number of connections to a server, and additional application servers can be added to distribute application processing

Technological flexibility – easier to change DBMS engines – middle tier can be moved to a different platform. Simplified presentation interfaces make it easier to implement new interfaces

Long-term cost reduction – use of off-the-shelf components or services in the middle tier can reduce costs, as can substitution of modules within an application rather than a whole application

Better match of systems to business needs – new modules can be built to support specific business needs rather than building more general, complete applications

Improved customer service – multiple interfaces on different clients can access the same business process

Competitive advantage – ability to react to business changes quickly by changing small modules of code rather than entire applications

RPC calls provide greater overall system flexibility than SQL calls in 2-tier architectures

3-tier presentation client is not required to understand SQL. This allows firms to access legacy data, and simplifies the introduction of new data base technologies

Modularly designed middle-tier code modules can be reused by several applications

3-tier systems such as Open Software Foundation's Distributed Computing Environment (OSF/DCE) offers additional features to support distributed applications development

As more users access applications remotely for business-critical functions, the ability of servers to scale becomes the key determinant of end-to-end performance. There are several ways to address this ever-increasing load on servers. Three techniques are widely used:

Upsizing the servers

Deploying clustered servers

Partitioning server functions into a "tiered" arrangement

Challenges of three-tier architectures

High short-term costs – presentation component must be split from process component – this requires more programming

Tools, training and experience– currently lack of development tools and training programmes, and people experienced in the technology

Incompatible standards – few standards yet proposed

Lack of compatible end-user tools – many end-user tools such as spreadsheets and report generators do not yet work through middle-tier services (see later discussion on middleware)

Middleware

Simplifies 3-tier application development and administration by providing an extraapplication server layer to manage communication between components.

Software which allows an application to interoperate with other software, without requiring the user to understand and code the low-level operations required to achieve interoperability With Synchronous systems, the requesting system waits for a response to the request in real time Asynchronous systems send a request but do not wait for a response in real time – the response is accepted whenever it is received.

Motivation for Middleware

In a distributed computing system, middleware is defined as the software layer that lies between the operating system and the applications on each site of the system.

Stimulated by the growth of network-based applications, middleware technologies are taking an increasing importance. They cover a wide range of software systems, including distributed objects and components, message-oriented communication, and mobile application support.