Best serverside architecture(framework/stack) to use with GWT for large application...please show me the light

508 views
Skip to first unread message

GWTter

unread,
Aug 25, 2012, 7:48:12 PM8/25/12
to google-we...@googlegroups.com
Hi all,

I've been doing research on this for the past 2, almost 3 days now. I feel like I've googled everything under the sun on the matter (including these forums) and am almost all tutorialed-out. Before I go into any more details on the question I just want to give a quick overview of the scope and plan for the project to see what will suit it best:

-Large application, non-trivial
-50+ DB tables
-Large user base
-User management/authentication/sessions
-transactions
-security
-MVP (as per GWT recommendation)
-focus on performance and scalability (naturally :), am using GWT after all)

I've also read and watched all of the best practices on architecture for large applications (Google/GWT).

Now in the last talk I could find on best architecture practices involving GWT was back in 2010 by Ray Ryan in which he states that they don't think JavaBeans and property change events work terribly well so it's better to use DTOs for the Model.

My big questions are if this is still the belief and the recommended route, and if so, what should I be looking at in order to achieve this? a Framework?

My preference would be to keep coding in Java on the serverside since I'm already doing so with GWT on the client. I've been investigating serverside frameworks and seem to have arrive at 2: Seam or Spring? However I can figure out which of these are best suited for the task. All of the doc I've found out there discussing the issue is at the most recent about a year old but most of it is from <=2010 so it makes it even harder to tell considering that both of these frameworks have evolved considerably since then. There's also been the coming of JEE 6.

Can anyone give any insight on who's best suited for the task, or what I should do to fulfill my requirements but stay inline with what is recommended by GWT? I know I only mentioned Seam and Spring since that's what I've been led to mostly, but I'm open to any suggestions that fit what I'm looking for. I've already ruled a couple of solutions such as Spring Roo for this kind of task.

This is my first project of this scale and the last thing I want to do is head down a path and figure out that I've wasted a lot of my and my team's time and energy because of some wrong decisions I made at the get-go.

Thanks a lot in advance for your help, I really just want to figure this out so I can get back to coding instead of googling the ends of the earth ;).

-Seth

Derek

unread,
Aug 27, 2012, 10:05:05 AM8/27/12
to google-we...@googlegroups.com
I use Guice on the server side and GIN on the client side. I generally use DTOs over GWT-RPC since RequestFactory isn't what I need / want to migrate to.

GWTter

unread,
Aug 27, 2012, 5:18:13 PM8/27/12
to google-we...@googlegroups.com
Hi Derek,

Thanks a lot for the reply. I did consider Guice for DI on the serverside but not sure if it would be redundant if using a framework like Spring. I do want to utilize RF though as it has a nice set of features which I'd like to include, e.g. caching and only delta posts. And I'll definitely take a look at GIN again since DI on my clientside might be pretty nice too. Thanks again,

-Seth

GWTter

unread,
Aug 27, 2012, 5:20:48 PM8/27/12
to google-we...@googlegroups.com
Hi all,

I also posted this question on SO and revised it a little since, but received one really great response so far if anyone is interested:

http://stackoverflow.com/questions/12132213/recommended-serverside-architectureframework-stack-to-use-with-gwt-for-large-a



Derek

unread,
Aug 28, 2012, 10:12:42 AM8/28/12
to google-we...@googlegroups.com
Hi Seth,

I personally am not a fan of Spring. I'm generally not a fan of anything that says, "First, create a bunch of XML files" (GWT excepted :) ). That's why I gravitated to Guice for all my DI needs. That said, Guice and Spring aren't quite the same thing, and you could leverage both of them.

However, it is probably unnecessary to do both Guice and Spring in a GWT app. You can do anything with one DI framework that you can do with the other, and if you are leaning to Spring, you make a fine choice and you can ignore the rest of my post.

At my workplace, the way we do GWT projects is we create a WebXml.java in the server package that implements GuiceServletContextListener and point the web.xml to that class. The WebXml contains servlet mapping modules, db connection modules, and other Guice modules as needed.

On the client side, we generally use MVP structure with GIN. The MVP structure is a lifesaver for large projects in my mind. Our more recent projects have used the Activity and Places framework described on GWT's website with the main exception that the ClientFactory object is unnecessary since GIN provides the various resources instead of ClientFactory.

At my work we've got two projects that clock in around 34k and 46k lines of Java (not including XML or other artifacts) as well as smaller projects and they use the methodology I described.

Derek

GWTter

unread,
Aug 28, 2012, 6:14:44 PM8/28/12
to google-we...@googlegroups.com
Hi Derek,

After do some more research and receiving some more advice from others and another helpful answer on SO I'll be going with Spring (I agree about the XML, but they have introduced/incorporated more annotations since the earlier versions). However what you detailed still makes a lot of sense, and also very helpful, so I won't be ignoring it :). Although Guice and Spring might be over doing it, I think GIN on the client side is still worthwhile and you've pretty much sold me. Also the Activitys and Places. Thanks again for all the insight, much appreciated.

-Seth

James

unread,
Aug 28, 2012, 9:22:24 PM8/28/12
to google-we...@googlegroups.com
Would you give the detail about how to handle history using GIN, Activity and Place.  Is it possible to implement GWT-platform way?

Thanks,

James,

rhodebump

unread,
Aug 29, 2012, 8:30:17 AM8/29/12
to google-we...@googlegroups.com
I love GRAILS and GWT development.  Grails make hibernate development very easy for java guys, and grails has hardly any xml "stuff" to deal with.
www.spotmouth.com is an GWT/Grails combo


On Saturday, August 25, 2012 7:48:12 PM UTC-4, GWTter wrote:

Kara Rawsonkara

unread,
Aug 27, 2012, 8:14:44 PM8/27/12
to google-we...@googlegroups.com, google-we...@googlegroups.com
hibernate with jpa beans. run onto of a restful java servlet to serve up your DAL. if your not good with dep inj design use GIN and Guice for instantiating your widgets and composites. also if your new to gwt use the ui binder. advanced create a viewport and screen manager to inject your classes. and oracle for db since it works nicely with run native behind the scenes of your plsql views that u create in your db. also for quick and dirty apps use springroo to architect and develop your back end. 

Sent from my iPhone
--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/8O06mXQjVUwJ.
To post to this group, send email to google-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
Reply all
Reply to author
Forward
0 new messages