{"id":53,"date":"2005-10-06T10:01:01","date_gmt":"2005-10-06T17:01:01","guid":{"rendered":"http:\/\/kennyw.com\/indigo\/53"},"modified":"2005-10-06T10:01:01","modified_gmt":"2005-10-06T17:01:01","slug":"protocol-channel-example-chunking","status":"publish","type":"post","link":"https:\/\/kennyw.com\/?p=53","title":{"rendered":"Protocol Channel Example: Chunking"},"content":{"rendered":"<p>In my quick <a href=\"http:\/\/kennyw.com\/indigo\/52\">PDC recap<\/a> I promised to post <a href=\"http:\/\/blogs.msdn.com\/yassers\/\">Yasser<\/a>&#8216;s demo code.  So before I digress: <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/aa717050.aspx\">here is the code for a protocol chunking channel<\/a>.<\/p>\n<p>There is a lot more refinement to be added in order to make this production-level, but it&#8217;s a great illustration of the power and flexibility of a layered channel model.  We have streaming over some Indigo transports (TCP\/Named Pipe datagram, and HTTP requests and responses).  However, these streams suffer from connections getting dropped mid-message, and need to be secured, routed, etc at the transport layer.<\/p>\n<p>Yasser&#8217;s chunking channel nicely sidesteps all of these issues.  By fragmenting\/reassembling at the SOAP layer, each SOAP &#8220;chunk message&#8221; can be secured using WS-Security, reliably sent using WS-RM, and even transacted using WS-Transactions.  Even better, this solution works for streaming a Message over any arbitrary transport.  Which means you can write a simple streaming media server by adapting the chunking channel and using it in conjunction with a Udp multicast transport.  Maybe I&#8217;ll mock one up next week even \ud83d\ude42<\/p>\n<p>For those not on commnet, I&#8217;ve posted the slides from my PDC talk <a href=\"http:\/\/kennyw.com\/wp-content\/indigo\/COM424.wolf.shohoud.ppt\">here<\/a>. Enjoy!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my quick PDC recap I promised to post Yasser&#8216;s demo code. So before I digress: here is the code for a protocol chunking channel. There is a lot more refinement to be added in order to make this production-level, but it&#8217;s a great illustration of the power and flexibility of a layered channel model. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-53","post","type-post","status-publish","format-standard","hentry","category-indigo"],"_links":{"self":[{"href":"https:\/\/kennyw.com\/index.php?rest_route=\/wp\/v2\/posts\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kennyw.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kennyw.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kennyw.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kennyw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=53"}],"version-history":[{"count":0,"href":"https:\/\/kennyw.com\/index.php?rest_route=\/wp\/v2\/posts\/53\/revisions"}],"wp:attachment":[{"href":"https:\/\/kennyw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=53"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kennyw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=53"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kennyw.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}