我正在研究在我们的企业中使用服务总线架构来协调我们环境中系统之间的数据和业务流程。
我们的情况很典型:面向客户的 Web 应用程序将消息传递给内部系统以进行计费、库存等。我们有几个业务实体在大多数或所有这些系统中都是通用的;这些系统中的每一个都在自己的数据库中维护自己的这些实体版本。
应用于服务总线概念,我们可以从我们的客户门户网站向总线发布代表订单的消息。每个感兴趣的系统(计费、库存等)都可以使用此消息在自己的数据库中创建相应的客户记录。但是,当这些内部系统中的一个需要发布有关订单状态的消息时,它会从自己的数据库中携带订单 ID。如果我们的门户网站需要使用该消息,它将不知道如何将从我们的内部系统发送给它的订单 ID 与保存到门户网站数据库的订单 ID 相关联。
由于没有其他系统固有地知道等效实体如何跨系统关联,因此似乎需要某种类型的映射机制来允许系统将消息中包含的 ID 转换为与其相关的 ID。例如,可以创建一个将 ID 从一个系统映射到另一个系统的数据库表。可以查询该表以检索目标系统的适当 ID。我们的业务目前不使用实体聚合或其他一些“360 度视图”类型的存储库作为通用实体信息的单一权威来源,通用 ID 可以从这些信息中在所有系统之间传递和使用。
使用这种实体映射方法来伴随服务总线实现是一种有效的方法吗?如果是这样,是否有任何既定的指导方针来指导设计?如果没有,我有兴趣了解跨系统链接实体以促进通过服务总线进行集成的替代方法。
PS:如果有帮助,我目前正在评估用于构建我们的公共汽车的 MassTransit 框架,所以如果有特定的信息可以提供,那也非常受欢迎。