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

DBMS或SVN中的集中式存储库

  •  4
  • vmaroli  · 技术社区  · 12 年前

    我正在建立一个集中的存储库来存储企业架构师(来自sparx系统)生成的工件,供6-8人的团队使用。最初考虑托管一个PostgreSQL数据库来集中存储工件,出现的另一个选项是使用SVN。查看EA文档,不清楚所考虑选项的利弊。与使用SVN相比,我在使用DBMS时有以下开销。

    1. 托管和管理DBMS
    2. 数据库管理系统的用户配置和管理
    3. 工件版本需要单独进行
    4. 数据库管理系统的备份等

    对于SVN,从EA文档中提到,部署模型仅适用于最大规模为10的团队,并且存在文件损坏的可能性。除此之外,使用SVN托管存储库是否存在任何瓶颈?很高兴能听到在多用户环境中与企业架构师合作过的人的建议。

    4 回复  |  直到 12 年前
        1
  •  9
  •   Uffe    12 年前

    “最多10人”警告是指一个团队共享一个.EAP文件的情况。如果所有用户都有自己的.EAP文件,或者您设置了DBMS存储库,则它不适用。

    在DBMS设置中,我建议使用EA的基线进行版本管理,而不是外部版本控制存储库。概念类似:单个包是基线化的,但不是将版本外部存储在SVN/CVS/etc中,而是将其内部存储在数据库中。

    这使您少了一个需要管理的存储库,但也应该注意的是,EA在将DBMS与外部版本控制相结合时会出现问题,这可能会令人讨厌,甚至(最坏的情况)会导致信息丢失。外部版本控制旨在与.EAP文件一起使用。

    与外部版本控制相比,基线有一个很大的优势:您可以在EA内部直观地比较不同的版本,并查看在各个图表中添加、删除、更改和移动了什么。最大的缺点是:基线化的包在项目浏览器中没有像版本控制的包那样用特殊的图标表示。

    具有单独.EAP文件和外部版本控制的部署模型使人们可以选择将不同的包以及这些包的不同版本导入到他们的EA项目中。对于DBMS模型,只有一个EA项目,所以每个人总是看到相同包的相同版本。

    是的,使用DBMS,您需要设置用户并实施备份计划。但您也需要SVN存储库的备份,以及团队成员的个人.EAP文件的备份。

    基于DBMS的EA中的用户管理是一个分两步进行的过程。每个用户都需要对数据库进行读/写访问,每个人在EA项目中也需要一个单独的帐户。这些可以通过从Windows域导入来轻松创建。

    这是假设您在项目中打开了用户安全性,您肯定想这样做,以防止并发编辑问题。

    我对团队设置的建议始终是DBMS+用户安全性+基线。它为EA工件提供了一个单独的位置,每个人总是看到相同的东西。

        2
  •  1
  •   arphex    12 年前

    我同意,我有同样的设置和环境。

    我的文档中有一段来自I-net的代码片段。对不起,我没有消息来源。但在根模型或项目中找到所有基线是很好的:

    在DBMS中查找所有基线 STRG+F打开模型搜索。选项-->管理搜索-->创建新搜索-->名称查找所有基线-->编辑器类型SQL编辑器。粘贴此:

    SELECT t_package.ea_guid AS CLASSGUID, t_document.ElementType AS CLASSTYPE, t_package.Package_ID as ID, t_package.Name, t_package.Notes as PackageNotes, t_document.Notes as BaselineComments 
    FROM t_document INNER JOIN t_package ON t_document.ElementID = t_package.ea_guid
    

    现在您有了一个名为(查找所有基线)的新搜索,这非常舒服!

        3
  •  1
  •   Ricardo    9 年前

    目前,我正在研究同一个问题,我发现这些问题很有帮助:

    部署企业架构师 http://www.sparxsystems.com/downloads/whitepapers/EA_Deployment.pdf

    面向企业架构师的版本控制最佳实践 http://www.sparxsystems.com/WhitePapers/Version_Control.pdf

    [更新]

    经过数月的考虑和测试,我们的团队决定了版本控制路线。

    每个企业架构师项目都需要自己的数据库。这意味着,如果你有5个项目,你需要5个数据库,每个团队一个。将其扩展到50个项目或系统,我们有50个数据库可供使用、管理等。

    我们的方法是:

    • 每个项目在版本控制中都有自己的文件夹;
    • 用于共享体系结构模型的可重用资产服务(RAS);
    • 安全性由版本控制团队完成;
    • 使用导入/导出共享模型(请记住打开图像导出!)

    需要改进的地方:

    我们希望承包商能够使用“云”访问这些模型,但我们需要首先解决安全问题。

        4
  •  0
  •   murphy    8 年前

    DBMS设置还有一个考虑因素,那就是从远程位置使用存储库时的EA性能。EA没有针对到其项目数据库(EAP或DBMS)的远程连接进行优化,并且慢速连接可能会让您在编辑过程中等待很长时间。