客户端类库与web服务/web服务与服务端类库的通信
Posted
技术标签:
【中文标题】客户端类库与web服务/web服务与服务端类库的通信【英文标题】:Communication between client class library and web service / web service and server class library 【发布时间】:2011-03-21 15:10:51 【问题描述】:想知道其他人在做什么/层间通信的最佳实践。这个问题与第 2-3 层和第 3-4 层之间的通信有关。
我们的基本架构(按顺序)如下:
-
用户界面
前端商务舱
网络服务
后端业务类
DAL
Web 服务只是一个外观,包括后端类库的日志记录和身份验证。
因此,向 Web 服务传递了一个请求对象,其中包括 Web 方法所需的参数以及用户凭据(例如,用户凭据存储在基类中,因为我们总是需要将其传递给webservice)并使用响应对象进行响应(具有状态和消息等内容,如果失败等以及所需的对象)请求和响应都使用自定义的通用类/或接口,其中只返回一个结果,否则需要一个类创建的。
有时对第 4 层的响应对象执行此操作是有意义的(尽管我们不使用请求对象,除非需要大量参数是 pasaw),在这种情况下,我们在第 3 层只有一个适配器类它将这个返回给客户端。为了保持一致性,我一直考虑这样做,但认为这可能有点矫枉过正。
所以重复这个问题,层间通信的最佳实践是什么?人们应该/是否使用上面概述的这种方法(它对我们很有效),第 3-4 层是否应该实现与第 2-3 层类似的方法?
可能的考虑:
目前所有内容都由开发人员团队在内部编写,未来可能会外包一些客户端代码 未来的 Web 服务将基于 WCF(不确定是否会影响设计,而不是对我更喜欢的接口进行编码)。 我们使用 .net【问题讨论】:
听起来您的设计非常适合您,并且基于相当受尊重和使用良好的设计模式(请求-响应)。所以我不太确定你的问题是什么。您是否在寻求改进设计的方法?您是否遇到了您认为可以通过重构设计来解决的特定问题? 我没有大量参考其他系统的构建方式。所以我要问的是,这个请求响应(在前端类库和 Web 服务之间)是否应该用于 Web 服务层和后端类库之间的通信——还要考虑列出的那些点。 另外,为每个 web 方法创建一个请求对象还有很多额外的工作。 【参考方案1】:为了完整起见:
将响应/请求放在类库中似乎是个好主意,这样如果您想将 Web 服务更改为 WCF,要做的工作就更少了。
【讨论】:
以上是关于客户端类库与web服务/web服务与服务端类库的通信的主要内容,如果未能解决你的问题,请参考以下文章
从类库调用 WCF 服务:App.Config 与 Web.Config?