Friday, March 5, 2010

What is 3 Tier Architecture

Why Three Tier Architecture?

The distributed object implementation of client/server computing is going to change the way applications are built. For one, if we needed fault tolerant computing, we could implement copies of objects onto multiple servers. That way if any were down, it would be possible to go to another site for service. With distributed objects being self contained and executable (all data and procedures present) it will be possible for a systems administrator to tune the performance of the network by moving those objects from overloaded hardware to underutilized computers. This approach is called tuning through "drag and drop", referring to the metaphor the administrator uses on a workstation to move the components.
By now the point is made. Client/server architectures are flexible and modular. They can be changed, added to, and evolved in numbers of ways.

As the Internet becomes a significant factor in computing environments client/server applications operating over the Internet will become an important new type of distributed computing. (This is probably an understatement, since the use of Internet and intranet based applications will very shortly dwarf all of the distributed computing initiatives of the past)
The Internet will extend the reach and power of client/server computing. Through its promise of widely accepted standards, it will ease and extend client/server computing both intra and inter-company. The movement in programming languages to the technology of distributed objects is going to happen at light speed - because of the the Internet.


1.0 Disadvantages of two tier architecture

Limited no of Users.
Limitation on expansion of business.
Time critical information processing not possible
Interoperability with different database minimum.
System administration and configuration difficult.
After the fact partitioning:
Batch Jobs

Limited no of Users:
The two-tier design can scale-up to service 100 users on a network. It appears that beyond this number of users, the performance capacity is exceeded. This is because the client and server exchange "keep alive" messages continuously, even when no work is being done, thereby saturating the network.

Limitation on expansion of business:

The two tier architecture works well in relatively homogeneous environments with processing rules (business rules) that do not change very often and when workgroup size is expected to be fewer than 100 users, such as in small businesses

If you are planning to link different hospitals to achieve latitudinal transfer of Medical records, obviously the users will be more than 100 and the performance of the HIS will come down. This can be a major limitation factor.

Time critical information processing not possible:

Two-tier software architecture is used extensively in non-time critical information processing where management and operations of the system are not complex. This design is used frequently in decision support systems where the transaction load is light.

If you are planning to link different hospitals to achieve latitudinal transfer of Medical records, the number of users will be more than 100.The time taken to process the request for the medical record might be a major limiting factor.

Interoperability with different database minimum:

The two-tier architecture limits interoperability by using stored procedures to implement complex processing logic (such as managing distributed database integrity) because stored procedures are normally implemented using a commercial database management system's proprietary language. This means that to change or inter operate with more than one type of database management system; applications may need to be rewritten. Moreover, database management system's proprietary languages are generally not as capable as standard programming languages in that they do not provide a robust programming environment with testing and debugging, version control, and library management capabilities

This is not a problem as long as the Client is happy to use MS SQL Server. This can be a limitation to our HIS as we can only sell to those customers who are comfortable with MS SQL Server and Microsoft Technologies. In US Many hospitals are already having some Hospital software’s running on different databases. If we are able to deliver our HIS on the database they prefer, this will reduce their cost on procuring license.

System administration and configuration difficult:

Two tier architectures can be difficult to administer and maintain because when applications reside on the client, every upgrade must be delivered, installed, and tested on each client. The typical lack of uniformity in the client configurations and lack of control over subsequent configuration changes increase administrative workload.

This leads to developer going to client place for coding and testing till the client is satisfied. As the developer at site is only interested to satisfy the client, he may not follow any standards of software development. He may end up hard coding and introducing fresh bugs, as there may not be any testing team to thoroughly test his changes.

There will be no documentation of the changes made and the version running at different sites of the same module.

The client might exploit the developer’s presence and ask for more. The developer may not be in a position whether it is a billable or non-billable development request.


After the fact partitioning:

Another problem with the 2-tiered approach is that current implementations provide no flexibility in "after the fact partitioning". Once an application is developed it isn't easy to move (split) some of the program functionality from one server to another. This would require manually regenerating procedural code. In some of the newer 3-tiered approaches, tools offer the capability to "drag and drop" application code modules onto different computers

In three-tier architecture the middle tier hosting the components can be moved to another server to balance the load on the server. This easy way of load balancing using drag and drop approach will not be possible with two tier architecture when the load increases. The code need to rewritten to divide it into parts so that the parts can be shifted to other servers to improve performance.

2.0 Industry's response to limitations in the 2-tier architecture

The industry's response to limitations in the 2-tier architecture has been to add a third, middle tier, between the input/output device (PC on your desktop) and the DBMS server. This middle layer can perform a number of different functions - queuing, application execution, database staging and so forth. The use of client/server technology with such a middle layer has been shown to offer considerably more performance and flexibility than a 2-tier approach.
Just to illustrate one advantage of a middle layer, if that middle tier can provide queuing, the synchronous process of the 2-tier approach becomes asynchronous. In other words, the client can deliver its request to the middle layer, disengage and be assured that a proper response will be forthcoming at a later time. In addition, the middle layer adds scheduling and prioritization for the work in process. The use of architecture with such a middle layer is called "3-tier" or "multi-tier". These two terms are largely synonymous in this context.


3.0 Advantages of Three-Tier Architecture

Ease of Development
Ease of Implementation
Less software is on the client.
Resulting application is more scalable.
Less Installation costs.
DBMS- agnostic.
Offer after the fact.
Same interface for desktop and web enabled application.

Ease of Implementation:

Three tier architectures facilitate software development because each tier can be built and executed on a separate platform, thus making it easier to organize the implementation.

Ease of Development:

Three tier architectures readily allow different tiers to be developed in different languages, such as a graphical user interface language or light internet clients (HTML, applets) for the top tier; C, C++, Smalltalk, Basic for the middle tier; and SQL for much of the database tier

Less software is on the client:

When less software is on the client, there is less worry about security since the important software is on a server in a more controlled environment.

Resulting application is more scalable:

The resulting application is more scalable with an application server approach. For one thing servers are far more scalable than PC's. While a server could be a single Pentium based Compaq or Dell, it could also be a symmetric multiprocessing Sequent, with 32 or more processors. Or, it could be a massively parallel UNIX processor like IBM's SP2.

Less Installation costs:

The support and installation costs of maintaining software on a single server is much less than trying to maintain the same software on hundreds or thousands of PC's.

DBMS- agnostic

With a middle application server tier it's much easier to design the application to be DBMS- agnostic. If you want to switch to another DBMS vendor, it's more achievable with reasonable effort with a single multithreaded application than with thousands of applications on PC's.

Offer after the fact:

Most new tools for implementing a 3-tier application server approach offer "after the fact" application partitioning. This means that code and function modules can be reallocated to new servers after this has been built. This offers important flexibility and performance benefits.

Same interface for desktop and web enabled application:

The same interface will be used for building a desktop, single location application or a fully distributed application.

Local Testing

The application can be developed and tested locally and you'll know that it will work fine when it's distributed - you depend on the known services of an object request broker for distribution.


The major downside to an application server approach to client/server computing is that the technology is much more difficult to implement than a 2-tier approach.

Conclusion:

All of the above-described 3-tier approaches could be mixed and matched in various combinatorial sequences to satisfy almost any computing need.
Client/server still remains the only and best architecture for taking advantage of the Internet and other new technologies that come along. We'll have to add "changes in client/server computing" to death and taxes in our inevitable list. But, regardless of what comes, client/server computing is likely to remain the underpinning for most computing developments we'll see over the next decade.



We collect videos & images from online sites like youtube and some other websites which provide them. And most of the News is also gathered from other online websites. Any material downloaded or otherwise obtained through the use of the service is done at your own discretion and risk and that you will be solely responsible for any damage to your computer system or loss of data that results from the download of any such material.
If you feel that the content on the site is illegal or Privacy please contact us at srinuchalla@gmail.com and such videos, images or any Content will be removed with immediate effect.

No comments:

Post a Comment