Wednesday, September 05, 2007

Is it good to hide the user-agent in mobile?

Recently Vodafone plugged a new infrastructure in their mobile network. In two words, it is a proxy that is also capable of transcoding web page contents to be suitable for mobile devices.
While I don't know the marketing plan behind this, it is obvious that the main driver is to make the entire web available on mobile devices, even if the source content was not designed for use on mobile devices. This is good, of course, because it allows all Vodafone (UK-only at this time) customers to access all the valuable information that you can find on the web normally, all that information you're used to (and I'm addicted to, I'd say). But how is this software working? It is a proxy sitting sitting in the middle between the mobile device and the open internet, all contents requested by Vodafone-UK users are received by the proxy that performs the requests, gets the page, elaborates it (or maybe simplifies it) and delivers a new page to the mobile browser. While processing the page, the proxy takes out all contents that might create a problem to the mobile browser, tries to clean up the markup if there's any tagsoup and sends something that is optimized for the mobile.

All this sounds perfect, doesn't it? Well, not to me.
There are a few glitches here and there that I think are breaking the original plan of improving the user experience. First of all the proxy sends a unique user-agent HTTP header string that hides the original device behind a generic Mozilla-compatible browser. Remote servers will think that the requesting browser is a desktop PC and send the "appropriate" content, unfortunately sometimes even the remote applications have an adaptation engine that will provide content for desktop PC that is not meant for the mobile. Let's think of a company selling ringtones and contents for mobile phones, when visited by a mobile device will let the user pick a content and download it directly, but if a desktop PC is recognized, it will ask for the mobile device model, show the available contents, ask for the phone number and then send a wappush to let the user download the content. If the proxy is hiding the mobile device and pretending it's a desktop PC the original plan is failing.
The answer to this would be to have a protocol that describes how the remote web application could tell the Vodafone proxy that it IS capable of providing appropriate content for mobile and stop the adaptation, unfortunately, such a protocol does not exist, as of today.
Is the user-agent SO important? At this time IT IS so important, there isn't in fact, a technology that lets a web server know the full capabilities of a mobile device. The OMA and the W3C are both working on this topic, but the technology will not be ready before 1 year or so and then we will have to wait for it to be implemented in mobile devices and later to become a common feature: you can easily imagine the timeframe. The solution proposed by Vodafone is that sites that are able to provide mobile content should contact them and provide all the URL's. Sorry, but this doesn't seem very scalable.

Another tiny issue is that the above plan makes most sense if you're thinking of old WML browser that would not be able to parse an HTML or XHTML page, but what about the recent WebKit implementation that Nokia is delivering pre-installed in their Symbian phones? What about Safari on the iPhone? What about Opera Mini (that I have to admit is a quantum leap in browsing as it provides very smart browsing features to all J2ME devices)? All these browsers provide TODAY (and even 1 year ago if you think of Opera and the first devices running the WebKit-based browser) a technology to adapt content that was meant for desktop PC's with big screens to be viewed and used decently on a mobile device. Unfortunately, again, there isn't a technology that will tell the Vodafone proxy if the device is running a smart browser.... Oh, wait... The user-agent string DOES tell it. So let me recap: Vodafone reads your browser's user-agent string, tries to understand how smart your mobile browser is and then hides the very same information to the remote server! Is this a dog biting its own tail?
But, isn't Opera Mini doing the same, using a unique user-agent for all mobile devices? Yes of course, but the difference is that Opera mini is installed by the user, the user knows about it and also has a chance to set a few options to make the software behave as she better likes it and, by the way, if she doesn't like it, she can use the native browser or install another one, if available. Vodafone's proxy is doing this without asking anything to the user and without allowing any personalization and configuration. It looks like Vodafone tries to be smarter than the web designers, developers and users.... All at once. I think that a lot of smart people work for Vodafone, but I suspect they can hardly address ALL needs or ALL users. Offering a choice is always the smartest solution. Vodafone should make a choice, let the user know and let her pick the best option for him.

I think that what Vodafone is missing is the context. From a user perspective Vodafone will never know the context in which the user is and from a technical point of view it is not allowing remote web applications to know the little that the user-agents and normal HTTP headers provide.
I think that this is a very good plan in theory, that unfortunately is not matching the reality. Transcoding without letting the user be in control is so much 1999 and WAP 1. Reminds me of WAP Gateways, proxies that were created to optimize network usage (and did it well), but were removed to open to gates to HTML and open browsing. Vodafone is implementing a new WAP Gateway that seems to be doing the wrong thing at the wrong time.
If and when there will be a technology that lets the user be in control and user a proxy to optimize network usage and resources, then I'll be in line to use it. For the time being I'm happy to use Opera Mini for some sites and the native browser for other sites.

Some links worth to mention on the topic:
Novarra (the company that developed the transcoding proxy
Vodafone Mobile Internet and Content Services
Opera Mini
Barbara Ballard's more than just a pretty face
Mobile Web Best Practice Working Group - Content Transformation Task Force
Client-Specific Web Services by Using User Agent Attributes

9 comments:

michele said...

It's bad. Really bad. As you know very well, many people working in this field are facing extra-work and extra-problems just to _limit_ damage to user experience (and revenues!) in services specifically aimed at mobile handsets.
I'm wondering how long it will take Vodafone users to realize their data costs for Web browsing are rising. Because IMHO that's the bottom line from Vodafone perspective, not an "improvement" in user experience.

Nicholas Herriot said...

Hi Andrea,

I work in Vodafone R&D and have been following our Mobile Internet project and helping out with the groups Web presence on the Vodafone Betavine site.
This is one of the occasions where we are dammed if we do and dammed if we don't. Mobile operators are continually being blamed for many of the issues stopping users enjoying the internet on the mobile.

If we do nothing, and let things roll along we are dammed.

If we create our own mobile content and be a one stop shop we are dammed and accused of having a 'walled garden approach'.

If we implement our own protocols and solutions between gateway and web servers we are accused of driving our own standards, impacting small companies, and dammed!

If we try to improve how the majority of users get their favourite content on their mobile devices (Content Adaptation) we are...... Well you know the rest.....


Things we can do and I hope you and anyone else interested in this subject will do, is get involved.
Help us shape future content adaptation to benefit everyone. Vodafone have created a section on the vodafonebetavine web site to help address this, and which you have included (thanks) in your blog. You can also post issues on the forums, and share solutions or ideas, see:

http://www.vodafonebetavine.net/web/guest/forums/message_boards/category/182

Vodafone UK will react to this and help out. Please bare with us and help us move forward in helping the community.
Vodafone do listen, and if you don't believe me did you know that:
The Mobile Monday initiative was started by Vodafone;
The content adaptation solution was designed to address problems getting internet on the majority of handsets;
Vodafone have very quickly setup a feedback mechanism through the Betavine portel to address issues with content adpatation;
We are also trying to help grow Mobile Internet through dotmobi (http://mtld.mobi/index.html);
Vodafone is also a member of the LiMo foundation for Linux on mobiles (https://www.limofoundation.org/sf/sfmain/do/home);
We are also exposing API's to allow access to mobile services and stimulate/encourage developers to build and use applications tailored for mobiles ( http://www.vodafonebetavine.net/web/guest/projects/api );
We have also collected many resources that developers may need in developing applications to help them ( http://www.vodafonebetavine.net/web/guest/projects/resources );
And finally, we are allowing developers to host mobile applications that are in a beta stage on our site that anyone can download, feedback on and try with no charge.

I personally belive that this is one area that Vodafone is miles ahead of the pack. I hope we can continue in that role, and I'll personally talk to the Mobile Internet Team in helping out with the Content Adaptation problems. If anyone would like to add their input into this topic go to the forums page in the URL mentioned above.

I hope this helps in the understanding in the motives behind the Content Adaptation engine.

Nicholas Herriot

Paschal Nee said...

>Vodafone (UK-only at this time)
Vodafone Ireland are also doing this albeit with a different proxy technology.

In addition to obfuscated user agents Security is another concern. As the proxy is a man-in-the-middle between the phone and the target web site it sees all decrypted user names/passwords/credit cards/etc. regardless of the security deployed by target web site. Where the target website in in secure mode the proxy does not even encrypt the communication from the proxy to the phone so it is un-encrypted over the air. Users may happily browse over to their on-line banking completely unaware that their username/password is flying around Vodafone's network in plain text.

All that said you have to give some credit to Vodafone for the progress they are making on Mobile Internet. The Content Adaptation coupled with new pricing (€0.99 for 50mb in Ireland) will start to drive more users onto the Mobile Internet. We may need to work with them on the implementation details but it's a step in the right direction.

raddedas said...

It is an extreme inconvenience to not have the User Agent. It makes JavaME provisioning impossible (as most apps require device-specific builds, if only to select appropriately sized images etc). Even if the jad and jar filetypes were passed through with User Agents, the catalogue page which leads to them often needs to know the right kind of extension to include in the links - for example, if it delivers .cab files to Windows devices but .jad files to JavaME, where the browser can reject a link without the right file extension.

Nicholas: the one thing Vodafone could do to improve the web experience would be to include correct network settings - for browsers and for Java - on all handsets, out of the box. Last time I checked this was not done by Vodafone, and it creates a huge problem for users - particularly the settings which work in a browser but not in a Java app. The developer ends up being blamed when apps can't connect when the problem can only be fixed by the operator; often the operator's support staff do not understand there is a problem which further muddies the waters.

I think if the content adaptation had been done 3 or 4 years ago and had become a standard, we could live with it. Today, if the real user agent was passed on to the server in a different HTTP header, we could also easily live with it - stupid servers would deliver as usual to the Mozilla browser, and real servers could adapt what content is sent whilst allowing the proxy to make sure it displays correctly. Removing that control completely, just as phones are becoming able to access the real web properly, seems like "too little too late" to me.

Andrea Trasatti said...

Thank you for your reply Nicholas, I take your points as I think you took mine.

I think that probably the main issue of the current approach is that you are not offering the opportunity to users to make a choice and at the same time you're cutting out the sites out in the open internet by hiding the main recognition system, the same that you use with your proxy to adapt the contact.

Really, why are you sending a user-agent that simulates a Linux PC? I wonder how many "desktop sites" out there would provide a different content to your proxy if you sent out the original device browser's user-agent. Would they be many? I suspect that as of today there would be more sites aimed at mobiel devices providing a different content based on the user-agent rather than the other way around.

Anonymous said...

Hi Andrea, thanks for your comment.

I also work in Vodafone. In addition to what NIcholas said, please also take care that

1) VF does not ship iPhone :-) and actually, at the moment, if you use it with VF you are probably violating an Apple license ;-)

2) The latest version of Opera Mini was developed also with inputs from VF and the Bluecoat proxy technology used by VF. And similarly, all of the Safari and the other Konqueror-based browsers (yes, they all come from Linux and KDE ;-)) released by Motorola, Nokia, etc.

3) A mobile network is NOT the Internet. I know a lot of us would really like to have Internet at our fingertips everywhere, and for sure we'll have it one day, but for the moment, there are a lot of implications (not only the user experience - think about legal issues, content suitability for non-adults, packet network costs charged to customers, etc.) - do you really think the majority of customers would simply enjoy "pure Internet" on their phone, including inappropriate content, viruses, etc.? I can sincerely see parents suiting VF because of their kids spending lots of money because of some viruses started transferring Megabytes over the UMTS packet connection... do you really think that is a remote scenario? I don't really think so.

Cheers
Marco.

Andrea Trasatti said...

Marco,
I don't think your points stand. I could be using the iPhone legally while roaming, but since I live in Italy, there's no chance I'll get an iPhone anytime soon. Anyway, I could be using an N73 or an N93 with the Webkit browser or a Sony Ericsson UIQ phone with Opera for Symbian and still get a good experience on the mobile. I agree with you that these are not the mass-market devices and that there are MANY other devices and browsers out there that are not AS capable.

There are two flaws in your approach, I think. The user is not making a choice he is given what you think is better and not all users might like this.
There is the problem that squishing a big web page into a tiny screen is not always the best idea and I think one of the reasons WAP failed commercially is because the tagline has always been "get the web on your phone" and of course WAP was NOT the web. It seems to me that with this proxy you're trying to do the same again, while the right approach would be to make sure that the web-designers create content that is also suitable for the mobile.

Taking your iPhone example again, there is an article by Apple that in short says that yes, you can fit a big web page on the iPhone, but if the authors create contents that are also suitable for the iPhone avoiding Flash, providing a CSS that fits the small screen and other minor refinements it actually looks much better.

Technically speaking, and I am repeating myself here, you're taking away the key point for device detection to all those sites that do their best to adapt the content and provide contents that are context-sensible to their visitors.

Finally, speaking of virii and browsing inappropriate contents, I don't think the story is very different between Vodafone and any other land-line ISP. I like that idea that ISP's like AOL provide a toolbox with anti-virus, a safe browser and so on, but I think users should be left with the opportunity of doing what they want.

I SUPPORT the idea that Vodafone (or any other network operator) provides a tool such as this adapting proxy, but the user should be able to say "I want to use" or "Thank you, no". As of today, you can avoid the proxy using a different APN that we all know it too complex for most users.

Peter J. Cranstone said...

"there isn't in fact, a technology that lets a web server know the full capabilities of a mobile device."

There is...

We've created a browser plug-in that can read any operating system API, and then transmit that information (essentially the real time capabilities of the device) to any web server and do so as part the HTTP request headers.

As you know we invented mod_gzip. We've taken that core engine and turned it into Mod_Mobile. Mod_Mobile does everything mod_gzip does, with three more features, support for real time BZ2 compression, support for adaptive header encryption/decryption AND support for a thin client.

Here's our Open API (http://www.5o9.net/MobileMe/Documentation/ClientAPI/) where it shows you how to add ANY header to our client and then stream that in real time to the server, where Mod_Mobile intercepts it, parses the environment variable and can make it available via to any backend web service via CGI/Perl/PHP.

That's it... it works. In addition we've created a new UA... for example HTTP_5O9ON="Peter" or HTTP_5O9CALT1="1825.1" which is information from the GPS in real time and tells the server you are at 1825.1m

Andrea Trasatti said...

Peter,
I think your technology is another step ahead of where the Vodafone proxy is targeting. Libraries like yours are useful if the site designer has decided to do adaptation. Vodafone's proxy aims to bring web sites that are not adapted at all to mobile devices.

In your example I suppose you meant that your software adds an HTTP header, but it doesn't create a new user-agent, does it?