Reducing reliance on content management system resources in a content management system

An analytics engine is described that can receive data associated with use of a content item in a content management system and measure and measure a use of content management system resources required to maintain the content item. Values of a usage metric can be assigned to the content item based on the received data associated with the use of the content item. A database schema can be generated by the analytics engine that is configured to reduce the use of content management system resources required to maintain the content item. The database schema can be provided to the content management system for implementation in a database associated with the content management system.

TECHNICAL FIELD

The subject matter described herein relates generally to content management systems and to obtaining multi-dimensional reports and analytics based on data generated by events that occur on content management systems.

BACKGROUND

Enterprise content management (ECM) covers a broad range of applications, including document management (DM), Web content management (WCM), records management (RM), digital asset management (DAM), search of managed content, and the like. A content management system (CMS) suitable for managing the various content (also referred to herein in some examples as “files” or “documents”) that an enterprise produces or generates, retains or otherwise stores, manipulates or modifies, etc. can support the requirements of one or more of such applications, and optionally other requirements, to provide a coherent solution in which content processes, management processes, and the like are capable of accessing content across a variety of applications subject to access controls, permissions, and the like. Content managed by a CMS can include one or more of documents, images, photos, Web pages, records, XML documents, other unstructured or semi-structured files, etc. Content retained in a CMS can also include directory structures such as folders, file trees, file plans, or the like, which can provide organization for multiple content items in addition to storing or otherwise representing relationships between content item, etc. An “enterprise” can generally refer to an organization, such as for example a business or company, a foundation, a university, or the like, and can have content requirements related to one or more business processes, content uses, etc.

A CMS manages the actual digital binary content, the metadata that describes a context of each content item, associations between a content item and other content or content items, a place and classification of a content item in a repository, indexes for finding and accessing content items, etc. The CMS can also manage processes and lifecycles of content items to ensure that this information is correct. The CMS can also manage one or more workflows for capturing, storing, and distributing content, as well as the lifecycle for how long content will be retained and what happens after that retention period.

A CMS for use in enterprise content management can include one or more of document management tools, applications, and interfaces to support general office work, search, and discovery. Workflow management capabilities of a CMS can support numerous business processes, optionally including, but not limited to, case management and review and approval. Collaboration applications and services of a CMS can support the collaborative development of information and knowledge in the creation and refinement of content and documents. This collaborative development of information and knowledge can be achieved through providing access to content managed by the CMS to multiple users. To prevent conflicting or discontinuous editing streams, a user can be allowed to check out or lock content for modification and check in the modified content such that other users are prevented from editing content concurrently. Web content management services of a CMS, which can be scalable, can support the delivery and deployment of content from the enterprise to its customers. Records management capabilities of a CMS can capture and preserve records based upon government-approved or other standards. A standards-based platform can also provide access to applications that use these standards, such as publishing, image management, email management, etc.

SUMMARY

As discussed in greater detail below, features of the current subject matter can enable the seamless access of content items managed by a CMS when viewing business information and business analytics reports about the content items. Reports associated with events occurring in a CMS can be generated. The events can relate to content items managed by the CMS, the status of the CMS, Business Process Applications, activities associated with the CMS, or the like. Reports can be a product of an analytics engine. Performing analytics on events associated with the CMS can be processor-intensive and therefore, if performed by the CMS, can reduce performance of the CMS. Consequently, analytics on the CMS is typically performed by an analytics engine that is separate from the CMS. Separating the analytics engine from the CMS facilitates improved performance in both elements, but introduces barriers when a user attempts to interact with both simultaneously. Features of the current subject matter can support multi-dimensional reporting analytics of activity associated with a CMS while facilitating access to the CMS through the reports generated by an analytics engine.

In one aspect, a computer-implemented method for implementation by one or more data processors forming part of at least one computing device, is provided. The method can include one or more operations. In some variations, data associated with use of a content item in a content management system can be received at an analytics engine. The analytics engine can measure, based on the received data, a use of content management system resources required to maintain the content item managed by a content management system. Maintaining the content item can include at least storing the content item in a database and processing the content item in response to interactions with one or more application processes operating on the content management system, or the like. Values of a usage metric can be assigned to the content item based on the measured use of content management system resources. The usage metric can provide an indication of the content management system resources required to maintain the content item. A database schema for a database of the content management system can be generated. The database schema can be defined based on the use of the content item and the values of the usage metric assigned to the content item and configured to reduce the use of content management system resources required to maintain the content item. The database schema can be implemented in the database of the content management system.

In some variations, the database schema can facilitate access to the content item based on the usage metric assigned to the content item. The database schema can be configured to increase the efficiency of access to the content item having a usage metric indicative that the content item requires increased content management system resources to be maintained compared to other content items maintained by the electronic content management system.

The usage metric associated with a content item can provide an indication of an entity that created the content item. The content management system resources can include computer resources, human resources, or the like.

In some variations, the operations can further include, at least, measuring the usage, of the content item, by a user group consisting of a group of users. The group of users may have one or more user characteristics in common, or one or more shared characteristics. In some variations, the shared characteristic can include one or more of a location of the users, a rank of the users, a role of the users, or the like.

A user group database schema can be generated for the content item based on the usage of the content item by the user group.

The database schema can cause the generation of tables that include foreign keys linking to tables of the database. The foreign keys can be row-specific.

DETAILED DESCRIPTION

ECM architectures are generally business critical systems. As such, it is important for operators of ECM architectures to monitor and analyze the status of the ECM to detect system failures and/or head-off system failures before it causes impact on the business.

Different organizations can use ECM architectures in different ways. The ECM architecture can include a content management system configured to maintain one or more databases. The databases can have a database schema configured to store data in a configuration determined to facilitate efficient access to and/or analysis of database information. The database schema can be configured to provide efficient access to and/or analysis of database information for an average organization. When different organizations use ECM architectures differently, a single default database schema may not be as efficient for one organization as it is for another.

ECM architectures can be used to maintain content items. The use of the ECM resources required to monitor and analyze the ECM items so as to maintain and manage the ECM items can be analyzed to determine a database schema for a particular organization that is configured to provide efficient management of content items for the particular organization. The present description relates to developing and implementing a database schema for an organization without intervention by a computer programmer or database administrator.

To monitor the state of an ECM, logs can be created associated with the ECM architecture or components of the ECM architecture. Logs can be generated in response to a PRINT command at the end, or during, the execution of a process. The logs may then be analyzed to determine the occurrence of a failure or predict a future failure of the ECM architecture. Waiting for logs to be generated in this manner requires that the process that includes the PRINT command complete before the log, or log-line, is generated.

The present description describes generating information associated with events occurring within an ECM architecture without the need to wait for formal logs to be generated at the ECM architecture. The event information can be translated into log files for further analysis. The event information can include information associated with content items stored using the ECM architecture, business processes associated with the ECM architecture, user interactions with the ECM architecture, and/or other events. This event information can be generated without waiting for the completion of the event.

The log file generated by the events taking place within the ECM architecture can itself be translated into an analytics engine. The analytics engine can facilitate the generation of a unified view of the events occurring in the ECM architecture. The unified view can provide an indication of failures within the ECM architecture and/or facilitate the determination of future failures within the ECM architecture.

The analytics engine can be configured to generate a schema based on the event data.

The analytics engine can be configured to generate reports that distinguish between individual pieces of content or content repository artifacts, maintained by the ECM, for example, sites, folders, groups, or the like. The reports can be generated from the schema generated based on the event data. The analytics engine can facilitate the generation of reports that facilitate click through and access of content and/or content artifacts. The generated reports can facilitate provision of relevant actions associated with the content, provide information associated with the content, such as metadata associated with the content, provide the binary associated with the content, or the like.

In some variations, the analytics engine can be configured to generate a database schema based on the generated reports. The generated reports can provide information regarding the use of content items and ECM resources. The generated database schema can be based on the use of the content items and the ECM resources and is designed to increase the efficiency of the ECM architecture.

The database schema can include one or more dimensions. The one or more dimensions of the database schema can be associated with one or more attributes relating to the use of the ECM architecture. The one or more dimensions, which represent use attributes, can be used to determine an optimal database schema for a particular organization based on that organization's use of the ECM architecture.

The analytics engine can be configured to facilitate generation of an interactive analysis interface. The analytics engine can be configured to facilitate presentation of an interactive analysis interface on a display device of a client device. The analytics engine can be configured to facilitate user interaction through the interactive analysis interface with content and/or information associated with the content. The interactive analysis interface can be configured to facilitate on-demand analysis of content across multiple dimensions of the ECM system.

The analytics engine can be configured to facilitate storage of the generated reports into the content repository. The generated reports stored in an individual content repository can be associated with the content and the users of that content repository. The generated reports can facilitate providing insight into use of the content repository including user usage patterns of content in the content repository.

The analytics engine can be logically separate from the CMS. Having the analytics engine separate from the CMS can facilitate generation of a unified view of the CMS and/or the ECM without impacting the functionality of the CMS and/or ECM. Reports can be generated by the analytics engine associated with the events occurring in the ECM architecture. In some variations, the reports can be associated with content items maintained by the CMS. Where the analytics engine is separate from the CMS and/or ECM, the user may be required to separately access the analytics engine and the ECM system to view the reports and also view the content items referenced by the reports.

The present disclosure describes computer programs, methods, and/or systems for facilitating generation of database schemas for ECM architectures based on an analysis of the use of the ECM architectures, and thereby increasing the efficiency of the ECM architecture.

FIG.1shows a diagram100illustrating features of an ECM architecture102consistent with implementations of the current subject matter. The ECM architecture102can include a CMS architecture104consistent with implementations of the current subject matter. A CMS104can generally include at least one programmable processor executing some form of machine-readable instructions (e.g. software code, etc.) to provide one or more content management functions. In some variations, the CMS104can be cloud-based. The cloud-based CMS can include cloud-based repository. The cloud-based CMS can be isolated to provide access only to authorized users of a specific location within the cloud-based installation.

A typical enterprise may own or otherwise manage or have custodial responsibility for content106subject to a range of access controls. Some content106of the enterprise may be freely sharable, while some other content106may be highly confidential or otherwise subject to security control. However, a third type of content106of the enterprise may exist somewhere between these two extremes.

Currently available approaches to enterprise content management generally do not include capabilities relating to the capture, analysis and reporting of events that occur within the CMS104. It is typical for content106that is managed by a CMS104of an enterprise to be stored on electronic storage108. In response to a user accessing the content106, the CMS104can be configured to lock the content106from further edits by other users. If a another user attempts to accesses the content106and make modifications, the other user can be prohibited from accessing the content106, can be prompted that the content is locked to editing, and/or can cause the content modified by the other user to be saved as another version of the original content106In some variations, where content106is locked, or “checked out,” other users are prohibited from both saving over the content106stored in electronic storage108and from saving the modified content as another version of the content106. The original user can save any modified content over the original content106or cause the modified content to be saved as a new version of the original content106.

Services and controls for managing content of a CMS104consistent with implementations of the current subject matter can include features such as metadata management, version control, lifecycle management, workflow, search, associations to other content, tagging, commenting, etc. that allow users of the CMS104to find desired content items among very large content collections that can span multiple parts of an enterprise. Accuracy and consistency of the information can also be ensured, even for very large content collections across an enterprise. Content and other information in a CMS104can be presented, published, etc. through the Web or any other channel appropriate to allow users to access that information.

In addition to supporting features typical of a cloud-based or “software as a service (SaaS) software delivery model, a synchronization scheme consistent with the descriptions provided here can provide a number of desirable features. For example, the current subject matter can support automatic synchronization of content between one or more CMS-managed repositories that are inside of a firewall and a copy of one or more content items that are made accessible to authorized collaborating users of the collaboration site in the cloud. Such features can enhance ease of engagement and collaboration both between users within an organization and other collaborating users who are external to the organization.

Users can be associated with user devices110. Users can access the CMS104. Users can access content106managed and maintained by the CMS104after being authenticated. In some examples, authentication can be established through interaction of the user with one or more user interface elements, such as for example a window, navigation pane, or other display feature including one or more user interface elements, an inline prompt, etc. The interface element(s) can be managed by the ECM102and/or the CMS104. The user(s) can be internal users or external users. Internal users can be users that are within a firewall112. Internal users can be within a firewall managed by the ECM102and/or can be within a firewall managed by the CMS104. External users may be required to seek authorization to access programs and systems that are within the firewall112. A firewall112can exist within an ECM102between various components and areas of an ECM102. For example, a firewall114can exist between the CMS104and one or more servers configured to provide additional functionality to the ECM102and/or the CMS104.

The term firewall is generally used throughout this disclosure to refer to network security controls, features, functionality, etc. that restrict access to users outside of the firewall to content retained on one or more repositories inside of that firewall.

The user(s) can be requested to supply authentication credentials on at least a first request to set up a synchronization between a content item held within the firewall-protected installation of the content management system, and the authentication credentials can be saved, for example in a secure credentials store or the like for future synchronization actions. Optionally, the authentication credentials can be checked for accuracy when they are entered to prevent, for example, an incorrect password, username, or other credentials, from being saved in the secure credentials store. In some examples, an implementation or the like can be used to establish authentication of the user(s).

The ECM102and/or the CMS104can include a permissions log. When a user attempts to access the ECM102through the firewall112, a determination of whether the user can access the ECM102and/or the CMS104can be determined. Once within the firewall112, or if the user originated from within the firewall112, a determination can be made as to whether the user has permission to perform each of the tasks or activities requested by the user. The permissions log can include a list of users of the ECM102and their respective permissions. The permissions log can include information as to the access rights of users to content items106, business process applications (BPAs)116, and the like. While a permissions log is described, the present description contemplates multiple permissions logs. In some variations, each content item106or BPA116, for example, can include its own permissions log.

Consistent with some aspects of the current subject matter, one or more dynamically configurable business process applications (BPAs)116can be supported within an installation of an ECM architecture102. In some variations, one or more dynamically configurable BPAs116can be supported within an installation of a CMS104. A BPA Server118can manage and maintain the BPA(s)116.

As referred to herein, a BPA116can be based on an application model definition (AMD), which can define functionality for guiding one or more users through a set of actions consistent with completion of an instance of a business process (or other structured arrangement of activities, tasks, etc.). The set of actions can include either or both of tasks requiring interactions of one or more human users of CMS104and automated actions (e.g. actions performed by a system without direct human interaction). A BPA116can be used multiple times for discrete “workflow instances” (also referred to as “execution instances”) of a business process or part of a business process supported by the BPA116.

Dynamically configurable, customizable BPAs116such as those described herein can guide workflow instances based on a current context of one or more users, documents (or other content items), systems, etc. This guidance can be provided via a user-interface defined by the BPA being executed as part of a workflow instance, which can in turn be part of a case. As discussed in greater detail below, a BPA116can optionally be initially configured using an application development user interface (ADUI), and can itself include user interface features that promote collaboration and information access among multiple users involved in a content management-based business process. Some variations of the current subject matter include hybrid BPAs116, which can be configured to execute from one CMS installation while being able to access content on a second CMS installation, even if the second CMS installation is behind a firewall. In this way, a BPA116can be a Web application, which can access both content maintained at a first, cloud-based CMS repository and content maintained at a second, on-premise CMS repository. Synchronization of workflow actions, content, and case data relating to execution of one or more workflow instances can readily occur between the CMS repositories of the two CMS installations. (UI-based BPM apps based on suggestions derived from previous BP instances, content-specific events driving workflow states)

An AMD can be constructed using an ADUI, such as for example an ADUI having one or more of the features further discussed below. An AMD can serve as a modeled framework for one or more BPA variations. For example, an AMD can be directed to a business process for content creation, modification, approval, and execution, such as a business process relating to generation, revision, review, signing, archiving, etc. of a contract. Other examples of AMDs can include collaboration applications, records management applications, and the like.

A BPA116based on an AMD can be defined with greater specificity to tailor the BPA to reflect details of one or more business processes specific to a sub-organization of the enterprise (e.g. a legal department, a human resources department, etc.) or to some other organization, for a different specific purpose, etc. As used herein, a BPA116refers to a variation, version, instance, etc. of an application model (defined by an AMD), which can be further refined or defined based on one or more expected use criteria, such as for example a target audience that will use the BPA116, a specific set of custom actions related to tailoring the BPA116to a target use, or the like. As an example, a contracts application model can be provided. The contract application model can be deployed as a legal contracts BPA, a human resources contracts BPA, a real estate contract BPA, or the like, based on the target audience. As discussed further below, a BPA116can also be dynamically configurable such that user actions in response to guidance provided by the BPA116during a workflow instance based on the BPA116can deviate from the guided or recommended actions as defined in the BPA116. Such user actions can also impact guidance provided by the BPA116in the course of subsequent workflow instances based on the BPA116. In some examples, a user can save a modified or new BPA based on updated or altered guidance developed at least in part based on case data retained for one or more past workflow instances.

As used herein, a workflow instance refers to a specific instance or iteration of a set of actions guided by a BPA116for a specific document or set of documents. As an example, for a BPA116related to contract review, the review of a contract or a set of related contracts can constitute a workflow instance of the BPA116.

Information associated with events occurring in the ECM102can be extracted using one or more processes. For example, an extract, transform, and load process can be used to extract information associated with events occurring in the ECM102. The information associated with the events can include events associated with content items106, business processes116, and/or other elements of the ECM102.

The information associated with events occurring within the ECM102can include events associated with content items106stored on the CMS104. The CMS104can comprise electronic storage108configured to store and maintain the content items106. Users can interact with the content items106through interaction with the CMS104, through one or more intermediary applications, or the like. Different types of interaction with the content items106can be an event. For example, opening, modifying, saving, creating a new version, closing, deleting, moving, updating of the content item106, or the like, can generate event information.

The information associated with the ECM102can include events associated with a BPA server118. In some variations, users may not interact with the BPA server118or the BPA(s)116directly, but may interact with the BPA(s)116and/or BPA server(s)118through intermediary or third-party applications.

BPA(s)116can cause a business process(es)120to be executed. The business process(es)120can include multiple actions or transactions. Event information can be generated for each of the BPAs116, the business process(es)120and/or for the individual actions or transactions that comprise the business process(s)120.

Use of, or interaction with, BPAs116by users can generate multiple different types of event information. BPAs116may interact with content items106maintained by the CMS104. Consequently, event information associated with the BPAs116and the content items106can be generated based on a single user interaction.

Event information can be generated based on the performance and/or functionality of the ECM102components. For example, the ECM102can comprise multiple software, firmware, and hardware components. Performance of, for example, a server of the CMS104, a BPA server118, a computing devices associated with users, or the like, can generate event information.

FIG.1includes a representation of event information122in the ECM102. This event information122is conceptual only. The present description contemplates the event information122being transferred to an analytics engine124in response to the creation of the individual event information122. In some variations, event information122may be generated from one or more sources at roughly the same time. This event information can be aggregated at the ECM102and transmitted to the analytics engine124together. In some variations, the event information122from separate sources and/or events is separately transmitted to the analytics engine124.

The event information124associated with the occurrence of an event in an ECM102can be accepted by an analytics engine124. The event information124can comprise one or more event topics having event topic types. The at least one of the one or more event topics can include serialized event data.

In some variations, a queuing mechanism can be used to transmit the event information122to the analytics engine124. The queuing mechanism can be configured to deliver the event information122to the analytics engine124without impacting the performance of the ECM102. In some variations, the queuing mechanism can be configured to provide the event information122to the analytics engine124in real-time or near-real-time. Such a queuing mechanism can facilitate delivery of event information122to the analytics engine124without having to wait for the underlying transaction to be completed.

The analytics engine124can comprise a broker126. In some variations, the broker can include a JAVA messaging server. The event information122can be routed to the broker126. The broker126can be configured to maintain data routing continuity by storing the event information122in a system memory. The event information122can be routed to the broker126in real-time or near-real-time.

The broker126can include one or more topics128, or channels. The event information122can be binned into the one or more topics128based on the event information type. In some variations, the event information122can be tagged with an event type. The event type can be based on the source of the event information122. For example, event information122emanating from an interaction with content items106maintained by the CMS104can include a CMS event type, event information122emanating from BPAs116can include a BPA event type, and the like.

Event types128can include activities130, tasks132, process134, or the like. Activities130can include user-interactions with content items106maintained by the CMS104. In some variations, processes134can be generated from tasks132. The broker126can be configured to store the event information122in the different event type128categories, in memory.

The analytics engine124can include one or more agents. For example, the analytics engine124may include a first event listener136and a second event listener138. The event listeners136,138can be subscribed to one or more of the event type bins128. The event listeners136,138can be configured to extract, from the event-type bins128the event information122. For example, the first event listener136may be an activity listener. The activity listener can be configured to subscribe to the activity topic130. Event information binned into the activity topic bin can be extracted by the activity listener. The second event listener138may be a task listener. The task listener can be configured to subscribe to the task topic132and/or the process topic134. Event information binned into the task topic bin and/or the process topic bin can be extracted by the task listener.

The broker126can be configured to separate the event information into one or more event topic bins128. The separation can be performed by one or more message listeners. The one or more event topic bins can be based on the event topic type. The one or more message listeners can be configured to subscribe an event topic type.

The event information122stored in the event bins can include different event information elements140. The event information elements140can include one or more of a time, user information, serialized data, status information, a time-stamp, or the like. The serialized data can include event-type-dependent data. For example, if the event-type was a log-in, the serialized data may not include additional data. If the event-type was a download of a content item106, the serialized data may include an identity of the content item, the site location of the document, the site location of the user downloading the content item, the file size of the content item, the format of the content item, etc. In some variations, the event information can be comprised of metadata.

In some variations the broker126can be configured to determine whether any of the stored event information122include a failure. The broker126can store the faulty event information122locally. The broker126can be configured to analyze and diagnose the fault with the faulty event information. In some variations, the broker126may store the fault event information until an administrator can review the fault event information. In some variations, the broker126may be configured to transmit an indication of the fault event information and/or information associated with the fault event information to an administrator computing device for review by an administrator.

The binned event information122and/or the fault event information can be stored in electronic storage. The analytics engine, for example, can include electronic storage142. In some variations, electronic storage142can be associated with the broker126. Electronic storage142can be collocated with one or more processors configured to provide the functionality of broker126. In some variations, electronic storage142can be logically and/or physically separate from the one or more processors configured to provide the functionality of broker126, for example as in a cloud storage system.

In some variations, the event listener agents136and138can be configured to write the binned event information to a staging database. The event information can be stored in the staging database, or staging area based on the one or more event topic types. The staging database can be maintained on electronic storage, for example, electronic storage142. In some variations, the event information stored in the staging database can be stored in serialized form. The staging database can comprise staging database tables144for activities130and staging database tables144for tasks132and processes134. The staging database tables144can be created real-time, or near-real-time, as events occur in the ECM102.

FIG.2is an illustration of an analytics engine126having features consistent with the present description. The event information binned by event topic and stored in the staging area database on electronic storage142may be transferred to a data analyzer146. The data analyzer146may be logically and/or physically combined within the rest of the analytics engine. In some variations a system boundary148may be provided.

The data analyzer146may comprise a data integrator150. The data integrator150can be configured to integrate the binned event information. The data integrator150may operate on an integration schedule. The integration schedule can be predefined by an administrator. For example, the data integrator150may operate every 2 minutes, every 5 minutes, every 10 minutes, or the like. The data integrator150can operator on any scheduled.

The data integrator150may be logically linked with an integration database152. The integration database152may comprise one or more fact tables154. The fact tables154may be arranged as a star schema156. The fact tables154can reference any number of dimension tables158. The fact tables154may include foreign keys referencing the dimension tables158.

A star schema can be considered a style of data mart schema and is the approach most widely used to develop data warehouses and dimensional data marts. A data mart can be the access layer of the data warehouse environment that is used to get data out to the users. The data mart is a subset of the data warehouse and is usually oriented to a specific business line or team. Whereas data warehouses have an enterprise-wide depth, the information in data marts pertains to a single department. In some deployments, each department or business unit is considered the owner of its data mart including all the hardware, software and data. The star schema consists of one or more fact tables configured to reference any number of dimension tables. A fact table consists of the measurements, metrics or facts of an enterprise process. It can be located at the center of a star schema and be surrounded by dimension tables. Where there are multiple fact tables, they can be arranged as a fact constellation schema. Dimension tables. Dimension tables accompany fact tables that typically include the foreign keys which can refer to candidate keys (normally primary keys) in the dimension tables. Contrary to fact tables, dimension tables contain descriptive attributes (or fields) that are typically textual fields (or discrete numbers that behave like text). These attributes are designed to serve two critical purposes: query constraining and/or filtering, and query result set labeling. A star schema is an important special case of the snowflake schema, and is more effective for handling simpler queries.

In some variations, the integration database152can include one or more separate star schemas156for each event information type. For example, the integration database152can include a star schema156for activity-type event information, a star schema for task-type event information, a star schema for process-type event information, and the like.

The data integrator150may be configured to extract, transform and load the binned event information stored in the staging database. The data integrator150can be configured to process the unstructured serialized data140of the event information stored in the staging database into the structured star schema156stored on the integration database152. The star schema can include primary key-based relationship between data-types. In some variations the data can go through a series of transformations in order to turn it into the structured format required to load it into the star schema.

In some variations, the data integrator150may be configured to obtain the binned event information from the staging database. The data integrator150may be configured to process the status information in each row of the staging database tables144. The data integrator150can be configured to update the row with a timestamp providing the time at which the row was processed. The data integrator150can be configured, based on the timestamp information in each row of the staging database tables144, to determine whether or not that row has been processed by the data integrator150. In some variations, the data integrator150can be configured to overwrite the timestamp information in each row of the staging database table144that it processes.

The data integrator150can be configured to extract, transform and load data based on a desired set of information required to provide the reports desired by the operator of the ECM102.

In some variations, the integration database152can be referred to as a data warehouse.

FIG.3is an illustration of an analytics engine having features consistent with the present description. The integration database150, or data warehouse, can be in electronic communication with one or more analysis computing devices160. The analysis computing device169can be configured to be operated by one or more analysts. In some variations, the analysis computing device(s)160can be a server. The server can be configured to be in electronic communication with the data warehouse. The server can be a business analytics server. The analysis computing device(s)160can be configured to provide business analytics reports162associated with the events occurring within the ECM102.

As referred to herein, a content management system generally includes at least one programmable processor executing some form of machine-readable instructions (e.g. software code, etc.) to provide one or more content management functions. Alternatively or in addition, computer hardware can be configured to perform one or more of the operations or the like described herein. The term firewall is generally used throughout this disclosure to refer to network security controls, features, functionality, etc. that restrict access to users outside of the firewall to content retained on one or more repositories inside of that firewall. The term content is generally used throughout this disclosure to mean folders, files, director structures, or the like (also referred to herein as content items).

Various implementations of the current subject matter can, among other possible benefits and advantages, provide real-time, or real-near-time, business analytics information associated with events occurring on the ECM102. Providing real-time or near-real-time business analytics information can, among other possible benefits and advantages, facilitate determination of faults within the ECM102as they arise, or near to when they arise, and/or facilitate determination of future possible faults within the ECM102.

Various implementations of the current subject matter can, among other possible benefits and advantages, provide event information associated with both content items106and task and/or process information, simultaneously, facilitating system and content item analytics on both content items106and task and/or process information in real-time, or near-real-time.

Although the examples described herein refer to a CMS installation, an enterprise can maintain multiple CMS installations or collaborate with other enterprise CMS installations. The current subject matter can be configured to synchronize one or more of folders, files, directory structures, or the like, and business processes from a first installation of a CMS to a second CMS installation. Access restrictions on content items can be mirrored on the other CMS installations. Collaborations on content items can be facilitated between multiple on-premise users as well as users external to the premises at which the CMS installation is maintained. The variations of the subject matter described in this disclosure refer to two users modifying content simultaneously. This is for ease of explanation. The current subject matter contemplates multiple users concurrently modifying the content. The current subject matter can facilitate modification of the content by one, two, three, four, five or more users, or groups of users, concurrently.

Services and controls for managing content of a CMS consistent with implementations of the current subject matter can include features such as metadata management, version control, lifecycle management, workflow, search, associations to other content, tagging, commenting, etc. that allow users of the CMS to find desired content items among very large content collections that can span multiple parts of an enterprise. Accuracy and consistency of the information can also be ensured, even for very large content collections across an enterprise. Content and other information in a CMS can be presented, published, etc. through the Web or any other channel appropriate to allow users to access that information.

The term user is used throughout this disclosure to refer to a user of the system, a user terminal used by a user to access one or more elements of the system, or the like.

FIG.4is a schematic illustration of a system400, having one or more features consistent with the current subject matter. In one use case, a user can request access to content106stored on the data storage system108managed by the CMS architecture104. In some variations, the CMS104can lock the content item106from being edited further by other users. The user can be presented with the content item106through a display of a user device associated with the user. The CMS104can require log-in credentials from the user.

In some variations, the user may request a report from an analysis computing device160. The analysis computing device160can be configured to provide analytics reports162associated with events occurring within the ECM102. In some variations, the user may access the analysis computing device160and/or analytics reports162directly. In other variations, the user may access the analysis computing device160through a centralized log-in system166. The centralized log-in system166can facilitate access to various elements of the system400in a seamless manner as perceived by the user.

The centralized log-in system166can be hosted on a log-in server separate from the ECM102and/or the analysis computing device160. The centralized log-on system can be hosted on the ECM102, the analysis computing device160, or both, and provide access to all elements of the system400. The analysis computing device160can be configured to communicate directly with the ECM102. The analysis computing device160can be configured to communicate with an event data warehouse, such as integration database152. In some variations the analysis computing device160can access information stored on the integration database152through an analytics engine124. In some variations, where the data analyzer146is separate from other components of the analytics engine124, the analysis computing device160can communicate with the data analyzer146to access the information stored on the integration database152. The integration database152can include one or more fact tables154configured to maintain data on events occurring in or associated with the ECM102.

Events can include interactions, performance, and the like, of the ECM102, components of the ECM102, or the like. Events can include user interactions with the ECM102, content managed by the ECM102, modifications to user profiles, group profiles, or the like, or other ECM-related events.

The analytics reports162can include event links164. The event links164can facilitate click-through access for a user viewing an analytics report162to access information associated with the event(s) that is the subject of the analytics report162. In response to an interaction, by the user, with an event link164, the subject of the event link164can be presented to the user. The subject of the event link164can be content106managed and maintained by the CMS architecture104of the EMS102. The subject of the event link164can include the binary of the content106, metadata associated with the content106, or the like.

The analysis computing device160can be configured to generate an event report162comprising an event link164. The event link164can include a link to the event that is the subject of the event report162. The event link164can include a cryptographic key. The cryptographic key can be generated by the CMS104. The cryptographic key can be shared with the analytics engine124, the data analyzer146, the analysis computing device160, or the like. The cryptographic key can include an authorization to access the subject of the event. For example, where the event is content106stored on the data storage system108of the CMS104, the cryptographic key can include an authorization, for the user, to access the content106on the data storage system108. In some variations, the cryptographic key contained in the event link164can be a decryption key. In response to a user interacting with the event link164, the content item106can be transmitted to the user device110of the user. The content item106can be encrypted. The user device110associated with the user, or the analysis computing device160, can be configured to decrypt the content item106using the cryptographic key contained in the event link164.

In some variations, the CMS104can be configured to encrypt the content item106prior to transmitting the content item106to the user device110associated with a user. In some variations, the CMS104can be configured to store the content item106in an encrypted state.

In some variations the cryptographic key contained in the event link164of the event report162can be a one-time-use cryptographic key. After the cryptographic key has been used to decrypt or access the content item106, the cryptographic key cannot be used again to decrypt or access the content item106. Should the event report164be shared with other users of the system400, or other entities, other users or entities may not be able to view the content item106through the link.

The one or more fact tables154, of the integration database152, can reference dimension tables158. An analysis computing device160can be configured to receive data associated with the use of content items and/or resources of an ECM102. An analysis computing device160can be configured to analyze the fact tables that reference dimension tables158. The analysis computing device160can be configured to measure the use of resources to maintain a content item managed by an ECM architecture102based on the relation information stored by in the dimension tables158.

The dimension tables158can be associated with one or more dimensions. For example, the dimensions can include sites at which content is accessed from, process types performed by the ECM102, the individual content items accessed, the file size of the content items accessed, the file type of the content items accessed, the date and/or time of the content items accessed, the task type of the task performed on the ECM102, the individual user identity of the user accessing the content item, the duration of the access of the content item, the state of the content item, the state of the ECM102, the state of one or more components of the ECM102, the assignee of the content item, the author of the content item, the priority level of the content item, the priority level of the task performed, or the like.

Other dimensions used for measuring the use of content and/or resources can include the geo-location of the accessing device, the type of the accessing device, the time of day at which content is accessed, the day of the week at which content is accessed, whether content is accessed off-hours, the role of the user accessing the content, or the like.

Dimensions can include the search terms used by users to find content items on the CMS104, the frequency of use of the search terms, the relevance of the search terms to the content item selected by the user after the search, or the like.

The analysis computing device160can be configured to assign values of a usage metric to the content item and/or a resource of the ECM102, based on the measured use of the content item and/or resources used to manage the content item. The values of the usage metric can reflect a frequency of access of the content item and/or resource of the ECM102, a type of access of the content item and/or resource of the ECM102, an indication of the type of entity (for example, user, application, computer, or the like) that accesses the content item and/or resource of the ECM102.

The usage metric can include a variable configured to facilitate reporting of performance of maintaining the content items by the electronic content management system. The usage metric associated with a content item can provide an indication of an entity that created the content item. The usage metric can be based on an activity type associated with a content item. The usage metric can indicate a frequency of read access or right access. The usage metric can indicate whether the content of a content item is accessed or whether metadata is accessed.

The resources assigned a usage metric can include computer resources, human resources, and/or other resources associated with the access, management and maintenance of content items. Resources of the ECM102can be assigned to content items and/or resources based on the content metrics assigned to them.

The analysis computing device160can be configured to define a database schema for the content items managed by the ECM102based on the values of the usage metric assigned to the content items and/or resources used to maintain and manage the content item. In some variations, the reports can be configured to include information on optimizing the use of an ECM. For example, the use of an ECM can be optimized by identifying popular content and loading it into a cache. The reports can provide data to better understand how the ECM is being used and make decisions on efficiency savings.

The database schema can facilitate access to the content item based on the usage metric assigned to the content item and/or the resources used to maintain and manage the content item. The database schema can be configured to increase the efficiency of access to content items. The database schema can be configured to increase the efficiency of access to content items having a usage metric indicative that the content items require increased resources to be maintained compared to other content items.

In some variations, the analysis computing device160can be configured to assign users accessing the ECM102, to user groups. The assignment of users to user groups can be based on at least one shared characteristic of the users. The usage of content items by the user group can be measured. Information about the usage of the content items by the user group can be obtained from the fact tables154. Database schemas can be generated for the user group based on the usage of content items by user groups.

The shared characteristic of users in a user group can be associated with a location of the users, a rank of the users, roles of the users, security clearance of the users and/or the like. A rank of the users can include a rank within an organization, for example, a military rank, a corporate rank, or the like. A role of the users can include a task performed by the users, or a responsibility of the users.

The defined database schema can cause the generation of tables that include foreign keys linking to tables of a database maintained by an electronic content management system. The foreign keys can be row-specific keys.

FIG.5is an illustration of an example of a database schema format500having one or more features consistent with the present description.

FIG.6shows a process flow diagram600illustrating features that can be included in a method consistent with implementations of the present description. The method can be executed by one or more processors and by one or more elements as described herein. While operations are described herein in a discrete manner, it is contemplated that the method may include one or more additional or fewer operations. Furthermore, operations can be combined or separated. The operations described herein can be performed by one or more processors. The operations described herein can be performed by multiple processors logically and/or physically co-located or logically and/or physically separated.

At602, the use of resources required to maintain a content item managed by an electronic content management system can be measured.

At604, values of a usage metric can be assigned to the content items based on the measured use of resources. The usage metric can provide an indication of the resources required to maintain the content items. The usage metric can have one or more variables configured to facilitate reporting of performance of maintaining the content items. The usage metric can be associated with a content item provides an indication of an entity that created the content item. In some variations, resources can include computer resources, human resources, a combination of human resources and computer resources, and/or other resources.

At606, a database schema can be defined for the content item based on the values of the usage metric assigned to the content item. The database schema can facilitate access to the content item based on the usage metric assigned to the content item. The database schema can be configured to increase the efficiency of access to content items having a usage metric indicative that the content item requires increased resources to be maintained compared to other content items. Increasing the efficiency of access to content items can be based on a location of the users of the content item, cache requirements, device-type that accesses the content items, dependency on other items, or the like.

In some variations, at, or prior to, step604, users of the at least one computing device can be assigned to user groups based on at least one shared characteristic of the users. To assign user groups, the usage by user groups of content items can be measured. The shared characteristic of users in a user group can be associated with a location of the users, a rank(s) of the users, a role(s) of the users, a security clearance level of the users, demographics of the users, or the like.

The generation of a database schema at step606, can include generation of a user group database schema for the content items. The user group database schema can be based on the usage of content items by the user group.

Various implementations of the current subject matter can, among other possible benefits and advantages, provide a database schema configured to reduce the cost of maintaining, managing, receiving and delivering content items by an electronic content management system. The database schema can be generated based on an analysis of the use of the content items maintained by the electronic content management system.

Use of the term “based on,” above and in the claims is intended to mean “based at least in part on” such that an unrecited feature or element is also permissible.

Other implementations than those described herein may be within the scope of the following claims.