WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method for creating structured documents in a publishing system    
United States Patent6230173   
Link to this pagehttp://www.wikipatents.com/6230173.html
Inventor(s)Ferrel; Patrick J. (Seattle, WA); Meyer; Robert F. (Redmond, WA); Millet; Stephen J. (Seattle, WA); Shewchuk; John P. (Seattle, WA); Smith; Walter W. (Seattle, WA)
AbstractAn authoring environment for producing content for an on-line system is described. This environment includes a story editor which can save files in a Multimedia Document Format (MDF) file. A MDF file is an OLE storage wherein one storage object holds text of the content in a Multimedia Publishing Markup Language. Other parts of the MDF file include storages for holding content search terms and storages for embedded objects.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 6230173
Method for creating structured documents in a publishing system - US Patent 6230173 Drawing
Method for creating structured documents in a publishing system
Inventor     Ferrel; Patrick J. (Seattle, WA); Meyer; Robert F. (Redmond, WA); Millet; Stephen J. (Seattle, WA); Shewchuk; John P. (Seattle, WA); Smith; Walter W. (Seattle, WA)
Owner/Assignee     Microsoft Corporation (Redmond, WA)
Patent assignment
All assignments
Publication Date     May 8, 2001
Application Number     08/503,307
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 17, 1995
US Classification    
Int'l Classification    
Examiner     Hong; Stephen S.
Assistant Examiner    
Attorney/Law Firm     Banner & Wilcoff, Ltd.
Address
Parent Case    
Priority Data    
USPTO Field of Search    
Patent Tags     creating structured documents publishing
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5557722
DeRose

Sep,1996

[0 after 0 votes]
5475805
Murata

Dec,1995

[0 after 0 votes]
5347632
Filepp
709/202
Sep,1994

[0 after 0 votes]
4969093
Barker
718/102
Nov,1990

[0 after 0 votes]
4710885
Litteken
715/513
Dec,1987

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. In a computer network comprising publisher, server and customer computers, a method of publishing structured documents, comprising:

creating tagged content in a multimedia document file and storing the multimedia document file;

storing a plurality of tagged objects representative of the tagged content in a document in the publisher computer;

parsing the tagged content by converting the multimedia document file into a parsed content tree;

storing the parsed tagged content in a caching object store;

linking the parsed tagged content to a title layout;

transferring the parsed tagged content with the linked title layout to the server computer;

requesting from the customer computer the parsed tagged content from the server computer;

searching a caching object store located on the customer computer for the title layout; and

if the title layout is found in the caching object store of the customer computer, receiving, at the customer computer, from the server computer the parsed tagged content without the linked title layout, otherwise receiving the parsed tagged content with the linked title layout.

2. The method of claim 1, wherein the tagged objects include an embedded object.

3. The method of claim 1, wherein the tagged objects include a find property.

4. The method of claim 1, wherein the tagged objects comprise text tagged with a markup language.

5. The method of claim 1, wherein the document contains storage and stream objects.

6. In a computer network comprising publisher, server and customer computers, a method of publishing structured documents comprising:

a server connected to at least one publisher computer and at least one customer computer;

the publisher computer capable of inserting a plurality of text portions indicative of a story object into a document and tagging each text portion of the story object with a tag;

a pair of converters for translating the tagged content in a rich text format to a multimedia data format;

inserting an embedded object into the story object;

storing the tagged text portions into a first object storage of the story object in the publisher computer;

storing the embedded object into a second object storage of the story object in the publisher computer;

parsing the tagged content into a parsed content tree having a single root with multiple nodes and branches;

storing the parsed tagged content in a caching object store;

linking the parsed tagged content to a title layout;

transferring the parsed tagged content with the linked title layout to the server computer;

requesting from the customer computer the tagged content from the server computer;

searching a caching object store located on the customer computer for the title layout; and

if the title layout is found in the caching object store of the customer computer, receiving at the customer computer, from the server computer the parsed tagged content without the linked title layout, otherwise receiving the parsed tagged content with the linked title layout.

7. The method of claim 6, further comprising the step of parsing the story into a tree structure, so that each tagged portion can be separately accessed.

8. The method of claim 6, further comprising the step of assigning a unique identifier to the story.

9. The method of claim 6, where the embedded object comprises an OLE object.

10. The method of claim 6, where the tags belong to a markup language.

11. The method of claim 6, where the electronic publication system comprises a computer network and wherein the method comprises the additional step of storing the story object on a network server.

12. The method of claim 6 wherein the content is tagged with a Standard Generalized Markup Language.

13. The method of claim 6 wherein the parsing uses a low-level parser.

14. The method of claim 6 wherein the transmitting is across a low bandwidth line.

15. In a computer network comprising publisher, server and customer computers, a method of publishing structured documents, comprising:

creating tagged content in a multimedia document file and storing the multimedia document file;

storing a plurality of tagged objects representative of the tagged content in a document in the publisher computer;

parsing the tagged content by converting the multimedia document file into a parsed content tree;

storing the parsed tagged content in a caching object store;

linking the parsed tagged content to a title layout;

transferring the parsed tagged content with the linked title layout to the server computer;

requesting the title at the customer computer by the customer;

searching a caching object store located on the customer computer for the title; and

if the title is found in the caching object store of the customer computer, retrieving the title from the caching object store of the customer computer, otherwise retrieving the title from the caching object store of the server computer.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to electronic publishing systems and, more specifically, to an authoring system for creating structured documents in an on-line publishing system.

2. Description of the Related Technology

Many different systems exist for publishing documents on a computer system. These systems are used to, for example, create newsletters or brochures to promote a particular company. In addition, publications can be used to disseminate information to a variety of customers. A number of programs exist for allowing a user to design complicated layouts for a particular application. Well-known programs such as Microsoft Publisher.RTM., Ventura Publisher.RTM., PageMaker.RTM., and PrintShop.RTM. help a user to produce attractive newsletters and brochures.

These publication systems let the user define particular regions of every page for a specific purpose. For example, the user can place a graphic frame that runs along the top of the page to hold a particular image. Such an image may include the title of the newsletter or another related aspect of the newsletter. In a similar way, the user may define other areas of the first page to include one or more text frames for holding text-based information such as the words from particular story. The user designs the text frame to have certain properties, such as height, width, background color, foreground color and other such properties so that the text becomes attractively formatted for the customer. In addition, the user can format the text information within the text frame to have desired font and paragraph characteristics. For example, the user can highlight the characters within the text frame and define that font to be, for example, bold-faced. The user can also choose to only apply a character format to specific words or paragraphs within a text frame.

Some of these publication programs use a Microsoft Object Linking and Embedding (OLE) architecture to store their documents. A major feature of OLE is interoperability, the basis for integration between applications. This integration brings with it the need to have multiple applications write information to the same file on the underlying file system. OLE defines a model called OLE Structured Storage for treating a single file system entity as a structured collection of two types of objects; storages and streams. These objects act like directories and files, respectively. The OLE Structured Storage model generally implements these objects; applications rarely, if ever, need to implement them. These objects, like all others in OLE, implement interfaces: IStream for stream objects, IStorage for storage objects.

A stream object is the conceptual equivalent of a single disk file. Streams are the basic file system component in which data lives; each stream has access rights and a single seek pointer. Through its IStream interface, a stream can be told to read, write, seek, and perform a few other operations on its underlying data. Streams are named by using a text string; they can contain any internal structure because they are simply a flat stream of bytes. In addition, the functions in the IStream interface map nearly one-to-one with standard file-handle-based functions such as those in the ANSI C/C++ run-time library.

A storage object is the conceptual equivalent of a directory. Each storage, like a directory, can contain any number of substorages (subdirectories) and any number of streams (files). Furthermore, each storage has its own access rights. The IStorage interface describes the capabilities of a storage object, such as enumerate elements (dir), move, copy, rename, create, and destroy. A storage object itself cannot store application-defined data except that it implicitly stores the names of the elements (storages and streams) contained within it.

The OLE Structured Storage technology solves problems associated with previous flat file systems through the extra level of indirection of a file system within a file. With OLE, a particular application can create a structured hierarchy where the root file itself has many substorages. Each substorage can have substorages within it, and so on.

This structure solves the problem of expanding information in one of the objects: The object itself expands the streams in its control, and the implementation of storage determines where to store all the information in the stream.

In this sort of storage scheme, the objects that manage the content always have direct incremental access to their piece of storage. That is, when the object needs to store its data, it writes it directly into its subfiles without having to involve the main application. The object can, if it wants to, write incremental changes to that storage, thus leading to much better performance.

If the user wants to make changes to that information later on, the object can then incrementally read as little information as necessary instead of requiring the application to read all the information into memory first. Incremental access, a feature that has traditionally been very hard to implement in applications, is now the default mode of operation.

Other categories of publication systems include software for electronically publishing stories across on-line networks such as CompuServe, America On-Line, or the Internet. Most of these systems create and display stories that are formatted in a Standard Generalized Markup Language (SGML) or Hypertext Markup Language (HTML). Both the HTML and SGML are standards for tagging text in documents to be displayed in an on-line network. Documents that are formatted in HTML or SGML can be viewed by several widely distributed browsers such as Mosaic and NetScape for the Internet. These browser programs read SGML and HTML tagged documents and display them with proper formatting.

Several programs exist for producing documents that are tagged in either the SGML and HTML format. Programs such as Interleaf's WorldView 2 allow a user to create an SGML document with, for instance, bold-face text and hyperlinks to other documents. Once a document has been saved in an SGML format, it can be read by either the Mosaic or NetScape browser. Unfortunately, all of the formatting commands for text or graphics in an SGML or HTML document are embedded within the document. The Mosaic or NetScape browsers do not reformat these tagged documents, but rather only display the commands embedded in the SGML or HTML documents to a user. For this reason, the designers that produce the SGML and HTML documents must add formatting commands to every new document. In addition, there is little flexibility to change the document's formatting once the tagged document has been produced. Therefore, the process of creating documents for display using SGML or HTML is very inefficient for the document designer.

Other commercially available software programs for producing on-line publications are available in the marketplace. One type of electronic publisher that generates its own specific format of text while retaining the specific layout of the document is the Adobe Acrobat.TM. software package. Acrobat.TM. reads and stores documents in a specialized format known as the Portable Document Format (PDF) for use on the Internet. Other electronic publishing programs are produced by Interleaf, Inc. (Waltham, Mass.), Farallon Computing (Alameda, Calif.) and Common Ground Software (Belmont, Calif.).

In addition, a converter has been written by Charlesview (Boston, Mass.) to convert Microsoft Word.RTM. documents into HTML text. This converter works by mapping Word styles to HTML tags, and then produces a text document. However, since these documents are converted into a text form so they can be read by well known browsers, they do not include embedded objects. In addition, HTML text documents do not have any associated keywords which would allow them to be found quickly across a large on-line system.

Another on-line information system is described in U.S. Pat. No. 5,347,632 by Filepp et al. This patent discusses an interactive computer system network which enables a user to display news information and perform transactional services through a personal computer. However, in the Filepp system the news information is integrated into display regions.

The invention described in U.S. Pat. No. 5,347,632 includes procedures for formulating objects that have been specially structured to include display data, control data and program instructions. Unfortunately, this system does not provide a separation of the content being displayed from the design.

Therefore a need exists for an on-line system which provides separation of design from content. Moreover, a need exists for an authoring system to be used in an on-line network to provide content providers with increased flexibility for presenting their content to customers.

SUMMARY OF THE INVENTION

The present invention relates to a new authoring system for creating on-line stories. The preferred embodiment of the environment uses an enhanced version of Microsoft Word.RTM. to create Multimedia Document Files (MDF). These multimedia files are then used to provide content for displayed on-line titles as discussed below for a Multimedia Publishing System (MPS).

The enhanced Microsoft Word.RTM. includes a pair of converters to translate the Rich Text Format (RTF) input/output of Word.RTM. to a Multimedia Document File format. In addition, a Word template is included to help the author produce documents with valid embedded codes. A hypertext link embedding tool and a property editor for assigning find properties to the document are also included. These will be discussed below in more detail.

One object in the MDF file storage holds text of the story that is tagged in a newly designed markup language termed herein as the Multimedia Publishing Markup Language (MPML). MPML is a version of the HTML 2.0 with additional extensions for supporting more detailed tagging of structure as well as embedded OLE objects.

In addition to adding MDF content to a project by authoring in Word.RTM., the present invention also includes programs for converting existing HTML documents to a MPML when added to a project. These concepts will be explained in more detail below.

One embodiment of the present invention is a method of publishing structured documents in a computer network comprising publisher, server and customer computers comprising creating tagged content, storing a plurality of tagged objects representative of the tagged content in a document in the publisher computer, adding at least one non-tagged object to the document, transferring the document to the server computer, and receiving, at the customer computer, from the server computer the non-tagged objects of the document independent of the tagged objects.

Another aspect of the present invention is a method of publishing structured documents in an electronic publication system, comprising inserting a plurality of text portions indicative of a story object into a document, tagging each text portion of the story object with a tag, inserting an embedded object into the story object, storing the tagged text portions into a first object storage of the story object, storing the embedded object into a second object storage of the story object, and displaying selected ones of the text portions and the embedded object, the selection dependent upon the tags.

Yet another aspect of the present invention is a structured document in an electronic publication system, comprising a storage container having a root storage, a find properties object stream referenced by the root storage, a markup language object storage referenced by the root storage container, and an embedded object storage referenced by the root storage container.

Still another aspect of the present invention is a method for efficiently transmitting tagged content to a computer in an on-line publishing system, comprising creating a tagged document on a host computer, parsing the tagged document into a parse tree comprising a plurality of objects, and transmitting the objects to a second computer.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is block diagram of the basic system configuration of the multimedia publishing system (MPS), which is presently preferred underlying architecture for the present invention.

FIG. 2 is a diagram of the major system components of the MPS shown in FIG. 1.

FIG. 3 is a diagram of a exemplary network storage subsystem, which is an implementation of the publication storage shown in FIG. 1.

FIG. 4 is block diagram of a hierarchy of containers for a plurality of publishers using the system of FIGS. 1 and 2.

FIG. 5 is a overview flow diagram of the MPS processes performed using the system of FIGS. 1 and 2.

FIG. 6 is an exemplary screen display of one page of a title as displayed by the viewer of FIG. 2.

FIG. 7 is an exemplary screen display of the parts of the content and layout for the title displayed in FIG. 6.

FIG. 8 is a block diagram of the interaction of page layouts, controls, and style sheet and content objects at the viewer of FIG. 2.

FIG. 9 is an overview block diagram showing two methods of adding content to a MP system project.

FIG. 10 is a block diagram of the structure of a MDF file.

FIG. 11 is a flow diagram illustrating an overview of the process of creating content, adding content to titles, publishing and viewing the published content.

FIG. 12 is a flow diagram of the process used to create a new MDF document with a content editor as shown in FIG. 11.

FIGS. 13a and 13b are flow diagrams of the process performed by the preferred content editor to save content in a MDF document as shown in FIG. 11.

FIG. 14 is a diagram illustrating an exemplary Multimedia Publishing Markup Language (MPML) parse tree having a root, find properties and tagged text.

FIG. 15 is a diagram illustrating an exemplary title tree with parsed MDF documents attached to the story nodes.

FIG. 16 is a flow diagram illustrating the process of viewing tagged content in a control region of a page as shown in process 615 or FIG. 11.

FIG. 17 is a diagram of the process of mapping tag ID numbers to style ID numbers for retrieving style properties from a style ID lookup table.

FIG. 18 is a block diagram illustrating the process of displaying the same tagged story using two different style sheets.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference is now made to the drawings wherein like numerals refer to like parts throughout. For convenience, the following description will be organized into the following seven principle sections: Acronyms, Advantages of the Multimedia Publication System, Multimedia Publishing System Overview, Authoring Overview, Multimedia Document Format File Structure, Using Multimedia Documents in an On-line System, Summary.

The discussion in the first three sections is general background of the preferred Multimedia Publication System (MPS). The remaining sections focus on the preferred implementation of structured documents within the MPS.

I. ACRONYMS

The following list of acronyms is provided as a reference in reading the remaining sections.

AVI Advanced Video Imaging. BBS Bulletin Board System. MPML Multimedia Publishing Markup Language CF Component Forms COS Caching Object Store DBM Database Management System DLL Dynamic-link Library GUID Globally Unique Identifier HTML HyperText Markup Language ICP Independent Content Provider IP Information Provider LAN Local Area Network MDF Multimedia Document Format MP Multimedia Publishing MPC Microsoft Network Procedure Call MPS Multimedia Publishing System MFC Microsoft Foundation Class MSN Microsoft Network OCX OLE Control OFS Object File System OLE Object Linking and Embedding PDA Personal Digital Assistant RPC Remote Procedure Call RTF Rich Text Format SGML Standard Generalized Markup Language VBA Visual Basic for Applications WAN Wide Area Network WWW World-Wide Web

II. ADVANTAGES OF THE MULTIMEDIA PUBLICATION SYSTEM

The present invention can perhaps provide the most benefit by using an on-line network. Therefore, this and the following sections present background information on a preferred on-line publication system which is a foundation upon which the present invention can reside.

To enable a new generation of on-line, multimedia applications, an end-to-end system has been invented for developing and using applications and services. The system, called the Multimedia Publishing System (MPS or MP system), preferably uses the Microsoft Network. As an open, turnkey system, MPS includes components for design, authoring, distribution, viewing, search, personalization, and billing of on-line services and multimedia applications. The MP system allows content providers to offer rich, interactive multimedia applications and services, providing users a compelling and exciting on-line experience. The MP system provides the key to overcoming the previously described hurdles facing the on-line industry.

The Microsoft Network removes the primary barriers to on-line service use. These barriers include cost, difficult user interfaces and lack of inertia. Access to The Microsoft Network is provided by Windows 95, the most recent version of the Microsoft Windows operating system thereby making it accessible to millions of customers. The Microsoft Network is designed to make accessing electronic information easy and inexpensive for any user of Windows 95.

In the MP system, Independent Content Providers (ICPs), also known as publishers, supply the system with stories, publications, newspapers, sounds, graphics movies and much more. The MP system is designed to take projects (e.g. stories, publications and newsletters) produced by the publishers and make them accessible to millions of users on the Microsoft Network. Thus, the basic components of the MP system are a project designer component, a public distribution site, and a viewer component. These components of the MP system are described in detail below.

One unique concept that permeates the MP system is the clean separation of content and design. In this context, content is defined as the actual data that is to be displayed to the user. The design of a project is how that information gets displayed to the user (e.g., its format on the computer screen). An illustrative example would be an electronic newspaper, wherein the content is the text and graphics of the stories, while the design is the layout and style of that data. The design of the electronic newspaper is what makes it look like a newspaper on a computer monitor, whereas the content is the data that makes up the designed screens.

In the MP system, the content and the design are stored as separate objects in the public distribution site so that many different pieces of content can be viewed with the same appearance. An object can be defined as a discrete data item or data structure which can be stored in persistent storage or in memory. The object may include computer instructions for manipulating data. Once a designer using the project designer component at the publisher site has created a particular page layout that is attractive, many pieces of content can be viewed from within that layout because of the separation of content from design in the MP system. The system keeps track of links between a piece of content and its associated page layout, but does not actually format the data in the content with a particular style. This is one tremendous advantage that the MP system has over other on-line publishing systems such as Mosaic or Netscape.

As will be discussed in more detail below, the designer creates projects with design and content information for a particular publisher. Continuing the example from above, a project could correspond to an entity that owned a series of newspapers and other media businesses. Within each project, one or more titles would correspond to the actual newspaper. Each title has one or more sections, and can be thought of as similar to the sections in a standard, printed daily newspaper or other periodical such as a magazine.

Within each section are pages that define the information that is displayed to a single screen on the customer's computer visual display. When viewing a particular title, the customer will normally look at only one page of information at a time. On each page are controls which contain instructions for gathering, formatting and displaying the linked content onto the page. When a customer looks at information on a page that is provided by a publisher, the customer is really looking at content that has been formatted within pre-defined control regions on the page.

One important facet of this invention is the concept of viewing the same content objects in many different ways. As discussed above, content objects are viewed after being formatted by a particular linked control. The control knows how to format a particular piece of content by looking at the style that has been defined for that content by the designer and then comparing that style to a linked style sheet. Because each control on a page can have a different associated style sheet, different controls on the same page can each display the same linked content in varying formats. In one control, the title might be displayed using a 14 point font and bold emphasis, whereas the same piece of content in a different control on the page can be displayed in a 12 point font and italic emphasis. The ability of each control on a page to have its own associated style sheet is a powerful tool for the designer to use to format attractive content on a page.

While other software has used the overall concept of using style sheets to format marked text into a particular style, no one has linked style sheets to controls on pages, wherein the control itself does not contain data, but is only associated with data objects. Unlike prior publishing systems, content (such as text or graphics) in the MP system is never reformatted into the marked style. The content is only displayed to the user in the chosen style. Therefore, should the designer choose to change a particular style, only the style sheet property of that style needs to be altered.

The next time that the content is displayed using the altered style sheet, the content will be displayed with the properties of the new style. Other advantages and benefits of the MP system are discussed in detail below.

To provide more detail on the advantages of the MP system, the following section presents an overview of the Multimedia Publishing system.

III. MULTIMEDIA PUBLISHING SYSTEM OVERVIEW

This section presents an overview of the configuration and major components of the preferred Multimedia Publication System. Beginning with a description of the important concept of separating design and content, this section continues by discussing the major components and configuration of the MP system. In addition, a description of the container hierarchy is discussed in conjunction with FIGS. 1-4.

The objects utilized by the MP System include a project; title; content folder and, optionally, subfolder; section and, optionally, subsection; window; page; control; style sheet; and various content objects (such as stories, images, audio, so forth). These objects will be explained in more detail below in reference to FIGS. 1-7. It is important to realize that these objects need to be stored in a non-volatile computer memory such as a hard disk drive.

The natural way of storing related and ordered objects is in a data structure, such as an acyclic graph. The presently preferred way of storing the MP system objects is called a caching object store (COS). The concept of a COS and how it operates to organize objects within an OLE environment is known in the art. See, for example, Inside OLE 2 by Kraig Brockschmidt (Microsoft Press). In the presently preferred MPS, each title corresponds to a COS. There is least one COS at the publisher workstation and in each MPS server at the publication storage and distribution center (FIG. 2). Each customer workstation also has a COS so that the customer can store and retrieve MP system objects when assembling content into controls on pages.

A title may be broadly defined to encompass a publication (e.g., newspaper), service (e.g., stock quotations) or application (e.g., multimedia encyclopedia). When a title is viewed, the viewer opens a title file which represents the title. This title file is a COS file. Typically in the on-line scenario, this would be a skeleton title. A skeleton title is a COS file which contains only a root moniker and no actual objects. A moniker is an object used in the implementation of the COS and contains identification and status information about COS objects.

A superCOS is a COS file which contains more than one COS. For example a superCOS at the customer workstation is used to cache objects which have been remotely retrieved from the host data center. As long as these cached objects are not out of date or flushed, the viewer will be able to quickly provide that object the next time it is requested rather than retrieving it from the data center again. This gives the MP system a tremendous speed advantage over other on-line systems.

A top level system flow diagram is presented in conjunction with FIG. 5 and exemplary Viewer screen displays that could be seen during the processes of the system flow diagram are described in conjunction with FIGS. 6 and 7. An example of the rendering process that relies on style sheets and content retrieval is presented in conjunction with FIG. 8.

A. Separation of Design and Content in the Multimedia Publishing System

As discussed above, the MPS architecture maintains a clean separation between design information and the content to which that design will be applied. A publisher's collection of page layouts is in the form of one or more titles. A title is a collection of page layouts, in a particular sequence which relates to the order in which pages will be viewed. The page layouts describe how the client area of a window will appear when a page is rendered. Rendering refers to the creation of a bitmap of a display screen in memory prior to displaying the screen. A complete page layout is created by placing controls on a blank page layout, where each control delineates an area where some piece of content should be displayed. Settings on each control determine the proper place to look for the content to be displayed in that control.

The content takes the form of discrete objects, each of which compose one unit of information, e.g., a story or a picture. These content objects are of well-known and public data formats, and may be created using any tool that supports these data formats. Content objects generally do not have formatting information encoded within them.

When the publisher has created the title (with its page layouts) and the content objects, the title and content are published together to the public distribution point. Consumers download the title and content objects to their personal computer, where the MPS viewer software uses the page layouts in the title to compose the content in the visually rich form designed by the publisher.

B. System Configuration

Referring now to FIG. 1, the basic system configuration of the multimedia publishing system (MPS) 100, which is a preferred embodiment of the system 100, will now be described. By convention, the term title is used to describe the overall plan or instructions for assembling the complete on-line MPS application on a customer's computer.

Much of the power of the MP system 100 resides in its ability to fully separate design and content, unlike existing on-line and multimedia publishing tools which require a publisher or content provider, such as a first publisher 102, a second publisher 104, or a publisher M 106 to integrate design and content. In the MP system, titles, such as a title A 140, title B 142, or title P 144 can be divided into two parts: the content (148, 152, 156)--the information such as bitmaps, video clips, audio, animation, or stories that make up a title--and the title layout, also termed the design (146, 150, 154)--the overall look and feel of a title. To separate content and design using MPS rather than placing content directly on a page, a publisher can place the content, such as a set of content objects 112, 114, or 118, in one or more containers of a title and then create sections or subsections having pages with special controls, such as a set of title layout objects 110 or 116, that dynamically find and display the content at runtime.

Using this technique a publisher can change a title on an ongoing basis by merely updating the content 112, 114, 116 which has been placed into various folders or containers within the master title. When a page is displayed, it shows the updated content. This is called dynamic title synthesis or dynamic synthesis, and allows content to be continually updated without any need to modify and update the title design consisting of the individual pages, controls and hand-placed content used to display the content.

When publishers use dynamic synthesis they are creating titles which contain placeholders that will be filled-in by the changing content. When dynamic synthesis is utilized, a title is used as a template and a pressing is the displayed, filled-in title. Each time the publisher updates the content in a title and makes it available for customers, such as a first customer 160, a second customer 162 or a customer N 164, the publisher is creating a new release of that title. When the customer starts to view that release, a "pressing" is made which contains part or all of the content in the release.

A major advantage of this approach is flexibility. Some parts of a title may be created by hand-placing content directly on a page, and other parts may be created using dynamic synthesis. Notice, however, that content hand-placed directly on pages is static--it changes only when the people involved in creating the title update the pages.

Returning to the creation of title layouts and content by the publisher, after creation, the title layouts 110, 116 and content 112, 114, 118 are released and stored in a publication storage 120. The storage 120 can be implemented in many forms, such as a network 122, CD-ROM 124, and other means of storage, such as bulletin boards, magnetic media, cable television and so forth. The presently preferred network 122 is the Microsoft Network (MSN), which is part of Windows 95. Many customers will use a MSN Explorer tool to acquire and activate MPS applications.

The MSN Explorer is the integrated navigation tool within Windows 95 that is also used to browse the MSN hierarchy. Sophisticated customers may use other more advanced MPS features, such as search, scheduling, and automatic delivery, assuming these features have been activated by the publisher. Besides browsing via the Explorer or scheduling automatic home delivery, there are several additional ways customers can obtain MPS applications. For example, an individual application may be distributed via floppy disk or CD-ROM 124, it may be distributed through E-mail or bulletin boards, or the application may be directly accessible via a link in other applications (such as the Microsoft Network yellow pages system). In each of these situations, the MP system 100 acquires an application for the customer.

C. System Components

Referring now to FIG. 2, the preferred basic components of the MP system 100 will now be described. The system 100 includes a set of tools for designing, developing and viewing multimedia on-line applications. A publisher, such as the publisher 102, utilizes a publisher workstation 182 and a Designer software environment 194 to create and publish the title layouts 110 and content 112. In the system 100, a publisher could possibly just create content and use the title layouts of another publisher. The title layouts and/or content are preferably stored in a network 122 that includes a high-performance server for hosting on-line applications. The preferred network 122 will be further described in conjunction with FIG. 3. A customer, such as customer 162, utilizes a customer workstation 182 and a runtime Viewer software component 202 to find and activate MPS titles, stored on the network 122, on a visual display at a workstation 182.

The Designer 194 is an extensible design and development environment that includes several preferred software components. These include a project editor 184 to manage tiles, containers, and objects; a page editor 186 to create and layout pages; a word processor, such as Microsoft MPS Word, for creating content optimized for the MP system 100; and optional third-party tools, such as a sound editor 190, an image editor 192, and another media object editor 193 to create and modify sound, image, video, animation and other content objects. For authoring textual content, the preferred text editor is an enhanced version of the Microsoft Word 6.0 wordprocessing program for creating tagged, hypertext documents. Together, these programs form the Designer Component 194.

The project editor 184 is used to invoke a style sheet editor 187 that is used to create and edit style sheets. The style sheet editor 187, and portions of the project editor 184 and page editor 186 will be described in detail in subsequent sections of this discussion.

The MPS Designer 194 is a page or forms-based development system similar to Visual Basic. The development environment is graphical and easy to use. Controls, which represent the components of a MPS application that will appear on-screen, are laid out within MPS pages. MPS pages and controls are preferably based on Object Linking and Embedding 198 (in FIG. 2) (OLE), Microsoft's component software technology. OLE, which presently is at version 2, is further described in Inside OLE 2 and OLE 2, Programmer's Reference, Volumes 1 and 2, all of which are published by Microsoft Press, and are hereby incorporated by reference. However, other compound document architectures such as OpenDoc could be used as well.

The MP system 100 includes a number of pre-packaged controls such as navigation controls, rich-text controls, multimedia controls, and other special controls specifically designed to support the creation of MPS applications. Because MPS is based on OLE, third parties can also design their own controls for use within MPS (using the Microsoft OLE Control Development Kit that is bundled with Microsoft Visual C++ 2.0). In this way, the MPS development environment is fully extensible so that customers can add new capabilities to their MPS applications by purchasing additional controls from third parties or by creating their own controls. The MPS development environment also includes a Visual Basic for Applications (VBA) scripting and debugging system.

While content is displayed within controls that have been laid out on MPS pages in the MPS Designer 194, content can be authored in any number of existing Microsoft and third-party tools. One such tool for authoring hypertext is an enhanced version of Microsoft Word that supports special MPS features for creating and tagging MPS text. Other existing tools for creating bitmaps, complex drawings, and other multimedia content can be used to create the content displayed within any particular OLE Control. In addition, most existing OLE Controls (.ocx executable programs) will work in the MPS environment although they may not be optimized for on-line applications. For example, a standard AVI OLE Control could be placed in an MPS application.

The controls that are part of the MP system 100 are optimized for low bandwidth on-line delivery of data. However, it should be noted that a other high bandwidth data delivery systems could be used without departing from the spirit of the present invention. The MPS 100 is designed to operate with information that can change from minute to minute, daily, or monthly. So while MPS can be used for creating static titles that are hand-crafted and cannot be easily updated on an ongoing basis, the main focus of the MP system 100 is to provide an efficient, cost-effective mechanism to manage the creation and management of dynamic, continually changing on-line applications. At the same time, as an open development environment, many of the tools commonly used for creating static multimedia content can easily be incorporated into the MP system 100.

When activated by the customer, the Viewer 202 examines the components of a selected title to see if any of the information required to display the pressed title needs to be acquired. It then acquires this information from publication storage 120 or local storage at customer workstation 182 and organizes it so that it can be displayed to the customer 162. Thus a pressed title captures the set of information that is displayed to the customer at a given point in time. In other words, some titles might produce a new pressing every day, or more frequently as the content changes. On the other hand, other titles may be static; when a static title is activated there is no need to do another pressing, once the content has not changed.

While pressing a static title may seem unnecessary, the process of organizing and displaying the pressing can take into account customer preferences and display device characteristics. For example, suppose a customer activates a static title on a laptop when using the laptop screen and then later activates the same title when the computer is attached to a larger display. The second activation will result in another pressing to take into account the much larger screen area if the publication has enabled such an option. When the title is activated, the MPS Viewer 202 determines if the title is out of date; acquires any needed information; and then, if necessary, creates and possibly personalizes the pressing.

The MPS Viewer 202 enables customers to perform the following actions within the limits defined by content providers: select and personalize the information a title acquires, modify the overall structural properties of titles, personalize the look and feel of titles, manage and archive the content customers acquire, and view billing and pricing information.

The requirement for the preferred publisher workstation 180 is a Windows 95 workstation with the minimum hardware configuration necessary to run the MSN sysop tools and to store and display the titles under development. The preferred Windows 95 workstation has, at a minimum, an Intel 486 processor running at 33 MHz or better with eight Megabytes of memory. A 9600 baud or faster modem is required to run the MSN sysop tools. For multimedia titles, this includes a MPC2 compliant (multimedia configured) workstation.

The MPS Viewer 202 should be installed on the customer workstation 182 before an MPS title is activated. The presently preferred customer workstation is capable of running Windows 95. To make this installation easy, the Viewer 202 is automatically installed onto the customer workstation 182 the first time the customer connects to MSN and the MP system 100 is enabled. MPS titles may include resources such as fonts, Dynamic Link Libraries (DLLs), and OLE controls that are placed into the resource container or folder of MPS titles. Before customers can view such titles, these resources are installed on their workstation 182.

D. Network Storage

Referring to FIG. 3, an exemplary network storage subsystem 122 will be described. FIG. 3 is a high level diagram illustrating the basic components of an on-line network 122 in accordance with one embodiment of the invention. Multiple publisher workstations 102, 104, 106 and customer workstations 160, 164 are connected to a host data center 242 by a wide area network (WAN) 240. The publisher workstations preferably have high speed connections to the WAN 240. The wide area network 240 includes WAN lines 244 which are provided by one or more telecommunications providers, and which allow end users (i.e., publishers and customers) over a wide geographic area to access the host data center 242 via modem. The WAN lines 244 preferably include both X.25 lines and ISDN (Integrated Service Digital Network) lines.

The host data center 242 comprises a plurality of application servers 246 connected to a high speed local area network (LAN) 248 (which may include multiple LANs). Each application server 246 has a unique server ID. As shown in FIG. 3, three of the servers 246 are MP System servers (246a, 246b and 246c). Also connected to the LAN 248 are multiple Gateway computers 250 also referred to as Gateways, which link incoming calls from end users to the application servers 246.

It is envisioned that the host data center 242 may advantageously have on the order of one hundred Gateways 250, and between several hundred to several thousand application servers 246. A host data center of this type will be able to handle tens of thousands of simultaneous user logon sessions.

As described below, the server side of each on-line service is preferably implemented using one of the following: (1) a single application server 246, (2) a set of "replicated" application servers (i.e., application servers which run the same service application or applications) that provide access to replicated (and locally-stored) copies of service "content" data (i.e., data provided to end user's of the service), or (3) a set of replicated application servers that provide access to server-specific (non-replicated) service content data.

The host data center 104 also includes multiple Arbiter computers 252 that monitor, record and process certain types of transactions to ensure consistency among replicated application servers. The host data center 104 also includes one or more