Thursday, March 28, 2013

Introduction to Client/Server Computing



The Purpose of Client/Server Computing

We are in an era where information technology plays a critical role in business applications, considered as an area an organization would highly invest in order to widen the opportunities available to compete the global market. “A competitive global economy will ensure obsolescence and obscurity to those who cannot or are unwilling to compete”(Client/Server Architecture,2011), according to this statement it’s necessary for organizations sustain its market position by re-engineering prevailing organizational structures and business practices to achieve their business goals. In short it’s a basic need to evolve with the change of technological aspects. 

Therefore organizations should undergo a mechanism to retrieve and process its corporate data to make business procedures more efficient to excel or to survive in the global market. The client/server model brings out a logical perspective of distributed corporative processing where a server handles and processes all client requests. This can be also viewed as a revolutionary milestone to the data processing industry. 

Client/server computing is the most effective source for the tools that empower employees with authority and responsibility.”(Client/Server Architecture,2011)

“Workstation power, workgroup empowerment, preservation of existing investments, remote network management, and market-driven business are the forces creating the need for client/server computing”. (Client/Server Architecture,2011)
Client/server computing has a vast progression in the computer industry leaving any area or corner untouched. Often hybrid skills are required for the development of client/server applications including database design, transaction processing, communication skills, graphical user interface design and development etc. Advanced applications require expertise of distributed objects and component infrastructures.  

Most commonly found client/server strategy today is PC LAN implementation optimized for the usage of group/batch. This has basically given threshold to many new distributed enterprises as it eliminates host-centric computing.

What Is A Client/Server?


Client
A client is a single-user workstation that provides presentation services, database services and connectivity along with an interface for user interaction to acquire business needs.

Server
A server is one or more multi-user processors with a higher capacity of shared memory which provides connectivity and the database services along with interfaces relevant to the business procedures.

Client/Server computing provides an environment that enhances business procedures by appropriately synchronizing the application processing between the client and the server.

Client/Server Architecture




The protocol relies on the basis of request serving; request for services by clients; response of processed results by the server. The communication between the two aspects is gained through InterProcess communication (IPC) which facilitates the distributed placement of the client and server procedures.

The Client/Server model is basically platform independent and blends with “cooperating processing” or “peer-to-peer” model. The platform provides the opportunity for users to access the business functionality thereby exposing into risky situations since its transparent to the underlying technology aswell as to the user.





Characteristics of The Client And The Server



The clients and the servers are the logical entities that work together over a network to accomplish a task.



·      Service:  The client/server is basically a relationship between processes running on distributed devices, server process considered as a supplier of services where the client process is a consumer of services. Briefly, this methodology provides a separation of functionalities subject to offered services.

· Resource sharing: A server is eligible of handling clients simultaneously, controlling the service access for the resources.

·        Asymmetrical protocols: Client/server is considered as a many-to-one relationship which is initiated by clients through request of service while the server passively awaits. Sometimes a client may pass a reference to a callback object when it requests a service. This enforces the server call back the client, making the server a client itself.

·        Transparency of location: The server process can reside in a client or any machine across a network .In such situations Client/Server software is responsible for implying the server location by redirecting service calls. Therefore a program can be a client/server/or both. 


·        Inter- Communication via messages: Interaction between clients and servers is obtained through a message-passing mechanism mainly to deliver service requests and responses.


·       Encapsulation of services: A server is specialized in satisfying client requests varyingly and can be upgraded without affecting its external environment (clients, shared resources) as long as the message broadcasting interface remains the same.

·  Scalability: Client/Server systems can be scaled horizontally or vertically. Horizontal scaling implies the addition or removal of client workstations with a minor impact in performance. Migration to more efficient servers or dividing the work load over numerous servers is considered as vertical scaling.

·        Integrity: Since the server code and server data is managed centrally, maintenance cost is less and results in shared data consistency and undependability of clients.


Advantages

Organizations often seek opportunities to maintain service and quality competition to sustain its market position with the help of technology where the client/server model makes an effective impact. Deployment of client/server computing in an organization will positively increase productivity through the usage of cost-effective user interfaces, enhanced data storage, vast connectivity and reliable application services. 

If properly implemented its capable of improving organizational behavior with the help of the knowledgeable worker-who can manipulate data and respond to the errors appropriately.


  •  Improved Data Sharing
Data is retained by usual business processes and manipulated on a server is available for designated users (clients) over an authorized access. The use of Structured Query Language (SQL) supports open access from all client aspects and also transparency in network services depict that similar data is being shared among users.

  • Integration of Services
Every client is given the opportunity to access corporate information via the desktop interface eliminating the necessity to log into a terminal mode or another processor. Desktop tools like spreadsheet, power point presentations etc can be used to deal with corporate data with the help of database and application servers resident on the network to produce meaningful information.

  • Shared Resources amongst Different Platforms
Applications used for client/server model is built regardless of the hardware platform or technical background of the entitled software (Operating System S/W) providing an open computing environment, enforcing users to obtain the services of clients and servers (database, application, communication servers).

  • Inter-Operation of Data

All development tools used for client/server applications access the back-end database server through SQL, an industry-standard data definition and access language, helpful for consistent management of corporate data. Advanced database products enable user/application to gain a merged view of corporate data dispersed over several platforms. Rather than a single target platform this ensures database integrity with the ability to perform updates on multiple locations enforcing quality recital and recovery.

  •  Data Processing capability despite the location

We are in an era which undergoes a transformation of machine-centered systems to user-centered systems. Machine-centered systems like mainframe, mini-micro applications had unique access platforms and functionality keys, navigation options, performance and security were all visible. Through client/server users can directly log into a system despite of the location or technology of the processors. 

  •  Easy maintenance
Since client/server architecture is a distributed model representing dispersed responsibilities among independent computers integrated across a network, it’s an advantage in terms of maintenance. It’s easy to replace, repair, upgrade and relocate a server while clients remain unaffected. This unawareness of change is called as encapsulation. 

  •  Security
Servers have better control access and resources to ensure that only authorized clients can access or manipulate data and server-updates are administered effectively.


Disadvantages-compared to peer-peer networks

  •          Overloaded servers
When there are frequent simultaneous client requests, servers severely get overloaded, forming traffic congestion. But in a P2P network adding more nodes will increase its bandwidth since it’s calculated as the sum of bandwidths of each node in the network.(slideshare 2011)


  •         Impact of centralized architecture
Since its centralized if a critical server fails, client requests are not accomplished. Therefore client/server lacks robustness of a good P2P network (resources are distributed among many nodes).


Bibliography

·         slideshare. (2011). Client Server Architecture. [Online]. Available from: http://www.slideshare.net/suks_87/client-server-architecture-presentation. [Accessed: 20th January 2011]


This architecture can be considered as a network model where a machine or process involved, is either a client or a server. Servers are usually machines with high processing power, dedicated in synchronizing network traffic (network servers), devices as disk drives (file servers), printers (print servers). Clients are basically machines or workstations which are dependent on servers for resources, data and devices (Client/Server Architectures,2011). 

Apart from centralized distributed client/server model, peer-to-peer architecture remains a major concern as it conquers a distribution of equal responsibility among each node. Both these models are widely used in the industry and both include advantages and disadvantages as mentioned below (Client/Server Architectures,2011).

Implementation methods and their applications

The client/server architecture functionality divides into categories as 2-tier, 3-tier and N-tier models and the serviceable units consist of user interface, business logic and the shared data. Since the content of this report is towards a network perspective, I have not elaborated on the 1-tier architecture as they are non-distributed, end-user applications

2-tier Client/Server Architecture

Two tier software architectures were built in 1980’s based on the file server software architectural behavior projected mainly to improve usability through the support of form based user-friendly interfaces. It also provides increased scalability via supporting upto 100 users though the file server model supports only dozen of users. Often corporate data can be shared over homogenous environment enhancing flexible usage. This model necessitates minimal operator intervention mostly used in non-complex, non-time critical information processing systems. Eg: File Servers, Database Servers with Stored Procedure (Client/Server Architectures,2011).

Two tier paradigms consist of three components dispersed in two layers: client (supplicant of services) and server (supplier of services) mentioned as below.



In this architecture User System Interface is entirely allocated to the client and the Database Management is placed on the server whereas the Processing Management is functionally dispersed on both client/server resulting two layers (Client/Server Architectures, 2011).

The application logic can reside on client-side, within a user interface or server-side within a database independently or on both sides. These applications can be simply built using visual builder tools helpful in developing applications for small-scale groupware entitled for decision support systems and in the creation of web publishing applications (Client/Server Architectures, 2011). 

Characteristics

  • In this model the client is capable of communicating directly with the server application with no presence of an intermediate application (Bhuvana, 2006).

  • Usually the Business logic is contributed towards the server or the client.

·          Fat Server with Thin Client scenario is when the business logic is attached to the client (Bhuvana, 2006).

·          Fat Client with Thin Server scenario is when the business logic is attached to the corporate server (Bhuvana, 2006).

  • The Procedure in which the client application interacts with the server is achieved through the usage of a database bridge known as Application Programming Interface (API) (Bhuvana, 2006). Commonly used API’s include JDBC- as Java Database Connectivity.

  • Each machine consisting of a client application entitled to the usage of a      database-driver to interact with the database. In case the database changes it’s necessary to re-install the driver which increases the Deployment cost.

  • A separate database connection underlies in every client of the network, which are limited and expensive.

  • Usually database connections retain even if no client interaction occurs, enabling the database to be available to other clients thus making a limited number of clients to access the database at a time.

When simultaneous client request occurs, or when there’s an incensement in the data transfer path- number of trips across a physical boundary, it causes higher network traffic.

In the occurrence of a database operation the data is transferred across a physical boundary separating business logic and data tiers.

When considering the applications of the 2-tier model we often come across classic client/server interactions where client refers to a custom application developed in a language like Delphi or Visual Basic whereas the server is a database engine like SQL Server, Postgres or Oracle, e.g- Library and Lab Reservation Systems where the UI has direct communication with the database server (Chapple, 2011).

Also due to the fact that majority of web applications conclude no separation of business logic form presentation and application servers they are also considered as 2-tier applications using PHP, ASP, ASP.Net etc to connect to the databases via connector objects like ADO, ADO.Net or proprietary connectors (Dilettante, 2010).

Real scenario is often this seems unsuccessful in larger scale implementations grown beyond the departmental LAN, rather than in small scale or prototype level implementations. But fortunately it underwent a transition phase which made it possible to nurture beyond the departmental LAN’s, enforcing to develop 3-tier and the N-tier applications with the help of mounting technological aspects (Dilettante, 2010).

The 3-tier software model was introduced in 1990’s as a remedy for the limitations in 2-tier architecture. In this model a third tier/layer is engaged, known as the middle tier server (Application tier/business logic tier), located between the Data Management (server) and the User Interface (client) constituents, mainly to perform corporate business logic and regulations through Process Management by accommodating hundreds of users (comparatively 2-tier model has user base of 100) to offer functionalities as queuing, application execution, and database staging (Client/Server Architectures,2011).


Usually a three tier architecture is implemented if there’s a necessitate for an efficient distributed client/server devise to offer ” increased performanceflexibilitymaintainabilityreusabilityand scalability, while hiding the complexity of distributed processing from the user” (Client/Server Architectures,2011).

This offers trouble-free deployment over the network and can be managed well due to the centralized behavior of servers. The protocol of communication between client/server is as follows;

The client calls for the business logic on the server, the business logic on the behalf of the client accesses the database (Client/Server Architectures,2011). 
Basic functionalities of the layers are;

  • Presentation Tier - Uses a business tier driven interface with classes and objects, e.g- in ASP.NET comprises of objects like ASPX pages, user and server controls etc.(Yang 2004)

  • Middle Tier (Business Logic tier) -  This basically acts as an intermediate in the communication between presentation and data tier by retrieving modifying data from the database according to business logic and forwarding it to the presentation layer to display results to the user. Often the client request balancing is done via tools as ORB and Transaction processing-TP. In the case of ADO.NET it uses SqlClient or OleDb objects to retrieve and modify data from SQL server or Access, by      forwarding the information to the presentation layer with DataReader or Dataset object, or a custom collection object (Yang, 2004).

  • Data Tier-Represents the database with data access procedures e.g-Oracle, mySQL or even XML. .(Yang 2004)


The 3-tier architecture endorses a user system where a whole set of user services are offered (session, text and dialog input, display management) and it also substitutes several server calls for multiple SQL queries and updates, enhancing its performance compared to the 2-tier model (slideshare, 2011).

Employment of middle tier provisions Process Management services as process development and performance, process monitoring and resourcing of services which are shared by many applications and also it offers database management via data and file services which can be developed without the usage of proprietary DBMS languages (Client/Server Architectures,2011).

Usually 3-tier thin client model is represented in some web applications, comprising a client application which connects to web servers as Apache or IIS, CGI based technology through web-requests using a web browser. Then the web browser communicates with the data tier/database servers like MySQL, Oracle etc, also thick client applications use technologies as CORBA and DCOM (ASKESIS, 2010).

Bibliography

o   slideshare. (2011). Client Server Architecture. [Online]. Available from: http://www.slideshare.net/suks_87/client-server-architecture-presentation. [Accessed: 20th January 2011]


o   Yang. (2004). What is n-Tier Architecture?. [Online].Available from: http://www.developerfusion.com/article/3058/boosting-your-net-application-performance/2/. [Accessed: 25th January 2011]

o   ASKESIS. (2004). Client server computing. [Online].Available from: http://www.askesis.nl/en/tutorial/docs/J2EE/body.html. [Accessed: 25th January 2011]


·     slideshare. (2011). Client Server Architecture. [Online]. Available from: http://www.slideshare.net/suks_87/client-server-architecture-presentation. [Accessed: 20th January 2011]

·     bhuvana. (2006). Two-Tier Architecture. [Online].Available from: http://bhuvans.wordpress.com/2006/08/22/two-tier-architecture/. [Accessed: 27th January 2011]

·  Chapple. (2011). Two-Tier or n-Teir. [Online].Available from: http://databases.about.com/od/specificproducts/a/architectures.htm. [Accessed: 27th January 2011]

·   dilettante. (2010). Vb Forums. [Online].Available from: http://www.vbforums.com/showthread.php?t=620167. [Accessed: 25th January 2011]


·         slideshare. (2011). Client Server Architecture. [Online]. Available from: http://www.slideshare.net/suks_87/client-server-architecture-presentation. [Accessed: 20th January 2011]

·         bhuvana. (2006). Two-Tier Architecture. [Online].Available from: http://bhuvans.wordpress.com/2006/08/22/two-tier-architecture/. [Accessed: 27th January 2011]


·         Chapple. (2011). Two-Tier or n-Teir. [Online].Available from: http://databases.about.com/od/specificproducts/a/architectures.htm. [Accessed: 27th January 2011]


·         dilettante. (2010). Vb Forums. [Online].Available from: http://www.vbforums.com/showthread.php?t=620167. [Accessed: 25th January 2011]


·         Yang. (2004). What is n-Tier Architecture?. [Online].Available from: http://www.developerfusion.com/article/3058/boosting-your-net-application-performance/2/. [Accessed: 25th January 2011]

2 comments:

  1. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here keep up the good work Productized service software

    ReplyDelete