Issues in WurflCloud

Questions about the WURFL Cloud service.
JackONeill
Posts: 4
Joined: Wed Feb 15, 2012 6:59 am

Issues in WurflCloud

Postby JackONeill » Wed Feb 15, 2012 8:30 am

Hi,

I am testing your WURFL Cloud service and i came accross some issues.

1. Previously I tested the .NET API but because the result devices were often of type "Generic" in comparison to TeraWurfl, where the result devices were specific (i assume that's correct), I tried the Wurfl Cloud service code for .NET. While there are considerably less "generic" hits, I still recivede some where TeraWurfl found a correct device. (e.g. "HTC_ChaCha_A810e/Mozilla/5.0(Linux; U; Android 2.3;xx-xx; Build/GRH78C) AppleWebkit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"). According to this discussion search algorithm in TeraWurfl and Wurfl Cloud ought to be the same so it shoud return the same device. How is this possible?

2. On .NET API I could find a device using only user_agent as input (IWURFLManager().GetDeviceForRequest(String userAgent)) and then retrieve all capabilites with IDevice.GetCapabilities(). At Wurfl Cloud the only way to find a device (by my knowledge) is by CloudClientManager.GetDeviceFromUserAgent(string userAgent, string[] capabilities);
In this case I need to know in advance what capabilities a device has. Is it possible to get device capabilities using only user_agent as input?

3. With the method CloudClientManager.GetDeviceFromUserAgent(string userAgent, string[] capabilities) I tried to get a device with appr. 500 capabilities (capabilities array length was appr. 500) but it produced an error everytime when the capabilities length was greater than appr. 205. I couldn't figure out why this error occured. Error occures in class CloudClient at code responce=webRequest.GetResponse();. The error is: "The underlying connection was closed: An unexpected error occurred on a receive.". Is there maybe al limit of characters in a web request? In order to get 500 capabilities for a device I had to run this request 3-times. Which brings me to the last quesstion/issue.

4. The webRequest runTime (no matter if I query for one of 200 capabilites) is around 400 ms. With .NET API the time to run the next code was less than 1 ms.
IDevice device = GetWURFLManager().GetDeviceForRequest(phoneSearchParameters.UserAgent);
IDictionary<string, string> iDictionary = device.GetCapabilities();
Why is there such a bottleneck?


Thank you for all your answers and keep up the good work with very useful database and tools.

JackONeill
Posts: 4
Joined: Wed Feb 15, 2012 6:59 am

Re: Issues in WurflCloud

Postby JackONeill » Wed Feb 15, 2012 10:25 am

Just found the answer to the 4th question that is already explained in "Getting Started Guide for Wurfl Cloud Client .NET" at the end of the document. It's because API's perform search locally on users machine, but Wurfl Cloud client performs search on servers in USA - in a cloud.

Other questions remain.

kamermans
Posts: 393
Joined: Mon Jun 06, 2011 9:50 am

Re: Issues in WurflCloud

Postby kamermans » Wed Feb 15, 2012 10:36 am

Hi,

1. The WURFL Cloud service is indeed powered by the same logic as the Database API (aka Tera-WURFL). I've been able to reproduce the problem with the ChaCha user agent provided - thanks! The Cloud Beta service runs a development version of the detection API, and in this was the problem in this case. We have updated the cloud servers to the latest tested API revision, so now you should see better results.

2. I can confirm that the latest revision of all cloud clients no longer require you to pass the capabilities, so for .NET, this:

Code: Select all

CloudClientManager.GetDeviceFromUserAgent(string userAgent, string[] capabilities);
is overloaded as:

Code: Select all

CloudClientManager.GetDeviceFromUserAgent(string userAgent);
3. Indeed, requesting hundreds of capabilities is probably not what you want. The new version of the client will let you request all the capabilities without listing them.

4. A typical round-trip request latency from within the US is 90-110ms, depending on your connection. (edit: I see you found the answer to your question)
Thanks,

Steve Kamerman
ScientiaMobile

Make sure you check out our WURFL Cloud, WURFL InSight and WURFL InFuze products!

JackONeill
Posts: 4
Joined: Wed Feb 15, 2012 6:59 am

Re: Issues in WurflCloud

Postby JackONeill » Fri Feb 17, 2012 7:12 am

Thank you very much for your answers and your efford on optimizing search algorithm.

The detection works much better after your upgrade, but there are still some devices that Wurfl Cloud Service doesn't find. I'll write that in "Device Detection Issues" thread.

I also implemented the overloaded method with only passing user agent by my self and it works fine, in case anybody want's to use it before you launch a new revision:

Code: Select all

public AbstractDevice GetDeviceFromUserAgent(String userAgent)
{
    return GetDeviceFromUserAgent(userAgent, new string[0]);
}

luca.passani
Posts: 65
Joined: Thu May 19, 2011 2:49 pm

Re: Issues in WurflCloud

Postby luca.passani » Fri Feb 17, 2012 8:26 am

Thank you, Jack. You can post the offending UAs on the forum or send it to us offline. We will gladly look at them

Thank you

Luca

apurv21
Posts: 1
Joined: Thu Mar 15, 2012 2:19 pm

Re: Issues in WurflCloud

Postby apurv21 » Thu Mar 15, 2012 2:30 pm

HI,

I am trying to get capabilities by useragaent but I am not able to find the function GetDeviceFromUserAgent. I have downloaded the latest API from my account. Has it been removed or something?

Error 1 'ScientiaMobile.WurflCloud.CloudClientManager' does not contain a definition for 'GetDeviceFromUserAgent' D:\My Dropbox\Dropbox\Workspace\Visual Studio\WURFLTEsts\App_Code\DeviceDetector.cs 15 36 D:\...\WURFLTEsts\

luca.passani
Posts: 65
Joined: Thu May 19, 2011 2:49 pm

Re: Issues in WurflCloud

Postby luca.passani » Fri Mar 16, 2012 7:02 am

Hi again. I deleted my previous post because I realized that I had confused that with a different post. Sorry for the confusion.

I suspect that the problem is that you were a Cloud Beta tester. Beta testers were testing what has become the Premium API. If you want to continue using the cloud commercially, please contact us offline.
Of course, we will keep the fact that you were a beta tester in the highest consideration.

Thank you

Luca


Who is online

Users browsing this forum: No registered users and 25 guests