Architecture 系统集成:哪个系统通常在集成中存储ID?

Architecture 系统集成:哪个系统通常在集成中存储ID?,architecture,integration,system-design,system-integration,Architecture,Integration,System Design,System Integration,另一位开发人员和我正在集成两个系统,这两个系统对客户端是私有的,并且具有重复的功能,因此我们希望节省用户将相同数据输入两个系统的时间。他的系统在客户端的localhost上运行,而我的系统在云上运行,所以我们计划让我的系统公开一个restapi供他的系统调用。在许多情况下,他的系统将在我的系统上保存数据。例如,客户端记录 我认为有两种方法可以解决这个问题: 选项1:他向我的系统发送一个id以与新的客户记录关联-例如{client_name:'Ballmart',id:'FD23949fsad29

另一位开发人员和我正在集成两个系统,这两个系统对客户端是私有的,并且具有重复的功能,因此我们希望节省用户将相同数据输入两个系统的时间。他的系统在客户端的localhost上运行,而我的系统在云上运行,所以我们计划让我的系统公开一个restapi供他的系统调用。在许多情况下,他的系统将在我的系统上保存数据。例如,客户端记录

我认为有两种方法可以解决这个问题:

选项1:他向我的系统发送一个id以与新的客户记录关联-例如
{client_name:'Ballmart',id:'FD23949fsad293fa2'}
,然后在他想要引用它时发送相同的id-例如在添加新订单时:
{orderNumber:2393,clientId:'FD23949fsad293fa2'}

选项2:他发送一个没有id的客户记录,我用我的id响应他的请求。他将我的id保存在数据库中,并在需要引用客户记录时发送给我。所以他会发送
{client_name:'Ballmart'}
,我会回复
{id:'FD23949fsad293fa2'}
,然后他会像以前一样发送
{orderNumber:2393,clientId:'FD23949fsad293fa2'}
,为客户记录新订单

我的直觉是选择2更好,但我正在努力解释为什么


他的系统更大,功能更强。当我的合同即将到期时,他也是一名全职员工,此时他需要承担更多的责任来管理我的系统。

我想说,负责数据的系统(“主控”)应该创建ID(例如,避免重复,或者不为取消的创建预订ID)

此外,第二个选项看起来更像REST POST请求,它现在是理解API的一种标准

***通过评论进行讨论后:***

如果下一阶段是主系统拥有所有数据,那么在设计解决方案时要考虑到这一点。 选择选项1,不要在主系统(尤其是数据结构)上进行集成工作,以后必须从中删除它


此外,您描述的交换看起来像单向复制。在这种情况下,我认为目标表上的“origin”或“reference”列是最好的方法,尤其是当主系统必须在其他系统上复制时。

我认为负责数据的系统(“master”)应该创建ID(例如,为了避免重复,或者不为取消的创建预订ID)

此外,第二个选项看起来更像REST POST请求,它现在是理解API的一种标准

***通过评论进行讨论后:***

如果下一阶段是主系统拥有所有数据,那么在设计解决方案时要考虑到这一点。 选择选项1,不要在主系统(尤其是数据结构)上进行集成工作,以后必须从中删除它


此外,您描述的交换看起来像单向复制。在这种情况下,我认为目标表上的“origin”或“reference”列是最好的方式,特别是如果主系统必须在其他系统上复制。

您能否澄清“现在哪一种是理解API的标准”的含义?选项2比REST好一点,但您可以调整选项1。真正的问题是谁是这些数据的主人?这些数据是特定于您的子系统的,还是只是来自主系统的副本?拥有数据的系统应该定义ID,其他系统应该接受它。长期目标是让其他系统拥有数据。现在这两个系统都拥有它——我的系统拥有的功能还没有被主系统吸收。此外,我的系统到目前为止一直独立使用,并管理自己的唯一id系统,因此如果它只接受来自主系统的id,可能会有重复的id。在这种情况下,我会说让主系统定义id。您的系统应将此id保留在“参考id”字段中。这是选项1。尽管如此,您仍然可以尝试遵循REST规范并返回您自己的id,即使主系统没有使用它。。。现在。你能澄清一下你所说的“现在是理解API的一种标准”是什么意思吗?选项2比REST好一点,但你可以调整选项1。真正的问题是谁是这些数据的主人?这些数据是特定于您的子系统的,还是只是来自主系统的副本?拥有数据的系统应该定义ID,其他系统应该接受它。长期目标是让其他系统拥有数据。现在这两个系统都拥有它——我的系统拥有的功能还没有被主系统吸收。此外,我的系统到目前为止一直独立使用,并管理自己的唯一id系统,因此如果它只接受来自主系统的id,可能会有重复的id。在这种情况下,我会说让主系统定义id。您的系统应将此id保留在“参考id”字段中。这是选项1。尽管如此,您仍然可以尝试遵循REST规范并返回您自己的id,即使主系统没有使用它。。。现在。