For quiet sometime now and I have been thinking of a new application framework. It's an application that I had in mind for quite sometime now. And it's the same application that my managers have in mind.
It's a big application that we are thinking of.
But I wanted to do it differently this time. Different than my managers think of it.
I did not want to have it as an application that is Struts , JSF or any known or unknown framework. I just wanted to make things different.
Yet, I do not like to create our own framework (like we did in one of our projects in the company).
The learning curve for internal frameworks are very high (usually) and the cost of having new members into the team is all the way up to the top of the curve.
So, the solution for such a big product, in my opinion, is to have it as simple as possible with one role:
"Stick to standards"
In this case, what ever project\product you have, you will always have only the cost of business related learning curve (if you have any).
Well, to solve this, in my opinion and according to the so much little I know about the standards out there, I only found Eclipse as a very good to what I had in mind.
1- 100% standard application.
2- Modular: very easy to run\remove plug-ins. Just drop the required JAR file in a specific folder, and restart Eclipse. WALLA.. It's working. The plug-in is loaded.
Well, for quiet sometime now, I was wondering how is it done.
I think today I got the answer, OSGi. I am not sure if I am correct or not, but at least that's what I think. If not, then what ever it was, I do not mind. But I will take the OSGi way.
Yes, that's it. That's how I will do my next application. OSGi bundles that are bundled according to the business units we have in the application. The more business units you would like to have, the more OSGi bundles you would create.
This way, you would very easily have the same application running with different functionalities according to the deployed bundles.
And still, you would have it according to the standards.
So, the learning curve is not that high. At least that's what I think.
I know that I am not the only one who thought of it this way.. :)
OSGi is there already. Eclipse is there already.. etc.
But the type of application I am talking about to be based on OSGi, that would be new thing.
Well, enough talking and back to work, may be I can convince my managers of having the new application the way I think, instead of the way they think.
And that would be the day.. ;)