Web Application Development
Course Code : TIJ 3043 Pre Requisite: TD 3013 Database System &
Information Retrieval
Lecturer : Adib M.Monzer HabbalExt : 4650Room : 3072, School of Computing
E-mail: [email protected]
Course Assesment
AssignmentMid Term : 15% Lab Test : 10%Assignment : 15% (Group)Project : 20% (Group)
Final Exam : 40 %
Total : 100%
WEB Application Development
TJ 3043
WEB Application Development
Introduction
People are using the web to build things they have not built or written or drawn or communicated anywhere else.
—Tim Berners-Lee
Billions of queries stream across the servers of these Internet services—the aggregate thought stream of humankind, online.
—John Battelle, The Search
Some people take what we contribute and extend it and contribute it back. That's really the basic open source success story.
—David Heinemeier Hansson, interviewed by Chris Karr at www.Chicagoist.com
Review of Network Models
TCP/IP Reference Model Architectures for Network-based Application
Introduction
1-6
Network Components
Networks are complex! many “pieces”:
– hosts– routers– links of various
media– applications– protocols– hardware, software
Question: Is there any hope of organizing structure of
network?
Introduction
1-7
Organization of air travel
a series of steps
ticket (purchase)
baggage (check)
gates (load)
runway takeoff
airplane routing
ticket (complain)
baggage (claim)
gates (unload)
runway landing
airplane routing
airplane routing
Introduction
1-8
ticket (purchase)
baggage (check)
gates (load)
runway (takeoff)
airplane routing
departureairport
arrivalairport
intermediate air-trafficcontrol centers
airplane routing airplane routing
ticket (complain)
baggage (claim
gates (unload)
runway (land)
airplane routing
ticket
baggage
gate
takeoff/landing
airplane routing
Layering of airline functionality
Layers: each layer implements a service– via its own internal-layer actions– relying on services provided by layer below
Introduction
1-9
Why layering?
Dealing with complex systems: explicit structure allows identification, relationship of
complex system’s pieces
modularization eases maintenance, updating of system– change of implementation of layer’s service
transparent to rest of system– e.g., change in gate procedure doesn’t affect rest
of system
TCP/IP Reference Model
The TCP/IP reference model is the network model used in the current Internet architecture.
It has its origins back in the 1960's with the grandfather of the Internet, the ARPANET.
This was a research network sponsored by the Department of Defense in the United States. The following were seen as major design goals:
– ability to connect multiple networks together seamlessly – ability for connections to remain intact as long as the source
and destination machines were functioning – to be built on flexible architecture
Data Link Layer
Network Layer
Transport Layer
Application Layer
TCP/IP Reference Model
•Application or Process Layer – concerned with how data at both ends is handled. •Transport Layer – manages flow of data •Internet Layer – consists of several protocols, primary protocol is IP (providing hierarchical addressing scheme •Data Link (or Network Interface) Layer – manages transmission of data within the network •Physical Layer – not really defined, TCP/IP leaves the physical connection to manage itself
TCP/IP Reference Model
TCP/IP Reference Model
TCP/IP Reference Model
Data Link Layer
The Data Link layer interfaces the TCP/IP protocol stack to the physical network.
contains communication technologies for a local network.
Network Layer
The job of the network layer is connects local networks, thus establishing the Internet.
The layer injects packets into any network and have them travel independently to the destination.
The layer defines IP (Internet Protocol) for its official packet format and protocol.
Packet routing is a major job of this protocol.
Transport Layer
The transport layer is the interface between the application layer and the complex hardware of the network.
It is designed to allow peer entities on the source and destination hosts to carry on conversations.
Data may be user data or control data. Two modes are available, full-duplex and half duplex.
– In full-duplex operation, both sides can transmit and receive data simultaneously, whereas in half duplex, a side can only send or receive at one time.
Application Layer
The original TCP/IP specification described a number of different applications that fit into the top layer of the protocol stack. These applications include: – HTTP– FTP– SMTP – DNS.
HTTP (Hypertext Transfer Protocol)– HTTP is an application protocol for distributed, collaborative,
hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web.
– The standards development of HTTP was coordinated by the Internet Engineering Task Force (IETF) and the World Wide Web Consortium (W3C),
FTP (File Transfer Protocol) – a protocol that was originally designed to promote the sharing of files
among computer users. – It shields the user from the variations of file storage on different
architectures and allows for a reliable and efficient transfer of data.
Application Layer
SMTP (Simple Mail Transport Protocol) – protocol used to transport electronic mail from one computer to
another through a series of other computers along the route.
DNS (Domain Name System) – resolves the numerical address of a network node into its
textual name or vice-versa. – It would translate www.yahoo.com to 204.71.177.71 to allow
the routing protocols to find the host that the packet is destined for.
Application Layer
Architectures for Network-based Application
Architectures for Network-based Application
Client/server architecture (e.g. WWW) Peer-to-peer architecture (e.g. Napster)
Benefits of the client/server architecture
Effective model for information sharing– Server makes information available for multiple clients– Clients are sure to receive the most up to date information– Server technology can be changed (e.g. a database change)
without effecting clients Clients can be dispersed geographically Server maintenance is easier since if all clients are
connecting to one place. WWW is the universal client/server architecture
– Zero/easy installation
Often referred to simply as peer-to-peer, or abbreviated P2P, peer-to-peer architecture is a type of network in which each workstation has equivalent capabilities and responsibilities.
This differs from client/server architectures where some computers are dedicated to serving the others.
Peer-to-peer networks are generally simpler but they usually do not offer the same performance under heavy loads.
Peer-to-peer architecture
Peer-to-peer architecture
Inherently fault tolerant and more suitable for distributed computing
Lower cost, community-based approach– Sharing of information among friends and family
members
Applications– Collaboration / file sharing– Sharing of music
An important goal in peer-to-peer networks is that all clients provide resources, including bandwidth, storage space, and computing power.
Thus, as nodes arrive and demand on the system increases, the total capacity of the system also increases
Peer-to-peer architecture
Benefits of the peer-to-peer architecture
No central bottle neck, leading to increased robustness (e.g. resistant to denial of service attacks) and scalability
Clients can be dispersed geographically However, there are challenges to maintenance
and operations, e.g.– Finding information– Maintaining consistency among different files
Q & A