Title: ClientServer and Middleware
1Client/Server and Middleware
- Chapter 8
- MIS 3413 Advanced Data Base Concepts
- Dr. Segall
- Spring 2002
2Client/Server Environments
- Client/server environments use a local area
network (LAN) to support a network of personal
computers, each with its own storage, that are
also able to share common devices (such as hard
disks or printers) and software (such as a DBMS)
attached to the LAN. At least one PC is
designated as a file server, where the shared
database is stored.
3Client/Server Architectures
- The several client/server architectures that
have evolved can be distinguished by the
distribution of application logic components
across clients and servers. - There are 3 components of application logic
- 1. Presentation Logic
- 2. Processing Logic
- 3. Storage Logic
See Figure 8.1
4Application Logic Components
- Presentation Logic
- Concerned with input and output (I/O), this
component is responsible for formatting and
presenting data to the user (e.g., screen or
printer) and managing input from the user (e.g.,
keyboard or mouse)
5Application Logic Components
- Processing Logic
- Data processing logic
- data validation
- identification of processing errors
- Business rules logic
- those rules not coded at the DBMS level
- Data management logic
- identification of data necessary for processing
of transactions or queries
6Application Logic Components
- Storage Logic
- Responsible for data storage and retrieval from
the physical storage devices associated with the
application being used. (Activities of a DBMS
occur in this component.)
7Client/Server Architectures
- File Server Architecture
- Database Server Architecture
- Three-Tier or N-Tier Architecture
See next slides ?
8File Server Architecture
- The first of the client/server architectures that
were developed - The client (a PC, sometimes called a fat client)
handles the presentation logic, processing logic,
and much of the storage logic (that part
associated with a DBMS) - One or more file servers (devices that manage
file operations and are shared by each of the
client PCs attached to the LAN) act as additional
hard disks
9File Servers (contd)
- In a file server environment, each client PC is
authorized to use the DBMS when a database
application program runs on that PC. Thus, there
is one database but many concurrently running
copies of the DBMS, one on each of the active
PCs. The primary characteristic of file server
architecture is that all data manipulation is
performed at the client PCs, not at the file
server. The file server acts simply as a shared
storage device.
10Limitations of File Servers
- Considerable data movement is generated across
the network. (E.g., when a table is queried, the
entire table is transferred from the file server
to the client PC.) - Each client workstation must perform all
processing and devote memory to a full version of
the DBMS (and thus must be relatively powerful). - The DBMS copy in each PC must handle shared
database integrity and security.
11Database Server Architecture
- An improvement on file server architecture
- Sometimes called two-tier architecture
- The client is responsible for managing
presentation logic, data processing logic, and
business rules logic - The database server is responsible for database
storage, access, and processing - See next slide for schematic
12Database Server Architecture
13Database Server Terminology
- Back-end Functions - functions performed by the
central DBMS on the database server - Front-End Programs - the application programs
running on the client PCs - Stored Procedures - modules of code (e.g.,
proprietary SQL dialects) that imple-ment
application logic or a business rule that are
stored on the database server
14Database Server Advantages
- Only the database server requires processing
power adequate to handle the database (and it can
be tuned to optimize database-specific
processing) - Only selected data (e.g., the answers to queries)
are sent across the network, greatly reducing the
telecommunications traffic - User authorization and other security issues, and
data integrity checking and sharing is handled at
one location, the database server
15Limitations of Database Servers
- The writing of stored procedures to implement
application logic, because of the proprietary
nature of them, may reduce flexibility in
changing DBMSs. - Each client must still be loaded with all
application programs that will be used at that
location. - Upgrades to an application will require that each
client be upgraded separately.
16Three-Tier Architecture
- Includes another server layer in addition to the
client and database server layers already
described - The additional server in a three-tier
architec-ture may serve different purposes, but a
common use is as an application server - This application server will serve as a central
location for storage of application programs - See next slide for schematic
17Three-Tier Architecture
18Three-Tier Architecture
- Most application code is stored on the
application server rather than on client PCs (and
thus upgrades to applications need only be loaded
on the server, not each PC) - Resulting workstations are referred to as thin
clients PCs configured only for handling user
interface (e.g., Windows) and minimal application
processing (and often with limited or no local
data storage)
19N-Tier Advantages
- Scalability - greater ability to upgrade a system
without having to redesign it (e.g., can add
additional application servers as demands on
system grows) - Technological Flexibility - with most application
logic handled by the application server, the DBMS
can be changed more easily, it is easier to
interface with the Web
20N-Tier Advantages (contd)
- Lower Long-Term Costs - changes to the
applications in the middle tier can be made
faster and less expensively. Use of off the
shelf products is easier, and small chunks of
code can be written to address needs - Improved User Satisfaction - multiple interfaces
on different clients can access the same business
process
21N-Tier Challenges
- High Short-Term Costs - implementation costs
associated with programming necessary to convert
to this architecture - Tools and Training - the newness of this
tech-nology means that tools are not yet fully
developed and training programs are not yet
widely available - Experienced Personnel - few trained people
- Incompatible Standards - standards for some
components of this technology have not yet
evolved - Lack of End-User Tools that work with Middle-Tier
Services - problems with generic applications
such as spreadsheet programs (see middleware)
22Other Client/Server IssuesApplication
Partitioning
- Defined as The process of assigning portions of
application code to client or server partitions
after it is written, in order to achieve better
performance and interoperability (ability of a
component to function on different platforms). - Basically refers to the ability to optimize a
particular installations performance by placing
code where it will run the fastest (client or
server)
23Other Client/Server IssuesParallel Architectures
- Useful in environments characterized by high
transaction volumes, complex queries, and new
data types (e.g., video) - Supported by SQL since individual queries can be
split into parts which can then be run
simultaneously on multiple processors - Also, multiple queries can be run simul-taneously
on parallel processors
24Multiprocessor Hardware Architectures
- Symmetric Multiprocessing (SMP)A design
characterized by all processors sharing a common
memory and single copy of the operating system. - All processors share one copy of OS
- Fewer bottlenecks due to multiprocessing
- Improved performance because data stays in memory
during processing
25Multiprocessor Hardware Architectures
- Massively Parallel Processors (MPP)A design
characterized by all processors having their own
dedicated memory and copy of the operating
system. - Eliminates of memory contention
- Easy scalability (small increments possible)
26Things to Consider when using SMP or MPP
- Data Analysis Requirements
- Large Databases
- Complex Queries
- Large of Users
- Cost Justification
- Investment not cost savings (often complements
and does not replace) - Traditional Technologies
- Less Risky
27Middleware Terminology
- Middleware software which allows an application
to interoperate with other, otherwise
incompatible, software without requiring the user
to understand and code the low-level operations
necessary to achieve interoperability. - Synchronous (real-time)
- Asynchronous
28More Middleware Terminology
- Application Program Interface (API) sets of
routines that an application program uses to
direct the performance of procedures by the
computers operating system - Open Database Connectivity (ODBC) similar
definition to API, but refers to Windows-based
client/server applications used for accessing
relational database data
29More Middleware Terminology
- Common Object Request Broker Architecture
(CORBA) a specification for a standard,
universal, object-oriented middleware - Distributed Component Object Model (DCOM) a
competitor to CORBA developed and supported by
Microsoft
30Client/Server Security Issues
- Because networks are susceptible to breaches of
security (e.g., through electronic eavesdropping
and unauthorized connections), establishing
database security is more difficult in a
distributed environment than it is in a
centralized environ-ment. Security measures to
consider include - System-Level Security - user names passwords
required to access a multiuser client/server
system - Database-Level Security - user names passwords
required to access a particular database (2nd
layer) - Secure Client/Server Communication - use of
encryp-tion to transform readable data into
ciphertext
31Issues to Address Before Implementing
Client/Server
- Perform Accurate Business Problem Analysis(dont
force a problem to fit a particular technology) - Perform Detailed Architecture Analysis(make sure
existing components can work together) - Avoid Tool-Driven Architectures(again, define
problem first, then choose tools to use) - Consider Scalability Needs in Choosing
Architecture(e.g., two-tier may be easier to
implement for modest needs) - Determine Proper Placement of Services(seek best
balance of fat/thin servers and fat/thin clients) - Analyze Throughput of Networks(make sure that
existing networks can handle volume) - Plan for Hidden Costs(allow generous development
times anticipate training costs)
32Benefits of Moving to a Client/Server Architecture
- System functionality can usually be rolled out in
increments - speeds delivery - GUI interfaces on most systems are familiar and
welcome to end-users - Flexibility and scalability allows for pursuit of
business process re-engineering (BPR) - With proper design, can reduce network traffic
and improve response times - Facilitates Intranet/Internet applications
33Client/Server and Middleware