The term client servers architecture refers to the design of an application, or where the components that make up a system are placed and how they communicate. Distributed Architecture - a relatively new term to describe the application architecture - means that the processing of an application occurs on more than one machine. We know that the development of technology has now made a lot of changes to the way we think. With the rate of growth accelerating technology, the need for information from day to day so demanding increased smoothness, and speed of information distribution process.
What is Client Server Architecture?Client Server Architecture is a model of network connectivity on the network that distinguishes the function of the computer as a Client and Server. This architecture puts a computer as a server. Well this server is assigned to provide services to other terminals are connected in a network system pliers or what we refer to as the Client. The server can also be tasked to provide File sharing services (file servers), printers (printer server), lines of communication (communication server).
In this architectural model, the client can not function as a server, but the server can serve as Client (non-dedicated server). The working principle is very simple architecture, where the server will wait for a request from the client, process and deliver the results to the client, while the client will send a request to the server, wait for the process and see the results of the visualization process.
Client Server system is not only for the development of large scale computer networks. This system uses the primary protocol Transmission Control Protocol / Internet Protocol (TCP / IP), while the operating system is used, among others, Unix, Linux and Windows NT.
Environmental Database Client / Server on the Internet
Using the LAN to support PC network
Each PC has its own storage
Sharing of hardware or software
Models of Client Server ArchitectureBelow are described three types of models Client server architecture, including:
1. Client / Server (two tier)Two Tier Client Server - In a client / server model, on an application processing occurs on the client and server. Client / server is typically a two-tier application with multiple clients and a server that is connected through a network.
In a client / server model, on an application processing occurs on the client and server. Client / server is typically a two-tier application with multiple clients and a server that is connected through a network. Applications deployed on the client computer and the database engine is run on remote servers. The client application generates a request to the database that sends data back to the client.
In client / server, the clients are responsible for the intelligent part of the application that interacts with the user, including the business logic and the communication with the database server.
Applications based on client / server has a shortage in scalability. Scalability is how much the application can handle an increased need - for example, 50 additional users to access the application. Although the client / server model is more scalable than host-based models, there are still a lot of processing that occurs on the server. In a client / server model is getting a lot of clients who use an application, the more load on the server.
The database connection must be maintained for each client. Connection spend valuable server resources and each additional client translated into one or several connections. Logic code can not be recycled because the application code in a monolithic executable on the client implementation. It also makes modifications to the source code is difficult. Rearrangements that change to all client computers also create headaches.
Security and transaction should also be encoded as a substitute for treatment by a COM + / MTS. Not that the client / server model is not a viable model for applications. Many smaller applications with a limited number of users to work perfectly with this model. Ease of development of client / server applications also make it an attractive solution for the company.
Development is generally much faster with this type of system. Faster development cycle is not only to increase and make the application run faster but also more cost effective.
The advantages of the client / server model:
Dealing specifically Database Server
The relatively simple to develop and implement.
More appropriate for small businesses.
The database server contains a database engine, including tables, stored procedures, and triggers (which also contains the business rules). In a system of client / server, most of the business logic is usually implemented in the database.
Dealing with the database server:
Queries, triggers, stored procedures
Client / server architecture is a step forward because it reduces the processing burden from the central computer to the client computer. This means that more users increases in client / server applications, file server performance will decline rapidly. With client / server users from different locations can access the same data with minimal load on a single machine. However, there are still weaknesses in this model. In addition to running specific tasks,
Disadvantages of a client / server model:
Lack of scalability
Maintained a database connection
No code updates
There is no intermediate level to address security and small-scale transactions.
Difficult in secure.
2. Three-Tier / Multi-Tier Client Server ArchitectureThree Tier Client Server - Model three-tier or multi-tier developed to address the limitations of the client / server architecture. In this model, distributed processing in the three layers (or more if applicable a multitier architecture). The third layer in this architecture each aggregating specific functionality. namely:
- Presentation Services (client level)
- Business Services (intermediate level)
- Data services (data source level)
Services presentation or user interface logic is placed on the client machine. Business logic are removed from the client code and placed in the middle tier. Data services layer contains the database server. Each level in the three-tier models are on separate computers.
The concept of the model is the three-tier model that divides functionality into layers, getting the scalability of applications, updates, and security.
Three Tier Architecture is an innovation of Client Server architecture. In architecture, there are Three Tier Application Server that stands between the Client and Database Server. Examples of Application server is IIS, WebSphere, and so on. Application Server is generally in the form of business process layer, which can was developed using PHP, ASP.Net, and Java. So we put some of our business logic on the tier. Three Tier architecture is implemented using a lot of Web Application. Due to the use of a Web Application, Client Side (Computer Client) will only perform the installation Web Browser.
And when the client computer do the input data, then the data is sent to the Application Server and processed based on the business process. Furthermore, the Application Server will communicate with the database server. Typically, the implementation of the Three Tier architecture constrained by network bandwidth.
Because web-based application, the Application Server Web Application always send it to the client computer. If we have a lot of clients, the bandwidth will be large enough to be prepared, while network bandwidth typically have limitations. Therefore, usually, to overcome this problem, the Application Server is placed on the client side and only send data to the database server. The concept of the model is the three-tier model that divides functionality into layers, getting the scalability of applications, updates, and security.
Excess Three Tier client server architecture:
1. Everything about the database that is installed on the server side, as well as how the configuration. This makes the price to be paid less.
2. In the event of a failure of one layer would not join any cause other layers.
3. Changes in one layer do not need to reinstall on another layer in this case the server side or client side.
4. Security behind the firewall. Transfer of information between web servers and database servers optimally.
5. Communication between the system-the system should not be based on Internet standards, but can use a communication protocol that is faster and are at a lower level.
6. The use of middleware to support the efficiency of database queries in SQL is used to handle the retrieval of information from a database.
Some Advantages of a Three-Tier:
- Dexterity technology.
- Easy to change the DBMS engine.
- Also a possibility that the middle tier to a different platform
- Lower long-term costs.
- The changes are only necessary in the middle tier rather than the entire application.
- Competitive advantage.
- The ability to react to business changes quickly, by changing the module code rather than changing the whole application
Disadvantages architecture-Three Tier:
- More difficult to design
- More difficult to organize
- more expensive
3. N-tier applications
N-Tier Application - Stored procedure was not sufficient for a system where the database is stored on more than one server, because it may have a client who can not access the procedure. You may ask, what is the need for a database storing more than one server? Of course you also want a company that uses your application can evolve, is not it? The use of more than one database is possible when a company already has a sizeable division which must have its own database.
In the case of more than one database server, you need to implement different development strategies, a good approach is to use n-tier models. The letter "n" in n-tier shows the numeric variables that can contain any number of digits, for example 3-tier, 4-tier, and so on. Because it is an n-tier application having 3 or more logical levels, generally n-tier applications currently using the 3-tier.
To describe it, you can imagine the design scheme of a two-tier applications that implement business logic in a stored procedure as explained above, then improvise the design by adding a level (tier) as the middle tier as the business object, this architecture known as 3 - tier. The real difference is the 2-tier, business-tier object in 3 separate from the client application and database elements. So it can be illustrated that the 3-tier system is generally made up of tiers of client, business and database.
To imagine a 3-tier application in daily life may be the most frequently encountered is the application of the Internet or Intranet.
On the application of the Internet / Intranet, there is a client that runs a browser and request information from the form of the middle-tier HTTP Server. Middle-tier request data on the database server, and then send it back to the HTTP server. HTTP Server will send to the browser in the form of web page.
A 3-tier system provides multi-user support stable, even when the client run different applications, can also utilize multiple databases are in use simultaneously. In the following discussion, we describe the case of a 3-tier application. Imagine a 3-tier system, consisting of the client, business and database.
The system should perform tax calculations based on employee wages and other regulations which may change from year to year. This year, there are changes in the tax rules that must be applied to the system, at the level where you need an update? You only need to update the business object level, that is because the 3-tier architecture.
One thing that should be kept in mind as the basic concept, that the notion of architecture 2-tier and 3-tier is logically and not be physical. So on a small system you can run the business logic and the database on the same computer. But the system is large, you may need some kind of computer to run a business or database level.
Supporting technologySome common examples of technologies used to support n-tier:
Generally, an object-oriented models which can be used by different applications and re-use of components. An example is the COM / DCOM. Applications written in different programming languages can communicate with each other using the Component Object. Component Object itself can be written in different programming. In principle, these components consist of a class that has a set of methods.
Microsoft Transaction Server
MTS or Microsoft Transaction Server is a software developed by Microsoft for the purpose of monitoring the transactions in distributed applications. MTS operates in the middle-tier and provide a control transaction. For example, if you develop a 3-tier system which puts the business object on the middle tier, then you can create an ActiveX DLL as a business object, and perform the installation in the environment on the middle-tier MTS. MTS will be responsible in handling multi-client access to the object busines. MTS provides facilities such as transaction rollback, commit and deadlocks in the middle-tier.
HTTP / Web Server.
For n-tier applications in the application of Internet/Intranet, you absolutely need a Web server. There are quite a lot of commonly used web server such as Apache Web Server or Internet Information Server (IIS). You can use the web as a middle-tier server to handle requests from the client computer browser.
Microsoft Message Queue Server.
MMQS or Microsoft Message Queue Server is a technology developed by Microsoft that runs on a middle-tier and serves to manage the request queue.
This is motivated because in large networks, not all computers are connected to function when needed, so it requires an application that can manage client request queue and the response from the server that will be sent again when the destination computer has malfunctioned. The profits again, if the clients ask for requests that exceed the capacity of a server, then save it for later MMQS can delegate it to a server that is not busy. This requirement is necessary for the application on a server that serves as a listener or a referral.
Database Management System.
Database Management System or known by the acronym DBMS is a source of data storage and of course play a vital role in the overall system. For 2-tier architecture and n-tier, required DBMS applications that can work in such environments, some examples are MySQL, Microsoft SQL Server and Oracle. If the facilities are used DBMS stored procedures, it is possible to store business logic in a stored procedure that will be accessed by the client.
Advantages And Disadvantages n-tier architecture client network
Among the advantages that can be obtained from the n-tier architecture (or 3-tier in general), which mainly are:
1. Ease of business logic changes in the future will come
2. Business logic that is easy to implement and maintain
3. The client application can access a variety of types of different DBMS transparently.
Is there a loss of n-tier? It may be more correct to say, as a consequence, the n-tier systems are relatively expensive for the development and installation. This is because planning in 3-tier software can be very complex. Even in the early stages of planning, you have to consider the potential for the development of the company in the future. The complexity in this case covers all aspects, both infrastructure and software development as a whole.
While in a company, the greater the change in the system is done, the more it will require adaptation wider scope. Therefore automatically require a relatively longer time span.
Especially if the 3-tier system that will replace a system that has long been used, there are quite a lot of challenges for the dissemination of the new system. In this case, the interaction and communication with the users of the system as a whole is indispensable. Therefore there are two sides must find a draw point, the benefits that can be achieved by n-tier application architecture versus the cost, effort and time required for development and implementation.