Comparison To Peer-To-Peer Architecture
Comparison To Peer-To-Peer Architecture
Specific types of servers include web servers, ftp servers, application servers, database servers, name servers, mail servers, file servers, print servers, and terminal servers. Most web services are also types of servers.
Contents [hide]
[edit]Comparison
to peer-to-peer architecture
In peer-to-peer architectures, each host or instance of the program can simultaneously act as both a client and a server, and each has equivalent responsibilities and status. Both clientserver and peer-to-peer architectures are in wide usage today. Details may be found inComparison of Centralized (Client-Server) and Decentralized (Peer-to-Peer) Networking. [edit]Advantages In most cases, a clientserver architecture enables the roles and responsibilities of a
computing system to be distributed among several independent computers that are known to each other only through a network. This creates an additional advantage to this architecture: greater ease of maintenance. For example, it is possible to replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that change. All data is stored on the servers, which generally have far greater security controls than
most clients.[citation needed] Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data. Since data storage is centralized, updates to that data are far easier to administer in
comparison to aP2P paradigm. In the latter, data updates may need to be distributed and
applied to each peer in the network, which is time-consuming as there can be thousands or even millions of peers. Many mature clientserver technologies are already available which were designed to
ensure security, friendliness of the user interface, and ease of use.[citation needed] It functions with multiple different clients of different capabilities.
[edit]Disadvantages As the number of simultaneous client requests to a given server increases, the server
can become overloaded. Contrast that to a P2P network, where its aggregated bandwidth actually increases as nodes are added, since the P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network. The clientserver paradigm lacks the robustness of a good P2P network.[citation needed] Under
clientserver, should a critical server fail, clients requests cannot be fulfilled. In P2P networks, resources are usually distributed among many nodes. Even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download. [edit]See
also
Hybrid client Inter-server Mainframe computer Mobile software Name server Observer pattern Push technology Pull technology Servent Standalone server Thin client Multitier architecture Client (computing) Server (computing)
In software engineering, multi-tier architecture (often referred to as n-tier architecture) is a clientserver architecture in which the presentation, the application processing, and the data management are logically separate processes. For example, an application that uses middleware to service data requests between a user and a database employs multi-tier architecture. The most widespread use of multi-tier architecture is the three-tier architecture. N-tier application architecture provides a model for developers to create a flexible and reusable application. By breaking up an application into tiers, developers only have to modify or add a specific layer, rather than have to rewrite the entire application over. There should be a presentation tier, a business or data access tier, and a data tier. The concepts of layer and tier are often used interchangeably. However, one fairly common point of view is that there is indeed a difference, and that a layer is a logical structuring mechanism for the elements that make up the software solution, while a tier is a physical structuring mechanism for the system infrastructure.[1]
Contents [hide]
o o o o o
1 Three-tier architecture 1.1 Comparison with the MVC architecture 1.2 Web development usage 1.3 Other considerations 1.4 Traceability 1.5 Comments 2 See also 3 External links 4 References
[edit]Three-tier
architecture
Three-tier[2] is a clientserver architecture in which the user interface,functional process logic ("business rules"), computer data storage anddata access are developed and maintained as independent modules, most often on separate platforms. It was developed by John J. Donovan in Open Environment Corporation (OEC), a tools company he founded inCambridge, Massachusetts. The three-tier model is a software architecture and a software design pattern. Apart from the usual advantages of modular software with well-defined interfaces, the three-tier architecture is intended to allow any of the three tiers to be upgraded or replaced independently as requirements or technology change. For example, a change of operating system in thepresentation tier would only affect the user interface code. Typically, the user interface runs on a desktop PC or workstation and uses a standard graphical user interface, functional process logic may consist of one or more separate modules running on a workstation or application server, and an RDBMS on a database server or mainframe contains the computer data storage logic. The middle tier may be multi-tiered itself (in which case the overall architecture is called an "n-tier architecture"). Three-tier architecture has the following three tiers: Presentation tier This is the topmost level of the application. The presentation tier displays information related to such services as browsing merchandise, purchasing, and shopping cart
contents. It communicates with other tiers by outputting results to the browser/client tier and all other tiers in the network. Application tier (business logic, logic tier, data access tier, or middle tier) The logic tier is pulled out from the presentation tier and, as its own layer, it controls an applications functionality by performing detailed processing. Data tier This tier consists of database servers. Here information is stored and retrieved. This tier keeps data neutral and independent from application servers or business logic. Giving data its own tier also improves scalability and performance. [edit]Comparison
At first glance, the three tiers may seem similar to the model-viewcontroller (MVC) concept; however, topologically they are different. A fundamental rule in a three tier architecture is the client tier never communicates directly with the data tier; in a three-tier model all communication must pass through the middle tier. Conceptually the three-tier architecture is linear. However, the MVC architecture is triangular: the view sends updates to the controller, the controller updates the model, and the view gets updated directly from the model. From a historical perspective the three-tier architecture concept emerged in the 1990s from observations of distributed systems (e.g., web applications) where the client, middleware and data tiers ran on physically separate platforms. Whereas MVC comes from the previous decade (by work at Xerox PARC in the late 1970s and early 1980s) and is based on observations of applications that ran on a single graphical workstation; MVC was applied to distributed applications later in its history (see Model 2). [edit]Web
development usage
In the web development field, three-tier is often used to refer to websites, commonly electronic commercewebsites, which are built using three tiers:
1.
some cached dynamic content. In web based application, Front End is the content rendered by the browser. The content may be static or generated dynamically.
2.
level application server, for example Java EE,ASP.NET, PHP, ColdFusion platform.
3.
the database management system orRDBMS software that manages and provides access to the data. [edit]Other
considerations
Data transfer between tiers is part of the architecture. Protocols involved may include one or more ofSNMP, CORBA, Java RMI, .NET Remoting, Windows Communication Foundation, sockets, UDP, web services or other standard or proprietary protocols. Often middleware is used to connect the separate tiers. Separate tiers often (but not necessarily) run on separate physical servers, and each tier may itself run on a cluster. [edit]Traceability The end-to-end traceability of data flows through n-tier systems is a challenging task which becomes more important when systems increase in complexity. The Application Response Measurement defines concepts and APIs for measuring performance and correlating transactions between tiers. [edit]Comments This article refers to tiers and layers as equivalent concepts. Generally, the term tiers is used to describe physical distribution of components of a system on separate servers, computers, or networks (processing nodes). A three-tier architecture then will have three processing nodes. Layers refer to a logical grouping of components which may or may not be physically located on one processing node. [edit]See
also
Clientserver model Database-centric architecture Front-end and back-end Hierarchical internetworking model Open Services Architecture Rich Internet application