己的數(shù)據(jù),可以查詢總數(shù)據(jù) 中心/其他分數(shù)據(jù)中心的數(shù)據(jù)。如果沒有引入數(shù)據(jù)來源管理(數(shù)據(jù)屬地管理)和數(shù)據(jù)版本的控制機制,不知道系統(tǒng)在作數(shù)據(jù)中心合并會怎樣子?
7.數(shù)據(jù)項的分類編碼
數(shù)據(jù)項的分類編碼,實際上是數(shù)據(jù)項來源管理的一個具體延伸。數(shù)據(jù)項編碼的目的就是更快更好的識別數(shù)據(jù)代表的業(yè)務意思。一個典型的例子就是ERP中的BOM表(基本物料清單)。
數(shù)據(jù)項的分類編碼,不只是在系統(tǒng)模型建立上有指導意義,在進入系統(tǒng)的業(yè)務數(shù)據(jù)的規(guī)范化同樣有指導意義。
數(shù)據(jù)項的業(yè)務編碼和系統(tǒng)編碼分離。業(yè)務編碼很多時候只是為了識別業(yè)務數(shù)據(jù)的需要,很難保證業(yè)務數(shù)據(jù)的唯一性要求。而且業(yè)務編碼可能會發(fā)生變動,有些單位的 總體規(guī)劃從調(diào)研到討論制訂、到項目審批通過,再到最終實施,常常幾年過去了,需求發(fā)生變化,這種編碼規(guī)則不發(fā)生變動幾乎不可能。2000年我參與的一個企 業(yè)軟件系統(tǒng),就一個產(chǎn)品編碼規(guī)則2個月就發(fā)生了5次變動。從更長的時間范圍內(nèi)來說,應該考慮數(shù)據(jù)產(chǎn)生時期問題,不同時間階段產(chǎn)生的業(yè)務數(shù)據(jù),使用的業(yè)務規(guī) 則不一樣,數(shù)據(jù)編碼這個層次很多時候很難識別數(shù)據(jù)當時的業(yè)務環(huán)境。
以一個簡單的例子來說明:
業(yè)務數(shù)據(jù)表的primary key系統(tǒng)應該是系統(tǒng)定義的,而數(shù)據(jù)項的業(yè)務編碼只能作為索引或者備用鍵使用,這樣就減少了數(shù)據(jù)業(yè)務編碼規(guī)則的變動對系統(tǒng)影響減少到更小的程度。
8.業(yè)務規(guī)則使用的版本化
前面已經(jīng)提到了數(shù)據(jù)錄入的版本化,還有算法的版本化,也就是計算結果的版本化。但是還沒有談到一點,到底啥時間該采用哪個版本算法。
在J2EE項目中,一般是采用配置文件的方式來控制版本。從配置管理角度的來說,一切都根據(jù)配置文件來決定使用哪個版本的數(shù)據(jù)錄入的分級(數(shù)據(jù)信任程度分級),然后根據(jù)配置文件決定數(shù)據(jù)處理使用的算法版本。
其實在J2EE項目中,可以采用類似apache commons-validator這樣的包,來進行數(shù)據(jù)錄入的信任等級建立。
前面都已經(jīng)提到了從工廠方法模式的角度來建立數(shù)據(jù)信任等級制度,但是并沒有解決到底啥時間采用哪個方法處理數(shù)據(jù)。也許有人建議,采用工廠方法模式的思想, 把數(shù)據(jù)當成產(chǎn)品,把算法當成工廠,來處理(注意:不是制造)數(shù)據(jù)。這個想法也許能夠滿足一些系統(tǒng)的需要,但是更多時候是失效。
為此,我覺得有必要把算法的分配使用當成為一個業(yè)務管理策略來管理,通過單獨的業(yè)務模塊去設置業(yè)務的算法管理策略,可以把這些策略保存為配置文件或者直接 保存到數(shù)據(jù)表;在J2EE項目中,常用的方式使用XML的格式保存為配置文件,但是如果這個策略比較復雜的時候建議還是保存到數(shù)據(jù)表。
9.算法的版本化
本來我打算在前面的基礎上,再談一下業(yè)務流程的管理設置問題,不過,現(xiàn)在工作流思想深入人心,我也就跳過了。我打算從數(shù)據(jù)的核心業(yè)務處理,算法處理角度來闡述。
其實在現(xiàn)實中的軟件項目中,大家提到的較多的BPR,工作流這些東西,但是很少提到算法這個單詞。當然,不可否認,很多軟件項目,特別是電子政務/OA的 業(yè)務主要是體現(xiàn)在流程/文件上,算法這部分比較簡單(當然,我這樣說,有人可能不認可,暫且就不爭論它了),就沒有必要去強調(diào)算法的重要性了。
為了避免垃圾數(shù)據(jù)進入系統(tǒng),垃圾數(shù)據(jù)出來,有必要對數(shù)據(jù)進行分類管理。正如前面提到的那樣,對于進入系統(tǒng)的數(shù)據(jù),進行信任等級劃分,數(shù)據(jù)來源的分類;但是 對于系統(tǒng)出口,為了避免出現(xiàn)垃圾數(shù)據(jù),需要在數(shù)據(jù)處理階段,也要進行分類處理,這里就引入了算法的版本化,來適應不