October 10, 2003

A SOAP MQ Transport for WSE

John has a link to a SOAP MQ Transport for WSE 2.0. An interesting read for me as I've recently been looking at the transport code inside WSE 2.0 and giving some more consideration to transports that are, in essence, uni-directional. This has led to some improvements in the dispatching engine to better handle the WS-Addressing headers and make responding over uni-directional transports much simpler. Transport registration is also handled via config now instead of just the programmatic model.

One of the things we've learned from this exercise is the need to get transports running with true async I/O. Anyone who looks through the Tech Preview carefully enough will see that parts of the messaging layer handle async mode by using BeginInvoke on a delegate that then calls code that does I/O. We defaulted to this model in some places to give people a bit of a jumpstart but it doesn't scale well if the I/O blocks - as more connections are made, more threads are consumed and block. The application just can't scale. Suffice to say that several parts of the transport code are getting an overhaul.

I was also very happy to read some of the comments about what you can do with 2.0 - "message-oriented programming model, allows implementing of peer to peer programs, or event driven applications. Web services that leverage WSE can now be hosted in multiple environments including ASP.NET, standalone executables, NT Services, etc." - as this was something that I personally wanted to show everyone - SOAP and the WS-* protocols can be applied in lots of different ways beyond plain request/response models and to lots of different application types. There's a whole new world waiting...if only I had more time to write more code...

Posted by herveyw at October 10, 2003 10:34 PM
Comments