Blogs

SpringSource Blog

Springing Ahead Toward The Open PaaS

Rod Johnson

A few weeks ago I tweeted that—incredibly—SpringSource was executing faster within VMware than as a startup. Today we announce another exciting development bearing this out.

Following our VMforce partnership with SaaS leader salesforce.com, we are today announcing a collaboration between VMware and Google, centering around the Spring programming model and SpringSource IDE and RAD tooling. Today’s announcement makes Spring the preferred programming model for Google App Engine. This is a tremendous endorsement of Spring as the best and most portable programming model for Java and opens up a new deployment opportunity for Spring developers. The demo in today’s keynote at Google I/O showcased the results from months of collaboration between SpringSource and Google engineers—most of which benefits Spring developers, regardless of where they wish to deploy their applications. The highlights: innovative, close integration between Spring and Google Web Toolkit (GWT) offering the ability to build rich applications with amazing speed; the ability to easily target Spring applications to App Engine; a compelling integration between Spring Insight and Google Speed Tracer to provide insight into the performance of Spring applications from browser to database; and tight integration of all this with SpringSource Tool Suite to provide a polished, productive experience.

Goals

Before delving a little deeper into the technology, I’d like to reflect on the goals. This announcement highlights two core values of Spring that continue to guide us as we move forward: Productivity and Portability.

Productivity

Spring owes its adoption to its ability to significantly and measurably improve Java productivity. SpringSource continues to invest heavily in productivity enhancement, and today’s announcement brings into focus some of the benefits, in the form of two jewels of the SpringSource portfolio: SpringSource Tool Suite (STS) and Spring Roo. Together, these provide the best productivity experience available for Java developers, and it’s exciting to see Google’s recognition of this.

  • STS—our free Eclipse distribution—is the best environment for developing Spring applications. Our goal here is ambitious: a single download that will provide all you need to build Java applications with optimum productivity.
  • Spring Roo is a Spring project that helps build Spring applications faster than you would have thought possible. You’ve probably already heard of Roo—if you’re a Java developer and haven’t tried it yet, now is the time. It’s quite simply the fastest way to build quality Java applications. In a nutshell, Spring Roo is an interactive, round tripping code generator that ensures that you need to write only the lines of Java code that truly add value, while Roo takes on the busywork of creating and maintaining build scripts; persistence mappings; bootstrap configuration; JavaBean methods; toString() methods etc. Unlike typical code generators, Roo is intended for developers who want to write code—ensuring that they need only to write the right code. Its round tripping support extends to the UI layer, updating managed artifacts based on user code changes.

While we respect the fact that many in the Spring community wish to benefit from choice at a fine-grained level, we firmly believe that the productivity advantages of opinionated tools such as Spring Roo will become increasingly important. (While Roo targets developers who wish to write code in Java, Grails caters for who wish to program in Groovy. It’s important to note here that the Grails and Groovy community have already demonstrated the value of their technology on Google App Engine.)

Productivity is also about integration: making everything work together. With the SpringSource/Google collaboration, you will be able to download STS, 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.

Portability

A core value of Spring has always been its ability to enable developers to write business logic that is not merely simpler, but cleanly decoupled from its deployment environment. In the early days of Spring this enabled developers to write applications that were portable between different servers such as WebSphere or Tomcat, avoiding (and enjoying a superior alternative to) environment-specific APIs such as EJB or JTA. Today the choice between deployment environments encompasses the choice between the traditional data center and the cloud. Spring portability is becoming the most important enabler for Java developers to move toward cloud computing.

Today, Spring portability is key to realizing our vision for an Open PaaS: As described by VMware CTO, Steve Herrod, “focusing on a particularly important choice… where you deploy and run your applications.” It’s exciting to see VMware embrace the core values to which Spring owes its success. It’s also pleasing to see Google share this commitment to portability.

Technology Overview

I’ve mentioned the role of Spring Roo and STS. Other key technical elements include GWT and SpringSource and Google performance analysis tools. Shortly our engineers involved in this work will cover the specifics in far more technical detail—and the new Roo 1.1.0.M1 and STS 2.3.3.M1 release will allow you to explore for yourself—but here’s a quick guide of what to expect.

GWT

Google Web Toolkit is a powerful technology for developing rich internet applications, using modern technologies such as AJAX and HTML5 to create the most compelling end user experience on computers and non-traditional clients such as smart phones. As UI requirements change and non-traditional clients become more and more important, GWT is set to become increasingly important to Java developers.

Today we showcase deep integration between Spring, Spring Roo and GWT—the culmination of several months of collaboration between SpringSource and Google engineers, and answering one of the most frequent requests from the Spring community. This integration makes GWT applications far easier than ever to develop, and gives Spring developers a compelling new UI choice. GWT is open source and independent of deployment environment, so this integration will benefit all Spring users, regardless of whether they intend to target their applications to Google App Engine. With its knowledge of the domain model, Spring Roo is a match made in heaven for GWT. With today’s integration Spring Roo can generate and round trip GWT interfaces, making developers far more productive throughout the application lifecycle; and support easy deployment to App Engine from within the Roo shell.

We’ve also added easy installation of Google Plugins for Eclipse (GPE) through the STS Extension Install mechanism. GPE supports tools for GWT incl. DevMode and deployment to App Engine.

Spring Insight/Google Speed Tracer

Spring Insight is a technology that gives developers insight into the performance of their applications without the need to write any special code or set up any configuration. Insight uses efficient AspectJ instrumentation and its knowledge of the Spring Framework (and hence, ability to make sense of application structure) to display detailed information about application performance, including what time is spent where. Insight is available in SpringSource tc Server. (tc Server Developer Edition is free, and is included with STS.

Google Speed Tracer is available as a Chrome extension that shows where time is being spent in your application. This includes problems caused by JavaScript parsing and execution, layout, CSS rendering, DOM event handling, resource loading etc.

Today we’re showing an integration between the two technologies. This enables Speed Tracer users to see Insight traces seamlessly inserted into their Speed Tracer screens, and drill down to specific server-side operations such as JDBC queries. The combination of Speed Tracer and Insight is unprecedented, and powerful. 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 .

What It All Means

What a difference a few weeks makes! Until the announcement of VMforce and today’s announcement, Java developers lacked a PaaS destination to which they could easily deploy their applications. This was an important gap that threatened to become a danger to the long-term future of Java. I’m delighted that VMware/SpringSource is leading the charge to fill this gap.

Today’s announcement is great news for Spring developers. Spring skills have never been more valuable; the reach of the Spring ecosystem continues to grow; Spring’s core values continue to guide its evolution; and Spring is placed to grow the Java community and lead its charge into cloud computing. Whether you want to deploy Java applications in an existing data center, private Java cloud or public cloud, Spring is the best programming model. I’m excited, and hope you are, too.

Similar Posts

Share this Post
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • DZone
  • LinkedIn
  • Slashdot
  • Technorati
  • Twitter
 

26 responses


  1. What will happen to groovy and grails development?


  2. @Carlos

    Groovy and Grails are great technologies. Spring Roo is targeted at developers who want to code in Java; Grails is targeted at those who prefer a dynamic language. We believe both audiences are very large, and both deserve the best productivity we can bring to them.

    We are more committed to Grails than ever–in fact we've significantly increased the size of the Grails team in the last few months.

    Rgds
    Rod


  3. nice to hear that

    thanks for your response


  4. This sounds amazing, could you be a little more concrete?

    We are running our startup off the incredibly underrated Spring Cloud Foundry service, deploying our Spring app to the TCServer MySQL distribution.

    How far away are we from being able to deploy and run the same app on Google App Engine? The existing GAE/J service completely stinks (and doesn't work with much of Spring), and the new roadmap Google posted today says they won't even be offering a relational database before 3rd quarter.


  5. I have an issue while trying the Roo GWT "hello" example

    java.lang.NoClassDefFoundError: and
    Caused by: java.lang.ClassNotFoundException: and
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    Exception in thread "main"


  6. Fred, would you mind posting your queries at http://forum.springsource.org/forumdisplay.php?f=67 and we'll be happy to help you in details.


  7. @Corby: do you have any reference url Google saying they are offering a relational database after Q3


  8. Marcel, you can check the Google App Engine for Business roadmap at http://code.google.com/appengine/business/

    Hope that helps.

    Christian


  9. I have reviewed all of the announcements, and I am still unclear how GAE/Java, GAE/Business, and GAE/VMWare are related.

    The VMWare announcement suggests that we will be able to deploy fully functional Spring applications into the GAE environment, like we can with EC2. Is that true? Because that is certainly not the case now.


  10. This is excellent news, I knew that there was some deep cooking going on with GWT(reading from JIRA) but didn't realize how involved Google was till now.

    This kind of exposure is good for the ROO eco-system. I think it would be equally helpful to introduce ROO to a younger audience (college students) at an early stage.Right now people who know about Spring and enterprise java development would eventually come across ROO, but still there is a large crowd which is immersed into comparable technologies (PHP, Rails) because of the way the whole eco-system is structured.I think exposing new programmers to options like Roo will help the cause of simplified JavaEE development as most of the ones I talk to simply reject the idea based on their impression that it's too hard.

    I am not entirely sure what the correct approach would be to make ROO hip amongst the post Web 2.0 programmers.One suggestion is if SpringSource adopted an approach similar to http://osum.sun.com/ (if only to appoint college reps/volunteers)

    There are still some important things which ROO needs to do in my opinion. It needs infrastructure for community based plug-ins (like grails). Some place where (third-party) applications are showcased (perhaps some thing which can list roo based/adapted apps from app-exchange, app-engine for enterprise). And last but not least it needs more documentation, blog entries etc (perhaps a book or two..one of those Pragmatic Programmer ones), some thing which comes with time.

    //Hatim aka @geoaxis (irc.freenode.net #sprng)(twitter)


  11. Hatim, thanks for your thoughts. We are actively working on making it easier for community-based add-ons. The new OSGi system I mentioned in my blog post at http://blog.springsource.com/2010/05/19/spring-roo-1-1-0-m1-released/ underpins improvements scheduled for Roo 1.1.0.M2 that will significantly simplify community add-ons. You can already try a working example of the OSGi OBR building blocks by following the instructions at http://code.google.com/p/spring-roo-equals-roo-addon/wiki/Installation. In Roo 1.1.0.M2 we'll make it even simpler and easier. I think you'll like it and it will be a very compelling way to discover, download and install new add-ons.


  12. This is just great and the pace at which Spring is moving is amazing. Nice to see some front end performance tools getting integrated with STS. This really gives us end to end developer tools to make great apps which can sit over a cloud with ease . . .

    thanks again
    rohit


  13. Finally, this is awesome news. I am wondering how would it be possible to use GWT based higher level frameworks, like Vaadin? I believe, a nice and shiny (easy to use) GUI for ROO would make it pretty attractive for web apps developers.
    The only one thing that worries me is the excessive usage of annotations. It seems like besides XML configurations now there is the overhead of annotation know-how and usage.


  14. @ ShahzadAli Heaven forbid, a developer should still need to know how to program. :-)

    I too would like to see support for Vaadin, as it better supports integration with Flash/Flex applications.


  15. If there's somewhere else I should be posting my question, please let me know. I don't see a GAE-related forum on the boards yet.

    Currently, the white-listed classloader used by GAE/J prevents me from using much of the Spring framework. Is this something that will be addressed as part of the VMWare/Google collaboration?

    Thank you very much for your help.


  16. Are there any plans for GWT support in grails?


  17. @ShahzadAli and @AgileDeveloper, at this time we don't have any plans to develop a Roo Vaadin add-on, although this is something the community might like to do. Philosophically I strongly believe the optimal technical direction for next-generation UIs is to build on HTML5 standards as far as practical, such as client-side app caching with offline access and stateless server interaction models. Technologies like GWT combine a very scalable, highly maintainable Java programming model with the extreme performance optimisations feasible via its static compilation model. As I mentioned in my Roo 1.1.0.M1 release blog post, GWT and Roo have very similar technical philosophies (eg never sacrifice engineering integrity, ensure you can code naturally in Java with all the Java goodness around tooling, and do everything at compile-time to deliver a reliable, incredibly fast runtime) and it's basically a very strong match because of those core philosophical alignments.

    @Corby, we don't have any plans to add a GAE forum to the Spring community forums at this time. Please use the Roo forum in the first instance for now, as we have direct access to both SpringSource and Google engineers to help triage problems correctly.


  18. I was surprised Mr.Paul Maritz appear on the Google I/O stage and VMware/Google alliance, followd by VMware/Salesforce alliance.

    I understand you pursue an Open PaaS strategy, so my question is are those applications portable on between platforms VMforce and Spring on GAE?


  19. @Anand Grails already has GWT 2.0 support via [it's plugin|http://grails.org/plugin/gwt]. Hopefully the plugin will support the GWT data presentation widgets in the not too distant future.


  20. Rod Jhonson, thanks for this amazing framework. I`m glad to be born in this decade hehehehe

    Year after year the software become more wonderful..
    I can hardly wait for the future releases of this tecnologies. Spring, Roo, GWT, and Google Appengine is all what I need, it`s almost perfect.

    Thanks and keep moving on!


  21. [...] Springing Ahead Toward The Open PaaS | SpringSource Team Blog [...]


  22. Your information is helpful for me.Congratulations.


  23. Looks perfect combination of Spring, Roo , GWT. But, is there a way to deploy spring mvc applications on GAE, instead of GWT?

    And also I am looking forward for reference feature for GAE, any EAT?


  24. We're a software team of 10 people, experienced Java developers. We're moving away from our current way of developing web apps (including Spring MVC) towards richer GWT. We're heavily into all things Spring, and now we need to choose between GWT Grails or GWT Roo.
    We've done a few sprints with the GWT Grails combo and while there are issues, it hasn't taken the Java developers a very long time to write decent groovy (while not being yet as expert as in Java).
    One of our developers also looked into GWT Roo and while this is where the thrust seems to be, he concluded it's still early days.

    I know the sales pitch "Spring Roo is targeted at developers who want to code in Java; Grails is targeted at those who prefer a dynamic language." but quite frankly, I'm used to a clearer vision from the core Spring people. If you go opinionated, you can't please everybody.

    In the mean time, we keep on wasting some resources evaluating and monitoring what will be the best choice going forward: GWT Grails or GWT Roo…


  25. Hey Johnson,I'm confused that how an object instance loaded by the other classloader can be accessed without the ClassCastExcepion being thrown except for using reflection?
    It seems that using JndiObjectFactoryBean is a better idea,but I donot understand.
    Can you make me clear?
    Thanks very much


  26. Is vmware trying to steal the name "Open PaaS?"

    Sullivan Software Systems created Open PaaS at least 2 years before vmware's "announcement."

    http://www.openplatformasaservice.com/

23 trackbacks

Leave a Reply