“In theory there is no difference between theory and practice. In practice there is.”
WURFL Users, Friends
it seems like yesterday that in our first announcement of ScientiaMobile we also mentioned the imminent arrival of the Cloud:
“WURFL Cloud Services. I know the name “buzzes”, yet it accurately describes what many have been requesting repeatedly: a highly-available central repository serving updated WURFL information at all times. At this point, the service is still in alpha, but we gladly accept early birds, ready to bargain a substantial discount for the service with the fine-tuning of the WURFL Cloud client component.”
Launching a Cloud service is conceptually simple, but, when the rubber meets the road, there are a ton of practical details which make it all more complicated. This is why it all took a little bit longer than we originally anticipated to launch the WURFL Cloud.
I recall a story from my Software Engineering classes at the University in Pisa, Italy. The story was about David Parnas, a Computer Science legend that contributed to define the world of programming the way we know it today. This guy sort of single-handedly ditched the Strategic Defense Initiative, (i.e. the plan with which Ronald Reagan wanted to incinerate Nuclear Intercontinental Ballistic Missiles on their way from Communist Russia, similarly to what one sees in American techno-thriller movies).
In a nutshell, Mr. Parnas made a very simple point about the whole Star Wars thing: “We cannot test this thing.”
I guess that story stuck in my head. 30 years later Parnas still whispered to my ear that proper testing of a complex system is tough.
While no human life is at stake when one launches a DDR in the Cloud, the same cannot be said of one’s credibility, obviously. Because of all this, we decided to go for a soft-launch and get a chance to iron out any rough edges (and attacks from Russian hackers) away from too many prying eyes.
The WURFL Cloud is now launched:
So far so good. Everything is going smoothly. Thank you, Mr. Parnas.
The Advantages of a Cloud Solution
For some, Cloud Computing is the worst mistake a developer could make, the point being that you are placing your system in the hands of someone you don’t control. Richard Stallman, a guy whose opinion can hardly be ignored, is the best example of this position.
Having said this, while some organizations (for example, banks and financial institutions) have strict security and reliability requirements, for many other companies the risk that the service may be down for a limited amount of time is totally bearable. Many of those companies will happily trade some control for other advantages. In the case of the WURFL Cloud, the advantages are:
- No long-term commitment or investment to a specific DDR solution.
- Virtually no memory and CPU usage..
- No need to regularly update your Device Database.
- Support for their programming platform (i.e. no need to acquire, understand and deploy complex extra software)
In a world that has grown accustomed to having stuff readily available out there at HTTP’s distance, bringing software components in-house is just as smart as buying a car whenever a taxi would do the job perfectly (unless you are in Rome, but I digress…).
In summary, some freedoms are priceless, for everything else there’s Mastercard (or Visa, or Amex). Thank you, Richard. Always a pleasure.
The Community
Many people know that WURFL was originally started as a community initiative 10 years ago. Still today, WURFL has a community dimension that is important to the ScientiaMobile team. The question we asked ourselves last fall was:
“How do we create a community dimension in a Cloud offering?”
The answer wasn’t simple. Giving everyone free access to the service would undermine the whole Cloud offering (nobody pays for something that they can also obtain for free).
The solution was to ‘segment’ the cloud offering and provide different levels of features and varying number of detections: if your site has little traffic (less than 5000 visitors per month) and you are OK with detecting just a couple of properties, then the FREE offering may be good enough for you. You can register and get started with the WURFL Cloud faster than you can say “I don’t have a credit card”.
Of course, if those limitations are too strict, chances are that one of the other three offerings is good enough. Plus, at those price levels, many small and medium-sized organizations will be OK with letting their IT guys use their personal Credit Card to pay for the service and submit an expense reports at the end of the month. Let’s face it: this approach saves a lot of people in companies a lot of stress. From interaction (or lack thereof) with the legal department to the ease of setting it up and getting started without any strings attached.
Talking about getting started, it is time to say a few words about it.
Getting Started with the WURFL Cloud
Getting started with the Cloud is rather simple. In fact, it is very simple if you have a bare minimum of programming skills in one of the major programming languages (i.e. PHP, Java or .NET). Our ‘Getting Started’ explains everything you need to know to register yourself on the cloud, discover your Cloud API key in your Customer Vault, manage the set of device properties that matter to you and, last but not least, install a simple library to access those device capabilities programmatically just as simply as if you had installed the fully-fledged WURFL API:
<?php // Include the WURFL Cloud Client // You'll need to edit this path require_once '../Client/Client.php'; // Create a configuration object $config = new WurflCloud_Client_Config(); // Set your WURFL Cloud API Key $config->api_key = 'xxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // Create the WURFL Cloud Client $client = new WurflCloud_Client_Client($config); // Detect your device $client->detectDevice(); // Use the capabilities if ($client->getDeviceCapability('ux_full_desktop')) { echo "This is a desktop web browser"; } else { echo "This is a mobile device"; } ?>
Please observe that, while the API may look identical, there are two different libraries made available to WURFL users:
The Simple Cloud Client, for the free, basic and standard offering. The Premium Cloud Client, for the premium offering.
In short, the Simple client will use the device cookies to keep the number of device detections down (one device detection is approximately one unique visitor to your site). The Premium Cloud Client can access all the WURFL capabilities. Those are numerous enough that they cannot be piggy-backed on a cookie. You’ll need a shared caching layer on your server. That’s where the Premium Cloud Client library introduces its extra value.
Conclusions
WURFL has represented the de-facto Device Description Repository for 10 years. It predated virtually all initiatives in the DDR space, be they commercial or driven by some standard body. Many have asked about the availability of a WURFL Cloud over the years. The advent of ScientiaMobile has made this possible.
Enjoy
Luca Passani CTO @ScientiaMobile and WURFL Inventor