Jun 20


SpringSource will release sone (around july) the version 1.0 of its application platform: S2AP. I’m having a look at it, especially from a PaaS point of view. S2AP present lots of interest for different perspective, but PaaS is what I’m currently looking for.

First, S2AP makes a big jump in the notion of application server…it’s not an application server but an application platform which is different and open new horizons. The application servers stand for containing applications. These application can be web app, web services…etc, but they are monolothics. With JMX and ear, you can go further in decoupling by allowing multiple micro appplications to be delivered inside the same enveloppe: the ear. But this is not enough: you still deliver an entire ear, you do not handle multiple versions of the same application, you get worried by transitive depedencies for third parties, communication between ear are remote calls. S2AP takes a real new approach. It provide separation/decoupling and allow integration betweens components without remote call (yes, this can be discussed : RPC and AOP proxy vs web service and remote calls). IMHO, this is why we are talking about application platform and not application server as it provide support for multiple components tightly coupled which are all belonging to the same application.

Various technologies tried to hide (or abstract) the fact a method call was remote or not. this is clearly a mistake. Remote calls are integration points, local calls are not. Integration points are fragility and low performances points. Developers and architects must be aware of all of them to ensure reliability and good performances. More over, developping applications mostly based on remote calls is an error and should raise a red flag. With S2AP we get a new approach which keep capabilities of regular applciation server. From a PaaS point of view, it is a significant technolgy jump (we will see the Microsoft response with Oslo project), and an instance of S2AP will be used to deploy all the applications of the SaaS vendor.

Those who read a previous post on my vision of PaaS, could argue S2AP is far from the Software Factory approach. I agree, but S2AP present at least one interesting characteristic: the hot deployment. This is an essential piece of technology to allow deployment of components. The next step are to better project management and source control management capabilities (a kind of mavenization), and allow deployement from one S2AP to another. This way a developper could have it’s S2AP instance to develop (and test) applicitions, then automatique deployment on the S2AP production system. Of course, this last step requires far more than just a hot deployment capabilities…but at least we have the key technological piece. More over all this inetgrations (SCM, PM, Eclipse, test and deployment) can be developed out of S2AP…I hope a lot of satellite projects will appear in that area.

 To conclude, S2AP is a very interesting opportunity for PaaS as it allows a decoupling and componentization of applciations inside a platform and not inside an ear.