Lecture 10
TIM 50 Autumn 2012
Thursday October 30, 2012
Chapter5 : Client – Server
Computing
Announcement
As TIM50Class eCommons now works, Students should submit business proposal and DB assignment 1 on eCommons. For details refer do class webpage.
3. The Mid-Term on November 1, Thursday
4. The grades for every assignment will be given in eCommons.
5. It's important to check webpage to get the latest information and assignments changes.
6. Business paper group released.
Submit your business proposal through e-Common
Business Information Systems
Computer System
Architecture, Functions
Network Computing
Architectures
Data Processing through
Network Systems
Information Technology
H/W S/W Binary System Data FormatsBoolean Logic, Gate Machine Language Hi-level Language Operating System
Window, Mac, Linux
ALU Memory RAM, ROM Mag/Flash/USB I/O Data Bus
Clock Pulse, Speed
Review
Data representation Data Copy Data Transfer Data communications Protocols Peer to peer Same Potential/Fn Client Server Functional Asymmetry ATM, Internet terminal M-phoneClient, Server, Data Server Middle Ware
Contents are re-edited using materials
from Internet Sites
Von Neumann and Harvard Architectures
PIXEL
•
Pixel is a smallest component of digital
image
•
Pixel is a color point of digital image
•
An image should be comprised of many
Pixels.
RESOLUTION
•
How quality of image
•
With the same size of picture
–
If high resolution, high memory is required
to store data
–
If low resolution, less memory is required to
store data
RESOLUTION by pixel
72 18 36 9 9 18 36 72Basic Computer Systems
1 byte = 8 bit
1 word = 4 byte = 32 bit Machine 8 byte = 64 bit Machine
CE06_PP09-18
Connection Device Signals
•
Types of signals
–
Analog
–
Digital
Analog Signals
Analog signals – directly measurable
quantities in terms of some other
quantity
Examples:
•
Thermometer – mercury height rises as
temperature rises
•
Car Speedometer – Needle moves
farther right as you accelerate
•
Stereo – Volume increases as you turn
the knob.
Digital Signals
Digital Signals – have only two states. For
digital computers, we refer to binary
states, 0 and 1. “1” can be on, “0” can be
off.
Examples:
•
Light switch can be either on or off
21
Sampling Rate
Frequency at which ADC evaluates analog signal. As
we see in the second picture, evaluating the signal
more often more accurately depicts the ADC signal.
ADC: Analog to Digital ConverterLevels of Computer Functions Abstraction
Application Libraries Operating System Programming Language Assembler Language Graphical Interface Processor IO System Logic DesignDatapath and Control
Circuit Design Semiconductors
Materials Firmware
Circuits and devices Fabrication Digital Design Computer Design Application Programming System Programming Microprogramming Instruction Set Architecture - “Machine Language”
S/W
Computer
System
DigitalLogic OutputsComputer S/W
•Machine Language •Assembler
•Compiler Language •High Level Language
Computer system Operations
Levels of Representation
High Level Language P rogram
Assembly Language Pr ogram
Machine Language Pro gram
Control Signal Spec Compiler Assembler Machine Interpretation temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; •lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) 0000 1001 1100 0110 1010 1111 0101 1010 1111 0101 1000 0000 1001 1100 1100 0110 1010 1111 0101 1000 0000 0101 1000 0000 1001 1100 0110 1010
32
Operating Systems(OS)
•the O
perating System (OS)
is a collection of programs that controls how the CPU, memory, and I/O devices work together– kernel: manages the CPU's operations, controls how data and instructions are loaded and executed by the CPU, coordinates other hardware components
– file system: organizes and manages files and directories
– graphical user interface (GUI): provides intuitive, visual elements for interacting with the computer
Definition of a System
revisited
• “
A systems is a collection of compone
nts linked together and organized in s
uch a way as to be recognizable as a s
ingle unit.”
•
Linked components of a system also
define the boundary for the system
•
The environment is anything outside
of the system
Information Systems
An information system(IS) is typically considered to be a set of interrelated el ements or components that collect(input), manipulate(processes), and disse minate (output) data and information and provide a feedback mechanism to meet an objective.
Open System Close System
System Decomposition
•
Components
–
Irreducible or
–
Subsystems
•
Decomposition
–
The division of a system into its
components and linkages
–
Hierarchical
General Representation of a System
System Architecture
“
The fundamental properties, the patterns
of relationships, connections, among the
components and between the system
environment are known collectively
as the architecture of the system”
© Oscar Nierstrasz ESE — Software Architecture ESE 10.38
What is Software Architecture?
The architecture of a system consists of:
•
the
structure(s) of its parts
–
including design-time, test-time, and
run-time hardware and software parts
•
the
externally visible properties
of those
parts
–
modules with interfaces, hardware units,
objects
•
the
relationships and constraints
between
© Oscar Nierstrasz ESE — Software Architecture ESE 10.39
Sub-systems, Modules and
Components
•
A sub-system is a system in its own right whose
operation is
independent
of the services provided
by other sub-systems.
•
A module is a system component that
provides
services
to other components but would not
normally be considered as a separate system.
•
A component is an
independently deliverable unit
of software that encapsulates its design and
implementation and offers interfaces to the
out-side, by which it may be composed with other
components to form a larger whole.
© Oscar Nierstrasz ESE — Software Architecture ESE 10.40
How Architecture Drives
Implementation
•
Use a
3-tier client-server architecture
:
- all business logic must be in the
middle tier, presentation and dialogue
on the client, and data services on the
server
•
Scale the application server processing
© Oscar Nierstrasz ESE — Software Architecture ESE 10.41
Coupling
Coupling is a measure of the
strength of the
interconnections
between system
components.
•
Coupling is tight between components if they
depend heavily on one another, (e.g., there is a lot
of communication between them).
•
Coupling is loose if there are few dependencies
between components.
–
Loose coupling
promotes maintainability
and
adaptability since
changes in one component are
© Oscar Nierstrasz ESE — Software Architecture ESE 10.42
Tight Coupling
Module A
Module B
Module C
Module D
Shared data
area
© Ian Sommerville 2000© Oscar Nierstrasz ESE — Software Architecture ESE 10.43
Loose Coupling
Module A A’s data Module B B’s data Module D D’s data Module C C’s data © Ian Sommerville 2000© Oscar Nierstrasz ESE — Software Architecture ESE 10.44
Architectural Parallels
•
Architects are the
technical interface
between the customer and the
contractor building the system
•
A bad architectural design for a building
cannot be
rescued by good construction
— the same is true
for software
•
There are
specialized types
of building and software
architects
•
There are
schools or styles
of building and software
© Oscar Nierstrasz ESE — Software Architecture ESE 10.45
Architectural Styles
An architectural style defines a
family of
systems
in terms of a pattern of
structural organization.
More specifically, an architectural style
defines a vocabulary of
components
,
connector
types, and a set of
constraints
on how they can be combined.
© Oscar Nierstrasz ESE — Software Architecture ESE 10.46
Layered Architectures
A layered architecture organises a system into a
set of layers each of which provide a set of
services to the layer “above”.
•
Normally layers are
constrained
so elements only see
–
other elements in the same layer, or
–
elements of the layer below
•
Callbacks
may be used to communicate to higher
layers
•
Supports the
incremental development
of
sub-systems in different layers.
–
When a layer interface changes,
only the adjacent
Definitions
•
Software Architectures – describe the
organization and interaction of software
components; focuses on logical organization of
software (component interaction, etc.)
•
System Architectures - describe the
placement of software components on physical
machines
–
The realization of an architecture may be
centralized (most components located on a single
machine), decentralized (most machines have
approximately the same functionality), or hybrid
(some combination).
Architectural Styles
(b) The object-based
architectural style
.The (a) layered
architectural style
Architectural Styles
(a) The event-based architectural style
• Communication via event propagation, in dist. systems seen often in Publish/ Subscribe;
e.g., register interest in market info; get email updates
• Decouples sender & receiver; asynchronous communication Event-based arch. supports several communication styles: • Publish-subscribe • Broadcast • Point-to-point
Architectural Styles (5)
The shared data-space architectural style.
Data Centric Architecture; e.g., shared distributed file systems or Web-based distributed systems
Combination of data-centered and event based architectures
General Building Blok of Data Processing
•
Equipment, H/W
•
Software Building Block
•
Administrative an Operational Supports
What is Object of Project?
What are Major Information?
How can We Process the Information?
Network H/W
Business Organization Chart
S1 1960 1980 1990 A b ilit y t o f ill in fo rm a tio n n e e d s 2000 PC/LAN Client/Server db db db Distributed db db db db db Web Services Mainframe
Evolution of
54
Communication Components
•
Communication channel (provide connections)
Wire cable Fiber optic Telephone line Wireless technologies
•
Hardware
modemnetwork interface card (NIC)
•
Software (establishes connections, controls the flow of
data, directs data to the proper applications)
Graham Betts
Any transmission May be:
•analog or digital
•Serial or parallel
CE06_PP09-56
Communication Systems
•
Four basic elements
–
Sending and receiving devices
–
Communication channel
–
Connection devices
–
Data transmission specifications
What is a network
•
A
network
as a "group of computers
and associated devices that are
connected by communications
facilities."
•
A network provides two principle benefits:
the ability to communicate
and
the ability
to share.
•
A network can consist of two computers
connected together on a desk or
•
It can consist of many Local Area Networks
(LANs) connected together to form a Wide
Area Network (WAN) across a continent.
Network Classifications
•
Scope
–
Local area network (LAN)
–
Metropolitan area (MAN)
–
Wide area network (WAN)
•
Ownership
–
Closed versus open
•
Topology (configuration)
–
Bus (Ethernet)
–
Star (Wireless networks with central Access
Point)
Network Topologies
•
A
topology
refers to the manner in which the
cable is run to individual workstations on the
network.
–
the configurations formed by the connections between
devices on a local area network (LAN) or between two
or more LANs
•
There are three basic network topologies (not
counting variations thereon): the bus, the star,
and the ring.
•
It is important to make a distinction between a
Graham Betts
NETWORK TOPOLOGIES
(categorizing by shape)
Graham Betts
Ethernet
•
Developed at Xerox in 1976.
•
First protocol approved as an industry
standard protocol 1983
•
LAN protocol used on bus and star
•
Most popular LAN protocol
•
Inexpensive
Peer-to-Peer
•
Nodes act as both client and server;
interaction is symmetric
•
Each node acts as a server for part of the total
system data
•
Overlay networks connect nodes in the P2P
system
–
Nodes in the overlay use their own addressing
system for storing and retrieving data in the system
–
Nodes can route requests to locations that may not
Peer-to-Peer Computing
•
Computers on a network are treated as equals
•
Each computer can share resources with the other
computers on the network
•
Disadvantages
– Difficult to establish centralized control of services – Difficult to locate services
– Difficult to synchronize versions of files or software
– Difficult to secure network from unauthorized access and from viruses
•
Advantages
– Sharing files between personal computers – Internet file sharing
Client/Server Computing
In client/server computing, computer
processing is split between client machines and server machines linked by a network. Users interface with the client machines.
A Multitiered Client/Server Network (N-Tier)
68
Encoding
•
First step is
to understand how to connect
them
so that bits can be transmitted.
•
Next
encode binary data that the source want
to send into signals
that the links can carry
•
Then
decode the data back into the
Graham Betts
Encapsulation
Application Presentation Session Transport Network Data Link Physical data Device 1 Device 2 data H6 T6 data H5 T5 data H4 T4 (packet) H3 data T3 H2 data T2 H1 data T1 carrier FRAME Application Presentation Session Transport Network Data Link PhysicalA typical frame Destination Address
Source
Address Data Padding CRC Preamble
FRAME FRAME FRAME
(Packet)
Originally Created by Bob Baker Modified 2006
Graham Betts
Sender
transmitted
Data is transmitted, on a single channel, one bit at
a time one after another
- Much faster than parallel because of way bits
processed (e.g. USB and SATA drives)
Receiver received
Serial Transmission
1 0 1 0 0 1 1 0
Graham Betts
Re
ceiv
er r
eceiv
ed
-each bit has it’s own piece of wire along which it travels - often used to send data to a printer
Parallel Transmission
Sender transmitt
ed
All bits are sent simultaneously
1 0 0 1 1 0 0 1
Graham Betts
Why Not use
Parallel
Instead of
serial
?
•
Due to inconsistencies on channels data arrives
at different times
•
Because of the way it is transmitted packet
switching cannot be used
•
The above two points makes parallel slower
than serial and requires higher bandwidth.
Graham Betts
• Developed in 1973 for use on the ARPANET
which was a defense force research network.
-Adopted in 1983
as the Internet standard
.
all hosts on the Internet are required to use
TCP/IP.
-
Allows transfer of data using packet
switching
Elements of a Network
communication links
:
point-point (e.g., A-to-B)
broadcast (e.g.,: Ethernet LAN)
host:
computer running
applications which use network (e.g.: H1
router
:
computer (often w/o applications-level programs) rout
ing packets from input line to output line. (e.g., A->C)
gateway
:
router directly connected to 2+ networks (e.g. A)
network
:
set of node (hosts/routers/gateways) within
single a
dministrative domain
Graham Betts
•Bandwidth
:The amount of data which can be transmitted on a medium over a fixed amount of time (second). It is measured on Bits per Second or Baud•Bits per Second (bps):
A measure of transmissionspeed. The number of bits (0 0r 1) which can be transmitted in a second
(more)
•Baud Rate
: Is a measure of how fast a change of state occurs (i.e. a change from 0 to 1) (more)System Architectures for Distributed
Systems
•
Centralized: traditional client-server structure
– Vertical (or hierarchichal) organization of communication and control paths (as in layered software architectures)
– Logical separation of functions into client (requesting process) and server (responder)
•
Decentralized: peer-to-peer
– Horizontal rather than hierarchical comm. and control – Communication paths are less structured; symmetric
functionality
•
Hybrid: combine elements of C/S and P2P
– Edge-server systems
– Collaborative distributed systems.
•
Classification of a system as centralized or decentralized
refers to communication and control organization,
© Oscar Nierstrasz ESE — Software Architecture ESE 10.79
Film and picture library
Catalogue server Catalogue Video server Film clip files Picture server Digitized photographs Hypertext server Hypertext web
Client 1 Client 2 Client 3 Client 4
Wide-bandwidth network
Traditional Client-Server
•
Processes are divided into two groups
(clients and servers).
•
Synchronous communication:
request-reply protocol
•
In LANs, often implemented with a
connectionless protocol (unreliable)
•
In WANs, communication is typically
connection-oriented TCP/IP (reliable)
© Oscar Nierstrasz ESE — Software Architecture ESE 10.81
Client-Server Architectures
A client-server architecture
distributes application
logic and services
respectively to a number of client
and server sub-systems, each potentially running on
a different machine and communicating through
the network
Advantages
•
Distribution
of data is straightforward• Makes
effective use of networked systems
. May require cheaper hardware• Easy to
add new servers
or upgrade existing serversDisadvantages
•
No shared data model
so sub-systems use different dataorganisation. Data interchange may be inefficient
•
Redundant management
in each server• May require a
central registry
of names and services — it may be hard to find out what servers and services are availableC/S Architectures
Layered (software) Architecture for
Client-Server Systems
•
User-interface level: GUI’s (usually) for
interacting with end users
•
Processing level: data processing
applications – the core functionality
•
Data level: interacts with data base or
file system
–
Data usually is persistent; exists even if no
client is accessing it
Examples
•
Web search engine
– Interface: type in a keyword string
– Processing level: processes to generate DB queries, rank replies, format response
– Data level: database of web pages
•
Stock broker’s decision support system
– Interface: likely more complex than simple search
– Processing: programs to analyze data; rely on statistics, AI perhaps, may require large simulations
– Data level: DB of financial information
•
Desktop “office suites”
– Interface: access to various documents, data,
– Processing: word processing, database queries, spreadsheets,… – Data : file systems and/or databases
IT System Architectures
•
Distributed processing systems
–
Client-Server Computing
•
2-tier architecture
•
3-tier architecture
•
N-tier architecture
•
Web-Based Computing
–
Peer-to-Peer Computing
Architecture categories
Two-tiers architecture
Three-tiers architecture
Service oriented architecture
Two-tiers architecture
87
The server handles both application and
database duties
Two-tiers architecture
•
Benefits
– Easy-to-use and access to information and services – Low cost in terms of infrastructure requirements
– High performance with a limited number of workstations
•
Drawbacks
– Inflexible in terms of adding more clients and software – Requires expensive middleware for integration
– Changes or modifications in database affect applications – Limited flexibility in moving program functionality from
one server to another
Three-tiers architecture
91
•Data Tier (Data Management)
•Business Tier (Business logic of functional modules)
•Presentation Tier (End-User Interface—GUI)
The “logical 3-tier” architecture
Client
Data
Display information to the user.
Store and provide access to persistent data.
Presentation Format information for display. Translate UI events into application events.
Application
Execute application logic.
The conceptual distinction between the tiers is important
Really only an “N-tier” architecture if carried through into the implementation architecture
Multitiered Architectures
(3 Tier Architecture)
Three-tiers architecture
in business systems
•
Benefits
– End-users have access to ERP applications over the Web. – Easily integrate ERP applications with existing systems. – Server-centric—No complex, expensive client software
installation.
– Client-centric—Architecture has better response time
because user requests are mostly processed on the client’s computer.
– Web-based architectures also allow better system-to-system integration.
•
Drawbacks
– Client-centric architectures lack security
Business Application Architecture
Client/Server security
•
Network environment has complex security issues.
Networks susceptible to breaches of security through
eavesdropping, unauthorised connections or
unauthorised retrieval of packets of information flowing
round the network. Specific security issues include:
•
System-level password security – user names and
passwords for allowing access to the system. Password
management utilities
•
Database-level password security - for determining
access privileges to tables; read/update/insert/delete
privileges
•
Secure client/server communication - via encryption –
but encryption can negatively affect performance
Middleware
From Wikipedia, middleware is
computer software
that provides services
to
software applications
beyond those av
ailable from the
operating system
.
Middleware can be described as "software glue".
Thus middleware is not obviously part of an operating system, not a
database management system, and neither is it part of one software application.
Middleware makes it easier for software developers to perform com munication and input/output, so they can focus on the specific purp ose of their application.
System Architecture
•
Mapping the software architecture to
system hardware
–
Correspondence between logical software
modules and actual computers
•
Multi-tiered architectures
–
Layer
and
tier
are roughly equivalent terms,
but
layer
typically implies software and
tier
is more likely to refer to hardware.
–
Two-tier and three-tier are the most
common
Distributed Systems 105
Uniprocessor Operating System
Separating applications from operating system
code through a microkernel.
Distributed Systems 106
Distributed Operating System
Tightly-coupled operating system for multi-processors and homogeneous multi-computers
.
Strong transparency.Distributed Systems 107
Network Operating System
Loosely-coupled operating system for heterogeneous multi -computers (LAN and WAN). Weak transparency.
Distributed Systems 108
Middleware System
Additional layer on the top of NOS implementing general-purpose services. Better transparency.
Distributed Systems 109
Middleware Examples
•
Examples: Sun RPC, CORBA, DCOM, Java RMI (distribu
ted object technology)
•
Built on top of transport layer in the ISO/OSI 7 layer re
ference model: application (protocol), presentation (sema
ntic), session (dialogue), transport (e.g. TCP or UDP), net
work (IP, ATM etc), data link (frames, checksum), physical
(bits and bytes)
•
Most are implemented over the internet protocols
•
Masks heterogeneity of underlying networks,
hardware,
operating system and programming languages
– so provides a uniform programming model
with standard services
3 types of middleware:
Transaction oriented (for distributed database
applications)
Message oriented (for reliable asynchronous
communication)
Remote procedure calls (RPC) – the original
OO middleware
Distributed Computing &
Database Lab 111
Thin & Fat Clients
• Thin client
=
Network computer
– Typically no local storage
– has only presentation function
(= user interface)
• Fat
Client
= Desktop PC, Workstation
– has both presentation function and logic function
(=application)
• Motivation for Thin Clients
– Hidden costs of System administration and supports
• Networks computers move toward centralized system
Admin. , but local processing at client
– Java(mobile code) an enabling technology
• E.g. PDA, ….
File Server Architecture
Database server architecture
Thinner
clients
DBMS only on server
Three-tier architecture Thinnest clients
Business rules on
separate server
DBMS only on DB serverApplication Layering
The simplified organization of an Internet search
engine into three different layers.
Principles of Information Systems, Seventh Edition 116
Key Technology Infrastructure
Components
Internet Architecture:
The Domain Name System
Google: System Architecture
•
Provide powerful, fast search capability for material
on the Internet
•
Derive income from advertising that is targeted to
each user based on their searches
•
Basic requirements
– Capable of responding to millions of simultaneous requests from all over the world
– Perform a web crawl of the Internet retrieve and organize data
– Establish ranking of results with appropriately targeted advertising
– High reliability of the system
– System is easily scalable and cost effective