SmartSpace Intranet 2.0
ViewSpace Intranet 2.0
Documentum, Inc. -- 1998
Bill designed a "contstruction kit" for web-based document management applications. This kit was used to build the two base applications that Documentum shipped: SmartSpace Intranet that empowered information authors, librarians, etc. to create and organize millions of documents across an enterprise, and ViewSpace Intranet that allowed end users to access and utilize these document libraries. The contstruction kit also empowered enterprise customers to extensively customize Documentum's base applications, or to create entirely new web applications to meet their unique needs.
Working closely with Documentum's managers, marketers, web technologists and key software engineers, Bill created a completely new application architecture and user interface model. Designed to meet the goals listed below, and making extensive use of Documentum's web technologies (RightSite macro processing, WebQL query language, DocBasic procedural coding), the construction kit consisted primarily of 300 HTML "page fragments" with embedded DocBasic code that could be dynamically assembled into complete web pages, 400 image files, and a runtime engine built to Bill's specifications.
- High reliability on a variety of browsers and platforms (versions 3 and 4 of both Netscape Navigator and Internet Explorer running on Windows, Mac OS and Unix Motif).
- Compelling visual appearance.
- Reusable functional "components" that customers could use for building their own applications.
- High usability.
- Little or no end-user training needed.
- Extensively customizable by customers.
- Easily extensible.
- One web server installation must be able to operate in two or more application modes: "ViewSpace Intranet" is Documentum's information consumer application, "SmartSpace Intranet" is Documentum's information provider application.
- Customers must be able to customize the base applications and to add their own application modes.
Some Architectural Features
Items in Documentum docbases are object-oriented "objects" in a class inheritance tree deriving from a single base class. Bill's architecture supports object inheritance by making it easy to define custom views and operations for any class, and by making it automatic that these views and operations will be used for subclasses thereof.
Bill divided all the information that you can get about an object into a set of categories called Views, and made it easy to flip between them. Views can easily be defined for any object class, and will be inherited by all subclasses. Here are some example views:
Show all the attributes of an object (name, owner, version, creation date, keywords, etc.). Actions -- List all the actions that can be performed on an object (view, edit, delete, route, export, archive, etc.).
Show who (which users and groups) can do what (see, edit, delete, etc.) to an object.
List a list of all the versions on an object.
If this is a compound document (comprised of sub-documents) show all its sub-documents.
List all the alternate renderings of an object that are in the docbase (MS Word, Adobe Acrobat, HTML, TIFF, plain text, etc.).
For a container object (folder, cabinet, etc.) list all the objects that are in it.
Bill devised a scheme whereby each operation that can be performed on an object (export, import, delete, copy, etc.) is built out of a set of HTML pages that work together in a wizard-like way to (as needed) walk users through the operation. Since each set has a single entry point, and always returns back to the calling web page, these operations comprise reusable functional components that customers can use to build their own applications. Of course, operations also follow the object-inheritance scheme, allowing a given operation (e.g. delete) to have different behaviors for different object types (e.g. a folder vs. a document).
Dynamic Page Assembly
According to Bill's design, all pages are assembled on the fly from HTML page fragments. When faced with the need to display a particular view of a particular object, the runtime engine performs a search algorithm that finds the appropriate HTML page fragments and assembles the appropriate header, footer, title block, body and navigation frame into a completed page that integrates a variety of considerations: The current user's permissions, object-inheritance, the application mode (SmartSpace or ViewSpace), and so forth. Default behaviors for any object class (and its subclasses) can be overridden at any point simply by adding an HTML file with the appropriate page fragment. (NOTE: Documentum technology caches completed pages to increase performance.)
Each page has a Help button that opens a context-sensitive help page in a second window. The help system is integrated with the system of views and operations, and follows the class inheritance model.
Enriched User Interface Model
In the past, Documentum applications have presented docbases as "filing rooms": rows of cabinets filled with file folders. But in this application, Bill presents docbases as "information supermarkets", in which the filing room is but one of several available services. Other services include searchable knowledge bases, personal work areas, and workflow automation facilities. These are not new capabilities, but existing features presented in a new and more intuitive way.
Sample Screen Shots
These are screen mockups built before the product was released, and may not match the final appearance. (For example, in the real product, the blue header grows to fill the width of any size of window.)
Message: A document was successfully checked into the docbase
Message: A document could not be checked into the docbase