Overview of the web feed utility
A web feed is an XML file that is specially coded to list the latest updates in a machine-readable format. The web feed utility offers a new solution to work with these updates and their static, unstructured content.The Content Management System integration using web feeds enables unstructured content such as static HTML, images and other multimedia files managed in a Content Management System to be integrated with WebSphere Commerce. By using this solution, business users can manage unstructured content created in a Content Management System within the Management Center. Additionally, this solution lowers the cost of implementation by reducing the cost of integrating a Content Management System with WebSphere Commerce by providing integration code.
The following diagram shows how the web feed utility interacts with a WebSphere Commerce and a content management system.
- Connects to a web feed using a supported connector.
- HTTP connector
- Supports both http and https.
- FTP connector
- Does not support secure ftp.
Two types of authentication can be used:
- Basic authentication
- Available for both http and https, an ID and password are required.
- Client certificate authentication
- This method is only available for https.
- Retrieves the feed and parses the content. Only new or updated entries are processed. To detect feed updates the eTag and the last modified date of the feed URL are used.
- Reads data from the web feed. The type of incoming data and its destination must be specified in the configuration file. Updates can be read from two different web feed standards without customizing the utility:
- RSS Reader
- Parse and process feeds that comply with the RSS version 2.0 standard.
- ATOM Reader
- Parse and process feeds that comply with the Atom 1.0 standard.
- Transforms the source data into WebSphere Commerce business objects.
- Allocates and resolves WebSphere Commerce business objects to physical data. Two writers are supported.
- Database writer
- Write the physical objects to the database.
- Web Server writer
- Copy content to a local directory on the web server.
- Transfer by ftp to a web server on a remote machine.
- Stores the physical data in a database, remote system, or local file system.
The web feed utility supports these scenarios:
- Scenario 1: URL attachment
- Content is received as URL.
- Content life cycle is managed by Content Management System
- URL received from Content Management System which points to the Content Management System content
- Create URL attachment in the Assets tool
Sample feed configuration file
- Scenario 3: Web server
- Content is received as a file and stored on the web server.
- Retrieve the files from Content Management System.
- Files are copied to web server by FTP or local copy.
- Create URL attachment in Assets tool. URL attachments are created when content is copied to web server.
Feed configuration file
<config:staticContent> <config:name>Catalog</config:name> <config:feedURL> <![CDATA [http://aimcp.austin.ibm.com:1004/wps/wcm/connect/Intranet+Web+Content+6.1.0/IntranetSite/Home/Announcements/AnnouncementsList? srv=cmpnt&source=library&cmpntname=Intranet+Web+Content+6.1.0/ATOM+Feed+Menu ]]> </config:feedURL> <config:webServerLocation 1 webURL="http://localhost/stores">file:///C:\IBM\HTTPServer\htdocs\test</config:webServerLocation> <config:tempFileLocation>C:\IBM\WCDE_ENT70\WC-CMS\temp</config:tempFileLocation> </config:staticContent>1 The webURL attribute is the base URL which can be used to access the imported content. This base URL is also used to create the URL attachment.
The web feed utility can process RSS and Atom feeds in various languages. For an Atom feed, every unique value of a Category within an entry maps to a unique attachment in WebSphere Commerce. For an RSS feed, for an every unique value of a Category within an entry maps to a unique attachment in WebSphere Commerce. The utility creates different attachment assets for the same attachment when multiple entries within a feed that contain the same category. If category information is missing in the feed; then a combination of the identifier and title entry is used to generate a unique attachment. The utility supports one asset per language within an attachment, for example within the same attachment, we cannot have two English assets. We can have assets in different languages for the same attachment. To determine the language of every attachment asset and attachment description is decided based on the language information specified in the feed (in the XML 1.0 IETF RFC 3066 standard).
For Atom feeds (Atom Specification 1.0) the language information is retrieved from each individual entry. For RSS feeds language details are retrieved at the feed level. If no language information is present in the feed, the default business context language is assumed for the attachment asset or description.
Use the web feed utility
We can either run the web feed utility from the command line, or we can run it as a scheduled job using the scheduler.
Customization
Without customization, the web feed utility interacts with Content Management Systems that provide RSS Version 2 or ATOM Version 1 web feed support. The main areas of the web feed utility that we can customize are:
- Write our own feed parser to read RSS and Atom feeds which are in a format that is not supported by default, including any versions of RSS other than Version 2.0 and any version of Atom other than 1.0.
- Write our own Business Object Mediator to load data to specific database tables that are not supported by default. The mediators provided with this utility can write data to the CMFILE tables.
- We can write our own implementation to handle Content Management System-specific security mechanisms. You do this by extending the Connector layer, see CustomAuthHTTPConnector for details.
Limitations
- The web feed utility cannot be enabled in Workspaces.
- The web feed utility does not support the delete scenario. That is, when you delete content from Content Management System the content is not deleted from WebSphere Commerce.