Spring Gets Deep GWT Integration and GAE Gets Down to Business

DZone 's Guide to

Spring Gets Deep GWT Integration and GAE Gets Down to Business

· Performance Zone ·
Free Resource
Google and VMware speakers took the stage today at Google I/O to announce a new partnership between the two companies, and some exciting cloud and Spring-based integrations that have emerged from this partnership.  The focus of this partnership has been to couple Google tooling with Spring tooling to get Java applications onto various clouds.  The two companies gave Spring developers something they've been asking for since 2008, tight SpringSource Tool Suite (STS) integration with Google Web Toolkit.  Along with this integration, Google and Spring have also gotten Speed Tracer and Insight working together to track performance.  Spring's toolset will also be able to harness Google's tooling for streamlined cloud deployment to any number of VMware platforms or to Google App Engine.  Another offering that Google introduced was the Google App Engine for Businesses.  This service will allow enterprises to build custom apps on GAE with more capable APIs, a straightforward pricing model, and the Service Level Agreements and support needed for business-critical applications.

Spring, GWT, and Spring Roo

The integration of Spring with the Google Web Toolkit (GWT) makes Spring and Google tooling an attractive option for building applications that will not have to be rebuilt for rich user experiences on multiple devices.  That means building cloud applications.  Along with the SpringSource Tool Suite, GWT also adds functionality to development in Spring Roo, which is like Rails and Grails, but Java-centric.  The new integration allows Spring Roo to generate and round trip GWT interfaces, making developers far more productive throughout the application lifecycle.  It also supports easy deployment to GAE from within the Roo shell.  Rod Johnson of SpringSource gives an example:

"[You can] create a new Spring Roo project using a simple dialog box, and use the Roo shell to help you build a complete application. Within minutes you can create a real application (including data access), and have it running in the cloud.  With Roo round tripping integrated with STS, you can add a new field to your entity, see Roo change the GWT scaffold app, press Refresh in GPE's DevMode, switch back to your browser and see that the entire app including database changes is usable after 2-3 seconds refresh time, with no server restart required."  -- Rod Johnson, SpringSource GM

Spring announced that these features are available now in the Spring Roo 1.1.0 milestone 1 release.

Google Speed Tracer and Spring Insight

Also announced was the combining of Spring’s Insight (which tracks server speed) with Google’s Speed Tracer for GWT.  Because of this integration, Speed Tracer will be able to help identify and fix performance problems on the server-side as well as the client and network portions of an app.  Users of Speed Tracer will be able to see Insight traces seamlessly inserted into the interface, and they will be able to drill down to specific server-side operations such as JDBC queries.  Rod Johnson says the combination of Speed Tracer and Insight is unprecedented: "For the first time, it is possible to see browser and backend servers coordinating to show exactly what work a request did from a holistic perspective."

Portable Cloud Apps

Using a combination of Spring and Google development tools, developers will now be able to build cloud-ready apps and deploy them to either Google App Engine, a VMware environment (such as a vSphere infrastructure, vCloud partner, or on the recently announced VMforce), or other infrastructure such as EC2.  VMware says they are committed to making Spring the framework for building cloud applications, even if the applications are not deployed to a cloud based on VMware vSphere.  The guiding philosophy behind VMware and Google's decisions is that developers should be able to write applications without needing to know about the underlying technology that's running their cloud-based app.  Portability between clouds makes good business sense, says VMware.  Developers may want to test their app in one cloud and move it to another for production execution.  Enterprise applications will be portable to any cloud architecture that Google or VMware provides (plus more) once they are packaged with the the companies' newly integrated toolsets.

Google App Engine for Businesses

GAE has grown up in the two years that it has been available.  As you'd expect, Google's new App Engine offering for businesses includes a broader, more mature set of features and SLAs than the basic free service.  Here are the main additional benefits of Google App Engine for Businesses:

  • Centralized administration: A new, company-focused administration console lets you manage all the applications in your domain.
  • Reliability and support: 99.9% uptime service level agreement, with premium developer support available.
  • Secure by default: Only users from your Google Apps domain can access applications and your security policies are enforced on every app.
  • Pricing that makes sense: Each application costs just $8 per user, per month up to a maximum of $1000 a month. Pay only for what you use.
  • Enterprise features: Coming later this year, hosted SQL databases, SSL on your company’s domain for secure communications, and access to advanced Google services.

Google also announced more upcoming features for the basic GAE service:

  • Mapper API - A simple library for executing work in parallel over a large dataset, such as all your datastore entities or line-based data in a Blobstore blob.
  • Channel API - The Channel API lets you build applications that can push content directly to your user’s browser (aka “Comet”). No more polling for updates!

Google App Engine for Business is currently in preview, opened to a limited number of enterprises.

Try the SpringSource Tool Suite with Google Integration right away!  This comes with the recent Spring Roo 1.1.0 M1 release.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}