You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Run the examples/wsn-http-binding example per the README.txt.

In this simple scenario an HttpProducer produces notification messages, and an HttpConsumer receives notification messages. Both HttpProducer and HttpConsumer will interact with ServiceMix via the HTTP endpoints exposed in the standard example configuration.

The sequence consists of 4 primary messages: 1) createPullPoint, 2) subscribe (pullPoint), 3) notify and 4) getMessages. The following high level sequence diagram captures some important interactions:

The SOAP messages are as follows:

1) createPullPoint

>>>>>

 
<!-- 
	Sample CreatePullPoint request sent to http://localhost:8192/CreatePullPoint/    
-->
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Header />
	<env:Body>
		<wsnt:CreatePullPoint
			xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" />
	</env:Body>
</env:Envelope>

<<<<<

 
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
	<env:Body>
		<ns4:CreatePullPointResponse
			xmlns:ns2="http://www.w3.org/2005/08/addressing"
			xmlns:ns4="http://docs.oasis-open.org/wsn/b-2"
			xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2"
			xmlns:ns5="http://docs.oasis-open.org/wsn/t-1">
			<ns4:PullPoint>
				<ns2:Address>
					http://servicemix.org/wsnotification/PullPoint/ID-some-host-38972-1188922931357-6-0
				</ns2:Address>
			</ns4:PullPoint>
		</ns4:CreatePullPointResponse>
	</env:Body>
</env:Envelope>

2) subscribe (pullPoint)

>>>>>
<!--
Sample Subscribe request sent to http://localhost:8192/Broker/
-->
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header />
<env:Body>
<wsnt:Subscribe xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsnt:ConsumerReference>
<wsa:Address>
<!-- returned from createPullPoint -->
endpoint:http://servicemix.org/wsnotification/PullPoint/ID-some-host-38972-1188922931357-6-0
</wsa:Address>
</wsnt:ConsumerReference>
<wsnt:Filter>
<wsnt:TopicExpression
Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
BrewProcess
</wsnt:TopicExpression>
</wsnt:Filter>
</wsnt:Subscribe>
</env:Body>
</env:Envelope>

<<<<<
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<ns4:SubscribeResponse
xmlns:ns2="http://www.w3.org/2005/08/addressing"
xmlns:ns4="http://docs.oasis-open.org/wsn/b-2"
xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2"
xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"
xmlns:ns6="http://docs.oasis-open.org/wsn/br-2">
<ns4:SubscriptionReference>
<ns2:Address>
http://servicemix.org/wsnotification/Subscription/ID-some-host-38972-1188922931357-3-1
</ns2:Address>
</ns4:SubscriptionReference>
<ns4:TerminationTime xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</ns4:SubscribeResponse>
</env:Body>
</env:Envelope>

3) notify
>>>>>
<!--
Sample Notify request sent to http://localhost:8192/Broker/
-->
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header />
<env:Body>
<wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
<wsnt:NotificationMessage>
<wsnt:Topic
Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
BrewProcess
</wsnt:Topic>
<wsnt:Message>
<alarm:Alarm
xmlns:alarm="http://alarms.some-host">
<Name>Kettle Overfill</Name>
<Desc>Kettle Overfill Alarm</Desc>
<Date>2007-09-22-12:00:30:100</Date>
<Severity>3</Severity>
<Value>110.2</Value>
<Ack>false</Ack>
</alarm:Alarm>
</wsnt:Message>
</wsnt:NotificationMessage>
</wsnt:Notify>
</env:Body>
</env:Envelope>

>>>>>
<no response, in only)

4) getMessages
>>>>>
<!--
Sample getMessages request sent to http://localhost:8192/Broker/
-->
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
xmlns:wsa="http://www.w3.org/2005/08/addressing">
<env:Header>
<wsa:To>
http://servicemix.org/wsnotification/PullPoint/ID-some-host-38972-1188922931357-6-0
</wsa:To>
</env:Header>
<env:Body>
<wsnt:GetMessages>
<wsnt:MaximumNumber>10</wsnt:MaximumNumber>
</wsnt:GetMessages>
</env:Body>
</env:Envelope>

<<<<<
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<ns4:GetMessagesResponse
xmlns:ns2="http://www.w3.org/2005/08/addressing"
xmlns:ns4="http://docs.oasis-open.org/wsn/b-2"
xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2"
xmlns:ns5="http://docs.oasis-open.org/wsn/t-1">
<ns4:NotificationMessage>
<ns4:Topic
Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
BrewProcess
</ns4:Topic>
<ns4:Message>
<alarm:Alarm
xmlns:alarm="http://alarms.some-host">
<Name>Kettle Overfill</Name>
<Desc>Kettle Overfill Alarm</Desc>
<Date>2007-09-22-12:00:30:100</Date>
<Severity>3</Severity>
<Value>110.2</Value>
<Ack>false</Ack>
</alarm:Alarm>
</ns4:Message>
</ns4:NotificationMessage>
</ns4:GetMessagesResponse>
</env:Body>
</env:Envelope>

Notes:

  • requests must include URL trailing slash (http://localhost:8192/Broker/) due to smx bug
  • pay special attention to the WS-Addressing syntax
  • all requests are directed at the /Broker endpoint, except the createPullPoint
  • only SimpleTopic expressions appear to be supported at this time
  • No labels