2010-03-26 76 views
3

我正在使用n-tire应用程序体系结构设计应用程序。该应用程序是在.NET平台中利用C#,VB.NEt,Framework 3.5,Dataset,WCF, asp.net更新面板,JavaScript,Josn,第三方工具。 我目前提出的设计是这样WCF和N层架构

表示层 - >业务逻辑 - > WCF - > DAL->数据访问

的一点是: 是上面的布局来构建SOA系统的正确方法?

与往常一样,您的意见是极大的赞赏

回答

8

这取决于您的定义,请参阅Fowler's comments

通常,为了从SOA获得最大收益,您应该将服务设计为可由多个消费者重用。这意味着将您的业务逻辑“置于”WCF层下面。然后,您可以使用相同的服务和业务逻辑,例如Silverlight客户端,WPF客户端等。

更改您的场景:

多表示层 - > WCF - >业务逻辑 - > DAL->数据访问

+0

我能有Oracle应用或Java applicatin使用相同的服务和商业逻辑? – kathy 2010-03-26 16:12:38

+0

是的,凯西。该架构将允许您从几乎任何客户端使用服务。您只需确保您的服务是使用其他系统可以理解的格式创建的。我唯一担心的是你的场景是如何将.NET DataSets序列化。 – 2010-03-26 16:56:08

+0

实际上,我使用数据集和数据表来获取数据库中存储过程的数据。 这是否可能导致任何问题? – kathy 2010-03-26 17:43:32

0

你的服务应该是业务运营,而不是数据的操作。您的设计的更好的版本将是: 表示层 - > WCF - >业务逻辑 - >数据访问。

现在N层/分层是一个相当过时的概念。它总是崩溃。 Instaed,如果您的软件是交互式服务,请将其视为数字。

4

看起来像它可以是正确的,虽然我会把WCF放在Pres和Biz层之间。另外,不要害怕为你的SOA架构设置一个非线性路径(例如,从你的N层路径一侧开始提供像“EmailService”和“WeatherDataService”这样的服务。很明显,WeatherDataService将来自您DAL但EmailService的一侧可能来自您的商务层的一侧

一些伟大的链接给你: