Jan 15

I fully agree with Rockford Lhokta when says in his Appliaction Architecture Guide 2.0 post :

Architecture, in my view, is primarily about restricting options.

Or to put it another way, it is about making a set of high level, often difficult, choices up front. The result of those choices is to restrict the options available for the design and construction of a system, because the choices place a set of constraints and restrictions around what is allowed.

Nov 11

G2One is the software company delivering open source projects Grails and Groovy. This company is made of 6 java experts. YOçu can find all the details in this article.

SpringSource expect to integrate Grails in dm server, the OSGi paltform.

Ruby on Rails has now a serioous competitor.

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.

Apr 15

Following spirit of Jeff Artwood’s post on development fallacies, here are some fallacies around RIA.

Responsiveness
Even if I agree on the fact that one of the main goal for RIA is to provide more responsiveness, this not always the unique path to achieve it. Ajax is the best example to demonstrate that: asynchronous requests provide a lot in the user experience perception for responsiveness.

MDI like support
MDI has been invented (I may be wrong) by Microsoft with its SDI vs. MDI environments. This is basically single vs. multiple document edition. In fact, IMHO, this concept is simply obsolete. First, in general, applications are not more only data access, but also include some processes. Process are even more common than data access, at least through navigation (yes, you could argue that navigation is not really a process). As a very large number of the applications are now available through a web interface, the hyperlinks just made the SDI vs MDI paradigm obsolete. The web app software developers knows about the hell of the back button and “open in new window”. RIA is not the right answer to this…or at least using RIA to solve these problems and implement an MDI interface is simply a mistake. Now, most of the web framework provides solution to these 2 problems (like jBoss seam, and other ajax frameworks).

Sexy interface
Yes, Silver Light or Flew provide support to write sexy interfaces. BTW, I think that a dev team with a talent Web Designer could do better job than some other teams using Flex or Silver Light. this is just a question of tools and requirement. Depending on your requirements, the application may not need the very advanced features of Flex (I will not repeat Silver Light all the time :-) ).

I’m not against at all RIA frameworks, just use them appropriately and be aware of your choice.
The main concern I have is on the language behind frameworks. I remember VP R&D saying (5 years ago) “language does not matter”. If they mean that a good developer should be good at any language…I agree. But if this is in the perspective of building software…I disagree. Your building software for years, you will have to support what you write and make the code evolve. The technologies are evolving a lot, the framework too…what’s remain is the language. Building your entire application in ActionScript is a choice that will prevent you moving to another framework. I prefer build the application on top of Java of C#, and build the presentation layer on top of Flex …but only the presentation layer.

RIA is definitely required and a strong suupport for lot of applications, but if applciations that already have a web interface…be aware of your choices.