新闻中心
单个项目多用户协同开发系统
基于zenon项目编辑器的分布式项目管理高效项目开发系列的这一讲重点会放在如何实现单一项目下多用户协同开发这一重要主题上。我们将在本期中专门讨论内置于zenon编辑器中的分布式项目开发问题:即如何在同一个项目上通过数个工程师同时协作开发?
文本 马库斯·赫尔博克
技术服务主管分布式工程 — 多用户编辑器
zenon Editor 自 zenon 6.20 (2005) 版本以来一直有内置多用户开发模块。这意味着多人可以同时编辑同一个项目。这对于大型项目尤其重要,因为它可将依次顺序开发的项目转变到更有效的多人并行开发过程。让数名工程师可以同时处理同一项目。从而可以更快地完成项目开发,大大减少项目设计所花费的时间。
为此我们有在zenon上配置了一个综合的管理机制,通过它来让项目开发人员在开发工作中不会产生冲突和阻碍。其核心在于要确保任意对象或模块在任何时候只能由一个人编辑。
图 1:
将新项目创建为多用户项目。多用户项目详情
首先必须要做的是将需要多人协同开发的项目设置为多用户项目属性,这只需单击鼠标即可轻松完成。但是,必须牢记一些事情:由于多人同时处理同一个项目,因此需要设置一个中控项目点或一个中控项目服务器,让所有的线程及更新都通过该服务器运行管理。该协同模块允许将网络中的任一计算机设置并承担此角色,前提是安装有zenon,同时数据库服务zendbsrv.exe有启动。例如,在正常工作环境中,中央项目服务器可以是项目成员的笔记本。要注意的一点就是应计算机必须全天可用,以备项目成员在处理该项目时有效。zendbSRV 通常以用户上下文方式运行:该过程会在有用户登录时开始,在用户注销后结束。但是,这种工作方式在中央服务器方式布置时并不是最佳的,因为用户必须始终登录才能启用这个多用户功能。因此,也允许将zendbsrv 也注册为服务。让此服务随服务器操作系统启动而启动,这样就不必依赖于用户登录。为使 zendbsrv 作为服务运行,您必须首先在指定的项目协同开发服务器上将其注册为服务。为此,需要使用具有管理员权限的命令行工具 cmd.exe。具体步骤为首先必须注销该进程:zendbsrv – unregsrv。然后再将它被注册为服务:zendbsrv – 服务。 最后再次启动服务:net start zendbsrv。 并关闭命令行工具。此时您应该注意不能让startup tool再用于注册,否则它将再次注销服务。此外,zendbSRV 也必须可以从网络中的所有站点访问。为此要将Windows 防火墙设置为相应地配置。若局域网中有安装其他防火墙软件,则必须相应设置授权 TCP 1103 端口开放。整个过程勿需网络(文件)授权。
如何创建多用户项目
有两种方法可以做到这一点:
一、通过配置“新建项目”对话框,此对话框 还为您提供了将计算机配置为中控项目服务器的选项。(见图 1)。如果中控项目服务器不是您自己的计算机,则此功能最有用。
二、通过将现有项目转换为多用户项目 —— 使用项目的上下文菜单(见图 2)。使用此方法,正在执行工作的本地计算机会自动定义为中央项目服务器。
图2:
将现有项目转换为多用户项目。一旦执行了上述方法之一,该项目将经历不可撤消的过程转换为多用户项目。当然用户也可以通过创建项目备份并将项目恢复为新的单用户项目来将其转换回来。若确实需要这样做的话,则必须确保将其创建为新项目。若该项目会被其他项目作为runtime多项目管理的一部分引用的话,则也必须相应地修改其项目引用。为此,需要使用“替换项目引用”功能。 这可以通过右键单击“项目”上下文菜单中的项目节点来找到。
多用户项目可以通过带有“M”标记的项目图标轻松识别。然而,作为项目转换的一部分,则还存在另一个有趣的变化:该项目现在会在后台存在两次。一个作为中控项目的副本,所有更改都将合并到其中,另一个作为则在本地客户端。所谓的客户端实例其实是一个工作中的项目副本,其中项目会首先在本地进行更新。这个方式有一个决定性的优势:即所有的更新都可以首先在本机进行测试,只有当您对项目更新的测试结果感到满意后才会将其传输到中控服务器项目中同步。同时也可以让此本地项目副本和服务器项目在zenon中可见。 这可以通过打开“添加现有项目”的项目选择对话框来执行。然后就可以在对话框中看到中控服务器项目(再次用“M”标识)以及节点下方链接的所有项目副本。如果需要,也可以在此对话框中断开这些链接。在项目副本中有一个单独的控制字段:“本地项目副本”。如果激活此字段,则除了服务器项目之外,本地工作实例也可见,并且如果需要,也可以将其删除(参见图 3)。
图 3:
显示服务器项目,本地项目副本和关联用户,也可以在此删除设置。
图 4:
远程 PC 上显示的多用户项目。与此相关的另一个小提示是:任何在客户端计算机上工作的开发人员想知道哪台计算机是项目的服务器时,都可以在项目属性中找到此信息。为此所设置的“数据库服务器”属性可以在“常规”类别中找到,其中显示计算机名称就是中控项目服务器。
问题是那么第二台计算机是如何连接到这个项目的呢? 这只需通过“添加现有项目”即可完成。此对话框窗口提供了在顶部的网络中选择另一台计算机的可能性。当连接其它计算机成功时,所有多用户项目都将可用。单击“确定”会自动创建所选项目的本地项目实例 。使用多用户项目
使用多用户项目与创建项目一样符合人体工程学原则。并让项目中的变量或画面可以像单一用户项目一样轻松编辑。当然与单用户项目的区别也是显而易见的。比如:要更改对象属性,您必须先选中“允许更改”复选框。编辑器会询问是否确认进行更改。并且仅当当项目团队中没有其他人在同时编辑这个所选对象时,才能执行“允许更改”功能。此机制允许临时编辑对象,同时阻止其他团队成员编辑它。
任何的项目更改都可以随时进行测试。因为您使用的是项目的完整本地副本,所以您可以随时立即启动 Runtime 并彻底检查您所做的更改。一旦您对更改感到满意,需要接受这些更改的话。为此要使用“接受更改”上下文菜单。并通过这个方式将更改的项目副本传输到中控服务器上,并且可供所有其他用户使用。在些提醒下:在项目节点的上下文菜单中,可以接受所有模块的一次性更改或撤消它们。这节省了大量的精力和时间!(见图5)
图 5:
多用户编辑适用于所有功能模块。但是其他的项目工程师如何通过自己的本地副本接受上述用户对项目所进行的更改呢?这里有两种方式:通过模块/对象同步或完全同步选项。若是要从服务器更新单个模块或对象,只需单击“更新本地版本”(参见图 6)。然后,更改将传输到项目服务器。然而,由于这只是增量同步,因此会带来一定的风险。例如,如果有人创建了一个新的上下文菜单,并在您现在更新的画面中使用了它,您很可能将看不到他人新建的上下文菜单:因此,最好是启动完整的项目同步。这可使用多用户区域项目上下文菜单中的“同步”命令来实现(见图 7)。这将会使所有来自服务器的更改同步本地计算机。请记住,当编辑器重新启动时,项目会自动同步。这可以防止具有不同项目状态的并发工作。
图 6:
操作简单,撤消或确认只需在服务器端按一下按钮。
图 7:
同步项目或激活离线模式。在这个阶段应该会涉及到一些特殊的情况。 首先可以通过上下文菜单进行更改,而无需询问“您要允许更改吗?有两种不同的方法可以做到这一点:
一.对单个对象的更改。例如允许编辑单个画面或单个变量。
二.对模块的编辑模式。这将让整个模块被设置为一个用户独占使用(参见图 6)的模式。对于一些非常核心的更改,例如对数据类型的更改 ,必须始终检测整个模块。然而,这也意味着该模块在编辑时其他成员不能使用它的任何元件。
开发团队可以很容易地找出当前正在被使用的元件。首先,您可以使用列表视图中的“状态”列,它一目了然地显示该元件是否可用、当前是否正在编辑或是否被其他人独占。若是团队将其它列添加到标准视图中还可以提供额外的信息。为此,请右键单击指定列表标题,然后在上下文菜单中选择“字段选择”命令。在字段选择对话框中,应选择“名称”、“用户”、“允许更改”和“接受的上次更改”列。通过这四列,您可以很好地了解项目中的所有更改(请参见图 8)。
图 8:
在此示例中,变量在本地编辑一次,在外部计算机上编辑一次。其他的项目更新信息可以在额外的列中找到。要快速浏览当前是否有正在编辑的内容,只要通过查看项目树就足够了。使用通过普通节点图标存储的图标可以轻松查看当前状态。当zenon编辑器关闭时,会显示一条通知,指出正在处理的元件。然后团队成员可以接受或放弃这些更改(见图 9)。这确保了用户在长时间离开时不会留下被其他人屏蔽的信息。但万一有发生这种情况,还有一个紧急解决方案:就是可以通过项目选择对话框显示连接的用户。只需选择相应的用户并分离连接即可。但是,应谨慎执行此作:因为该用户在此前所做的所有更改都将因此丢失。
图 9:
在以下情况下必须接受或放弃更改才能关闭编辑器。操作 — 离线模式
离线模式对于项目实操和非公司工作(例如异地工作)非常有用。因为是无需直接连接到项目服务器,并且仍然可以更改项目。一旦员工再次上线,本地项目状态就会自动与服务器状态同步。可以通过使用项目的上下文菜单来快速激活和停用离线模式(见图 7)。如果将项目加载到zenon编辑器中,项目会自动切换到离线模式。应该注意的是,如果数人依次编辑同一个元件,则仅会保存最后一个将它们传输到项目服务器的人员的更改。专有技术保护
zenon 具有“专有技术保护”功能。可根据需要给予用户不同的编辑权限。这特别在向客户提供了样品时尤其如此。最终客户允许能够轻松更新项目中的数个画面。但是,它们不能够更改核心功能,例如变量管理。通过这个功能,这种情况很容易得到解决:可以在功能授权中设置每个编辑模块的授权级别(在项目属性 - 用户管理 - 参见图 10 中)。只有具有相应授权的用户才能继续编辑模块
图 10:
专有保护技术示例:只有服务技术人员可以编辑此变量。ZENON 将最好的想法汇聚在一起
zenon 对团队合作持开放态度,并在合作开展联合项目时支持您以最佳方式将整个团队的专业知识结合起来。画面、变量、配方、功能——所有元件都可以由团队同时编辑。因此,您可以降低项目配置成本,同时提高质量和生产力。凭借 zenon 编辑器中的专有技术保护,用户还可以保护您的应用程序避免非受权操纵 ,并从高效且最重要的是安全的 项目设计中受益。
在本主题“多用系统”主题的第二部分中,我将论述zenon Runtime的亮点之一:多项目管理。这意味着可以在zenon Runtime中同时启动多个项目。这使得多客户端、多服务器、横向透明度、循环冗余等作成为可能。留意它!
ZENON 的分布式工程 • 最佳团队合作
• 不受时间和地点的影响
• 同时编辑项目
• 也可以远程访问
• 减少项目配置时间
• 提高质量和生产力
• 专有技术保护