← Prev in month ← Prev in thread

Re: Issue 250 - autowire, underlying the 227 question.

From
Eric Johnson <>
Date
2011-01-18T01:30:37+00:00
ID
Thread
Re: Issue 250 - autowire, underlying the 227 question.
Our last conference call help me consolidate my thoughts on this
    one.

    

    I see a matrix of possibilities:

    

    For implementations that choose to map "channel" to "Destination",
    autowire helps, because it eliminates the need to define the
    individual channels - it lets the implementation do the work for the
    assembler.  Without autowire, I run the risk of mis-connecting.

    

    For implementations that merely use "channel" as a scoping mechanism
    (in which case, shouldn't we call it "eventScope"?), what's the
    likelyhood that 80% of the composites will only really need a single
    channel?  That is, the composite *is* the scope.  If that's the
    case, what good comes of forcing the assembler to define the
    channel, and then have every component producer/consumer to wire to
    that single channel?

    

    What I see now is that this issue highlights an underlying problem
    with channels as we've discussed them.  What they really amount to
    is a scoping mechanism with constraints (where the constraints are
    policies and event types).  However, my understanding from what I've
    heard about the way customers deploy JMS implementations, customers
    carefully manage the deployed topics and queues.  In the latter
    environment, if you don't associate channel to "Destination" the
    assembler cannot design around one of the most critical aspects of
    the messaging infrastructure, namely the scarce resource of
    destinations.

    

    So here I am, building a composite, and I want to, from the bottom
    up discover precisely how many topics I need in order for my
    application to deploy.  If channels are merely scopes, I have *no*
    way to do that.

    

    So here's a radical thought.  We split the notion of channel into
    two parts: the notion of "eventScope" and the notion of
    "destination."

    

    Destinations get bindings, whereas scopes merely have intents for
    bindings.  I think this split solves a number of conceptual
    difficulties.

    

    -Eric.

    

    On 1/11/11 2:29 AM, Peter Niblett wrote:
    Eric
      

      

      I don't think that the fact that
        something
        has been defined for service/references necessarily means we
        have to have
        it for events. We already have indirection between the event
        producers
        and consumers via channels, so I would like to explore what the
        problem
        is with channels.
      

      

      In your description of 250, you
        indicate
        that some sort of scoping mechanism is required, to avoid a
        complete free
        for all - but isn't that just what channels are intended for? If
        you want
        free exchange of events between any producer and consumer you
        just attach
        them to a global channel - for example the default domain
        channel which
        is provided for exactly this purpose. If you want to restrict
        the scope
        to the local composite, you attach them to a local channel.  
      

      

      Is the issue here that you see a
        need
        for scopes somewhere in between these two extremes?  This,
        incidentally,
        is something I think also underlies the 227 question.
      

      

      Regards
      

      

        Peter Niblett

        IBM Senior Technical Staff Member

        Member of the IBM Academy of Technology

        +44 1962 815055

        +44 7825 657662 (mobile)

        

      
      

      

      
      

        

        
      
Unless stated otherwise
            above:

            IBM United Kingdom Limited - Registered in England and Wales
            with number
            741598. 

            Registered office: PO Box 41, North Harbour, Portsmouth,
            Hampshire PO6
            3AU
← Prev in month ← Prev in thread