- Introduction [1:30-1:40]
The introduction reviews the history of the Common Lisp Web Server and its
evolution since it became publicly available in Summer 1995.
- Current State of CL-HTTP
- Ports to Many Platforms
- Tutorial Roadmap
- Overview Major World Wide Web Trends [1:40-2:10]
- Phillip Hallam-Baker,
M.I.T. Laboratory for Computer Science &
World Wide Web Consortium
-
This review of the latest highlights and developments in the Web revolution
sets the context for understanding CL-HTTP. As a founder of the Web at the
European Center for Particle Physics (CERN) and a senior scientist with Web
Consortium at M.I.T., Hallam-Baker provides a unique insight on the trends
that will emerge in the coming months and years.
-
Architecture of the Common Lisp Hypermedia Server (CL-HTTP)
[2:10-2:40]
The architectural overview lays out the major data structure and flow of
control in the server. The system utilizes CLOS classes and multi-methods to
achieve fine-grained modularity. Developers can easily specialize any class
and customize any method as necessary to meet application requirements.
- HTTP 1.1 Transactions
- Request/Reply Model
- HTTP Method Dispatch
- Methods: :GET, :HEAD, :POST, :PUT, :DELETE
- Persistent Connections
- Extension Methods
- Proxy Service
- Object-Oriented Architecture
- Uniform Resource Locators
- Server Instances
- Exceptional Conditions
- Users, Realms, Access Controls, Headers, Logs, Input Types, Image Maps
- Handling Exceptional Conditions
- Signalling Architecture
- Condition Classes
- Reliable Operation
- Export Model
- Export Types
- Content Types
- Static vs. Computed Resources
- Direct Server Access for Computed Responses
- Problem-Solving by Defining an Embedded Language
- On-Demand File Exports
- Expiration & Caching Proxies
- Access Control
- Generating Displays & Mobile Code
- Flat Assembly Languages
- Evolving Standards
- Stable Abstractions
- High-Level Programming
- Easier Automation
- Simplified Maintenance
- Faster Evolution
- Retargetability
- User Authentication
- Realms
- Basic Authentication
- Digest Authentication
- User Objects
- URL Access Controls
- Backing Store
- Security Considerations
- Randomness
- MD5 Password Assignment
- Authenticated Transactions with the HTTP Wrap Method
- Logging Access
- Logging Architecture
- Log Classes
- Custom Logging
- Dedicated File Logging Thread per Port
- Extending the Server
- Specializing Classes
- Shadowing Methods
- Defining New Export Types
- Working with Client-Side Plug-ins
- Break [2:40-2:50]
- Generating Web Pages & Processing User Input [2:50-3:30]
This section explains how to generate Web pages on the fly and how to
process user input. Examples of
code which utilizes various capabilities are explained and demonstrated.
With this preparation, developers are ready to interface existing applications
to the Web or write new ones using dynamic objects.
- Generating HTML
- Accepting User Input
- Computing Responses
- Computed URLs
- Search URLs
- Handling Form Posts
- Computed forms
- Server APIs
- Managing State
- Hidden Fields
- Armor Plating
- Query Baggage
- Efficiency and Multi-Threading Issues
- Generating HTML with Netscape 2.0 Extensions
- Tables
- Backgrounds
- Frames
- Dynamic Refresh, Server Push
- Dynamic Customization for Client Capabilities
- Caching Computed Pages
- Configuring High Volume Sites
- Advanced Facilities [3:30-4:10]
This section explains a number of advanced facilities which are already in
the public release or which will be distributed in the coming months.
- Emitting Mobile Code
- Modularity Through Object Encapsulation
- Generic Functions
- Argument Type Checking
- Varying Amount of Code Synthesis
- Composibility & Sharing
- Client Programming through Language Extensions
- Languages
- Portable Presentation System
- Inheritance Lattice of Presentation Types
- Parsers Validate User Input
- Presenters Display Program Data in User-Friendly Terms
- Associating Presentations with Input
- Dynamic Form Processing
- Query Objects
- Presentation Types
- Defaults
- Form Objects
- Response Functions
- Automatic Retries Omitted or Failing User Input
- Adaptive Form Structures, e.g. Surveys
- Client-Side Validation
- MD5 Authenticated Data Exchange
- W4 Constraint-Guided Web Walker
- Automatic Web Client
- Declarative, Extensible Vocabulary of Constraints & Actions
- Constraints Guide the Walk
- Actions Do Things with Web Resources
- Generating 3D Graphics using the Virtual Reality Markup Language
- Break [4:10-4:20]
- Demonstration of Selected Applications [4:20-4:50]
Several applications using CL-HTTP will be demonstrated. The server
home page provides access to some
applications.
- Using CLOS for Web Site Maintenance
Rainer Joswig,
Lavielle EDV Systemberatung GmbH & Co.
When developing Web sites with CL-HTTP, powerful Object Oriented
Programming techniques available in CLOS make possible creation of reusable
software components. This will be demonstrated in a solution to a typical
maintenance problem: Easy and controlled data updating of pages and its
subpages without the need to edit HTML files.
- CL-HTTP on Allegro: How to be Fast and Flexible
Olivier
Clarisse, Lucent Technologies, Bell Labs Innovations
We will show a brief demonstration of streamed video AVI between a CL-HTTP
server under Allegro Common Lisp and PC running Netscape. This example
illustrated how both the flexibility and abstraction available with dynamic
objects is compatible with high performance workstations computing.
- Future Directions [4:50-5:00]
The conclusion reviews areas for development.
- Portable Dynamic Form Processing System
- HTML 3.0
- VRML 2.0 & 3D Graphics Toolkit
- Presentations for 3D Graphics
- Modular Proxy Service
- Integration of Distributed Objects