You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2002/02/04 11:18:46 UTC

cvs commit: jakarta-avalon-cornerstone/apps/enterprise/orb/src/etc PROPOSAL.TXT

mcconnell    02/02/04 02:18:45

  Modified:    apps/enterprise/orb/src/etc PROPOSAL.TXT
  Log:
  simplification
  
  Revision  Changes    Path
  1.2       +53 -56    jakarta-avalon-cornerstone/apps/enterprise/orb/src/etc/PROPOSAL.TXT
  
  Index: PROPOSAL.TXT
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/orb/src/etc/PROPOSAL.TXT,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PROPOSAL.TXT	2 Feb 2002 18:40:21 -0000	1.1
  +++ PROPOSAL.TXT	4 Feb 2002 10:18:45 -0000	1.2
  @@ -1,56 +1,56 @@
   
  -ORB Component Manager Proposal
  -==============================
  +ORB Component Manager Proposal (1.1)
  +====================================
   
  -The current ORBServer/ORBService implementation under the CVS 
  -is problamatic in that the reference to an ORB by a managed 
  -component can only be referenced by its role.  It is not possible
  -to access a ORB that fulfils a specific swervice project unless
  -the defintion of the ORB is controlled in the ORB configuration 
  -block.  This leads to multiple block defintions and restrinctions
  -concerning the scope of declarations associated to individual ORB
  -instances.
  -
  -An alternative ORB management framework is proposed below.  The 
  -object model is based on a ORBFactory service, exposed by an 
  -ORBService.  The factory service takes confitguration and context
  -information of the priocipal argume t to the creation of a new ORB
  -instance. An implementation of ORBFactory would leverage extensions
  -to the static ORB init method, allow the passing of native 
  -configuration and context information to the ORB singleton 
  -implementation.  The result ORB instance is then in a position to 
  -handle configutration anf contextualization of interceptors based 
  -on the innitalization atrguments.
  +The current ORBServer/ORBService implementation under the CVS is problamatic 
  +in that the reference to an ORB by a managed component can only be referenced 
  +by its role.  It is not possible to access a ORB that fulfils a specific 
  +service profile unless the defintion of the ORB is controlled in the ORB 
  +configuration block.  This leads to multiple block defintions and restrinctions
  +concerning the scope of declarations associated to individual ORB instances.
  +
  +An alternative ORB management framework is proposed below.  The object model 
  +is based on a ORB FactoryService.  The factory service is configured and 
  +contextualized to establish general defaults prior to handling request for 
  +instantialion of new ORB instances. The ORB factory service would leverage a 
  +specilization of java.util.Properties that implements the 
  +org.apache.avalon.context.Context interface (see org.apache.orb.Properties 
  +as an example implementation approach).
  +
  +This approach (a) enables the introduction of hierachical property set, 
  +(b) automatic creation of default properties in the context object 
  +based on the factory configuration, and (c) uses existing ORB interfaces for 
  +initalization. The ORB implementation can test the supplied properties 
  +instance to see if it implements the Context interface.  If so, the ORB 
  +implementation can extract object via keys (such as subsystem configuration 
  +profiles, logging channels for interceptors, etc).
   
  +Approach:
   
  -    1. An application block would be configured as dependent a 
  -       block exposing the an ORBService interface.
  +    1. An application block would be configured as block dependent on
  +       an ORB FactoryService.
   
  -    2. The ORBService interface would provide an ORBFactory
  -       service.
  +    2. On contextualization the application retrieved the FactoryService.
   
       3. The ORBFactory interface would look something like the 
          following:
   
  -         public interface ORBFactory extends Component
  +         public interface FactoryService extends Component
            {
   
              /**
  -            * Creation of a new ORB instance based on a 
  -            * supplied configuration and runtime context.
  -            *
  -            * @param config a <code>Configuration</code> instance
  -            *   describing a static ORB profile.
  -            * @param context the runtime <code>Context</code>.
  -            * @return ORB an object request broker
  +            * Returns a ORB based on the supplied context.
  +            * @return ORB a portable CORBA Object Request Broker (ORB)
               */
  -            ORB createORB( Configuration config, Context context );
  +            public ORB createORB( java.util.Properties properties );
   
            }
   
  -    4. The implementation of createORB is basically a wrapper on 
  -       the variant of the static ORB.init method that would take 
  -       a configuration and context argument directly.
  +    4. The implementation of createORB hanles the invocation against 
  +       the static ORB.init method, sumplimenting the supplied properties 
  +       argument with the FactoryService context and configuration 
  +       information.
  +
   
        ------------------------------------------------|
        | Phoenix or embedded-bootstap-kernel           |
  @@ -62,26 +62,21 @@
               | handles component lifecycle
               | processing (setting log channel, configuring
               | contextualizing, initializing, etc)
  -            V
  -     ---------------
  -     | ORBService  |
  -     ---------------
               |
  -            | Is a component manager that provides an 
  -            | ORB factory service to the components it manages
               |
  -            |    The ORBFactory implmenetation
  -            |    leverages a variant of the static ORB.init 
  -            |    operation that handles configuration and 
  -            |    context information directly.
  +            |    The FactoryService implmenetation creates 
  +            |    a new org.apache.orb.Properties argument
  +            |    that includes supplimentary information that 
  +            |    can be leveraged by the ORB during sub-system 
  +            |    initalization.
               V
  -     ---------------     --------------------------------------
  -     | ORBFactory  |<--->| static ORB,init( Config, Context ) |
  -     ---------------     --------------------------------------
  +     -------------------     ------------------------------------
  +     | FactoryService  |<--->| static ORB,init( args, props )   |
  +     -------------------     ------------------------------------
               |                 |
               | provides        | enables logging, configures and contextualizes
  -            | ORB instance    | the internal components it needs tyo build the 
  -            |                 | ORB instance
  +            | ORB instance    | the internal components based on data extracted 
  +            |                 | from the props instance (via Context interface)
               V *               |        
        ---------------          |      * -----------------
        |     ORB     |          |------->| Interceptor   |
  @@ -101,8 +96,10 @@
      request
   4. Is totaly in synchronization with (future) internal ORB 
      logging nad configuraition approach
  -5. Non-OMG operations leverage Apache Avalon fromaework 
  -   interface.
  -6. In principal the manager could work with other vendor
  -   ORBs (not an immediate priority).
   
  +Doc History:
  +------------
  +
  +04-FEB-02 - Simplifed the model by introduction of a speciliaztion 
  +of java.util.Properties that implements the Context interface for 
  +the purpose of supply extended ORB initalization arguments.
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>