在一个支持异构环境或分布式服务的互联架构中,响应者(Responser-应用对象的宿主机Host)、请求者(Requster-应用对象提供的各种操作对象Operation,由Actor发起)和现场工作者(Worker,负责应用对象呈现和捕获用户动作的前端服务器Servent),在特定协议(比如,各种API)或契约(比如,各种Frame)下各司其职,使得提供者(Provider)、消费者(Consumer)以及其它任何相关的COM对象(提供所需各种服务特性)都能在一个特定的应用层协议上简单有效地进行交互,而不用关心谁是它们的提供者、生产者、服务者...以及它们位于何处等问题。在这里,所有COM对象只需要在一个具体的Box上工作即可。
对应用系统而言,上面的应用层协议本身是一个系统级别的COM对象,是互联架构设计的基础。
同时,在互联架构中,以上提供服务的各方本身是一个容器级别的COM对象(一个*ModelBase对象,ModelBase是一个可扩展的容器基类),它们使用了相同或不同的各种技术和工具提供应用级别的基础COM对象(一个*FeatureBase类,作为可扩展的特定功能的基类)并实现自身在交互中所占据的参与方职能(*ProviderBase的一个具体提供对象。比如,Host/Servant/Box/Application)。
另外,不管提供何种能力,所有提供者具有相同的构成部分-提供服务,提供界面、提供交互。这三个部分是服务提供模型对象(一个COM对象提供者Provider的"型Model"实例)的不同形式,即是Provider的三个“分体Brach”。当且仅当一个COM对象的这三个分体可以在特定级别(系统System/容器Container/应用Application)上符合该服务Service所声明的范围Scope或该服务所使用或赖以运行的应用层协议Aplication Protocol时,它才能作为互联架构系统中的一个COM对象。
支持互联架构的结构体系
为了支持互联架构,需要进一步分析提供这三种"式"的程序模型(COM对象的原型基类)和实现基础。它是对操作对象Operation的特点Charateristic的特征Feature化抽取。一个操作对象最基础的特点就是它有一个拥有者,并且专用来在其拥有者上请求一个结果
即,使用 操作对象对于作用于其上的-主体Master-或位于其中-容器Container 的影响种类(RusultIn)来 表示了这个特性--Operation对象的RusultIn特性。
Operation的拥有者本身使用一个结构化原型(模型,应用系统的顶级模型就是对象组件模型COM)来表示,而任何影响也将只与这个COM对象本身有关,也就是说,不同的影响只能由模型本身的两大特征来确定,那就是在上一篇“'模式'是什么”中所说的,对应静态性和动态性的“分体Branch”和“变体Variant”。
解决这个问题的方案,就是“结构维持”,即,解决模型如何在应用中的各种外力-已知的操作对象-作用下维持结构不变。
操作对象
Operation操作对象是附加在模型的某种Provider对象上的,它是模型上一个具体特性Feature提供者的一个可以被Actor调用的一个方法(这个方法最晚必须在Actor调用时实现)。(上面的RusultIn就是用来返回ExpressionBase类的属性Scope的值,使用"ebs_*"。)
这里,使用RusultIn来描述一个方法在Master上或Container中(两种不同Box)被估值evaluated时导致的结果。它只会是以下三种之一:
- 无变化(Scope = Operation)。表示这是交互Box上的一个可见特性-操作对象本身。由应用协议的API接口方法本身的特点决定(一个StructureExpression对象,特定于应用协议)--仅当该方法是安全方法时。例如对应用系统而言,模型、视图、UI元素对象都是安全的;
- 引起变化(实例范围,Scope = Intance) :表示这是操作对象的一个“变体Variant” (一个ProcedureExpression对象,特定于应用对象),该调用是幂等的(返回同一个可操作的COM对象-它拥有多重构参)。一个应用系统中任何形式的资源,包括文件、COM对象、数据等都是幂等的;
- 导致分支(分类范围,Scope=Classifier):表示这是操作对象模型的一个“分体Branch”(一个ScopeExpression,特定于业务需求)。方法不安全,调用不幂等。它描述了一个应用对象的Box特性,为应用方案返回一个特定种类的PCOM对象(特定的COM模型-拥有多重构参的初始加载参数)。一个项目/代码模板、组件模型中的所有变化因素、因变量都是分体,但分体仅当它能关联某个方法(功能)或特征时才有意义。
结构维持
结构维持是用来 构建支持互联架构的应用系统中的一个COM对象结构体系 的方法。简单地说,它需要给出一种方法来帮助一个COM对象确定在特定交互上所需要维持结构的明确范围。
一个结构维持基类PreserverBase,提供结构维持模型,并提供结构维持的基本实现--提供应用Application现场维护和 应用现场支持。
互联架构中COM对象的结构维持是任何一个COM对象得以在应用交互时提供/操作应用特性(Feature对象)的基础,它表示了一个模型作为应用中参与交互的某个特定的特性对象时所需要的结构维持范围。它为COM对象提供一个类似实例化/生产式等使之在应用环境中得以存在的能力,由它为一个模型在具体应用中确定要提供哪些服务,作为哪种容器和/或如何实例化等等并为它们提供 应用现场维持支持。
它基于以下两个基本实现来为某个特定位置上、某个情况下提供特定于该case下所需协同的不同COM对象的现场信息模型:
1是使托管COM对象简单可操作,甚至,大多数情况下可以简单的通过配置文件就能自动托管;
2是了解和/或配置应用各参与方协同工作流程以保证操作过程中由某些非托管COM对象引起的局部更新能在需要时触发所需多个COM对象协作达成一个模型实例。
结构维持的实现基础Foundation,是由PCOM的结构体系(参见上一篇“'模式'是什么”)来提供的。 在这个结构体系中:
- 将“COM型”作为COM对象的基类,通过COM对象的不同级别(系统System/容器Container/应用Application)的划分给出整个COM对象家族的Lineage-COM对象身份所系;
- 在此基础上,应用协议给出互联架构中COM对象的封装要求-Box-COM对象工作所在;
- PCOM的结构体系中,为互联架构下的COM对象的结构维持基类PreserverBase-COM对象能力所及,基于COM模型提供两种建立参照系的方式:
- 以“KV型”提供COM模型上的Feature条目-它允许COM对象作为已知、特定功能(由Feature描述)的BOX对象添加到应用系统中;
- 以“Relational型”提供COM模型上已知特性的Provider条目-它允许COM对象作为特定Feture的服务提供者添加到应用系统。
在互联架构的结构体系中,任何COM对象都是COM型的一个层次结构所描述的COM集(COMSet)中的一个COM节点(COMNode),它定义了一个*ModelBase类来提供可扩展的模型基类,这个*ModelBase的基础是由相应的应用协议规定的,它作为COM对象层次结构中更外层的COM对象的容器。一个容器对象由它在应用系统中的位置(BoxSet)来决定,而最终填充容器的应用对象则由具体应用中所需要的功能集(FeatureSet)来确定。
PCOM中的任何关于基类及其下所有扩展类中关于范围的描述,统一由范围集(ScopeSet)描述。
说明:
- ExpressionBase类,是PCOM中的顶级特性之一。在PCOM中表达基范围表示为 ebs_Feature、 ebs_Instance和ebs_Classifier。
- 和它并列的另一个特性就是模式基类-PatternBase。PatternBase的子类是Mode和Style。PatternBase也有自己的基范围,同样的,在PCOM中模式基范围表示为 pbs_*。
- ExpressionBase和PatternBase 共同为PCOM特性-COM的可移植性提供基础。它通过ebs给出了COM的可移植性范围,并通过pbs给出了可移植COM的结构维持基范围。对COM而言,ebs使用面向对象的方法,给出了COM对象特性基(面/点)范围,而pbs则使用了面向切面的方法,给出了COM对象在特定系统/环境中的切面基(面/点)。
(未完)
感觉有些思路还不是很确定, 希望下一步可以通过设计程序中的类和接口来完善。