设计架构以联系第三方Web服务

时间:2014-02-18 13:50:39

标签: web-services architecture

实际上代码的结构与第一个设计相同。但我觉得它不太可读......

  • 名称空间名称对每个类责任一无所知
  • 在DAO和BLO 层之间划分这么小的架构真的有用吗?几乎没有逻辑......
  • BLO的逻辑/责任不能通过class / methods / namespace
  • 的名称来识别
  • 什么是UserType? 命名空间不会将其与任何其他类 ..
  • 分组
  • 配置类对我来说是个好名字,因为它标识了一个功能。但它是唯一一个具有其名称指定的精确目的的类。
  • Get3rdPartyUrl并登录(到该网址)可以全部放在一起在同一个类中,而InitializeConfigValue和ParseErrorMessage可以放入其他帮助类。

联系3rdParty WS是可重用的。所有内容都应该只从一个界面继承,也可以定义日志记录。

我联系的WS将回调我的基础架构。我可以识别/跟踪这两个电话之间的会话吗?从我的基础设施到我的基础设施?

我等你的评论和建议!

enter image description here

修改

这是第一次重构后的结果。您怎么看?

enter image description here

1 个答案:

答案 0 :(得分:1)

我不会在小项目中分割beetwen DAO和BLO级别。我使用QueryObject pattern并将所有查询都放入此对象中。您可以将简单的逻辑(验证f.e.)放入此查询中。

  

我联系的WS将回调我的基础架构。我能识别/>跟踪这两个电话之间的会话吗?从我的基础架构到我的>基础架构?

您可以使用WS-Addressing。 WS-Addressing标头包含用于消息关联的字段wsa:MessageIDwsa:RelatesTo(表示为MessageId和CorrelationId)和用于回调服务器地址的wsa:ReplyTo/wsa:Address

例如,Oracle SOA Suite具有强大的WS-Addressing支持开箱即用。