Launching Cloud Foundry, The Industry’s First Open PaaS

Engineering | Rod Johnson | April 12, 2011 | ...

Today, we have exciting news for developers: the launch of Cloud Foundry: an open source “Platform as a Service” (PaaS) from VMware allowing easy deployment of applications written using Spring, Rails and other modern frameworks. Cloud Foundry breaks new ground in PaaS through supporting a choice of programming models; a choice of services from VMware and third parties; a choice of clouds for deployment; and being delivered in open source.

Since the creation of Spring, we’ve remained faithful to a few core values: notably, Productivity and Portability. Today, these proven values extend beyond Spring and Java into VMware’s broader cloud computing strategy. Spring makes developers more productive by reducing time spent away from business logic; Cloud Foundry eliminates time spent installing and configuring infrastructure such as application servers and JVMs. Spring facilitates portability between deployment destinations; Cloud Foundry is both a key deployment destination itself and a layer that…

Cloud Foundry for Spring Developers

Engineering | Mark Fisher | April 12, 2011 | ...

By now, many of you have probably seen the Cloud Foundry webinar and Rod's blog from earlier today. I'd like to provide a quick follow-up that features a "hello-spring" sample application deployed in the cloud. Thanks to Cloud Foundry, there's practically no learning curve at all.

Before we get started, let's consider three goals that have driven Spring from day one:

  1. focus on simplicity and productivity to make developers lives easier
  2. support innovative technologies in a consistent way
  3. ensure portability of applications across deployment environments

Then, consider those same three goals in relation to Cloud Foundry:

  1. Simplicity and Productivity: Deploying a Spring application to the cloud is as simple as dragging and dropping within SpringSource Tool Suite, and even when building an application to run in the cloud, developers can take advantage of the productivity gains enabled by Roo and Grails exactly as they normally would.
  2. Consistent Innovation: Projects like Spring Social and Spring Data embrace innovative technologies such as Twitter and non-relational data stores that are increasingly popular for cloud-based applications, and they do so in ways that are consistent with the existing Spring platform. Cloud Foundry provides services to support such applications. RabbitMQ will be available as a cloud service soon, so the same applies to applications that rely on RabbitMQ for messaging via Spring AMQP and Spring Integration.
  3. Portability: The cloud is first and foremost a new deployment environment, and yet it's easy to create an application that can run in and out of the cloud without even swapping configuration files.

With those goals in mind, we've designed a sample application that provides an introduction to Cloud Foundry for Spring developers. This is the first of many…

Roo + Cloud Foundry = Productivity in the Cloud

Engineering | James Tyrrell | April 12, 2011 | ...

Today marks an important day for developers, with the public beta release of Cloud Foundry, VMware’s open source Platform as a Service offering. Rod Johnson’s blog contains a lot of background details about this exciting announcement, and Mark Fisher’s post offers a first look at the service and how easily applications can move between a local environment and the cloud. As both Rod and Mark highlight today’s announcement is about enhancing and ensuring developer productivity.

In support of this new service and platform we are pleased to announce that we have integrated Cloud Foundry support into Spring Roo - Spring’s rapid application development tool for Java developers. Now you can take Roo’s productivity to the cloud and you don’t even have to leave the shell! There are dozens of commands to make it easy to work with Cloud Foundry, and of course you can build a new application and deploy it to Cloud Foundry in just a few minutes. Once you’ve logged in, it’s as simple as using the new “cloud foundry deploy” command and…

One-step deployment with Grails and Cloud Foundry

Engineering | Peter Ledbrook | April 12, 2011 | ...

A couple of years back, the co-founder of a startup spoke at the London Groovy and Grails User Group. I remember vividly how he said he dreamed of deploying a Grails application with "just one click". With the announcement of the new Cloud Foundry service, his dream is nearly a reality for all Grails users. Now you not only get simple and rapid development with Grails, but also simple and rapid deployment to a cloud hosting provider.

So how do Grails and Cloud Foundry work together? As long time Grails users would expect, we have a plugin for that! To demonstrate how it works I'm going to walk you through deploying a sample application, Pet Clinic, to Cloud Foundry. It's a simple application and you can see it in action on Cloud Foundry

This week in Spring: April 5th, 2011

Engineering | Josh Long | April 06, 2011 | ...

This year is moving along at a very quick clip!

We've already seen a torrent of new and exciting releases for Spring users and just today news of perhaps the most exciting thing yet went out. If you didn't get it because you aren't, for example, a registered SpringSource Tool Suite user, then here are the salient bits:

Next Tuesday - April 12th - VMware is hosting a webinar - "Spring into the cloud!" - with the provocative explanation, "Spring has already simplified enterprise Java development. Next up is cloud development."

The webinar will be presented for both Europe and North America timezones. See this page for details, and don't…

Routing Topologies for Performance and Scalability with RabbitMQ

Engineering | Helena Edelson | April 01, 2011 | ...

Designing a good routing topology for a highly-scalable system can be like mapping a graph. Many things need to be considered, for instance the problem, constraints of the environment, those of the messaging implementation, and performance strategies. What we often run up against is a lack of flexibility and expressivity in fitting routing to our needs. Here is where RabbitMQ stands out.

Basic Concepts

Anyone familiar with messaging in general knows the concept of routing messages from A to B. Routing can be simplistic or quite complex, and when designing a routing topology for a scalable, complex system it must be elegant. Kept clean and decoupled, components can throttle nicely with varying loads. This can be expressed as a simple map or complex graph. In its simplest form a routing topology can be expressed as nodes, for instance hierarchical nodes:

Hierarchical nodes in message routing topology

For those new to RabbitMQ or AMQP (note that Rabbit works with many protocols including STOMP, HTTP, HTTPS, XMPP, and SMTP), here are some basic component descriptions:
  • Exchange The entity within the server which receives messages from producer applications and optionally routes these to message queues within the server
  • Exchange type The algorithm and implementation of a particular model of exchange. In contrast to the "exchange instance", which is the entity that receives and routes messages within the server
  • Message queue A named entity that holds messages and forwards them to consumer applications
  • Binding An entity that creates a relationship between a message queue and an exchange
  • Routing key A virtual address that an exchange may use to decide how to route a specific message
For point-to-point routing, the routing key is usually the name of a message queue. For topic pub-sub routing the routing key is usually hierarchical in nature:

api.agents.agent-{id}.operations.{operationName}

In more complex cases the routing key may be combined with routing on message header fields and/or its content. An exchange examines a message's properties, header fields, body content, and possibly data from other sources, then decides how to route the message. A binding pattern derived from the above routing key idea might look like api.agents..operations. where we bind exchange E1 to queue Q1 with binding pattern api.agents..operations. so that any messages sent to E1 route to Q1

This week in Spring: March 29th, 2011

Engineering | Josh Long | March 30, 2011 | ...

Well, that was a good week! Lots of good stuff coming out of both the community and of course out of SpringSource itself.

This week reminded I was reminded that the Spring framework usually has something that could go a long way in simplifying or alleviating a challenge at hand if you just know where to look. Often, I'll check the SpringSource Forums, the JIRA instance, and - if I'm sufficiently convinced it's not already resolved or accounted for in the forums or in JIRA - in the StackOverflow category for Spring. SpringSource engineers try to monitor both the forums and - less ocassionally - the StackOverflow forums, as well. Additionally, I like to learn as I go - it's a "cinch by the inch, hard by the…

Early Access: SpringSource Tool Suite for Eclipse Indigo (3.7)

Engineering | Martin Lippert | March 25, 2011 | ...

The Eclipse Indigo (3.7) M6a packages are available for download from Eclipse since a few days, so its time for us to allow you to use the SpringSource Tool Suite (STS) on top of that milestone version. :-)

Its just an early access version of STS, but we managed to get all the pieces together for Eclipse 3.7: An AJDT version for Eclipse 3.7, a Groovy-Eclipse version that runs of 3.7 and the SpringSource Tool Suite itself, of course, containing Spring IDE, Grails tooling and all the other nice features you know from STS - all now also running on top of the latest Eclipse Indigo milestones.

How to install

The necessary dependencies for STS are all available from the composite update site: http://dist.springsource.com/snapshot/TOOLS/composite/e3.7, if you wanna add something manually.

We also included the installation instructions for 3.7 in the "Installing from the Nightly Snapshot Update Site" section of the installation instructions for STS

This week in Spring: March 22nd, 2011

Engineering | Josh Long | March 23, 2011 | ...

Another great week - lots of new (and novel!) types of content and indeed, new sources of new content, too! Enjoy!

  1. SpringSource unveiled the new SpringSource YouTube channel. This channel features exciting technical content on the SpringSource technologies, and should be your first destination for new content and for content that you might've missed the first time around. Check it out today! Personally, I find that this channel is fantastic on a big screen TV that supports a browser or YouTube (Google TV/Apple TV/slingbox/etc.) or on a peripheral screen - like a second laptop or second monitor. You can also listen to it on a portable device like an iPhone in the car, on the commute.
  2. ...Speaking of the YouTube channel, the content and slides of last week's webinar - Getting Started with Spring and STS - is available for those that missed it. Juergen Hoeller, lead of the Spring framework, introduced the exciting next generation (3.1) of the Spring framework a few weeks ago in a live webinar, which is also available on the SpringSource YouTube channel!
  3. Martin Lippert has announced the latest release of the SpringSource Tool Suite, version 2.6.0. The new release is packed with new features, and tracks the latest versions of various projects (Spring Roo 1.1..2, Eclipse Helios SR2, Groovy 1.7.8, Grails 1.3.7). It included updated support and performance for both Spring Roo and Groovy on Grails, a graphical editor for Spring Web Flow, and new support for content assist, quick fixes and refactorings for Spring annotations (@Autowired, @Qualifier, @RequestMapping, etc.).
  4. Ramnivas Laddad pointed This Week in Spring to this very innovative Chrome browser plugin. To use it, type "spring" in the omnibox bar (the search/address bar) followed by a space, and then the nane of the class that you are searching for. It'll automatically bring up candidate results linked to the documentation! Fantastic, and handy! (NB: we tested this with the just-released Chrome 10, though it no doubt works with at least Chrome 9.)

  5. InfoQ has the video of Mark Pollack's and Chris Richardson's amazing introduction to Spring Data from the SpringOne2GX event last year in Chicago. Spring Data is a great way to take advantage of these new, powerful datastore options (sometimes called "NoSQL" stores) in a way that's familiar, and idiomatic for Spring users. Check it out!
  6. The latest release of the Spring Data project featuring support for Neo4j has been released. The new version includes many new features and tracks the latest version of Neo4j, itself. Neo4j is one of the many new specialized datastores available to developers today. Neo4j models data as relationships and nodes. It's optimized for fast node traversal, as in a Facebook friend-graph, for example.
    Additionally, SpringSource is producing a webinar on Spring Data (and specifically, the Spring Data Graph subprojct encompassing the Neo4j support) on April 20th. The presentation will be presented for both North America and for Europe. Register now!
  7. The Spring framework helps you build the best applications. Spring Social builds on that promise and lets you integrate your application with your users. The JTeam group is at it again, this time with an interesting updated look at Spring Social complete with source code and a sample application. Check it out!
  8. Spring MVC provides support for many different types of views, including RESTful payloads, Velocity templates, JSPs, and Tiles-based views. This blog post explains how to integrate Spring MVC with Tiles
  9. Ken Rimple from Chariot Solutions has recorded a screencast on the newest member of the SpringSource family, Wavemaker.
  10. More people are using the Spring framework now than ever before, and a consequence of that that growth is newer, specialized support for Spring in various tools. One UML toolmaker - Architexa - talks about their enhanced support for the Spring framework in their Eclipse-based product. Check out this blog for more.
  11. Ashish Jain provides an interesting perspective on Spring 3.1's new caching support.

    Ashish's chosen to simplify his software stack (by removing Hibernate, and instead using straight JDBC through the Spring framework's JdbcTemplate, a…

This week in Spring: March 15th, 2011

Engineering | Adam Fitzgerald | March 16, 2011 | ...

Another great week for good, deep content. Most of the items on the list this week are best enjoyed with a nice cup of coffee and a nice, comfy chair. :-) Enjoy!

  1. SpringSource will be presenting a free webinar - Getting Started with Spring and SpringSource Tool Suite - this Thursday. The presentation will give experienced folks a look at some of the new methodologies, and will give newcomers to the technology a chance to get started with it and move quickly into productive application development. Additionally, attendees will have a chance to ask questions of the presenter and panelists. The webinar will be presented twice, once for Europe, and once for North America. I hope to see you there!
  2. Spring MVC lead Keith Donald's video introducing Spring MVC 3 from SpringOne2GX is up on InfoQ.com. Great video with lots of information in just 90 short minutes. Check it out!
  3. Craig Walls posts this week on Extending Spring Social's Service Provider Framework, this time introducing an example integration with the Netflix API. Very informative post, and inspiring - I couldn't help but have exciting ideas for applications pop into my head when I was reading it.
    </li>
    
  4. This VMware whitepaper provides a pretty good look at the migrating from a Java EE application server to the leaner, more powerful SpringSource tcServer. It makes for some fascinating reading - and highlights some very interesting information. Check it out!
  5. 	<li>The whitepaper exploring a migration from a Java EE application to tcServer has a companion <a href="http://java.sys-con.com/node/1750240">in this VMware</a> whitepaper,  that talks about the migration from Tomcat to tcServer. Pretty exciting!
    
  6. This blog post introduces high thoroughput, asynchronous Servlet 3.0 applications. The post is useful for people using Tomcat or tcServer, particularly, because they represent the largest Servlet 3.0-compatible install base, by far.

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all