Title: Robert Zimmer
1Web-Based Computing
- Robert Zimmer
- Room 6, St Johns 29
- R.Zimmer_at_gold.ac.uk
- Office Hours
2The Return of Mickey Mouse
- Last year, we saw the Sorcerer's Apprentice as an
example of how software projects can go wrong - This year, we see it as a model of modern
computing system
3- Mickey has a lot of water to move
- For water, thing about information
- At first, he delivers it all himself
- Then he has a system to deliver it one load (two
buckets) at a time
4- Then he has a brilliant accident
- He makes lots of new wap-enabled brooms all
getting the information at the same time - Notice that each broom is really controlling
himself - This can be a problem
- But it can be an opportunity
5- So, we have one pool of water (The Server) and
lots of different brooms (the clients) - And that is what the course is about
- Almost
- Really there are lots of different pools of water
and brooms going around from pool to pool
6The image
- We have lots of pools of water
- Some spilled water
- And lots of brooms surfing in the water from pool
to pool, taking water out of each - Sometimes even putting water into some of the
pools - The Surfing Broom
7So what kinds of problems come up?
- Too many brooms at the same pool
-
- Two Brooms politely waiting for each other to go
first - A broom gets lost Impossible to work out which
pools have the right kind of water
8- It gets too slow for a broom get his water if
there are lots of brooms there already - The water keeps going off and need to be replaced
by the water that complies with the new European
Standard
9What this course is about
- Applications distributed across a number of
computers - Maintaining your own well
- Not principally a programming coures, but Java
used for illustration
10The rationale for using Java
- Portable
- Exhibits all the main features of object
orientation - Has hooks into the main distributed technologies
- Free and widely available
11Distributed system functions
Distributed functions
Core functions are those which are found in any
type of application, maintaining the well
Core functions
Distributed functions are those concerned with
maintaining distributed system and controlling
access (talking to the brooms)
12Example (i) auction sites
- Auctions either held in real-time or in elapsed
time - Uses the Web
- Profit made from commissions and also from banner
adverts
13Example (ii) search engines
- Used to find information on the Web
- Many general purpose engines, for example Lycos,
Yahoo - Mainly use automatic indexing, some use human
indexers - Revenue from advertising
14Change notification sites
- The Web is incredibly dynamic pages disappear or
are updated very frequently - Such sites inform webmasters when these events
happen - Revenues raised from charging for the service or
banner adverts
15Email providers
- Provide Web-based email services
- Sometimes the service is tiered with the lower
tier free - Revenues from banner advertising.
- One of the most popular applications
16The main facilities of the Internet
- The World Wide Web
- FTP
- Email
17The World Wide Web
Browsers
Browsers
Browsers
Web server
18The Web
- Simple but large distributed system
- Servers provide Web files
- Browsers consume and display Web files
- Web documents expressed in HTML
- Two way communication, via forms
- Example of clients and servers
19Issues in distributed application development (i)
- Legacy technology
- Space problems
- Stateless server dispensing static pages
- Security and privacy
- Programming and abstraction
20Issues in distributed application development (ii)
- Transactions
- Speed of development
- Standards
- Design
21Legacy technology
- The initial design of the Web was simple static
pages and no dynamic content Changed - Addresses running out Changing
- Web protocol is stateless Changed
22Security and privacy
- Internet is an open system.
- Architecture and protocols are public
- Good effect is that errors can be spotted and
rectified quickly - Bad effect is that privacy can be compromised
23How secure is the Internet?
- In 1996 Dan Farmer, one of the leading
members of the Internet security community,
analysed a number of Internet sites using a tool
known as SATAN which reports on security
vulnerabilities. He discovered that out of the
2200 sites he accessed, 1700 were relatively easy
to attack (77 per cent of the sites). This is a
staggering figure however, what makes it more
staggering is the fact that Farmer chose sites
which should have been neurotic about security,
for example sites owned by banks, government
agencies, insurance companies and credit card
companies.
24Speed of development
- Faster development times needed for Internet
applications - Hence the need for OO languages
- A potential use for patterns
- More and more companies using rapid development
methods
25Problems with transactions
- A transaction is applied to stored data and can
alter the data - Concurrency problems
- Inconsistent update problems
- Data changed in the presence of failure
26Distributed system design
- Designing core functions is just as in
conventional systems - However there are design issues concerned with
- Reliability
- Transmission media
- Speed
27Design
Transmission media can fail
A server can malfunction
Client
Client
Client
Transmission media can be slow
Server
28Design issues
- Coping with server failure
- Coping with transmission media failure
- Coping with slow transmission speeds such as
those found in the Internet - Coping with synchronicity
29The Internet
30The Internet is an open system
- Details publicly available
- A lot of software is free
- Lots of publicly available expertise available
via such things as newsgroups - Dangers with privacy
31Implications of open systems
- Wide variety of implementations, for example of
TCP/IP - Cost of implementation less
- High level of compatibility
- Wide variety of developers selling products
32The First Problem we will address
- How to make it clear what kinds of water you have
- How to get your data in a form that everybody can
understand
33What most data looks like now HTML
ltHTMLgt ltHEADgt ltTITLEgt Johns Sheep Farm
lt/TITLEgt lt/HEADgt ltBODYgt ltH1gt My Sheep Farm
lt/H1gt Hi I have a farm where I keep sheep. Sheep
are lovely and woolly. So am I. ltULgt ltLIgt My
favourite sheep is called Buttercup lt/LIgt ltLIgt
My first sheep was called Betty. lt/LIgt ltLIgt I am
a fanatical Welsh rugby supporter.
lt/LIgt lt/ULgt lt/BODYgt lt/HTMLgt
34Some Things to notice
- The tags come in pairs
- The tags are only about formatting
- There is no way to know that a browser should not
be turn up this page for a query about the
flowers called buttercups.
35Anchors and links
- HTML provides facilities whereby documents can
link to other documents either on the same
computer or on another one - Uses anchors
- Clicking a link transfers to the new page
36An example
ltULgt ltLIgt ltA HREF http//www.SheepAreUs.com/ho
megt A good place to buy sheep online lt/Agt
lt/LIgt lt/ULgt
37URL
- Known either as Uniform Resource Locator or
Universal Resource Locator - Is an address of a Web page or other resource
- Links can be web pages, mail, newsgroups, FTP etc
38An example of a URL
http//www.open.ac.uk/staff/Darrel
Specifies location of Web page
Specifies Web page
Specifies computer
39Forms
- HTML has facilities for making GUIs for form
filling,m for example - Forms contain visual objects such as text fields,
buttons, select boxes etc. - When a form is completed data is sent to the Web
server and a program executed
40An example of an HTML form (i)
ltFORM METHODPOST ACTION/cgi-bin/Form1process
gt ltPgt Please type your name below lt/Pgt ltPgt ltINPU
T TYPETEXT NAMEnameField MAXLENGTH30gt lt/P
gt ltPgt Please type your address
below lt/Pgt ltPgt ltTEXTAREA NAMEaddField
ROWS5 COLS40gt lt/TEXTAREAgt lt/Pgt ltPgt MaleltIN
PUT TYPERADIO NAMEmaleButton VALUEmButt
gt lt/Pgt
41An example of an HTML form (ii)
ltPgt FemaleltINPUT TYPERADIO NAMEfemaleButton
VALUEfButtgt lt/Pgt ltPgt   ltINPUT
TYPESUBMIT Â Â VALUESubmitgt lt/Pgt lt/FORMgt
Form contains two radio buttons, a text field
and a text area
42Our First Real Topic XML
43XML
- Extensiblethats what the X means
- Not a markup language but a language for defining
markup languages - Tags not about layout, but about meaning
(semantics)
44Rationale for XML
- Difficulties with browser display
- HTML non-standard
- Difficult to impossible to discern semantics from
a markup language
45Aims of the XML designers
- Easy to use on the Internet
- Capable of supporting a large number of
applications - Compatible with SGML
- Should not be complicated to develop XML
processors - Only a small number of optional facilities
- Documents in XML should be easy to understand
- Editors should be capable of constructing HTML
documents
46XML as a central repository of data
Spreadsheet
Word processed document
Relational database
Web pages
Document in XML
47An example of a simple XML-based markup language
ltPRODUCTgt ltPRODUCTNAMEgt CoatBluelt/PRODUCTNAMEgt ltPR
ODUCTPRICEgt 34000lt/PRODUCTPRICEgt .. lt/PRODUCTgt
Similar to HTML but contains semantic markers
48An example of an XML definition
lt?xml version 1.0 encoding UTF-8"?gt lt!DOCTYP
E ENTRY lt!ELEMENT ENTRY ENTRYPAIRgt lt!ELEMENT
ENTRYPAIR (NAME, DEFINITION)gt lt!ELEMENT NAME
(PCDATA)gt lt!ELEMENT DEFINITION (PCDATA)gt gt
Sequence of pairs consisting of a name and a
definition.
49XML used to define attributes
lt!ELEMENT TOWN (COUNTY, POPULATION)gt ltATTLIST
TOWN NAME CDATA REQUIREDgt
The element TOWN has an attribute NAME which
contains char data and is always required
50Processing XML documents (i)
- Done via parsers
- Parser can be conforming or non-conforming
- Conforming checks everything
- Non-conforming just makes rudimentary checks
- Most parsers conforming
51Processing XML documents(ii)
- Many parsers written in Java
- Parsers can be in-memory based they build up a
tree. - Parsers can also be event-based they trigger
processing when some XML element is encountered
52Event-based processing
public void startElement(String tagName) String
currentTag tagName ..
Executed when a start element is encountered,
for example ltTOWNgt. tagName assumes the value of
the tag name
53An example of XML in action
- Scaleable vector graphics (SVG)
- WWW standard
- Vector graphic standard
- Attempt to develop a standard for such graphics
- Can be used for text searching
54SVG source
ltSVG width 3in height 2ingt ltDESCgt This is
a sample circle drawn for the book
Distributed Applications and E-Commerce lt/DESCgt ltG
gt ltCIRCLE style fill red stroke black cx
100 cy 100 r 100/gt lt/Ggt lt/SVGgt
55Associated technologies
- XHTML, a standard version of XML
- XSL, a style sheet transformation technology used
to convert XML source into some other form, for
example rtf - XSL formatting objects, transformation to text
document