了解服务之外的数据:SOA

注意:服务之外的数据表示服务返回并由客户端使用的消息。

我有一个名为LastBuyer Service的服务。 当我将bookID输入服务时,这将返回书籍的最后买家名称。 当我为相同的图书ID呼叫服务时,它将返回不同的结果(如果新买家购买了一本书)。 所以我无法在客户端缓存服务的结果(对于特定的BookID)。

在阅读文章“内部数据与外部数据”时,它说“Ok to Cache” – “由于消息的ID返回相同的数据,因此可以缓存消息”。

参考: http : //msdn.microsoft.com/en-us/library/ms954587.aspx

  1. 我的理解中缺少什么?

  2. 上面的例子中的消息是不可变的吗?

  3. 以上示例中依赖于版本和版本的标识符是什么?

  4. 如何在这里完成消息的版本控制?

  5. 哪本WCF书籍通过示例清楚地解释了SOA概念和模式?

  1. 服务设计原则:服务模式和反模式

http://msdn.microsoft.com/en-us/library/ms954638.aspx

  1. 您错过了(如@ Carsten-Konig所暗示的) 任何给定快照时间的数据是不可变的这一事实。 除非你回去填写旧订单,否则从昨天下午5点开始购买这本书的最后一个人总是会一样的。 事实上,从那以后有人买了这本书(导致该数据的新版本 )与昨天的结果无关。 这可能是也可能不是有用的数据来缓存,但是在任何给定的时间点它都是不可变的。

  2. 如果消息的一部分键是时间戳,则该消息是不可变的。

  3. 与版本无关的标识符是书籍的ID。 与版本相关的标识符是快照时间戳。

  4. 通过快照时间戳(对于缓存目的,这可能也可能有用)

至于关于这个问题的好书,我恐怕无法给出建议。 但我怀疑亚马逊或bn.com上的评论是一个很好的起点。