1 Reply Latest reply on Feb 11, 2006 5:41 AM by js8523

    Seam architecture questions

    echon

      Hi,

      i am currently designing somethink like a portal system (not implicitly JSR168 - it's not a must). After creating some prototypes with different technologies i now finally found seam (long long way ... ).
      I like the way seam handles the lazy loading problem and do without the facade pattern (which is really an antipattern with ejb3 and mostly useless, inefficient, ...).

      In context of very scaleable and modular applications if have some questions about what is possible with seam (or will be possible in near future).

      One requirement of such a system is not to do everything in an ear-archive (because nothing can be appended while runtime). So in one of my prototypes i do without isolation and deployed everything directly. So every module can be redeployed and the core-module gets an event by ContextListener.
      Is it possible to design such a modular behaviour also with seam?
      It is not needed to change Database definition (entitymanager configuration) by deploy/redeploy a module, so the par-archive is untouched.
      I think for seam i would have to deploy/redeploy an addtional ejb3-archive with sessionbeans for every module?
      And how do i have to configure this module to work with seam or the module must be structured to use the same entitybeans like the core-system ("portal")? One requirement is to have no downtime of the portal. For a single module its ok.

      Perhaps someone has a better idea (architecture) for such a system. Any ideas?

      Regards

      Peter



        • 1. Re: Seam architecture questions

          Hi

          I'm no expert but these are my initial thoughts:

          1) For common class loaders across multiple EAR's use a jboss-app.xml file for each ear with the same loader repository name. This will allow all of your EAR's to load the model entity beans.

          <!DOCTYPE jboss-app
           PUBLIC "-//JBoss//DTD J2EE Application 1.4//EN"
           "http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
          <jboss-app>
           <loader-repository>
           sales.millwood.uk.com:loader=sales
           </loader-repository>
          <!--
           <module>
           <service>dvd.beans</service>
           </module>
          -->
          </jboss-app>
          
          2) For multiple parts of a "portal" page, where you can load/unload (deploy/undeploy) parts of the page, you can do this very easily in jboss portal (using a web user interface for managing what is displayed on the portal pages (once the portal is deployed).
          
          Unfortuneatly until Seam 1 one of the most important features of Seam (the Conversation context) will not be available in JSR 168 portals. But this is being resolved currently so if you start development now, then it will become available during your project development lifecycle.
          
          Another thought is whether you can deploy/redeploy wars and ejb3 jar within an ear, without causing all the other modules to be reinitialised.
          
          Hope this helps,
          
          James