Client/Server Architectures

Download Report

Transcript Client/Server Architectures

Enterprise Systems
MIS 181.9: Service Oriented
Architecture
2nd Semester, 2011-2012
Learning Objectives
► At
the end of this section, students should
be able to:
► Identify
the different components of enterprise
automation.
► Review
history of computers, focusing on the
development of enterprise systems.
► Review
the different architectures used for
enterprise systems.
Scope of Enterprise Automation
► Application
►
Automating business functions
►
Application development technologies
► Infrastructure
►
Hardware, network technologies
►
System software
► Architecture
►
Overall plan
Early Enterprise Systems: MAINFRAMES
► Powerful
computers
► Able to process several transactions at a
time
► CENTRALIZED
COMPUTING
Mainframe
An ICL 2966 Model
39, at the National
Museum Of
Computing, Bletchley
Park, UK
Terminal
Mainframe System Components
► Hardware
►
►
►
Vacuum tubes, magnetic drums, magnetic tapes
(1950s)
Transistors (1960s)
Large-scale integrated circuits (LSI) (1970s)
► Software
►
►
►
technologies
technologies
COBOL, FORTRAN programming languages
MVS, z/OS (operating systems)
CICS (transaction management), IMS (IBM Hierarchical
DB), RACF (security)
Where were Mainframes used?
► Used
in universities, airline companies, US
government agencies
► Research
► Department
► Weather
► First
of Defense
Bureau
computer used for business
► LEO
Payroll
Major Players in the
Mainframe Industry
► IBM
► Burroughs
► UNIVAC
► NCR
(National Cash Register)
► Honeywell
► RCA
► GE
(Radio Corporation of America)
(General Electric)
Personal Enterprise Systems?
► Personal
Computers were introduced in
1970s
► Smaller
computers
► Enough
power to perform simple applications
► Further
development in network
technologies
Client/Server System
►Leverages
on development of powerful
PCs and development of Network
technologies
►DISTRIBUTED
COMPUTING
Client/Server Systems
► Networked
computing model
► Processes distributed between clients and servers
► Client–Workstation (usually a PC) that requests
and uses a service
► Server–Computer (PC/mini/mainframe) that
provides a service
► For DBMS, server is a database server
Application Logic in C/S Systems
Presentation Logic

Input–keyboard/mouse

Output–monitor/printer
GUI Interface
Processing Logic

I/O processing

Business rules

Data management
Procedures, functions,
programs
Storage Logic

Data storage/retrieval
DBMS activities
Client/Server Architectures
► File
Server Architecture
Client does extensive
processing
► Database
Server Architecture
► Three-tier
Architecture
Client does little
processing
File Server Architecture
► All
processing is done at the PC that requested
the data
► Entire
files are transferred from the server to the
client for processing
FAT CLIENT
► Problems:
►
Huge amount of data transfer on the network
►
Each client must contain full DBMS
► Heavy
► Client
resource demand on clients
DBMSs must recognize shared locks,
integrity checks, etc.
Figure 9-2 File Server Architecture
FAT CLIENT
Two-Tier Database Server
Architectures
►Client
is responsible for
► I/O
processing logic
► Some business rules logic
►Server
performs all data storage and
access processing
 DBMS is only on server
Advantages of Two-Tier
Approach
► Clients
do not have to be as powerful
► Greatly reduces data traffic on the network
► Improved data integrity since it is all
processed centrally
► Stored procedures  DBMS code that
performs some business rules done on
server
Advantages of
Stored Procedures
►Compiled SQL statements
►Reduced network traffic
►Improved security
►Improved data integrity
►Thinner clients
Figure 9-3 Two-tier database server architecture
Thinner
clients
DBMS only
on server
Three-Tier Architectures
GUI interface
(I/O processing)
Browser
Application server
Business rules
Web Server
Database server
Data storage
DBMS
Client
Thin Client

PC just for user interface and a little application
processing. Limited or no data storage (sometimes no
hard drive)
Figure 9-4 Three-tier architecture
Thinnest
clients
Business rules
on separate
server
DBMS only on
DB server
Advantages of Three-Tier
Architectures
► Scalability
► Technological
► Long-term
► Better
flexibility
cost reduction
match of systems to business needs
► Improved
customer service
► Competitive
► Reduced
advantage
risk
Application Partitioning
► Placing
portions of the application code in
different locations (client vs. server) AFTER
it is written
► Advantages
► Improved
performance
► Improved
interoperability
► Balanced
workloads
Common Logic Distributions
Figure 9-5a Two-tier clientserver environment
Processing logic could be
at client, server, or both
Figure 9-5b n-tier clientserver environment
Processing logic
will be at
application server
or Web server
Middleware
► Software
that allows an application to
interoperate with other software
► No need for programmer/user to
understand internal processing
► Accomplished via Application Program
Interface (API)
The “glue” that holds client/server
applications together
Types of Middleware
►
Remote Procedure Calls (RPC)
►
►
Message-Oriented Middleware (MOM)
►
►
push technology  server sends information to client when
available
Object Request Broker (ORB)
►
►
Software needed to run programs written in different platforms
Publish/Subscribe
►
►
client makes calls to procedures running on remote computers
object-oriented management of communications between clients
and servers
SQL-oriented Data Access
►
middleware between applications and database servers
Database Middleware
► ODBC–Open
►
Database Connectivity
Most DB vendors support this
► OLE-DB
►
Microsoft enhancement of ODBC
► JDBC–Java
►
Database Connectivity
Special Java classes that allow Java
applications/applets to connect to databases
Approaches to Designing
Client/Server Architectures
► Distributed
Presentation
► Remote Presentation
► Remote Data Management
► Distributed Function
► Distributed Database
► Distributed Processing
Distributed Presentation
Freshen up delivery of existing server-based applications,
typically running on legacy mainframe computers, to
distributed clients using screen scrapper technology
Remote Presentation
All data presentation functions are on the client,
providing greater flexibility of presentation than the
distributed presentation option.
Remote Data Management
All software except data management is on client, this
is closest to the traditional client/server mode.
Distributed Function
Analysis functions are split between client and server, with all
presentation on client and all data management on server.
Requires coordination between analysis function on client
and server, making it difficult to develop and maintain.
Distributed Database
Client has all functionality, except that data storage and
management is shared between client and server. A distributed
database is unstable, and it is very difficult to ensure compatibility
and communication between client and server.
Distributed Processing
Combines distributed function and distributed database,
maximizing flexibility of analysis and data management
Web Systems
►
Another form of distributed systems
►
WAMP/XAMP provides one-time installation of a set of system
software needed to develop web-based systems. Each software
represents a tier in the distributed environment
►
Apache (Web Server software – Web Server)
►
MySQL (DBMS – DB Server)
►
PHP (Programming Language – Application Server)
►
Internet
►
Web Technologies
►
Businesses can use it internally (Intranet) or with clients
(Extranet)
Figure 10-1 Database-enabled intranet/internet
environment
Internet and Intranet Services
► Web
server
► Database-enabled services
► Directory, security, authentication
► E-mail
► File Transfer Protocol (FTP)
► Firewalls and proxy servers
► News or discussion groups
► Document search
► Load balancing and caching
The Enterprise System using
Web-based Architecture
► Intranets
► Extranets
► Software
as a Service
Intranets as Information Portals
Extranet Connectivity
Emerging Web Technologies
► Software
as a Service (SaaS)
► Used
to be known as Application Service
Providers (ASPs)
► Provider
licenses customers to use their
software as a service on demand
► Cloud
Computing