The following commits got my attentions:

http://svn.apache.org/viewvc?rev=779058&view=rev
http://svn.apache.org/viewvc?rev=779059&view=rev

I think the consensus is to keep the workspace/workspace-impl to deal with a collection of contributions. As we rebuild the domain story, there modules are still needed.

Thanks,
Raymond
--------------------------------------------------
From: "Raymond Feng" <[email protected]>
Sent: Friday, May 08, 2009 10:19 AM
To: <[email protected]>
Subject: Re: Node usage of the workspace and implementation-node modules

+1 on the summary from Simon.

Thanks,
Raymond
--------------------------------------------------
From: "Simon Laws" <[email protected]>
Sent: Friday, May 08, 2009 1:23 AM
To: <[email protected]>
Subject: Re: Node usage of the workspace and implementation-node modules

On Fri, May 8, 2009 at 8:02 AM, Mike Edwards
<[email protected]> wrote:
Raymond Feng wrote:

Hi,

The workspace and workspace-impl modules were introduced to model a
collection of contributions that are added to an SCA domain. Basically,
Tuscany allows
you to provide a "workspace.xml" to pre-define a list of contributions for an SCA domain. And the workspace model provides the "install contribution" and "uninstall contribution" services for the SCA domain. It functions as
the "contribution service".

Furthermore, the "workspace" becomes a special archive of artifacts that are SCA contributions. Now the SCA contribution is just an artifact that is
identified by the contribution URI and can be loaded by the URL. The
ContributionContentProcessor from workspace-impl is a URLArtifactProcessor that uses the ContributionScannerExtensionPoint to parse contributions in
different packaging schemes such as Folder, JAR, or ZIP.

The other player in the SCA domain management is the Node. Node is a
configuration of a runtime (like a "SCA virtual machine") that is capable of running an SCA composite application. The Node configuration includes the base URI for protocols supported by a given SCA binding. It also defines a
list of contributions and a deployable composite that make up the SCA
composite application. At this moment, the node is modeled as
"implementation.node" (see [3]). It doesn't seem very natural to me. Maybe
we should use a different way, such as "node.xml" and NodeConfiguration
model.

The SCA domain manager is developed as an SCA application. It manages
contributions, composites and nodes in the SCA domain. You can add
contributions to the SCA domain. The SCA domain manager can then load the contributions, find the deployable composites, resolve the dependencies as
well as the wirings. A resolved SCA composite application can then be
deployed to the SCA node. To provide remote access, SCA domain manager uses binding.atom and packages the messages as ATOM feeds. See [1] and [2] for
more details.

I understand we also desire a more dynamic way to constitute an SCA
domain. But conceptually, all the underlying domain level services stay the same. It's a matter of how the Workspace/Contribution/Composite/Node models
are built, statically or dynamically in a centralized or distributed
fashion.

[1]
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Composite+Application+Deployment+with+SCA+Domain
[2]
http://www.ibm.com/developerworks/webservices/library/ws-sca-tuscany/index.html
[3]
https://svn.apache.org/repos/asf/tuscany/java/sca/modules/implementation-node/src/test/resources/org/apache/tuscany/sca/implementation/node/xml/TestNode.composite

Thanks,
Raymond

Raymond,

I am happy with the idea of the workspace as a way of coordinating numbers
of contributions.

The thing that I find VERY odd in the current arrangements is that the
*MAIN* code for reading an individual contribution is in the module
workspace-impl, with some of its interfaces defined in module "workspace".

Meanwhile, there is a module called "contribution" that does not contain the
actual code for processing a contribution, but mostly interfaces used by
processors for things that you might find in a contribution.

I think that this should be reorganized, so that actual contribution
processing code is in "contribution" and that "workspace-impl" has code for
handling workspaces over the top of individual contributions.

Yours,  Mike.


I think I'm agreeing with Mike here.

Contribution* modules - process individual contributions  gets my +1
Workspace* modules - process a collection of contributions  (I would
include in this the cross-contribution dependency building stuff) also
gets my +1

A small adjustment. Not that different from what we have now.

Now, implementation.node. This is not a question of dependency but
function. I don't like that we use implementation.node in the way it
is currently used to represent node default configuration. At best
it's confusing. If the composite that describes a node were describing
the system services exposed by the node then fair game but that is not
the case now. However I fully expect this to be discussed and refined
during the process of implementing OASIS compliant domain function so
don't think we need to come to a conclusion during this more abstract
module dependency/structure discussion. So I suggest we defer this
part for another thread.

my 2c

Simon

Reply via email to