Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what is wrong with the current way of developing/packaing/distributing a (large) java (web) application? [closed]

There are lots of applications are moving towards osgi. And there are lots of material on the internet talk about benefits of using OSGi. But I fail to see the problems the current way of building/distributing a large java web application using non-OSGi(old way). Could someone

  • first outline the non-OSGi and OSGi way of developing,packing,distributing a large java web application.
  • Secondly point out the the problem associated with non-OSGi way?
  • Thirdly, how moving to OSGi would solve these problems. Maybe also give concrete examples and reference resources.
like image 250
Michael Z Avatar asked Aug 31 '11 11:08

Michael Z


People also ask

What are the drawbacks of monolithic architecture?

Drawbacks of Monolithic ArchitectureThis simple approach has a limitation in size and complexity. Application is too large and complex to fully understand and made changes fast and correctly. The size of the application can slow down the start-up time. You must redeploy the entire application on each update.


1 Answers

The "current" way is WAR files, which are share-nothing. If you have three web applications and they all use commons-lang, you have to deploy three copies of the same jar file (you might be right in that this is not a real problem for most people).

In addition to that, OSGi deploys bundles, not applications. This allows individual pieces of the application to be upgraded or activated at run-time. Not sure if that is important for many people, though. In fact, the missing "application granularity" leads to a great number of "movable parts" being visible in the form of all the bundles that make up an application. That confuses deployment people. OSGi is working on fixing that.

Finally, in OSGi the "container" functionality is also often part of the "application's" set of bundles (as opposed to a black box like JBoss that is clearly separate from application code). Bring your own container in a way. Very flexible, but again confusing for deployment people.

like image 123
Thilo Avatar answered Oct 04 '22 20:10

Thilo