This is a class for people who are technology experts, e.g., developers
of the core Oracle RDBMS server. We thus assume that they are good at
thinking formally and good at thinking about complex systems. In
general, I do not like to assume any familiarity with particular
computer languages, protocols, or systems. However, when teaching this
at Oracle it seems safe to assume experience with SQL.
Our objective is to equip the student with the following new skills:
- ability to distinguish between good and bad Web service ideas
- understanding of all the technology components, standards, and
protocolsthat go into a Web service
- ability to select appropriate tools to realize a Web service goal
- understanding of why the RDBMS is the most important technology in
building a Web service
- ability to cope with sizing and scaling issues
- ability to understand the dimensions of building an ecommerce
service from scratch or grafting ecommerce onto an existing retail
business
- confidence that his or her background already includes 99 percent of
the important technical skills necessary to build a great Web service;
they just need to learn a few details
- vision to see that there are challenges in Web application design
that are worthy of his or her considerable talents
- a roadmap that will enable him or her build their skills in the Web
application domain in some coherent fashion
- ability to contribute to building a future where people can take
full advantage of computers and Internet without becoming mired in
system administration
The mechanics are a class that starts at 9:00 am and runs to 5:30 pm
every day. Each day includes a total of 90 minutes of break time
(45-minute lunch plus three 15-minute breaks). That gives us 7 hours of
instruction time per day. Given three days to cover this much territory
for an expected audience of more than 100 people, we can't realistically
set up each student with a development server and a computer. The class
is thus mostly lecture and demonstration.
So that attendees don't go insane sitting passively for 7 hours three
days in a row, we should look at some options for breaking up the time:
- small paper projects that students can do in groups of three or four
for 30 minutes, then maybe the instructional staff spends the evening
culling these for presentation back to the larger group the next day
(with critique)
- holding the class on Thursday, Friday, and Monday. Give the
students something to think about for the weekend. This way it isn't
three days straight.
Speaking of breaking up time, we try to avoid hammering people
continuously with material that is only comprehensible to nerds. The
class ought to be useful, enjoyable, and effective for people from
marketing, general management backgrounds, etc. It is OK to leave these
guys in a fog for a 90-minute section but I don't think it is fair to
torture them with code examples for an entire afternoon. So we'll try
to alternate units that don't require any tech background with units
that do.
Day 1
9:00 - 9:15 Welcome
- what skills we hope to leave you with
- the big items we're going to cover
We won't cover the agenda in any detail because we assume students will
leaf through their paper handouts.
9:15 - 10:45 Sociology: What kinds of Web services are useful?
- think about sites in terms of service, entertainment, education; all
else is merely vanity
- start with the user, engineer a solution, then rigorously test with
users
- Web Publishing versus Web Services
- Useful to whom? How people are trying to make money from Web services.
-- break --
11:00 - 12:30 Technology Underpinnings
- HTTP as conceived: stateless, no caching
- HTTP as employed: as above, with cookies
- implications for service design: there are three important steps:
- Develop a data model. What information are you going to store and
how will you represent it?
- Develop a collection of legal transactions on that model, e.g.,
inserts and updates.
- Come up with a set of Web forms that let the user build up to one of
those transactions.
- plus one unimportant step: write programs that parse form data from
the user and turn them into database transactions.
- the RDBMS is at the heart of any interesting Web service
- how a client request gets to the RDBMS and back
-- 45-minute lunch --
1:15 - 2:45 Information and interaction design for the Web
- principles of effective site design:
- the information should be the interface
- broad and flat is better than sequential
- organize by user interest rather than your structure
- use words rather than icons
- pick object then verb (Macintosh)
- rich user interface is bad; user interface consistent with other
sites (e.g., Yahoo) is good
- benefits of using structure rather than WYSIWYG
Note: here is where people who've never seen HTML before will learn it.
-- break --
3:00 - 4:30 Programming Languages and Environments
- the dimensions of choosing a programming language and development
environment for Web services
- server-parsed HTML
- the ascendance of gentle-slope systems: server-parsed HTML, Perl
CGI, AOLserver Tcl, ASP
- real-world examples; picking through 20 request per second services
-- break --
4:45 - 5:30 The Ultimate Web-based Collaboration Challenge, I
- the most difficult challenge is on-line collaborative education
- many applications that sound different in fact have strong
educational dimensions, e.g., employees working together, customer
support
-- refreshments/discussion --
Day 2
9:00 - 9:15 Interesting Questions from Yesterday
After having a night to think about the stuff that came up in private
discussions...
9:15 - 10:45 The Ultimate Web-based Collaboration Challenge, II
- required elements for a sustainable online community
- engineering support for those elements
-- break --
11:00 - 12:30 Money: The mechanics of getting rich on the Internet
- four ways of making money with Web Publishing sites
- hawking a few wares: it looks simple but it is actually hard;
the horrors of real-time credit card billing and collecting sales tax
- after you've gotten past the horrors, doing some interesting things:
- real 1:1 marketing
- mass customization
- integrated data warehouse
-- 45-minute lunch --
1:15 - 2:45 Making it work 24x7
- architecture recap
- making the Unix layer reliable; monitoring multiple servers via a
central server that grabs XML from the monitored servers
- making the Oracle layer reliable
- making the Web server layer reliable
- notification of problems with Web scripts
- verifying IP connectivity and DNS
- how an unreliable e-mail server can bring your Web services down
- Making it work for five years: the developers and maintainers
constitute an online community and can be supported as such
Note: here is where people learn about XML.
-- break --
3:00 - 4:30 Open Challenges in Web-based Collaboration
- transportable code from client to server rather than vice
versa
- collaborative document production
- collaborative decision making (demonstrate Action Network and Scorecard)
- identification of burdensome members and discouraging their
burdensome activities
-- break --
4:45 - 5:30 User Tracking
- what publishers get from standard logs
- what publishers want
- an Oracle-based system for tracking clickthroughs
- using 8i's new data warehousing features to hold massive server logs
-- refreshments/discussion --
Day 3
9:00 - 9:15 Interesting Questions from Yesterday
After having a night to think about the stuff that came up in private
discussions...
9:15 - 10:45 Using a WYSIWYG database development tool
Oracle WebDB team demonstrates building a complete application. I
propose that we build a Web-based system for helping a user keep his or
her New Year's resolutions. So a user gets to enter a set of
resolutions, e.g., "exercise twice per week". The system should be
capable of sending reminder emails if the schedule isn't being met.
These reminder emails to include URLs that, if clicked on, will result
in the recording of "yes, I exercised within the past day". The system
should be able to show a history of whether the user kept the resolutions.
-- break --
11:00 - 12:30 Web Publishing with a capital P
We look at whether WYSIWYG tools address the fundamental problem faced
by large Web publishers.
- it isn't about saving everyone from having to learn HTML
- site planning and coordination of people; what fundamentally has to
get done
- how content management has been attacked by various turnkey
products:
- Microsoft Site Server
- Vignette
- a data model and system design for content management
-- 45-minute lunch --
1:15 - 2:45 Personalization
- collaborative rating systems; generally a naive approach
- Open Profiling Standard
- potential of client-side personalization
- current commercial products, e.g., Netperceptions
- doing it all with 8i's new data warehousing features
- RDF/XML
-- break --
philg@mit.edu
Reader's Comments
I went to Philip's seminar to hear him speak on his web experiences. Philip comes across as a very entertaining speaker who has worthwhile things to say. I found his seminar interesting and about the best quick introduction to the web world that I could ever find.
There is another reason I attended his seminar. My employer paid the $175 it cost. This meant that I could get much more knowledge in a working day than I could reading a page here and a page there on the bus and at home. It was an efficient use of my time. [To most consulting companies, $175 is small change].
-- Jagadeesh Venugopal, October 28, 1999
I find it interesting that the first two comments on this page are less than stellar. I understand that people are busy... but it would appear to me that you need to moderate this discussion. This is a great example of the need to have PEOPLE behind the technology employed on the web.
OK... enough about that. Where is the class offered and when? Also, do you cover information NOT in your book. I have read it cover to cover but would like some more information. Is this the class to take? Please include this information on the webpage.
-- ralph chuck, October 30, 1999
For anyone who has not read or understood Philip and Alex's Guide I heartily recommend the One-day Web Course.
-- Phil Geer, May 11, 2000
Add a comment | Add a link