2013-04-10 98 views
0

我正在开发一个新应用程序(应用程序2),我已经拥有一个具有体面用户群的现有应用程序(应用程序1)。在2个Web应用程序之间共享数据

应用2是针对相同的用户群,用户可以使用或应用中任一项两者,如何可以跨应用共享用户数据(多实体)?

选项1 - 共享数据库听起来像一个坏主意,因为我最终会在2个不同的地方写验证规则。

选项2 - 中央服务和数据存储将意味着重新编写应用程序最多1这是运作良好和代码库是非常巨大的。

选项3 - 将App 1数据存储视为中央数据存储并将其公开为API。应用2可以使用它来读取和写入数据。我仍然有这个解决方案几个问题 - 在应用程式2.缓存数据。这会导致其他问题

  • 应用2现在依赖于应用程序1,这意味着应用1问题会影响应用程序2.我可以解决这个问题。
  • 在App 1中更改的数据没有立即反映在App 2中,这是要求之一。我可以通过pub/sub模型应用1和应用2
  • 应用2之间解决这个总是使用API​​将数据写入到App 1个数据存储,我可以将数据传输回应用程序2,但随后其并不一致,而这是最终一致。
  • 应用程序2将数据写入其自己的数据存储,然后将其异步推送至应用程序1。这会导致数据冲突问题。

我该如何处理这个问题,而在我的两个应用程序引入巨大的复杂性。

回答

1

这是我的两分钱。

最简单的方法是让你共享同一个数据库,既然你提到可以共享数据库,这意味着来自App1的域规则仍然适用于App2,即使存在一些差异,它也会更好写出这些变化,而不是写整个事情。

现在,您确实遇到了一个大问题IMO,因为如果我理解得很好,您没有合适的服务层,因为如果您这样做了,您实际上可以对DAL进行任何更改而不影响现有的1 。

之前,我可以去任何进一步的我确实需要知道更多你的当前架构的一点,否则我最终作出错误的假设。

  • 什么样的Web应用程序框架您使用的是例如: - ASP.Net MVC
  • 你有一个服务/ API层和什么有关域和DAL层?

UPDATE

所以现有的应用程序是建立在PHP中,如果你从App 1提取的REST API,并将其置于可能之间共享一个全新的PHP解决方案(网站)什么App 1和App 2作为服务API?我相信这将是您最简单的方式。

+0

1.两个应用程序都是用php 。 2.我确实有一个适用于应用程序1的API。如果我直接在应用程序2中使用它,我担心应用程序2的性能。 – abhinavlal 2013-04-11 00:18:31

+0

您甚至不应该那样做,我的意思是让App 2使用Api 1.您能够从App 1中提取REST API? – Marco 2013-04-11 15:16:54

0

我不能说我对你的情况的所有细节,但我倾向于移动到一个解决方案,你就会有一个新的服务,处理用户和应用程序都将使用它。

这就是说,它不一定是一个大爆炸的举动。您可以先在app1中的用户数据之上添加适当的API。并让app2使用它。然后,您可以在app1中添加一个抽象层,与新API交谈,看起来像App1内部API到APP1,然后将数据移动到新数据库,这将成为新服务

相关问题