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.

than "http:". If the user clicks on the anchor text (Philip's emailaddress), the browser will pop up a "send mail to philg@mit.edu"window.2.8 Picking a Programming EnvironmentNow you get to pick a programming environment <strong>for</strong> the rest of thesemester. If you've been building RDBMS-backed <strong>Internet</strong>applications <strong>for</strong> some time, you can just use whatever you've beenusing. Switching tools is seldom a path to glory. If you haven't builtthis kind of software be<strong>for</strong>e, read on...Choosing an RDBMSThere are probably three reasonable choices <strong>for</strong> an RDBMS thissemester: (1) Microsoft SQL Server, (2) Oracle, and (3) PostgreSQL.For experienced Windows programmers, Microsoft SQL Server iseasy to install and administer. And if you expect to spend the rest ofyour professional life in a Microsoft environment you might as welllearn it.Concurrency is Oracle's strongest suit relative to its commercialcompetitors. In Oracle, readers never wait <strong>for</strong> writers and writersnever wait <strong>for</strong> readers. Suppose the publisher at a large site starts aquery at 12:00 PM summarizing usage by user. Oracle might have tospend an hour sifting through 200 GB of tracking data. The diskdrives grind and one CPU is completely used up until 1:30 PM.Further suppose that User #356712 comes in at 12:30 PM andchanges his email address, thus updating a row in the users table. Ifthe usage tracking query arrives at this row at 12:45 PM, Oracle willnotice that the row was last modified after the query started. Underthe "I" in ACID, Oracle is required to isolate the publisher from theuser's update. Oracle does this by reaching into the rollback segmentand producing data from user row #356712 as it was at 12:00 PMwhen the query started. Here's the scenario in a table:Time Publisher12:00PM12:30PM26Starts a 90-minute query --summarizing usage <strong>for</strong> precedingyearusage summary continues to chugawayPublic Web ApplicationUser #356712 updatesemail address from"joe@foobar.com" toPersistenceThe continued existence of data. A persistence mechanismis something that provides long-term data storage, evenwhen the application that created the data is no longerrunning. Examples include RDBMSes, XML documents, andflat-file databases.RDBMSRelational Database Management System. A computerprogram that lets you store, index, and retrieve tables ofdata. The simplest way to look at an RDBMS is as aspreadsheet that multiple users can update. The mostimportant thing that an RDBMS does is providetransactions.Request ProcessorPortion of a Web server program that decides how to handlean incoming request. A well-designed request processorenables a publisher to expose only abstract URLs, e.g.,"glossary" rather than "glossary.html". The job of the requestprocessor is to dig around in the file system and find adocument to deliver or a script to execute.RMSRichard M. Stallman. In 1976, developed Emacs, the world'sbest and most widely used text editor. Went on to developgcc, the most widely used compiler <strong>for</strong> the C programminglanguage. Won a $240,000 MacArthur fellowship in 1990.Stallman is the founder of the free software movement (seewww.fsf.org), and Project GNU, which gave rise to Linux.RobotIn the technologically optimistic portion of the 20th century,robots were intelligent anthropomorphic machines thatunderstood human speech, interpreted visual scenes, andmanipulated objects in the real world. In the technologicallyrealistic 21st century, robots are absurdly primitive programsthat do things like "Go look up this book title at threedifferent online bookstores and see who has the lowestprice; fail completely if any one of the online bookstores hasadded a comma to their HTML page." Also known asintelligent agents (an intellectually vacuous term but useful<strong>for</strong> getting tenure if you're a university professor). Somesimple but very useful examples of robots are the spiders orWeb crawlers that fill the content database at public searchengine sites such as AltaVista.ScalableA marketing term used to sell defective software toexecutives at big companies. <strong>Internet</strong> applications arefundamentally concerned with processing updates from323

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

Saved successfully!

Ooh no, something went wrong!