Top Banner
An Idiosyncratic History of Web- Page Generation Denise Draper Dev Manager Webdata XML Microsoft
30

An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

Jan 28, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

An Idiosyncratic History of Web-Page GenerationDenise DraperDev Manager Webdata XMLMicrosoft

Page 2: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

211/22/2005

Outline

First generation: scripting and stylesheets

Second generation: DHTML and Applets

Third generation(?): AJAX Where next?

Page 3: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

311/22/2005

In the beginning was HTML

Beginnings around 1990, derived from SGML

<HTML> <TITLE> A sample HTML instance </TITLE> <H1> An Example of Structure </H1> Here's a typical paragraph. <P> <UL> <LI> Item one has an <A HREF="http://info.cern.ch/..."> anchor </A> <LI> Here's item two. </UL></HTML>

Page 4: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

411/22/2005

In the beginning was HTML

Key features:Easier than SGML to parse and renderOpen format: run on any HW & OSText base made editing easyHTTP for linking

Downsides:Hard to find stuff… Yahoo to the rescuePages are static: no interactivity

Page 5: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

511/22/2005

Which quickly begat scripting Server-side scripting was first:

CGI scriptsForms in HTML passed parameters via

URL query notationMany languages used, especially Perl

Example: http://www.census.gov/cgi-bin/gazetteer

Page 6: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

611/22/2005

Which quickly begat scripting Key features:

Parameters made it possible to generate custom web pages

Downsides:Downloading the same boilerplate for all

pages started to get annoying.

Page 7: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

711/22/2005

And Stylesheets

<p class="intro">… Applies the “intro” style to the paragraph

<span STYLE="font-size: x-large; color: #ffffff">…

Inline definition of styling attributes

<span STYLE="display: none">…

Doesn’t show range of text at all

Originally designed to simplify web pages by separating content from style

Separation of stylesheets allowed controlling common formatting for a whole web site

The use of display=none was used as a way to separate content from control

Page 8: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

811/22/2005

Mimeviewer: a side-bar in history Stylesheets taken to the limit:

Stylesheet as a transformation program (XSL)

Content is sent as XML Still used in some places, e.g. for

localization

Page 9: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

911/22/2005

Checkpoint: what’s what

Server:Serves static HTML

pagesor creates w/ CGI scripts

click=HTTP request url+paramsHTTP Response=HTML

User experience:Click = page load

some pages customized

Browser:Renders HTML pages

Understands stylesheets

(Approx 1995, Netscape 3, IE 3)

Page 10: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1011/22/2005

Wouldn’t it be cool if

The page could really be a tiny program that ran on the client? Java applets Microsoft ActiveX controls

The page could be updated in place to change it’s content? Mimeviewer + Data Islands DHTML = HTML 4.0/CSS + javascript

… And thus we have Netscape/IE 4

Page 11: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1111/22/2005

Java Applets: run code in the browser <APPLET> tag introduces applet

content Applet

Runs in its own sandboxed processKeeps its own stateHas full rendering capabilities Is fully interactive (responds to events

and can generate its own behavior)

Page 12: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1211/22/2005

Applet Example

Page 13: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1311/22/2005

ActiveX

Same idea, but:Windows specificUses components installed in OSExecution not sandboxed…thus both powerful and the source of

many security concerns

Page 14: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1411/22/2005

Applets/ActiveX

Key features:Arbitrary code (java or windows)Complete interactivity

Downsides:Slow to downloadHave to write codeProgramming model tricky (especially

state management)

Page 15: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1511/22/2005

DHTML keeps the focus on HTML The D stands for dynamic, which really

means self-modifying In memory representation (DOM) of page

Individual elements can be identified by id:<p id="intro">…

DOM is modified by client-side scripts<script language="JavaScript">

document.getElementbyID("intro").color=red</script>

Scripts are triggered by events Page is re-rendered as it changes

Page 16: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1611/22/2005

DHTML Example

Page 17: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1711/22/2005

DHTML

Key features:Modify parts of pages without reload

Downsides:SlowProgramming model tricky (mixing

server & client-side scripting)Hard to make it look good

Page 18: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1811/22/2005

Advanced demo: OWA

Page 19: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

1911/22/2005

Checkpoint: what’s what

Server:Serves/creates HTML

pages containing client-side script;

Serves applets or activeX

HTTP request postResponse=HTML or download

Browser:Renders HTML pages;

Understands stylesheets;Provides execution context for

code; Presents drawing surface for

code;Manages in-memory DOM for

pages;Provides event management

User experience:Local interactivity;

Some pages “page-like” (DHTML)Some pages or regions completely “rich

client”;Slow download times

(Approx 1997, Netscape 4, IE 4)

mouse action etc=event

Page 20: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2011/22/2005

Then nothing happened for awhile Continuing innovation 1991-1997 Relative calm 1998-2003 In fact, lots of cool ideas fell by the

wayside Why?

Page 21: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2111/22/2005

Why?

Not enough bandwidth New technologies not broadly supported;

web designers went for least common denominator

Change of focus Push technologies “channels” (sorta like RSS),

died Then Web services, J2EE, .NET and the .com

boom/bubble

Page 22: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2211/22/2005

Then came AJAX

Asynchronous Javascript and XML Mostly just putting the pieces together:

Client-side script or code running in thread Manipulating the DHTML DOM And using HTTP request to get bits of data to

feed into page Asynchronously: don’t wait for response

Google Suggest the quintessential example: http://www.google.com/webhp?complete=1&hl=en

This is the key point!

Page 23: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2311/22/2005

AJAX Example

Page 24: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2411/22/2005

Checkpoint: what’s what

HTTP request postResponse=HTML or download

(Approx 2004)

mouse action etc=event

Page 25: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2511/22/2005

Why now?

Well somebody gave it a name… Seriously:

Critical capability (XMLHTTPRequest) supported by all major browsers

Everybody has broadbandWeb services re-applied to browser

applications

Page 26: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2611/22/2005

So what’s next?

Factors:Rich media everywhereDevices everywhereShared data “in the cloud” In the home: personalization, sharing In enterprise: manpower the dominant

cost

Page 27: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2711/22/2005

What’s next?

Blur the line between rich client and web client Interaction models: indistinguishableDeployment model: indistinguishable?

If the cloud is the master, and your device simply caches some stuff…

Applies both to bits (the executable) and state (your data)

Microsoft projects: Avalon

Page 28: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2811/22/2005

So what’s next?

Creating the client application Code is still too complicated

State management, multi-threading Systems like Ruby on Rails make lots of built in

assumptions to simplify development Many form factors

Separating data from presentation (again) web services for data personalized & device-dependent styles

Support for development and debugging

Page 29: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

2911/22/2005

Credits + References

Derek Denny-Brown Saw lots of history in Microsoft

Useful web pages for history: http://www.livinginternet.com/ http://www.dejavu.org/

Useful web pages for AJAX http://en.wikipedia.org/wiki/AJAX http://www.xml.com/pub/a/2005/02/09/xml-http-request.html Tutorial (JSP):

http://www-128.ibm.com/developerworks/edu/wa-dw-wa-ajax-i.html?S_TACT=105AGX59&S_CMP=HP&dgr-lnxw09AJAXapps

Page 30: An Idiosyncratic History of Web-Page Generation Denise Draper Dev Manager Webdata XML Microsoft.

The End

Questions?