14. Application and Web Page
Application
Standalone
Performs some functionality
Installed binaries
Highly interactive
Web Page
Run in Applications (Browser)
Displays information
Temporary content
Less interactive
15. Application or Web Page
Web Page
Not installed
Launched in Browser
Application
Allows Chat
Audio, video enabled
Not just displays data
?
16. Web Applications
16
Web applications
Applications in the browser
Applications, but not
installed
Web pages highly
interactive
There are 2 type of Websites
• That display some stuff like
magazines (webpages)
• That allow to perform some
stuff like softwares (web
applications)
17. Application challenges
- Portability
- Extensibility
- Updating
- Easy deployment
What are the options to implement an application?
C/ C++ exe
C/ C++ library (static/ dynamic)
Java classes
Scripting languages (perl, pyhthon, javascript)
18. Implementing as Web application
Deployment
Just a URL http://www.mathfunctions.com/factorial&n=5
Portability
NO OS/ programming language dependency
Extensibility
Can be used in numerous applications without changing the server module
Updating
Any changes in server side doesn’t affect client implementations
18
20. Evolution of Computers
Computers came into
existence
They made user’s life
easier
20
But life of developer was
hard
Programming languages
were highly dependent on
hardware
For same application, code
had to be re-written for
another hardware!!
21. Evolution of Operating Systems
21
Operating System
HW HW HWHW
Code Code CodeCode
One
Hardware
The
Hardware
specific
Code
New
Hardware
Rewrite
Code
Code
Single
Code for all
Hardware !!
22. Hence the Applications
Applications are compiled to Native Binaries (executables)
Technologies
C
C++
Pros
Can directly access system level APIs
Fast in execution
Cons
To maintain different application binaries for different operating systems
Big development effort required
23. Evolution of Virtual machines
23
Virtual Machine
OS OS OSOS
Code Code CodeCode
One OS
The OS
specific
Code
New OS
Rewrite
Code
Code
Single
Code for all
OS !!
24. Applications compiled for Virtual Machines
Technologies
Java (J2SE)
.NET
Action Script (Flex)
Scripting languages
Perl, Pyhton, PHP etc.
Pros
Single application for different OS hence easier to maintain
Less development effort
Cons
Target OS must have the virtual machine installed in order to execute the
application
Slow in execution as compared to Native OS Applications
Don’t have access to system level APIs
26. Web/ Internet
DARPA/ ARPA (Advanced Research Projects Agency)
Defense programs during the cold war era
Goal: Command and control network that would survive a nuclear war
Problems: Circuit switch networks (e.g. Telephone) are vulnerable as loss of line or a
switch may hamper the communication
Solution: Distributed, packet switched networks
The number of machines, networks and users increased dramatically after the advent of
TCP/ IP- the Internet
TCP/IP Reference model and the protocol is the glue that holds internet together
Growth of universal services on top of TCP/IP infrastructure (Application layer)
E-mail
File transfer
Remote login
World Wide Web (WWW)
28. Basic Web System - example
Google Web Server
Browser requests
a web page from
www.google.com
Generates an HTML
and sends it as
response
29. HTTP Basics
HTTP Client HTTP Server
HTTP Request
HTTP Response
• Every HTTP Request can be of following predefined HTTP
methods
•GET – download a resource
•HEAD – retrieve header information of a resource
•PUT – upload a resource to the server
•POST – submit data to be appended to a resource
•DELETE – delete a resource
• HTTP protocol consists of 2 distinct items
•HTTP Request – what the user wants to do
•HTTP Response – output of the request
30. Web (Till mid 90s)
Features
Page metaphor
Synchronous
Smaller set of UI controls
Mostly text oriented
One way traffic, not participative
Lacked
Rich Content
Images
Audio
Video
Interactivity
31. Page Metaphor and synchronous web
A new HTML page is loaded on every request, like searching
something on google.com
Which means entire content reloaded on every HTTP request.
Issues
Most of the times, entire content need not to be updated in the web
page
Slows down the work speed
Looks irritating
So people felt need of Asynchronous Web!!
31
32. Technologies
Client Side
HTML – a mark up language rendered by Browsers
Java Script – to put some logic in web pages executed by Browsers
Server Side Scripts (executed by a web server)
ASP/ ASP .NET
PHP
Coldfusion
Java via JSP
Perl
Pyhton
Ruby
32
33. Asynchronous Web
33
Allowed websites to update data without fetching entire web page.
Impact
• Allowed fast user interactivity with web pages
• Users turned into publishers
• Personal web sites were replaced by blogs
• Birth of wikis
• Social networking websites came into existence
• User participations on web reached billion benchmark
• Web giant innovated monetizing techniques for web
• Web advertisements market
34. Technologies
Java Applets (1995)
Allow compiled client-side code to load data asynchronously from the
web server
Required JVM to ne installed at client machines
XMLHTTPRequest (1999)
Fetches XML data asynchronously from web
Invoked from java script
Core component of AJAX
Became widely known after used by Google in Gmail(2004) and
Google maps(2005)
34
35. AJAX – Asynchronous JavaScript & XML (2005)
Only a name given to a set of tools that were already existing
HTML and CSS for presenting
Java script for local processing (client side functionality)
XMLHTTPREquest object – used to send or receive data from server
asynchronously
Accepted as an official web standard in 2006 by W3C.
35