Sounds about right.

IMO, Bindings should be black boxes that handle all of the details of 
actually sending/receiving the messages on the wire.  A Binding may 
specify zero or more Modules that it either supports or requires. Required 
Modules are used by default, the only thing the developer/deployer can do 
is manipulate the behavior of the Module and Binding via 
properties/options.  Supported optional Modules may be configured  by the 
developer/deployer but may/may not be used by default by the binding.

Services, Providers and the Axis Engine can operate the same way. Required 
or optional supported Modules can be configured.

Anyway, lots of stuff to consider, but I'd highly recommend not digging in 
further until after we get the basic async functionality working :-)

- James Snell
     IBM Emerging Technologies
     [EMAIL PROTECTED]
     (559) 587-1233 (office)
     (700) 544-9035 (t/l)
     Programming Web Services With SOAP
         O'Reilly & Associates, ISBN 0596000952

     Have I not commanded you? Be strong and courageous. 
     Do not be terrified, do not be discouraged, for the Lord your 
     God will be with you whereever you go.    - Joshua 1:9



David Chappell <[EMAIL PROTECTED]>
12/04/2002 04:01 PM
Please respond to axis-dev


To
[EMAIL PROTECTED]
cc

bcc

Subject
Re: Features and Modules and Bindings, oh my!



I think this approach may solve an issue that I was struggling with
earlier today with regard to variations in different transport's
interpretation of things like "reliable delivery". (It was a private
struggle...don't look for it in any mail archives :)  The feature
represents a more encompassing capability such as JMS, ebXML MS,
davesReliableMEP, etc.  The semantic meaning of whether a binding
supports things like persistent connections or acknowledgement receipts
would be in accordance with whatever agreed-upon behavior that feature
conforms to.  Am I getting this right?
Dave

James M Snell wrote:
>
> I like the approach.  Specific comments inline.
>
> - James Snell
>      IBM Emerging Technologies
>      [EMAIL PROTECTED]
>      (559) 587-1233 (office)
>      (700) 544-9035 (t/l)
>      Programming Web Services With SOAP
>          O'Reilly & Associates, ISBN 0596000952
>
>      Have I not commanded you? Be strong and courageous.
>      Do not be terrified, do not be discouraged, for the Lord your
>      God will be with you whereever you go.    - Joshua 1:9
>
> Glen Daniels <[EMAIL PROTECTED]> wrote on 12/04/2002 01:45:23 PM:
>
> > Thanks James for slicing out the FeatureEnabled thing for now, I
> > appreciate it.
>
> Notta problem
>
> > While we're on the topic, I'll squirt out this very brief version of
> > how I envision this stuff working.  A full understanding /
> > explanation of this entails grokking the SOAP 1.2 extensibility
> > model, including URI-named Features/Properties/Bindings/Modules.
>
> > =====
>
> > Bindings and Modules are the concrete things which can implement
> Features.
>
> > A Binding is the equivalent of an Axis Transport, but named with a
> > URI instead of a generic string.  There are server side and client
> > side Bindings.
>
> Interesting.  I can see us revamping the current Transport/Sender
> mechanism so that Binding jar files are dropped into a directory (e.g.
> /bindings/httpBinding.jar) and automatically discovered.  Sounds like a
> great feature for Axis 2.0 that once we get through the Async stuff, 
I'll
> gladly explore helping out with.
>
> > A Module is a registered component, also named with a URI, which
> > implements some functionality using SOAP headers.  A Module is
> > typically distributed as a jar containing a Module class, some
> > metadata, and zero or more Handlers.
>
> Very good, but we're going to also need a way of connecting modules
> (allowing them to work together) which would be a much more difficult
> task.
>
> > There is a registry of available Bindings
>
> > There is a registry of available Modules (perhaps discoverable jars
> > sitting in a /modules directory)
>
> > Modules:
>
> > * know how to deploy Handlers into global or service flows in order
> > to satisfy their needs
>
> > * expose an optional "friendly" API to control the functionality in
> > a clean way
>
> > So a couple of brief scenarios here:
>
> > 1) WSDL processing
>
> > - We see something like <soap:module uri="http://foo/securityModule";
> > required="true"/> in WSDL
>
> > - We go look in our Module registry to see if we have the desired
> > Module.  If so, we hook it into the generated stub/server-impl.
> > This means Handlers automatically get deployed, and APIs are set up
> > appropriately to control the Module.
>
> > - If there are property values indicated in the WSDL, we simply map
> > those directly to properties on the Stub or the SOAPService so
> > they're available to the runtime.
>
> > - Same thing for bindings
>
> > 2) Using / tweaking a Module
>
> > Call call = getCallFromSomewhere();
> > MyCustomModule module = (MyCustomModule)ModuleRegistry.getModule(uri);
> > module.setSpecialThingy(5); // These are custom APIs to make using
> > module.setSecurityLevel(3); // this particular Module more intuitive.
> > call.activateModule(module);
>
> > =====
>
> > There's more, but them's the basics.  We do need something very much
> > like James' FeatureEnabled interface, which Binding and Module would
> > both implement.  I'm not sure that disable/enable functionality is
> > appropriate there, and I'd call it something like FeatureProvider or
> > FeatureSource.  There's a lot of further discussion to be had here.
>
> At this point, I think I agree.  At a minimum, the FeatureEnabled
> interface needs to have a getSupportedFeatures() method that returns an
> array of URI's identifying the features supported by a given component.
> disable/enable can probably be removed for now.
>
> > --Glen

--
Sonic Software - Backbone of the Extended Enterprise
--
David Chappell <[EMAIL PROTECTED]> Office: (781)999-7099
Mobile: (617)510-6566
Vice President and Chief Technology Evangelist, Sonic Software
co-author,"Java Web Services", (O'Reilly 2002)
"The Java Message Service", (O'Reilly 2000)
"Professional ebXML Foundations", (Wrox 2001)
--


Attachment: chappell.vcf
Description: Binary data

Reply via email to