On 7/27/07, Mike Edwards <[EMAIL PROTECTED]> wrote: > > Simon Laws wrote: > > In the distributed domain contributions and any updates have to be > > provisioned to each node. There are many ways of doing this, ftp, http, > > shred file system , etc. to the extent that Tuscany shouldn't really > care > > too much about how it is achieved. I would expect that at any give time > a > > domain at a node can be notified of its configuration given the URL(s) > of > > where to find its up to date contributions. For example, in the stand > alone > > case this could just resolve to the contributions in "file:///path to > > sca-cntributions dir". > > > > However I'm a little unclear how to deal with configuration updates. > There > > have been a number of posts recently about incremental updates to > domains > > [1] and [2]. I can see that contributions can be added and removed but > the > > implication of the discussion in [1] and the assembly spec (1.10.4.1) > > implies that contributions can also be updated. Is there code to support > > this in place already? I'm assuming the current approach is to drop the > > current contribution and load the updated version rather than deal with > > deltas. > > > > Simon > > > > [1] http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg19979.html > > [2] http://issues.apache.org/jira/browse/TUSCANY-1379 > > > Simon, > > I think it will pay to do a bit more thinking about all this. There are > going to be a range of different configurations to support, and so > thinking through the structure of the runtime nodes and how they > interact with the contributions in the Domain will pay off over time. > > I think there is going to be too much to contain in one email, but I'll > start here. I think capturing the concepts on Wiki pages will pay off > in the long run, since I think that sorting through a load of emails to > find them will get hard. > > So, if you are all seated comfortably, let us begin.... > (Brits of a certain age will understand where that phrase comes from...) > > We have the SCA Domain. This contains the configuration data, held as a > series of one or more contributions. On a single node runtime, the way > in which the Domain is held can be very simple indeed. Files on disk in > one or more directories will do fine. > > Once we get a distributed runtime, things rapidly get more complex. The > one obvious thing is that it is almost inevitable that each runtime node > will need access to parts of the SCA Domain configuration that they > don't "own" - eg to make a wire from a component that one node runs to a > component running on another node. > > How the SCA Domain is done for a distributed runtime is also variable - > it could be done in a number of ways. The trick is to provide > interfaces between the runtime node code and the "repository" that allow > for alternative implementations. This must include both the initial > configuration when the runtime node(s) start up and also what happens > when the Domain configuration changes. > > I think that we must design interfaces that separate the organization of > the SCA Domain repository from the runtime code. These interfaces are > going to have to be two-way, in the sense that there is going to be both > pull and push aspects to them. ie A node can go pull configuration > information from the Domain, or it can have configuration thrown at it - > either as updates or by some provisioning manager that is tossing out > work to do. > > Service interfaces seem like the right kind of things to do under the > covers inside the implementation of the Domain repository. Nodes in > principle need to talk with each other. We need to think through which > interfaces are needed first and then decide how they are dealt with in > terms of concrete service interfaces. > > > Yours, Mike. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED]
+1 mike that we start to work with interfaces. I've checked in some starters for 10 (sorry another uk reference) [1] and, if you don't like the code version, I've started doing some updates to the wiki page that has been a round for a while on this subject [2]. I'm happy to accept that we will have differing views on how these interfaces should look but if we can iterate here to some common understanding that would be great. Simon [1] http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/distributed/src/main/java/org/apache/tuscany/sca/distributed/management/ [2] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Distributed+Runtime