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