Section 7.5. Understanding How Radio Works

At its core, Radio is a very sophisticated piece of software ? as sophisticated as you can purchase from any vendor today including Microsoft, IBM, and Sun. Here are some of the key components that make up Radio:

  • Overall content management system

  • Object database

  • Scripting language

  • Network engine

  • Content publishing preprocessor

  • XML engine

  • Logical, consistent URL structuring

  • SOAP and XML-RPC server and client engines

  • Open architecture

Each component is discussed below. Please note that depending on your level of "geekiness," you may want to skip this section.

7.5.1 Overall Content Management System

The Radio blogging tool really began life as an earlier product from UserLand called Frontier, a powerful content management system (CMS). A CMS is designed to make web publishing much easier and more powerful. At the simplest level, a CMS isolates content from presentation. This lets you alter your web publishing with a few clicks of the mouse rather than hours or days of HTML changes.

For example, a CMS lets you globally change your web site's look and feel just by applying a theme or style to it. A CMS also lets you globally manage and fix broken links. If this sounds like Radio, you're correct ? Radio is a full CMS and has features normally found in larger, more complicated, more expensive products.

7.5.2 Object Database

One of the problems with typical web publishing is the huge number of individual files involved. Radio's object database, the .root files it uses, takes care of managing all the files involved in your blog. Additionally, if you are a developer, you can use Radio's object database in your own applications where you need storage of variable length objects.

7.5.3 Scripting Language

Although it's not covered in this book, Radio has a full scripting language, UserTalk, which you can use to build custom applications. Much of Radio, in fact, is actually written in UserTalk. This means that if you need to change how a built-in Radio function works, you generally can. Additionally, Radio has a full development environment for UserTalk, including a debugger and a unique outline-based scripting environment. For more on UserTalk, see

7.5.4 Network Engine

Radio is fundamentally a network application that is always in contact with the Internet. This means that Radio is regularly uploading content, downloading news, and even updating itself with new features over the Internet. This network functionality is also available to your own programs if you want to develop within the UserTalk environment.

7.5.5 RSS and Content Syndication

As described in Chapter 1, RSS allows you to both accept content and broadcast content (assuming that some users subscribe to your blog). This means that your blog content can get very widely distributed without any additional work on your part. Additionally, your blog can incorporate rich content from a vast number of sources.

7.5.6 Logical, Consistent, Permanent URL Structuring

By this time, you have seen at least some of Radio's URLs such as:

A home page

A daily posting

A list of all stories

An individual story

Radio automatically generates these consistent, permanent URLs for all your blog entries. This makes your blog posts very accessible to search engines because they represent just straight HTML, not complicated CGI URLs. Additional examples of Radio's URLs are covered in the next section.

7.5.7 Web Services, SOAP, and XML-RPC

Web services, SOAP, and XML-RPC are three of the hottest technologies in the computer industry today. A full description of these could take pages, not just a paragraph. In short, not only does Radio let you create web services, those web services are fully standards-based and support both SOAP and XML-RPC (in fact, UserLand software helped define both of these very important standards).

For more on using XML-RPC and SOAP in Radio, please see:

7.5.8 Open Architecture

Software products from vendors differ in their degree of "open-ness". This is not only their support of an API or a standard, but it's the ability for a user to "get under the hood" of a product and fix it if there is a problem. The single most sophisticated feature in Radio is that its architecture is both open and understandable. It can be a bit inconsistent at times, like all products, but its very, very open. The meaning of this for you, the user, is that Radio doesn't lock you in. If you need to figure out how to do something, you can. If you need control of your blog data, it's available.

For a detailed look underneath the hood of Radio and how a user can examine it, see: