views:

1032

answers:

1

We currently have a Silverlight 2.0 application communicating with a set of WCF web services. These services communicate with other WCF services for business logic.

Client              DMZ                     Intranet
Silverlight -> WCF Web Service Gateway -> WCF Biz service -> DB

The WCF web service gateway resides within the DMZ.

We see that Ria services can replace our WCF web Service gateway, but this means that it will be installed in our DMZ and have access to our database... Is this secure?

We also seem to loose our business logic WCF services... I would need to put the business logic within Ria services (as it has connection to the database and holds the domain...).

What is the recommended patter for Ria services? Where does it fit? What is the approach for companies that already invested in WCF web services? Can they use RIA?

We are looking at this alternative, were we would expose both web services and Ria...

Silverlight -> WCF web service - > WCF biz service -> DB
            -> Ria services -> DB

Any comments? I also wonder if anyone is actually using Ria in production....

A: 

Your proposal architecture with the silverlight app calling both WCF Services and Ria services sounds fair to me.

Suppose your DB has an Employee Entity.

I can get this approach up and running, but have some issues

  • Suppose "the WCF biz service" accesses and modifies Employee.
    • does it get this data from the database directly? (if so, is the EntityFramework edmx model shared between "the WCF biz service" and ria?)
    • does it in turn uses the RIA layer, and thus the EmployeeRiaProxy?
    • ..?

  • Suppose you want to use the Employee Entity on your "WCF biz service" operation contract
    • This should not be possible in a pure SOA architecture?
    • Use a pure DTO data contract style approach with an EmployeeDto?
    • Should you use the Employee, or the EmployeeRiaProxy?
      • Using the Employee is not possible because the silverlight app does not know it (or would cause another EmployeeWCFProxy type being created on the client)
      • Using the EmployeeRiaProxy is possible, but ties your operation contract to a Ria proxy (pretty poor design) and assumes the service uses RIA for data access

Or should everything pass through this RIA layer? from which you call "the WCF biz service" in turn then?



Any opinions welcome!

Koen