PROJECT SUNSHINE(日光)
數(shù)據(jù)字段類型:
有/無(wú)符號(hào)整數(shù)(32/64)
單精度浮點(diǎn)數(shù)
雙精度浮點(diǎn)數(shù)
【數(shù)據(jù)協(xié)議】引用
字符串
容器(可用于所有以上類型)
鍵索引容器
線性數(shù)組
ID分配與索引容器
ID分配與索引以及鍵值互斥和索引容器
概念:
【數(shù)據(jù)協(xié)議】
用于描述一個(gè)抽象的數(shù)據(jù)聚合,這個(gè)聚合里包含各種屬性,以及屬性的類型、名字、唯一ID和缺省值。
【數(shù)據(jù)類】
用于描述一個(gè)具體的數(shù)據(jù)聚合體,確定了該聚合體將實(shí)現(xiàn)那些數(shù)據(jù)協(xié)議中的字段(字段集),并覆蓋哪些字段的缺省值(覆蓋集)。
它的數(shù)據(jù)描述依賴于【數(shù)據(jù)協(xié)議】。
【數(shù)據(jù)對(duì)象】
從數(shù)據(jù)類生成的一個(gè)擁有數(shù)據(jù)類描述的字段的一個(gè)內(nèi)存塊。實(shí)際用于數(shù)據(jù)聚合體在內(nèi)存中的實(shí)例存在。
內(nèi)存塊初始化時(shí)為一頁(yè),可以容納整個(gè)數(shù)據(jù)類描述的字段。
在新加入數(shù)據(jù)字段時(shí),實(shí)時(shí)分配最小可容納的頁(yè),作為增長(zhǎng)需要。如一頁(yè)超過(guò)初始頁(yè)面大小,則生成新的頁(yè)面。
【數(shù)據(jù)字段存儲(chǔ)管理器】
幫助數(shù)據(jù)對(duì)象規(guī)劃內(nèi)存塊中的字段分布,以適應(yīng)數(shù)據(jù)類和數(shù)據(jù)協(xié)議的改動(dòng)。
每次進(jìn)行數(shù)據(jù)類和數(shù)據(jù)協(xié)議的改動(dòng)時(shí),將生成擁有如下指令的更改腳本:
1- 斷開某字段與其內(nèi)存塊位置的連接
2- 連接新的字段與原有的斷開連接的內(nèi)存塊位置,或者分配新的內(nèi)存塊位置。
3- 檢查數(shù)據(jù)對(duì)象的內(nèi)存塊的某一頁(yè),如果全部被斷開連接,則該頁(yè)從數(shù)據(jù)對(duì)象中回收。
【數(shù)據(jù)處理器】
用于描述一個(gè)具體的數(shù)據(jù)處理方法。
它以【數(shù)據(jù)協(xié)議】作為它的輸入輸出參數(shù)表。
它會(huì)對(duì)其中的字段做附加的描述,如缺省值覆蓋,輸入、輸出、輸入輸出或者不使用(不使用默認(rèn)輸出缺省值)
而且,它其中包含有一系列的邏輯操作和計(jì)算操作,用于通過(guò)輸入內(nèi)容生成輸出內(nèi)容。
【統(tǒng)一對(duì)象模型】
通過(guò)【數(shù)據(jù)協(xié)議】來(lái)進(jìn)行處理方法和對(duì)象描述的統(tǒng)一,就稱為在Sunshine中的【同一對(duì)象模型】。
數(shù)據(jù)處理器中的部分術(shù)語(yǔ):
【元素】
一個(gè)【數(shù)據(jù)協(xié)議】的實(shí)現(xiàn)者,用于在處理流程圖中進(jìn)行流程描述,以及輸入輸出。
【協(xié)議展開】
將【數(shù)據(jù)協(xié)議】中的【數(shù)據(jù)協(xié)議引用】字段展開成【數(shù)據(jù)協(xié)議】的元素,以供輸入輸出。
【執(zhí)行域】
在進(jìn)行邏輯判斷時(shí),需要改變方法的執(zhí)行方向時(shí),采用的一種將區(qū)域的元素著色,以生成一個(gè)執(zhí)行方向的方法。
【數(shù)據(jù)轉(zhuǎn)換】
在處理流程圖中,為了流程圖的整體性全局性,在連接不同類型的輸入輸出時(shí),將進(jìn)行數(shù)據(jù)轉(zhuǎn)換。
當(dāng)遇到不兼容的數(shù)據(jù)轉(zhuǎn)換,將會(huì)產(chǎn)生一個(gè)轉(zhuǎn)換警告,并使用目標(biāo)輸入上的缺省值,以期望處理流程可以繼續(xù)執(zhí)行。
【全局對(duì)象引用】
用于將預(yù)定義的全局對(duì)象引用,導(dǎo)入到流程圖中使用。(置于流程圖的TOP位置,輸入置于流程圖的LEFT位置,輸出置于流程圖的RIGHT位置)
數(shù)據(jù)協(xié)議可能出現(xiàn)的實(shí)現(xiàn)者:
1- 數(shù)據(jù)類
2- 數(shù)據(jù)處理器
3- 底層組件(用C\C++\C#實(shí)現(xiàn)的底層組件,用于SUNSHINE和底層的交互)
A- 數(shù)據(jù)庫(kù)映射
B- 網(wǎng)絡(luò)封包
C- 數(shù)據(jù)源(XML)
D- 復(fù)雜算法的計(jì)算密集型處理
E- 除以上列出外的其他暫未預(yù)料到的處理
SUNSHINE的入口點(diǎn)
1- 初始化的入口點(diǎn),SUNSHINE將執(zhí)行一個(gè)全局的初始化。
2- 事件入口點(diǎn),SUNSHINE所有的日常數(shù)據(jù)處理的執(zhí)行都源于事件入口點(diǎn)。
事件入口點(diǎn)由SUNSHINE使用者和底層提供者預(yù)先商定一個(gè)【數(shù)據(jù)協(xié)議】
然后由SUNSHINE使用者通過(guò)【數(shù)據(jù)協(xié)議】創(chuàng)建預(yù)定名字的【數(shù)據(jù)處理器】
底層提供者在事件發(fā)生時(shí),依照【數(shù)據(jù)協(xié)議】調(diào)用預(yù)定名字的【數(shù)據(jù)處理器】
3- 結(jié)束入口點(diǎn),SUNSHINE將執(zhí)行全局的對(duì)象回收。
