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)
--
begin:vcard 
n:Chappell;Dave
tel;cell:617-510-6566
tel;work:781-999-7099
x-mozilla-html:FALSE
url:www.sonicsoftware.com
org:Sonic Software Corp.    <BR><BR><A HREF="http://www.sonicsoftware.com/products/sonicxq.htm";>Read about SonicXQ</A> - the first product to deliver <br>on the promise of the enterprise service bus.<BR><BR><A HREF="http://www.sonicsoftware.com";><IMG BORDER="0" SRC="http://www.sonicsoftware.com/media/email_signatures/schulte_quote_logo2.gif";></A>
adr:;;14 Oak Park;Bedford;MA;01730;USA
version:2.1
email;internet:[EMAIL PROTECTED]
title:vice president & chief technology evangelist<a href="http://www.oreillynet.com/weblogs/author/207";>[weblog]</a>
fn:Dave Chappell
end:vcard

Reply via email to