Chapter 7
Systems Analysis and Design in a Changing World, 7th Edition - Chapter 7 ©2016. Cengage Learning. All rights reserved. 1
Defining the System Architecture
Chapter 7
Systems Analysis and Design in a Changing World 7th Ed
Satzinger, Jackson & Burd
Systems Analysis and Design in a Changing World, 7th Edition - Chapter 7 ©2016. Cengage Learning. All rights reserved. 2
Activities of “Design System Components”
Systems Analysis and Design in a Changing World, 7th Edition - Chapter 7 ©2016. Cengage Learning. All rights reserved. 3
Overview
An important part of new system development is
choosing appropriate technologies
Explain and provide a summary of technology and
architectural concepts
describe the details for the activity – Describe the
Environment
Describe the details for the activity – Design the
application components
Systems Analysis and Design in a Changing World, 7th Edition - Chapter 7 ©2016. Cengage Learning. All rights reserved. 4
What is the Internet?
1.1 The Internet
A network of networks
1.2 Network edge
end systems, access networks, links
1.3 Network core
packet switching, circuit switching, network structure
Introduction 1-5
A closer look at network structure:
network edge: mobile network
• hosts: clients and global ISP
servers
• servers often in data home
centers network
regional ISP
access networks,
physical media: wired,
wireless
communication
network core: links
• interconnected routers
• network of networks
institutional
network
Introduction 1-6
What’s the Internet: “nuts and bolts” view
PC
billions of connected mobile network
server computing devices:
wireless
laptop
hosts = end systems global ISP
smartphone running network apps
Application protocols home
network
(http, smtp, etc.) regional ISP
wireless communication links
links
wired • fiber, copper, radio,
links satellite
packet switches: forward
packets (chunks of data)
router
• routers and switches institutional
network
Introduction 1-7
What’s a protocol?
human protocols: network protocols:
“what’s the time?” machines rather than
“I have a question” humans
introductions all communication activity in
Internet governed by
protocols
… specific messages sent
… specific actions taken protocols define format, order
when messages received, of messages sent and
or other events
received among network
entities, and actions taken
on message transmission,
receipt
Introduction 1-8
Connecting end systems!
Q: How to connect end
systems to edge
router?
residential access nets
institutional access networks
(school, company)
mobile access networks
keep in mind:
bandwidth (bits per second)
of access network?
shared or dedicated?
Introduction 1-9
Enterprise access networks (Ethernet)
institutional link to
ISP (Internet)
institutional router
Ethernet institutional mail,
switch web servers
typically used in companies, universities, etc.
10 Mbps, 100Mbps, 1Gbps, 10Gbps transmission rates
today, end systems typically connect into Ethernet switch
Introduction 1-10
The network core
mesh of interconnected
routers
packet-switching: hosts
break application-layer
messages into packets
forward packets from
one router to the next,
across links on path
from source to
destination
Introduction 1-11
Internet structure: network of networks
End systems connect to Internet via access ISPs (Internet
Service Providers)
• residential, company and university ISPs
Access ISPs in turn must be interconnected.
• so that any two hosts can send packets to each other
Resulting network of networks is very complex
• evolution was driven by economics and national policies
Let’s take a stepwise approach to describe current Internet
structure
Introduction 1-12
Internet structure: network of networks
Tier 1 ISP Tier 1 ISP Google
IXP IXP IXP
Regional ISP Regional ISP
access access access access access access access access
ISP ISP ISP ISP ISP ISP ISP ISP
1-13
Internet protocol stack
application: supporting network
applications
FTP, SMTP, HTTP application
transport: process-process data transfer
TCP, UDP transport
network: routing of datagrams from
source to destination network
IP, routing protocols
link: data transfer between neighboring
network elements link
Ethernet, 802.111 (WiFi), PPP
physical: bits “on the wire” physical
Introduction 1-14
Some network apps
e-mail voice over IP (e.g.,
web Skype)
text messaging real-time video
remote login conferencing
P2P file sharing social networking
multi-user network search
games …
streaming stored …
video (YouTube, Hulu,
Netflix)
Application Layer 2-15
Creating a network app application
transport
network
write programs that: data link
physical
run on (different) end systems
communicate over network
Client & server programs
e.g., web server software
communicates with browser software
no need to write software for application
network-core devices transport
network
data link application
network-core devices do not run user physical transport
network
applications data link
physical
applications on end systems allows
for rapid app development,
propagation
Application Layer 2-16
Application architectures
possible structure of applications:
client-server
peer-to-peer (P2P)
Application Layer 2-17
Client-server architecture
server:
always-on host
permanent IP address
data centers for scaling
clients:
communicate with server
may be intermittently
client/server connected
may have dynamic IP
addresses
do not communicate directly
with each other
Application Layer 2-18
P2P architecture
no always-on server peer-peer
arbitrary end systems directly
communicate
peers request service from other
peers, provide service in return to
other peers
self scalability – new peers
bring new service capacity, as
well as new service demands
peers are intermittently connected
and change IP addresses
complex management
Application Layer 2-19
Processes communicating
process: program running clients, servers
within a host client process: process that
within same host, two initiates communication
processes communicate server process: process
using inter-process that waits to be contacted
communication (defined by
OS)
processes in different hosts
aside: applications with P2P
communicate by exchanging
messages architectures have client
processes & server
processes
Application Layer 2-20
Sockets
process sends/receives messages to/from its socket
socket analogous to door
sending process shoves message out door
sending process relies on transport infrastructure
on other side of door to deliver message to socket
at receiving process
application application
socket controlled by
process process app developer
transport transport
network network controlled
link
by OS
link Internet
physical physical
Application Layer 2-21
Addressing processes
to receive messages, process identifier includes both IP
must have identifier address and port numbers
host device has unique 32- associated with process on
bit IP address host.
Q: does IP address of host example port numbers:
on which process runs HTTP server: 80
suffice for identifying the mail server: 25
process? to send HTTP message to
A: no, many processes [Link] web
can be running on same server:
host IP address: [Link]
port number: 80
more shortly…
Application Layer 2-22
App-layer protocol defines
types of messages open protocols:
exchanged, defined in RFCs
e.g., request, allows for interoperability
response e.g., HTTP, SMTP
message syntax: proprietary protocols:
what fields in e.g., Skype
messages & how
fields are delineated
message semantics
meaning of
information in fields
rules for when and how
processes send & respond to
messages Application Layer 2-23
Our Own Protocol for Fun!
Client’s request: Server’s response:
A decimal number The result after squaring
the number received from
the client.
Systems Analysis and Design in a Changing World, 7th Edition - Chapter 7 ©2016. Cengage Learning. All rights reserved. 24
Implementing our protocol ...Server Side
package serverapp;
Import [Link].*;
import [Link];;
import [Link];
public class ServerApp {
public static void main(String[] args) throws Exception {
ServerSocket listener = new ServerSocket(59090);
[Link]("The date server is running...");
while (true) {
Socket clientSocket = [Link]();
Scanner in = new Scanner([Link]());
PrintWriter out = new PrintWriter([Link](), true);
double num = [Link]([Link]());
double square = num * num;
[Link]("The result after squaring "+num+" is:" + square);
}
}}
25
Implementing our protocol ...Client Side
package clientapp;
Import [Link].*;
import [Link];
import [Link];
public class ClientApp {
public static void main(String[] args) throws Exception {
String serverIP = "localhost";
Socket socket = new Socket(serverIP, 59090);
PrintWriter out = new PrintWriter([Link](), true);
Scanner in = new Scanner([Link]());
[Link]("8");
[Link]("Server response: " + [Link]());
}
}
26
Get a Bonus!
Change the client application to allow an end user to
send two different numbers and a mathematical
operation.
Change the server receive the two numbers and the
mathematical operation, use an if statement to
perform the operation, and then return the result of
the calculation back to the client!
Submit two NetBeans projects, one for the client and
one for the server to receive the bonus grade!
Systems Analysis and Design in a Changing World, 7th Edition - Chapter 7 ©2016. Cengage Learning. All rights reserved. 27
Web and HTTP
First, a review…
web page consists of objects
object can be HTML file, JPEG image, Java
applet, audio file,…
web page consists of base HTML-file which
includes several referenced objects
each object is addressable by a URL, e.g.,
[Link]/someDept/[Link]
host name path name
Application Layer 2-28
HTTP overview
HTTP: hypertext transfer
protocol HT
Web’s application layer TP
req
protocol PC running HT
ues
t
Firefox browser TP
client/server model res
pon
se
client: browser that
requests, receives, es
t
(using HTTP protocol) TP
req
u
se
server
and “displays” Web HT
r es po
n running
Apache Web
objects HT
T P
server
server: Web server
sends (using HTTP iPhone running
protocol) objects in Safari browser
response to requests
Application Layer 2-29
HTTP overview (continued)
uses TCP:
client initiates TCP connection (creates socket) to server, port 80
server accepts TCP connection from client
HTTP messages (application-layer protocol messages) exchanged
between browser (HTTP client) and Web server (HTTP server)
TCP connection closed
2-30
DNS: services, structure
DNS services
hostname to IP address translation
host aliasing
canonical, alias names
mail server aliasing
load distribution
replicated Web servers: many IP addresses
correspond to one name
Application Layer 2-31
DNS: a distributed, hierarchical database
Root DNS Servers
… …
com DNS servers org DNS servers edu DNS servers
[Link] [Link] [Link]
[Link] [Link]
DNS servers DNS serversDNS servers
DNS servers DNS servers
client wants IP for [Link]; 1st approximation:
client queries root server to find com DNS server
client queries .com DNS server to get [Link] DNS server
client queries [Link] DNS server to get IP address for
[Link]
Application Layer 2-32
TLD, authoritative servers
top-level domain (TLD) servers:
responsible for com, org, net, edu, aero, jobs,
museums, and all top-level country domains, e.g.:
uk, fr, ca, jp
Network Solutions maintains servers for .com TLD
Educause for .edu TLD
authoritative DNS servers:
organization’s own DNS server(s), providing
authoritative hostname to IP mappings for
organization’s named hosts
can be maintained by organization or service
provider Application Layer 2-33
Local DNS name server
does not strictly belong to hierarchy
each ISP (residential ISP, company, university) has
one
also called “default name server”
when host makes DNS query, query is sent to its
local DNS server
has local cache of recent name-to-address
translation pairs (but may be out of date!)
acts as proxy, forwards query into hierarchy
Application Layer 2-34
DNS name root DNS server
resolution example
2
host at [Link] 3
TLD DNS server
wants IP address for 4
[Link]
5
local DNS server
iterated query: [Link]
contacted server replies 7 6
with name of server to 1 8
contact
“I don’t know this authoritative DNS server
[Link]
name, but ask this requesting host
server” [Link]
[Link]
Application Layer 2-35
Practice…
Systems Analysis and Design in a Changing World, 7th Edition - Chapter 7 ©2016. Cengage Learning. All rights reserved. 36