This is a course for professional programmers and computer science
students. A chief technology officer at a Web publisher might also find
it useful even if he or she didn't have a strong programming background.
Check my home page to see if this course is scheduled any time soon.
10:00 am to 11:30 am -- concurrency control and transactions
What makes engineering an Internet service fundamentally different from
engineering a desktop application? First, concurrency. One thousand
users may visit your service at the same instant; with a desktop app
your program deals with one user at a time. Second, transactions become
critical. Your connection to the user may become interrupted at any
This portion of the course discusses the usage of standard relational
database management systems (RDBMS) to manage concurrency and
- How to understand the RDBMS.
- Three slides that will teach everyone the entire SQL programming
- Why so many Web services use the Oracle RDBMS.
- Under the Oracle hood.
- The most interesting current Oracle features for Internet service
- The future of the RDBMS (beyond Oracle), including management of
external data (SQL MED)
11:45 pm to 12:30 pm -- Serving HTML, WAP, and VoiceXML pages from
- What must you have in a programming environment to ensure rapid
- What must you have in a programming environment to ensure a secure
- Keeping it running reliably:
- If you've got more than one person on the project, how do you extend
the software reliably? (hint:
12:30 pm to 1:30 pm -- lunch
1:30 pm to 2:15 pm -- New opportunities for software engineering professionalism
2:15 -- 2:45 pm -- Thinking Seriously about Usability
- How to get good ideas from users.
- Screen space.
- Applying Experimental Psychology.
- Color (and Britney Spears).
- Multidimensional programming.
- Bottom line.
2:45 to 3:00 pm --soda break
3:00 to 4:00 pm -- moving from OLTP to DSS to OLAP (data warehousing)
- What do all these acronyms actually mean?
- How to build a data warehouse.
- Revolutionizing Internet user activity analysis using standard
dimensional data warehousing methods.
4:00 to 5:00 pm -- powerful ideas from the ArsDigita Community System
- product engineers should also be publishers and users -- remember
that programmers always build things to make their personal life easier
(tech implication: scripting languages, break one page at a time)
- one url = one file
- pre-integration of applications, starting with
one users table (or gateway to an LDAP server)
- low barrier to adoption (any Oracle programmer could use it, even if
he or she did not understand the Web)
- open-source tutorial materials
- well-defined path from programmer to toolkit programmer
- seamless email integration, e.g., in ticket tracker and bboard
- content repository
- database independence via named queries and query rewriting; using
the URL as part of the key
- multilingual support via named English strings in the source code
and string rewriting from a database; using the URL as part of the key
- abstract URLs (no .html or .whatever extensions)
- pervasive personalization
- high-volume sites can be heavily personalized using raw Oracle
queries; 500,000 hits/day per 400 MHz CPU (iff you don't use too many
layers and too many tiers)
- More Details: see the slides
- Background reading: