Client/server can be defined as the relationship between two computer programs where one of the program (client), makes a service request from another program (server) which accomplish the request. It can also be described as applications that have a local (client) user interface but gain access to data on a remote server. The application distributes the job between the local machine (the client) and the server depending on the strengths of the client and server products. Client-server systems are very efficient because they minimize network traffic and for its particular function each portion of the application can be optimized.
Client/server design is a vital idea in a network although it can be used by programs within a single computer. Client/server model in a network imparts a suitable way to interconnect programs that are distributed proficiently across different locations. A good example of client/server model is checking a bank account from a computer, a client program in the computer forwards the customers (client) request to the bank's server program. The request is then passed on by the bank's servers program to its client program which requests the customer's account balance from the bank's database server. The account balance is now sent back to the bank data client, which then serves it back to the client in his personal computer, which displays the information for the customer.
Earlier client/server architectures prevented developers from most data access coding because the database did all the work. Databases dealt with all communications, transaction, recovery processing and also did all the odd jobs associated with connectivity, directory and security thereby freeing developers to focus more on the business phases of the application. Performance and scalability were also given to these applications by databases. The number of users that an application could support was basically the function of the database. Application code may run on client platforms with limited resources hence limiting performance and scalability but scalability and performance improvement was precisely database-related.
Client/Server Architecture & Layers
Client-server application shares outs the job between the server and the local machine but this depends on the power of the front-end and back-end products. In this architecture defines where to place server and client, and what software and functions place at server and client. This architecture divided into four types. These are:
One tire: In this both client and server are on same machine. Server directly communicate with client, here no network communication is needed.
Two tire: Here client place at one level and server place at another level. Here physical communication network is needed. First establish connection between server and client after that client request the service of the server and then server provide service to requested client. This service only provide to client when it is legal.
Three tire: Here place all business function at middle layer. All function written here accessible for all clients in the lower layer. Clients don't directly communicate with database server. Here middle tire plays vital role. All important business functions of the firm reside at middle level. Actual data base reside at high level.
N tire: Here so many layers are placed. This type architecture is used in Internet. Clients request first layer and this request is propagated upward and service propagated downward.
Businesses of different sizes have numerous computer needs. A larger business requires more computers than smaller businesses. Large business commonly has client-server architecture, also known as two-tier architecture. Larger business requires some computing functions and this two-tier architecture act as a division of labour for these large business's computing functions. With distributed applications, performance and scalability become key aspects of the design process. Distributed applications require the application's components and infrastructure, physical deployment modeling, including logical packaging, remote server, computer workload analysis and assessment of the accessible network bandwidth. Performance requirements can be tackled by servicing on demand each client's request. On-demand delivery of requested application services to growing number of client requests requires certain some amount of scalability. Application servers must be available to offer services whenever clients request them. When an application server is down, so is the business that it supports.
Distributed computing can be achieved through one or more of the following:
File transfer model-This is one of the oldest models to attain distributed computing at a very minimal level. Coming right down to it, communication between different computer programs are by file transfer. File transfer model is used to hold loosely coupled distributed computers even though it's a very old and limited model of distributed computing. Typically exchanged between remote computers through file transfers are news items, portions of corporate databases and media chips. Also e-mail is used often to exchange files through attachments and embeddings.
Client/Server model -Client-server model as defined above allows the interactive exchange of messages of application processes at different sites and is hence a major improvement over the file transfer model. Early versions of client-server model made use of the remote process called paradigm that broaden the scope of a local process call. Presently the client- server model is increasingly making use of the distributed objects paradigm that lengthens the scope of local object paradigm that is, the application processes at separate sites are viewed as distributed objects.
Peer-to-peer model - This type of model processes at different sites are allowed to invoke each other. The key difference between client-server and peer-to-peer is that the interacting processes can be both client or server or either of them in the peer-to-peer model while in a client-server model one process take up the role of a service consumer while the other take up the role of a service provider. Peer-to-peer distributed application was built with the use of Peer-to-peer middleware.
Example of client-server architecture is the World Wide Web. Computer's web browser is a client and stored on multiple servers are the data on the various web pages that those clients access.
Intranet is a network that is built by using the same tools and protocols that are used by the global Internet but applied instead to the internal network of an organization. It can be describe like a closed-circuit television system, which can be viewed only by those people within the organization that owns the system (Lowe 2009). Intranet site is a web site that is viewable only to those within the network of an organization. Even though based on the same protocols as the World Wide Web, an intranet is protected from the outside world either by not being connected to the outside or through a series of hardware and software obstacles known as a firewall (Matthews & Matthews 2003, p. 64).
The main advantage of the intranet is that it can offer a great way of providing information to the internal users. It can publish applications such as applications used for newsletters, policy manuals, price list etc. It can also help to transact application by gathering information that is related on expense and programs (Lowe 2009). Because intranet enables to create a private place in the Internet, the place will be safer and secured, because only those individuals with authority can access the website over the Internet. Above all, it can help to disseminate information to the users in more effective, easier and effective manner.
However, it is also important to consider that there are different disadvantages in considering intranet. First, it is expensive to set up and maintain. Because there is a need to hire special team that will handling the process of managing the resources that are involved in the website.
Advantages of client-server architecture
- It allows corporations to leverage emerging desktop computing technology better. Today's workstations deliver considerable computing power.
- It allows the processing to reside close to the source of data being processed. Therefore network traffic can be greatly reduced and effective throughput and carrying capacity on a heavily loaded network is increased. Conversely, the network bandwidth requirements, and therefore cost, can be reduced.
- It facilitates the use of GUI (Graphical User Interface) available on powerful workstations. These new interfaces can be delivered to customers in a variety of visual presentation techniques together with easy navigation and standards complaint consistency.
- It allows for and encourages the acceptance of open systems. Indeed the fact that clients and servers can, infect, be running on different hardware and software platforms allows end users to free themselves from particular proprietary architectures, thus taking economical, marketing, and competitive advantage of the open market of available products.
- If a significant portion of application logic is moved to a server, the server may become a bottleneck in the same fashion as a mainframe in master-slave architecture. Server's limited resources will be in even-higher demand by the increasing number of resource consumers (end users).
- Distributed applications, especially those designed for cooperative process, are more complex than non-distributed. This is true for the application time-time environment, and tools used to manage this distributed environment.
- If organization is small establishing client/server environment is too expensive.
- Installation of software is difficult.
- Maintaince is difficult and sometimes collisions occur when bandwidth does not support users requests.
Primarily, I think the problem faced by Hures is unique because the problem pertains on the readiness of the system to handle the future demands or needs of the business. Based on this, the company or the developer or creator of the system did not focused on the future enhancement of the system or the adjustment of the system, in order to ensure that the system will cater for the future needs and demands, due to the different changes in the both internal and external environment which change or alter the overall flow of information in the company.
In order to come up with the current problem of Hures' system, Client-Queue-Client can be applied as alternative architecture. This uses a passive queue which allows the client instances to communicate directly with each other, which will refine their request from the services (Exforsys Inc n.d.). This is helpful for Hures because it can help to support and prevent any problems that are related with the server. Client queue is used in order to take track of the number of client connections. Therefore, the server can trace which resources the client has obtained, and the server can release the resources after the client connection breaks down (Chan & Leong 2003).
There is no doubt that intranet software is considered as one of the most taken advantage of networking technology in the business world. This is because it can offer different advantages and pros which cannot be gained by using the peer-to-peer and client-server architecture. It enables companies to take advantage of the wireless and Internet technology, at the same time, take advantage of the privacy and security which can be offered by traditional client/server system. As a result of this, it has been seen that the popularity of intranet software and the Internet pose threats towards the traditional client/server systems. However, it is important to consider that even though intranet and the Intranet is being used and accepted worldwide, there are still parts or aspects of the company which are in need of using the traditional client/server systems.!--Content ends here!-->