代码之家  ›  专栏  ›  技术社区  ›  konung

将IntrAnet和Web站点结合起来的最佳策略是什么?

  •  1
  • konung  · 技术社区  · 16 年前

    我想知道是否有人对这个问题有一些见解。

    一点背景

    我们一直在使用Rails从旧的数据库和基于Visual Basic的系统迁移 投资控制、运输等-基本上是ERP

    将连接到我们的内部系统供客户使用。我们希望能够从我们的内部系统中提取库存、订单安排、对账单等信息,并将其公开给SiteLive。原因是我们在网站上通过传真和传真接受订单;打电话,有时我们会有旁听。因此,有时(很少)在我们的旧Java站点上,即使是库存更新的短暂延迟也会导致我们延期下单,因为我们在半小时内将相同的商品卖给了两个客户。它通常在一天内修复,但我们希望在将来避免这种情况。

    有没有人对如何以更好的方式实现这一点有什么建议

    以下是我看到的三个选项:

    相同的 我们的内部应用程序连接到的数据库。

    • ---缺点:潜在的安全风险、代码重复-即我需要复制所有处理订单的控制器、模型、视图等。

    b) 在web服务器上构建一个单独的Rails应用程序,该应用程序将连接到 不同的

    • +++优点:较少的安全风险。

    c) 向web公开内部应用程序

    • +++优点:以上所有问题都已消除。这是一种非常“干燥”的er方法。

    有什么想法吗?有人有类似的问题要解决吗?请记住,我们公司的资源是有限的,也就是说,只有一个开发人员致力于此。因此,这必须是一个“正确”和“聪明”的解决方案,而不是“投入资金/人力/资源”的解决方案。

    非常感谢。

    5 回复  |  直到 16 年前
        1
  •  1
  •   Mike    16 年前

    我可能会为公共站点创建单独的控制器,并使用ActiveResource从内部应用程序中提取数据。看看

    http://blog.rubybestpractices.com/posts/gregory/rails_modularity_1.html

    http://api.rubyonrails.org/classes/ActiveResource/Base.html

    编辑-固定链接和添加的api链接

        2
  •  1
  •   dr.    16 年前

    我会去喝一杯。您应该能够创建控制器,使其可重复使用。

    内部用户与外部用户一样可能复制数据。

        3
  •  1
  •   djna    16 年前

    对于员工来说,公共用户界面和内部用户界面可能需要不同。数据需要一致性,所以我会投入相当多的精力来确保只有一个确定的数据库。那么:一个数据库两个用户界面?

    具有两个UI都可以使用的“服务”层。如果这是Java,我将非常有信心快速完成服务。我想知道在Ruby/Rails中有多容易。

    最好的结果是,您现有的客户javaui可以调整为使用Rails服务层。

        4
  •  1
  •   DanSingerman    16 年前

    假设您相信您的程序员不会意外地在错误的位置公开内容,“正确”的解决方案在我看来似乎只有一个应用程序,但有两组不同的控制器和视图,一组供内部使用,另一组供面向公众使用。这将使您了解djna关于一个数据库、两个UI的想法。

    正如您所说,拥有两个独立的数据库将涉及大量的重复,以及复制问题。

    让两个完全不同的应用程序使用同一个数据库对我来说毫无意义;Rails应用程序的ActiveRecord部分是Ruby代码中的数据库抽象,因此为单个数据库提供两个抽象似乎有点错误。

    然后,您还可以在模型中使用通用业务规则,以避免站点的两个版本之间的代码重复。

    如果你不完全信任你的程序员,那么Mike的ActiveResource方法是相当好的——它会让你很难意外地公开东西(尽管ActiveResource比ActiveRecord灵活得多,功能丰富得多)

        5
  •  1
  •   nathanvda    16 年前

    您使用的是什么版本的Rails?由于包含了2.3版Rails引擎,因此可以在Rails插件中共享通用代码(模型/视图/控制器)。

    Railscast 简单介绍一下。

    我也用它。我已经为不同的客户端开发了三个应用程序,但是所有的共享代码都在一个插件中。