Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to share business logic among multiple applications
    primarykey
    data
    text
    <p>We have to develop and maintain many Java web based applications (for the same company) of different sizes, scopes and life-spans. Some of them are huge and other ones are just simple pages that may live only a few months (or days), some are already implemented and need refactoring. </p> <p>There have one thing in common though, they need access to (almost) the same information.</p> <p><strong>Problem</strong></p> <p>Due to the complexity of the data the company handles, we have to deal with many different sources, some of them inherited from the ancient times. Our domain objects may be mapped across many of those sources. As an example, a Contract domain object is mapped to our main database but its related (physical) files are stored in a document server, and the activity related to it is stored in a NoSQL database. Therefore, adding, removing, searching any of these objects involves many internal operations.</p> <p>Our data sources are (although it could be any):</p> <ul> <li>AS400 (using DB2 as a database)</li> <li>Documentum document manager</li> <li>Mongo DB</li> <li>External web services</li> <li>Other legacy sources</li> </ul> <p>We normally use Glassfish as the application server and maven as our build tool.</p> <p><strong>Goal</strong> </p> <p>Our goal is to create a business layer or library that all of our applications can access and it is:</p> <ul> <li>Compact</li> <li>Consistant</li> <li>Easy to use</li> <li>Easy to maintain</li> <li>Accessible from many different clients</li> </ul> <p><strong>What we have found so far</strong></p> <p>We have been struggling for weeks and still we cannot find anything fully satisfactory. Some solutions:</p> <ul> <li><p>Pack all the business logic in one or more jars: Very easy to share, but all the applications will have to contain all the jar dependencies and configuration files and take care of security, caching and other stuff. Difficult to maintain (we have to update the jars for every project when there are changes).</p></li> <li><p>Create an Ejb project containing all the logic and access it remotely: Easy to maintain, security, caching and configuration only implemented once. We are afraid of the penalty of the remote calls. As we have noticed in our research, it seems to be a bad practice (we don't have much experience with ejbs).</p></li> <li><p>Create an Ear project with everything inside and use local access: Well, this is faster than the remote version but it is a hell to maintain.</p></li> <li><p>Go for OSGI: We are a bit afraid of this one since it is not as popular as Ejb and we have never used it seriously.</p></li> </ul> <p>Is there a common practice for this kind of problem?</p> <p>Many thanks!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload