1. Technical Field
The invention relates generally to multi-computer transfer of data. More particularly the invention relates to methods for configuring deployments of content for distribution across an enterprise.
2. Description of Related Art
One of the major challenges posed by the developing web-based application environment is the problem of deploying code and content to multiple network touch points across an enterprise. Conventional distribution processes are often based on FTP (file transfer protocol), a mechanism for exchanging files between servers over the Internet. However, FTP-based processes are often unsecured, expensive to maintain, and difficult to scale or they are difficult to integrate with other applications. Some proprietary technologies such as CRS (CONTENT REPLICATION SERVER, Microsoft Corporation, Redmond Wash.) offer adequate distribution capacity within their respective environments, but they offer little value in distributed, multi-application and multi-platform environments.
In recognition of such needs, the parent to the present application, U.S. patent application Ser. No. xx/xxx,xxx, titled SYSTEM AND FOR TRANSACTIONALLY DEPLOYING CONTENT ACROSS MULTIPLE MACHINES, filed Nov. 30, 2004, the content of which is hereby incorporated in its entirety as if fully set forth herein, describes a system for transactionally deploying content across multiple machines in a network environment that automates and synchronizes the secure and reliable distribution of code, content and configurations to multiple network locations, thereby allowing controlled provisioning and synchronization of code and content updates to live applications. The system provides for deployment configuration files—XML (Extensible Markup Language)-based files to specify elements and attributes that describe how a deployment is to work. A variety of deployment types were described, for example file list deployments and directory comparison deployments. Additionally, the parent mentioned a metadata-based deployment.
Metadata is information associated with a digital asset. Metadata can describe the asset, the content of the asset, and document its relationship with other assets and the organization, often thought of as the asset's context. Metadata can also document the use and continuing management of the asset. The art provides a number of examples of the use of metadata in computational environments.
D. Reed, P. Heyman, S. Mushero, K. Jones, J. Oberlander, Computer-based communication system and method using metadata defining a control structure, U.S. Pat. No. 6,088,717 (Jul. 11, 2000) and D. Reed, P. Heyman, S. Mushero, K. Jones, J. Oberlander, D. Banay, Computer-based communication system and method using metadata defining a control structure, U.S. Pat. No. 6,345,288 (Feb. 5, 2002) describe an automated communication system wherein data, metadata and methods are transferred between provider and consumer computers to update a communications control structure, resident on both computers, that controls origination of outgoing communications from the provider computer and the processing of incoming communications to the consumer computer. The use of metadata allows automation of many of the actions underlying the communications, such as communication acknowledgements and archiving.
Similar to Reed, et al., supra, B. Hartley, F. Ricotta, J. Wanderwall, T. Locke, T. Perkins, R. Brown, Operational system for operating on client defined rules, U.S. patent application pub. no. 2001/0032207 (Oct. 18, 2001), U.S. Pat. No. 6,532,465 (Mar. 11, 2003), and U.S. patent application pub. no. 2003/0163472 (Aug. 28, 2003) describe a computational system for operating on externally-defined data based on client-defined rules. Rules and metadata allow the computational architecture to be customized for a particular application.
P. Stickler, Method and apparatus for information delivery with archive containing metadata in predetermined language and semantics, U.S. patent application pub. no. 2003/0088573 (May 8, 2003) describes an information delivery system that includes a content repository, which is mapped by metadata held in archive. External queries, formulated using the metadata language, allow retrieval of media items from the repository.
S. Sim, D. Chan, T. Huang, W. Chai, T. Isaacson, J. Flood, G. Mills, M. Orzen, Method and system for managing distributed content and related metadata, U.S. patent application pub. no. 2002/0133491 (Sep. 19, 2002) describes a method and system for creating a file system that separates its directory presentation from its data store. File system objects are distributed across the network in a manner that minimizes the time required to download an object without the necessity of providing large amount of redundant storage. The system uses object metadata and a metafile system architecture to control integrity of distributed objects.
However, none of the examples contemplates the use of metadata as a means of configuring a content deployment across an enterprise. It would be a great advance over current methods of deploying content to specify which content is to be deployed plus additional important parameters concerning the distribution action through the use of metadata queries. It would be a great advantage if distribution rules based on metadata queries were to enable the flexible deployment and expiration of code and content across the enterprise. Moreover, it would be a further advantage to additionally enable expiration and syndication of digital assets based on metadata queries.
The invention provides a method whereby distribution jobs are specified using metadata-based rules or queries, allowing flexible deployment, expiration and syndication of code and content across an enterprise or content network. The distribution rules allow for smart deployments of content payloads and deployment actions. Rules are based on both the content itself and metadata, both internal and user-defined. In essence, a metadata repository can be interrogated to determine the manifest of content that meets the criterion specified by the metadata rules. A configurable payload adapter receives the metadata query, parses it and translates the metadata into a form specific to the particular implementation. The payload adapter then queries a metadata repository to identify a list of digital assets that satisfy the criterion specified by the metadata. The assets are retrieved from a content repository and distributed, syndicated and/or expired according to the metadata rules.
An intelligent delivery module enables syndication of content on an offer and subscription basis. A user interface allows offers to be configured using metadata rules. Subscriptions are created by scheduling distribution jobs that correspond to offers. Such distribution jobs typically deliver updates to specific audiences at certain times or at recurring intervals. Business contract rules and/or recipient preferences often dictate the delivery schedule.
The following detailed description should be read with reference to the drawings. The drawings depict illustrative embodiments that are not intended to limit the scope of the invention.
Conventionally, in content management systems, assets to be retrieved from a repository and deployed are specified in a file list that names each asset individually by one or both of the filename of the asset and the pathname, the pathname indicating where, within the asset repository, the asset is to be found.
Metadata, often referred to as “data about data,” is information associated with a digital asset. Metadata can describe the asset, describe its content, document its relationship with other records and the organization (the asset's context) and describe the encoding of the content. Metadata can also document the use and continuing management of the asset.
Advantageously, metadata-based distribution provides a highly flexible way of specifying which content is to be distributed and in what manner. Distribution rules can be specified using metadata queries to enable the flexible deployment and expiration of code and content across an enterprise. Moreover, metadata-based distribution enables “offer and subscription” syndication of digital assets and provides a strategic foundation for ECD (enterprise content distribution) within content networks.
The invention provides a method whereby distribution jobs are specified using metadata-based rules or queries. In essence, a metadata repository can be interrogated to determine the manifest of content that meets some criterion. For example, embodiments of the invention allow specification of deployments in at least the following ways:
The deployment actions listed above are only provided to illustrate the principles of the invention, and are not intended to limit the invention. The types of deployment actions possible in a system are a function of the particular deployment and the metadata structure particular to the implementation.
In order to allow retrieval and deployment of assets from any type of asset repository, the invention employs an adapter-based approach, utilizing payload adapters customized to the particular asset repository. In one embodiment of the invention, the payload adapter allows distribution rules to be formulated using an XML—(Extensible Markup Language) based query language. Another embodiment of the invention allows the query to be formulated as a CDATA (character data string) using a query language, SQL for example, particular to the repository.
The invention includes a scheduler to launch distribution jobs at specific times or regular intervals to support asset publication, expiration and syndication. In addition, content syndication preferably relies on delivery adapters, when necessary, to transmit content via alternate protocols, such as FTP, and e-mail.
The ability to specify metadata-based distribution rules within deployment configurations does not preclude the use of other deployment features. The invention can be implemented in systems alongside conventional pattern or path-based filters.
Referring now to
Various element and attribute names are used throughout the following description to describe an exemplary embodiment of the invention. Such names are used for descriptive purposes only, and are not intended to be limiting. The payload adapter may be specified in a ‘payloadproperties’ element in the base server configuration file for the source server.
Alternatively, payload properties may be specified in a deployment configuration file. The management of configuration files by means of an administrative user interface is described in detail in the parent to the current application. In an exemplary embodiment, the ‘payloadproperties’ element contains at least the following attributes: name, class and parameter. The parameter attribute is used to specify the related parameter for the adapter to use, for example, the driver, the classpath, the URL of the metadata repository, and authentication credentials. It will be recognized that the exemplary embodiments implements payload adapters as JAVA classes. While the JAVA language is particularly well-suited for the web services environment, other object-oriented languages would also be suitable. Additionally, an embodiment of the invention is possible based on a procedural language such as ‘C.’
A particular deployment is described by way of a deployment configuration file. Management of deployment configurations is described in detail in the parent to the current application. The source location may be specified by defining the ‘source’ element within a ‘payload’ element in the deployment configuration file. An ‘area’ attribute within the ‘payload’ element can be used to specify the location of the source repository. A ‘pathspecification’ element enables specification of a subpath to the source repository.
The deployment configuration file may contain a ‘target’ element by which the target location is specified. An absolute path to the target file system may be specified using an ‘area’ attribute of a ‘filesystem’ element within the ‘target’ element.
The payload adapter accepts deployment criteria as they have been specified in a structure within the deployment configuration. In the case of a metadata-based deployment, the payload adapter converts a query structure into an appropriate call to a metadata repository. Those files that match are grouped into a file manifest. The system subsequently deploys or expires the files on the manifest.
A ‘payloadrules’ element in the deployment configuration file defines the type of adapter input. In an exemplary embodiment, the ‘payloadrules’ element includes ‘custom’ and ‘query’ elements. Using the ‘custom’ element, one specifies a CDATA string to pass input to the adapter. The syntax used to construct the CDATA string will be compatible with the payload adapter previously specified.
One uses the ‘query’ element to pass an XML-based query to the adapter. In an exemplary embodiment, the ‘query’ element may contain a ‘predicate’ element that specifies a numeric or string-based relationship between topics in a query. The ‘predicate’ element may contain attributes such as:
Turning now to
As more and more enterprises manage information assets using content intelligence techniques, the need arises for metadata-based distribution in a content management platform that supports an offer-subscription approach to content distribution. Syndication is a content distribution model that relies on intelligent delivery rules. At a high level, the syndication use case involves at least the following steps:
Each of the above steps can be addressed by the invention via the combined usage of metadata-based distribution, a job scheduler, and delivery adapters. These capabilities provide the foundation blocks for intelligent delivery of digital assets, which supports a syndication use case on a content management platform.
Table 2 summarizes the details to be collected for offers and subscriptions, and details about what would be generated or updated.
Based on the information provided in Table 2, it will be understood that an offer can be updated or removed by modifying or deleting the corresponding “deployment configuration template.” A subscription delivery schedule can be updated or suspended via the scheduler interface, described in greater detail below. Other details for a subscription can be modified by updating the generated configuration files, via the Admin interface.
Briefly mentioned above, an intelligent delivery module 306 enables a base server 305 to use content attributes for smart distribution and syndication wherein deployment criteria are specified using a metadata query. Examples of metadata queries are provided in Table 1, above. Distribution from the base server 305 may be to another base server 307 for handling by delivery adapters 308, or to a receiver 309, a listener configured by the subscriber to process incoming distribution jobs.
Content reuse through syndicated delivery is supported via an offer/subscription management layer 400, as shown in
An offer may be seen as a partial deployment configuration that contains details about the source content location and criteria, including a metadata query for determining which content belongs to the offer. For example, an offer might include all financial reports with a metadata tag ‘Type’ having a value ‘Stock.’ A subscription defines a completed set of deployment rules for an offer, including the target recipients, schedule and delivery mechanism. For example, one subscription might distribute assets defined by a particular offer to a set of partners by FTP on a weekly basis, while another subscription might e-mail the same assets once per month to a group of customers. In addition to using the Administrative UI 302, the web services interface 304 may be used to expose offers and subscriptions through a third-party application 303, such as a self-service portal for business partners.
As shown in
The service-oriented architecture is designed to enable a loose coupling between interacting software agents. The invention includes a SOAP—(simple object access protocol) based interface that provides programmatic access to the various functions and capabilities of the system. A language-neutral, firewall-friendly API exposes web services, such as starting a deployment or retrieving the status of a deployment, using standard WSDL (web services description language). The access layer of the service-oriented architecture includes a client 501. While, in the web-services domain, a client is typically itself a web service, for the purposes of the invention, a client may be seen as any application requesting services from the system.
SOAP is an XML-based messaging protocol that enables web applications to communicate with each other. As shown in
As previously described, the job scheduler has a role in configuring subscriptions. The scheduler 600 allows users to schedule jobs once or at recurring intervals. Jobs may be scheduled, deactivated and reactivated from the Administrative UI using the job scheduler. To schedule a job, the user expands ‘Schedules’ in the navigation tree 401 and selects ‘New Schedule’. The work area of the UI shows the ‘Scheduler’ details 601, as in the ‘Deployments’ interface. Scheduling includes at least the following steps:
The schedule details are saved by clicking the ‘Save’ button. A ‘Deployment Schedules’ window (not shown) is accessible via the Admin UI, or alternately via the web service API. This feature allows the user to edit details, delete jobs, hold or activate a pending job, and refresh the view based on the selected deployment and group. A command line interface may also be used to schedule deployments, deactivate scheduled jobs, delete jobs and retrieve schedule details.
Metadata-based deployments can be run from a repository integrated with a content management system. A metadata-based deployment can also originate from arbitrary source file locations or repositories. Configuring a metadata-based deployment originating from an arbitrary source file location requires specifying the file system in the deployment configuration. In the case of an integrated repository, a separate attribute may be set to so indicate. In all cases, the source files have metadata that is indexed to a database along with associated file paths.
Within the context of the invention, metadata is one or more ‘name:value’ pairs associated permanently with a digital asset such as a file. Metadata associated with the asset files is indexed to a metadata repository along with associated file paths. The invention queries the indexed metadata residing in the metadata repository using an intelligent payload adapter. Different query methods are possible. A payload adapter is provided for each query method. In an exemplary embodiment, two payload adapters are provided:
The user configures the base server to use either payload adapter, using a ‘payload properties’ element in the configuration file for the base server.
Either adapter looks for a PATH column in the metadata repository, giving the path to the asset in question. While the exemplary adapters assume that the database schema consists of a single table with a column for the file path, other database schemas consistent with the scope and spirit of the invention will be apparent. In the case of an integrated content repository, the path can be a relative path. However, in the case of an arbitrary repository, the path should be the full file system path. Path types are preferably consistent. Thus, it is undesirable to use the full path for some column entries and the relative path for others. Additionally, the deployment configuration provides the capability of specifying the deployment type. In the current example, the user specifies that the deployment is a payload adapter based deployment.
While the system includes the above exemplary adapters, the system also includes the capability of using custom adapters, written by the user, or a third party. Third-party or user-provided adapters, however, must incorporate the general functional features of payload adapters described hereinabove. It is possible to provide a custom payload adapter that can work with either an integrated repository or an arbitrary repository. It is the function of the adapter to determine the file paths to deploy and to return those as a manifest. In the exemplary embodiment of the invention, the payload adapters are JAVA classes.
Writing a payload adapter for use in a metadata-based deployment involves at least the following considerations:
User-provided adapters are specified in the ‘payloadproperties’ element in the base server configuration file, as are the exemplary adapters.
In writing a payload adapter, the newly-created payload adapter class will include the interfaces and methods from which the payload adapters derive their functionality. In the exemplary embodiment, the payload adapter class includes the following: a file retrieval interface, and methods for getting a list of files, and determining if a file is available. Configuring the system to use the user-provided payload adapter is accomplished in the same manner as that for the exemplary payload adapters.
Although the invention has been described herein with reference to certain preferred embodiments, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the Claims included below.
This Application is a Continuation-in-part of U.S. patent application Ser. No. 11/000,573, filed Nov. 30, 2004, which is a Continuation-in-part of U.S. patent application Ser. No. 09/860,893, filed May 17, 2001.
Number | Date | Country | |
---|---|---|---|
Parent | 11000573 | Nov 2004 | US |
Child | 11031309 | Jan 2005 | US |
Parent | 09860893 | May 2001 | US |
Child | 11000573 | Nov 2004 | US |