avalon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen McConnell <mcconn...@apache.org>
Subject Re: Extensible Lifecycle Requirements
Date Mon, 05 Aug 2002 15:51:59 GMT

Berin Loritsch wrote:

>>From: Stephen McConnell [mailto:mcconnell@apache.org] 
>>Peter Donald wrote:
>>>First lets use some common terminology.
>>>Phoenix uses terminology
>>>* Stage - single interface like LogEnabled, Initializable
>>>* Phase - a set of Stages that are run in succession. ie 
>>"Startup" runs from 
>>>LogEnabled --> Startable
>>Merlin uses the terminology
>>* Phase, a single interfact like Demonstratable, Exploitable, 
>>* Stage, locical step in the handling of a component's 
>>lifecycle, covering
>>  the stages as defined by Fortress:
>>   - CREATE
>>   - ACCESS
>>   - RELEASE
>>   - DESTROY
>Which is 180 degrees from what terminology already existed.

Before making a decision on this I checked through the Fortress 
documentation and javadoc and basically found occurances of phase in one 
place and stage in another when refering to the same subject. 
 Consulting dictionaries on the topic was not a absolute source of 
clarification, however - I settled on "phase" and "stage" on the grounds 
of the following definition from the Merriaum Websters dictionary:


  - a period or step in a progress, activity, or development;
    especially : one of the distinguishable periods of growth and
    development of a plant or animal b : one passing through a
    (specified) stage


  - an individual or subgroup distinguishably different in appearance
    or behavior from the norm of the group to which it belongs

The defintion I used for "stage" focused on the notion of passing though 
a known and specificed point - and in the case of a component, the know 
and specificed things are the notions of creation, access, release, and 
destruction.  It seemed to me that "phase" better describe the notion of 
a supplimentary lifecycle.  The lifecycle belongs within the norm of 
lifecycle concepts, but is different in that it addresses/introduced a 
particular behaviour. In contrast, "stage" addresses a know and specific 
step in the evolution of a component.

What I am saying that a component is evolved though the application of a 
number of "phases" and that a "stage" is the well known component entry 
point for the application of "phase" functionality at that "stage".  In 
particular, a "phase" extension is applied at well know "stages" in the 
process of component deployment.  What differentiates a "stage" from a 
"phase" is that a "stage" is well known - phases can be anything you 
like.  I do think the difference between stage and phase is subtle. 
 However, following discussion with others here - I'm settling on 
"stage" as the well know thing, and "phase" and the differentiatable 
thing.  In this context "stage" fits the existing component semnatic of 
CREATE, ACCESS, RELEASE and DESTROY and "phase" fits the notion of 
something differnent but idetifiable - Exploitable, Demonstratable, 
Persistable, etc.

Cheers, Steve.


Stephen J. McConnell

digital products for a global economy

To unsubscribe, e-mail:   <mailto:avalon-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:avalon-dev-help@jakarta.apache.org>

View raw message