locked
Using WCF as a service bus to pass data RRS feed

  • Question

  • I have heard of the idea of using WCF as a "bus" between tiers in an nTier project to retrieve information (lets say a set of product prices for example), which comes from the business tier, and then the data that bus retrieves is shown in the presentation tier. I did some interview questions on a system based on the same foundational concepts.

    Does anyone here have any links of how this is done with WCF and C#?

    Thanks
    Sunday, May 4, 2008 10:19 PM

Answers

  • I think you hit the nail right on it. 

     

    When MS introduced WCF and WF in .NET 3.0, my comment to my team was that MS has made ESB as part of framework (basically free), but you dont get all the bells and whistles with it.  Similarly WF is a poor man's BPM, if you dont want bells and whistles and the price tag.  So, if you do need bells and whistles and can afford, then buy BizTalk which can play the role of ESB and BPM to a large extent.  They still need to do more work to integrate BizTalk with MQ and JMS to get better acceptance as ESB product compared to the competitors in the market.

     

    WCF can be used as a service bus/service gateway that separates different physical tiers in your application.  My enterprise reference architecture at http://gajakannan.com/netarch.aspx is built on that assumption.

    Thursday, May 8, 2008 5:15 PM

All replies

  • To clarify, do you mean bus as in ESB or bus as in point-to-point transport?

     

    Tuesday, May 6, 2008 10:15 PM
  •  pkr2000 wrote:

    To clarify, do you mean bus as in ESB or bus as in point-to-point transport?

     



    As in ESB.

    Thanks
    Thursday, May 8, 2008 3:27 PM
  • I think you hit the nail right on it. 

     

    When MS introduced WCF and WF in .NET 3.0, my comment to my team was that MS has made ESB as part of framework (basically free), but you dont get all the bells and whistles with it.  Similarly WF is a poor man's BPM, if you dont want bells and whistles and the price tag.  So, if you do need bells and whistles and can afford, then buy BizTalk which can play the role of ESB and BPM to a large extent.  They still need to do more work to integrate BizTalk with MQ and JMS to get better acceptance as ESB product compared to the competitors in the market.

     

    WCF can be used as a service bus/service gateway that separates different physical tiers in your application.  My enterprise reference architecture at http://gajakannan.com/netarch.aspx is built on that assumption.

    Thursday, May 8, 2008 5:15 PM
  • Gaja is right: you can get, with WCF and WF, executional capabilities of an ESB but not monitoring facilities (which you'll have to provide -i.e. develop- yourself)

     

    Biztalk and other commercial products (IBM Websphere ESB, etc) do the ESB end-to-end

    Tuesday, June 17, 2008 6:03 PM
  • GSS1,

     

    You are tackling a tough subject. Calling WCF an ESB is like calling the Windows SDK a Database. You can build a database using the Windows SDK, but the SDK is not a database.

     

    The same is true for WCF. You can build components of an ESB using WCF. WCF is an SDK for building connected systems / services on the .Net framework.

     

    Makes sense ?

     

    Now what makes a database a database ? You should youself ask the same question about an ESB .

     

    Since there is NO standard definition of what an ESB is we will have understand an ESB by exploring some of the common characterstics

     

    Brokered Communication

    Mediation

    Administration

    Security

     

    Hope this helps.

    Tuesday, June 17, 2008 8:16 PM
  • Hi Raman,

         I disagree that WCF is like Windows SDK and ESB like a database.  You can separate cross cutting technologies that ESB provides with a WCF layer (Security, Brokered Communication, Payload, etc.,)  Administration is one certainly WCF lacks out of the box.  Since MS has commercial product BizTalk server, I dont expect it to become part of WCF.

     

         In my opinion, so far BizTalk provides both SOA/ESB and BPM capabilities out of one product, obviously lacks the depth on both.  I believe thats probably the reason MS is separating those concerns in "Oslo", that separates SOA/ESB as BizTalk services and BPM under BizTalk Server.  BizTalk services beef up with underlying WCF while BizTalk server beefed up with underlying Workflow Foundation.

     

         I totally agree with you on the fact that there is no two vendors that agree on what an ESB is.  It is evident from the fact that IBM has two products that is sold in ESB space Smile

     

    Thanks,

     

    Wednesday, June 18, 2008 2:29 AM
  •  

    GajaKannan,

     

    You said

     

    "You can separate cross cutting technologies that ESB provides with a WCF layer (Security, Brokered Communication, Payload, etc.,) "

     

    What WCF layer? Are you proposing that a dev team build this layer? If yes, then we are talking about the same thing.

    What I am saying that a dev team can build an ESB using WCF, but calling WCF an ESB is juvenile.

     

    BizTalk Server does provide tools for a successful SOA/BPM implementation but its still a hub-n-spoke model.You could follow the Microsoft ESB guidelines and employ the BizTalk server to provide BUS like capabilities. However BizTalk server itself is not an ESB. Makes sense ?

     

    The ESB space is not a one-size fits all space and therefore one should not be suprised that IBM or any other vendor can or has multiple ESB products. Buying/building the right ESB product is no different than any other software development effort.

     

    As for the definition of the ESB, I'll let the academicians squabble over the definition and when they agree on one, I'll embrace it.

     

    Hope this helps.

     

    Thanks

    Wednesday, June 18, 2008 3:39 PM
  • juvenile?  Raman, I have been following the ESB trend right when the Sonic coined that word and integration vendors jumped into the band wagon that they have an ESB.  I have used eGate, TIBCO, WebMethods and IBM products (did not use Biztalk yet).  May be you can compare and contrast the features that those products provides outofthebox so my juvenile mind can understand.

    Wednesday, June 18, 2008 4:36 PM
  • GajaKannan,

     

    If you don’t mind I would like to keep this thread limited to the original topic of discussion.

     

    GSS1 was interested in finding out if someone had automated a scenario where a system receives price feeds (he used product prices as the example) at a service endpoint. He wanted this to be relayed to a presentation tier. It appeared that he was exploring this in the context of some interview questions.

     

     

    Let’s understand the problem domain before we attempt to find a solution. I would strike a comparison to a stock price quote viewer application that provides real time updates on the UI based on data received on some backend business service. Now we can automate this using WCF? Undoubtedly.

     

    The problem is not about building a service implementation (which is how most companies start; and should start - one service at a time.) but it’s about how one can compose and consume composite services when a company has built a myriad of services. The place where the rubber meets the road is in discovering, managing, and provisioning and versioning services. This is where any middleware comes into play.

     

    The value of the any middleware is manifested when you consider the burden that would be placed on individual service consumers if that middleware was not there. A good EAI tool should help companies move up the ESOMM maturity model.

     

    As for your request of a gap analysis of the various the EAI vendors, its beyond the scope of this thread and would be based on many factors than just "features". Sorry to break your bubble but companies don't necessarily always purchase the product with best feature set. I would more than happy to discuss this at a different venue.

     

    Cheers!

    Wednesday, June 18, 2008 6:13 PM
  • I appreciate you recognizing that fact to keep the thread to its intent on not throwing fire balls on people that have different thoughts.

     

    The whole point of this forum or any user group should be about helping peers, knowledge sharing, etc., not about who's idea is the best.  I am glad you are on that page now.

     

    BTW, I did not request gap analysis or product comparison of EAI vendors, because I have been drinking that koolaid for couple years now.  But thanks for the offer though.

    Wednesday, June 18, 2008 8:55 PM
  • There are many different ways of learning. Debates are a great learning tool, if moderated well and done with good intent.

     

    It appears to me that you have mistaken the idea of an ESB with messaging. Communication is a small piece of the ESB blueprint. So having said that would you agree that WCF is not an ESB but is instead a framework that can be used to build components an ESB ?

     

     

    P.S. Dont sip a lot of koolaid. You may be subject to koolaid intoxication.

    Wednesday, June 18, 2008 9:04 PM
  • I feel like someone about to light a firework at arms length, but I thought I'd just drop this link to see what people think of it,
    Internet Service Bus


    Wednesday, June 18, 2008 10:06 PM
  • Since Microsoft missed the boat on ESB, they are hoping to blend SAAS + ESB branded as ISB might create their niche.  My prediction is that it may become popular with right marketing in small to mid size organizations.  Higly doubt it will make a dent on TIBCO/IBM/BEA dominance on enterprise ESBs.  I have worked in a fortune 50 company that is a huge .NET shop that first tried eGate, then moved on to BizTalk and now to a large extent content with TIBCO for ESB capabilities.  A different Fortune 500 company compared BizTalk vs WebMethods and ended with WebMethods. 

    Even if MS closes the gap with these vendors with large cash flux, the existing investment on other ESBs will make it a very hard case to migrate out of it.

    Thursday, June 19, 2008 4:23 AM
  • I have mixed feelings about it. I think the ISB is certainly a good idea but would I use, hmm not sure. What is good is where your service is used in many worldwide locations. Creating the infrastructure to correctly work in such wide areas can be difficult and expensive, if Microsoft are going to provide these world-wide centres then it maybe a very cost effective way of implementing such a topology.

    Thursday, June 19, 2008 5:59 AM
  • I agree too.  It might be a better business model for MS and customers if MS creates an ondemand datacenter, where we could host our custom apps.  They could leverage their expertise on operating datacenter on MS stack better than any one else, and a decent cash flow.
    Thursday, June 19, 2008 3:59 PM