avalon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niclas Hedhman <nic...@hedhman.org>
Subject [RT] Darwinistic COP
Date Sat, 15 Nov 2003 05:00:05 GMT

Hi,
last night I was laying in bed and thinking of your response, and somehow got 
me to draw parallels with other fields of components.

And then I had a "moment", and I can't shake it from my head, it just seems 
"right", but this is highly theoretical and could possibly be completely 
impractical. So....

Background;
1. Stefano maintains that software development has the most parallels with 
Evolution of Species. Where each release is a new species and each configured 
copy is an individual of that species. I am drawing parallels with animal 
kingdom from here on.

2. Phoenix uses named instances, who live a life in the container. Merlin 
recognizes that sometimes we don't care about which instance, any will do (a 
rat is a rat).

3. Leo (his wonderful Jicarilla Wiki pages) says among other things that it is 
wrong to talk about LifeCycle, as in practical circumstance there are only 2 
(birth and death).

4. Some people points out that some components has state (married, injured, 
hungry). Some also points out that the configuration is also a state, initial 
state maybe so, but why couldn't that change over time.


Now, for some reason, it just strike me that the "Container" we know today is 
not fit to be the vehicle of COP !!

Let me follow the Evolution analogy;

We have a "creation" of an individual, from an Egg (DNA information -> code) 
to a living being. At a particular point, that ends and the created 
individual enters the rest of the world. 

What if, component creation (bringing from DNA -> to an individual) is 
actually supposed to happen pre-deployment (birth).
During creation, the creator form the individual's birth state, maybe over a 
long period of time.

My bottom line;

What if the "Component" is an instance created by the developer and not by the 
deployer??

Huhh??

What if the "Component" is a Java instance, that is already "alive" when it is 
downloaded from the repository??

More huhhh??

What I have in mind is that the Component is in fact not a set of class files 
and a bunch of resources at all, but an actual instance of the Service it 
provides. It means that "somehow" the "Component" is created long before any 
"Container" (a small world of life) knows about.
Once the "Component" enter the "Container", it will "negotiate" with its 
surroundings for survival.

And we even have most of this mechanism in place, and in many forms. The 
"Creation Process" (the womb) is a set of tools that takes the class files, 
resource and what not, and output a serialized object, in one of many 
available formats (the format not being relevant).


If we compare the above model with Avalon of today, it seems to me that what 
we have is the "Womb" and "World" bound together. The container is 
responsible for the "creation" (constructor, configure), "birth" 
(contextualize, service, start) and "death" (stop, dispose, finalize).


But the whole "creation" process could be much more "manual" and 
"interactive", in fact, we are trying to build a static model of a manual 
process (people defines the creation into a static model, which the container 
then replicates). When in fact, we could have a 100% interactive process 
where the component is formed, and then that instance is saved for later used 
(or clones of it).


What I see as the really big challange is the "Negotiation with the 
Surroundings". A component can "Look" in the world around itself, and try to 
communicate with other individuals. Just like real life, that could be 
tricky.
But the component should also be allowed to move to other "Realms", to seek 
its fortunes there. I imagine a "Realm" being a neighbourhood that you can 
see you neighbours. And from one Realm you can no of some other Realms, but 
not the individuals over there.


Will this become the next big thing??  -  I don't know.
Can this possibly work at all?  -  I don't know.
Can we make it happen?  -  I don't know.
Is it desirable?  -  I don't know.
Is it worth more thought/research?  -  I think so.


Any comments? 


Niclas


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


Mime
View raw message