|
Chapter 2: Research
|
<< Page
1
2 >> |
2.1.
Client/Server Model
2.1.1.
Definition
Client/Server model describes the
communication between computing processes that
act as service providers, also known as servers,
and service consumers, known as clients.
Clients and servers are functional
modules that are implemented by a set of
software modules, hardware components, or a
combination of both. They may run on the same
machine as well as on separate machines. In the
case of the latter, they form a distributed
client/server system.
The communication between the two
modules is established as the client module
initiates a service request (SR) to the server
module. However, once the communication is
established, the two modules cannot reverse
roles (i.e. the client remains as the client
module, and in turn, the server remains as the
server module). In addition, a server can become
a client for another server.
[1]
Figure 2.1: Conceptual
client/server model.
Client/server model provides an
extremely crucial feature as information is
placed into messages and then exchanged between
clients and servers, i.e. no global variables.
Typically, messages are exchanged in an
interactive manner between online processes;
real-time message exchange.
2.1.2.
Client/Server Infrastructures
Client/server architecture can be
implemented in various means depending on the
scope and complexity of the system. Generally,
client/server systems can be built upon two
kinds of infrastructures: two-tier architecture
and three-tier architecture. Both architectures
are described below:
[5]
2.1.2.1.
Two-Tier Client/Server
Architecture
In the early 80’s, file sharing
systems were one of the primary systems that are
used for computer communication. However, due to
their drawbacks, it was essential to develop an
alternative solution to overcome the
disadvantages of file sharing and to direct the
tend towards Graphical User Interfaces (GUIs);
hence, the two-tier approach on client/server
architecture was adopted.
The two-tier architecture
contains two primary modules: service consumer
(client module) and service provider (server
module).
[13]
Figure 2.2: Two-tier
client/server system.
2.1.2.1.1.
Modules
As discussed earlier,
client/server systems consist of two primary
modules: the client module and the server
module. The two modules are discussed in more
details as follows:
2.1.2.1.1.1.
Client Module
The client module is primarily a
consumer of the services provided by server(s).
It is the front-end of the client/server
application that users use and interact with,
thus, it almost always provides presentation
services. This portion of the application
usually manages the user-interface, validates
data entered by the user, dispatches requests to
the server, and sometimes executes some logic.
It also manages the local resources that the
user interacts with, i.e. keyboard, monitor,
workstation CPU, and peripherals.
2.1.2.1.1.2.
Server Module
A server module is the process
(program) that fulfills clients’ requests as it
performs the tasks requested. Thus, it is
primarily a provider of the services requested
by clients. Generally, it receives requests from
the client module, executes the required tasks,
manages data integrity, and dispatches responses
to clients’ requests. It acts as a software
engine that manages shared resources such as
communication links, hardware devices (i.e.
printers), and databases.
It is worth mentioning that a
server is an architectural concept and not a
physical implementation description; it focuses
primarily on the applications rather than the
hardware. Thus, in client/server model, clients
and servers functions can be provided by the
same physical device.
2.1.2.1.2.
Limitation of the Two-Tier
Systems
– Since the application logic of a
two-tier system is distributed amongst the
client and server applications, two-tier
architecture best suites homogonous-static
environments where constant updates do not
exist.
– The two-tier architecture may
lead to limit the security level that is
required as it requires complex modules to
handle security issues.
2.1.2.2.
Three-Tier Client/Server
Architecture
Due to the limitation of the
two-tier architecture, the tree-tier approach
was developed to overcome the drawbacks of its
successor by introducing a middle logical layer
that may be located on a separate machine to
reside between client and server modules.
The tree-tier architecture
contains tree module: presentation tier (client
module), functionality tier (agent), and data
tier (server module), as shown in figure 2.3.
Figure 2.3: Three-tier
client/server system.
2.1.2.2.1.
Pros and Cons of the Three-Tier
Systems
+
Modular applications: as three-tier
systems deploy the application logic on several
machines, three-tier architecture provides a
better scalability.
+
Security: due to its ability to implement
security on multiple levels, three-tier
architecture minimizes the possibility of
accessing unauthorised data.
+
Data integrity: since all databases
updates are forwarded by the middle layer,
invalid/corrupted data can be prevented from
updating the database; hence, removing the risk
of data corruption.
+
Distribution: since most of the system
logic is implemented on the middle layer, the
constant updates of the system can be
implemented on one place; hence, reduce
distribution effort.
+
Transparency: since the database is
hidden from clients of the system, potential
improvements on the database is performed
transparently to clients.
– Network traffic management:
the tree-tier architecture may result to
overload network traffic; hence, increases the
need of network traffic management.
2.1.3.
Middleware and Connectivity
Connectivity is the ability to
enable processes (programs) to communicate and
interact with each other transparently, with no
regard to their physical location, across a
network. However, middleware is a set of common
un-aware services that provides connectivity
between end-users and server processes; it
simplifies the development of a distributed
computer system by eliminating the confusion
caused from heterogeneous operating systems,
communication protocols, implementation
languages, and hardware platforms.
[11]
The services of middleware are
provided for applications through Application
Programming Interfaces (APIs) and for users
through commands or Graphical User Interfaces
(GUI). In essence, middleware is the software
that resides above the network and below the
application software as shown in the figure 2.4.
Figure 2.4: Middleware.
The key element of connectivity
is the Network Operating System (NOS), which
relies on communication protocols to provide
specific services. These protocols can be
classified into the following three groups as
follows:
2.1.3.1.
Media Protocols
The media protocols define the
physical connections between computing devices
on a network to communicate. Examples of the
evolving network communication technologies are
Ethernet, Token Ring, Fiber Distributed Data
Interface (FDDI), Asynchronous Transfer Mode
(ATM), coaxial, and twisted-pair.
2.1.3.2.
Transport Protocols
The transport protocols provide
the mechanism to exchange packets of data
between clients and servers. As the available
network architectures differ, network
architecture standards are required to
interconnect networks from different vendors
with different capabilities to exchange
information between interconnected computers.
The Open System Interconnection (OSI) reference
model specifies standers that provide the
ability to interconnect different network
architectures by casting needed functions in
terms of seven layers, as shown in figure 2.5.
Figure 2.5: The OSI reference
model.
Examples of other network
architectures are Transmission Control Protocol
/ Internet Protocol (TCP/IP), Government Open
Systems Interconnection Profile (GOSIP),
Novell’s IPX/SPX.
2.1.3.2.1.
Transmission Control
Protocol/Internet Protocol
The Transmission Control
Protocol/Internet Protocol, known as TCP/IP, is
a family of protocols developed to allow
cooperating computer systems within a network to
share resources amongst each other. This family
of communication protocols is a WAN protocol
suit that uses packet switching as a method of
communication. It takes its name from its two
key protocols: the Transmission Control Protocol
and the Internet Protocol.
It is most commonly used as the
protocol suite for the Internet, which is the
global system of many LANs and packet switched
networks connected together, to allow
internetworking. The Internet is a huge
collection of networks that differ in their
architectures, including NSFnet, NYsernet, LANs,
Arpanet, and some military networks. All of
these networks are connected to each other to
form the universal ‘Internet’. In addition, they
enable their users to send messages amongst each
other, except where there is security or other
policy restriction on access.
The TCP/IP protocol was
originally defined by the US Department of
Defense (DoD) in the late 1960s. The main
purpose of this definition was to ensure that
connections will remain intact as along as the
source and destination machines were
functioning, even if some of the machines or the
transmission lines in between were suddenly put
out of operation. In other words, a flexible
architecture was essential as applications with
divergent requirements were envisioned, ranging
from transferring files to real-time speech
transmission. However, the standard TCP/IP was
implemented by the University of California at
Berkeley and it was released in 1983.
2.1.3.2.1.1.
The TCP/IP Model
The TCP/IP suit is a layered set
of protocols; a protocol suit that is built on
several levels of protocols, each of which is
called a layer, that interact in some sequential
and hierarchical way, with each layer having an
interface to the layer above it and another one
to the layer below it, as shown in figure 2.6.
[4]
Figure 2.6: TCP/IP protocol suite
layers.
o
Application Layer
The application layer provides a
set of programs, each of which offers a
particular network service, e.g. SMTP, Telnet,
FTP, SNMP, and Ping.
o
Transport Layer
The transport layer contains two
protocols: TCP and UDP. TCP provides a virtual
circuit service. It takes a stream of data from
an application layer protocol and performs the
following operations:
Ž
Segments the data to make a TCP
Protocol Data Unit with TCP header and
application data.
Ž
Sends each packet using IP
Ž
Reassembles the application data.
However, since TCP uses the
services provided by IP, TCP must compensate by
ensuring that lost packets are retransmitted and
by re-sequencing IP packets if necessary.
o
Network Layer
The network layer contains low
level protocols, such as IP along with other
associated protocols. IP provides a best effort
but unreliable datagram service; hence, no
guarantee of delivery. Since it provides
datagram services, packets may be delivered out
of sequence. Furthermore, the network layer is
concerned with for packets routing. Thus, it
contains routing protocols, such as RIP, OSPF,
and EGP.
o
Link Layer
The lowest layer, link layer, is
concerned with the actual transmission of
packets as well as IP to Ethernet address
translation.
2.1.3.2.2.
Real-Time Transfer Protocol
Real-Time Transfer Protocol, RTP,
is used to transmit
digitised
real-time data, such as audio and video, over
the Internet. RTP provides two main facilities:
a sequence number in each packet for out of
order or loss detection and a timestamp field
for the receiver to control playback. The other
important feature of RTP is its ability to
receive streams of data from multiple sources,
combine them into a single stream, and send it
as one. Such a feature is considered to be
important for real-time applications such as
audio conferencing over IP. Further more, RTP
runs over UDP as RTP packets are encapsulated in
a UDP datagram providing concurrency. See figure
2.7.
Figure 2.7: RTP architecture.
RTP Control Protocol, RTCP, is a
companion protocol runs with RTP in order to
enable senders and receivers to exchange reports
that include information about the data being
transferred and the performance of the network.
2.1.3.3.
Client/Server Protocols
Client/server protocols
(middleware) determine the manner in which
clients requests are sent to server(s), and on
the other hand, how server(s) replies are send
back to clients. It also provides additional
functionality for applications such as security,
compression/decompression, and failure handling.
Two types of middleware can be viewed in terms
of client middleware that resides on the client
platform and server middleware that resides on
the server platform.
TCP/IP Sockets, Named Pipes,
Remote Procedure Call (RPC), Advanced
Program-to-Program Communication (APPC), and
NetBIOS are examples of client/server protocols.
2.1.4.
Pros and Cons of Client/Server
Computing
+
Enhanced data sharing: this is achieved
as data is collected and maintained by the
server, and at the same time, it is available
for clients to access; allow more users to share
data simultaneously.
+
Integrated services: client/server model
makes it possible to integrate multiple services
into a single application that is available for
clients to use. Thus, it elements the need to
change terminals or even log into another
processor to access information as all
authorized information and processes are
directly available through a single application.
+
Transparency: client/server application
provides the ability to hide all the
implementation issues from clients such as
failures, data replication, data processing,
etc. In addition, it enables clients to
communicate and exchange information with no
concern to the physical location of the computer
systems (local or remote).
+
Security: client/server model support
various security issues such as authentication,
authorization, data protection, privacy, and
encryption.
+
Modular applications: it also supports
modular applications (so-called two-tier and
three-tier) where the software application is
separated into modular pieces, and each piece is
installed on hardware specialized for that
subsystem.
– System management:
it is hard to keep the configuration information
up-to-date with distributed applications across
the network, i.e. upgrading to newer versions of
the client/server application can be challenging
to synchronize or stage appropriately.
–
Network reliability:
client/server model rely heavily on the network
reliability.
<< Page
1
2 >>
|