YOUR FEEDBACK
More on the Software Assembly Question - Do Design Patterns Help?
Yanic wrote: Hi, > UML and MDA are being changed to be more data and doc...
SOA World Conference
Virtualization Conference
$50 Savings Expire May 23, 2008... – Register Today!


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TODAY'S TOP SOA & WEBSERVICES LINKS


Ultimate Device Support with CC/PP

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...
So how can CC/PP help bring order to this seeming chaos? Through a standard definition called the Device Capability Profile. This profile describes the hardware, software, and even network characteristics of a device. In the simplest case the device sends its profile to a Web server, which reads the profile and uses it to choose the correct content to return (see Figure 1).

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
Up to this point I've been talking about Web servers knowing CC/PP vocabularies and gadgets sending profiles. This is the future of CC/PP. In reality, profile information is not currently being sent as part of the request, and standard Web servers don't know anything about how to retrieve a profile; even if they could, they wouldn't know what to do with the information.

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?

  • Mobile phone gateways: The gateway has to be able to recognize the phone and find the correct profile for it. The profile may be sent within an HTTP header, or just its address may be included.

  • New gadgets: This requires manufacturers to produce CC/PP-compliant devices or upgrade the software in existing devices.

  • Web services: Once you identify the device you're talking to, you could ask a Web service to return its profile.

  • You: Realistically, you are the only reliable source of CC/PP information today. With some effort you can create your own CC/PP repository. Once you have it and can match gadgets to their profiles, you can start to realize the benefits of CC/PP. And you'll be future-proofing your systems for the day when CC/PP information is ubiquitous.

    Call for Special Software
    Let's assume we have a source of CC/PP and can find the right profile for a given gadget. Now what? Handling CC/PP is a task for special software that runs in an application server or a servlet engine. Profiles must be retrieved and turned into server-side objects. These objects must be made available for use in Web pages. JavaServer Pages (including tag libraries) are an ideal choice for harnessing the power of CC/PP to create pages that customize themselves based on a CC/PP profile. Building on the simple profile shown before, Listing 2 provides a very basic example of customization using Cysive's device detection 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:

    • Make Web applications work better.
    • Perform advanced device customization.
    • Handle new devices automatically, rather than having to update existing application code.
    • Enable consumer-oriented Web services to work on any Internet-enabled device.
    This is all possible with CC/PP, but more people in the hardware and software communities need to know about it in order for this potential to be realized. Invest in your company's future, and visit the CC/PP Working Group site.

    Reference

  • W3C CC/PP Working Group Web page: www.w3.org/Mobile/CCPP
    About Erich Izdepski
    Erich Izdepski is a senior developer at Cysive, Inc. based in Reston VA. Since joining Cysive in 2000, Erich has worked on several projects involving integrating J2EE and legacy applications. He is currently involved in the development of CymbioTM, Cysive’s J2EE-based Interaction Server product.

  • XML JOURNAL LATEST STORIES . . .
    3rd International Virtualization Conference & Expo: Themes & Topics
    From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
    EDI to XML: A Practical Approach
    While EDI transactions account for most worldwide commercial activity, XML-based alternatives are beginning to gain traction. According to Forrester Research, stateful XML, stateless XML, and even flat file exchanges are all projected to grow at a faster rate than EDI over the next few
    Red Hat Named "Platinum Sponsor" of Virtualization Conference & Expo
    Red Hat is a trusted open source provider. Red Hat offers enterprise customers a long-term plan for building infrastructures on the quality and innovation of open source. Combining open source operating system platform, Red Hat Enterprise Linux, together with applications, management
    JustSystems Contributes Key XBRL Rendering Technology to Financial Community
    JustSystems announced that it is contributing intellectual property rights for its invention of eXtensible Business Reporting Language (XBRL) rendering technologies to XBRL International, the standards body responsible for the oversight of the XBRL specification. The invention, known a
    JustSystems Launches Campaign for XBRL Success
    JustSystems announced its campaign to help organizations adopt XBRL (eXtensible Business Reporting Language), the XML-based standard for communicating financial and business information. In related news, JustSystems also announced that it has contributed intellectual property rights of
    SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
    SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    SYS-CON FEATURED WHITEPAPERS


    ADS BY GOOGLE
    BREAKING XML NEWS
    Woodstream Selects EXTOL Business Integrator to Improve Business Processes, Customer Collaboration and Internal Integration
    Woodstream, providers of pet, lawn-care and animal-friendly brands such as Perky-Pet,