Monday, November 12, 2012
MODULAR ARCHITECTURE TODAY
In this presentation Kirk Knoernsschild talked about the importance of developing modular software. Besides reusability one of the main benefits he emphasized was the maintainability of the code. Just ask yourself how much time you spend on just trying to understand existing old code (sometimes your own) prior to fixing or adapting it. Software following the layered (Data Access, Domain, UI) paradigm is not really modular if each layer does not result in a separate jar. You should for instance be able to deploy just the Data Access and Domain layer to be able to do some batch processing for instance that doesn’t require user interaction. Another thing he pointed out was that refactoring existing monolithic systems into a modular system can be painstakingly hard. The fact that the release of Jigsaw has been delayed to 2015 is all the more evidence that this isn’t trivial at all. The best refactoring plan is to start with the layers. After the coffee break he showed how easy it is to deploy modular software in an OSGi container. OSGi is far less intrusive as I thought. It only requires some entries in the manifest file and in the Spring configuration files. All though it was quite impressive how easy it is to redeploy just one jar instead of the whole war, I don’t think OSGi is something we will use in the near future. Modularity on the other hand is really something we should pursue.