EntityType和ResourceType和Ontology这三层概念

EntityType和ResourceType和Ontology三者的区别
三层概念

EntityType、Property、Method层;
ResourceType、Field、Operation层;
Ontology、Element、Action层;
EntityType和ResourceType两者的区别

EntityType属于系统元素,是程序开发时的概念;而ResourceType是资源层的概念,是系统的外观,是用户看到的部分,属于接口层的概念。基本上EntityType和ResourceType是对应的,只有个别场景下可能会不对应。EntityType层可能会经常变更,但ResourceType层极少变更。Method借自面向对象方法论中的对象的方法这个概念(对象上的函数叫方法,系统下的函数叫函数)。 EntityType基本上对应的是代码中的Entity Model Class,Property基本上对应的是class的属性,而Method对应的是Class的对象方法(非类方法)。 ResourceType和EntityType是有少许区别的: ResourceType对应的是现实世界中的东西,是用户的领域中的东西,ResourceType是对用户所面向的整个资源集合中元素(item)的第一次分类。ResourceType下有Field和Operation,Field基本上对应EntityType的Property,而Operation基本上对应EntityType的Method。 各行各业几乎都有它们领域内的标准,相关机构会给出详细的一份标准文档,标准文档上会详细的描述每一种资源,详细的列出它们的元素、甚至行为;anycmd正是使用ResourceType和Field和Operation去对应各种标准的,这一层的变更不决定于我们,但是EntityType层的变更完取决于我们。

ResourceType和Ontology的区别

权限引擎(Anycmd Engine)和数据交换(Anycmd Edi)这两个限界上下文下有相似的概念,但Ontology设计用来面向飞人类主体,而ResourceType设计用来面向人类主体。AnycmdEdi中的Ontology概念基本上对应ResourceType,区别也很小,ResourceType下是Field概念,而Ontology下是Element概念,Element与Field比较相似差有但很小,换了一层要换一个名字,Ontology下的Action概念基本上对应ResourceType下的Operation概念,差别也有但很小。 ResourceType和Field和Operation用来承载访问控制契约,权限引擎面向ResourceType和Field和Operation来工作,这一层几乎很少变更。权限引擎不面向EntityType和Property层工作是因为它们可能会被程序员经常变更。 ResourceType上的编码,Operation上的编码,Field上的编码,再加上资源的命名空间,连接起来组成ResourceNamespace.ResourceTypeCode.FieldCode和成ResourceNamespace.ResourceTypeCode.OperationCode这么一种具有层级的标识。这个标识少有变更,这一层的工作尽量由架构师在设计阶段书写,程序员书写代码的时候尽量往资源层的概念去对应。

总结

这样的话我们的一个系统中被分出了三层接口:

Ontology、Element、Action层;
ResourceType、Field、Operation层;
EntityType、Property、Method层。
第1层用来连接外部非人类主体,第2层用来面向外部人类主体,第3层用来实现我们的系统。

方法论(扩展)

资源是树形的,因为资源是空间,资源是和这个宇宙中的空间概念对应的,空间都是树形的,一个空间只具有一个父空间,空间是不能交差的,空间是一级一级定位的(url),比如银河系=>太阳系=>地球=>中国=>北京=>天安门=>人民大会堂…… 另一维是时间,行为、方法、函数、栈、等这些概念都是指的变化,变化就是时间。世界没有第五维度,也没有第四维度,也没有三个维度,两个维度,只有一个维度。宇宙中没有长宽高,只有集合,只有树,只有父子关系,没有直线…… 我们只要能控制到任何主体在任何空间任何时间对任何资源干任何事情,并控制能干几次,我们就胜利了,骇客帝国中的邪恶主体别想威胁我们。整棵树上的哪个空间(资源)坏了我们就直接将那个空间从整棵树上剪掉,让那个空间消失,然后重建. (关于系统为什么是树形的,参考系统为什么是树形?与宇宙的统一)
[该贴被anycmd于2015-01-14 10:49修改过]