需求
- 根據(jù)客戶的需求,該系統(tǒng)應(yīng)由多個(gè)功能模塊組成,包括基本配置管理、員工管理、用戶組管理、課程預(yù)定、宴會(huì)預(yù)定、資產(chǎn)租賃和預(yù)定等等。

宴會(huì)、課程等服務(wù)預(yù)定
- 客戶要求應(yīng)用程序也能在web瀏覽器上執(zhí)行,以滿足越來越多的來自互聯(lián)網(wǎng)以及移動(dòng)終端的業(yè)務(wù)需求。

網(wǎng)上預(yù)定的付款處理
- 每個(gè)訂單子系統(tǒng)應(yīng)該按照所需的資源,設(shè)有不同的可用時(shí)間。
- 此外,由于需要多種角色,系統(tǒng)應(yīng)該能夠給不同的角色設(shè)置多種權(quán)限級(jí)別。
解決方案
技術(shù)要求:
- .NET, C#
- Smart Client, Windows Form, Web Service
- ASP.NET
- InstallShield
- Janus Control
- System Architecture
系統(tǒng)架構(gòu):
- 諾懷軟件全面參與了此系統(tǒng)的整個(gè)開發(fā)周期,包括框架設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、用戶界面設(shè)計(jì)、功能實(shí)現(xiàn)和測試。
- 開發(fā)過程中我們采用了RUP過程,即迭代式的開發(fā)過程。使用迭代開發(fā)策略,我們通過需求分析、界面設(shè)計(jì)、功能實(shí)現(xiàn)、測試,按階段地交付該項(xiàng)目。
- 為了減輕系統(tǒng)在客戶端的負(fù)擔(dān),我們采用了三層架構(gòu)的模式(表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)層),.NET作為我們開發(fā)環(huán)境,SQL Server作為數(shù)據(jù)庫進(jìn)行開發(fā)。

表示層
該項(xiàng)目的表示層利用.NET窗體控件實(shí)現(xiàn),并且程序通過HTTP部署。它被分成多個(gè)基于函數(shù)的組件,以確保組件是易于管理的,這樣也方便系統(tǒng)進(jìn)一步增強(qiáng)和擴(kuò)展。
業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層通過使用WebServices和業(yè)務(wù)流程執(zhí)行語言(BPEL)實(shí)現(xiàn)。Web Services實(shí)現(xiàn)實(shí)際的操作,譬如對(duì)控制類進(jìn)行操作。這個(gè)過程中,當(dāng)數(shù)據(jù)庫接到一個(gè)請(qǐng)求時(shí),數(shù)據(jù)訪問組件就會(huì)被要求執(zhí)行該項(xiàng)工作。最后,控制類建立實(shí)體對(duì)象,并返回給調(diào)用者。實(shí)體類主要用于傳輸數(shù)據(jù),但不執(zhí)行任何其它的操作,所有的工作都由控制類完成。
數(shù)據(jù)層
由于系統(tǒng)需要在多個(gè)數(shù)據(jù)庫平臺(tái)上運(yùn)行,所有的數(shù)據(jù)庫操作都應(yīng)該在一個(gè)組件里完成,這樣可以減少數(shù)據(jù)庫遷移的成本。當(dāng)接到一個(gè)訪問請(qǐng)求時(shí),該組件將從XML配置文件中接到一個(gè)SQL命令,然后使用ADO.NET的Sql連接字符串訪問SQL服務(wù)器,或者用Oracle連接字符串訪問Oracle數(shù)據(jù)庫。
開發(fā)過程中遇到的挑戰(zhàn)
開發(fā)過程中我們遇到了如下一些挑戰(zhàn):
- 系統(tǒng)不允許多個(gè)命令在同一個(gè)時(shí)間使用同一個(gè)資源。系統(tǒng)應(yīng)該為頻繁變化的數(shù)據(jù)設(shè)置并發(fā)性檢查功能。我們設(shè)計(jì)了一個(gè)特殊的數(shù)據(jù)鎖表來處理鎖定和解鎖,確保資源的合理分配
- 一個(gè)終端數(shù)據(jù)發(fā)生變化時(shí),每一個(gè)其它終端的數(shù)據(jù)也應(yīng)該能自動(dòng)同步。同時(shí),系統(tǒng)必須能支持訂單的各種編輯功能,數(shù)據(jù)狀態(tài)的循環(huán)使用和回滾。
- 我們通過Web服務(wù)將用戶導(dǎo)致的數(shù)據(jù)變化告知給每個(gè)終端,從而實(shí)現(xiàn)終端數(shù)據(jù)的同步。
- 我們給訂單流狀態(tài)定義了一個(gè)表,以便改變訂單狀態(tài)和回滾。由于數(shù)據(jù)需要被頻繁修改,我們添加了DateTimeStamp和DataTime這兩個(gè)字段,實(shí)現(xiàn)并發(fā)控制。針對(duì)事務(wù)處理,我們采用了ADO.Net技術(shù)的事務(wù)處理機(jī)制,為編碼定義了一個(gè)標(biāo)準(zhǔn),確保系統(tǒng)的交易能正常進(jìn)行和恰當(dāng)回滾。
客戶收益:
- 采用迭代開發(fā)模式,減少了整個(gè)開發(fā)周期中在開發(fā)早期階段可能遇到的高風(fēng)險(xiǎn)。
- 客戶的及時(shí)反饋,我們的快速處理,促使了一個(gè)精制的能更好滿足用戶實(shí)際需求的系統(tǒng)。
- 系統(tǒng)簡潔而明確的層級(jí)結(jié)構(gòu)能夠減少維護(hù)成本。
- 一個(gè)高度靈活的,可擴(kuò)展的,值得信賴的解決方案相當(dāng)有用。
