|Publication number||US7979405 B2|
|Application number||US 11/035,589|
|Publication date||Jul 12, 2011|
|Priority date||Jan 14, 2005|
|Also published as||US20060161590|
|Publication number||035589, 11035589, US 7979405 B2, US 7979405B2, US-B2-7979405, US7979405 B2, US7979405B2|
|Inventors||Jason M Cahill, Adrian Fanaru, Dustin G Friesenhahn, Ethan D Gur-esh, Hai Liu|
|Original Assignee||Microsoft Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (69), Non-Patent Citations (24), Classifications (9), Legal Events (3)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present invention relates to computer software and, more particularly, to electronic document management systems.
Content or document management systems organize information in a systematic way so information can be stored, accessed, and distributed effectively. An effective document management system helps an organization to efficiently process, duplicate, distribute, and store documents. Traditionally, organizations have relied on paper or microfiche filing systems for storage and retrieval. Nowadays, more and more organizations are relying on paper-less filing systems, i.e., digital or electronic document management systems (hereinafter “electronic DMS”), to manage documents.
Compared to a paper or microfiche filing system, an electronic DMS reduces the cost in processing, duplicating, distributing, and storing documents; an electronic DMS also enables faster access to and retrieval of documents. In addition, an electronic DMS is capable of managing documents with various formats. A document in an electronic DMS can be any digitized content, such as a word processing file, an audio file, a video file, a spreadsheet, a fax, a database file, an e-mail, a scanned image, or an Internet/intranet HTML document.
Though an electronic DMS offers various economical and operational advantages over a paper or microfiche filing system, a conventional electronic DMS lacks certain desirable document management features. For example, a digital document usually is associated with a set of properties, such as file name, file size, or author of the document. Generally, the software creating a document predefines the properties associated with the document. This pre-setting of properties of an individual document does not allow a user to set properties for a group of documents sharing a common characteristic, for example, the same content type. A content type describes what a document is about. For instance, the content type of this document is patent application. Other examples of content types include project plan, personnel file, etc. A user such as the system administrator of an electronic DMS may wish to define properties and rules to manage documents sharing a common characteristic. For example, a system administrator may want to specify who can access personnel files in an organization. A conventional electronic DMS does not provide such a feature.
In addition, documents in an electronic DMS are generally stored in a document server. Conventionally, once a document is downloaded from the document server, the electronic DMS no longer has control over the behaviors of the document. For example, if a personnel file is downloaded from a document server, the electronic DMS no longer can enforce any access rule on the document.
Furthermore, a conventional electronic DMS allows all property information associated with a downloaded document to be modified and communicated back to a document server. However, in order to exert centralized management of documents sharing a common characteristic, a system administrator of an electronic DMS may prefer rules shared by the documents to remain constant. Hence, it is desirable that rules shared by a group of documents should remain intact in the document server without regard as to how the rules may have been changed in a downloaded document.
Therefore, there exists a need to centrally define properties and rules concerning documents sharing a common characteristic, such as the same content type. There also exists a need to automatically associate such properties and rules with such a document. There further exists a need to ensure that rules governing all documents sharing a common characteristic remain constant, not modifiable by specific settings on an individual document.
The invention addresses the above-identified needs by providing a computer-implemented method and a computing system that automatically associate properties and rules with documents sharing a common characteristic. Such a common characteristic can be the same content type, the same file extension, the same creator, etc. A common characteristic is also called a prescribed type.
One aspect of the invention defines a type template for each prescribed type. The type template includes generic type information that is automatically applied to all documents of the prescribed type. The type template may further include instance-specific type information that is instantiated for each document of the prescribed type. The type information included in a type template is associated with each document of the prescribed type.
Another aspect of the invention identifies the prescribed type associated with a document. The corresponding type information is then retrieved, for example, from a central document server. The retrieved type information is associated with the document, which may be opened by a client application that enforces rules contained in the type information. The type information may specify document management information such as workflow, access right, and business process.
In accordance with yet another aspect of the invention, associating type information with a document further includes creating a dependency between a document and its corresponding type template. A document is marked as dirty if its type template is updated. The type information is associated with the document only when the document is downloaded from the document server or requested by a client application.
In accordance with a further aspect of the invention, type information associated with a document may be retrieved from the document and sent back to the document server. Such type information includes the instance-specific type information, but not the generic type information that defines the behavior of all documents of the prescribed type.
In summary, the invention provides a computing system and a computer-implemented method that automatically associate type-specific information with a document of a prescribed type. The invention thus enables automatic management of the behaviors of documents sharing a common characteristic.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
Embodiments of the invention define properties and rules for documents sharing at least one common characteristic, i.e., a prescribed type. One aspect of the invention provides a type template specifying type information that can be associated with each document of a prescribed type. Such a type template includes instance-specific type information, which is instantiated for each document of the prescribed type. For example, the instantiated instance-specific type information can identify the name and/or the size of a document. Upon the creation of a document of a prescribed type, instance-specific type information in the corresponding type template is instantiated for the document, and, preferably, stored in the directory on the document server where the document resides. The type template also includes generic type information that is automatically applied to all documents of the type. For example, the generic type information can dictate that only staff in the human resource department of an organization can access all documents of the content type “personnel data.”
Once the document is requested by a client application and/or downloaded from the document server, the instantiated instance-specific type information in the directory and the generic type information in the type template are combined and associated with the document. The combined type information governs how the document behaves. The instantiated instance-specific type information in the document may be modified and sent back to the directory in the document server, while the generic type information in the document cannot be modified or updated on the document server.
The invention will primarily be described in the context of defining and using type information for documents of the same content type. However, those skilled in the relevant art and others will appreciate that the invention is also applicable to documents or information items of other prescribed types, such as the same file extension, the same creator, or the same creation date.
The following description first provides an overview of a computing system in which the invention may be implemented. Then a computer-implemented method is described. The computer-implemented method associates type information with a document when it is downloaded from a document server, and/or retrieves instantiated instance-specific type information from the document and stores the retrieved information on the document server. The illustrative examples provided herein are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Similarly, any steps described herein may be interchangeable with other steps, or combinations of steps, in order to achieve the same result.
The document server 102 associates a definition for a content type with any document of the content type. For example, as illustrated in
In embodiments of the invention, a content type template 202 is provided to define type-specific information for documents of a content type. The content type template 202 includes instance-specific type information 204 and generic type information 206. The instance-specific type information 204 includes properties of a document of the content type. For example, the instance-specific type information 204 may include properties identifying the name of a document, the file format of a document, the size of a document, etc. For a music document, the instance-specific type information 204 may also include properties such as sampling rate, length, etc. For a document containing URL bookmarks, the instance-specific type information 204 can further include properties such as last visit, Web site name, cookie information, etc. When a document 208 of the content type is created, the instance-specific type information 204 is instantiated with data specific to the document. The instantiated instance-specific type information 204 is then associated with the document, for example, by being stored in the same directory the document is stored in on the document server 102. An exemplary implementation of storing instance-specific type information of a document of a content type within the directory that stores the document is described in detail in a related U.S. patent application Ser. No. 11/058,096, filed Feb. 14, 2005 (now U.S. Pat. No. 7,653,653), titled “Dynamically Configurable Lists for Encoding Multiple Content Types,” filed Jan. 7, 2005, which is incorporated herein by reference.
In exemplary embodiments of the invention, the content type template 202 further includes generic type information 206, which specifies type information that is automatically applied to all documents of the content type. The generic type information 206 may include policies regulating the behaviors of documents of the content type. For example, a writer may create a policy specifying that all documents containing a specific subject matter cannot be printed. A system administrator may define a retention policy specifying that documents of a specific content type will automatically be deleted after a certain time period. The generic type information 206 is defined on the document server 102.
In embodiments of the invention, the generic type information 206 is automatically applied to the documents of the content type by a client application that runs a document 208 of the content type. For example, a client application may automatically enforce any access restriction on personnel documents. The generic type information 206 can also be automatically applied to the documents of the content type by a server application, which may be on the document server 102. For example, if the generic type information 206 includes an expiration policy that specifies all documents of the content type will expire within ten years of creation, a process on the document server 102 may periodically scan all documents of the content type to enforce the expiration policy.
When a document 208 of the content type is requested by a client application or downloaded from the document server 102, content type information 212—the instantiated instance-specific type information 204 and the generic type information 206—is associated with the document 208. The content type template 202 thus enables all documents of the content type to share the same generic type information 206 and inherent same instance-specific type information 204.
In an exemplary embodiment of the invention, a parser 210 is used to associate content type information 212 with a document 208. The parser 210 can be used for any content type. In addition, the parser 210 is capable of recognizing the specific file format of a document 208 and associating content type information 212 with the document 208 according to the file format of the document 208. For example, the parser 210 may associate content type information 212 with a document 208 by inserting the information into a location in the document 208. This location may be different depending on the file format of the document. For instance, a word processing file would have a different insertion location than an image file.
Specifically, when a document 208 is requested by a client application or is downloaded from the document server 102, the parser 210 retrieves the corresponding content type information 212. The parser 210 then demotes the content type information 212 into the document 208. The resulting document 208 thus contains content type information 212 that includes both the instantiated instance-specific type information 204 and the generic type information 206.
For a large DMS, the document server 102 may contain hundreds or thousands of documents of each content type. Updating information in a content type template 202, for example, adding a new property or a new policy, means that all documents of the content type must be updated. If thousands of documents of the content type exist, updating the documents consumes extensive computing resources. Embodiments of the invention employ a lazy update mechanism to reduce the consumption of computing resources in the event documents need to be updated with changes in their corresponding content type template 202.
When a document 208 is determined to be of a content type, it is identified in a dependency list associated with the corresponding content type template 202. Any time the content type template 202 is updated, all documents of the content type can be determined from the dependency list. Any document that is dependent on the content type template 202 is then marked as dirty. The process of demoting the updated content type information 212 is delayed until the first time a document 208 is downloaded or requested by a client application. The lazy update mechanism thus prevents unnecessary rewriting of a document with updated content type information.
Specifically, the process 300 retrieves instantiated instance-specific type information from a directory on the document server. See block 306. The process 300 retrieves generic type information from the corresponding content type template on the document server. See block 310. The process 300 then demotes all the retrieved content type information to the document. See block 312. The process 300 then terminates.
Referring back to
While the preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5742813||Sep 12, 1995||Apr 21, 1998||Cadis, Inc.||Method and apparatus for concurrency in an object oriented database using lock inheritance based on class objects|
|US5794030||Dec 4, 1995||Aug 11, 1998||Objectivity, Inc.||System and method for maintenance and deferred propagation of schema changes to the affected objects in an object oriented database|
|US5842223||Jul 3, 1995||Nov 24, 1998||Sun Microsystems Inc.||Method and apparatus for information state management|
|US5860073||Jul 17, 1995||Jan 12, 1999||Microsoft Corporation||Style sheets for publishing system|
|US5878415||Mar 20, 1997||Mar 2, 1999||Novell, Inc.||Controlling access to objects in a hierarchical database|
|US5893107||Jul 1, 1996||Apr 6, 1999||Microsoft Corporation||Method and system for uniformly accessing multiple directory services|
|US5893913||Nov 12, 1996||Apr 13, 1999||International Business Machines Corporation||Method for synchronizing classes, objects, attributes and object properties across an object-oriented system|
|US5913063||Feb 26, 1997||Jun 15, 1999||Oracle Corporation||Drag and drop object subclassing|
|US5920725||Jul 2, 1997||Jul 6, 1999||Adaptivity Inc.||Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors|
|US5940834||Mar 13, 1997||Aug 17, 1999||Mitel Corporation||Automatic web page generator|
|US5956736||Sep 27, 1996||Sep 21, 1999||Apple Computer, Inc.||Object-oriented editor for creating world wide web documents|
|US6026408||Jan 28, 1998||Feb 15, 2000||Unisys Corp.||Method for synchronizing the schema of a database with its representation in an object-oriented repository|
|US6038567||Feb 19, 1998||Mar 14, 2000||Microsoft Corporation||Method and system for propagating object properties in a desktop publishing program|
|US6047289||Nov 7, 1997||Apr 4, 2000||Novell, Inc.||Method and apparatus for directed data propagation|
|US6094657||Oct 1, 1997||Jul 25, 2000||International Business Machines Corporation||Apparatus and method for dynamic meta-tagging of compound documents|
|US6230173||Jul 17, 1995||May 8, 2001||Microsoft Corporation||Method for creating structured documents in a publishing system|
|US6272495||Apr 22, 1998||Aug 7, 2001||Greg Hetherington||Method and apparatus for processing free-format data|
|US6336211||May 20, 1999||Jan 1, 2002||Xilinx, Inc.||Method and apparatus for implementing type-safe heterogeneous property lists|
|US6360230||Nov 18, 1998||Mar 19, 2002||Microsoft Corporation||Method and system for uniformly accessing multiple directory services|
|US6370542||Oct 23, 1998||Apr 9, 2002||Qwest Communications International, Inc.||Method and apparatus for knowledge acquisition and management|
|US6405220||Jul 6, 2001||Jun 11, 2002||Siebel Systems, Inc.||Partially replicated distributed database with multiple levels of remote clients|
|US6425016||May 27, 1997||Jul 23, 2002||International Business Machines Corporation||System and method for providing collaborative replicated objects for synchronous distributed groupware applications|
|US6446077||Sep 21, 1998||Sep 3, 2002||Microsoft Corporation||Inherited information propagator for objects|
|US6584480||Oct 30, 2000||Jun 24, 2003||Microsoft Corporation||Structured documents in a publishing system|
|US6591272||Feb 22, 2000||Jul 8, 2003||Tricoron Networks, Inc.||Method and apparatus to make and transmit objects from a database on a server computer to a client computer|
|US6601233||Jul 30, 1999||Jul 29, 2003||Accenture Llp||Business components framework|
|US6615223||Feb 29, 2000||Sep 2, 2003||Oracle International Corporation||Method and system for data replication|
|US6754885||Nov 23, 1999||Jun 22, 2004||Invensys Systems, Inc.||Methods and apparatus for controlling object appearance in a process control configuration system|
|US6859217||Nov 29, 2000||Feb 22, 2005||Microsoft Corporation||System and method to display and manage data within hierarchies and polyarchies of information|
|US6915287||Dec 13, 2001||Jul 5, 2005||Novell, Inc.||System, method and computer program product for migrating data from one database to another database|
|US6957229||Dec 28, 2000||Oct 18, 2005||Matthew Graham Dyor||System and method for managing personal information|
|US7072911||Jul 24, 2002||Jul 4, 2006||Novell, Inc.||System and method for incremental replication of changes in a state based distributed database|
|US7146565||Apr 29, 2003||Dec 5, 2006||Kabushiki Kaisha Toshiba||Structured document edit apparatus, structured document edit method, and program product|
|US7155491||Sep 19, 2001||Dec 26, 2006||Websidestory, Inc.||Indirect address rewriting|
|US7249118||May 17, 2002||Jul 24, 2007||Aleri, Inc.||Database system and methods|
|US7392234 *||Sep 19, 2000||Jun 24, 2008||Kom, Inc.||Method and system for electronic file lifecycle management|
|US7607164 *||Oct 20, 2009||Microsoft Corporation||Systems and processes for managing policy change in a distributed enterprise|
|US20010011287||Jun 15, 1998||Aug 2, 2001||Masatomo Goto||Apparatus for defining a style specification for visually outputting a structured document|
|US20020138513||Mar 23, 2001||Sep 26, 2002||James Korotney||Method for modifying and publishing a web page|
|US20020143521||Dec 10, 2001||Oct 3, 2002||Call Charles G.||Methods and apparatus for storing and manipulating variable length and fixed length data elements as a sequence of fixed length integers|
|US20020174142||May 28, 1999||Nov 21, 2002||Alan J. Demers||Schema evolution in replication|
|US20020184264||May 31, 2001||Dec 5, 2002||Daniel Berg||Method and apparatus for synchronizing an XML document with its object model|
|US20030014442||Jul 5, 2002||Jan 16, 2003||Shiigi Clyde K.||Web site application development method using object model for managing web-based content|
|US20030050937||Sep 6, 2002||Mar 13, 2003||Lusen William D.||System for adaptively identifying data for storage|
|US20030225840||Oct 22, 2002||Dec 4, 2003||Glassco David H.J.||Change notification and update service for object sharing via publication and subscription|
|US20030237046||Jun 12, 2002||Dec 25, 2003||Parker Charles W.||Transformation stylesheet editor|
|US20040019639||Jul 24, 2002||Jan 29, 2004||Sandhya E||Last thread lock management for multi-threaded process and distributed data systems|
|US20040073782||Apr 29, 2003||Apr 15, 2004||Adrian Price||Plug-in configuration manager|
|US20040123234||Feb 6, 2003||Jun 24, 2004||Schemalogic, Inc.||Method and system for change control management of shema definition objects|
|US20040205592||Aug 20, 2002||Oct 14, 2004||Xmlcities, Inc.||Method and apparatus for extensible stylesheet designs|
|US20040225652||May 7, 2003||Nov 11, 2004||Microsoft Corporation||Connected templates in connection with a content management server system or the like|
|US20040267595||Jun 30, 2004||Dec 30, 2004||Idcocumentd, Llc.||Worker and document management system|
|US20050010580||Apr 29, 2004||Jan 13, 2005||Infinite Reason Ltd.||Data processing system|
|US20050015436||May 9, 2003||Jan 20, 2005||Singh Ram P.||Architecture for partition computation and propagation of changes in data replication|
|US20050076036||Feb 5, 2003||Apr 7, 2005||International Business Machines Corporation||Systems, methods, and computer program products to efficiently update multidimensional databases|
|US20050091192||Oct 12, 2004||Apr 28, 2005||Microsoft Corporation||Dynamically identifying dependent files of an application program or an operating system|
|US20050091637||Oct 23, 2003||Apr 28, 2005||Microsoft Corporation||Changeable class and pattern to provide selective mutability in computer programming environments|
|US20050102324||Mar 30, 2004||May 12, 2005||Leslie Spring||Support applications for rich media publishing|
|US20050108225||Dec 30, 2004||May 19, 2005||Bill Chau||Method, apparatus, and computer-readable medium for searching and navigating a document database|
|US20050114479||Nov 26, 2003||May 26, 2005||Brett Watson-Luke||System and method for hierarchically representing configuration items|
|US20050149582||Dec 29, 2003||Jul 7, 2005||Wissmann Joseph T.||Method and system for synchronization of copies of a database|
|US20060004820 *||Dec 31, 2004||Jan 5, 2006||Claudatos Christopher H||Storage pools for information management|
|US20060048224 *||Aug 30, 2004||Mar 2, 2006||Encryptx Corporation||Method and apparatus for automatically detecting sensitive information, applying policies based on a structured taxonomy and dynamically enforcing and reporting on the protection of sensitive data through a software permission wrapper|
|US20060087669||Oct 25, 2005||Apr 27, 2006||Takehito Yamaguchi||Recording medium storing image data and print information, and recording apparatus for the recording medium|
|US20060143561||Dec 23, 2004||Jun 29, 2006||Microsoft Corporation||System and method for author-driven template switching in the development and modification of web pages|
|US20060184507||Feb 14, 2005||Aug 17, 2006||Microsoft Corporation||Dynamically configurable lists for including multiple content types|
|US20060184571||Dec 16, 2005||Aug 17, 2006||Microsoft Corporation||Hierarchical management of object schema and behavior|
|US20060200751||May 1, 2006||Sep 7, 2006||Decentrix Inc.||Method and apparatus for providing conditional customization for generating a web site|
|EP1557757A2||Dec 21, 2004||Jul 27, 2005||Sun Microsystems, Inc.||System and method for inducing asynchronous behavioral changes in a managed application process|
|1||Altova, STYLEVISION 2004 User Manual, May 17, 2004, Altova, pp. 1, 2, 13-15, 27-30, 263, and 275-277.|
|2||Design and Implementation of ET++, a Seamless Object-Oriented Application Framework http://www.ubilab.org/publications/print-versions/pdf/wei89.pdf, 1989; 35 pages.|
|3||Design and Implementation of ET++, a Seamless Object-Oriented Application Framework http://www.ubilab.org/publications/print—versions/pdf/wei89.pdf, 1989; 35 pages.|
|4||Final Office Action mailed Sep. 28, 2007 in U.S. Appl. No. 11/021,099; 9 pages.|
|5||Incremental maintenance of materialized object-oriented views in MultiView: strategies and performance evaluation http://ieeexplore.ieee.org/search/wrapper.isp?arnumber=729731, 1998; 1 page.|
|6||Non-Final Office Action mailed Jan. 17, 2007 in U.S. Appl. No. 11/021,099; 9 pages.|
|7||Non-Final Office Action mailed Jun. 11, 2008 in U.S. Appl. No. 11/021,099; 5 pages.|
|8||Notice of Allowance mailed Oct. 1, 2010 in U.S. Appl. No. 11/305,050; 9 pages.|
|9||Notice of Allowance mailed Sep. 22, 2008 in U.S. Appl. No. 11/021,099; 4 pages.|
|10||Response to Final Office Action mailed Sep. 28, 2007 in U.S. Appl. No. 11/021,099, filed Mar. 21, 2008; 17 pages.|
|11||Response to Non-Final Office Action mailed Jan. 17, 2007 in U.S. Appl. No. 11/021,099, filed Jul. 17, 2007; 13 pages.|
|12||Response to Non-Final Office Action mailed Jun. 11, 2008 in U.S. Appl. No. 11/021,099, filed Jul. 9, 2008; 11 pages.|
|13||The Role of Polymorphic Reuse Mechanisms in Schema Evolution in an Object-Oriented Database http://ftp.ccs.neu.edu/pub/research/demeter/documents/Dapers/LZHL94-polymorphic-reuse.ps, 1997; 18 pages.|
|14||US Office Action (Final) dated Mar. 18, 2009, issued in U.S. Appl. No. 11/058,096, pp. 1-11.|
|15||US Office Action (Final) dated Nov. 13, 2009, issued in U.S. Appl. No. 11/305,050, pp. 1-23.|
|16||US Office Action dated (Final) Dec. 21, 2007, issued in U.S. Appl. No. 11/058,096, pp. 1-10.|
|17||US Office Action dated (Notice of Allowance) Sep. 8, 2009, issued in U.S. Appl. No. 11/058,096, pp. 1-7.|
|18||US Office Action dated Jan. 31, 2008, issued in U.S. Appl. No. 11/305,050, pp. 1-17.|
|19||US Office Action dated Jun. 4, 2007, issued in U.S. Appl. No. 11/058,096, pp. 1-10.|
|20||US Office Action dated May 11, 2009, issued in U.S. Appl. No. 11/305,050, pp. 1-25.|
|21||US Office Action dated May 12, 2010, issued in U.S. Appl. No. 11/305,050, pp. 1-28.|
|22||US Office Action dated Nov. 12, 2008, issued in U.S. Appl. No. 11/305,050, pp. 1-22.|
|23||US Office Action dated Sep. 10, 2008, issued in U.S. Appl. No. 11/058,096, pp. 1-11.|
|24||Using object-oriented principles to optimize update propagation to materialized views http://ieeexplore.ieee.org/search/wrapper.isp?arnumber=492178, Mar. 1, 1996; 1page.|
|U.S. Classification||707/694, 707/736, 707/758|
|International Classification||G06F17/30, G06F7/00|
|Cooperative Classification||G06F17/30011, G06F17/248|
|European Classification||G06F17/24V, G06F17/30D|
|Apr 1, 2005||AS||Assignment|
Owner name: MICROSOFT CORPORATION, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CAHILL, JASON M.;FANARU, ADRIAN;FRIESENHAHN, DUSTIN G.;AND OTHERS;REEL/FRAME:015853/0519
Effective date: 20050113
|Dec 9, 2014||AS||Assignment|
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001
Effective date: 20141014
|Dec 29, 2014||FPAY||Fee payment|
Year of fee payment: 4