);96('submitted','rejected','approved','expired'))create view articles_approvedasselect *from articles_rawwhere editorial_status = 'approved';If you change your mind about how to represent approval status, youwon't need to update dozens of Web scripts; you need only changethe definition of the articles_approved view. (See the viewschapter of SQL <strong>for</strong> Web Nerds athttp://philip.greenspun.com/sql/views <strong>for</strong> more on this idea of usingSQL views as a means of programming abstraction.)6.2 Comments on ArticlesRecall the six required elements of online community:1. magnet content authored by experts2. means of collaboration3. powerful facilities <strong>for</strong> browsing and searching both magnetcontent and contributed content4. means of delegation of moderation5. means of identifying members who are imposing an undueburden on the community and ways of changing theirbehavior and/or excluding them from the community withoutthem realizing it6. means of software extension by community membersthemselvesA facility that lets a user post an alternative perspective to apublished article is a means of collaboration that distinguishes a onewaypublishing site from an online community. More interestingly, thefacility lifts the <strong>Internet</strong> application out of the constraints of the literateculture within which Western culture has operated ever sinceGutenberg (1452). A literate culture produces such works as theMichelin Green Guide to Italy: "Extending below the town is the parkof the 16th-century Villa Orsini (Parco dei Mostri) which is aMannerist creation with a series of fantastically shaped sculptures."If a friend of yours came back from this place and showed theseslides, you'd expect to hear something much richer and moreinteresting than the Michelin Guide's sentence. A literate cultureoperates with the implicit assumption that knowledge is closed, that3. Self-description: A machine-readable way <strong>for</strong> programs todescribe how they are supposed to be called, e.g., with WebServices Description Language (WSDL).4. Discovery: A way <strong>for</strong> programs to automatically learn aboutother programs, e.g., with Universal Description Discoveryand Integration (UDDI), standardized by www.uddi.org.We're currently moving from an environment where applications aredeployed on individual machines and Web servers, to a world whereapplications are composed of pieces -- called services in the currentjargon -- that are spread across many different machines, and wherethe services interact seamlessly and transparently to produce anoverall effect. While the consequences of this change could be minor,it's also possible that they could be as profound as the introduction ofthe Web. In any case, companies are introducing new Web serviceframeworks that exploit the new infrastructure. Microsoft's .NET isone such framework.In this chapter, you'll build applications that consume Web services tocombine data from from your online learning community with remotedata in Google and Amazon. You'll be building SOAP clients to thesepublic services. In the final exercises you'll be creating your ownservice that provides in<strong>for</strong>mation about recent content appearing inyour community. You'll make this service available both in the de jurestandard of SOAP and the de facto standard of RSS, a breakout fromthe world of weblogs.**** insert figure *****Figure 1: A Web services interaction. Human users talk to servers Aand B via the HTTP protocol receiving results in HTML pages. WhenServer A needs to invoke a procedure on Server B it first tries tofigure out what the names of the functions are and their arguments.This in<strong>for</strong>mation comes back in a Web Services DescriptionLanguage (WSDL) document. Using the in<strong>for</strong>mation in that WSDLdocument, Server A is able to <strong>for</strong>mulate a legal Simple ObjectAccess Protocol (SOAP) request and process the results.14.1 SOAP on the WireDepending on what tools you're using you might never need to knowwhat SOAP requests and replies actually look like. Nonetheless let'sstart with a behind-the-scenes look at SOAP messages, which aretypically sent across the network embedded in HTTP POSTs.253
Chapter 14Distributed Computing with HTTP, XML,SOAP, and WSDLItalian tourism can fit into a book. Perhaps the 350 pages of theGreen Guide aren't enough, but some quantity of writers and pageswould suffice to encapsulate everything worth knowing about Italy."I think there is a world market <strong>for</strong> maybe five computers." - ThomasWatson, chairman of IBM, 1943Perhaps Watson was off by four.In the early 90s, few people had heard of Tim Berners-Lee's WorldWide Web, and, of those that had, many fewer appreciated itssignificance. After all, computers had been connected to the <strong>Internet</strong>since the 1970s, and transferring data among computers wascommonplace. Yet the Web brought something really new: theperspective of viewing the whole <strong>Internet</strong> as a single in<strong>for</strong>mationspace, where users accessing data could move seamlessly andtransparently from machine to machine by following links.A similar shift in perspective is currently underway, this time withapplication programs. Although distributed computing has beenaround <strong>for</strong> as long as there have been computer networks, it's onlyrecently that applications that draw upon many interconnectedmachines as one vast computing medium are being deployed on alarge scale. What's making this possible are new protocols <strong>for</strong>distributed computing built upon HTTP, and that are designed <strong>for</strong>programs interacting with programs, rather than <strong>for</strong> people surfingwith browsers.There are several kinds of protocols:1. Data exchange: Something better than scraping text fromWeb pages intended <strong>for</strong> humans to read. As you saw in theBasics chapter, you can use XML here.2. Program invocation: Some way to do remote methodinvocation, that is, <strong>for</strong> programs to call programs running onother machines and to reply to such invocations. Theemerging standard here, submitted to the Web Consortiumin May 2000, is called SOAP (Simple Object AccessProtocol).Oral cultures do not sharethis belief. Knowledge isopen-ended. People mayhold differing opinions withoutone person being wrong.There is not necessarily onetruth; there may be manytruths. Though he didn't growup in an oral culture,Shakespeare knew this.Watch Troilus and Cressidaand its five perspectives onthe nature of a woman's loveand try to figure out whichperspective Shakespearethinks is correct.Feminists, chauvinists,warmongers, pacifists, Jewhaters,inclusivists, cautiouspeople, heedless people,misers, doctors, medicalmalpractice lawyers, atheists,and the pious are all able toComments are often the mostinteresting material on a site. Here'sone fromhttp://philip.greenspun.com/humor/billgates:"I must say, that all of you who do notrecognize the absolute genius of BillGates are stupid. You say that bill gatesstole this operating system. Hmm.. ifind this interesting. If he stole it fromsteve jobs, why hasn't Mr. Jobsrelentlessly sued him and such.Because Mr. Jobs has no basis tosupport this. Macintosh operatesNOTHING like Windows 3.1 or Win95/NT/98. Now <strong>for</strong> the mac dissing.Mac's are good <strong>for</strong> 1 thing. Graphics.Thats all. Anything else a mac sucks at.You look in all the elementary schoolsof america.. You wont see a PC. Youllsee a mac. Why? Because Mac's areonly used by people with undevelopedbrains."-- Allen (chuggie@geocities.com),August 10, 1998quote Shakespeare in support of their beliefs. That's becauseShakespeare uses the multiple characters in each of his plays toshow his culture's multiple truths.In the 400 years since Shakespeare we've become much moreliterate. There is usually one dominant truth. Sometimes this isbecause we've truly figured something out. It is tough to argue that aphysics textbook on Newtonian mechanics should be an open-endeddiscussion (though a user comment facility might still be very usefulin providing clarifying explanations <strong>for</strong> confusing sections). Yet evenin the natural sciences, one can find many examples in which theculture of literacy distorts discourse.25297
- 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 and 22:
has permission to perform each task
- Page 23 and 24:
UDDIUnixcustomer's credit card. If
- 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: Here's a raw SOAP request/response
- 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