Using GWT for JSON Mashups

Published: 30th March 2012
Views: N/A

Java developers land up with mashups while meeting new codes during Java Application Development. Mashups enable Java developers to develop quick and powerful applications probably if they have correct tools. GWT can be integrated with other web applications that expose data in JavaScript Object Notation (JSON) format. This article describes more about it.


JSON, a subset of JavaScript is cool be also dangerous in some ways. Being an executable code it is vulnerable to variety of attacks. While GWT development or Java Application Development if JSON is used then Java developers should stay aware of these risks and apply countermeasures.


Basics of JSON: It is a syntax used by JavaScript to define data objects that is compatible with other languages. For more details you can just explore json.org. JSON offers several benefits out of which one is that JSON data can be parsed by browsers by simple calling of eval function by JavaScript. There are several methods that can be categorized by how developers fetch the data.


Techniques are used to make mashups possible while they can also be created using server-side proxies.


High-level Design: Google Data API can be used for fetching information. Its GData provides interfaces like XML, JSON and JSONP which allows maximum flexibility for developing apps. GWT apps are written in Java so there is a phase where Java source is compiled into JavaScript by offshore java developers. One of the optimization that is performed is code obfuscation which makes output smaller and quicker to load. Disadvantage of this is that the output code is unpredictable which makes difficult to callback function name to a JSONP service.


Most effective technique used by offshore java developers for such cases is “Function Bridge” which involves creation of handle for obfuscated function and then copied to well-known variable name in the namespace of JavaScript. During invoking of function by outside JavaScript code the actual invoking is done of real function via the copied handle.


This rough design would help after considering all those points discussed above:


  • A unique token is assigned with each request for Google Data JSON.

  • With the use of GWT’s JavaScript Native Interface a new callback function for each request is created on demand and this token is included in the name of function to make it unique.

  • Callback is a function of JavaScript closure over the token which is passed to the inner function during the invoking of callback.

  • For each callback same inner function is used for making it use the token for dispatching the response data to the appropriate GWT code.

“Moving Parts” of this strategy:


  • To handle responses that are incoming from the Google Data server is single dispatch method to be used in GWT development.

  • The next method is to use JSNI for constructing the function closures and initiate the Google Data request.

At last during the clean-up phase all callback handles should be removed to avoid cluttering of JavaScript namespace. To prove the final API a single class containing all the key parts can be implemented. Some of the key requirements to make it work are:


  • Abstraction of the dynamic

Report this article Ask About This Article


Loading...
More to Explore