Title: ClientServer Computing
1Client/Server Computing
2Contents
- Welcome to Client/Server Computing
- What is client/server?
- Various client/server systems
- Fat servers or fat clients
- 2-tier versus 3-tier
- Client/Server Building Blocks
- A one-size-fits-all model
- Inside the building blocks
- Middleware
3Welcome to Client/Server Computing
4What Is Client/Server?(1/2)
- Client/Sever Computing
- The representative model of distributed computing
- Characteristics of Client/Server Systems
- Clean separation of services
- Server service provider
- Client service consumer
- Resources are shared by many clients
- Asymmetrical protocols
- Clients always initiate the dialog
- Servers are passively awaiting requests
5What Is Client/Server?(2/2)
- Transparency of server location
- Mix-and-match of HW or OS-independent SW
platforms - Message-based exchanges for client/server
interaction - Encapsulation of services
- Servers determine how to process clients
requests - Servers can be upgraded without affecting the
clients - Scalability
- Integrity by centrally managing the server code
and data
6Various Client/Server Systems (1/8)
- File Server
- A very primitive form of data service
- Require many message exchanges over the network
- Useful for sharing files across a network
7Various Client/Server Systems (2/8)
- DB Servers
- The client passes SQL requests to the DB server
- The server uses its own computing power to find
the requested data - Useful for data warehousing
8Various Client/Server Systems (3/8)
- Transaction Servers
- The client invokes servers remote procedures,
which execute a group of SQL statements - A single request/reply message (vs. one
request/reply message for each SQL statement in
DB server) - The client component includes a GUI
- The server component consists of SQL transactions
called OLTP - TP-Lite Based on the stored procedures provided
by DB vendors - TP-Heavy Based on the TP monitors provided by
OLTP vendors
OnLine Transaction Processing
9Various Client/Server Systems (4/8)
10Various Client/Server Systems (5/8)
- Groupware Servers
- Manage semi-structures information (e.g., text,
image, mail, bulletin boards, and the flow of
work), so that people can contact directly with
other people - The communication middleware is typically
vendor-specific - Recently, the Internet is becoming the middleware
platform as in Netscape and IBM/Lotus
11Various Client/Server Systems (6/8)
- Object Application Servers
- The client/server application is written as a set
of communication objects using an Object Request
Broker(ORB) - The client invokes a method on a remote object
- The ORB locates an object instance, invoke the
method and return the results - Server objects support concurrency and sharing
- The ORB and CORBA Application Servers
- Examples of commercial ORBs complying OMGs CORBA
standard Ionas Orbix, JavaSofts Java IDL,
BEAs ObjectBroker, IBMs SOM - CORBA application servers (Also called OTMs) like
BEAs M3 - DCOM
- Distributed Component Object Model(DCOM) by MS
- COM is the latest name for this technology
12Various Client/Server Systems (7/8)
13Various Client/Server Systems(8/8)
- Web Application Servers
- Augment standard HTTP servers with server-side
component frameworks - Functionally, very similar to object servers
14Fat Servers or Fat Clients?(1/2)
- Client/Server Application
- Can be differentiated by how the distributed
application is split between the client and the
server
15Fat Servers or Fat Clients?(2/2)
- Fat Client Applications
- The more traditional form of client/server
- The bulk of the application runs on the client
side - The clients know how the data is organized and
stored on the server side - Examples file server and database servers
- Fat Server Applications
- Most of the code runs on the servers
- Easier to manage and deploy on the network
- Minimize network interchanges by creating more
abstract levels of service by encapsulation - The client provides the GUI and interacts through
method invocation - Example groupware, transaction, and Web servers
162-tier versus 3-tier(1/7)
- 2-tier, 3-tier, and N-tier?
- The same basic idea with fat clients and fat
servers - All about how to split the client/server
application into functional units - The most typical functional units
- Presentation logic user interface
- Business(/Application) logic actual task
- Data logic shared data
- Many possible variations of multi-tier
architecture depending on - How to split the application
- The middleware to communicate between the tiers
172-tier versus 3-tier (2/7)
182-tier versus 3-tier (3/7)
- 2-tier
- Good for creating departmental applications
- Quick and simple application development with
visual builder tool - Example small-scale groupware, simple Web
publishing application - The business logic is embedded either inside the
user interface or within the DB on the server (or
both) - Intrinsic problems of 2-tier C/S
- Not scalable
- Unmanageable when being deployed beyond the
departmental LAN
2-tier hits a brick wall
192-tier versus 3-tier (4/7)
- 3-tier to the Rescue
- The business logic is in the middle-tier
- managed and deployed separately from the GUI and
the DB - Meet the requirements of large-scale Internet and
intranet client/server applications - Integrate data from multiple sources
- Easier to manage and deploy on the network
especially with Java applets and beans - Minimize network interchanges by creating
abstract levels of services - Provide better security by not exposing the DB
schema to the client
202-tier versus 3-tier (5/7)
- When Should We Use 3-tier?
2-tier and 3-tier compared (source GantnerGroup)
212-tier versus 3-tier(6/7)
- Should use 3-tier if an application has any of
following characteristics (according to
GatnerGroup) - Many application services or classes ( gt 50)
- Applications programmed in different languages or
written by different organizations - Two or more heterogeneous data sources
- An application life that is longer than 3 years
especially with many modifications or additions - A high-volume workload (transactions/day gt 50,000
or concurrent users on the same system accessing
the same DB gt 300 ) - Significant inter-application or inter-enterprise
communication like EDI
222-tier versus 3-tier(7/7)
- The Middle-tier in Most 3-tier Applications
- is not implemented as a monolithic program
- Instead, is implemented as a collection of
components - So, most of the time 3-tier is really N-tier
- Component
- Automates a relatively small business function
- Call other components to help it implement a
request - Clients frequently combine several middle-tier
components within a single business transaction - Some components may act as gateway that
encapsulate legacy applications running on
mainframe
23Client/Server Building Block
24A One-Size-Fits-All Model
- Client/Server Model Has a Wide Spectrum from the
Tiny to the Intergalactic - Three Basic Building Blocks of Client/Server
Model - Client
- Server
- Middleware
Server
Client
25Inside the Building Blocks(1/2)
- Inside the Client Building Block
- GUI, OOUI(Object Oriented UI)
- Thin clients require a Web browser to download
JavaBeans and applet on demand - The OS most often pass the non-local services to
the middleware building block - The client also runs a component of the
DSM(Distributed System Management) element - Inside the Server Building Block
- The five server platform
- SQL DB servers, TP monitors, groupware servers,
object servers, Web - The server also runs a DSM component
26Inside the Building Blocks(2/2)
- Inside the Middleware Building Block
- Run on both the client and server sides of an
application - 3 categories Transport stack, NOSs,
Service-specific MW
27Middleware(1/4)
- Definition
- All the distributed software needed to support
client/server interactions - The glue that lets a client obtain a service from
a server - Scope
- Start with the API set on the client side
- Cover the transmission of the request and the
resulting response - Does not include the software that provides the
actual service nor the database - Does not include the user interface
28Middleware(2/4)
- The Role of Middleware in N-tier World
- As a platform and pipes
- Pipes
- Provide the inter-component (and
inter-application) communication services - Example RPCs, MOMs, and ORBs
- Platforms
- The application servers that run the server-side
components - Used across multiple OSs to provide a unified
view of the distributed environment - Example TP Monitors, Object Transaction
Monitors, Web Application Servers
29Middleware (3/4)
- Types of pipes
- General pipes
- Include the communication stacks, distributed
directories, authentication services, network
time, RPCs, distributed file and print services - Commercial products DCE, TCP/IP, IPX/SPX,
NetBIOS - Service-specific pipes
- Provide a particular client/server type of
service - DB-specific middleware ODBC, JDBC, Oracle
SQLNet - OLTP-specific middleware Tuxedos ATMI,
X/Opens TxRPC, CORBAs OTS, MSs DTC and TIP - Groupware-specific middleware MAPI, SMTP, POP3,
IMAP, Lotus Notes calls
30Middleware (4/4)
- Object-specific middleware OMGs CORBA/IIOP,
MSs COM, and JavaSofts RMI-over-IIOP - Internet-specific middleware HTTP, CGI, XML
- System management-specific middleware SNMP,
CMIP, RMON, and ORBs