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.

eing among AOL's 28 million subscribers who share a common poolof proxy machines.Somehow you need to write some in<strong>for</strong>mation out to an individualuser that will be returned on that user's next request.If all of your pages are generated by computer programs as opposedto being static HTML, one idea would be to rewrite all the hyperlinkson the pages served. Instead of sending the same files to everyone,with the same embedded URLs, customize the output so that a userwho follows a link is sending extra in<strong>for</strong>mation back to the server.Here is an example:1. Visithttp://www.amazon.com/exec/obidos/ASIN/1588750019/.Note that 1588750019 is an International Standard BookNumber (ISBN) and completely identifies the product to bepresented.2. Look at your browser's Address field. You'll see somethinglike"http://www.amazon.com/exec/obidos/ASIN/1588750019/103-9609966-7089404". Amazon has redirected you to a pagethat includes a session ID (the stuff after the last slash)3. Roll your mouse over the hyperlinks on the page. Noticethat all the hyperlinks contain, at the end, this same sessionID.What if you put three books in your shopping cart? Amazon's servercould simply add three ISBNs to all the hyperlink URLs that youmight follow, separated by slashes. The URLs will be getting a bitlong but we can take encouragement from this quote from the HTTPspec:The HTTP protocol does not place any a priori limit on the length of aURI. Servers MUST be able to handle the URI of any resource theyserve, and SHOULD be able to handle URIs of unbounded length ifthey provide GET-based <strong>for</strong>ms that could generate such URIs. Aserver SHOULD return 414 (Request-URI Too Long) status if a URIis longer than the server can handle (see section 10.4.15).We need not worry about turning away our best customers, the oneswith really big shopping carts, with a return status of "414 Request-URI Too Long". Or do we? Here is a comment from the HTTP spec:Note: Servers ought to be cautious about depending on URI lengthsabove 255 bytes, because some older client or proxyimplementations might not properly support these lengths.write clear English prose. Object Role Modeling (ORM), however, is ahigh-level <strong>for</strong>mal specification language that looks promising <strong>for</strong>automatic code generation in the coming years.A course <strong>for</strong> sophomoresLess mature engineers are going to have more difficulty choosing anappropriate set of tools, more difficulty with tool installation andadministration, and be less resourceful in seeking assistance whenappropriate. Thus if you are using this textbook with sophomores it isprobably a good idea to reduce flexibility and increase the physicalrootedness of the students and amount of hands-on assistanceavailable.Juniors and seniors might have had a summer jobs working withOracle and PHP on Debian Linux or with Microsoft .NET and SQLServer. They will probably be most productive if they can continueusing their familiar tools. Furthermore having a variety of tools in useduring the semester provides all the students with an opportunity tolearn a little bit about other development styles. The main risk tohaving students choose their tools is that some get sucked in bysoftware vendor hype and elect to use, <strong>for</strong> example, three-tieredarchitectures and application servers. At MIT the students have threeweeks be<strong>for</strong>e the start of the semester in which to install their chosentools. All of the MIT students who decided to go the applicationserver route were unable to get their systems up and running in timeto do the Basics problem set and hence were <strong>for</strong>ced to drop theclass.For sophomores it is less likely that students will have extensivedevelopment experience with a particular set of tools and the risk of astudent choosing an inappropriate set of tools is increased. It may bebest to standardize on one set of tools so that everyone in the classis using the same systems.Universities spend hundreds of millions of dollars on dormitories sothat students can drink beer together but are seemingly reluctant tospend a dime on shared workspaces <strong>for</strong> students. This is a shamebecause <strong>for</strong> learning most technical material it is much more effective<strong>for</strong> students to work together and live separately. A student workingin a common laboratory with TAs and fellow students nearby won'tget stuck on something simple, such as "how do I launchSQL*Plus?". If you can possibly arrange a room with a bunch ofdesks and PCs and make that the center of your class, this will be anenormous help to less experienced students.14335

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

Saved successfully!

Ooh no, something went wrong!