On 8/29/06, Oisin Hurley <[EMAIL PROTECTED]> wrote:

Simon - apologies I've been away from this for the last week...

[deletia]
>> ...and this is why :)  There are number of responsibilities of an
>> extension - which you accurately describe - and there are a number
>> of responsibilities of a plugin, related to configuration and
>> lifecycle
>> and I think it would be a Good Thing to keep them as separate
>> development
>> efforts. What do you think?
>
> Do you mean that a plugin may have responsibilities that are a sub-
> set or
> super-set of those of a particular extension?

Actually I see that the plugins responsibilities are a disjoint set -
meaning that the plugins are unconscious of the value of their content
and are used only as a way to bang a bunch of libraries together in
a predictable manner and correctly initialize/deinitialize them.



Ah, OK, I see. I was getting a little confused  because Pete has being
doing  work on  refactoring the C++ implementation to separate core function
from extensions from bindings. I had assumed (wrongly in the first instance)
some overlap between that activity and this conversation. What you are
advocating a more wide ranging approach review of C++ SCA deployment.

We could probably have the same conversation re. deploying
> components and
> composites into the C++ SCA infrastructure as opposed to deploying
> parts of
> the C++ SCA infrastructure.

+1

> Maybe we need to be a bit more explicit about what we anticipate
> being in a
> plugin. For examle,
>
> 0..n Component type container implementations
> 0..n Binding implementations
> 0..n Host adapters
> [0..n Components
> 0..n Composite(s) should these be included as well? Seems unlikely
> that you
> want to deply at the same time but you will want to deploy at some
> time.]

So there's two roads - one where one must be explicit about the content
of the plugin in terms of architectural artifacts, this is the manifest
style approach, and the other, where the plugin initialization code does
the necessary registrations of architectural artifacts. These are not
necessarily incompatible approaches either.



OK, from above, with this list I was trying elicit that you thought a plugin
was rather than necessarily manadate a plugin. Having said that, in the
context of SCA we can expect a finite set of things in plugins, assuming
that a component implementation is just classed as a component,  and the
list above still stands I think. What you are saying is that you envisage a
deployment approach where the plugin may have one or more of these types of
things as required to add some funtion or application to the runtime.

Can we use exsiting technology for some of this, for example, there
> has been
> much discussion of OSGi on the java list, is OSGi wider that just
> Java now?

AFAIK OSGi is still Java only and a Google search didn't turn up much
that
was useful. In terms of existing technology, I'm not familiar with any
technologies along this line that are open. That being said, a C++
version
of OSGi would be a beautiful thing :)


Your right, Google doesn't turn up anything. I'm sure I read some mail on a
mail list about it but there you go I must be dreaming.


My gut feeling is that plugin/extension should be decoupled, but the
only
strong point I can see for it in the current architecture is the fact
that
databindings are not explicit as an extension - there is scope for
say an
interface.mumble that has databindings of say XMLBeans or JiBX. If the
databinding can be an extension in its own right, then maybe the
simplifying
assumption of plugin == extension may be the way to go. From the
point of
view of deployment, there may be a greater need for a non-extension
plugin
to package application code to be 'deployed'. Maybe we should have that
conversation about deployment now?

  cheers
   --oh


Sebastien has used Pete's extension framewok to refactor the bindings. It's
a good question you raise though about data bindings. The only options
currently are SDO and native and assumtions are made depending on what
interfaces/bindings you choose. More though required in the future!

I can see it being useful to packagage individual extensions or groups of
extensions for the runtime to consume.  It's also to the case that we will
want to package applications. Current when I build C++ SCA I get a deploy
stucture that holds the SCA core and extensions framwork

deploy
  bin
  extensions
    cpp
      bin
      include
      lib
      xsd
    ws
      reference
        bin
        lib
      service
        bin
        lib
      xsd
  include
  lib
  xsd

And when I build a sample, BigBank for example, I get a separate deploy dir

deploy
  bin
  configuration
    Composite Name
       top level.composite
  packages
    Composite Name
       everything required for the composite

Now I should be able to zip this deploy up and move it to another runtime
instance and assuming I have $TUSCANY_SCA/SDOCPP set up it should run OK.
However this all depends on the hosting environment. The ease of use of
"plugin" deployment really depends on getting the hosting framework right.
Currently with web service bindings I have to configure Axis manually by
copying some files around. It would be nice to have a binding specific
hosting approach, for example, in the case of Axis bindings we could create
a separate part of the deployment that represents the service as axis would
see it. Anyhow, I don;t feel close enough to it yet to make specific
suggestions. I'm starting to play with BigBank again so maybe we can keep
the plugin/deployment thread alive as we learn more about it.

Regards

Simon


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to