Sie sind auf Seite 1von 7

2 TIER ARCHITECTURE

A client is defined as a requester of services and a server is defined as the provider of services.
A single machine can be both a client and a server depending on the software configuration.
The two-tier is based on Client Server architecture. The two-tier architecture is like client server
application. The direct communication takes place between client and server. There is no
intermediate between client and server.

A two-tier system consists of a client and a server. In a two-tier system, the database is stored
on the server, and the interface used to access the database is installed on the client. The user
system interface is usually located in the user's desktop environment and the database
management services are usually in a server that is a more powerful machine that services
many clients. Processing management is split between the user system interface environment
and the database management server environment. The database management server provides
stored procedures and triggers.
Two tier software architectures were developed in the 1980s from the file server software
architecture design. The two-tier architecture is intended to improve usability by supporting a
forms-based, user-friendly interface. The two-tier architecture improves scalability by
accommodating up to 100 users (file server architectures only accommodate a dozen users),
and improves flexibility by allowing data to be shared, usually within a homogeneous
environment The two tier architecture requires minimal operator intervention, and is
frequently used in non-complex, non-time critical information processing systems.
Two tier architectures consist of three components distributed in two layers: client (requester
of services) and server (provider of services). The three components are:
 User System Interface (such as session, text input, dialog, and display management
services)
Visual part of computer application or operating system through which a user interacts
with a computer or a software. It determines how commands are given to the computer
or the program and how information is displayed on the screen. Three main types of
user interfaces are (1) Command language: the user must know the machine and
program-specific instructions or codes. (2) Menus: user chooses the commands from
lists displayed on the screen. (3) Graphical user interface (GUI): user gives commands by
selecting and clicking on icons displayed on the screen.
 Processing Management (such as process development, process enactment, process
monitoring, and process resource services)
 Database Management (such as data and file services)
The two-tier design allocates the user system interface exclusively to the client. It places
database management on the server and splits the processing management between client and
server, creating two layers.

USAGE
Two tier software architectures are 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. Two tier software
architectures require minimal operator intervention. 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.

Advantages:
 Since processing was shared between the client and server, more users could interact
with such a system.
 Applications can be easily developed to simplicity
 Maximum user satisfaction is gained with accurate and fast prototyping of applications
through robust tools
 Since this contains static business rules its’s more applicable for homogenous
environment
 Database server is physically close, which offers high performance

Disadvantages;
 When the number of users exceeds 100, performance begins to deteriorate. This
limitation is a result of the server maintaining a connection via "keep-alive" messages
with each client, even when no work is being done. A second limitation of the two-tier
architecture is that implementation of processing management services using vendor
proprietary database procedures restricts flexibility and choice of DBMS for applications.
Finally, current implementations of the two-tier architecture provide limited flexibility in
moving (repartitioning) program functionality from one server to another without
manually regenerating procedural code.
 Security wise this is complicated as users need to have separate login information for
every sql server
 Scalability: The 2 tier lacks scalability as it supports only a limited number of users
 Minimal Logic sharing: since the application logic is coupled with the client it’s difficult
to re-use logic dispersed among applications overhead.
 Change of database structure: most applications used for interaction is dependent on
the database structure creating an issue when re-designing

3 TIER ARCHITECTURE
The three-tier software architecture (a.k.a. three-layer architectures) emerged in the 1990s to
overcome the limitations of the two-tier architecture (see Two Tier Software Architectures).
The third tier (middle tier server) is between the user interface (client) and the data
management (server) components. This middle tier provides process management where
business logic and rules are executed and can accommodate hundreds of users (as compared to
only 100 users with the two-tier architecture) by providing functions such as queuing,
application execution, and database staging. The three-tier architecture is used when an
effective distributed client/server design is needed that provides (when compared to the two
tier) increased performance, flexibility, maintainability, reusability, and scalability, while hiding
the complexity of distributed processing from the user
Technical Details A three tier distributed client/server architecture includes a user system
interface top tier where user services (such as session, text input, dialog, and display
management) reside.
The third tier provides database management functionality and is dedicated to data and file
services that can be optimized without using any proprietary database management
UNIT-3 Database Technologies Lecture-19 system languages. The data management component
ensures that the data is consistent throughout the distributed environment through the use of
features such as data locking, consistency, and replication. It should be noted that connectivity
between tiers can be dynamically changed depending upon the user's request for data and
services.
The middle tier provides process management services (such as process development, process
enactment, process monitoring, and process resourcing) that are shared by multiple
applications.
The middle tier server (also referred to as the application server) improves performance,
flexibility, maintainability, reusability, and scalability by centralizing process logic. Centralized
process logic makes administration and change management easier by localizing system
functionality so that changes must only be written once and placed on the middle tier server to
be available throughout the systems.
A 3-tier architecture is a type of software architecture which is composed of three “tiers” or
“layers” of logical computing. They are often used in applications as a specific type of client-
server system. 3-tier architectures provide many benefits for production and development
environments by modularizing the user interface, business logic, and data storage layers. Doing
so gives greater flexibility to development teams by allowing them to update a specific part of
an application independently of the other parts. This added flexibility can improve overall time-
to-market and decrease development cycle times by giving development teams the ability to
replace or upgrade independent tiers without affecting the other parts of the system.

For example, the user interface of a web application could be redeveloped or modernized
without affecting the underlying functional business and data access logic underneath. This
architectural system is often ideal for embedding and integrating 3rd party software into an
existing application. This integration flexibility also makes it ideal for embedding analytics
software into pre-existing applications and is often used by embedded analytics vendors for this
reason. 3-tier architectures are often used in cloud or on-premises based applications as well as
in software-as-a-service (SaaS) applications.

What Do the 3 Tiers Mean?

 Presentation Tier- The presentation tier is the front-end layer in the 3-tier system and
consists of the user interface. This user interface is often a graphical one accessible through
a web browser or web-based application and which displays content and information useful
to an end user. This tier is often built on web technologies such as HTML5, JavaScript, CSS, or
through other popular web development frameworks, and communicates with others layers
through API calls.
 Application Tier- The application tier contains the functional business logic which drives an
application’s core capabilities. It’s often written in Java, .NET, C#, Python, C++, etc.
 Data Tier- The data tier comprises of the database/data storage system and data access
layer. Examples of such systems are MySQL, Oracle, PostgreSQL, Microsoft SQL Server,
MongoDB, etc. Data is accessed by the application layer via API calls.

A 3-tier architecture separates its tiers from each other based on the complexity of the users
and how they use the data present in the database. It is the most widely used architecture to
design a DBMS.

 Database (Data) Tier − At this tier, the database resides along with its query processing
languages. We also have the relations that define the data and their constraints at this
level.

 Application (Middle) Tier − At this tier reside the application server and the programs
that access the database. For a user, this application tier presents an abstracted view of
the database. End-users are unaware of any existence of the database beyond the
application. At the other end, the database tier is not aware of any other user beyond
the application tier. Hence, the application layer sits in the middle and acts as a mediator
between the end-user and the database.
 User (Presentation) Tier − End-users operate on this tier and they know nothing about
any existence of the database beyond this layer. At this layer, multiple views of the
database can be provided by the application. All views are generated by applications that
reside in the application tier.
Multiple-tier database architecture is highly modifiable, as almost all its components are
independent and can be changed independently.

What Are the Benefits of Using a 3-


Layer Architecture?
There are many benefits to using a 3-layer architecture including speed of development,
scalability, performance, and availability. As mentioned, modularizing different tiers of an
application gives development teams the ability to develop and enhance a product with greater
speed than developing a singular code base because a specific layer can be upgraded with
minimal impact on the other layers. It can also help improve development efficiency by
allowing teams to focus on their core competencies. Many development teams have separate
developers who specialize in front- end, server back-end, and data back-end development, by
modularizing these parts of an application you no longer have to rely on full stack developers
and can better utilize the specialties of each team.

Scalability is another great advantage of a 3-layer architecture. By separating out the different
layers you can scale each independently depending on the need at any given time. For example,
if you are receiving many web requests but not many requests which affect your application
layer, you can scale your web servers without touching your application servers. Similarly, if you
are receiving many large application requests from only a handful of web users, you can scale
out your application and data layers to meet those requests without touch your web servers.
This allows you to load balance each layer independently, improving overall performance with
minimal resources. Additionally, the independence created from modularizing the different
tiers gives you many deployment options. For example, you may choose to have your web
servers hosted in a public or private cloud while your application and data layers may be hosted
onsite. Or you may have your application and data layers hosted in the cloud while your web
servers may be locally hosted, or any combination thereof.

By having disparate layers, you can also increase reliability and availability by hosting different
parts of your application on different servers and utilizing cached results. With a full stack
system, you have to worry about a server going down and greatly affecting performance
throughout your entire system, but with a 3-layer application, the increased independence
created when physically separating different parts of an application minimizes performance
issues when a server goes down.
In this type, there is another layer between the client and the server. The client does not
directly communicate with the server. Instead, it interacts with an application server which
further communicates with the database system and then the query processing and transaction
management takes place. This intermediate layer acts as a medium for exchange of partially
processed data between server and client. This type of architecture is used in case of large web
applications.
Advantages:
 Enhanced scalability due to distributed deployment of application servers. Now, individual
connections need not be made between client and server.
 Data Integrity is maintained. Since there is a middle layer between client and server, data
corruption can be avoided/removed.
 Security is improved. This type of model prevents direct interaction of the client with the
server thereby reducing access to unauthorized data.

Disadvantages:

Increased complexity of implementation and communication. It becomes difficult for this
sort of interaction to take place due to presence of middle layers.
 The three-tier nature makes it difficult for developers to change an application with the
agility and flexibility they need to keep pace with the expectations of mobile users, and
for operations teams to scale the application up and down to match demand
 A three-tier design hampers agility to several phases of the application development
process

REFERENCES
1. www.jinfonet.com/resources/bi-defined/3-tier-architecture-complete-
overview/
2. medium.com/oceanize-geeks/concepts-of-database-architecture-
dfdc558a93e4
3. channukambalyal.tripod.com/NTierArchitecture
4. www.businessdictionary.com/definition/
5. www.geeksforgeeks.org/dbms-architecture-2-level-3-level/3-tier DBMS

Das könnte Ihnen auch gefallen