Appropriate level of granularity for an OSGi application
posted 6 years ago
I have a question concerning the structure of an OSGI application.
I'd like to develop a survey tool and I'd like to do it with OSGI. So I have some functionality, that might be used by almost every survey. Think of services like authentication, logging, xls- and PDF-reporting, data retrieval from database, persist surveys, ... These services should not be changed very often. Every survey might consist of an Action Class (using Struts for example), one or two JSPs, one or more domain model classes, maybe one class with business logic, some templates (pdf, xls), and some properties and config files. The surveys do not have dependencies to each other, only to the core functions from above. And in that project we will get about 5 new surveys every month.
So how should that application be structured in bundles and how would the PAR-Structure look like?
Is it better to do some kind of vertical structuring (every survey has its own bundle) or should the bundles be structured by technical layering (domain, service, web). Might it be useful to combine both ways to have the three technical layers as bundles and for every new survey start a new bundle (with action class, JSPs, ...) ? Or should every survey again be split into its three technical layers (domain, service, web)?
Could someone do a brief calculation how many bundles he would have in an application with 10 surveys?
If someone has further recommendations, feedback or experiences to that topic, it would be nice to post them.