Hi all,
the last step (at the moment) of QMan is here : I just submitted code for
QPID-1582 (implementation on QMan of WS-Notification).

As first version there are only two topics : one for lifecycle events of
object instances (create & remove) and one for lifecycle events (only
create) of events.
That means:

1) There are two topics : qman:ObjectsLifeCycleTopic and
qman:EventsLifeCycleTopic
2) QMan will publish on the first one the following message when (for
example) a connection is created :

<wsnt:NotificationMessage
    xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";
    xmlns:qman="http://amqp.apache.org/qpid/management/qman";
    xmlns:qman-wsa="http://amqp.apache.org/qpid/management/qman/addressing";
    xmlns:wsa="http://www.w3.org/2005/08/addressing"; xmlns:wsnt="
http://docs.oasis-open.org/wsn/b-2";>
    <wsnt:SubscriptionReference>
        <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing";>
http://romagazzarini:8080/qman/services/SubscriptionManager</wsa:Address>
        <wsa:ReferenceParameters xmlns:wsa="
http://www.w3.org/2005/08/addressing";>
            <qman-wsa:ResourceId xmlns:qman-wsa="
http://amqp.apache.org/qpid/management/qman/addressing
">09c45414-1adf-4bf1-b855-71c9597176e0</qman-wsa:ResourceId>
        </wsa:ReferenceParameters>
    </wsnt:SubscriptionReference>
    <wsnt:Topic
        Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete";
xmlns:qman="http://amqp.apache.org/qpid/management/qman
">qman:EventsLifeCycleTopic</wsnt:Topic>
    <wsnt:ProducerReference>
        <wsa:ReferenceParameters xmlns:wsa="
http://www.w3.org/2005/08/addressing"/>
        <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing";>
http://romagazzarini:8080/qman/services/adapter</wsa:Address>
    </wsnt:ProducerReference>
    <wsnt:Message>
        <qman:LifeCycleEvent TimeMillis="1234295015000" Type="CREATED"
xmlns:qman="http://amqp.apache.org/qpid/management/qman";>
            <qman:Resource>
                <qman-wsa:ResourceId xmlns:qman-wsa="
http://amqp.apache.org/qpid/management/qman/addressing
">aff2f6ec-2e5c-4768-ae87-6da2c8a005ff</qman-wsa:ResourceId>
                <qman:PackageName>org.apache.qpid.broker</qman:PackageName>
                <qman:Name>connection</qman:Name>
            </qman:Resource>
        </qman:LifeCycleEvent>
    </wsnt:Message>
</wsnt:NotificationMessage>

3) A similar notification (but with type="REMOVED") will be published when
an object instance (a connection for example) is removed

4) For events there are only CREATE notification. So on the second mentioned
topic a message will be published each time an "event" (for example a
subscribe event) is created on QMan (and therefore on Qpid)

Management clients will be able to subscribe to a topic and eventually can
specify a filter and the duration of the subscription.
This is a sample subscribe request :

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";>
    <soap:Header>
        <wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing";>
http://romagazzarini:8080/qman/services/adapter</wsa:To>
        <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing";>
http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeRequest
</wsa:Action>
        <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing
">uuid:d0e13e13-63ee-5302-7b41-a1109776d168</wsa:MessageID>
        <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing";>
            <wsa:Address>http://www.w3.org/2005/08/addressing/role/anonymous
</wsa:Address>
        </wsa:From>
    </soap:Header>
    <soap:Body>
        <wsnt:Subscribe xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";>
            <wsnt:ConsumerReference>
                <wsa:Address xmlns:wsa="http://www.w3.org/2005/08/addressing
">http://romagazzarini:8080/qman/services/consumer</wsa:Address>
            </wsnt:ConsumerReference>
            <wsnt:Filter>
                <wsnt:TopicExpression
                    Dialect="
http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete"; xmlns:qman="
http://amqp.apache.org/qpid/management/qman";>qman:ObjectsLifeCycleTopic</wsnt:TopicExpression>
*<-- The client is interested on qman:ObjectsLifeCycleTopic*. *If this
filter is omitted client will receive all messages of all topics*
            </wsnt:Filter>

<wsnt:TerminationTime>2009-02-10T20:56:09+01:00</wsnt:TerminationTime>* <--
Subscription will end on this date*. *If this is omitted the subscription
won't never end.*
        </wsnt:Subscribe>
    </soap:Body>
</soap:Envelope>


Further improvement will be made in order to meet (eventual) management
client needs.

I believe now It's time to write documentation... :) Let's start!

Best regards,
Andrea

Reply via email to