PROJECT SUNSHINE(日光)
数据字段类型:
有/无符号整数(32/64)
单精度浮点数
双精度浮点数
【数据协议】引用
字符串
容器(可用于所有以上类型)
键索引容器
线性数组
ID分配与索引容器
ID分配与索引以及键值互斥和索引容器
概念:
【数据协议】
用于描述一个抽象的数据聚合,这个聚合里包含各种属性,以及属性的类型、名字、唯一ID和缺省值。
【数据类】
用于描述一个具体的数据聚合体,确定了该聚合体将实现那些数据协议中的字段(字段集),并覆盖哪些字段的缺省值(覆盖集)。
它的数据描述依赖于【数据协议】。
【数据对象】
从数据类生成的一个拥有数据类描述的字段的一个内存块。实际用于数据聚合体在内存中的实例存在。
内存块初始化时为一页,可以容纳整个数据类描述的字段。
在新加入数据字段时,实时分配最小可容纳的页,作为增长需要。如一页超过初始页面大小,则生成新的页面。
【数据字段存储管理器】
帮助数据对象规划内存块中的字段分布,以适应数据类和数据协议的改动。
每次进行数据类和数据协议的改动时,将生成拥有如下指令的更改脚本:
1- 断开某字段与其内存块位置的连接
2- 连接新的字段与原有的断开连接的内存块位置,或者分配新的内存块位置。
3- 检查数据对象的内存块的某一页,如果全部被断开连接,则该页从数据对象中回收。
【数据处理器】
用于描述一个具体的数据处理方法。
它以【数据协议】作为它的输入输出参数表。
它会对其中的字段做附加的描述,如缺省值覆盖,输入、输出、输入输出或者不使用(不使用默认输出缺省值)
而且,它其中包含有一系列的逻辑操作和计算操作,用于通过输入内容生成输出内容。
【统一对象模型】
通过【数据协议】来进行处理方法和对象描述的统一,就称为在Sunshine中的【同一对象模型】。
数据处理器中的部分术语:
【元素】
一个【数据协议】的实现者,用于在处理流程图中进行流程描述,以及输入输出。
【协议展开】
将【数据协议】中的【数据协议引用】字段展开成【数据协议】的元素,以供输入输出。
【执行域】
在进行逻辑判断时,需要改变方法的执行方向时,采用的一种将区域的元素着色,以生成一个执行方向的方法。
【数据转换】
在处理流程图中,为了流程图的整体性全局性,在连接不同类型的输入输出时,将进行数据转换。
当遇到不兼容的数据转换,将会产生一个转换警告,并使用目标输入上的缺省值,以期望处理流程可以继续执行。
【全局对象引用】
用于将预定义的全局对象引用,导入到流程图中使用。(置于流程图的TOP位置,输入置于流程图的LEFT位置,输出置于流程图的RIGHT位置)
数据协议可能出现的实现者:
1- 数据类
2- 数据处理器
3- 底层组件(用C\C++\C#实现的底层组件,用于SUNSHINE和底层的交互)
A- 数据库映射
B- 网络封包
C- 数据源(XML)
D- 复杂算法的计算密集型处理
E- 除以上列出外的其他暂未预料到的处理
SUNSHINE的入口点
1- 初始化的入口点,SUNSHINE将执行一个全局的初始化。
2- 事件入口点,SUNSHINE所有的日常数据处理的执行都源于事件入口点。
事件入口点由SUNSHINE使用者和底层提供者预先商定一个【数据协议】
然后由SUNSHINE使用者通过【数据协议】创建预定名字的【数据处理器】
底层提供者在事件发生时,依照【数据协议】调用预定名字的【数据处理器】
3- 结束入口点,SUNSHINE将执行全局的对象回收。