Protocols and interaction models for web services
1 / 98

Protocols and Interaction Models for Web Services - PowerPoint PPT Presentation

  • Uploaded on

Protocols and Interaction Models for Web Services. CSCI 8710 Fall 2006. Outline. Networks Client/Server Peer-to-Peer Web Service Protocols. Networks. Originated with ARPANET Packet-switched Started in late 1960’s ARPA - Advanced Research Projects Agency (now known as DARPA)

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Protocols and Interaction Models for Web Services' - india-guzman

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


  • Networks

  • Client/Server

  • Peer-to-Peer

  • Web Service Protocols


  • Originated with ARPANET

    • Packet-switched

    • Started in late 1960’s

    • ARPA - Advanced Research Projects Agency (now known as DARPA)

    • Then: about 10 nodes (~100 million today)

    • Goal: resource sharing

    • Result: reached goal + demonstrated importance of networks as tool for communication and interaction via email


  • Kleinrock at UCLA

    • Did much of the early work in queueing models of networks, measurement and management of networks and network protocols


  • 1983: ARPANET split into two networks:

    • MILNET (military purposes)

    • ARPANET (reduced version)

    • Term “Internet” first introduced

    • -- came into being in 1983

Today s internet
Today’s Internet

  • Worldwide collection of interconnected WANs

  • Characterized by:

    • IP - networking protocol

    • TCP - process-to-process protocol

Types of networks
Types of Networks

  • WANs

  • LANs

  • LAN-to-WAN connection

  • Home-to-WAN connection


  • Wide-area network

    • City-wide, muti-city, country-wide, continent …

  • Uses packet switching:

    • Messages transmitted between hosts are broken down into chunks called packets with some max size

    • Packet header has routing and sequencing info

  • Consists of:

    • Packet switches or routers

    • High speed links connecting the routers


  • Communication computers that:

    • Store incoming packets

    • Examine headers

    • Look up routing tables

    • Decide next router to send packet to

    • Place packet on output queue for selected link

  • Known as “store and forward”

Technologies used to build wans
Technologies used to build WANs

  • X25 - a standard of the ITU (International Telecommunications Union)

  • ISDN - Integrated Services Digital Network

    • Service offered by telephone companies; integrates voice and data over ordinary telephone lines

  • Frame Relay

    • A high-speed WAN service offered by long-distance carriers

Technologies used to build wans cont d
Technologies used to build WANs (cont’d)

  • SMDS - Switched Multi-megabit Data Service

    • Another high-speed WAN service offered by long-distance carriers

  • ATM - Asynchronous Transfer Mode

    • Packet-switched technology that uses small fixed-size packets (53 bytes), called cells, to provide fast switching to voice, video, and data over WANs


  • Typically confined to a building or set of closely located buildings

  • Both wired and wireless

  • Most popular:

    • 10-Mbps Ethernet

    • 100-Mbps Ethernet

    • 4- or 16-Mbps Token Ring

    • 100-Mbps FDDI


  • Invented by Metcalfe in the early 1970s

  • Have bus topology:

Shared bus


Network interface card (NIC)


  • Computers connect to a shared coaxial cable through NICs

  • Packets transmitted by one NIC can be received by all others: broadcast communication

    • But, since packets have destination addresses, only destination NIC will (typically) copy the packet to the computer’s main memory


  • All NICs can try to talk at once

    • which reminds EK of a faculty meeting ;^)

    • No central coordinator

  • CSMA/CD is used:

    • Carrier Sense with Multiple Access / Collision Detection

    • NIC that wants to transmit “listens” to see if a transmission is in progress (carrier sense)

      • If so, it waits

    • But two may start “talking” at about the same time (collision)

    • Collisions are detected and NICs stop “talking”, wait for a randomly selected time period(so they don’t just collide again), and then try to retransmit


  • What happens as number of nodes and/or traffic increases?

    • probability of collision increases

    • Network throughput decreases

      • Because more bandwidth spent on collisions and retransmissions

Token ring
Token Ring

  • Invented at IBM Research Labs

  • Based on a ring topology:

= computer

= Network interface card (NIC)


Token ring1
Token Ring

  • Access to ring is controlled by a token (special bit pattern that circulates in the ring)

  • NIC with token can transmit

  • If NIC has nothing to transmit, just passes the token

Token ring2
Token Ring

  • Sender (NIC with token) inserts the bits representing its packet into the ring

  • Packet goes around the ring, is copied by the NIC of the destination address

  • Packet flows back around to sender; sender removes packet and performs error checking (compares received packet with sent packet)

Token ring3
Token Ring

  • As more stations are added to the token ring …

    • Delay in obtaining token increases

      • Token must circulate through more NICs

      • Probability that token is used by other NICs increases


  • Uses optical fibers and token-passing

  • Differs in that it uses 2 rings

= computer

= Network interface card (NIC)



  • Benefits of 2nd ring?

    • Data flows in opposite directions in the 2 rings

    • If a station fails, the hardware can reconfigure the ring and turn it into a single functioning ring by bypassing the malfunctioning station

Lans limits on size
LANs: limits on size

  • Two types of limits:

    • Physical limits

    • Performance limits

  • Examples:

    • Ethernet physical limits:

      • Cable no more than 500 m in length

      • Mininum separation of 3 m between stations

Managing performance limits on lans
Managing performance limits on LANs

  • Number of stations may be limited because of adverse impact of additional stations on overall performance

  • Approach:

    • Can divide larger LAN into LAN segments with fewer stations each

    • Segments joined by connecting devices such as routers and bridges

    • Stations that communicate frequently should be in same segment

Wireless lans
Wireless LANs

  • Stations communicate via RF (radio frequency)

    • Modulation of transmitted wave is interpreted as sequence of 0s and 1s

    • IEEE standard for LANs is the IEEE 802.11 protocol

      • Can transmit data at 1 or 2 Mbps depending on underlying modulation technology

Ieee 802 11 protocol
IEEE 802.11 protocol

  • Provides a carrier sense signal that indicates if a transmission is in progress

  • Data sent by one station can be received by all stations in the coverage area

  • Subject to the “hidden terminal” problem

    • Happens when walls or other structures obstruct the RF signals

    • Station C may hear A and B, but they may not be able to communicate with one another

Ieee 802 11 protocol1
IEEE 802.11 protocol

  • within their cells or basic service set (BSS), stations ( ) can communicate with one another and with an access point (AP).

  • Through the AP stations may communicate with stations in another BSS

  • Stations may also form an ad-hoc network (without an AP)





Ieee 802 11 protocol handling interference
IEEE 802.11 protocol: handling interference

  • Uses CSMA/CA

    • Carrier Sense Multiple Access/Collision Avoidance

    • If channel is sensed idle for time equal to DIFS (distributed inter frame space), station may transmit

    • Receiver of a correct frame then sends ack frame to sender after short time (SIFS=short interframe spacing)

    • If channel is busy:

      • sender defers access, listens again

      • If quiet for DIFS, xmits after random backoff time expires

      • Use of random prevents all waiting from sending at same time

    • Doesn’t detect collisions, tries to avoid

    • Transmitted frame contains transmission duration; others know how long to wait

Ieee 802 11 handling the hidden station problem
IEEE 802.11:handling the hidden station problem

  • Two stations (A and B) hidden from one another may transmit to same station (C)

    • Can use RTS (request to send) and CTS (clear to send) exchange of frames before actual transmission

    • B will “hear” C send the CTS to A and will not send.

Lan to wan connection
LAN-to-WAN connection

  • LANS usually connect to WANS through dedicated leased lines at T1 (1.544 Mbps) or T3 (45 Mbps) speeds

  • LANS may be of any type

  • Example:

    • 3 LANS: 1 FDDI, 1 ethernet, 1 Token ring

    • Each connects to Frame Relay WAN through router and T1 line

Home to wan connection
Home to WAN connection

  • Many alternatives:

    • Dialup modem, 14.4 - 15.6 Kbps

      • simple, cheap

    • ISDN Basic Rate Interface (BRI)

      • Dialup digital modem

      • Speed up to 128 Kbps

    • ISDN Primary Rate Interface (PRI)

      • 1.544 Mbps

    • Leased T1 line

      • 1.544 Mbps

Home wan connection continued
Home-WAN connection, continued

  • High Bit Rate Digital Subscriber Line (HDSL)

    • 1.544 Mbps

  • Asymmetric Digital Subscribe Line (ADSL)

    • 640 Kbps outbound

    • 6 Mbps inbound

    • Good for web access (http requests are small, returned images, videos, etc. may be large)

  • Cable modems

    • Cable is shared; actual bandwidth seen by customer depends on load on network

    • Most cable modems are asymmetric

    • Typical speeds 1- 10 Mbps downstream, 128 Kbps upstream


  • Purpose

  • IP

  • TCP


  • Protocol:(in this context)

    • A set of rules governing communication between two computers or two processes over a computer network

    • Consists of functions/rules for:

      • Addressing

      • Routing

        • Together ensure that message from A to B arrives at B

      • Error detection

      • Error recovery

      • Sequence control

        • Together handle situation in which messages from A are lost or corrupted due to noise or network failures

      • Flow control

        • To handle situation in which A sends at faster rate than B can consume


  • Connectionless

    • Messages from A to B are independent of one another; may arrive at destination in order different from transmission order

      • Think of mailing off a batch of postcards that together contain the content of a novel

      • Good when data to be exchanged fit into maximum data unit (all fits on one postcard)


  • Connection-oriented

    • Used when messages that are much larger than the maximum data unit are transmitted

    • Sequencing and data recovery important

    • Think of making a phone call: a connection is set up, and the channel remains open for transmission until you disconnect

Protocol specification
Protocol specification

  • Syntax

    • Specifies the types of messages that can be sent, the format of those messages, and the meaning of each field in the message

  • Semantics

    • Specifies the actions taken by each entity when specific events occur

      • Example: when a message arrives, when a message times out, etc.

Protocol specification1
Protocol specification

  • ISO (International Standards Organization) defined a seven-layer model, the Reference Model for Open Systems Interconnection

    • Physical

    • Data link

    • Network

    • Transport

    • Session

    • Presentation

    • Application

Iso osi

  • Each entity at layer n communicates only with remote nth-layer entities

  • Layer n uses local services provided by layer n-1

N-th layer protocol










Protocol layers
Protocol Layers

  • Data exchanged between nth-layer entities have to be:

    • physically processed by layers n to 1 at the sending computer

    • Transported through the network

    • Moved from layer 1 to n at the receiving end

Protocol layers1
Protocol Layers

  • Each entity at layer n exchanges a Protocol Data Unit (PDU) with a remote layer n entity

  • PDU has:

    • Layer n data

    • Layer n header

  • The layer n PDU becomes layer (n-1) data:

Layer (n-1)


Layer n


Layer n data

<---------- layer (n-1) data ---------------------->

Tcp ip

  • IP = Internet Protocol

    • a network layer protocol

  • TCP = Transmission Control Protocol

    • A transport layer protocol

    • Connection-oriented

  • UDP = User Datagram Protocol

    • A transport layer protocol

    • A connectionless protocol

  • Together: TCP/IP protocol suite; forms the core of the internet

On top of tcp
On top of TCP:

  • HTTP- hypertext transfer protocol (web)

  • FTP - file transfer protocol

  • SMTP - simple mail transfer protocol

  • Telnet - an interactive login protocol

On top of udp
On top of UDP:

  • RPC - remote procedure call

    • NFS - network file sytem - runs on top of RPC

  • DNS - Domain Name Server

  • SNMP - Simple Network Management Protocol

Internet protocol ip
Internet Protocol (IP)

  • Specifies:

    • the formats of packets sent across the Internet,

    • the mechanisms used to forward these packets through a collection of networks

    • Routers from source to destination

Internet protocol ip1
Internet Protocol (IP)

  • Every host connected to the internet has a unique address: an IP address

    • A 32-bit number

    • Represented by a dotted notation:, for example

    • Each of the four numbers represents the value of 8 bits in the address

    • Divided into prefix and suffix

      • Prefix: indicates the network

      • Suffix: host within the network

Internet protocol ip2
Internet Protocol (IP)

  • Number of bits allocated to prefix determines number of unique network numbers

  • Number of bits allocated to suffix determines number of hosts per network

  • Currently, IPv4 uses 32-bit address field

  • But … may be approaching limits of number of servers to be on …

  • IP v 6 uses 128 bits

Internet protocol ip3
Internet Protocol (IP)

  • IP datagram: the data unit transported by IP

  • IP is connectionless and

    • can “lose” datagrams

    • can deliver datagrams out-of-order (may travel to destination by different routes)

    • is known as “best effort” service

Internet protocol ip4
Internet Protocol (IP)

  • Header is 20 bytes long

    • 4 bytes for IP address of source

    • 4 bytes for IP address of destination

  • Performs routing of datagrams from source to destination

  • IP implementation at router maintains an in-memory routing table; used to search for next router or host to which to forward the datagram.

Tuesday s class
Tuesday’s class

  • Kelly,

  • Stop here …

  • On Thursday, pick up here with TCP…

  • Thanks!

  • Ek

Transmission control protocol tcp
Transmission Control Protocol (TCP)

  • Provides a:

    • Connection-oriented

    • Reliable

    • Flow-controlled

    • End-to-end

      communication service between processes residing at hosts connected through a network

Transmission control protocol tcp1
Transmission Control Protocol (TCP)

  • Guarantees that data is delivered and is in-order

  • Provides full-duplex communication

    • Both ends of the connection can communicate simultaneously

  • Provides a stream interface

    • Accepts a continuous stream of bytes from the application to be sent through the connection

Transmission control protocol tcp2
Transmission Control Protocol (TCP)

  • PDU exchanged at the TCP level is called a segment

    • Header is 20 bytes long

    • Segments reside within IP datagrams

  • Connection must be established before data can be exchanged:

    • Three-way handshake is mechanism for establishing connections

Tcp three way handshake
TCP: three-way handshake

  • host A establishes connection with host B

    • A sends SYN(synchronization) segment to B (#1)

    • B replies with a SYN segment(#2); places A in queue of incomplete connections

    • A sends ACK to B (#3 of 3-way handshake)

    • Connection complete when B receives ACK

    • Data may now be exchanged in both directions

  • Note: Denial of Service attack:

    • fills queue of incomplete connections(A never sends the ACK) -- host can’t accept new connections

Tcp closing the connection
TCP - closing the connection

  • TCP connection closing is half-close

    • Host closing connection indicates that host won’t send more data but is still willing to receive

  • Host A to host B

    • Host A sends FIN to host B

    • B replies with ACK

    • B can still send to A

  • To completely close the connection

    • Host B sends FIN to host A

    • A replies with ACK

  • So, total of 4 segments to close the connection


  • Error control:

    • Handled via ACKs, timeouts, and retransmission

  • Flow control:

    • Implemented via a sliding window mechanism

      • Window = max num bytes sent before an ACK is received

      • Window size limited by

        • Buffer size at receiver

        • Network congestion perceived by sender

Tcp flow control
TCP flow control

  • Connection first established

    • Receiver advertises Wm - its maximum window size

    • Sender’s window size can’t exceed this or receiver will have buffer overflow and packets will be lost

    • Network congestion causes some packets to be dropped at some router or to not be ack’d before a timeout occurs

      • Sender then reduces window size to Wc , which reduces its transmission rate and attempts to mitigate network congestion

Tcp flow control1
TCP flow control

  • Two phases:

    • Slow start

      • Wc is initialized to 1, increased by 1 for each ACK received (note ACK count is cumulative)

      • Wc = 1, 1 packet sent, ACK’d in 1 RTT -> Wc now 2

      • Wc = 2, 2 packets sent, ACK’d in 1 RTT ->Wc now 4

      • Wc = 4, 4 packets sent, ACK’s in 1 RTT -> Wc now 8

      • … doubles every RTT up to max of Wm

    • Congestion avoidance

Tcp control flow
TCP control flow

  • Network congestion detected by

    • Receipt of a duplicate ACK (receiver received an out-of-sequence segment)

    • Timeout at the sender

  • Response:

    • Save current value of window size to Wssthr (slow start threshhold window size)

    • Reduce Wc

Tcp flow control2
TCP flow control

  • TCP actually has different versions.

  • TCP Reno (a common version) reduction of window size upon congest works like this:

    • If duplicate ACK received: Wc divided by two, enter congestion avoidance phase

    • If a timeout occurs, Wc set to 1; go back to slow start

    • When Wc reaches Wssthr during slow start, switch to congestion avoidance

Tcp flow control3
TCP flow control

  • Congestion avoidance phase:

    • Wc increased by 1/Wc for every ACK received

  • XTCP, throughput of a TCP connection, measured in segments per second:

    • Decreases with RTT

    • Decreases with probability packets are dropped

    • Increases with Wm, measured in segments

    • Decreases with T0, TCP timeout value

Tcp performance and limitations
TCP performance and limitations …

  • … some derivation of performance formulas, to be performed when EK returns …

Client server

  • Client/Server paradigm

  • Server types

  • HTTP

Client server paradigm
Client/Server Paradigm

  • Client process:

    • Runs on desktop or user workstation and provids GUI code for data capture and display

    • Makes requests for specific services to be performed by one or more server processes, usually located at remote machines

    • Executes a portion of the application code

Client server paradigm1
Client/Server Paradigm

  • Server process

    • Executes a set of functionally-related services that usually require a specialized hardware/software component

    • Never initiates a message exchange with any client; a passive entity that listens to client requests, executes them, and replies to clients

    • Usually runs on a machine that is faster and has more main memory and disk space than a client machine

Client server interaction protocol
Client-Server interaction protocol

  • Request-reply protocol

    • Clients send requests

    • Servers reply to client requests

    • May run on TCP, UDP, or other

Client server1

  • Server may receive many requests

    • Forms a queue of requests at server

    • Serving only one request at a time may

      • Under-utilize machine

      • Limit server throughput

      • Increase response time to clients

    • Most servers create multiple processes or threads to handle the queue of incoming requests

      • As number of threads increases, response time will initally decrease (clients don’t need to wait as long) and then go up or flatten out as the multiple threads contend for resources

Client server2

  • Two-tier architecture

    • Client runs: GUI + application logic

    • Server runs: SQL server

  • Three-tier architecture

    • Client runs: GUI

    • Application server runs: application logic (and acts as client to…)

    • SQL server

Fat clients v thin clients
Fat clients v. thin clients

  • “Fat” clients

    • incorporate more of the transaction logic than thin clients

    • tend to require fewer interactions with server

    • cost: higher computing requirements for client

Client server caching
Client-Server: caching

  • Cache = copy of data stored “closer” to client

    • client may keep cached copy of file

    • server may keep main memory cache of recently/frequently accessed files

    • web server may cache popular docs

  • use of caches can improve performance and increase system scalability

Client server caching1
Client-server: caching

  • cache hit – data of interest found at the cache

  • cache miss – not found

  • Benefits: better performance

  • Costs: need to maintain consistency of cache, extra processing time for cache misses

Caching example
Caching - example

  • File server receives requests to read 8-KB file blocks at a rate of 900 req/sec

  • What is the effect at the server if 30% of requests generate a cache hit at the client?

    • (1-0.30) * 900 req/sec = 630 req/sec at server

  • What if 25% of the requests that reach the server can be satisfied from server’s main memory cache?

    • (1-0.25) * 630 req/sec = 472.5 req/sec

Server types
Server types

  • file servers

  • database servers

  • application servers

  • groupware servers

  • object servers

  • Web servers

  • software servers

File servers
File servers

  • provide networked computers with access to a shared files system

  • Example: NFS (networked file system)

    • can use UDP (usually) or TCP/IP

  • Client requests:

    • look up directory

    • retrieve file attributes

    • read and write blocks from files

Database servers
Database servers

  • provide access to one or more shared databases

  • Client requests:

    • SQL statements

  • Server response:

    • list of records

Application servers
Application servers

  • provide access to remote procedures invoked through the Remote Procedure Call (RPC) mechanism

    • typically implement business logic & make SQL calls to backend DB engine

Transaction processing monitors tpms
Transaction Processing Monitors (TPMs)

  • perform load balancing amoung several servers that implement the same service

Groupware servers
Groupware Servers

  • provide access to unstructured and semi-structured info such as text, images, mail, BBoards, workflows

Object servers
Object servers

  • support remote invocation of methods in support of distributed object-oriented application development

  • ORB = Object Request Broker – the “glue” between clients and remote objects

Software servers
Software servers

  • used to provide executables to Network Computers (NCs), which do not have hard drives

Web servers
Web servers

  • provide access to documents, images, sound, executables, and downloadable applications through HTTP

Html http

  • HTML = markup language for documents: formatting, links to other documents, links to inline images, video, software, etc.

  • inline images impact performance:

    • single click -> multiple requests


  • application-level protocol, runs on top of TCP

  • simple request-response interaction: “Web transaction”

    • map server name to IP address

    • establish TCP connection with server

    • transmit request

    • receive response

    • close TCP/IP connection

      • in HTTP 1.1 the connection remains open for embedded images

Http request
HTTP request

  • request includes:

    • action (GET, HEAD, PUT, POST)

    • URL that identifies info requested

    • other: type of doc client will accept, authentication, payment authorization, etc.

Http response
HTTP response

  • status line (success or failure)

  • meta-info about object returned and info requested

  • file or output generated by server-side app (CGI script, for example)


  • “stateless”

    • single request/response, no continuing conversation

    • servers don’t have to keep track of clients and their histories

    • adverse effect on performance

      • new connection established for every request

      • in HTTP 1.0 – new connection for document + 1 for every image on the page

Http 1 1
HTTP 1.1

  • persistent connection – leaves the TCP connection open between consecutive operations

  • avoids many RTT delays

  • supports “pipeline of requests”

    • can send multiple requests without waiting for a response

Peer to peer model
Peer-to-Peer Model

  • used in sharing files, disk space, even computing cycles

  • two styles

    • meta-data server

      • more messages

    • purely distributed

      • more scalable

Web service protocols
Web Service Protocols

  • Intro

  • SOAP

  • WSDL

  • UDDI

Web service
Web Service

  • business functionality exposed by a company, for the purpose of allowing another company or software program to use the service

  • Components:

    • service provider

    • service registry

    • service requester


  • Web services description language

    • XML format

    • describes services as endpoints operating on messages containing either document-oriented or procedure-oriented information

    • describes what service does, where it is, how to invoke it


  • Universal Description, Discovery,and Integration

    • for finding services that meet requirements