1. Technical Field
This disclosure generally relates to content management systems, and more specifically relates to bursting in a content management system.
2. Background Art
A content management system (CMS) allows many users to efficiently share electronic content such as text, audio files, video files, pictures, graphics, etc. Content management systems typically control access to content in a repository. A user may generate content, and when the content is checked into the repository, the content may be subsequently processed by the CMS according to predefined rules. A user may also check out content from the repository, or link to content in the repository while generating content. The rules in a CMS assure that content that comes into or out of the system or that is linked to meets desired criteria specified in the rules.
Known content management systems check their rules when content comes into or out of the repository. If a rule is satisfied, the CMS may perform subsequent processing on the content. Known content management systems may include rules related to bursting, linking, and synchronization. Bursting rules govern how a document is bursted, or broken into individual chunks, when the document is imported or checked into the repository. By bursting a document into chunks, the individual chunks may be potentially reused later by a different author. Linking rules are used for importing and associating objects related to a CMS document based on particular elements or attributes from the document as specified by the rules. For example, an XML document that references external images can take advantage of linking rules so that relationships between the XML content and the external images are automatically created when the document is imported or checked into the repository. Another kind of linking rule governs what content in a repository a user may link to in a document that will be subsequently checked into the repository. Synchronization rules govern synchronization between content and metadata (or attributes) related to the content. For example, a synchronization rule may specify that whenever a specified CMS attribute is changed, a particular piece of XML in the content should be automatically updated with that attribute's value.
Bursting rules allow an element in a document to be saved as its own chunk (i.e. object or another document) in the CMS so the element may be reused within other documents or managed independently of the containing document(s). These bursting rules are applied automatically by the CMS when a document is imported or checked into the repository or may be applied manually by users during authoring of the document content. In the prior art, when a document is imported or checked into the repository, the document is processed according to one set of bursting rules for the document. The chunks themselves will be stored as individual documents, which may have additional rules associated with them. But those additional rules will not be applied by existing systems. Any additional rules attached to each individual chunk would not get evaluated unless the chunk itself was explicitly edited and checked back into the repository. To have the rules of each chunk evaluated, a user or system administrator would have to check out, edit, and then check in each individual chunk. The chunks may also be reused across grammars or document types. In existing systems, the administrator can define deep bursting rules associated with the top-level (i.e. parent) document to further burst child elements that are multiple levels deep. However, those rules need to be defined for every top-level document type that could directly or indirectly contain similar child element types. It is inefficient and error prone for a system administrator to have to define bursting rules for every top-level document or document type that might contain the chunk of a similar type. This is time consuming, and the user or system administrator may not be aware of all of the chunks that need to have individual content rules evaluated against them. Without a way to autonomically evaluate the rules for each chunk in the repository, the known bursting methods will require manual and error-prone efforts to define and evaluate bursting rules.
When a document is checked into a content management system repository, the document is processed according to the document's bursting rules. Parts of the document may be stored as separate chunks in the repository. These ‘chunks’ are typically stored as their own individual documents. Each chunk may have a corresponding set of chunk-specific bursting rules and a corresponding child processing policy. The chunks may therefore be further bursted based on rules from the parent document or based on rules associated with the new child chunk document. A granular bursting mechanism processes each chunk in the repository using the applicable bursting rule. One suitable implementation to determine the applicable bursting rule is to recursively decide whether to use the rules for the parent document, or the chunk-specific bursting rules. Another suitable implementation to determine the applicable bursting rule is for each chunk to check the parent document's child processing policy. If the parent document's child processing policy allows specific rules to be overwritten, the chunk-specific bursting rules for the chunk are used. If the parent document's child processing policy does not allow rules to be overwritten, the parent document's bursting rules are used.
The foregoing and other features and advantages will be apparent from the following more particular description, as illustrated in the accompanying drawings.
The disclosure will be described in conjunction with the appended drawings, where like designations denote like elements, and:
Many known content management systems use extensible markup language (XML) due to its flexibility and power in managing diverse and different types of content. One known content management system that uses XML is IBM Solution for Compliance in a Regulated Environment (SCORE) developed by IBM Corporation. XML is growing in popularity, and is quickly becoming the preferred format for authoring and publishing. While the disclosure herein discusses XML documents as one possible example of content that may be managed by a content management system, the disclosure and claims herein expressly extend to content management systems that do not use XML.
Method 200 shows a prior art method for checking in an original document that was just created that contains no links to existing chunks. If the document being checked in contains links to existing chunks (i.e. which may have originated from other parent documents), then method 300 is applicable. Method 300, shown in
The granular bursting mechanism disclosed and claimed herein analyzes bursting rules for a document as well as chunk-specific bursting rules for one or more chunks in the document, then determines how to burst or update those chunks when the documents are checked in based on a child processing policy that specifies whether a document's bursting rules may be overridden by chunk-specific bursting rules.
Referring to
The CMS 170 resides in the main memory 160 of a server computer system 140 that also includes a CPU 142 and storage 144 that includes a content repository 150 that holds content 152 managed by the CMS 170. Content 152 may include one or more chunks 180. As used in the disclosure and claims herein, the term “chunk” means any type of data that may be managed by a content management system, including all known types of data and objects as well as those developed in the future, and the term “element” means any section or portion of a chunk. One example of a suitable server computer system 140 is an IBM eServer System i computer system. However, those skilled in the art will appreciate that the disclosure herein applies equally to any type of client or server computer systems, regardless of whether each computer system is a complicated multi-user computing apparatus, a single user workstation, or an embedded control system. CMS 170 includes granular bursting mechanism 172. Granular bursting mechanism 172 may burst a document into one or more chunks 180. A chunk 180 may include one or more chunk-specific bursting rules 82 and a child processing policy 184 which are discussed in more detail below.
In
Server computer system 140 may include other features of computer systems that are not shown in
The network interface is used to connect the server computer system 140 to multiple other computer systems (e.g., 110A, . . . , 110N) via a network, such as network 130. The network interface and network 130 broadly represent any suitable way to interconnect electronic devices, regardless of whether the network 130 comprises present-day analog and/or digital techniques or via some networking mechanism of the future. In addition, many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate across a network. TCP/IP (Transmission Control Protocol/Internet Protocol) is an example of a suitable network protocol.
The mass storage interface is used to connect mass storage devices, such as a direct access storage device 190, to server computer system 140. One specific type of direct access storage device 190 is a readable and writable CD-RW drive, which may store data to and read data from a CD-RW 195.
Main memory 160 preferably contains data and an operating system that are not shown in
CPU 142 may be constructed from one or more microprocessors and/or integrated circuits. CPU 142 executes program instructions stored in main memory 160. Main memory 160 stores programs and data that CPU 142 may access. When computer system 140 starts up, CPU 142 initially executes the program instructions that make up the operating system.
Although server computer system 140 is shown to contain only a single CPU, those skilled in the art will appreciate that a content management system 170 may be practiced using a computer system that has multiple CPUs. In addition, the interfaces that are included in server computer system 140 (e.g., display interface, network interface, and DASD interface) preferably each include separate, fully programmed microprocessors that are used to off-load compute-intensive processing from CPU 142. However, those skilled in the art will appreciate that these functions may be performed using I/O adapters as well.
At this point, it is important to note that while the description above is in the context of a fully functional computer system, those skilled in the art will appreciate that the content management system 170 may be distributed as an article of manufacture in a variety of forms, and the claims extend to all suitable types of computer-readable media used to actually carry out the distribution, including recordable media such as floppy disks and CD-RW (e.g., 195 of
The CMS herein may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, internal organizational structure, or the like. This may include configuring a computer system to perform some or all of the methods described herein, and deploying software, hardware, and web services that implement some or all of the methods described herein. This may also include analyzing the client's operations, creating recommendations responsive to the analysis, building systems that implement portions of the recommendations, integrating the systems into existing processes and infrastructure, metering use of the systems, allocating expenses to users of the systems, and billing for use of the systems.
Referring to
Referring to
Referring to
A simple example is now given to illustrate many of the concepts described above.
In the example herein, parent document 700 contains portions 710 and 720 that may be individually bursted. Portion 710 is shown as its own XML document (or chunk) 900 in
Parent bursting rules 800 shown in
The “allowOverride=true” aspect of bursting rules 810 and 820 indicates to the granular bursting mechanism that bursting rule 810 and 820 may be overridden if a child chunk has a similar rule defined in the child chunk's chunk-specific bursting rules.
We now assume parent document 700 has been checked into the repository by a user (step 510 in
Since chunk-specific bursting rules 1000 had allowOverride=“false” as the child processing policy, the synch rules for child chunk 1200 were not applied. This is shown in
The disclosure and claims herein provide a way to determine which bursting rule should be applied to a particular chunk according to bursting rules for a parent document that references the chunk, according to chunk-specific bursting rules, and according to a child processing policy that defines whether bursting rules for a child chunk may override bursting rules for the parent that references the child chunk. In this manner more intelligent bursting decisions may be automatically made.
One skilled in the art will appreciate that many variations are possible within the scope of the claims. Thus, while the disclosure is particularly shown and described above, it will be understood by those skilled in the art that these and other changes in form and details may be made therein without departing from the spirit and scope of the claims. For example, while the examples in the figures and discussed above related to XML documents, the disclosure and claims herein expressly extend to content management systems that handle any suitable type of content, whether currently known or developed in the future. In addition, while the examples herein relate to bursting a single element, the disclosure and claims herein expressly extend to bursting multiple elements, whether multiple elements are bursted to corresponding individual documents in the repository or whether the multiple elements are bursted to a single document in the repository.