CLIENT/SERVER COMPUTING - Personal Home Pages (at UEL)

advertisement
CLIENT/SERVER COMPUTING
Client/Server computing divides a computer into three basic components: a
client, a server, and a network that connects the client to the server. You can think
of the network as the slash in the phrase client/server computing. The client and the
server are both computers with varying degrees of processing power, and both
share the computing workload necessary to get the job done.
Some examples of what client/server computing can do are:
1.) Create customized business applications that access data on mainframe
computers but are as easy to use as off- the- shelf PC applications, such as
word- processing and spreadsheet programs.
2.) Develop applications that tie together data stored in otherwise incompatible
computer systems- for example, a marketing system may access data stored
in the corporate mainframe in Chicago, the departmental minicomputer in
Cleveland, and the PC down the hall.
3.) Build a so- called Executive Informative System that summarizes the mass
quantity of information typically stored in mainframe computers and
presents it in a form that even the CEO can understand.
CLIENT/SERVER CHARACTERISTICS
1.) Service: Client/server is primarily a relationship between processes running
on separate machines. The server process is a provider of services. The
client is a consumer of services.
2.) Shared Resources: A server can service many clients at the same time and
regulate their access to shared resources.
3.) Asymmetrical protocols: There is a many- to-one relationship between
clients and servers. Clients always initiate the dialog by requesting a service.
Servers are passively awaiting requests from the clients. Note that 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 a
server.
4.) Mix- and- match: The ideal client/server software is independent of
hardware or operating system software platforms.
5.) 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 services calls, when needed. A program can be a
client, a server, or both.
6.) Message- based exchanges: Clients and servers are loosely coupled systems
that interact through a message- passing mechanism. The message is the
delivery mechanism for the service requests and replies.
7.) Encapsulation of services: 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 changed.
8.) Scalability: Client/server systems can be scaled horizontally or vertically.
Horizontal scaling means adding or remove client work stations 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.
9.) 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.
TYPES OF CLIENT/SERVER PACKAGES
1.) With a file server, the client passes requests for file records over a network
to the file server. This is a primitive form of data service that necessitates
many message exchanges over the network to find the requested data. File
servers are useful for sharing files across a network.
2.) DATABASE SERVERS: With a database server, the client passes
Structured Query Language (SQL) requests as messages to the database
server. The results of each SQL command are returned over the network.
The code that processes the SQL request and the data resides on the same
machine.
3.) TRANSACTION SERVERS: With a transaction server, the client invokes
remote procedures (or services) that reside on the server with an SQL
database engine. The remote procedures on the server execute a group of
SQL statements. The network exchange consists of a single request/reply
message (as opposed to the database server’s approach of one request/reply
message for each SQL statement in a transaction). The SQL statements
either all succeed or fail as a unit. These grouped SQL statements are called
transactions. With a transaction server, you create the client/server,
application by writing the code for both the client and server components.
The client component includes a Graphical User Interface (GUI). The server
component usually consists of SQL transactions against a database. These
applications are called Online Transaction Processing, or OLTP. They tend
to be mission- critical applications that require a 1-3 second response time
100% of the time.
4.) GROUPWARE SERVERS: Groupware addresses the management of semistructured information such as text, image, mail, bulletin boards, and the
flow of work. These client/server systems place people in direct contact
with other people. Lotus Notes and Microsoft Exchange are the leading
examples of such systems, although a number of other applicationsincluding document management, imaging, multiparty applications, and
workflow- are addressing some of the same needs.
5.) OBJECT APPLICATION SERVERS: With an object server, the
client/server application is written as a set of communicating objects. Client
objects communicate with server objects using an Object Request Broker
(ORB). The client invokes a method on a remote object. The ORB locates
an instance of that object server class, invokes the requested method, and
returns the results to the client object. Server objects must provide support
for concurrency and sharing.
6.) WEB APPLICATION SERVERS: The World Wide Web is the first truly
intergalactic client/server application. This new model of client/server
consists of thin, potable “universal” clients that talk to superfat servers. A
web server returns documents when clients ask for them by name. The
clients and servers communicate using an RPC- like protocol called HTTP.
CLIENT/SERVER COMPUTING:
INFORMATION FOR THE PEOPLE
Technically speaking, client/server is a model of computing, just as the hierarchical
mainframe is a model of computing. Models are abstract notions. A computer
running a multitasking operating system, such as unix or NT, could quite possibly
have a “client” and a “ server” residing on the same physical device.
In the late 1980s, networked PCs were armed with office productivity tools.
One thing that was missing was corporate data that was locked up on the
mainframe. Client/server proponents seek to tear down this barrier
Rather than just break through the walls of the glass house, there are some
people who think we should get rid of the mainframe and its style of computing
altogether. They are the downsizers. They ask, ”Now that we haveclient/server ,
why do we need mainframes?” This view is not only misguided, it can be
downright dangerous. Client/server and mainframe computing aren’t in contention.
Both have their place. Nothing is better than at processing information or keeping
data more secure than mainframe. Client/server excels at collaborative computing.
While it is by no means unusual for both to be a part of an organisation’s IT
infrastructure, we invariably draw comparisons between them, and realise some
rather surprising discoveries.
Mainframes are expensive and so is their software. Their hard ware too is
expensive. They need trained operators to attend to them constantly. They need airconditioned facilities to run in. Client/server, on the other hand, uses cheap PCs and
not very expensive RISC – or CISC – servers. Most people now contend that
client/server solutions are much more expensive than we thought- often even much
more costly than traditional mainframe implementations. Client/server is more
complicated than the types of solutions we have known in the past. Therefore
training is a big part of client/server’s hidden cost.
Developers, project leaders, designers, administrators and even end users need to be
educated and, in many cases, completely reskilled. Client/server’s added
complexity is further borne out by the alarming percentage of development projects
ending in failure. And few out of those that actually make it through development
end up saving money. Maintenance and ongoing technical support usually eat
heavily into any savings.
If client/server computing is so expensive, and risky why invest in it?
“Information for the people” is the answer. Organisations run on decisions. Giving
workers the information they nee – when they need it – in a manner that they can
readily use should help them to make faster and better decisions. This is a large part
of the motivation behind client/server computing.
There’s a third view of client/serves computing known as a “pass- through”
on our way to fully distributed computing. While client/server itself is a form of
distributed computing, its extend is limited. In the client/server model clients are
always clients and servers are always servers. A more flexible, and possibly more
efficient, scheme would allow those roles to change as the circumstances dictated.
This more distributed style of computing is known as peer-to-peer. Peer-to-peer
computing is realistically several years away; most people are not ready for it.
Download