13.07.2015 Views

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

);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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!