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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 12S E A R C HRecall from the Planning chapter our principles of sustainable onlinecommunity:2261. magnet content authored by experts2. means of collaboration3. powerful facilities <strong>for</strong> browsing and searching bothmagnet content 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 sustainable online community is one that can accomodate newusers. If Joe Novice, via browsing and searching, cannot find existingcontent relevant to his needs, he will ask questions that will annoyother community members: "Didn't you search the archives?","Haven't you read the FAQ?" Long-term community members,instead of being stimulated by discussion of new and interestingtopics, find their membership a tiresome burden of directing newusers to pages that they "should" have been able to find on their own.A community's first line of defense is high quality in<strong>for</strong>mationarchitecture and navigation, as discussed at the end of the ContentManagement chapter. Users are better at browsing than <strong>for</strong>mulatingsearch queries. A community's second line of defense, however, is asuperb full-text search facility. The search database must includeboth publisher-authored and user-contributed content. Here are someexample query categories:• question answering: e.g., planning a trip to Sanibel Island(Florida) to take pictures of birds and wanting to know whichlong telephoto lens to rent, the user types "best lensSanibel"• navigation: the user knows that a document exists on theserver but can't remember where it is, e.g., rememberingthat a tutorial exists on how to take pictures in gardens, theuser types "garden photography"IBM Corporation carried out some studies around 1970 anddiscovered the following required computer response times:• 0.1 seconds <strong>for</strong> direct manipulation, e.g., moving objectsaround on a screen with a pointer.• 1 second <strong>for</strong> maximum productivity in screen-click-screensystems such as they had on the IBM 3270 terminal back in1970 and we have on the Web in 2003• less than 10 seconds to hold the full attention of a user;when response times extended beyond 10 seconds userswould try to engage in another task, such as reading amagazine, while also using the computer applicationA reasonable goal to strive <strong>for</strong> in an <strong>Internet</strong> application is subsecondresponse time. This goal is based partly on IBM's research,partly on the inability to achieve (in 2003) the 0.1-second mark atwhich direct manipulation becomes possible, and partly based onwhat is being achieved by the best practitioners. Your users will haveused Amazon and Yahoo! and eBay. Any service that is slower thanthese is going to be immediately set off alarm bells in the user's mind:maybe this site is going to fail altogether? maybe I should try to find acompetitive site that does the same job but is faster?One factor that affects page loading time is end-to-end bandwidthbetween your server and the user. You can't do much about thisexcept measure and average. Some Web servers can be configuredor reprogrammed to log the total time spent serving a page. Bylooking at the times spent serving large photographs, <strong>for</strong> example,you can infer average bandwidth available between your server andthe users. If the 10th percentile users are getting 50 Kbits per secondyou know that, even if your server were infinitely fast at preparingpages, you should try to make sure that your pages, with graphics,are either no larger than 50 Kbits in size or that the HTML isdesigned such that the page will render incrementally (a page that isone big TABLE is bad; a page in which any images have WIDTH andHEIGHT tags is good because the text will be rendered immediatelywith blank spaces that will be gradually filled in as the images areloaded).You can verify your decisions about page layout and graphicsheaviness by comparing your pages to those of the most successful<strong>Internet</strong> service operators such as eBay, Yahoo!, and Amazon.123

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

Saved successfully!

Ooh no, something went wrong!