|
|
YOUR FEEDBACK
Did you read today's front page stories & breaking news?
SYS-CON.TV |
TODAY'S TOP SOA & WEBSERVICES LINKS Wireless XML
Ultimate Device Support with CC/PP
By: Erich Izdepski
Digg This!
The explosive growth of Internet-enabled gadgets has caused a major problem: the current Web infrastructure is simply not ready for them. The Web has (some) beautiful HTML pages that are at best ugly on microbrowsers...when they can be viewed at all. Most Web servers don't recognize these gadgets or what they can do; they don't know how to share rich, graphic content with them. Those that work rely on the gadget (or worse, its user) to memorize new Web addresses that point to specially built pages intended for viewing on that particular device. Your elaborate Web application doesn't work on the thousands of new gadgets your customers want to use to interact with you. New pages with a sliver of the original content and functionality you just finished building are required. It's actually worse than that: you need new pages for each family of devices - the phones, the pagers, the PDAs, and whatever comes next. When configured properly, Web servers really do know how to recognize gadgets and send them appropriate data, but the gadgets often mislead Web servers about who and what they are, causing problems. Many use nonstandard (and poorly documented) data. Only very specialized, and hence limited, applications can work with these constraints. New applications need to support all manner of different client devices, from WAP browsers and RIM pagers to PDAs running Palm OS or WinCE, all with varying form factors and computational capabilities. People have been working on this problem for about seven years. The W3C is the leader in this area. Their work products come under the name "Composite Capabilities/Preference Profiles," or CC/PP.
Out of Chaos...
To get the most from CC/PP, you can use profiles to allow a single Web page to handle a whole family of gadgets by providing minor customizations of the page dynamically. This isn't the same as providing separate pages for every device (which is bad), nor is it the same as having a single page for all devices (which is a pipe dream). Fewer pages, logically organized by family, are desirable due to the reduced cost to build and maintain the Web site. Profiles must be written in a language the Web server can both read and understand. The language must have a grammar that a computer can understand and a limited, well-defined vocabulary. CC/PP uses XML as the grammar for representing profiles. To be precise, profile data is described using the Resource Description Format (RDF) and encoded in XML. The profile also needs a specific vocabulary. This is just a list of terms and what they mean in the limited context of gadget capabilities. Terms are simple, like color capable or screen size. To organize the terms and make the vocabulary easy for humans to understand, a new concept is useful - that of a profile component. A few sample components are Hardware Platform, Software Platform, Browser, Network Characteristics, and Operating System. A CC/PP vocabulary defines the recognized components, their attributes, and type information. Listing 1 provides a sample profile containing three components and many attributes (namespace identifiers ignored for clarity). Now that we can read, write, and understand profiles, we must ensure that it stays that way. Your gadget and my Web server must use the same CC/PP vocabulary in order to communicate effectively. Since supporting a vocabulary requires custom programming, having too many is as bad as having none at all due to the incompatibilities resulting from trying to support too many things. Figure 2 provides a more detailed example that shows the role of CC/PP in a Web page request. CC/PP provides the simplest way to get quality information about the capabilities of a client device. A major point of using CC/PP is that the server doesn't need any advance information about gadgets or any other Web browser. You design your pages against the CC/PP vocabulary. Using CC/PP to drive page customization improves the user experience.
Now for the Bad News
There is also the problem of matching a gadget to the correct profile. You must use the existing HTTP header data sent by all gadgets to find a suitable profile. Unfortunately, standards for header data are perhaps too liberal, and just about anything and everything shows up in HTTP headers, complicating the task. This doesn't mean that CC/PP can't be used right now - it's just not readily available, and has its challenges. In order to realize the potential of CC/PP, manufacturers must step up and create Internet-based CC/PP repositories describing their hardware and software. Unfortunately, this will be challenging for manufacturers, since the current information they provide is inadequate, inaccurate, and hard to find...when possible at all. So where will CC/PP information come from?
Call for Special Software
Tag libraries make building a page like this even simpler since common requirements are built into tags, allowing reuse. An added benefit of using tag libraries to harness device information is that a nonprogrammer can use them to build complex pages that will work on a variety of platforms. With the emergence of CC/PP, some tasks performed by Web applications will be eliminated. The guesswork involved in identifying device capabilities will be no more. Ugly client-side JavaScript used to identify browsers disappears. With accurate profiles, your Web applications will simply know what does and does not work for a given client. CC/PP has great potential. With it, we will be able to:
Reference
XML JOURNAL LATEST STORIES . . .
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK BREAKING XML NEWS
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||