The IP.com Prior Art Database
Copyright 2008 Microsoft
English (United States)
7 pages / 43.0 KB
for Use with SQL Server Service Broker (SSB)
Distributed applications, such as client and service applications, often communicate by sending and receiving messages. Such messaging functionality may be provided by an application separate from that of the client/service application. Unfortunately, when the messaging application is developed from a programming model different than the client/service application, the client/service application developer must learn the alternative programming model to use the messaging application functionality.
A programming model used to create client/service applications is Windows Communication Foundation (WCF). Certain tools of WCF called “transport channels” (or simply “transports”) can be customized to enable a WCF application to transmit messages over various communications mechanisms without having to know or learn the non-WCF programming model. One messaging system that uses a non-WCF programming model is SQL Server Service Broker (SSB). SSB provides desirable messaging functionality, such a reliable, exactly-once in-order delivery guarantees, and support for long-lived conversations; however, previously that functionality was not usable without knowing SSB’s non-WCF programming model.
A customized WCF/SSB transport was designed to enable a developer creating WCF-based applications to use SSB messaging capabilities without having to know the non-WCF programming model used by SSB. Generally, the WCF/SSB transport is built using a WCF channel model, which is an extensible framework for creating transports that can be used with the WCF programming model. For example, the WCF/SSB transport is available to a message-sending application (i.e., client) as an IOutputSessionChannel and is available to a message-receiving application (i.e.. service) as an IInputSessionChannel. From the IOutputSessionChannel, the client can access additional SSB functionality through the SsbConversationSender. From the IInputSessionChannel, the service can access additional SSB functionality through the SsbConversationGroupReceiver.
Inconsistencies between WCF applications and SSB requires implementation to effectively integrate these applications. For example, while both WCF and SSB include messages, both applications logically group messages in a different manner. WCF includes “sessions” in which a logical grouping of messages is exchanged between communicating applications. Under a WCF session, messages are delivered exactly once and in order. WCF sessions are inherently volatile meaning that if the sender or receiver program instances terminate, the session is ended. SSB includes “conversation...