Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
NCS
1. Networked Computer Systems
2011
Contents
Acknowledgement .................................................................................................................................................................. 3
Abstract ................................................................................................................................................................................... 3
Chapter-1................................................................................................................................................................................. 4
Introduction ......................................................................................................................................................................... 4
Chapter-2................................................................................................................................................................................. 7
Client/Server Characteristic ................................................................................................................................................ 7
The logical entities of Client/Server ................................................................................................................................... 8
Merits and Demerits of the Client Server ......................................................................................................................... 10
The Merits of Client/Server Computing ....................................................................................................................... 10
Enhanced Data Sharing ................................................................................................................................................. 10
The Demerits of Client/Server Computing ................................................................................................................... 11
Chapter-3............................................................................................................................................................................... 12
Client/server architecture .................................................................................................................................................. 12
Types of network architecture........................................................................................................................................... 12
2-tier Client/Server Architecture ................................................................................................................................... 12
3-tier Client/Server Architecture ................................................................................................................................... 14
The Main differences between 3-tier architecture And 2-tier architecture ................................................................... 15
N-Tier Architecture ....................................................................................................................................................... 16
Client model ...................................................................................................................................................................... 18
Types ............................................................................................................................................................................. 19
Advantages .................................................................................................................................................................... 20
Disadvantages ............................................................................................................................................................... 20
Server Model ..................................................................................................................................................................... 20
Types ................................................................................................................................................................................. 20
File Server ..................................................................................................................................................................... 20
Database Server............................................................................................................................................................. 21
Transaction Servers ....................................................................................................................................................... 22
Application Architecture ............................................................................................................................................... 24
Storage Area Network (SAN) ....................................................................................................................................... 24
Client/Server
Page 1
2. Networked Computer Systems
2011
Disadvantages of the Client Server Architecture .............................................................................................................. 25
Client Server Architecture Advantages ............................................................................................................................. 25
Chapter 4 ............................................................................................................................................................................... 27
Requirements for the implementation of Client/Server .................................................................................................... 27
Client-Server Requirements .............................................................................................................................................. 27
Network Interfaces ........................................................................................................................................................ 27
Routing Infrastructure ................................................................................................................................................... 28
Network Protocol Establishment................................................................................................................................... 28
Communication Software ............................................................................................................................................. 28
Client/Server implementation environment ...................................................................................................................... 29
Client Environment ....................................................................................................................................................... 30
Server Environment ...................................................................................................................................................... 31
Conclusion ............................................................................................................................................................................ 32
Reference .............................................................................................................................................................................. 32
Appendices............................................................................................................................................................................ 33
Work Breakdown Structure .............................................................................................................................................. 33
Client/Server
Page 2
3. Networked Computer Systems
2011
Acknowledgement
With this subject and article I will be advising and explaining the way of the Client/Server
technology. How this technology become popular by the opportunity we had in our study field. And the
information that been given by our beloved lecturer Mr.ABUBAKAR, we are so grateful by him for
what he been teaching us and advise us for. And greeting to the university that I been study for one year
and gave me a huge acknowledgement in our field that I choose.
Abstract
In this article we will be providing the way of the Client/Server techniques, how this technology can
be work as a Client and Server in the same time with an impeccable method. What are the challenging
that can be stop the working of the Client/Server technology, and how it does implement on various
places and different usage?
Client/Server
Page 3
4. Networked Computer Systems
2011
Chapter-1
Introduction
Nowadays huge and massive organizations are looking for more security, ability, performance, and
fulfillment the work. In that order they start to develop and create a new method or language that can be
use for this particular field which is to make sending and receiving signals in better mean request of data
by the appearance of Client/Server Technology.
We are in the middle of a fundamental change in both technology and its application. Organizations
today expect to get more value from their investments in technology.
“Opportunities are available to organizations and people who are ready and able to race in the global
market. A competitive global economy will ensure antiquation and obscurity to those who cannot or are
unwilling to race. All organizations must look for ways to demonstrate value. We are finally seeing a
preparation to rethink existing organizational structures and business practices”. This is slideshare.com
(2008)
“Organizations are aggressively constriction even as they try to aggressively expand their revenue
base. There is more preparation to continue improvement practices and programs to eliminate
redundancy and increase effectiveness. Organizations are becoming market-driven while remaining true
to their business vision”.
Client/server computing is the most effective source for the tools that empower employees with
authority and responsibility.
Client does send or request the order for a specific matter it want.
Server receive the request or the order from the client and fulfill the requirements for returning back
the matter that been asked from or by the client
Client/Server
Page 4
5. Networked Computer Systems
2011
Figure.1.1: Client/Server Shape
Source (javaword-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.
The Client/server computing is an irresistible movement that is reshaping the way computers is being
used. Though this computing is very young it is already in full force and is not leaving any area and
corner of the computer industry untouched. The Client/Server application development requires mix
skills that include transaction processing, database design, communication experience, graphical user
interface design, and being Internet Savvy. The more advanced applications require knowledge of
distributed objects and component infrastructures.
Most client/server solutions today are PC LAN implementation that is personalized for the group
that uses them. The Client/Server Computing has changed the way in which computers are being used.
This has a unique feature of having a strong foothold on the entire range of the computer industry.
“The client/server shape has become one of the critical ideas of network computing. Most business
applications use the client/server model. So does the Internet main program, TCP/IP. In marketing, the
term has been used to differentiate computing by smaller isolated computers from the massive
centralized computing of mainframe computers. But this characteristic has largely disappeared as
mainframes and their applications have also turned to the client/server model and become part of
network computing”.
Client/Server
Page 5
6. Networked Computer Systems
2011
The usual client/server model, one server, sometimes called a DAEMON, is activated and awaits
client requests. Typically, multiple client programs share the services of a common server program.
Both client programs and server programs are often part of a larger program or application. Related to
the Internet, your Web browser is a client program for an example that requests services, sending of
Web pages or files from a Web server which technically is called a Hypertext Transport Protocol or
HTTP server, in another computer somewhere on the Internet. Equally, your computer with TCP/IP
installed allows you to make client requests for files from File Transfer Protocol FTP servers in other
computers on the Internet.
The Client/Server computing is an environment that satisfies the business need by suitably allocating
the application processing between the client and the server processors. The protocol is the client
requests the services from the server; the server processes the request and returns the result to the client.
The communication mechanism is a message passing InterProcess communication (IPC) that enables the
distributed placement of the client and server processes. The Client/Server is the generic model and fits
what is known in the industry as the “cooperating processing” or “peer-to-peer”. The client/server
computing is fundamentally platform independent.
Client/Server
Page 6
7. Networked Computer Systems
2011
Chapter-2
Client/Server Characteristic
According to A. McGraw-Hill (1996).
“The Client/Server is an architecture in which the user's PC (client) is the requesting machine and
the server is the supplying engine, both of which are connected via a local area network (LAN) or a wide
area network (WAN) such as the Internet. Client/server was as applications were migrated from
minicomputers and mainframes with input/output terminals to networks of desktop computers.”
“By the time the Servers become powerful computers or processes dedicated to managing disk
drives like: (file server, print server, and network server). Beside the Client become as PC’s or
workstation can be run applications. Clients rely on servers for resource and processing power help.”
Based on Sue Smith, eHow Contributor (2010)
Characteristics
“A typical Client Server system will involve a program running on one machine, the server,
communicating with a program running on at least one other, and the client. The Web is the best known
example of this system. When you browse a website, your Web browser (the client) sends a message
request to the Web server on which the site is running. The server responds, normally with the content of
the page you requested, and your browser then displays this.”
Principles
“The basic principle of Client Server technology is that it allows resources to be used by multiple users
at any time. In an average system, the data and core information for an application will all be stored at the
server side. The clients provide access to this data, and many clients can have access to one server. Because
the data is stored only in one place, the resulting applications are easier to secure and maintain.”
Client/Server
Page 7
8. Networked Computer Systems
2011
Examples
“The advances in networking have had the effect of making Client Server applications widespread
today. As well as the Internet, and the vast number of applications that run on it, many organizations use
Client Server models in their database systems. Many different technologies are used to achieve Client
Server models. Some of the most common ways to build client and server programs for the Web include
HTML, JavaScript, and programming languages such as PHP and ASP.”
Benefits
“There are many benefits to using Client Server technologies. Applications using a data store are
better able to maintain their data if it is stored in one location, rather than being distributed along with
the other application parts. A substantial proportion of the communication tools and techniques,
including email and instant messaging, that are essential to today's industries and organizations would
not be possible without Client Server interaction.”
Considerations
“If you're planning to learn about Client Server technology for use in Web development, this will
involve learning one or more programming languages. You will first need to learn the basics of HTML
and client side technologies such as JavaScript. Server side programming usually involves a database,
and a program (written, for example, in PHP or ASP) running on the server, sending the data to the
client. Client Server technologies give you the ability to create dynamic, interactive and productive
experiences for visitors to your site.”
The logical entities of Client/Server
According to F. Soesianto and Ismail K. Ibrahim (1998)
•
Service: client/server above all a relationship between processes running on split machines. The server
process is a supplier of services. The client is a consumer of services. Initial, client/server provides a clean
separation of function based on the idea of service.
•
Shared resources: a server can service many clients at the same time and regulate their access to shared
resources.
Client/Server
Page 8
9. Networked Computer Systems
•
2011
Asymmetrical protocols: there is many-to-one relationship between clients and server. Clients always
initiate the dialog by requesting a service. Services are passively awaiting requests from the clients. In some
cases a client may pass a reference to a callback object when it invokes a service. This lets the server call
back the client. So the client becomes the server.
•
Transparency of location: the server is a process that can reside on the same machine as the client or
on a different machine across a network. Client/server software usually masks the location of the server
from the clients by redirecting the service calls when needed. A program can be a client, a server, or both.
•
Mix-and-match: the ideal client/server software is independent of hardware or operating system
software platforms.
•
Message-based exchange: clients and servers are loosely coupled systems that interact through a
message-passing mechanism. The message is the delivery mechanism for the service request and replies.
•
Encapsulation of services: the server is a “specialist.” A message tells a server what service is
requested; it is then up to the server to determine how to get the job done. Servers can be upgraded without
affecting the clients as long as the published message interface is not change.
•
Scalability: client/server systems can be scaled horizontally and vertically. Horizontal scaling means
adding and removing client workstation with only a slight performance impact. Vertical scaling means
either migrating to a larger and faster server machine or distributing the processing load across multiple
servers.
•
Integrity: the server code and server data is centrally managed; which results in cheaper maintenance
and the guarding of shared data integrity. At the same time, the clients remain personal and independent
Client/Server
Page 9
10. Networked Computer Systems
2011
Merits and Demerits of the Client Server
The Merits of Client/Server Computing
According to scripd.com (2010)
“Client/server computing provides the capability to use the most cost-effective user interface, data
storage, connectivity, and application services. Frequently, client/server products are deployed within the
present organization but are not used effectively”.
The client/server model provides the technological means to use previous investments in concert with
current technology options. Organizations look into opportunities to use technology to provide business
solutions. Service and quality competition in the marketplace further increases the need to take advantage of
the benefits available from applications built on the client/server model.
Client/server computing in its best implementations moves the data-capture and information-processing
functions directly to the familiar worker that is, the worker with the ability to respond to errors in the data,
and the worker with the ability to use the information to make it available.
Enhanced Data Sharing
Data that is collected as part of the normal business process and maintained on servers immediately that
would be available to all authorized users.
The use of Structured Query Language (SQL) to define and manipulate the data provides support for
open access from all client processors and software.
SQL provide to all authorized users access to the information through a view that is constant with their
business need. Transparent network services ensure that the same data is available with the same
currency to all designated users.
Client/Server
Page 10
11. Networked Computer Systems
2011
The Demerits of Client/Server Computing
Traffic congestion on the network has been an issue. As the number of simultaneous client requests to a
given server increases, the server can become strictly overloaded. Contrast that to a P2P (Peer to Peer)
network, where its bandwidth actually increases as more impasse are added, since the P2P network's overall
bandwidth can be generally computed as the sum of the bandwidths of every impasse in that network.
The client-server model lacks the robustness of the good P2P network. Under client-server, should a
critical server fail, clients’ requests cannot be fulfilled. In P2P networks, resources are usually distributed
among many pitfalls. Even if one or more pitfall depart and discard a downloading file, for example, the
remaining nodes should still have the data needed to complete the download.
Client/Server
Page 11
12. Networked Computer Systems
2011
Chapter-3
Client/server architecture
Types of network architecture
According to Client/Server architecture, www.sei.cmu.edu
“Another type of network architecture is known as a peer-to-peer architecture because each end point
has equivalent responsibilities. Both client/server and peer-to-peer architectures are widely used, and each
has unique advantages and disadvantages. Client-server architectures are sometimes called two-tier
architectures.
The leader of the client/server architecture does not use the terms fat client and the fat servers, unlike
they refer to them are 2-tier, 3-tier and N-tier client/server architecture. This is the means by which they are
functionally split or divided. The functional units contain of user interface, business logic and the shared
data.”
2-tier Client/Server Architecture
“2-tier software architecture is a file server software architecture design. The two-tier architecture
purpose is to improve usability by supporting a (forms-based), user-friendly interface. The two-tier
architecture improves expansion by accepting up to 100 users on time (file server architectures only
accepting a dozen of users). It also offers flexibility by allowing data to be shared, usually within a
homogeneous environment. The two-tier architecture requires minimal operator intermediation, and it’s
frequently used in non-complex, non-time critical information processing systems.”
Client/Server
Page 12
13. Networked Computer Systems
2011
Figure 3.1 / 2-tier Client/ Server Architecture
Source (images.yourdictionary, client/serverimages-2011)
Two tier architectures consist of three components distributed in two layers: client (requester of
services) and server (provider of services).
The three components are:
1. User System Interface (such as session, text input, dialog, and display management services).
2. Processing Management (such as process development, process enactment, process monitoring, and
process resource services).
3. Database Management (such as data and file services).
The two-tier design allocates the user system interface exclusive to the client. It places database
management on the server and splits the processing management between client and server, and creating two
layers.
The application logic is presenting at the client side within the user interface or it may be present within
the database on the server or on the both. It is most popular because of its simplicity. These applications can
be quickly built by using visual builder tools. This can be used for developing applications for decisions
support system of small-scale groupware or may build a simple web publishing applications.
Client/Server
Page 13
14. Networked Computer Systems
Advantages
2011
Disadvantages
Fast application development time.
Not suitable for dispersed, heterogeneous
environments with rapidly changing business rules.
Available tools are robust and lend themselves to
Because of the bulk the application on logic is on the
fast prototyping to insure user needs a met
client, there is a problem of the client software
accurately and completely.
version control and new version redistribution.
Conducive to environments with homogeneous
Security can be complicated because the user may
clients, homogeneous applications, and static
require separate password for each SQL server
business rules.
accessed.
3-tier Client/Server Architecture
According to Client/Server architecture, www.sei.cmu.edu
“The three-tier software architecture is the limitations of the two-tier architecture. The third tier (middle
tier server) is between the user interface (client) and the data management (server) setup.
This middle tier provides a process management that business logic and rules are executed and would be
able to 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.”
Figure 3.2 / 3-tier Client/ Server Architecture
Source (images.yourdictionary, client/serverimages-2011)
Client/Server
Page 14
15. Networked Computer Systems
2011
The 3-tier alternate a few servers calls for many SQL queries and updates so that can performs much
better than the 2-tier. The three tier divided client/server architecture to include user system where user
services are (such as session, text input, dialog, and display management).
The Main differences between 3-tier architecture and 2-tier architecture
Based on Prof. Sanjeev Setia, and McGraw-Hill (1996)
“Two-tier architecture is client/server architecture, where a request to do some task and sent it to the
server and the server responds by performing the task. Three-tier or multi tier architecture has client/server
and database. Where the client request is sent to the server and the server turn to sends the request to the
database. The database sends back the information data that been required to the server which in turn sends it
to the client. In the modern two-tier architecture the server holds both the applications and the data. The
applications reside on the server rather than the client, probably because the server will have more processing
power and disk space than the PC.
In the three-tier architecture the data and applications are split onto separate servers with the server-side
distributed between a database server and an application server. The client is facing the end, simply
requesting and displaying data. Reason being that each server will be dedicated to processing either data or
application request, hence a more manageable system and less contention for resources will occur.”
Client/Server
Page 15
16. Networked Computer Systems
Advantages
2011
Disadvantages
A change from one DBMS to other will only
Creates an increased need for network traffic
involve a change to the part in the data access
management, server load balancing, and fault
layer.
tolerance.
A change in the Use Interface (from desktop to the
Current tools are relatively immature and are more
web, will need only some changes in the
complex.
components of the presentation layer.
It has better wait balancing system because the
Maintenance tools are currently inadequate for
entire work load is divided.
maintaining server libraries. This is a potential
obstacle for simplifying maintenance and promoting
code reuse throughout the organization.
Security polices can be imposed without effecting
the clients.
N-Tier Architecture
According to James Yang (2004)
“This is a very important topic to consider when developing an application. Many elements need to be
considered when deciding on the architecture of the application, such as performance, scalability and future
development issues. When you are deciding on which architecture to use, first decide on which of the three
aforementioned elements you think is most valuable as some choices you make will impact on others. For
example, some choices that boost performance will impact on the scalability or future development of your
design.”
Usually N-Tier Architecture begins as a 3-Tier model and is expanded. It provides finer granularity.
Granularity is the ability of a system, in this case, an application, to be broken down into smaller components
or granules. The finer the granted the greater the flexibility of a system. It can also be referred to as a
system’s modularity. Therefore, it refers to the pulling apart of an application into separate layers or finer
grains.
Client/Server
Page 16
17. Networked Computer Systems
2011
“In software engineering, multi-tier architecture often referred to as n-tier architecture is a client-server
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" refers to
three-tier architecture.”
Figure 3.3 / N-tier Client/ Server
Source (stackoverflow, N-Tier architecture-2008)
Client/Server
Page 17
18. Networked Computer Systems
2011
Client model
Based on InfoDev.biz, Client model (2011)
“A client is the requesting program or user in a client/server relationship. For example, the user of a
Web browser is effectively making client requests for pages from servers all over the Web. The browser
itself is a client in its relationship with the computer that is getting and returning the requested HTML file.
The computer handling the request and sending back the HTML file is a server.”
“A client is an application or system that accesses a remote service on another computer system, known
as a server, by way of a network. The term was first applied to devices that were not capable of running their
own stand-alone programs, but could interact with remote computers via a network. These dumb terminals
were clients of the time-sharing mainframe computer.”
“The client–server model is still used today. Client and server can run on the same machine and connect
via UNIX domain sockets. Using Internet sockets a user may connect to a service operating on a possibly
remote system through the Internet protocol suite. Servers set up listening sockets, and clients initiate
connections that a server may accept. Web browsers are clients that connect to web servers and retrieve web
pages for display. Most people use email clients to retrieve their email from their internet service provider's
mail storage servers. Online chat uses a variety of clients, which vary depending on the chat protocol being
used. Multiplayer online games may run as Game Clients on each local computer.”
“Increasingly, existing large client applications are being switched to websites, making the browser a
sort of universal client. This avoids the hassle of downloading a large piece of software onto any computer
you want to use the application on. An example of this is the rise of webmail.”
“In personal computers and computer workstations, the difference between client and server operating
system is often just a matter of marketing - the server version may contain more operating system
components, allow more simultaneous logins, and may be more expensive, while the client version may
contain more end-user software.”
Client/Server
Page 18
19. Networked Computer Systems
2011
Types
Clients are generally classified as either "fat clients", "thin clients", or "hybrid clients".
Client Types
Local Storage
Local Processing
Fat Client
Yes
Yes
Hybrid Client
No
Yes
Thin Client
No
No
Fat
a fat-with low-fat client, also known as a rich-poor client or thick-thin clientthe personal computers or
laptops can operate independently. Programming languages and/or development tools for rich clients
typically include Delphi, .NET Framework, Java and Visual Studio.
Thin
a thin client is a minimal sort of client. Thin clients use the resources of the host computer. A thin client's job
is generally just to graphically display pictures provided by an application server, which performs the bulk of
any required data processing. Programming environments for thin clients include JavaScript/AJAX (client
side automation), ASP, JSP, PHP and other (depends on server-side backend and uses HTML pages or rich
media like Flash, Flex or Silver light on client).
Hybrid
a hybrid client is a mixture of the above two client models. Similar to a fat client, it processes locally, but
relies on the server for storage data. This approach offers features from both the fat client (multimedia
support, high performance) and the thin client (high manageability, flexibility). The arrival of technologies
such as Java allows hybrid clients the high performance required even for multimedia applications, with the
data stored in the Cloud.
Client/Server
Page 19
20. Networked Computer Systems
2011
Advantages
Disadvantages
Centralized - Resources and data security are
controlled through the server.
Scalability - Any or all elements can be replaced
individually as needs increase.
Flexibility - New technology can be easily integrated
into system.
Interoperability - All components
Can have a single point of failure.
Server can get overloaded.
Generally more expensive and difficult to set up
initially.
(client/network/server) work together.
Server Model
Based on Pardeep, Types of Server (2005)
“A Server is a computer or device on a network that manages network resources. For example, a file
server is a computer and storage device dedicated to storing files Any user on the network can store files on
the server. A print server is a computer that manages one or more printers and a network server is a computer
that manages network traffic.”
“Servers are often dedicated, meaning that they perform no other tasks besides their server tasks. On
multiprocessing operating systems however, a single computer can execute several programs at once. A
server in this case could refer to the program that is managing resources rather than the entire computer.
Sometimes referred to as a type of middleware, application servers occupy a large chunk of computing
territory between database servers and the end user, and they often connect the two.”
Types
File Server
• File Servers are useful for sharing information across the network
•
The client passes a request for file records over a network to the file server.
Client/Server
Page 20
21. Networked Computer Systems
•
2011
This is the most primitive type of data service used for exchanging messages over the network to find
the requested data.
Figure 3.4 / Client/Server with a File Server
Source (blogs.technet, High Availability Scenarios-2011)
•
The file servers provide access to the remote server processors. In the typical implementation the
software, shared data, databases and backups are stored on disk, tape and optical storage devices that are
managed by the file server.
Database Server
•
The client passes the SQL requests as messages to the database server; the result of each SQL command
is returned over the network.
•
The code, which processes the SQL request and the data, reside in the same machine, the server uses its
own processing power to find the requested data back to the client, instead of passing all the records back to
the client. This results in a much more efficient use of the distributed processing power.
•
Note that the application code held on the client; thus you must either write code for the client or you
can buy a shrink-wrap query tool to work on.
•
The database servers provide the foundation for decision support systems and also provide a key role in
data storage.
Client/Server
Page 21
22. Networked Computer Systems
2011
Figure 3.5 / Client/Server with the Database Servers
Source (channeldb2, security study material week2-2011)
Transaction Servers
•
The client can appeal to remote procedure or services that reside on the server with an SQL database
engine using the transaction server.
•
The network exchange consists of a single request/ reply. The SQL statements either all succeed or
fail as a unit through the network.
•
These groups of SQL statements are called transactions.
•
With a transaction server you can create the client/server application by writing the code for both the
client and the server assembled.
•
The client assembled usually includes the Graphical User Interface (GUI), the server component
consists of SQL transaction against a database. These applications are called Online Transaction
Processing or (OLTP).
•
The OLTP are mission-critical applications that require a very less response time between 1 to 3 sec
per transaction.
•
The OLTP applications also require tight controls over the security and integrity of the database.
•
It has two forms.
TP-Lite: based on the stored procedures provided by database trader.
TP-Heavy: bases on the TP Monitors which is provided by OLTP trader.
Client/Server
Page 22
23. Networked Computer Systems
2011
Figure 3.6 / Client/Server with the Transaction Servers
Source (Google.com-2011)
At any place access to company via LAN, or WAN Internet, almost everyone works as client/server
environment. However, to be true client/server, both client and server must share and work in business
processing. The Internet revolves around the client-server architecture. Your computer runs software called
the client and it interacts with software known as the server located at a remote computer. The client is
usually a browser such as Internet Explorer, Netscape Navigator or Mozilla and other different website
Browsers. Browsers interact with the server using a set of commands called protocols. These protocols help
to be accurate transfer of data through requests from a browser and responses from the server. There are
many protocols available on the Internet. The World Wide Web, which is a part of the Internet, brings all
these protocols under one roof. You can use HTTP, FTP, Telnet, email etc. from one platform through your
Browsers. Client-server software architecture is various uses and flexible in today’s fast-changing IT field.
It is paradigm in structure and relies on messaging services for communication between components. They
were designed to improve flexibility, usability, scalability, and interoperability. Software flexibility implies
the ability for a program to change easily according to different users and different system requirements.
Client/Server
Page 23
24. Networked Computer Systems
2011
Application Architecture
Application architecture is the organizational design of an entire software application, including all subcomponents and external applications interchanges. There are several design patterns that are used to define
application architecture. These patterns help to communicate how an application will complete the
necessary business processes as defined in the system requirements.
A software application is a system designed to automate specific tasks in a logical manner to satisfy a set
of requirements. Software applications rely on underlying operating systems and databases to store and
perform tasks within the application. The application architecture is the drawing that defines how the
software application will interact with servers and components within the domains of application layers.
With the expansion of interoperability within software, modular components have been created that
specialize in particular areas of business processes within an application. Application architecture is the
process of defining all the components within the design and how they will communicate within the
application. This definition includes all layers of an application.
Storage Area Network (SAN)
In storage networking terminology, a Storage Area Network SAN is a high-speed sub network of shared
storage devices. A storage device is a machine that contains nothing but a disk or disks for storing data. A
SAN architecture works in a way that makes all storage devices available to all servers on a LAN or WAN
in the same time and equal processing.
As more storage devices are added to a SAN, they too will be accessible from any server in the larger
network. In this case, the server simply acts as a pathway between the end user and the stored data. Because
stored data does not reside directly on any of networks servers, server power is exploiting for business
applications, and network capacity is released to the end user.
Client/Server
Page 24
25. Networked Computer Systems
2011
Disadvantages of the Client Server Architecture
According to University of New Mexico: Disadvantages of Client-Server (2010)
Expense
“Typically the central server computer must be enough powerful to maintain and share resources with
other computers on the network. This entails require a high cost.
Dependence
The client/server network model count on the function and available centralized server. If the centralized
server is removed from the system anyway or goes down due to problems, the entire network cannot
function or work. However many client/server networks now have backup servers to provide supports when
the main server is lost or down working.
Congestion
Centralized servers must handle the majority of the network traffic, as all queries for resources are
directed toward the server. This can cause network congestion on the network and slow down response
times for each computer available.
Maintenance
Client-server networks often require a staff with at least a single network administrator to manage and
maintain the equipment and the network. Other network operating systems, such as peer-to-peer network
systems, do not require a network administrator to maintain machines, as this work is distributed among
individual clients and their related machines.”
Client Server Architecture Advantages
Based on University of New Mexico: Disadvantages of Client-Server (2010)
Centralized Network Access Security
“In a client-server network security is managed centrally, and security information such as user account
names, passwords and computer names, are all stored in a database on a server. When a user turns on a
computer, his username, password and the name of the computer that he is logged onto are sent to the
Client/Server
Page 25
26. Networked Computer Systems
2011
central server, which checks to see if that username and password match up and if the computer is a valid
computer on the network.”
Distribution of Resources
“Client-server network architecture allows different networks resources to be distributed among multiple
servers. Client users are allowed access only to the servers that contain data needed for them to perform
their work. Without a client-server network, IT staff would have to keep every single server, including
backup servers, individually updated with user account information and levels of access to all of the
separate pieces of data on each server. It is very difficult to keep up security access information on a
distributed server network such as this without client-server architecture.”
Ease of Management
“Major software manufacturers, such as Microsoft have a network management interfaces that are easyto-use and allow IT technicians to make security updates to the security database from a computer in any
location that has network access to the server hosting the database. Without a client-server network in place,
IT staff would have to make security updates on each individual computer affected by the security changes
being applied. Human error in this case may lead to a lack of network access for some users. These users
may find that they are unable to work until IT staffs are able to identify exactly which computer needs to
have its security information reapplied before they can schedule a time to make the necessary changes.”
Client/Server
Page 26
27. Networked Computer Systems
2011
Chapter 4
Requirements for the implementation of Client/Server
The requirements is the tools and methods that we need to implement a project or an structure to lead us
into the right direction that we are looking to succeed the plan, moreover the requirements needs experts
people to implement any technology within a study of the consequence that could happen if the
implementation goes wrong somehow. And to study the location and the right tools that will be appropriate
for the implementation without any obstacle.
According to Martinka (1995)
“Designing and building the distributed applications is a risky assignment without any modeling
environment and experience. The techniques used in the past few years to design and manage monolithic
applications are inadequate. A system model is no longer optional. This article highlights a critical need for
the performance modeling in the area of client/server application design and management. It defines the
functionality required in these models.”
Client-Server Requirements
Based on University of New Mexico: Hardware & Software Requirements for Client Server Computing (2011)
Network Interfaces
“Both the host and the client must have compatible network interfaces in order to communicate via a
client-server network. A network interface also called network adapter, consists of hardware and software
which allow the interface to communicate with the physical network, and the operating system to
communicate with the interface. This consists of the interface hardware usually a PCMIA card, USB or
Serial device, the firmware which runs the card embedded software on the hardware itself, and the operating
system driver to communicate with the device. Commercial network interfaces come standard with all
required hardware, firmware and driver software.”
Client/Server
Page 27
28. Networked Computer Systems
2011
Routing Infrastructure
“The routing infrastructure which consists of network cable, wireless access points, routers and
backbone Internet links, is critical to a Wide-Area Network (WAN) client/server model. Client traffic is
routed through digital highways made up of network and fiber optic cable to the server, and back from the
server to complete data exchange. The routing infrastructure allows each server and client to have an
address usually an IP address, and to be uniquely located on the network.”
Network Protocol Establishment
Network protocols establish common methods of communications between clients and servers, much
like languages for humans. The difference in computer network protocols is that each data packet chunk of
data contains a header with address information similar to a postal envelope. Network protocols also
establish which computer is the client or the server to sends data first, and what type of data need to sent at
each point in the exchange. Most common data protocols are established under the ISO (Internet Standards
Organization), therefore network device and software manufacturers frequently follow these standards.”
Communication Software
“Finally software tools drive the automatic communication between client and server. Most worthy
among communications software are web browsers, such as Internet Explorer, Safari and Firefox, and email
clients such as Microsoft Outlook, Mozilla Thunderbird or Apple Mail. Communication software simplifies
client-server network exchange by providing a user interface (UI) and by automating the encapsulate into
packets for transmission on the network much like the post office verifies the address and applies necessary
labeling to postal mail.”
Client/Server
Page 28
29. Networked Computer Systems
2011
Client/Server implementation environment
In science and engineering the system is part of the universe that is being studied, while the environment
is the remainder of the universe that lies outside the boundaries of the system. It is also known as the
surroundings, and in thermodynamics, as the reservoir. Depending on the type of system, it may interact
with the environment by exchanging energy including heat and work, electric charge, or other conserved
properties. In some discipline, such as information theory, information may also be exchanged. The
environment is involved in analysis of the system.
According to (msdn.microsoft.com, Client and Server Environment-2011)
“Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) relies on several
components in the client and server environments to exchange data between a device and an instance of
Microsoft SQL Server. The following illustration shows the relationships among the different client and
server components.
Figure 4.1 / Client and Server Environment
Source (msdn.microsoft, Client and Server Environment - 2011)
Client/Server
Page 29
30. Networked Computer Systems
2011
Client Environment
The client environment is made up of the applications and SQL Server Compact Edition. The
application is developed using the .NET Compact Framework and a Microsoft Visual Studio 2005 language
such as Microsoft Visual Basic or Microsoft Visual C#, or by using Microsoft Visual C++ for Devices.
SQL Server Compact Edition includes tools for setup, configuration, connectivity, and data access and
modification; a query processor; a database storage engine; and programming APIs used to develop
applications that access SQL Server Compact Edition data. It also includes
SQL Server Compact Edition Database Engine.
The SQL Server Compact Edition Database Engine manages the SQL Server Compact Edition data store
on supported devices. The Database Engine can track all database records that are inserted, updated, or
deleted by maintaining a small amount of change tracking information with each record. The tracking
functionality is enabled when you use one of the two connectivity solutions: replication or remote data
access (RDA).
SQL Server Compact Edition Client Agent
The SQL Server Compact Edition Client Agent is the primary component for connectivity on the supported
devices. It implements the following custom SQL Server Compact Edition objects:
Replication object
Remote Data Access object
Engine object
By using these objects in your application, you can programmatically control connections to SQL Server.
Client/Server
Page 30
31. Networked Computer Systems
2011
Server Environment
The server environment is made up of SQL Server Compact Edition Server Agent, Microsoft Internet
Information Services (IIS), and SQL Server. The SQL Server Compact Edition Server Agent handles the
HTTP requests made by the SQL Server Compact Edition Client Agent. The SQL Server Compact Edition
Server Agent connects to SQL Server and returns the data and schema information to the SQL Server
Compact Edition Client Agent through HTTP. Additional SQL Server connectivity components are
involved in this process. They are also located on the computer that runs IIS, although they are not shown in
the previous illustration.
IIS
IIS provides integrated Web server capabilities. Organizations of all sizes use IIS to host and manage
Web pages on the Internet or on their intranet, to host and manage FTP sites, and to route news or mail by
using the Network News Transport Protocol (NNTP) and the Simple Mail Transfer Protocol (SMTP). When
used with SQL Server Compact Edition, IIS provides the protocol by which devices can connect to servers
for transferring and exchanging data by using RDA or replication technologies.
Microsoft SQL Server
SQL Server is a set of components that work together to meet the data storage and analysis needs of the
largest Web sites and enterprise data processing systems. It includes relational data management, data
warehousing, and business intelligence components. SQL Server Compact Edition supports familiar SQL
syntax and provides a development model and API consistent with SQL Server 2000 and later versions.
Client/Server
Page 31
32. Networked Computer Systems
2011
Conclusion
The client/server process is between two PCs the first one is make the request and the other fulfils up the
request. Companies are using the client/server because it does arrange the organization function. Choosing
the correct client/server implementation in different environment is essential part to get an effective working
system. With effective information system organization will be able to run the business effectively and
efficiently. Correct design and implementation of client/server system in particular environment ensures that
the system is able to provide services to clients continuously without decrease the performance. In the
future, it is intended to add new services such as product customization where customers in the soon future
will be able to build their own car design according to their specifications and desires. It will be on reality as
the human kind accepts the principles of life needs.
Reference
http://www.answers.com/topic/client-server-technology
http://www.exforsys.com/tutorials/client-server/client-server-architecture.html
http://www.wisegeek.com/what-is-client-server-architecture.html
http://www.webopedia.com/TERM/C/client_server_architecture.html
web.simmons.edu
www-bcf.usc.edu
matrex.sourceforge.net
http://www.ehow.com/facts_6973946_difference-peer-client-server-networks.html
http://www.answers.com/topic/environment-systems#ixzz1KRVLkw5W
http://msdn.microsoft.com/en-us/library/ms172075%28SQL.90%29.aspx
http://www.ehow.com/about_6498339_client-server-technology.html
http://www.developerfusion.com/article/3058/boosting-your-net-application-performance/2/
http://stackoverflow.com/questions/312187/what-is-n-tier-architecture
http://www.infodev.biz/Clients.html
http://www.go4expert.com/forums/showthread.php?t=325
Client/Server
Page 32
33. Networked Computer Systems
2011
Appendices
Work Breakdown Structure
Level-1
1. Chapter-1
2. Chapter-2
Level-2
1.1-Introduction.
2.1-Client/Server
Characteristic.
Level-3
Level-4
2.1.1-The logical entities
of Client/Server.
2.1.2-Merits and Demerits 2.1.1.1The Merits of
of the Client Server.
Client/Server Computing.
3. Chapter-3
3.1-Client/server
architecture.
3.1.1-Types of network
architecture.
2.1.1.2The Demerits of
Client/Server Computing.
3.1.1.1-2-tier Client/Server
Architecture.
3.1.1.2-3-tier Client/Server
Architecture.
3.1.1.3-The Main differences
between 3-tier architecture And
2-tier architecture.
3.1.1.4-N-Tier Architecture.
3.1.2.1-Types.
3.1.2.2-Advantages.
3.1.2-Client model.
3.1.2.3-Disadvantages.
3.1.2.4-Types.
3.1.3-Server Model.
3.1.4-Disadvantages of
the Client Server
Architecture.
3.1.5-Client Server
Architecture Advantages.
Client/Server
Page 33