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.

2 comments:

  1. What I took away from this talk is that we should not litter our code with too many interfaces. They're useful at the boundaries of you modules, and not for every implementation class. I'm quite charmed by the idea of OSGI and deploying only what you need. When developing software we should attempt to write our software in a way that we can adapt it without having to changecode all over the place. In my opinion OSGI enables that on t he operational side as well. You can reduce the deployments to the part that actually has changed. In his talk Kirk showed that integrating OSGi is just a matter of configuration...

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete

Note: Only a member of this blog may post a comment.