locked
Architecture Design RRS feed

  • Question

  • Guys, I need a suggestion for my architecture design. We will build application in MVC 3 and WCF. The WCF Service will be connected to SQL Server, RestFul Service and Remoting Service.

    RestFul and Remoting, we will be merged in one DataContract to be sent to UI MVC. The point is, should we have one WCF Service like orchestrator and 3 more WCF Services for SQL, Restful and Remoting? I've come up with that because if we have any problem with a specific service, we just need to stop one of them, not the entire service. Does anybody have any suggestion about that, or another technology?


    Tiago de Marchi Nunes - Consultor .Net

    • Edited by Tiago Nunes Thursday, December 22, 2011 1:20 PM
    Thursday, December 22, 2011 1:13 PM

Answers

  • I understand that the remoting and restful services are both providing data. It does make sense to put them behind a WCF wrapper assuming that you plan to write some business logic in your main WCF service. This helps you to:

    1. Apply any data transformation so the business service does not have to do this
    2. Isolate the changes in these services from your business logic
    3. Use these services in some other business service if required in future

    However as you may understand this is a trade off to get extensibility by comprising for some performance because the extra WCF calls will definitely have a performance impact. You need to see how you can minimize this impact by optimizing the payload and using a native transport between the services if absolutely necessary.

    Vipul Shah

     

     

     


    • Edited by egen-Vipul Saturday, December 31, 2011 3:26 PM
    • Marked as answer by Tiago Nunes Wednesday, January 4, 2012 11:59 AM
    Saturday, December 31, 2011 3:25 PM

All replies

  • I understand that the remoting and restful services are both providing data. It does make sense to put them behind a WCF wrapper assuming that you plan to write some business logic in your main WCF service. This helps you to:

    1. Apply any data transformation so the business service does not have to do this
    2. Isolate the changes in these services from your business logic
    3. Use these services in some other business service if required in future

    However as you may understand this is a trade off to get extensibility by comprising for some performance because the extra WCF calls will definitely have a performance impact. You need to see how you can minimize this impact by optimizing the payload and using a native transport between the services if absolutely necessary.

    Vipul Shah

     

     

     


    • Edited by egen-Vipul Saturday, December 31, 2011 3:26 PM
    • Marked as answer by Tiago Nunes Wednesday, January 4, 2012 11:59 AM
    Saturday, December 31, 2011 3:25 PM
  • Perfect, That's what I've been doing....I wanted to know if I was going in a good way!

    Thanks for answering me!


    Tiago de Marchi Nunes - Consultor .Net
    Wednesday, January 4, 2012 12:02 PM