2011-02-27 64 views
0

我们正在维护一个计划应用程序,该应用程序部署在几个物理分离的站点上。这些站点使用多主复制(使用Oracle 10g DB),这意味着没有中央站点(分散式系统)。然而,随着网站数量的增长 - 我们的困境也在增加:更多的冲突应该被手动解决。分布式分布式应用程序的体系结构

我们将重新实现该应用程序,并且希望考虑此架构的替代方案。

是在站点之间共享的数据是2种口味:

  • 地图(附加的只读数据,存储为存储在数据库文件的元数据。)
  • 计划和相关数据(存储为关系数据在数据库中)

所有数据都需要在所有站点中存在,但它对于即时可用并不重要。

即使与网络断开连接,网站也应能够正常工作。

任何帮助,将不胜感激。

+1

我认为你必须扩大“这样做我们的连环套”,让我们其他人可以提供答案任何价值。 – 2011-02-27 21:27:30

回答

2

最好的体系结构适合问题的背景:最终形成最佳体系结构和解决方案的驱动程序是什么?例如(从Yuriys的角度来看):你的困境可能是性能和/或数据管理相关的 - 两者都需要解决,但是你不可能得到一个解决这两个问题的解决方案,它们甚至可能是矛盾的。

在数据管理方面,我建议您需要拥有“真实”数据的主副本。但是这可能不适合表现 - 当然这取决于方法。

就具体情况而言:我会从数据开始:模型化,确保理解它,理解当前的数据流以及它们与业务流程的关系。您希望达到您可以说“我们这样做,因为业务流程合理要求”和“我们这样做,因为我们不应该有技术限制”。

在一般意义上,你需要:

  1. 把你的问题,因为输入的背景
  2. 这将有助于塑造你的得分标准(这是你将如何评价你的想法)。
  3. 定义初始高级解决方案选项 /方向。这些都是蓝天的讨论,可以相对不受限制:思考力量大,思考难题。关键的一点是不要开始思考实施 - 甚至是具体的技术。您也可以将业务限制放在一边:“我们这样做是因为当前的业务流程是X,如果我们采用Y(使用这种新技术),那么我们可以做Z并降低运营成本”。
  4. 评论和得分这些违反你的得分标准。
  5. 追查逻辑选项:基本上输出3 & 4并带他们到一个新的水平。您现在可能想开始考虑企业/设计模式。
  6. 评论和评分这些对你的评分标准
  7. 追求实施选项:你需要一个组件做“X”:你重复使用,购买或建造?有最好的工具可以使用吗?它们是否与您当前的基础设施兼容?等等。
  8. 评论和得分这些违反你的得分标准。
  9. 记录结果(为什么)在建筑决策注册表中供将来参考;这应该/必须包括前面步骤的输入和输出。这里的想法是阻止那些追随你的人不得不重新做所有的工作 - 或者盲目地用一个糟糕的决定来重写你的深思熟虑的决定。

更新:具体细节

  • 您使用 “多主” 复制 - 怎么样主从?
  • 您正在使用数据库复制 - 那不是以数据库为中心的解决方案呢?
  • 查看特定于数据和/或分布式系统的设计模式; Data Patterns看起来像一个好的开始(我自己并没有读过它,也许Oracle提供了类似的材料,可能更适合您的平台的具体情况)。
  • 如果网站离线,您可以锁定某些表格/数据,以便它们不能更改,直到再次上线为止?
  • 使用“检出”源控制方法确保数据更改得到良好控制。
  • 看看不同的缓存方法,这可能会给你一些有用的想法,因为基本概念是保持本地数据副本以便快速访问 - 而不会让它们过时。
  • 看看多租户架构,他们经常需要处理以不同方式分离数据并在分布式环境中工作。

是的,我确实提供了一个普遍的答案 - 但给出的信息也是相当普遍的:)

+0

谢谢艾德里安。这是一个通过架构形成和分析过程,我给你+1。然而,这是一个普遍的答案,并没有指出我的具体问题。我不是在寻找方法来建筑和评分。我需要针对具体问题的建筑理念。我很乐意提供有关我的问题的更多细节。 – 2011-03-01 15:43:47