Documente Academic
Documente Profesional
Documente Cultură
UNIT –I
CLIENT/SERVER COMPUTING
Client
Middleware
Server
SERVER
MIDDLEWARE
CLIENT
DB
1.Client Process:
The process which makes requests to the server for a particular service is called as the
Client process.
2.Middleware:
Middleware is a software that coordinates the communication between the client and
the server.
3.Server Process:
The process which provides the service requested y the client process is called as
Server process.
This building block implements client, middleware and most of the business services
on the same machine as depicted in figure 1.2.
Suggested for one person shops, home offices and mobile users.
Vendors can easily package single user versions of a Client/Server application.
The operating system used must be robust enough to run both client and server sides
of the application.
DB
CLIENT MIDDLE SERVER
WARE
This building block implements client/single server with the help of classic Ethernet
as in figure 1.3.
It is used in small shops, branch offices and departments.
This is well suited for LAN-based single server establishments.
This implementation account around 80% of today’s client/server application.
There are no complex interactions between servers so it is easy to identify failures.
CLIENT
MIDDLE
SERVER
CLIENT DB
CLIENT
This building block implements multiple server which are connected through internet
as in figure 1.4.
Though the servers are present throughout the enterprise, they present a single system
image to the client.
Intergalactic Client/Server implementation is upwardly scalable, ie) when more
processing power is needed, more number of servers can be added or existing server
machine can be upgraded to latest generation server.
The servers may be partitioned based on the function they provide, the resource they
control or the database they own.
Replication of server is done to achieve fault tolerance or to boost an applications
performance.
MIDDLEWARE
CLIENT
SERVERS
This implementation transforms every machine in the world into both a client and a
server.
Every machine is both a client and a full function server. We call this plentiful
environment as the post-scarcity world.
The client building block runs the client side of the application.
The client application runs on an Operating system.
The operating system provides two types of interfaces,
Graphical User Interface (GUI)
Object Oriented User Interface (OOUI)
These interfaces helps in accessing the distributed services which are present in the
Network.
The client also runs a component of Distributed system management (DSM) element.
This DSM may be a simple agent on pc or a front-end of the DSM application.
Client object communicates with server object using an ORB. It is used to locate the
instance of the server class.
It is a type of Network stack. In this Network layer is provided by Ipx and transport
layer is provided by spx reliable and connection oriented protocol.
NETBIOS:
Net BIOs is for program to program communication. It was introduced by IBM
and Sytek in 1984. It is used as an interface to variety of stacks including TCP/IP, XNS,
IPX/SPX.
SNA:
SNA-> SYSTEM NETWORK ARCHITECTURE.
SNA is a product of IBM. It supports cross Network directory services, Integrated Network
management.
1. File servers
2. Database servers
3. Transactions servers
4. Groupware servers
5. Object servers
6. Web servers
A File server is a computer attached to a network that has the primary purpose of
providing shared storage of computer files (such as documents, sound files,
photographs, movies, images, databases, etc.) that can be accessed by the
workstations that are attached to the same computer network as in figure 1.7.
File servers may also be categorized by the method of access: Internet file servers are
frequently accessed by File Transfer Protocol (FTP) or by HTTP
Function The client passes request for file records to the file server.
Type of Messages
Communication
Advantage Sharing files over a Network.
Application Shared message exchanges.
Entire file records are sent to client instead of a single file.
Disadvantage Many message exchanges.
Entire file records are sent to client instead of a single file.
Sql commands
client
transactions
client
client DB TP Monitor
It allows users to work jointly, in spite of place, through Internet or a mutual Intranet
and to work together in a near environment as in figure 1.10.
client
Groupware
client DB
servers
ORB locates
INSTANCE OF
result THAT OBJECT
Function The world wide web is the first truly intergalactic Client/Server
Application.
Types of HTTP over TCP/IP.
communication
Working A web server returns documents when the clients ask for them by name.
Application Web provides more interactive forms of client/server computing. Web
and Distributed objects have started to come together. Eg: Java.
Html
forms
INTERNET HTTP
server
OVER TCP/IP
java
Html
documents
1.4.1 CLIENTS:
NON-GUI
GUI
OOUI
Client
LAN
server
database
OOUI Client
1.4.2 NON-GUI:
NON-GUI clients generate server requests with less amount of human interaction.
Two categories of Non-GUI clients are
Non-GUI that do not need multitasking.
Non-GUI that need multitasking.
Non-GUI that do not need Multitasking:-
Provides simple human interface in the request generation loop.
Examples are automatic teller machine (ATM), barcode readers, cellular phones.
Machines, smart gas pumps and intelligent clip boards.
Non-GUI that need multitasking:-
These clients require very granular, real-time, event-driven multitasking services.
Example are robots, testers and daemon programs.
OOUI’s desktop objects must communicate with themselves and also with external
servers.
The desktop contains multiple workplaces running concurrently. Each workplace
may be running parallel dialogs.
Information is displayed to the user in the foreground windows, while background
tasks are constantly moving information to and from servers. (Eg:- playing a
multimedia document).
Example:
OSI2 workplace shell
Nextstep
Mac Os.
1.4.5 Application:-
Decision support applications.
Multimedia based training systems.
Stockbroker workstations.
System management consoles.
1.5.1 DCE
DCE is a combined set of services that supports the development of distributed
applications. Including Client/Server.
DCE is independent of operating system & network so it is easily compatible with
user’s existing environment.
DCE is a layered approach. Starting with operating system in bottom to high-level
applications at the top.
Provides various services such as Naming or directory services , Time services
,Security services, Distributed file services, Pc integration services.
1.5.2 MOM
MOM operates on the principle of Message passing and message queuing.
MOM operates on peer-to-peer distributed computing model supporting both
synchronous and asynchronous interactions.
MOM provides high-level services multi protocol support and other system
management services.
One of the key attributes of middleware is that is should provide seamless integration
between different environments.
When a client issues request for a service such as a database search, it does not talk
directly to that service; it talks to middleware.
Talking to the middleware usually involves placing the message on a queue where it
will be picked up by the appropriate service when the service is available.
MOM ensures that messages get to their destinations and receive a response.
The queuing mechanism used can be very flexible either offering First-in First-out or
priority assigned message.
MOM software can also include system management functions such as network
integrity and disaster recovery.
1.5.4.2 DCOM
Microsoft developed the Component Object Model(COM) to support local
component.
Later this was extended to support distributed invocations,resulting in
DCOM(Distributed Component Object Model)
1.5.5 TP MONITORS
TP monitors handles online transactions, which gave rise to online transaction
processing which became to part of business systems today.
Transaction processing systems pass messages between programs. They operate, store
& forward queues and they send acknowledgements.
A transaction is defined as an atomic unit of work that possesses four properties
namely atomicity, consistency, isolation & durability(ACID PROPERTIES).
Atomicity
Atomicity requires that each transaction is "all or nothing": if one part of the
transaction fails, the entire transaction fails, and the database state is left unchanged. An
atomic system must guarantee atomicity in each and every situation, including power failures,
errors, and crashes.
Consistency
The consistency property ensures that any transaction will bring the database from
one valid state to another. Any data written to the database must be valid according to all
defined rules, including but not limited to constraints, cascades, triggers, and any
combination thereof.
This does not guarantee correctness of the transaction in all ways the application
programmer might have wanted (that is the responsibility of application-level code) but
merely that any programming errors do not violate any defined rules.
Isolation
Isolation requires that multiple transactions occurring at the same time not impact
each other’s execution.
For example, if Joe issues a transaction against a database at the same time that Mary
issues a different transaction, both transactions should operate on the database in an isolated
manner. The database should either perform Joe’s entire transaction before executing Mary’s
or vice-versa. This prevents Joe’s transaction from reading intermediate data produced as a
side effect of part of Mary’s transaction that will not eventually be committed to the database.
Durability
Durability means that once a transaction has been committed, it will remain so, even in
the event of power loss, crashes, or errors. In a relational database, for instance, once a group
of SQL statements execute, the results need to be stored permanently (even if the database
crashes immediately thereafter).
To defend against power loss, transactions (or their effects) must be recorded in a non-
volatile memory.
TP monitors have advanced error trapping procedures and recovery features in the
event of a breakdown.
1.5.6 ODBC
ODBC is Microsofy ’s interfaces for accessing data in a distributed environment made
up of relational and non-relational DBMSS.
1.7 SIZING
As client/server technology evolves, there is a need for designing application for the
platforms they are best suited for, instead of a default placement.
An application should run in the environment that is most efficient for that
application.
Client/server model allows applications to split into tasks and perform these tasks on
individual platforms.
Determining how the tasks are split can be the major factor in the success or failure of
a client/server application.
Downsizing
Upsizing
Smartsizing
Downsizing:
A host based application is down sized when it is reengineered to run in a smaller or
LAN based environment.
Upsizing:
Applications that have outgrown their environment are reengineered to run in a larger
environment.
Smartsizing:
It affects the entire organizational structure and involves reengineering and redesigning
systems that support the process.
1.7.1 DOWNSIZING:
Downsizing involves porting applications from mainframe and midrange computers
to a smaller platform or LAN-based client/server applications.
One potential benefit of downsizing is lowered costs. As technology improves, the
costs of LAN servers and micros continues to drop.
Mainframe computers require special rooms, operators and system programmers,
whereas micros can sit on a disk. Micro computers can easily cooperate with existing
LAN environment
Other potential benefits are
Improved response time
Decreased system development time
Increased flexibility
Greater control
Implementation of changes in workflow.
1.7.2 UPSIZING:
Companies are downsizing from mainframes to LAN-based systems.
At the same time, they are planning for the future by ensuring that these new systems
are expandable.
When an application outgrows the current environment, the capacity of the
environment should be increased.
Otherwise, the applications should be ported to a larger environment with no
disruption to users.
Ways of expansions:
Increasing memory and storage on server.
Swapping a more powerful processor into the server.
Adding more processors to the server.
Upgrading to a more robust network software.
1.7.3 SMARTSIZING:
Smartsizing is based on reengineering the business processes.
The application code is streamlined.
Information technology is implemented to make the business processes more efficient
and increase profits.
Smartsizing helps in developing the products and bringing it to the market faster.
1.8 SCALABILITY
The number of servers in a client/server application depends on the type of services
required by the clients.
It starts with a single pc server to super servers populated with microprocessors.
Servers of required power is not enough means client/server model allows the
partition of work among different servers.
The client/server model is upwardly scalable. When more processing power is
needed, more number of servers can be added.
The existing server can b traded up to the latest generation of superserver.
Horizontal scalability
Vertical scalability
Increasing the number of clients in the LAN when the application needs extension is
called as Horizontal scalability.
Upgrading the server or including more number of servers to improve the processing
power is called as Vertical scalability.
Client/Server architecture consists of clients and servers. There are three architectures
in client/server model.
One-tier architecture
Two tier architecture
Three-tier architecture
Client
Client Program
GUI
Data request
DB Request
File Access Routines Data Response
Database
Client workstation Management
Client Program System
GUI Database
server
DB Request Data request
Considerations:
Client program accesses the database directly.
Requires a code change to port to a different database.
Potential bottleneck (difficulty) is faced for every data requiests.
High volume of traffic in the network due to data shipping.
Client program executes the application logic.
Limited by the processing capability of the client workstation (memory, cpu)
Required application code to be distributed to each client workstation.
Client Workstation:
Client workstation contains a client program that runs on an operating system.
A GUI is present to get request from the client and pass it on to the server.
File access routines helps in accessing the database file present in the server.
Server Machine:
Server consists of database files and a database management scheme to handle the
requests from the client.
Advantages:
Development issues:
Simple structure
Easy to setup and maintain.
Performance:
Business logic and DB are physically close which gives higher performance.
Disadvantage:
Development issues:
Difficult to implement database server due to complex applications.
Requires more code for the client.
Changes in business logic requires new client side software to be distributed and
installed.
Performance:
Database is required to perform business logic, this slows down database
operations.
This involves one more layer called the business logic tier, service tier or middle tier
(layer). In the client-server solution the client was handling the business logic and that makes
the client “thick”. A thick client means that it requires heavy traffic with the server, thus
making it difficult to use over slower network connections like Internet and Wireless (LTE,
3G, or Wi-Fi).
By introducing the middle layer, the client is only handling presentation logic. This
means that only little communication is needed between the client and the middle tier making
the client “thin” or “thinner”. An example of a thin client is an Internet browser that allows
you to see and provide information fast and almost with no delay.
As more users access the system a three-tier solution is more scalable than the other
solutions because you can add as many middle tiers (running on each own server) as needed
to ensure good performance (N-tier or multiple-tier).
Considerations:
Client program contains presentation logic only.
Less number of resources needed for the client.
Modification of client code is not needed, when the database location changes.
Less code is distributed to client workstations.
More secure
Disadvantage:
Development:
More complex structure.
More difficult to setup and maintain.
Client Server
Presentation(Screen scraping or Terminal Emulation) (Program logic Data)
Fig.1.20 Distributed presentation between client and server
Distributed presentation means both the client and server machine can format the
display presented to the user.
The client intercepts the output from the server and reroutes the output through its
own processes before presenting it to the user.
“terminal Emulations” is used to give pc users the ability to log on and direct access
the mainframe system.
Users can locally with windows and also open a window and work directly with
mainframe applications.
However, terminal emulation provides application interface that is text-only rather
than graphical user interface (GUI) is windows.
Screen scraping is an advanced form of terminal emulation, which helps in hiding the
mainframe screen from the user.
Client Server
Some Program Logic (Validation, for example) (Some Program Logic Data )
Fig.1.21 Remote presentation between client and server
In some cases, it is necessary to move some application’s program logic from host
computer to a small pc.
Remote presentation is useful when moving from a dumb terminal environment to a
pc in a LAN based environment.
A dumb terminal is used to give input to and receive output from server.
The dumb terminal consists of a keyboard and a monitor only, without no processing
power ie) no processor is present in dumb terminal.
Client Server
(Presentation & Program logic) (Program logic data)
Fig.1.22 distributed logic between client and server
Client Server
(Presentation ,All Program Logic) (Data Logic)
Fig.1.23 Accessing Remote data in client and server environment
In remote data, client handles presentation and all the application logic.
Server provides only the data. Since the server is present somewhere in the network,
this model is called as Remote Data.
Client uses Remote SQL or ODBC (Open Database Connectivity) to access the data
stored on the Remote server.
Application use this Remote data model most widely today.
In distributed data model, the data is being distributed across multiple networked
systems.
This model requires an advanced data management scheme, since the data has been
distributed across multiple servers. A DBMS scheme is needed for the efficient
retrieval of data.
This DBMS scheme enforces the ACID property namely atomicity, concurrency,
isolation and model to implement.
It requires a great deal of planning and decision-making skills to implement.
A distributed object is similar to object in the object oriented language such as c++,
small talk etc.
A distributed object must support all of the properties that can an object of object
oriented language supports.
Encapsulation
Polymorphism
Inheritance
Object reuse.
Distributed object must present itself across heterogeneous platforms to remote users
in methods irrespective of the platform.
Data and business logic are encapsulated within the distributed objects.
Examples are:
CORBA (Common object Request Broker Agent)
COM (Component Object Model).
From the introduction of distributed objects, it became easy to build complex
client/server systems by simply assembling and extending reusable software
components.
Any distributed object can be modified or replaced without affecting the rest of the
components in the system.
The components may be shipped as collections of class libraries preassembled in
frameworks.
All the together to perform a specific task.
Distributed object promise to provide the ultimate in mix-and-match capabilities.
FRAMEWORK
1.13.2 INTEROPERABILITY:
ORB
NETWORK 1 NETWORK 2
1.13.3 PROTABILITY:
Distributed objects can run on different platforms such as OS/2, MAC, UNIX etc.,
OBJECTS
OS / 2 LINUX MAC
1.13.4 COEXISTENCE:
Distributed objects can coexist with legacy applications such as DBMS, TP monitors
etc.as like figure 1.28,
The distributed objects are covered with “object wrappers” that makes the distributed
objects easily to coexist with the already existing applications.
DBMS
TP MONITORS
APPLICATIONS
OBJECTS
OBJECTS
APPLICATIONS
Complexity
It involves the construction of a number of interacting elements and often these
communicate asynchronously – making exhaustive testing almost impossible. The size of
most distributed component systems means that multiple developers are involved in their
construction, again this increases the complexity of the process, as the developers must keep
up to date with all changes to interfaces and behaviours in the system.
The resulting application will be less complex to test because of the high
reliability of the pre-tested components.
Marketing people
Marketing people will assemble applications targeting specific markets.
Instead of selling large monolithic applications they will be able to provide
their customerswith what they really need.
TWO MARKS
1. Client
2. Middleware
3. Server
4) List out the types of clients and servers.
Types of Servers are:
a) File sever b) Database server c) Transaction server d) Groupware server f) Web server
Document Management
Imaging
Multiparty applications
6) Define Middleware.
Middleware is the “glue” that holds client/server applications together. It is the software
which allows an application to interoperate with other software, without requiring the
user to understand and code the low-level operations required to achieve interoperability.
A Client PC
Application Server
Database Server
Increasing the number of servers in order to provide the required service is called as
Scalability. The Client/Server model is upwardly scalable; when more processing power
is needed more number of servers can be added. Two types of Scalability are:
Horizontal Scalability
Vertical Scalability
Distributed objects can present itself across heterogeneous platforms to remote users in
such a way that the users may invoke the methods irrespective of the platform. Data and
business logic are encapsulated within the distributed object. Eg: CORBA , COM.
and data.
Classical objects provide reuse Distributed objects support all the
through inheritance and properties of object oriented
encapsulation. language.
Interface Definition Language (IDL) is a standard language for defining function and
method interfaces for distributed or component-based applications. It enables
interoperability and connectivity with heterogeneous objects. IDL works by enabling
distributed Web applications that transparently invoke operations on remote network
services.