Welcome!

ColdFusion Authors: Yakov Fain, Maureen O'Gara, Nancy Y. Nee, Tad Anderson, Daniel Kaar

Related Topics: ColdFusion

ColdFusion: Article

Using Syndicated Content in Spectra

Using Syndicated Content in Spectra

Managing and displaying content stored in the Spectra object store will be a major feature of any Spectra project. Content will come from a variety of places: self-service applications, system-generated messages and objects, and externally provided articles and data from a variety of content providers. The latter is called "syndicated content." This article demonstrates how one might automate the insertion of syndicated content from an outside news service.

Getting Started
There are two methods of getting syndicated content in Allaire Spectra: the hard way...and the easy way. The easy way is to transfer content over HTTP from one Spectra machine to another using the Syndication features of the COAPI (Content Object API) (see Figure 1, Scenario 3). This content syndication process gets a terrific write-up in chapter 14, "Syndication and Remote Access," of the Programming with Allaire Spectra manual.

Alternatively, content vendors wouldn't need their own Spectra servers, but would simply package the data in an XML format, WDDX, that Spectra understands (Figure 1, Scenario 2). Allaire will soon begin to promote WDDX, as implemented by the COAPI, for this purpose. Spectra users and content providers can also use XSL transformation engines to normalize XML data before or after syndication. Allaire may soon bundle Granularity Information Architecture's GIAXT XSL transformation engine (www.granularity.com) to provide such translation services.

In the meantime we'll need to process newsfeeds ourselves and programmatically funnel them into the object store through the COAPI (Figure 1, Scenario 1). It's not elegant, but it's easy to implement and works quite well.p> If you want real-time news from a variety of sources and you want it fast, one of the best places to start is Screaming Media (www.screamingmedia.net). Screaming Media is a nice solution because they aggregate content from hundreds of traditional and nontraditional sources, provide data in a consistent format, allow you to pay only for what you use and don't require impression-based royalties. For $2,500 up-front and $500/month (and up), Screaming Media will send piping-hot, filtered news to a proprietary Java component, Siteware, that sits on your server. Reuters, Wavo and iSyndicate provide a similar service and each has its own proprietary or third-party syndication components.

Installing the Siteware component first requires installing the Java 1.1.8 Run-time Environment (JRE) from http://java.sun.com. You then unzip some files and add a "siteware.bat" shortcut (on NT) to the start-up (C:\WINNT\Profiles\All Users\Start Menu\Programs\Startup) directory. This file includes the JDBC:OBDC driver that Siteware uses to communicate with MS SQL Server. Make sure you install this in the default directory.

When you order news from Screaming Media, you specify filters describing the type of news you want, industry segments, keywords and so forth. Each filter becomes a feed that has its own configuration files specifying field delimiter characters, escape character policies, headers and footers. Siteware "wakes up" every 15 minutes and pulls your feeds off the Screaming Media servers. It then processes the feeds in one of four ways as Hclient, DBClient, fClient or pClient.

If you're running MS SQL server or have access to a JDBC driver for your favorite database, using the DBClient database insertion method is a no-brainer (tell Screaming Media this is how you want Siteware set up). The Hclient method is quite interesting since it will write content into templates using variable substitution. Once we build our Screaming Media News object type, we could create a sample object and use it as a prototype template for use with this method. Since databases are more flexible than flat files, I've chosen to use DBClient for my own installation. fClient and pClient can also write out delimited text files but you need to parse them and process them yourself - no fun.

To store Screaming Media content temporarily, you'll need to create a table in your SQL database with the columns listed in Table 1.

I've set up a DSN in the ODBC administrator called "SyndicatedContent" that points to my "SyndicatedContent" database and defaults to the "ScreamingContent" table.

If you're getting sports scores from Screaming Media, you'll need to add additional fields to your ScreamingContent table or create a new table ("ScreamingSportsContent," perhaps!). For more information on sports scores, contact Screaming Media directly.

Screaming Media's technical staff will edit Siteware's configuration files to match the DSN and table names you've created. Extract the *.zip file they send you and run siteware.bat (located in the IMDSJServer/bin directory) from the command prompt. When you see two "SUCCESS" prompts and a blinking cursor beneath, Siteware has initialized successfully and has begun dumping content into your database. Look into your database table and you'll see the stories that meet your filter criteria.

The next step is moving the content from the syndication table into Spectra. The first thing we need to do is create a ScreamingNews object type that defines how the data will be stored in the Spectra database. This requires some "data modeling" in the Webtop. After logging in under the admin account, go to System Design > Site Object Designer > Property Definitions and create the properties in Table 2.

I've added the bCleaned property to those in the database as a flag to denote whether the default text has been reviewed to clean up any formatting inconsistencies from the feed. I also added properties that allow me to bind photographs to ScreamingNews objects. You can license photos from several places on the Internet including Reuters and the Associated Press. Spectra ships with a "core" system object type IMAGE (70E7DFB6-A67E-11D2-B3AC00C04FA35A23) that you can define as an embedded property in any object type. We'll embed an IMAGE property into the news article as well as provide a vertical alignment control variable and useimage flag.

Once the properties are created, you can actually create the object type itself (you must follow this sequence). Go to the Type Designer, create a new object type called "ScreamingNews" and map in the property definitions as indicated. Then add the method handlers given in Table 3.

Note that we didn't include "create", "edit" and "delete" methods as they are implicit and use the default handlers. If you write any of them yourself, write the edit handler - the default is quite ugly. There's no special "create" or "delete" functionality required, so there's no need to declare these methods and write your own handlers. Beware of the embedded image object - implementing embedded objects in handlers is an "advanced" skill.

This is public news, so there aren't any permissions on this object type. Applying permissions in Spectra slow down the application considerably - less so for object types than for objects themselves. Caching permissions in the CF administrator is virtually essential.

The last step in getting the data into the object store is to build the handler, syndicate_import.cfm, that manages the process (see Listing 1). This handler is nothing more than a simple query against your syndicated content database, and a loop that copies the data into the Spectra object store and then updates the foreign key in the syndicated content database. It then calls a cleanup routine to mark articles older than 30 days as "inactive" and "archived" since it's illegal for you to keep them around. Note that we've created but not coded syndicate_push and syndicate_pull. These method handlers are used at a later time to manage syndication directly between Spectra servers in the organization or with partners (you'll need to discuss licensing with Screaming Media, of course).

You can test the handler in Listing 1 by calling it from a dummy page with the following code:

<cfa_contentobject
datasource="#request.cfa.objectstore.dsn#"
objectid="Put a test object ID in here"
method="syndicate_import"
bsecure="No"
babortonunauthorizedaccess="No"
blogging="No"
busecache="No"
>

The syndication stream invoker (which we'll call next) doesn't care that syndicate_import doesn't require an ObjectID; however, CFA_ContentObject does care so we need to provide a dummy ObjectID in our testing code.

Once you see that this handler is working properly, you need to set up a schedule in Webtop to call it every few minutes. In System Design > Programming Objects > Syndication Streams you can easily add an event to run the syndicate_import method every 15 minutes or at whatever polling interval you've established in Siteware (see Figure 2).

While Screaming Media does channel its content providers' various feed formats into the fields listed above, providers format their stories differently so it's strongly suggested that you edit each article within Spectra prior to posting it on your site. You can see the results of your hard work in the Webtop object finder (see Figure 3).

Sample handler code and the content object types I created above are available in their entirety on the CFDJ Web site and may be installed all at once using the Spectra object type package install function. You'll also want to check the Allaire Tag Gallery and/or the Screaming Media Web site for the latest code as Screaming Media, along with other content providers, has become increasingly interested in the Spectra platform as a turnkey content subscriber and publishing solution.

Conclusion and Next Steps
In this article I've described some of the "heavy lifting" you'll need to perform to get syndicated content into your Spectra object store. Since object type definitions and properly coded handlers are reusable, you won't need to start from scratch; use and modify the source code provided here at your discretion.

It won't be long before syndicated content providers are cognizant of the huge installed base of Spectra servers. When that occurs, they may give you the ability to pull content directly into your Spectra servers by providing it over HTTP in the appropriate format. When this happens, you'll download and install an object type definition file from the content provider and set up a syndication stream handler that polls their database every so often for your content. Alternatively, they could push content directly to Spectra through the remote method invoker interface after you provide them with the appropriate username and password, your IP address and any other default values you care about (e.g., don't publish this article until I see it first!). In these scenarios you may use a syndicate_pull or syndicate_push method handler rather than the kludgy but functional syndicate_import routine provided here.

As a premium service, content providers may also map their metadata keywords to ones you provide, actually marking up the content with metadata before sending it over. They might even write Spectra news-viewer applications that use the content object types they provide. What better way to get you started with their content fast!

Syndicating graphics is going to be a bit more difficult, but easier with ColdFusion 4.5's new facilities for Base 64 encoding. For now, write or use default handlers that bind your downloaded graphics separately to articles you've syndicated and are ready to publish.

In the next article we'll explore how the Spectra syndication API allows transparent syndication of content and applications between Spectra servers.

More Stories By Anthony Krinsky

Anthony Krinsky is an intranet and extranet
application developer with Interactive Documents (www.interactivedocuments.com).

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
All major researchers estimate there will be tens of billions devices – computers, smartphones, tablets, and sensors – connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades. With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo in Silicon Valley. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be!
Noted IoT expert and researcher Joseph di Paolantonio (pictured below) has joined the @ThingsExpo faculty. Joseph, who describes himself as an “Independent Thinker” from DataArchon, will speak on the topic of “Smart Grids & Managing Big Utilities.” Over his career, Joseph di Paolantonio has worked in the energy, renewables, aerospace, telecommunications, and information technology industries. His expertise is in data analysis, system engineering, Bayesian statistics, data warehouses, business intelligence, data mining, predictive methods, and very large databases (VLDB). Prior to DataArchon, he served as a VP and Principal Analyst with Constellation Group. He is a member of the Boulder (Colo.) Brain Trust, an organization with a mission “to benefit the Business Intelligence and data management industry by providing pro bono exchange of information between vendors and independent analysts on new trends and technologies and to provide vendors with constructive feedback on their of...
Software AG helps organizations transform into Digital Enterprises, so they can differentiate from competitors and better engage customers, partners and employees. Using the Software AG Suite, companies can close the gap between business and IT to create digital systems of differentiation that drive front-line agility. We offer four on-ramps to the Digital Enterprise: alignment through collaborative process analysis; transformation through portfolio management; agility through process automation and integration; and visibility through intelligent business operations and big data.
There will be 50 billion Internet connected devices by 2020. Today, every manufacturer has a propriety protocol and an app. How do we securely integrate these "things" into our lives and businesses in a way that we can easily control and manage? Even better, how do we integrate these "things" so that they control and manage each other so our lives become more convenient or our businesses become more profitable and/or safe? We have heard that the best interface is no interface. In his session at Internet of @ThingsExpo, Chris Matthieu, Co-Founder & CTO at Octoblu, Inc., will discuss how these devices generate enough data to learn our behaviors and simplify/improve our lives. What if we could connect everything to everything? I'm not only talking about connecting things to things but also systems, cloud services, and people. Add in a little machine learning and artificial intelligence and now we have something interesting...
Last week, while in San Francisco, I used the Uber app and service four times. All four experiences were great, although one of the drivers stopped for 30 seconds and then left as I was walking up to the car. He must have realized I was a blogger. None the less, the next car was just a minute away and I suffered no pain. In this article, my colleague, Ved Sen, Global Head, Advisory Services Social, Mobile and Sensors at Cognizant shares his experiences and insights.
We are reaching the end of the beginning with WebRTC and real systems using this technology have begun to appear. One challenge that faces every WebRTC deployment (in some form or another) is identity management. For example, if you have an existing service – possibly built on a variety of different PaaS/SaaS offerings – and you want to add real-time communications you are faced with a challenge relating to user management, authentication, authorization, and validation. Service providers will want to use their existing identities, but these will have credentials already that are (hopefully) irreversibly encoded. In his session at Internet of @ThingsExpo, Peter Dunkley, Technical Director at Acision, will look at how this identity problem can be solved and discuss ways to use existing web identities for real-time communication.
Can call centers hang up the phones for good? Intuitive Solutions did. WebRTC enabled this contact center provider to eliminate antiquated telephony and desktop phone infrastructure with a pure web-based solution, allowing them to expand beyond brick-and-mortar confines to a home-based agent model. It also ensured scalability and better service for customers, including MUY! Companies, one of the country's largest franchise restaurant companies with 232 Pizza Hut locations. This is one example of WebRTC adoption today, but the potential is limitless when powered by IoT. Attendees will learn real-world benefits of WebRTC and explore future possibilities, as WebRTC and IoT intersect to improve customer service.
From telemedicine to smart cars, digital homes and industrial monitoring, the explosive growth of IoT has created exciting new business opportunities for real time calls and messaging. In his session at Internet of @ThingsExpo, Ivelin Ivanov, CEO and Co-Founder of Telestax, will share some of the new revenue sources that IoT created for Restcomm – the open source telephony platform from Telestax. Ivelin Ivanov is a technology entrepreneur who founded Mobicents, an Open Source VoIP Platform, to help create, deploy, and manage applications integrating voice, video and data. He is the co-founder of TeleStax, an Open Source Cloud Communications company that helps the shift from legacy IN/SS7 telco networks to IP-based cloud comms. An early investor in multiple start-ups, he still finds time to code for his companies and contribute to open source projects.
The Internet of Things (IoT) promises to create new business models as significant as those that were inspired by the Internet and the smartphone 20 and 10 years ago. What business, social and practical implications will this phenomenon bring? That's the subject of "Monetizing the Internet of Things: Perspectives from the Front Lines," an e-book released today and available free of charge from Aria Systems, the leading innovator in recurring revenue management.
The Internet of Things will put IT to its ultimate test by creating infinite new opportunities to digitize products and services, generate and analyze new data to improve customer satisfaction, and discover new ways to gain a competitive advantage across nearly every industry. In order to help corporate business units to capitalize on the rapidly evolving IoT opportunities, IT must stand up to a new set of challenges.
There’s Big Data, then there’s really Big Data from the Internet of Things. IoT is evolving to include many data possibilities like new types of event, log and network data. The volumes are enormous, generating tens of billions of logs per day, which raise data challenges. Early IoT deployments are relying heavily on both the cloud and managed service providers to navigate these challenges. In her session at 6th Big Data Expo®, Hannah Smalltree, Director at Treasure Data, to discuss how IoT, Big Data and deployments are processing massive data volumes from wearables, utilities and other machines.
P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at Internet of @ThingsExpo, Erik Lagerway, Co-founder of Hookflash, will walk through the shifting landscape of traditional telephone and voice services to the modern P2P RTC era of OTT cloud assisted services.
While great strides have been made relative to the video aspects of remote collaboration, audio technology has basically stagnated. Typically all audio is mixed to a single monaural stream and emanates from a single point, such as a speakerphone or a speaker associated with a video monitor. This leads to confusion and lack of understanding among participants especially regarding who is actually speaking. Spatial teleconferencing introduces the concept of acoustic spatial separation between conference participants in three dimensional space. This has been shown to significantly improve comprehension and conference efficiency.
The Internet of Things is tied together with a thin strand that is known as time. Coincidentally, at the core of nearly all data analytics is a timestamp. When working with time series data there are a few core principles that everyone should consider, especially across datasets where time is the common boundary. In his session at Internet of @ThingsExpo, Jim Scott, Director of Enterprise Strategy & Architecture at MapR Technologies, will discuss single-value, geo-spatial, and log time series data. By focusing on enterprise applications and the data center, he will use OpenTSDB as an example to explain some of these concepts including when to use different storage models.
SYS-CON Events announced today that Gridstore™, the leader in software-defined storage (SDS) purpose-built for Windows Servers and Hyper-V, will exhibit at SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Gridstore™ is the leader in software-defined storage purpose built for virtualization that is designed to accelerate applications in virtualized environments. Using its patented Server-Side Virtual Controller™ Technology (SVCT) to eliminate the I/O blender effect and accelerate applications Gridstore delivers vmOptimized™ Storage that self-optimizes to each application or VM across both virtual and physical environments. Leveraging a grid architecture, Gridstore delivers the first end-to-end storage QoS to ensure the most important App or VM performance is never compromised. The storage grid, that uses Gridstore’s performance optimized nodes or capacity optimized nodes, starts with as few a...
The Transparent Cloud-computing Consortium (abbreviation: T-Cloud Consortium) will conduct research activities into changes in the computing model as a result of collaboration between "device" and "cloud" and the creation of new value and markets through organic data processing High speed and high quality networks, and dramatic improvements in computer processing capabilities, have greatly changed the nature of applications and made the storing and processing of data on the network commonplace. These technological reforms have not only changed computers and smartphones, but are also changing the data processing model for all information devices. In particular, in the area known as M2M (Machine-To-Machine), there are great expectations that information with a new type of value can be produced using a variety of devices and sensors saving/sharing data via the network and through large-scale cloud-type data processing. This consortium believes that attaching a huge number of devic...
Innodisk is a service-driven provider of industrial embedded flash and DRAM storage products and technologies, with a focus on the enterprise, industrial, aerospace, and defense industries. Innodisk is dedicated to serving their customers and business partners. Quality is vitally important when it comes to industrial embedded flash and DRAM storage products. That’s why Innodisk manufactures all of their products in their own purpose-built memory production facility. In fact, they designed and built their production center to maximize manufacturing efficiency and guarantee the highest quality of our products.
All major researchers estimate there will be tens of billions devices - computers, smartphones, tablets, and sensors - connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades. Over the summer Gartner released its much anticipated annual Hype Cycle report and the big news is that Internet of Things has now replaced Big Data as the most hyped technology. Indeed, we're hearing more and more about this fascinating new technological paradigm. Every other IT news item seems to be about IoT and its implications on the future of digital business.
Can call centers hang up the phones for good? Intuitive Solutions did. WebRTC enabled this contact center provider to eliminate antiquated telephony and desktop phone infrastructure with a pure web-based solution, allowing them to expand beyond brick-and-mortar confines to a home-based agent model. Download Slide Deck: ▸ Here
BSQUARE is a global leader of embedded software solutions. We enable smart connected systems at the device level and beyond that millions use every day and provide actionable data solutions for the growing Internet of Things (IoT) market. We empower our world-class customers with our products, services and solutions to achieve innovation and success. For more information, visit www.bsquare.com.