221. Develop a data model. What in<strong>for</strong>mation are you going tostore and how will you represent it?2. Develop a collection of legal transactions on that model,e.g., inserts and updates.3. Design the page flow. How will the user interact with thesystem? What steps will lead up to one of those legaltransactions? (Note that "page flow" embraces interactiondesign on Web, mobile browsers, and also via hierarchicalvoice menus in VoiceXML but not conversational speechsystems.)4. Implement the individual pages. You'll be writing scripts thatquery in<strong>for</strong>mation from the data model, wrap thatin<strong>for</strong>mation in a template (in HTML <strong>for</strong> a Web application),and return the combined result to the user.It is very unlikely that you'll have a choice of tools <strong>for</strong> persistentstorage. You will be using an RDBMS and won't be making anyfundamental technology decisions at Steps 1 or 2. Designing thepage flow is a purely abstract exercise. There are some technologyimposedlimits on the interface but those are generally derived frompublic standards such as HTML, XHTML Mobile Profile, andVoiceXML. So you need not make any technology choices <strong>for</strong> Step 3.Step 4 is intellectually uninteresting and also uninteresting from anengineering point of view. An <strong>Internet</strong> service lives or dies by Steps 1through 3. What can the service do <strong>for</strong> the user? Is the page flowcomprehensible and usable? The answers to these questions aredetermined at Steps 1 through 3. However, Step 4 is where you havea huge range of technology choices and there<strong>for</strong>e it seems togenerate a lot of discussion. This course and this book are neutral onthe subject of how you go about Step 4 but we provide someguidance on how to make choices.First, though, let's step back and make sure that everyone knowsHTML.2.7 HTMLHere is some legal HTML:My Samoyed is really hairy.That is a perfectly acceptable HTML document. Type it up in a texteditor, save it as index.html, and put it on your Web server. A Webserver can serve it. A user with Netscape Navigator can view it. Asearch engine can index it.version control system is CVS, Concurrent VersionsSystem: www.cvshome.org.VoiceXMLA markup language used <strong>for</strong> the development of voiceapplications. Using only a traditional Web infrastructure, youcan create applications that are accessible over thetelephone. With VoiceXML, you can specify call flow,speech recognition, and text-to-speech. See the Voicechapter <strong>for</strong> more.W3CThe World Wide Web Consortium. The W3C is an vendorneutralindustry consortium that promotes standards <strong>for</strong> theWorld Wide Web. Popular W3C standards include HTML,HTTP, URL, XML, SOAP, VoiceXML, and many more:www.w3.org.WAPWireless Application Protocol. A set of standardcommunication protocols <strong>for</strong> wireless devices. See theMobile chapter <strong>for</strong> more.Web ServiceThese days, the term Web service typically refers to amodular application that can be invoked through the<strong>Internet</strong>. The consumers of Web services are othercomputer applications that communicate, usually overHTTP, using XML standards including SOAP, WSDL, andUDDI. Sometimes Web service will still be used in the oldersense of the word, as a user-facing application likeamazon.com or photo.net.WeblogSee Blog.Windows NT/2000/XPA real operating system that can run the same programswith more or less the same user interface as the popularWindows 95/98 system. Windows NT was developed fromscratch by a programming team at Microsoft that was mostlyuntainted by the people who brought misery to the world inthe <strong>for</strong>m of Windows 3.1/95. The latest versions of Windowswork surprisingly well.WMLWireless Markup Language. An out-of-date markuplanguage <strong>for</strong> the development of mobile browserapplications. Replaced by XHTML-MP.WorkflowThe management of steps in a business processes. Aworkflow specifies what tasks need to be done, in whatorder (sometimes linearly, sometimes in parallel), and who327
UDDIUnixcustomer's credit card. If the credit card can't be billed, youwant to make sure that the order doesn't get shipped. If theshipping database can't accept the order, you want to makesure that the credit card doesn't get billed. RDBMSes suchas Oracle provide significant support <strong>for</strong> implementingtransactions.Universal Description, Discovery, and Integration. Like aworldwide Yellow Pages, this is an XML-based registrywhere companies can list the Web services they provide.More: uddi.org.An operating system developed by Ken Thompson andDennis Ritchie at Bell Laboratories in 1969, vaguely inspiredby the advanced MULTICS system built by MIT. Unix reallytook off after 1979, when Bill Joy at UC Berkeley released aversion <strong>for</strong> Digital's VAX minicomputer. Unix fragmented intoa bewildering variety of mutually incompatible versions, thusenabling Microsoft Windows to take over most of the servermarket. The only surviving variants of Unix are Sun's Solarisand Linux.URLUni<strong>for</strong>m Resource Locator, also Uni<strong>for</strong>m Resource Identifier(URI). A way of specifying the location of something on the<strong>Internet</strong>, e.g., "http://photo.net/wtr/thebook/glossary.html" isthe URL <strong>for</strong> this glossary. The part be<strong>for</strong>e the colonspecifies the protocol (HTTP). Legal alternatives includeencrypted protocols such as HTTPS and legacy protocolssuch as FTP, news, gopher, etc. The part after the "//" is theserver hostname ("photo.net"). The part after the next "/" isthe name of the file on the remote server. Also see "AbstractURL". More: http://www.w3.org/Addressing/.USENETA threaded discussion system that today connects millionsof users from around the <strong>Internet</strong> into newsgroups such asrec.photo.equipment.35mm. The original system was built inthe late 1970s and ran on one of the wide-area computernetworks later subsumed into the <strong>Internet</strong>.Version Control SystemA system <strong>for</strong> keeping tracking of multiple versions of a file,usually source code. Version control systems are mostuseful when many developers are working together on aproject, to help prevent one developer from overwritinganother developer's changes, and to make it easy to revertto a previous version of a file. An excellent open-sourceSuppose you want something more expressive. You want the wordreally to be in italic type:My Samoyed is really hairy.HTML stands <strong>for</strong> Hypertext Markup Language. The is markup. Ittells the browser to start rendering words in italics. The closesthe element and stops the italics. If you want to be more tasteful,you can tell the browser to emphasize the word really:My Samoyed is really hairy.Most browsers use italics to emphasize, but some use boldface andbrowsers <strong>for</strong> ancient ASCII terminals (e.g., Lynx) have to ignore thistag or come up with a clever rendering method. A picky user with theright browser program can even customize the rendering of particulartags.There are a few dozen more tags in HTML. You can learn them bychoosing View Source from your Web browser when visiting siteswhose <strong>for</strong>matting you admire. You can look at the HTML referencechapter of this book. You can learn them by visitinghttp://dir.yahoo.com/Computers_and_<strong>Internet</strong>/Data_Formats/HTML/Guides_and_Tutorials/ and clicking through to one of thecomprehensive online HTML guides. Or you can buy HTML &XHTML: The Definitive Guide (Musciano and Kennedy; O'Reilly,2002).Document StructureArmed with a big pile of tags, you can start strewing them amongyour words more or less at random. Though browsers are extremely<strong>for</strong>giving of technically illegal markup, it is useful to know that anHTML document officially consists of two pieces: the head and thebody. The head contains in<strong>for</strong>mation about the document as a whole,such as the title. The body contains in<strong>for</strong>mation to be displayed bythe user's browser.Another structure issue is that you should try to make sure that youclose every element that you open. If your document has a it should have a at the end. If you start an HTML table witha and don't have a , a browser may displaynothing. Tags can overlap, but you should close the most recentlyopened be<strong>for</strong>e the rest, e.g., <strong>for</strong> something both boldface and italic:32623
- Page 1 and 2: SoftwareEngineering forInternetAppl
- Page 3 and 4: Signature: ________________________
- Page 5 and 6: end-users. We use every opportunity
- Page 7 and 8: • availability of magnet content
- Page 9 and 10: • we want to see if a student is
- Page 11 and 12: you supply English-language queries
- Page 13 and 14: What to do during lecturesWe try to
- Page 15 and 16: The one-term cram courseWhen teachi
- Page 17 and 18: 332• spend a term learning how to
- Page 19 and 20: Once we've taught students how to b
- Page 21: has permission to perform each task
- Page 25 and 26: thousands of concurrent users. This
- Page 27 and 28: OraclePerlnamed XYZ" without the pr
- Page 29 and 30: LDAPLinuxbits per color, a vastly s
- Page 31 and 32: FilterFirewallFlat-fileGIF318functi
- Page 33 and 34: when there is an educational dimens
- Page 35 and 36: system. The authors of the core pro
- Page 37 and 38: Sign-OffsTry to schedule comprehens
- Page 39 and 40: scheduling goals that both you and
- Page 41 and 42: Client Tenure In Job (new, mid-term
- Page 43 and 44: ReferencesEngagement ManagementSQL*
- Page 45 and 46: Decision-makers often bring senior
- Page 47 and 48: presentation to a panel of outsider
- Page 49 and 50: 300always been written by programme
- Page 51 and 52: 17.3 Professionalism in the Softwar
- Page 53 and 54: Try to make sure that your audience
- Page 55 and 56: Chapter 17WriteupIf I am not for my
- Page 57 and 58: Suppose that an RDBMS failure were
- Page 59 and 60: analysis programs analyzing standar
- Page 61 and 62: at 9 hours 11 minutes 59 seconds pa
- Page 63 and 64: found" will result in an access log
- Page 65 and 66: 15.18 Time and MotionThe team shoul
- Page 67 and 68: select 227, 891, 'algorithm', curre
- Page 69 and 70: create table km_object_views (objec
- Page 71 and 72: • object-create• object-display
- Page 73 and 74:
The trees chapter of SQL for Web Ne
- Page 75 and 76:
);274-- ordering within a form, low
- Page 77 and 78:
and start the high-level document f
- Page 79 and 80:
Example Ontology 2: FlyingWe want a
- Page 81 and 82:
systems. What would a knowledge man
- Page 83 and 84:
spreadsheet". Other users can comme
- Page 85 and 86:
Chapter 15Metadata (and Automatic C
- Page 87 and 88:
{site url}{site description}en-usCo
- Page 89 and 90:
drawing on the intermodule API that
- Page 91 and 92:
At this point you have something of
- Page 93 and 94:
• description• URL for a photo
- Page 95 and 96:
Here's a raw SOAP request/response
- Page 97 and 98:
Chapter 14Distributed Computing wit
- Page 99 and 100:
conduct programmer job interviews h
- Page 101 and 102:
Most admin pages can be excluded fr
- Page 103 and 104:
content that should distinguish one
- Page 105 and 106:
Chapter 13Planning ReduxA lot has c
- Page 107 and 108:
the Internet-specific problem of no
- Page 109 and 110:
wouldn't see these dirty tricks unl
- Page 111 and 112:
12.8 Exercise 4: Big BrotherGeneral
- Page 113 and 114:
than one call to contains in the sa
- Page 115 and 116:
A third argument against the split
- Page 117 and 118:
way 1 1/16One might argue that this
- Page 119 and 120:
absquatulate 612bedizen 36, 9211cry
- Page 121 and 122:
What if the user typed multiple wor
- Page 123 and 124:
Chapter 12S E A R C HRecall from th
- Page 125 and 126:
long as it is much easier to remove
- Page 127 and 128:
features that are helpful? What fea
- Page 129 and 130:
made it in 1938)? Upon reflection,
- Page 131 and 132:
environment, we identify users by t
- Page 133 and 134:
those updates by no more than 1 min
- Page 135 and 136:
Balancer and mod_backhand, a load b
- Page 137 and 138:
translation had elapsed--the site w
- Page 139 and 140:
It seems reasonable to expect that
- Page 141 and 142:
11.1.5 Transport-Layer EncryptionWh
- Page 143 and 144:
such as ticket bookings would colla
- Page 145 and 146:
give their site a unique look and f
- Page 147 and 148:
It isn't challenging to throw hardw
- Page 149 and 150:
Chapter 11Scaling GracefullyLet's l
- Page 151 and 152:
10.15 Beyond VoiceXML: Conversation
- Page 153 and 154:
Consider that if you're authenticat
- Page 155 and 156:
In this example, we:194• ask the
- Page 157 and 158:
As in any XML document, every openi
- Page 159 and 160:
(http://www.voicegenie.com). These
- Page 161 and 162:
Chapter 10Voice (VoiceXML)questions
- Page 163 and 164:
9.15 MoreStandards information:•
- Page 165 and 166:
9.14 The FutureIn most countries th
- Page 167 and 168:
9.10 Exercise 7: Build a Pulse Page
- Page 169 and 170:
9.6 Keypad HyperlinksLet's look at
- Page 171 and 172:
text/xml,application/xml,applicatio
- Page 173 and 174:
Protocol (IP) routing, a standard H