Title: NETWORK APPLICATION ARCHITECTURES Why Architecture Shapes Application Destiny
1NETWORK APPLICATION ARCHITECTURESWhy
Architecture Shapes Application Destiny
Focus here
2Agenda
- Application Architectures
- Host-Based
- Client-Based
- Client-Server
- P2P
- Common network app architectures
- Web
- Other network apps
- SMTP
- IM
- P2P
3Application Architectures
- Network apps SW packages that run in the app
layer - Networks exist solely to enable these apps
- Examples
- Application program functionality made up of four
functions - Data storage
- Data access Queries, SQL etc
- Application logic The actual work done by an app
- Presentation logic Interaction with end-user
- Applications architecture Defines how these
functions are split between clients and servers. - Four types of application architectures are
common - Host-based
- Client-based
- Client-server
- Peer-to-peer
4Architecture Gerdin
- What is architecture?
- Constrains enables
- Application architecture?
5Trends 1960-2010
- Proc pwr/
- Bandwidth costs
6Host-based Architectures (1960s-)
Division of tasks
Displays User input
Performs all 4 application program functions
- Two main problems
- Host-centric processing does not scale well
- Upgrades are big, expensive projects
7Client-Based Architectures (late 80s-)
Driver Low cost PCs
Division of tasks
Only
Shifting of tasks
- Downsides
- Need for all of the data to travel back and forth
- E.g., ISU CourseReg dB query
- entire database must travel to the client for
query processing - Poor network performance due to large volumes of
data
8Client-Server Architectures (mid 90s)
Division of tasks
Dominant model right now
- Upsides
- Distributed processing
- Better load balancing
- Incompatible systems can interoperate
Some app logic here
- Middleware
- Provides an interface for allowing
client-to-server application program interaction - Two main functions
- Provides a standard way of translating between
software from different vendors - Manages message transfer between client and
server - Key standards
- Distributed Computing Environment (DCE)
- Common Object Request Broker Architecture (CORBA).
92-tier, 3-tier and N-tier Architectures
splitting application program logic across gt2
computers
- How many tiers is client-server?
- Amazon.com?
- Why would you want to do this?
- Advantages
- Processing load balancing
- Increased scalability
- upgrade only high-demand servers
- Disadvantages
- Heavier load on networkwhy?
- Video streaming on networks (reading)
- More complex?testing nightmare
10Thin versus Fat Clients
- How much of the application logic resides on the
client. - Thin Little or no application logic
- Thick All or most
- Whats preferable?
- Thin? only server application logic generally
needs to be updated - Example Web architecture (two-tier, thin client
architecture) - Surveymonkey.com
11Considerations in Choosing an Architecture
- What network architecture would you use for
Gerdin? Considerations? - Cost of Infrastructure (mainframes?)
- Development Cost (COTS or custom?)
- Scalability (client-server)
12The Web
Client-Server architecture Communications
protocol Hypertext Transfer Protocol (HTTP)
- Inside a Web Interaction
- Web clients (browsers) make HTTP requests to Web
servers - Web servers answer with HTTP responses
- Clicking on a hyperlink starts an HTTP
request-response cycle - --- can have multiple steps (for each embedded
file/graphic)
- Hypertext Markup Language (HTML)
- Protocol for formatting documents on the Web
- Why is this necessary?
- Developed for text, not multimedia (required HTML
extensions) - XML (Extensible Markup Language)
13HTTP Requests and Responses
- An HTTP request has 3 parts
- Request line (required) has a command and URL
www.bus.iastate.edu - Request header (optional) contains ancillary
information? - Request body (optional) contains information
sent to the server
- HTTP responses also have 3 parts
- Response status (optional) http version number,
status code (404) - Response header (optional) contains information
on the server, date, URL of retrieved page and
response format (e.g., html) - Response body (required) contains the requested
Web page
14HTTP response example
- HTTP/1.1 200 OK - Response Status
- Date Mon Sept 21, 2009 173546 GMT - Date
- Server Apache - Web server
- Location http//www.bus.iastate.edu - URL
- Content-type text/html- Type of file
- lthtmlgt
- ltheadgt
- lttitlegtCy Home Page lt/titlegt
- lt/headgt
- ltbodygt
- ltH2gt PgtWelcome to the Cyclones -- always better
than the HawkEyeslt/H2gt - ltlt/Pgt
- lt/bodygt
- lt/htmlgt
Response Header
Response Body
15Electronic Mail Architecture
- AOLNet circa 1989-1995
- SMTP now dominant standard
- part of the TCP/IP protocol suite
- uses two-tier client-server architecture
Architecture
Inside an email message Header lists source and
destination addresses, date, subject Body the
message itself Attachments additional files
16SMTP uses two types of programs
- 1 User agents (e-mail clients) Programs on
client computers - send e-mail to e-mail servers
- download e-mail from mailboxes on those servers
- These use POP or IMAP protocols
- 2 Mail transfer agents (mail server software
used by mail servers) - send e-mail between e-mail servers
- maintain individual mailboxes.
17How SMTP e-mail works
mail server reads the packets destination
address and sends it over the Internet to the
receivers mail server
e-mail message sent by the senders client as an
SMTP packet to the local mail server
user agent downloads message from the local mail
server to the receivers client computer
destination mail transfer agent stores the
message in receivers mail box
18Web mail architecture
- Examples? Todays killer app?
- Should it be simpler or more complex?
- How many tiers in the architecture?
- 3-tier architecture
- The clients browser that sends HTTP requests to
the Web server. - The Web server 1) sends HTTP responses to the
Web client and 2) translates the clients HTTP
requests into SMTP packets which are then sent to
the mail server. - The Mail server performs the same functions as
the mail server in 2-tier setups
19Illustration Webmail
20Other ApplicationsFTP, Telnet, and Video
Conferencing
- Whos used FTP and Telnet?
- Pre-WWW days of the Internet
- FTP enables sending and receiving files over the
Internet - Current use uploading web pages
- Telnet allows remote logins over the Internet
- Used through 1998
- Video conferencing
- Does it have a future? Why?
21Instant Messaging (IM)
- Key differences between IM and email?
- Examples of IM used?
- AOL versus Microsoft battles (1999)
- Client-server app allows real-time messages to
be exchanged - Now allow voice and video packets
- No dominant standards yet
Jim types some text IM client sends the text in
a packet to the IM server which relays it to Kim
Jim
Jims client sends a request to the IM server
telling it that he is online
If Kim logs on, the IM server sends a packet to
Jims IM client
Kim
22P2P Architectures
Jim
- Napster 0-60 million sued to death
- The most popular site ever
- How did it work?
- Why did it shut down?
- (network) Architectural reasons
- Concepts
- Peer (servlet)
- How does this work?
- somewhat like C/S, but indexing based?
Sally
23Two Models
What architecture did Napster use?
Central indexing server
No central server
24Knowledge Networks, VoIP networks, and others
Source Tiwana, Affinity to Infinity in
Knowledge Networks, Communications of the ACM,
2003
25P2P Applications Today
26App Architecture Shapes Destiny
- App architecture influences
- App performance
- Scalability (business growth)
- Network intensity
- Often an irreversible choice
- What if
- Skype was client-server?
- Ebay was P2P?
- Google was P2P?
- Netflix streaming was something else?
27Summary
- Network application layers
- 4 logic functions and their partitioning
- Network Application Architectures
- Key types
- Technical choices and business consequences
- Maintenance far exceed initial network
outlays - Lesson from Napster?
- What architectures are relevant today? Tomorrow?