大规模分布式系统架构与设计实战之通用包工头模式

包工头模式

包工头 – 工人模式:

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

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

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

不跨越,不交叉。

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

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

包工头工人模式实际上就是组织模式。这种模式到处存在,创造出了巨大 社会价值。组织结构模型和注释如下:

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

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

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

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

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

Anycmd是一个.net平台的完全开源的,完整支持RBAC的(包括核心RBAC、通用角色层次RBAC、静态职责分离RBAC和动态责任分离RBAC),将会支持xacml的通用的权限框架、中间件、解决方案。完整的RBAC规范所定义的能力只是anycmd所提供的能力集的一个子集。 如果您感兴趣的话现在可以先观察Anycmd的源码,期待您为Anycmd提供帮助确保她走在正确的道路上。

框架、中间件、解决方案是它的三种使用模式:

框架模式:引用一两个必要的dll或者相应的源码,它跟您的应用系统运行在一起,您有能力完全控制anycmd,您需要自己提供UI层,但anycmd自带的UI层也是可用的。通过面向anycmd遍布各处的扩展点编程使用者有机会有能力实现自己个性化的需求;

中间件模式:引用一两个必要的dll和一些资源文件,它可以跟您的应用系统运行在一起,它提供UI层但您也可以删除并自主提供,它按照最佳实践提供默认配置,您可以通过调整配置比如自定义插件来满足或接近满足您的需求。可以把anycmd中间件看作是一个独立的系统,只不过它可以和你的应用系统运行在同一个进程、同一个或不同的AppDomain。

解决方案模式:提供一整套AC最佳实践、方法论,使用者有走向最佳实践的意愿。
如何使用


anycmd不仅提供了来自RBAC国际规范文档的IRBACService接口http://git.oschina.net/anycmd/anycmd/blob/master/Framework/Anycmd/IRBACService.cs 还提供了一整套稳定的、功能完备的、风格一致的、流畅的api。框架使用起来非常简单,限定在AC领域内,基本会做到在权限方面的每一个需求都刚好有一个流畅的风格一致的api。编程的时候只需要通过一套风格一致的流畅的api告诉框架我们希望做什么,然后框架就去做了。但是如果能够明白访问控制系统做事情的逻辑的话会更容易使用那些api。 事实上anycmd很容易地就完整实现了对IRBACService的支持,因为对IRBACService的实现不需要书写专门的逻辑,因为anycmd的api是比RBAC所定义的能力集更大的,只需直接委托给anycmd的api就完整实现了IRBACService。

大方向


l  时机成熟后anycmd采用社区开发模式,接受社区提交的代码,不必担心anycmd会有天没人维护。

l  xacml标准非常棒,但有点学术,很有难度。xacml的用户是程序员和专业的安全管理员而不是普通的用户,所以xacml的开发优先级比较靠后,支持xacml的时候希望借助社区的力量。

anycmd是一个.net平台的完全开源的,完整支持RBAC的,将会支持xacml的通用的权限框架、中间件、系统。

如果您感兴趣的话现在可以先观察Anycmd的源码,期待您为Anycmd.AC提供帮助确保她走在正确的道路上。

Anycmd的开源地址在http://git.oschina.net/anycmd/anycmd

大规模分布式系统架构与设计实战之通用包工头模式

时间: 2024-08-13 08:27:22

大规模分布式系统架构与设计实战之通用包工头模式的相关文章

大规模分布式系统架构与设计实战摘录

大规模分布式系统架构与设计实战摘录 一位网站资深架构师曾经说过:在互联网公司呆一年,相当于在传统软件公司呆三年. 他的意思大概是在互联网公司一年遇到的问题比传统软件公司三年遇到的问题还多.而且 随着网站业务的快速发展,问题也层出不穷,没年遇到的问题都不同. 遇到问题,解决问 题,经历了这个过程,技术才能升华,人和技术才能融为一体,才知道什么技术是真正有 用的,什么技术是花拳绣腿.大型网站的技术本质都很简单,掌握起来也不难.大型网站 的架构师最有价值的地发不在于他们掌握了多少技术,而在于他们经历多

专訪阿里陶辉:大规模分布式系统、高性能server设计经验分享

http://www.csdn.net/article/2014-06-27/2820432 摘要:先后就职于在国内知名的互联网公司,眼下在阿里云弹性计算部门做架构设计与核心模块代码的编写,主要负责云server管理系统和存储系统的优化.陶辉就大规模分布式系统.高性能server设计分享了自己的看法. 关注陶辉非常长时间,初次对陶辉的了解还是在我们CSDN的博客上,从2007年開始写博客,一直到如今,假设不是对技术的追求和热爱,以及热爱分享的精神,我想不是非常多人能坚持下来,拥有多年大型互联网公

基于Dubbo的分布式系统架构实战视频课程

课程介绍:Dubbo是阿里巴巴开源的分布式服务化治理框架(微服务框架),久经阿里巴巴电商平台的大规模复杂业务的高并发考验,到目前为止Dubbo仍然是开源界中体系最完善的服务化治理框架,因此Dubbo被国内大量的的互联网公司和专统企业使用,国内使用Dubbo的企业有:阿里巴巴.京东.当当.携程.去哪儿.搜狐.南方航空.中软国际.软通动力.各大电信运营商等 京东.当当.去哪儿等企业还组建了自己的中间件团队按自己的业务需求对Dubbo进行框架定制,目前当当网已开源了自己的Dubbo定制版Dubbox

基于Dubbo的分布式系统架构实战

本套课程完整高清,需要的同学联系我,需要的速度了.联系Q 2929608935 01节:课程介绍02节:使用Dubbo对传统工程进行服务化改造的思路介绍03节:使用Dubbo对传统工程进行服务化改造04节:ZooKeeper注册中心安装05节:使用Dubbo对传统工程进行服务化改造后的服务调用测试06节:使用Dubbo进行规模服务化前的工程结构优化07节:Dubbo管理控制台的安装08节:使用Maven构建Dubbo服务的可运行jar包09节:在Linux操作系统上手工部署Dubbo服务10节:

[.NET领域驱动设计实战系列]专题二:结合领域驱动设计的面向服务架构来搭建网上书店

一.前言 在前面专题一中,我已经介绍了我写这系列文章的初衷了.由于dax.net中的DDD框架和Byteart Retail案例并没有对其形成过程做一步步分析,而是把整个DDD的实现案例展现给我们,这对于一些刚刚接触领域驱动设计的朋友可能会非常迷茫,从而觉得领域驱动设计很难,很复杂,因为学习中要消化一个整个案例的知识,这样未免很多人消化不了就打退堂鼓,就不继续研究下去了,所以这样也不利于DDD的推广.然而本系列可以说是刚接触领域驱动设计朋友的福音,本系列将结合领域驱动设计的思想来一步步构建一个网

龙果学院基于Dubbo分布式系统架构的第三方支付系统实战教程五一优惠活动

五一特惠,200元免费领!龙果学院<基于Dubbo分布式系统架构实战教程>提前大放“价”:点击分享链接购买即可获得百元现金红包奖励,更多惊喜请点击:http://www.roncoo.com/share.html?hamc=hLPG8QsaaWVOl2Z76wpJHp3JBbZZF%2Bywm5vEfPp9LbLkAjAnB%2BnHpF8rHqMAsZ9U%2Ff1CcK%2Fi%2BOVhELgcRY7CQA%3D%3D 关注公众号:

飞天5K实战经验:大规模分布式系统运维实践

2013年,云梯1实现空间优化与跨机房集群扩展,云梯2单集群规模从1500台升级到5000台,同时跨集群扩展的5K项目顺利取得阶段性成果,阿里成为第一个独立研发拥有这类大规模通用计算平台的公司.当时,云梯1.云梯2,再加上已上线的生产集群,阿里整体集群规模已超过万台.迄今为止,全球范围内,只有少数几家公司拥有如此规模的自主知识产权的集群.我们非常幸运,能够运维和管理如此大规模的生产集群.但短时间大规模快速膨胀的现状,确实也为运维工作带来了巨大的挑战.面对这些挑战,我们不仅迅速实现了自动化运维,还

Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析

Java生鲜电商平台-电商中海量搜索ElasticSearch架构设计实战与源码解析 生鲜电商搜索引擎的特点 众所周知,标准的搜索引擎主要分成三个大的部分,第一步是爬虫系统,第二步是数据分析,第三步才是检索结果.首先,电商的搜索引擎并没有爬虫系统,因为所有的数据都是结构化的,一般都是微软的数据库或者 Oracle 的数据库,所以不用像百度一样用「爬虫」去不断去别的网站找内容,当然,电商其实也有自己的「爬虫」系统,一般都是抓取友商的价格,再对自己进行调整. 第二点,就是电商搜索引擎的过滤功能其实比

秒杀系统架构分析与实战

0 系列目录 秒杀系统架构 秒杀系统架构分析与实战 1 秒杀业务分析 正常电子商务流程 (1)查询商品:(2)创建订单:(3)扣减库存:(4)更新订单:(5)付款:(6)卖家发货 秒杀业务的特性 (1)低廉价格:(2)大幅推广:(3)瞬时售空:(4)一般是定时上架:(5)时间短.瞬时并发量高: 2 秒杀技术挑战 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有: 对现有网站业务造成冲击 秒杀活动只是网站营销的一个附加活动,