2013-10-02 135 views
1

我们有一个基于SOA的应用程序,应用程序之间的依赖关系很少。 例如,我们在其他应用程序使用的主设备中有城市代码。SOA应用程序依赖关系

在从属应用程序中,是否最好有城市代码或城市记录的主键ID。我觉得城市代码使得更多的商业数据发送,而不是id(这是更耦合)。

回答

2

主键感觉像是服务和数据库专用的实现细节。我不会将这些细节暴露给服务的客户。

但它听起来像你的城市代码是一个独特的领域,是至少候选人的关键。为什么不使用作为这种情况下的主键?

如果城市代码中的业务逻辑可能发生变化,则代理键可能有意义。但如果情况并非如此,那么也许你可以考虑它。

+0

正确。说得通。谢谢。 – lives

+0

同意这个问题。此外,您可能需要了解服务之间是否存在紧密耦合,以及是否有可能编写服务,以便数据不会被不直接需要的服务使用。 – KumarM

1

我会使用一个代码(例如'DUB')并将其用作我的系统中的共享合同,但是无论如何,没有任何一个服务拥有该代码?这样你解耦的依赖关系,并有一个更具可读性,基于约定的密钥...

0

我会使用域值映射(DVM)用于此目的。 域值映射对在运行时通过基础架构的实际数据值进行操作。它们使您能够从给定域中使用的一个词汇表映射到不同域中使用的另一个词汇表