我想知道是否有人对这个问题有一些见解。
一点背景:
我们一直在使用 Rails 从旧的 dBase 和基于 Visual Basic 的系统迁移,以构建内部公司 IntrAnet,它可以处理标签打印、库存控制、运输等 - 基本上是一个 ERP
困境
现在我们需要替换一个用 Java 完成的面向客户的旧网站,该网站将连接到我们的内部系统供客户使用。我们希望能够从我们的内部系统中提取库存、下订单、帐户报表等信息,并将其实时公开。原因是我们在网站上接受订单,通过传真和电话,有时我们有预约。因此,有时(非常罕见)即使是我们旧 Java 网站上库存更新的短暂延迟也会导致我们延期交货,因为我们在半小时内将同一商品卖给了 2 位客户。它通常会在一天内修复,但我们希望将来避免这种情况。
实际问题
有人对如何以更好的方式完成此任务有任何建议吗?
以下是我看到的三个选项:
a) 在 Web 服务器上构建一个单独的 Rails 应用程序,它将连接到我们内部应用程序连接到的同一个数据库。
+++ 优点:实时数据 - 与我们的内部应用程序看到的相同,即实时创建订单,库存立即耗尽
--- 缺点:潜在的安全风险、代码重复——即我需要复制所有处理订单的控制器、模型、视图等。
b) 在 Web 服务器上构建一个单独的 Rails 应用程序,它将连接到与我们内部应用程序不同的数据库。
- +++ 优点:更少的安全风险。
- --- 缺点:同步网络数据库和内部数据库(或使用像 REST-API 之类的网络服务)的额外工作,处理库存耗尽和订单创建的额外代码,代码重复 - 即我需要复制所有控制器,处理订单的模型、视图等。
c) 向网络公开内部应用程序
- +++ 优点:消除了上面的所有问题。这是非常“干燥”的方法。
- --- 缺点:更多的安全问题。更复杂的登录系统 - 一种用于 Web,另一种用于使用 LDAP 的内部用户。
那么有什么想法吗?有人有类似的问题要解决吗?请记住,我们公司的资源有限 - 即一位致力于此的开发人员。所以这必须是那些“正确”和“聪明”的解决方案之一,而不是“在这个解决方案上投入金钱/人员/资源”。
谢谢你。