Thursday, September 21, 2006

Amazon SQS Talks WS-*

Kirill just sent me code for how to call the Amazon Simple Queue Service from WCF:

1.  run svcutil on the SQS WSDL: http://queue.amazonaws.com/doc/2006-04-01/QueueService.wsdl

2.  consume the proxy using code like the following:

MessageQueueClient queueMessageClient = new MessageQueueClient("MessageQueueHttps", queueAddressUri);

            queueMessageClient.ClientCredentials.ClientCertificate.Certificate = clientCertificate;

            SendMessage sm = new SendMessage();

            sm.MessageBody = "<Body>This is message 1</Body>";

            queueMessageClient.SendMessage(sm);

            Message message = queueMessageClient.ReceiveMessage(new ReceiveMessage()).Message[0];

            Console.WriteLine("Message Received: " + message.MessageBody);

Very cool, IMHO.  What's interesting here is that not only does the Amazon SQS service use WS-Security for encapsulating certs in a SOAP message (and using transport security for encryption), it also uses the WS-SecurityPolicy assertions in the WSDL, so that SecurityPolicy-aware processors like WCF can generate the right configuration for the client proxy to enable interop very easily.  The metadata story has always been critical to helping simplify the process of "practical" interoperability.  It's great to see Amazon adopting the tools that make this possible.

 


 | 
Thursday, September 21, 2006 8:05:32 AM (GMT Standard Time, UTC+00:00)  #  Comments [9]