
Steve, Here are some thoughts on your comments on the Component Model. 1) Each component object is a new instantiation of a component. Are you asking whether the component model is smart enough to recognize that another instance already exists, and not create a new instance? That seems to me to be a higher level primitive than the component model, but could be handled if necessary. 2) I will try to add language to define that we are deploying anything. The point of the services assumption is that this is Grid Forum, and we are trying to deploy grid services somewhere. 3) Resource responsible vs. hosting. I received feedback on that before. WS-RF and WSDM define logical vs. physical resource in such a way that does not require hosting. 4) All internal use of documents is supposed to be CDL. it is specified that way in the Foundation document and in the CDL language document. There is a uniform resolution process. There is also a means to pass the CDL document to a component. In that way, components don't have to be written to read multiple languages. They are parsed by front-end parsers. 5) The lifecycle diagram does not match yours. You do allow termination from initialized. SmartFrog does not. My presumption has been that you can accept the terminate, and march the commponents through their lifecycle. 6) If the code base of an object is a remote URL, does the component have to load the object itself? Who is going to do the fetch or upload operation? 7) Synchronous vs. asynchronous state transition operations. There will be lots of extra code and failure handling for asynchronous, event driven state transitions. I am fearful of either approach. Synchronous is easier to define :) I will look at the Deployment API and see how it is at odds. 8) I am very confused by your "very, very, very slow" comment. It seems you are agreeing with me, and showing how you handle this case with SmartFrog. is that right? 9) Why shouldn't external components declare dependencies on children of delegates? A delegate is defined to manage the lifecycle of a child component. Thus, a delegate is free to manage that lifecycle in any way it sees fit. If you declare a dependency on the child component, the delegate is no longer free. It must be careful not to violate that dependency. I don't think you can have it both ways. 10) Read-on-run vs. read-on-initialized. My intention with the statement was to remind implementers that resolution is not instantaneous. Thus, if you wait until you need it, your deployment operation may slow down. However, I see your point as well. I will change the language, but add the reminder.