So I went ahead and finished up the client portion of the service:

http://devicemap-vm.apache.org/javaclient.html


The client uses a simple js library (dmapClient) to do the backend call:

http://devicemap-vm.apache.org/dmapclient.js


FYI, the XHR call (dmapClient.xhr()) wont work across origin until I add the 
origin header to the backend. Also, this is not meant to be a public service, 
just a demo of how a service could be setup using DeviceMap.

So im going to kind of put anymore web/frontend/website work on ice for the 
time being. I would like to begin focusing on the Java client. Putting this all 
together gave me a good feel for the Java API and where it needs some work.

What I am thinking about doing is branching the client and then rework it piece 
by piece. Some of the areas I want to focus on:

-Loading the DDR data. Right now it loads it via an external path. It should 
detect and load from jar is possible.
-The project has dependencies on JARs and other projects which are non 
standard. I will either bring this code in, rewrite it, or eliminate it.
-I feel that the integration code is way too complex. It could be greatly 
simplified: 1) initialize the DDR, 2) pass in a user agent and get back a map 
of attributes, 3) repeat step 2. This should be no more than 10 lines of code 
total.
-Rework the core algorithm to increase the performance and accuracy.

This may end up being a total rewrite. Whatever I do rewrite will be done under 
the org.apache.devicemap package, so this may be a good thing. When its all 
said and done, we can review the changes, propose additional changes, and 
decide how we want to move forward.

Thoughts? Concerns?

thanks,
Reza

Reply via email to