謝日星
摘要:本文根據(jù)微軟主要技術的特點,結合互聯(lián)網(wǎng)及移動互聯(lián)網(wǎng)應用的要求,為中小企業(yè)的應用系統(tǒng)規(guī)劃設計了統(tǒng)一的系統(tǒng)解決技術方案;根據(jù)互聯(lián)網(wǎng)應用與移動互聯(lián)網(wǎng)應用的不同特點及要求,相應的設計了對應的服務端接口,并考慮模塊重用及更新方便的要求,對服務端進行了分層和模塊化設計,同時根據(jù)系統(tǒng)的可擴展性要求,設計了相應的負載均衡方案。
關鍵詞:中小企業(yè);解決方案;可擴展性;互聯(lián)網(wǎng);移動互聯(lián)網(wǎng)
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2016)14-0225-02
隨著智能設備價格的下降及移動到聯(lián)網(wǎng)的發(fā)展,移動設備已實際得到普及,PC出貨量已開始處于下降通道,互聯(lián)網(wǎng)應用與移動互聯(lián)網(wǎng)應用在實際系統(tǒng)中的地位開始互相靠近。應用系統(tǒng)中互聯(lián)網(wǎng)應用與移動互聯(lián)網(wǎng)應用的開發(fā)重要性已基本相同,系統(tǒng)設計時,需要對PC和移動設備提供同樣的支持,方案定型時,服務器端需要同時設計兩種應用的服務接口,以基于微軟主流技術為核心,已能較好地實現(xiàn)這樣的完整系統(tǒng)。
1 系統(tǒng)網(wǎng)絡結構
1.1 小并發(fā)量系統(tǒng)網(wǎng)絡圖
對于小并發(fā)量的系統(tǒng),不需要特別提供大并發(fā)量處理技術。由于系統(tǒng)并發(fā)量較小,所以對于數(shù)據(jù)WEB服務器、數(shù)據(jù)庫服務器發(fā)生故障時系統(tǒng)恢復工作量相對較小,因此也不做多臺服務器的備份,但需要注意數(shù)據(jù)庫服務器中數(shù)據(jù)庫的備份工作。
1.2 大并發(fā)量系統(tǒng)網(wǎng)絡圖
對于大并發(fā)量的系統(tǒng),首先需要注意的是當并發(fā)量大到系統(tǒng)原有服務器已無法滿足要求時,在軟件不修改、系統(tǒng)正常工作的情況下,系統(tǒng)能夠快速添加硬件設備實現(xiàn)系統(tǒng)的可擴展性,同時,還需要在某些(非全部)數(shù)據(jù)庫服務器及WEB服務器出現(xiàn)故障時,整個系統(tǒng)在不停止服務的情況下,仍能快速恢復系統(tǒng)響應性能。因此,大并發(fā)量系統(tǒng)網(wǎng)絡結構應如圖1所示。其中,WEB負載均衡服務器可以采用微軟的IIS實現(xiàn);Session服務器可以采用ASP.NET State Service服務實現(xiàn);所有WEB服務器都采用IIS,并都使用Session服務器所管理的Session數(shù)據(jù);數(shù)據(jù)庫服務器采用Microsoft SQL Server 2012及更高版本,讀、寫服務器分離,采用AlwaysOn技術實現(xiàn)讀操作的負載均衡。
2 系統(tǒng)軟件架構
對于需要同時支持PC和APPS的系統(tǒng),其軟件架構的設計,都有一些需要注意的基本原則。對于非必需的情況,PC應用都采用B/S結構,而App則根據(jù)不同的移動設備平臺有針對性的開發(fā)原生App。
2.1 需要注意避免的情況
1)前后端緊密耦合:不論是WEB應用還是App原生應用,都要注意不能和服務器的后端緊密耦合,否則WEB應用或App原生應用導致服務器端的變更,將因為對應的服務器修改而引起另一類型應用的修改。根據(jù)軟件設計的原則,需要實現(xiàn)系統(tǒng)的松耦合。
2)重復開發(fā):盡可能避免服務器端為適應WEB應用和App的不同而對于同一功能或服務分別進行一次獨立的開發(fā),從而導致軟件模塊的重復開發(fā),不僅在開發(fā)時成倍地增加開發(fā)工作量,而且也必然地導致系統(tǒng)變更或修補BUG時需要同樣地進行重復設計與開發(fā)工作,也同時導致項目管理工作量增加、復雜度上升,增加了系統(tǒng)的開發(fā)風險。
2.2 系統(tǒng)方案
根據(jù)實際開發(fā)經(jīng)驗,基于微軟技術的中小企業(yè)系統(tǒng)解決方案可以采用如圖2所示的架構。
系統(tǒng)主要部件都直接采用微軟對應技術實現(xiàn),其中客戶端只需要對移動設備開發(fā)App,目前可以采用微軟跨平臺解決方案Xamarin,實現(xiàn)一次開發(fā)適應各種主流移動設備。服務器端提供兩類WEB服務,一個采用ASP.NET MVC解決方案以支持瀏覽器,其中各個View僅提供JSON格式的數(shù)據(jù)給客戶端,客戶端數(shù)據(jù)的處理由對應的Knockout.js及Bootstrap進行展示實現(xiàn);另一個采用ASP.NET WEB API 2解決方案以服務各種移動平臺的App。為了防止服務器端的重復開發(fā),兩個WEB服務器除了各自的接口外,其余模塊都設計成獨立的部分,如果并發(fā)量大,則可以把各類業(yè)務邏輯再獨立成WCF形式的WEB服務,否則可以把兩個WEB服務器部署在同一系統(tǒng)中,各內(nèi)部服務模塊做成類庫,集成在WEB服務器項目中。
3 系統(tǒng)集成
由于系統(tǒng)主要部件都是直接采用微軟解決方案,各技術及部件相互配合集成時,一般不會有關鍵性的對接問題,在有技術疑問需要解決時,也較容易找到解決方法。本解決方案在硬件集成和軟件架構設計方面都提供了良好可擴展性,實際開發(fā)實現(xiàn)時,可以根據(jù)實際系統(tǒng)的可預見要求進行實現(xiàn),系統(tǒng)實現(xiàn)后,也可以通過直接增加硬件設備實現(xiàn)需要的可擴展性。
參考文獻:
[1] https://www.xamarin.com/
[2] 任曉峰.中小企業(yè)OA系統(tǒng)的設計與實現(xiàn)[D].廈門大學,2015.
[3] 黃雅萍,馬可辛,周余洪,等.面向中小企業(yè)的電商平臺挖掘系統(tǒng)設計[J].計算機時代, 2015(4):18-20.
[4] 陳進雄,童亮斌.中小企業(yè)信息化平臺建設研究[J].電信技術, 2014(9):65-67.