Wednesday, December 2, 2009

Story of IHG GWT

In the following posts, I will write down the experience of using GWT, such as good/bad part of GWT, architecture/design decisions and challenges we were facing with as well as some trick/nice functions.



Last summer after I finished the task of fixing production memory leak, our manager Steve talked to me about new billion dollar project of relanuching of HolidayInn(HI) hotels worldwide. As development team, we needed to provide rich application for the new site to attract more users and increase conversion rate. At that moment, GWT came to our mind. A new team was created and most developers sit in the one big room (it is call HI war room). In the next two weeks, we went through and practiced most the functions of GWT.



GWT version: 1.5.3

Java JDK version: 1.5



Followings were what we come up with

The good parts of GWT are:

  • Outstanding user experience
  • RPC object based instead of text based like tradition AJAX.

  • Ease of development increase productivity with Java for JavaScript instead of pure JavaScript. Developer can write code and run/debug in host mode.

  • Performance is promising for some functions such as sorting executed in user's browser so there is not network traffic.

  • Support multi-browser.
  • No issue with scalability.

  • GWT supports standard accessibility guidelines
  • Debug client code in host mode.
The parts need workaround

  • Form based page, as lack of introspection, there is not form to object and object to form mapping capability such as Spring MVC provided. There were some third party packages addressing this, but none of them seems good enough for us to use. So we decided to use simple approach of using widget function to get/set the value to/from form bean object.
  • Could not change the http schema. Login page needed to post as secure https, per origin policy of GWT, we could not change the schema from http to https. So we decided to use tradition form for login page reside in JSP.
  • Learning curve for UI (css) developer as lack of the experience of Java.
After few meetings and discussions, a decision was made to bring GWT into our develop platform.



At the same time, Agile methodology was adopted for the development. During the next few months, we have standing meeting every morning. Development and demo is iterated every three weeks.



Change History:

Author: Michael Wang, initial draft

1 comment:

  1. I guess, GWT will evovle with better friendly CSS themes. Regarding, form to Object and Object to form mapping, yes, Spring MVC yet to provide that. I instead, used Struts to overcome this. With that, jsp pages were loaded along with data, saving a server trip to GWT service. Once pages are loaded all AJAX calls were done through GWT.

    ReplyDelete