包工头 - 工人模式

14-08-19 liangshan
                   

包工头 – 工人模式:

actor树模式:

组织结构模式:

包工头工人模式我是从一本书上看到的《大规模分布式系统架构与设计实战》。“包工头-工人”模式会使用到Anycmd的User模块中去。AC是一个隐式的项目。一个项目只有一个包工头,一个包工头可以雇佣很多工人,一个工人在一个项目下只受雇于一个包工头。每一个工人都是自己的包工头。

这是军队管理的组织结构。

包工头可以把项目拆分成很多子项目,包工头可以把新的子项目承包给新的包工头,每一个工人都可以承包项目,每一个工人都有机会成为包工头,承包项目的工人立即成为该项目的包工头。

不跨越,不交叉。

项目一直往下包,最终的叶子是任务。任务由工人完成,工人完成任务后由该任务所属的项目的包工头汇总,包工头再向自己的上级包工头上报,一直汇总到最初的包工头。每一个包工头负责评估自己的工人们承包的项目是否完成和为自己雇佣的工人打分等。包工头领取酬劳,包工头为自己雇佣的工人分配酬劳。包工头承包的项目完成后包工头和工人们的关系就可以解散了,他们等待在新的项目中被新的包工头雇佣。

无论灵活的自主访问控制还是严格的强制访问控制都可以通过包工头 - 工人模式完成。

包工头 – 手工仓库 – 工人模式:

Anycmd也会支持手工仓库模式。手工仓库是围绕着User而建立起的资源聚合。概念难懂,如果我们这样说可能会更容易理解:手工仓库的实现实际上就是建立一个有UserID(主体)、ObjectType(客体类型)、ObjectID(客体标识)、DynamicExpression这样几个重要字段的元素,并维护出一个有这种元素组成的集合。

手工仓库控制了用户可以看见的数据集范围。每一个用户都只能访问分配给他的手工仓库中的数据。包工头负责往工人的手工仓库中放置资源(放置的是ObjectType和InstanceID这样的引用,需要系统的配合来将工人的手工仓库中的资源记录正确的展示,用户的界面应该是根据由当前用户的手工仓库中的记录和系统配置自动绘制出来的)。

包工头 – 职介所 – 手工仓库 – 工人模式:

如需详细了解请猛击这里。应用不同,道理相同。

向西方世界学习的时候要摆正态度,居高临下的去学习,倘若做不到俯视它至少不要仰视它。对方不一定比我们更加高大。我喜欢“包工头 - 工人”这个名字不喜欢西方名字。

                   

1