了解服务之外的数据:SOA

本文关键字:数据 SOA 服务 了解 | 更新日期: 2023-09-27 18:25:58

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

我有一个名为LastBuyer服务的服务。当我向服务输入bookID时,这将返回书籍的最后买家姓名。当我为相同的图书id调用服务时,它会返回不同的结果(如果一本书是由新买家购买的)。因此,我无法在客户端缓存服务的结果(对于特定的BookID)。

在阅读"内部数据与外部数据"一文时,它说"可以缓存"——"由于消息的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

了解服务之外的数据:SOA

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

  2. 如果消息的密钥的一部分是它的时间戳,那么消息是不可变的。

  3. 与版本无关的标识符是图书的ID。依赖于版本的标识符是快照时间戳。

  4. 通过快照时间戳(同样,这可能对缓存有用或不有用)

至于一本关于这个主题的好书,恐怕我不能推荐。但我怀疑亚马逊或bn.com上的评论是一个很好的起点。