目錄
第一章 緒論 1
1.1課題的研究背景 1
1.2SaaS模式研究現狀 2
1.2.1國外研究現狀 2
1.2.2國內研究現狀 3
1.3研究內容 4
1.4論文組織結構 5
第二章SaaS相關的理論 6
2.1SaaS 概述 6
2.1.1SaaS 的模式 6
2.1.2SaaS 與 ASP 的異同 7
2.1.3SaaS 的優勢 8
2.1.4SaaS 的特點 10
2.1.5SaaS的發展趨勢 11
2.2SaaS 服務模式特點 11
2.3基于 SaaS 模式的系統應用架構 13
2.3.1SaaS 模式成熟度模型選擇 13
2.3.2SaaS 多租戶的數據庫選擇 16
2.4本章小結 18
第三章 企業信息管理系統的需求分析 19
3.1系統功能性需求分析 19
3.2系統的性能分析 20
3.2.1系統的可擴展性 20
3.2.2系統的可配置性 21
3.2.3系統的可伸縮性 21
3.3本章小結 21
第四章 企業信息管理系統的設計 22
4.1系統設計的原則 22
4.2結構設計 22
4.3總體設計 24
4.4主要功能模塊 25
4.4.1系統管理 25
4.4.2人事管理 26
4.4.3合同管理 28
4.4.4客戶管理 29
4.4.5項目管理 29
4.4.6工資管理 30
4.4.7公告管理 32
4.5數據庫設計 32
4.5.1數據表設計 33
4.5.2各個數據表之間的關系 39
4.6系統安全設計 40
4.6.1應用安全 40
4.6.2數據安全 43
4.6.3網絡安全 44
4.7本章小結 45
第五章 企業信息管理系統的實現 46
5.1系統管理功能實現 46
5.2人事管理功能實現 55
5.3合同管理實現 59
5.4客戶管理實現 61
5.5項目管理實現 62
5.6工資管理實現 63
5.7公告管理實現 65
5.8本章小結 66
第六章 企業信息管理系統的測試 67
6.1測試原則 67
6.2測試目標 67
6.3系統測試的內容 68
6.3.1UI 測試 68
6.3.2性能測試 68
6.3.3功能測試 69
6.3.4文檔測試 72
6.4系統測試結果 72
6.5本章小結 73
第七章 總結與展望 74
7.1總結 74
7.2展望 74
致謝 76
參考文獻 77
第一章 緒論
1.1課題的研究背景
近年來,伴隨著計算機技術和互聯網技術的不斷發展和普及,信息技術在企 業的管理中的應用得到不斷的推廣。企業信息化是我國中小型企業在激烈的市場 競爭中保持競爭力和提高管理水平的重要手段和武器。尤其是隨著全球一體化的 不斷加劇,企業之間的競爭進一步加劇,越來越多的企業開始構建自己的信息系 統。但是由于中小型企業自身資源和資金的局限性,它們在信息化建設過程中發 展緩慢。雖然 ERP(Enterprise Resource Planning, 企業資源計劃)和 SAP(Systems Applications and Products in Data Processing, 企業管理解決方案的軟件名稱)這些 軟件的出現極大地滿足了企業信息管理的需求,但是對于中小型企業來說,應用 像 ERP 這類軟件的門檻過高,企業信息化的道路異常艱難。首先是這些軟件需要 購買才能使用,企業需要一次性地支付所有軟件的購買費用。并且企業在購買在 此類軟件時面臨著巨大的購買風險,一旦購買的產品不能滿足企業的需求或者不 能滿足企業的管理模式,就將造成巨大的浪費,尤其是對中小型企業來說,這種 打擊將是致命的。其次,軟件購買以后,需要對軟件進行部署和軟硬件方面的配 置,由于中小型企業 IT 人才相對缺乏,而安裝和配置的過程又較為復雜,如果沒 有足夠的專業人士參加比可能會導致軟件配置和安裝進程的失敗或者進度減緩, 影響企業信息化建設的進度。最后,軟件安裝和配置后,在軟件的運行階段,還 需要企業配置一定的人力和財力對軟件進行維護。眾所周知,軟件的安裝和實施 只是成功的一半,軟件開發后的維護才是是軟件保持其功能的重要保障。高額的 軟件維護的費用,猶如給給中小企業來背上一個沉重的包袱。
SaaS (Software as a Service)的中文意思是軟件即服務,它的出現極大地滿足 了中小型企業對信息化的需求[1]。SaaS提供的是服務而不是產品。在SaaS模式下, 企業無需購買相關的軟件,用戶只需要支付軟件相關服務的費用,就可通過瀏覽 器使用軟件的相關服務。這就省去了對軟件的安裝、軟硬件配置和維護的工作, 大大減輕了企業的負擔。一般軟件從購買到最后完全實施需要幾年的時間,而 SaaS 模式下的信息化的整個實施過程不會超過三個月,這就加快了信息化實施的速度, 為中小型企業創造了機會。用戶無論在何時何地,只要有互聯網,企業就可以使 用軟件提供的服務進行管理,克服了軟硬件資源的限制。企業只需要購買自己需 求的那部分服務,并且可以依據具需求的動態變化來隨時進行服務增訂或者停止, 這就滿足了企業按需付費的需要,降低了企業購買軟件的風險,滿足了部分中小 型企業低成本切入、分階段實施信息化的需求。此外,SaaS軟件由軟件供應商自 己進行軟硬件配置和維護,這就將大部分的風險轉移到了軟件供應商身上,降低 了企業實施信息化的風險。
1.2SaaS模式研究現狀
1.2.1國外研究現狀
國外對SaaS的研究始于20世紀末[2]。隨著ASP的出現,一種新型的軟件托 管外包服務的開始出現和發展,這就是SaaS的雛形。ASP是Application Service Provider的縮寫,意思是“應用服務提供商” [3]。這種模式就是將用戶需要的軟件 統一部署在應用軟件提供商的軟硬件環境中,軟件運行所需的人力、物力資源都 是由供應商維持,用戶只需要在自己的辦公室使用這些軟件即可。ASP的模式是 將軟件統一托管到應用服務器提供商的服務器中。ASP模式就是將軟件統一托管 到應用服務器提供商的服務器中。這時,軟件是一種被托管的應用。但是ASP已 經有了為用戶提供服務的初步想法,但是關注的重點在于提供軟硬件環境這樣的 服務,而不是軟件本身。SaaS的目標是將軟件徹底服務化。SaaS完全拋棄了軟件 產品的概念,并繼承了 ASP的形式,但并不拘泥于ASP的形式,而將重點放在軟 件本身的服務功能上。目前,SaaS軟件在國外已得到廣泛的應用,并且隨著SaaS 的不斷推廣和完善,其功能也變得越來越強大。全球提供SaaS服務產品的著名供 應商主要包括 SAP、Oracle、Microsoft、Salesforce.com 和 NetSuite 等一些公司[4], 在這些公司當中Salesforce. com獲得了比較大的成功,該公司是最早提出SaaS 模式的一個,同時在眾多企業應用軟件供應商當中Salesforce. Com是名氣最大的 一個。 Salesforce. com 已成為了 SaaS 領域首屈一指的標志性企業。
Salesforce.com 于 1999 年創建[5] , 其著名的產品 Salesforce.com 和 Supportforce.com 功能十分強大,這兩款產品能夠提供隨需應用的客戶關系管理, 能夠讓客戶和軟件供應商之間合作制定其需要的產品,來同時滿足兩者的需求。 在市場競爭上,微軟也不甘落后,繼而推出了 Windows Live戰略和以“軟件+服 務”為模式的 Dynamic CRM Online 產品計劃,想通過這一系列的強力措施在市場 和用戶爭奪上面打出一場勝仗。Oracle公司在占領SaaS市場上頻頻做出一些大手 筆,它不斷的收購一些知名企業,計劃以資本運作來的方式來盡快的爭取到SaaS 市場的一席之地。SaaS模式憑借它的優勢和特點已經在全世界范圍內得到了廣泛 的青睞和認可,另外也得到了大范圍的普及和良好的發展。
在IT技術比較發達的歐美國家,SaaS模式已經取得了較好的發展,并且得到 了企業的廣泛認同。數據顯示,在美國有80%的企業正在或者是準備使用 SaaS 的 服務,并且已經有超過60%的企業已經完成了 SaaS模式的企業信息化建設。在SaaS 誕生的 10 年內, SaaS 的模式在不斷的成熟,其所涉及的產品、行業越來越多,提 供的服務也更加的豐富和深入。借助SaaS平臺,歐美等國家的中小企業完成了信 息化的建設,并且得到了于目共睹的成績。除了中小型企業以外, SaaS 模式的業 務范圍已經擴大到大型的企業,數據顯示,約有 25%的大型的企業正在使用 SaaS 提供的服務。據調查,在歐美使用 SaaS 的大型企業中保險、電信服務、高科技產 品三個行業所占到的比例最大[6]。除了歐美市場, SaaS 在亞洲市場也取得了顯著 的成功。尤其是在新加坡、日本和香港等地區, SaaS 服務的廣度和深度都已非常 的顯著,這些地區的 SaaS 提供商已經將 SaaS 看做是增加未來收入的重要領域。
根據相關部門提供的權威數據顯示,目前全球各種企業在 SaaS 上投入的資金 不到整個IT投入的5%,另一方面,全世界IT行業資金投入的平均增長率為5%, 但是各企業在SaaS上的投入增長率卻在30%左右。根據Gartner提供的數據表明, 在 2011 年全球在 SaaS 上的收入已經達到 121 億美元,這個數字將在 2013 年底增 長到 140 億美元,到 2015 年以后其收入將到達一個新的高度 213 億美元(復合年增 長率為 18%),此時 SaaS 的市場份額將占到軟件市場的 14%。
1.2.2國內研究現狀
SaaS 進入中國的時間比較晚,直到 2006 年 SaaS 軟件才正式地進入中國市場。 SaaS 軟件進入中國后,得到了迅速的發展。根據賽迪網發布的《2009 年 SaaS 用 戶使用情況調查報告》中,調查中超過 55%以上的用戶表示對 SaaS 的產品比較了 解;有 35%的用戶從未使用過 SaaS 的產品,但是有聽說過 SaaS 技術;只有不到 10%的用戶表示不了解SaaS產品。另據統計,目前國內54%的受訪者正常使用SaaS 相關的軟件,而 73%的大型企業正在或者準備采用 SaaS 技術。上述調查結果顯示, 雖然 SaaS 軟件進入中國的時間并不長,但是其已經發展已經初具規模,已經占領 了一定的中國軟件市場,并且呈現不斷上升的趨勢。
隨著 SaaS 軟件進入中國,國內的軟件提供商也意識到的危機,紛紛調整自己 的戰略,開始進軍 SaaS 市場。國內的軟件開發商用友、金蝶等也迅速調整自己的 方向,推出了 SaaS 的軟件。尤其是阿里巴巴, 2007 年阿里巴巴花費巨資金打造了 AEP平臺[7]。目前,阿里巴巴已經在SaaS平臺下開發了財務管理、網絡營銷等領 域的多款企業管理的軟件。金算盤公司更是推出了 “ERP+電子商務”的模式,將 電子商務以及其他一些在線的管理軟件進行了整合,從而為企業提供功能更加全 面管理系統。而用友和金蝶公司已經成為了國內中小企業以及政府首選的國內軟 件提供商,其軟件產品更是涉及金融、高科技產業等方面。目前,國內主流的SaaS 服務提供商除了阿里巴巴、金算盤、用友和金蝶以外,還要八百客、天天進賬網、 中企開源、CSIP、友商網、偉庫網、、CDP、奧斯在線、百會創造者、XTools 等。
2010年在北京召開的第四屆中國軟件運營服務(SaaS)大會上,多達700多 位的SaaS領域的提供商出席了會議,包括微軟、SAP、金蝶、偉庫電子商務、百 會、Salesforce、中金數據、網動LiveUC、八百客、財客在線、富基標 商、XTools、 和多友科技等。該會議上發布了《2010年中國軟件運營服務市場研究報告》,報 告中指出2009年,中國的SaaS的市場規模以及達到了 354.2億元人民幣,同比增 長了 27.6%[8]。預計在未來三到五年的時間里, SaaS 在中國的市場份額將進一步擴 大,并且面向用戶整合型的SaaS服務將得到迅猛的發展。而國內的SaaS軟件業 將進一步成熟,從而進一步的占領國內的SaaS市場。
根據Springboard發布的《2010年中國應用軟件市場分析及預測》報告,中 國的軟件市場規模將由2009年的20.5億美元上升至2014年的50億美元,而SaaS 軟件市場將繼續保持30%的復合增長率,而在未來5年內,SaaS市場的復合增長 率將達到43%,預計到2014年中國SaaS市場規模將達6億美元,中國的SaaS 市場進入了快速發展的階段。
種種跡象表明,SaaS在中國已經得到迅速的發展,并且得到了政府的支持。 在2009年的金融風暴中,我國政府拿出了 4萬億人民幣來拉動內需,而IT產業 更是成為了重點支持的產業。并且北京、寧波等一些地方政府也紛紛推出“政府 買單”、“免費使用”等政策來大力支持 SaaS 模式在中小企業中的應用[9]。因此, SaaS 產業現已成為繼軟件外包以后收到政府支持的一個非常重要的產業。隨著 SaaS軟件的發展,會有更多的軟件商參與其中,使得傳統的軟件提供商轉變為SaaS 的軟件提供商。
1.3研究內容
本文以 SaaS 模式下企業信息管理系統的開發為背景,主要對 SaaS 模式下 中小企業信息管理系統的研究與實現。本文首先介紹了本課題研究的背景、 SaaS 應用現狀及研究的意義,詳細介紹了目前國內外企業信息管理系統的研究現狀, 其次重點闡述了有關SaaS的概念、SaaS的模式、SaaS平臺的優勢和特點以及在 SaaS平臺下企業信息管理系統的特點,最后在SaaS軟件設計方式指導下,使用 SaaS的軟件開發工具對企業信息系統進行構建,在實現過程中首先研究了企業信 息化管理系統的特點,在此基礎上進行了需求分析,選取了平臺實現的架構,完 成了平臺的功能模塊設計、數據庫設計,給出了系統實現的部分流程及界面,對 系統進行了測試。在本文最后就本論文目前的研究情況及后續的研究方向作出了 總結和展望。
1.4論文組織結構
全文共分為七章:
第一章 緒論:闡述論文的研究的項目背景、企業信息管理系統的國內外研究 現狀、 SaaS 的應用現狀及本文的研究內容。
第二章 相關理論及技術:詳細介紹了 SaaS 的概念、 SaaS 的模式的特點、優 點、發展趨勢、 SaaS 與 ASP 的區別。
第三章需求分析:SaaS租賃模式的特點、系統的功能需求分析及系統的性能 需求分析。
第四章 系統設計:闡述了系統設計的目標和原則,詳細介紹了系統各個功能 模塊的設計,進行了數據庫設計及系統安全設計。
第五章 系統實現:企業信息管理系統系統管理、項目管理、人事管理、合同 管理、客戶管理、工資管理及公告管理主要功能的實現。
第六章系統測試:對系統的性能、UI、功能試和文檔進行測試,闡述了系統 測試的結果。
第七章 結束語:對論文的研究內容進行了總結,并指出了下一步的工作的方 向。
第二章 SaaS 相關的理論
2.1SaaS 概述
SaaS 是英文 Softtware as aService 的縮寫,中文的意思是軟件即服務[10]。 SaaS 的核心概念是軟件的服務化,即SaaS將軟件看做是一種服務,而非傳統意義上的 商品。用戶需求要的是軟件提供的服務,用戶購買軟件的實質是消費軟件提供的 服務。在SaaS的商業模式下,軟件供應商向用戶提供軟件服務,從而滿足用戶對 服務的需求,軟件商和用戶之間從一種軟件供需關系轉變為一種服務供需關系。 SaaS 的商業模式比以前的軟件生產模式更加復雜。在此模式下,用戶無需購買軟 件和配置軟件需要的各種資源,只需要連接互聯網,在瀏覽器上就可以享受所有 的軟件提供服務[11]。
2.1.1SaaS 的模式
SaaS以網絡為載體,向客戶提供服務而非產品的商業模式改變了傳統軟件的 銷售方式。在 SaaS 模式下,客戶只需要租賃所需要的服務,不需要購買軟件的所 有服務,客戶可以根據自己的需求進行租賃[12]。SaaS模式是以客戶為中心,它更 加注重能否為客戶提供有效的服務,能夠及時響應客戶的需求,滿足客戶個性化 定制的需求。在SaaS模式下,客戶與供應商的距離拉近了,它們之間形成了一種 相互依賴相互牽制的互利關系。
2.1.2SaaS 與 ASP 的異同
2.1.2.1SaaS 與 ASP 的區別
(1) 看問題的角度不同
SaaS 和 ASP 的根本區別在于兩者看問題的角度不同。 ASP 是從軟件開發商的 角度來看問題, ASP 致力于通過一種新的方式向用戶提供軟件,而忽略了軟件本 身存在的問題。因而與用戶關注的問題不同,難以引起用戶的共鳴,獲得用戶的 支持。相比于ASP,SaaS則是站在用戶的角度來看問題,SaaS更多的是關注用戶 的需求,以滿足用戶的需求為目標,其服務宗旨正好迎合了用戶的需要,因而獲 得用戶的支持。
(2) 關注的目標不同
在 ASP 發展的初期,軟件開發商關注的重點在為用戶提供的軟件應用模式上, 如何方便用戶的使用,降低用戶對軟件的維護成本成為 ASP 關注的重點。因此, ASP 提出了一種用來解決用戶的軟硬件資源維護問題的方案,即應用服務的統一 托管模式。在 ASP 的發展后期,技術本身的不成熟及上用戶體驗很差的等問題日 益突出,軟件開發商調整了 ASP 的重心,軟件的易用性和可用性成為 ASP 的新目 標。
而 SaaS 從始至終都將重心放在軟件本身上,如何為用戶提供有效的功能服務 是其關注的重點。 SaaS 軟件從用戶本身的需求出發,為用戶提供了更實用更強大 的功能服務。因此,相比于 ASP, SaaS 擁有更好的用戶體驗,用戶的接受度也較 高。伴隨著軟件開發技術的不斷發展, SaaS 軟件的目標將是將為用戶提供更多功 能更加強大的服務。
2.1.2.2SaaS 與 ASP 的聯系
SaaS 是在繼承 ASP 的基礎上,以“軟件即服務”的新的理論為指導的一種新 型軟件商業模式。因此, SaaS 與 ASP 之間的關系實際上是以形似而神不似。但是 很多人還是難以區分 ASP 和 SaaS。
2.1.3SaaS 的優勢
(1)拿來即用[13]
傳統的軟件需要用戶向軟件商購買,然后用戶自行進行安裝和軟硬件的配置。 用戶購買軟件后并不能立即使用,通常需要一段時間在自己在電腦或者網絡服務 器上進行部署和安裝。但一般軟件的安裝和部署過程比較復雜,需要一些專業的 人士參與才能完成。對于一些比較小的企業來說,由于自身人才的匱乏,可能還 會從軟件供應商那里聘請專業的人士提供幫助,還需要額外付出一定的時間和金 錢成本。軟件安裝和部署的時間越久,企業付出的成本也就越高。
對于 SaaS 軟件,用戶在購買以后就可以直接使用。這是因為軟件的安裝和部 署都在運營商的機房內,有運營商負責,而與用戶無關[14]。用戶在使用軟件時, 只需要連接到因特網,就可以使用軟件提供的服務。無須安裝,無須下載,無須 部署,無須配置,十分的快捷和方便。
(2)無須維護 傳統軟件在用戶購買以后,需要用戶自己負責軟件的運行、維護和升級。因 此,除了購買軟件的一次性花費外,每年用戶還需要投入一定的維護費用。為了 保證軟件的正常工作,企業還需要配備專業的軟件維護人員。
而 SaaS 軟件主要運行在軟件商的機房內,因此,軟件的維護是由軟件商來承 擔[15]。用戶端運行的環境主要是瀏覽器或者其他的工具,用戶根本不需要關系 SaaS 軟件的升級和維護。一旦在軟件運營過程中出現問題,用戶只需要通知軟件上來 處理,不需要自己花費人力和財力來解決。軟件商一般會配備專業的工程師來負 責 SaaS 軟件的維護工作,所以軟件出問題的幾率非常小。
(3) 按需使用 傳統軟件購需要一次性的購買,并且在用戶購買完以后不能進行退貨。用戶
在購買之前,必須全面預估軟件的使用程度和充分考慮企業具體的業務活動。但 當企業的業務活動發生變化時,軟件提供的服務就無法繼續再支持企業的經營活 動。那么軟件的部分功能就會閑置,既無法給用戶帶來收益,又造成資源和資金 的浪費。
SaaS 軟件提供按需租賃的商業模式,用戶只需要按照自身的需求購買一定時 限的服務[16]。用戶可以根據企業的規模和業務活動的情況進行增訂、續訂或者退 訂。即使是用戶停止租賃一段時間后在恢復租賃時,以前的數據還都存在。
(4) 隨處可用 傳統軟件的使用會受到地理位置的限制,這是因為軟件的數據資料存放在一
個固定的地方。當客戶在外地時就不能使用軟件來處理企業的事務。
而 SaaS 軟件的所有資料都存儲在軟件上商的機房內,對于用戶來說,它的位 置是虛擬的,用戶無須知道它的具體的物理位置,只要連上因特網,用戶就可以 通過電腦或者其他終端的瀏覽器使用 SaaS 軟件提供的服務。
(5) 風險減小 在購買傳統軟件時,用戶需要一次性地支付巨額購買費用。引入軟件之前,
企業需要對軟件的服務和性能進行全面的評估的。若評估不全面,引入的軟件在 使用后,不符合企業的管理方式或者與企業的業務活動有出入,軟件就不能使用, 這必然將會給企業造成巨大的損失。因此,企業在傳統軟件時將面臨巨大的風險。
SaaS 軟件提供的是服務而不是產品,用戶不需要一次性地購買軟件的所有服 務。只需要按照自己的需求租賃部分的服務,用戶可以按需租賃。一旦發現軟件 不符合企業的管理模式,企業就可以停止租用。因此,企業需要承擔的風險較小。
(6)先天防毒 計算機病毒無時無刻不威脅著企業信息管理系統的安全,企業需要安裝各種 反病毒軟件來預防病毒的感染。一旦企業的計算機感染上病毒,帶給企業的將是 災難性的后果。企業不得不重新安裝軟件,以前的數據也要一個一個的恢復,這 將帶來繁重的工作量,影響到企業正常的運營活動。
而SaaS軟件安裝在軟件上的網絡服務器中,用戶只需要通過瀏覽器進行訪問。 為了抵抗計算機病毒的入侵,軟件商都會采取專門的安全措施。即使是用戶的計 算機感染上計算機病毒,用戶也不需要重新安裝和恢復應用系統,而只需要重新 安裝瀏覽器即可。
2.1.4SaaS 的特點
(1) 互聯網特性
SaaS 的向客戶提供的服務,客戶只需通過網絡的瀏覽器即可享受到所有的服 務功能[17]。通過互聯網,用戶可以隨時隨地使用 SaaS 服務,打破了時間和地域的 限制。
(2) 多重租賃特性
SaaS 通常是把一套標準化的系統提供給多個不同的用戶使用,即 SaaS 能夠實 現同一套軟件的多重租賃[18]。 SaaS 的數據儲存在 SaaS 的客戶端,由軟件供應商來 維護。 SaaS 可以實現多用戶的并發使用,多用戶可以同時使用系統提供的資源, 但又不會相互造成影響。雖然很多用戶使用的是同一套軟件,但由于各自的數據 是區分和隔離的,用戶只能看到和使用自己的數據和流程。用戶在使用軟件的過 程中,并不會受到其他用戶的影響。 SaaS 還能滿足不同客戶的個性化需求,可以 在系統的界面、業務的流程等方面提供個性化定制服務,從而滿足不同層次客戶 的需求。
(3) 可配置性 傳統軟件模式下,若客戶的需求發生變化,就需要通過修改部分代碼來實現。
由于 SaaS 采用的是是多重租賃的形式,如果針對某一用戶的需求對代碼做出一定 的修改就會改變其他用戶的使用環境。因此,在 SaaS 的模式下,可配置性將系統 的功能置于黑箱的狀態,各個用戶之間的數據和業務流程是相對獨立的[19]。它保 證了系統在滿足客戶的個性化需求的同時,又不影響其他租賃用戶的系統環境。
2.1.5SaaS的發展趨勢
2.1.5.1SaaS 平臺化
SaaS 商業模式的關鍵就是實現服務的低成本和用戶數量之間的平衡,因此, 用戶是SaaS發展的關鍵要素[20]。一些互聯網企業自身擁有龐大的在線用戶,它們 紛紛打造了自己的 SaaS 運營平臺。 SaaS 運營平臺是集接入、運行、推廣、銷售、 計量、支付和維護為一體的綜合環境,它可以支持多種形式的SaaS應用。任何第 三方的SaaS軟件接入到SaaS運營平臺,就能理解使用SaaS運營平臺上的客戶資 源,找到買家。目前,已經有一部分實力雄厚的大企業打造了 SaaS 運營平臺。這 些平臺各自關注的內容并不相同,盡管它們或多或少都有一些缺點,但是它們的 一個共同的貢獻就是為眾多的第三方軟件商提供了一個SaaS軟件的平臺。SaaS平 臺的出現和發展,必將給整個 SaaS 產業帶來新的機遇。
2.1.5.2SaaS 產業鏈
SaaS產業鏈是SaaS應用發展的一個重要趨勢。為了共同的的經濟價值,大量 的 SaaS 開發商等企業廣泛地參與,形成關系緊密的供需邏輯結構關系,即 SaaS 的產業鏈。當大量企業參與SaaS軟件的供需環節時,必然會形成一定量的規模經 濟效益[21]。SaaS產業鏈的供需關聯關系是以SaaS運營平臺為紐帶的,在SaaS運 營平臺上,SaaS軟件開發商和互聯網上的所有客戶就形成了 SaaS的供需關系。
2.1.5.3SaaS 移動化
伴隨著智能手機的普及,手機的功能也越來越強大,手機不在只是一個通訊 工具。隨著越來越多的應用軟件被移植在手機上,現在的手機已經相當于一個小 電腦了。據調查,手機現已成為用戶最大的上網終端,可以說手機在人們生活中 扮演者越來越重要的角色。而SaaS應用無須安裝即可使用的特質,也非常適合手 機的環境。目前,已出現針對手機終端的 SaaS 應用,盡管受到手機屏幕小等多方 面的因素的影響,以手機為終端的SaaS應用提供的服務還有限,但是毋庸質疑的 以手機終端為首的移動商業帶來的巨大前景。
2.2SaaS 服務模式特點
SaaS 是一種軟件服務提供的模式,在該服務模式下,軟件的部署和維護全部 由軟件開發商負責,軟件通過托管服務的形式交予用戶使用,用戶只需要通過因 特網就可以使用其所有的服務。SaaS的出現減輕了用戶在軟件購買和部署上的一
次性投入的費用,使得用戶可以將一次性投入轉化為按照需求和時間的逐步投入 [22]。此外, SaaS 服務模式還使得用戶的重心從軟件的部署和維護轉移到對應用軟
件的管理上,提高了管理的效率。
2.3基于 SaaS 模式的系統應用架構
2.3.1SaaS 模式成熟度模型選擇
根據 SaaS 應用是否具有可配置型、高性能性、可伸縮性, SaaS 成熟度模型 分為 4 級[23]:
第一級:定制開發[24]。這一級別的軟件開發方式與傳統軟件開發相似,都是 根據客戶化的特征,軟件運營商給為每個客戶定制一套軟件,并負責為其部署。 每個客戶都建立獨立的數據實例和數據庫,可以根據客戶的需求對數據庫中的數 據結構或者代碼進行修改。兩者唯一的差別在于商業模式上, SaaS 運營商負責軟 硬件資源的配置和維護,用戶通過租賃的形式來購買相應的服務,并且按需付費。 對于不同的客戶需要獨立的開發和部署,隨著客戶數量的增加,需要進行多次開 發和多次部署,因此,隨著客戶數量的增加系統開發和軟硬件維護的成本很大。
Level:定制開發
多次開發
圖 2-6 第一級成熟度模型
第二級:可配置。相對于第一級的成熟度模型,第二級成熟度模型增加了系 統的可配置性。但是軟件的架構與第一級成熟度相比,并無多大變化,依然是每 個客戶都擁有獨立的軟件實例和數據庫,但可以通過一些簡單的配置來滿足不同 客戶的個性化需求。
Leve2:可配置
& & &
一次開發多 次部署
圖 2-7 第二級成熟度模型
第三級:高性能的多租戶架構[25]。綜上所述,前兩級成熟度模型同傳統軟件 的差別不大,在應用架構上基本上沒有差別,只是在商業模式上存在加大的差異。 由于在前兩級成熟度模型下,均是給每個客戶獨立開發一個軟件實例和獨立部署, 隨著客戶數量的增加必然會導致軟件開發和維護成本的上升,難以形成規模效應。
第三級成熟度的多租戶單實例(Multi-Tenant)架構才是符合真正的SaaS應用 架構的定義。多租戶單實例架構能夠使不同的租戶可以共同使用一個軟件實體, 并通過一定的措施使得各個租戶之間的數據是隔離的,因此,每個租戶都能擁有 自己獨立的數據空間和應用體驗。多租戶單實例的應用架構有效地解決了隨著用 戶數量的增加而不斷激增的軟件開發和維護費用,能夠有效地發揮 SaaS 的規模效 應。
Leve3:多租戶下的高性能
6 8 6
圖 2-8 第三級成熟度模型
第四級:可伸縮性的多租戶架構[26]。第三級多租戶單實例的應用架構在一定 程度上解決了隨著用戶的增多時成本上升的問題,但是隨著用戶規模的持續增加, SaaS 應用的性能將受到集中式的數據庫性能的制約。若只是單純地依賴于硬件設 備的擴展,并不采取數據庫分區設計的話,當達到單個硬件設備的極限時,將導 致SaaS難以實現低成本的運營要求。SaaS第四級成熟度模型就很好地解決了這樣 問題,它并不改變原有的應用架構,只需要在原來的硬件設備上簡單的增加設備 即可達到 SaaS 水平擴展的要求。
在第三級成熟度模型的基礎上,第四級成熟度模型將Multi-Tenant SingleInstance系統擴展為 Multi-Tenant Multilnstance。用戶登錄時,首先會接入 Tenant Load Balance 層, Tenant Load Balance 層中存儲有租戶、租戶與對應的 Instance的映射關系。用戶登錄成功后,系統會根據Tenant Load Balance層中租戶 和Instance的映射關系將用戶分配到相應的Instance□在SaaS應用中,部署1個 Instance就可實現成千上萬個租戶的需求,隨著租戶規模的進一步擴大,SaaS應用 可以增加多個Instance來滿足更多租戶使用需求。Instance可以實現對用戶訪問量 的分擔,從而實現SaaS應用的無限的水平擴展[27]。
Leve4:可伸縮
& & &
圖 2-9 第四級成熟度模型
綜上所述,得出四級模型所具備的特性比較:
表 2-1 四個級別成熟度模型的比較
成熟度 可配置 高性能 可伸縮
第一級:定制開發 無 無 無
第二級:可配置 有 無 無
第三級:高性能的多租戶架構 有 有 無
第四級:可伸縮性的多租戶架構 有 有 有
從上表中可看出,第四級可伸縮性的多租戶架構是最理想的應用架構,它同 時滿足可配置、高性能和可伸縮三方面性能的要求,但是綜合考慮到實現的復雜 程度、成本及客戶的需求,本系統采用第三級成熟度模型。
2.3.2SaaS 多租戶的數據庫選擇
目前,SaaS Multi-Tenant架構在數據存儲方面主要有三種方案,分別是: 方案一:獨立數據庫。與傳統方案一樣,獨立數據庫方案也是為每個客戶分 別建立一套獨立的數據庫,但是與傳統方案不同的是 SaaS 軟件集中部署在軟件開 發商處。
圖 2-10 數據庫選擇方案一
方案二:共享數據庫,隔離數據架構[28]。若干個或者所有租戶都使用一個共 同的數據庫,只是不同用戶的數據分別存儲在不同的數據表中。
方案三:共享數據庫,共享數據架構[29]。在這種方案下,多個租戶共同使用
一個數據庫和同一個架構,通過TenantID (租戶ID)來區分不同租戶的數據。
方案一把每個租戶的數據分別儲存在一個獨立的數據庫中,各個租戶之間的 數據在物理上是隔離的,因此,這種方案的隔離程度最高,安全性最好。數據易 于擴展,數據恢復容易,并且還可以根據客戶的個性化需求來進行修改。但是在 數據的隔離性能和安全性能得到保障的同時,數據庫的安裝數量較大,這增加了 軟件投入的成本。因此,用戶租用的價格也會比較高,不適用于中小企業客戶的 需求,但是可以滿足大客戶對數據安全方面的需求。
方案二實現了數據的隔離、安全性、成本及共享級別方面的平衡。首先,可 以使多個租戶共享一臺數據服務器,大大提高了有軟硬件設備的共享性能,進一 步降低了成本;其次,各租戶的數據實現了邏輯上的隔離,滿足了一定的安全性 的需求;最后,不同用戶的數據存放于不同的數據表中,數據擴展容易。但是由 于數據存放于不同的數據集中,加大了系統開發和數據恢復的難度。
方案三是把所有租戶的數據都儲存在相同的數據表中,這種存儲方案中數據 的共享性最高,但是隔離性最低。與前兩種的方案比較,這個方案的購買和維護 成本最低,它各個數據庫支持的用戶數量最多。所有租戶的數據是存儲在一個數 據表中,因此,數據的共享程度高,方便進行跨租戶的數據統計。但是這種方案 的隔離性能和安全性能都較低,因此在設計和開發過程中需要加大對數據的隔離 和安全方面的開發量。
綜上所述,從方案一到方案三,隔離程度越低,共享水平就越高,成本也就 降低。如何選擇數據庫取決于租戶的對數據安全性的要求和產品的價格定位策略 [30]。
從中小企業信息管理系統的需求出發,本系統在數據庫選擇方面必須滿足以 下3個要求:①能夠支持多用戶使用,支持的用戶規模相對較大;②滿足中小企 業按需購買的需求,通過租賃的形式提供給用戶使用,租金要低廉,這就要求系 統開放和運營的成本要低;③保證客戶數據的安全,要滿足一定的安全性需求。
2.4本章小結
本章闡述了 SaaS的相關理論,重點介紹了 SaaS模式、SaaS與ASP的異同、 SaaS 的特點、優勢與發展趨勢、 SaaS 服務模式的特點以及對 SaaS 多租戶的數據 庫選擇方案進行了對比。
第三章 企業信息管理系統的需求分析
3.1系統功能性需求分析
SaaS 系統主要有三個特征[31]:(1)依托于因特網平臺;(2)數據存放在網 絡服務器;(3)用戶購買后才能使用軟件,按照租賃的時間和租賃服務的數量繳 費。本系統是面向中小型企業的信息管理平臺,主要有以下的功能需求:
1、 本系統面向的是中小企業,用戶的數量龐大,為了保障SaaS平臺運行的 安全性、并發性和穩定性,采用負載均衡技術和用戶身份認證技術。
2、 本系統采用的是在線租賃的形式,為了降低用戶的購買風險,用戶可以先 試用,試用結束后在覺得是否需要租賃。租金按照用戶租賃的服務數量及時間計 算,按需租賃的方式可以緩解中小企業資金不足帶來的壓力。
3、 本系統支持包括手機、電腦、PDA等在內的多種終端,用戶通過使用這些 終端接入到Internet就可以使用本系統提供的各種服務。本系統的配置、維護及升 級等問題均由軟件運營商負責,減少了用戶在維護及人員配置方面的費用。
根據我們對諸多中小企業的業務活動的調查,中小企業信息管理平臺主要實 現的是對包括企業日常的人事管理、員工工資管理、企業的客戶信息的管理、合 同管理、項目管理以及企業日常公告的發布等在內的企業內部信息資源的管理。 因此,本系統主要實現的業務功能如下:
(1)人事管理:人力資源現已成為當今世界上最重要的資源之一,如何實現 人力資源的最佳配置和有效利用已成為企業生存發展的關鍵因素。因此,人事管 理也是當下企業業務活動的重中之重。本系統將中小企業的人力資源管理活動概 括為對企業內部員工的管理,包括員工檔案的管理和部門信息的管理兩部分。員 工檔案資料的管理中有包含對企業離職員工的管理,企業日常管理過程中員工資 料的變動、員工的培訓、員工的考核、員工的調動情況及部門信息等信息均會記 錄在系統內,企業領導或者相關負責人可以在線方面快捷的查詢,及時了解企業 人力資源的狀況。
(2)合同管理:企業與客戶的經濟往來主要是以合同的形式進行,合同對雙 方當事人都有強制的約束力,是保障雙方權利的有效手段。從合同的訂立、履行 到終止都會保存成合同檔案。合同檔案中記載了合同雙方對合同信息和和履行合 同情況的全部資料,當合同當事人發生糾紛時,合同檔案是唯一的依據。因此, 管理好企業合同檔案的信息時企業維護自身權利的有效手段。本系統主要是針對 中小企業合同管理業務的流程,主要是對企業與客戶之間簽訂的合同檔案信息的 維護和管理,客戶與企業相關人員草擬合同,待合同審批通過后,就可錄入到數 據庫,管理人員可以對合同的信息進行跟蹤,實時記錄和修改合同的信息。
(3) 客戶管理:企業要贏得市場,必須得了解市場的需求。企業和客戶之間 是利益互利體,企業可以從客戶的需求中捕捉到市場的需求。對于企業來說,了 解客戶的需求就是了解市場的需求。本系統的客戶管理主要是對客戶檔案資料的 管理與客戶數據的統計和維護,通過對客戶數據的分析結果,可以發現企業的核 心客戶群、客戶的偏好及企業自身產品或服務的缺點,從而更好的滿足客戶的個 性化需求,全面提升客戶的滿意度和為企業取得更大的利潤。
(4) 項目管理:主要是指對企業的大型項目的管理活動,包括項目的建立、 項目任務的分解、項目進程及項目人員等信息的控制和管理。通過對企業的項目 管理,可以實現對項目的整體規劃和實時跟蹤,以降低項目實施的風險。
(5) 工資管理:工資與員工有著密切的的聯系,它是激勵員工的最直接也是 最有效的手段之一。尤其是對于中小企業來說,合理的薪酬體制是防止人員的流 失重要保障。如何制定薪酬制度,如何進行薪酬管理是企業留住人才、保持內部 環境的公平的重要手段。本系統中將工資管理單獨拿出來,作為系統主要功能模 塊的一部分。本系統中的工資管理主要是對企業內部員工工資的計算方式、公式 及結算情況進行管理。旨在方便財務人員及時調整、查詢員工工資的情況。
(6) 公告管理:企業公告的接受對象包括企業內部的員工及社會大眾,而公 告的內容直接反映了企業當前的政策及生產經營狀況。公告是員工和社會大眾了 解企業的最直接的渠道,也是企業內部溝通和較少信息不對稱的重要途徑。因此, 對企業的公告進行管理就顯得十分必要了。考慮到公告的重要性,在所有的公告 發布之前,都要對公告的內容進行嚴格的審核,只有審核通過的公告才能發布。 本系統的公告管理主要是對公告的審核和發布的過程進行控制,保證公告的正確 性和及時性。
3.2系統的性能分析
3.2.1系統的可擴展性
不同的企業有不同的需求,即使是同一家企業在不同的時期其需求也會改變, 因此為了滿足企業動態變化的需求, SaaS 平臺下的企業信息管理系統必須具備良 好的可擴展性。在 SaaS 服務模式下,所有的租戶都共同使用一個模型,這個模型 能夠支持多租戶的并發使用及自由擴展[32]。 SaaS 平臺自主的擴展能夠滿足租戶的 個性化需求,還不能影響其他租戶造成影響。本系統采用的是自定義的擴展表的 形式進行數據的靈活擴展。用戶可以根據名稱或者值來對自定義的數據進行組合, 并將組合后的數據存于單獨的數據表結構中,以實現客戶按需擴展的需求。
3.2.2系統的可配置性
所謂的可配置性是指可以實現對傳統的信息管理系統的平臺進行配置,并可
以實現對平臺的二次開發,但是在SaaS模式下,多個租戶共同使用一個實例,倘 若修改應用程序,就會對在此應用環境下的奇特其他租戶造成影響[33]。為了很好 地解決可配型問題,方便用戶使用本系統,本系統通過運用元數據使得終端租戶 都能夠配置自己界面的具體平臺,以及享有一些基本的交互行為,這樣,既使得 配置更加方便和容易,又可以為用戶節省一定的維護費用。
3.2.3系統的可伸縮性 可伸縮性是指通過增加或者減少服務器對系統性能的影響[34]。可伸縮性可以
從軟件和硬件兩個方面的實現,通過增加硬件設備的數量、增加實例或者分布式 處理來響應更多的用戶。基于SaaS模式的企業信息管理系統的對象是多租戶,因 此,一定要保證平臺的并發性。當使用平臺的用戶數量規模較大時,如何在保證 SaaS 應用平臺正常工作的情況下,又能有效地降低運營成本是本系統可伸縮性的 要求。
3.3本章小結
在本章中,主要是對基于 SaaS 模式下的企業信息管理系統的需求分析。本章 闡述了本系統的功能性需求和性能需求。功能性需求主要從人事管理、工資管理、 合同管理、客戶管理、項目管理、公告管理等幾個方面進行了詳細地分析。性能 性需求主要從系統的可擴展性、可配置性和可伸縮性三方面展開。
第四章 企業信息管理系統的設計
4.1系統設計的原則
1.整體性原則:系統開發的整體性原則是“總體規劃,分布開發”[35]。在系 統開發之初,要先進行系統的總體規劃,包括系統的需求分析、總體設計和詳細 設計,在以系統的總體規劃為指導,進行系統的分布開發。
2.實用性原則:實用性是指系統與企業實際的業務活動的保持一樣或者相似 程度,它是決定系統開發成功與否的決定性因素。因此,一切系統的開發要從實 際出發,系統的開發初期要重視對用戶需求的分析,全面了解用戶的各個需求。 在系統的開發階段要時刻以用戶的需求分析為指導,待系統開發完成后,還要測 試系統是否達到了用戶的需求。
3.界面設計原則:界面設計美觀、友好、易操作,要符合人性化的設計原則, 不需要懂得太多的計算機知識的用戶也可以輕松的使用系統。
4.模塊化設計原則:采用模塊化的程序設計模式,將系統按照功能劃分各個 模塊,使得系統具有良好的可伸縮性,可以根據用戶的具體需求對各個模塊進行 擴展,從而滿足用戶動態變化的需求。
5.可擴展原則:由于客戶的需求是動態變化的,因此在設計的系統應該具有 一定的靈活性,使得系統盡量的組件化和模塊化,以方便以后進行擴展。
6.安全性原則:要保障系統的安全,對系統的權限進行設置,防止非法用戶 的入侵,還要具有數據備份方案,保障數據庫的安全。
7.數據庫設計原則:數據庫設計減少數據冗余的發生,保證數據的一致性和 完整性。
4.2結構設計
在開發過程中,本系統采用的是B/S三層架構的形式。三層架構分別為:表 現層、業務邏輯層和數據訪問層[36]。表現層位于最上層,它主要是面向用戶的, 用戶通過其提供的人機交互界面,完成數據的輸入和讀取操作。業務邏輯層處于 表現層和數據訪問層之間,主要負責處理來自表現層的用戶的請求,并將處理的 結果返回給用戶。數據訪問層位于最底層,該層主要的功能是實現對數據庫中數 據的存、取、刪除、修改等操作。
三層架構中表現層、業務邏輯層和數據訪問層三個層次中的功能進行了分離,
降低了系統間各模塊的耦合性,即使是用戶的業務需求改變了,只需要改動業務
邏輯層的設計,不需要改代碼,從而降低了系統二次開發的成本,提高了系統的 可擴展性。
圖 4-2 SaaS 系統結構
本系統采用的是 B/S 三層體系架構,客戶端用戶將企業的各種辦公體系的終 端連接到互聯網,通過瀏覽器訪問 SaaS 的服務器[37]。本系統的終端有電腦、手機 等,用戶通過這些終端訪問SaaS平臺。為了保障SaaS服務器的安全,系統設置 了兩道防線。第一道防線是位于互聯網和 SaaS 平臺的防火墻,防火墻通過對出入 平臺的數據進行過濾,將網絡和平臺隔離,從而防止用戶的非法入侵。第二道防 線是用戶的身份認證, SaaS 服務器通過鑒別用戶的身份,判斷其是否有訪問平臺 的權限。 SaaS 通過用戶認證系統對用戶的身份進行驗證,用戶認證體系身份認證 模塊、系統管理模塊、用戶中心模塊管理三部分[38]。身份認證模塊主要是實現對 用戶身份的認證,只有通過身份認證模塊的信息審核才能訪問 SaaS 平臺。通過身 份驗證后,用戶就將通過系統管理模塊的審核,系統管理模塊的主要功能是對訪 問用戶權限的驗證,當用戶進入系統后,并不能訪問系統的所有服務,只能訪問 用戶購買或者租賃的軟件服務功能。用戶中心模塊中存放用戶的基本信息、租賃 信息等,功能是集中管理租賃用戶的信息。通過用戶身份驗證后,用戶就可以通 過 SaaS 平臺使用其購買的相關服務。 SaaS 將整個系統劃分為不同的模塊功能,每 個模塊功能都提供相應的服務,按其提供的服務來收費,用戶可以購買自己需要 的服務,而不需要購買整個系統。用戶購買了服務就可以訪問 SaaS 平臺上對應的 軟件。本系統是面向中小型企業用戶的,若用戶過多時,就會給一個服務器造成 過重的負擔,為了很好的控制訪問量和減輕服務器的負擔,系統設置了負載均衡 器,負載均衡器上記錄用戶的訪問量,當一臺服務器上的訪問量太多時,負載均 衡器通過分流,將用戶分流到負載較小的服務器。 SaaS 服務器與數據中心聯通, 服務器用于記錄和執行用戶的所有操作,數據中心中保存所有用戶的數據,通過 身份驗證的用戶可以實時的查詢和修改數據中心的數據,經過處理的數據導入到 數據中心中 [39]。
4.3總體設計
本系統是基于 SaaS 平臺的單實例多用戶的企業信息管理。根據對中小型企業 業務需求的分析,本系統共設計系統管理、人事管理、合同管理、客戶管理、項 目管理、工資管理和公告管理七個模塊。
系統管理:對用戶管理、權限管理和系統的初始化、數據更新等 人事管理:對企業的人員基本檔案資料和部門資料的管理 合同管理:對企業合同基本資料的管理和維護。 客戶管理:對企業客戶信息的維護。 項目管理:對客戶項目信息的維護。
工資管理:對企業員工的工資帳套設置和工資帳管理。
公告管理:對企業公告信息的發布和管理。
圖 4-3 企業信息管理系統的總體結構
4.4主要功能模塊
4.4.1系統管理
系統管理主要實現的是系統管理員對系統信息的維護、數據庫備份、權限控 制等功能。系統管理模塊包括用戶管理、權限管理和密碼修改三個子模塊。
1用戶管理 用戶管理主要實現的是系統管理員對使用該系統的用戶信息的管理。主要包
括以下功能:
(1) 新增用戶:系統管理員負責增加新用戶,并設置用戶的基本信息和初始 密碼,新用戶第一次登錄系統時可對初始密碼進行修改,重新設置新的登錄密碼 和用戶名(登錄名)
(2) 編輯用戶:系統管理員對用戶的信息進行修改,例如對用戶的使用期限 進行修改,延長或者減少用戶對該系統的使用期限。
(3) 刪除用戶:系統管理員對于已經離職或者不具備該系統的用戶信息進行 刪除。
2權限管理 權限管理的主要任務是對系統角色的分配。在本系統中,只有系統管理員才
能進行權限管理。系統管理員創建多種角色,并授予不同的角色不同的權限。角 色管理的主要功能有:
(1) 設置用戶權限角色:系統管理員在創建新用戶時,需要對新增用戶設置 權限。
(2) 修改權限:包括系統管理員賦予某些用戶新的使用權限或者回收某些權 限。
(3) 刪除權限:系統管理員在刪除用戶時,還需要對賦予用戶的權限進行處 理,即刪除授予其的相關權限。
圖 4-4 系統管理模塊功能分解
4.4.2人事管理 人事管理主要包括兩個大的子模塊:員工管理和部門管理。其中,員工管理 又分為員工檔案管理、員工調動管理、員工培訓管理、員工獎懲管理和員工考評 管理。主要的功能如下:
1員工檔案管理
(1) 增加員工信息:增添新員工的信息,包括員工的姓名、編號、性別、所 在部門、電話、地址、入職時間等信息。
(2) 修改員工信息:人力資源部門的相關人員可以對用戶的某些基本信息進 行修改和更新(如工資等),普通員工也可以對自己的基本信息進行修改和維護。
(3) 刪除員工信息:對于已經離職的員工,刪除其在系統內的信息。
(4) 查看員工信息:企業領導、人力資源主管等具有該模塊訪問權限的人可 以查看所有員工的信息,而普通員工只能查看自己的個人信息。
除了對企業現有的員工檔案資料進行管理外,本系統還設置了離職員工信息 管理,主要包括離職員工信息的查詢、刪除及復職等操作。
2部門管理
(1) 新增部門:包括設置新部門的名稱、部門的編號、優先級、部門負責人 等信息。
(2) 修改部門信息:包括修改部門的名稱、編號、負責人等信息。
(3) 刪除部門:對于已經撤銷的部門,在系統要對該部門原來的信息進行刪 除。
(4) 查看部門信息:企業領導和相關部門負責人可以查看該部門的具體信息。
3員工調動管理
(1) 添加:實現對員工調動信息的增加
(2) 編輯:修改員工調動設置。
(3) 刪除:刪除員工調動信息。
(4)打印:打印員工調動信息表。
(5) 查詢:可以自己選擇查詢條件,查詢條件有三種:查詢字段(選擇)、 查詢信息(手動輸入)和調動日期,實現對員工調動信息的查詢。
4員工培訓管理
(1) 添加:添加員工培訓的信息
(2) 編輯:修改員工培訓的信息。
(3) 刪除:刪除員工培訓的信息。
(4) 打印:打印員工培訓的信息表。
(5) 查詢:可以自己選擇查詢條件,查詢條件有三種:查詢字段(選擇)、 查詢信息(手動輸入)和培訓日期,實現對員工培訓信息的查詢與顯示。
5員工獎懲管理
(1) 添加:增加員工的獎懲記錄
(2) 編輯:修改員工的獎懲信息
(3) 刪除:刪除員工的獎懲信息
(4) 打印:打印員工的獎懲信息。
(5) 查詢:可以自己選擇查詢條件,查詢條件有三種:查詢字段(選擇)、 查詢信息(手動輸入)和獎懲日期,實現對員工獎懲信息的查詢和顯示。
6員工考評管理
(1) 添加:添加員工考評的信息。
(2) 編輯:修改員工考評的信息。
(3) 刪除:刪除員工考評的信息。
(4) 打印:打印員工考評信息。
(5)查詢:可以自己選擇查詢條件,查詢條件有三種:查詢字段(選擇)、
查詢信息(手動輸入)和考評日期,實現對員工考評信息的查詢和顯示。
人事管理
圖 4-5 人事管理模塊功能分解
4.4.3合同管理
主要實現的是對客戶合同信息的管理。包括合同的創建、審批、修改、查詢 和刪除等。
(1)合同的增加: 根據系統已有的模板新增合同信息,包括合同的編號、 合同的類型、合同的名稱、合同的負責人等。
2)合同的審批:在合同簽訂前,合同負責人需要將合同信息單交予企業領
導審批,待審批通過后,才可簽署合同。未經審批而簽訂的合同無效。
(3)合同的修改: 在合同執行過程中,對合同進行跟蹤,修改和更新合同 的變動的信息。
(4)合同的查詢:實現對不同查詢條件的合同信息的查詢。
(5)合同的刪除: 對于已經解除或者無效的合同,進行刪除。
圖 4-6 合同管理模塊功能分解
4.4.4客戶管理 主要是對企業所有客戶信息的管理,包括對客戶信息的增加、修改、查詢和 刪除等。
(1)客戶添加: 錄入客戶的基本信息,包括客戶的名稱、公司代碼、企業 法人等。
(2)客戶修改:對已客戶信息進行實時維護,及時修改其變動的信息。
(3)客戶查詢:實現不同條件下對客戶信息的查詢。
(4)客戶刪除:對于不滿足資格或者評定不達標的客戶,要及時從系統中剔 除。
客戶管理
統計
與分
析
圖4-7客戶管理模塊功能分解
4.4.5項目管理
主要實現的的企業項目的監控和項目信息的管理。
1 項目信息管理
主要是對項目信息的創建、修改和查詢等。在該模塊,只有特定權限的用戶 才能查看和修改該模塊的信息。
(1) 創建項目:主要是根據系統中已經定義好的模板創建新項目,并錄入新 項目的信息,包括項目的編號、項目的名稱等。
(2) 修改項目:對項目信息的內容進行調整和更新,項目主管和企業領導可 以直接修改項目信息,其余的用戶(如項目信息維護人員)在修改項目信息時, 必須經過有關部門和領導的審批,才能對項目信息進行修改,若事先未進行審批 則該操作不能生效。對已已經實施的項目,其項目的編號等信息不能再進行修改 在對項目的進度進行監控時,可以實時記錄和更新項目的進展情況。
(3) 刪除項目:刪除項目信息,本系統中只有企業領導能直接刪除項目信息,
其余用戶必須經過審批才能刪除項目。對于已經實施的項目,其項目的信息不能 再進行刪除操作。
(4)查看項目信息:項目創建完畢后,只有企業領導、項目總共和項目組成 員才能查看項目信息。
項目管理
圖 4-8 項目管理模塊功能分解
4.4.6工資管理 主要實現的是對員工工資的管理,包括工資帳套管理、員工帳套設置、工資 表管理、計時工資、計件工資及月末處理六個子模塊。
1 工資帳套管理
(1)增加項目:設置工資項目、工資類型、初始值和計算公式
(2)修改項目:修改工作項目的初始值和項目類型
(3)刪除項目:對選定的工資項目進行刪除
2 員工帳套管理
(1)查詢:查詢員工信息
(2)添加員工:添加員工的個人帳套信息
(3)刪除員工:刪除員工的個人帳套信息
3工資表管理
(1)查看:對具體的某一年度某一個月的工資表進行查看
(2)查詢:對某一個員工或者某一部門的所有員工的工資表進行查詢
(3)讀取數據:讀取某一時間段內員工或部門及時工資和計件工資。
4計時工資
(1)添加:設置計時工資,包括日期、生產單號、部門、員工姓名、工種、 計時單位、計時單價、時間及金額等。
(2)編輯:修改員工的計時工資
(3)刪除:刪除員工的計時工資
(4)工種設置:增加、修改、刪除工種的類型和工種的計時單價。
(5)查詢:對用戶輸入的信息進行查詢并顯示查詢結果。
5計件工資
(1)添加:對員工的工票信息設置,包括生產單號、員工姓名、產品編號、 工序編號、完成數量等。
(2)編輯:對員工的工票信息進行修改。
(3)刪除:刪除員工的工票信息。
(4)設置:包括增加和刪除產品,對操作工序的單價進行設置。
(5)查詢:通過選擇查詢字段和輸入查詢信息,選擇查詢日期,對工票信息 進行查詢。查詢字段包括:員工編號、員工姓名、生產單號、產品名稱、工序編 號、工序名稱、完成數量。
6月末處理
(1)結賬
(2)反結賬 結賬后就不能對工資表進行修改,選擇反結賬可對凍結工資表進行重新操作。
工資管理
4.4.7公告管理
主要實現的是對企業通知公告的發布、修改、查詢和刪除等。
(1)公告知的發布:發布公告信息。
(2)公告的修改:對公告信息的修改和更新。
(3) 公告的查詢:對公告的查詢,只要是本系統的用戶都可以查詢公告信息。
(4) 公告的刪除:刪除公告。
(5) 公告的審核:企業相關領導對公告進行審核,審核通過后的公告才可發 布。
圖 4-10 公告管理模塊功能分解
4.5數據庫設計
在 SaaS 平臺的開發過程中,數據庫的選擇和設計是系統成功與否的重要環節。 本系統是針對中小企業設計的信息管理系統,面向的對象是多用戶,因此,數據 庫中存放的數據表較多,需要處理的數據量也比較大。目前,企業信息管理系統 的開發大多采用的是 SQL 語言,對各個不同的數據庫和數據庫中的數據表建立聯 系。Microsoft SQL Server是一個典型的關系型數據庫管理系統,它提供事物的聯 機處理、數據分析和數據挖掘等功能。 SQL Server2008 擁有超大容量的數據存儲 功能,提供友好的用戶接口和數據庫導向,除了能提供一些基本的數據處理功能, 還能有效地保障系統的安全性、可用性和集成性。因此,本系統選用的數據庫軟 件是 SQLServer2008。
SQL Server 2008是微軟公司在SQL Server 2005平臺上推出的數據庫管理系 統。 SQL Server2008 可以幫助用戶方便、快捷地使用和管理任何數據用戶可以隨 時創建和管理自己的數據和應用。相比于SQL Server的其它產品,SQL Server 2008 的性能更好,其在安全性、可靠性和可擴展性更高。它還提供智能化服務,能夠 集成任何數據,發送相應的報表。SQL Server 2008是一個非常優秀的數據庫軟件 和數據分析平臺。
4.5.1數據表設計
本系統共有12個數據表,總體的設計如表4-1所示:
表 4-1 數據表列表
序號 數據表名 描述
1 User info 用戶信息
2 Staff 員工基本信息
3 Train 員工培訓信息
4 Transfer 人員調動表
5 Evaluation 人員考核表
6 Contract 合同信息
7 Client 客戶信息
8 Department 部門信息
9 Wage 工資項目信息
10 Wage set 員工賬號信息
11 Project 項目信息
12 Announcement 公告信息
用戶信息表User_infor,主要用于儲存系統用戶的信息,包含的字段有:Us_id、
Us_name、Us_passord、Us_role、Us_number、Us_realname、Us_code、Us_description。
表 4-2 用戶信息 User infor
名稱 類型 是否為主鍵 描述
Us id int 是 用戶編號
Us name varchar 否 用戶名稱
Us password varchar 否 密碼
Us role varchar 否 用戶角色
Us number varchar 否 權限編碼
Sta name varchar 否 用戶姓名
Us code varchar 否 初始密碼
Us description varchar 否 用戶描述
員工基本信息表Staff,主要用于儲存員工的個人資料,包含的字段有Sta_id、
Sta_name、 Sta_sex、 Sta_birth、 Sta_hire、 Sta_marriage、 Sta_political、 Sta_ethnic、
Sta_hometown、Sta_edu、Sta_field、Sta_school、Sta_place、Sta_email、Sta_IDnum、 Sta_phone 、 Sta_telephone 、 Sta_employ 、 Sta_ecall 、 Sta_sdate 、 Sta_edate 、 Sta_department、Sta_post、Sta_title、Sta_bank、Sta_source、Sta_card、Sta_wage、 Sta_remark。
表 4-3 員工基本信息 Staff
名稱 類型 是否為主鍵 描述
Sta id int 是 員工編號
Sta name varchar 否 員工名稱
Sta sex varchar 否 性別
Sta birth datetime 否 生日
Sta hire datetime 否 錄用日期
Sta marriage varchar 否 婚姻狀況
Sta political varchar 否 政治面貌
Sta ethnic varchar 否 名族
Sta hometown varchar 否 籍貫
Sta edu varchar 否 最高學歷
Sta field varchar 否 所學專業
Sta school varchar 否 畢業學校
Sta place varchar 否 地址
Sta email varchar 否 電子郵件
Sta IDnum varchar 否 身份證號
Sta phone varchar 否 手機號碼
Sta telephone varchar 否 電話
Sta employ varchar 否 平庸形式
Sta ecall varchar 否 緊急聯系方式
Sta sdate datetime 否 合同簽訂時期
Sta edate datetime 否 合同到期時期
Dep name varchar 否 部門
Sta post varchar 否 職位
Sta title varchar 否 職稱
Sta bank varchar 否 銀行
Sta source varchar 否 錄用來源
Sta card varchar 否 銀行卡號
Sta wage moneyr 否 基本工資
Sta remark varchar 否 備注說明
員工培訓信息Train,主要用于儲存員工的培訓信息,包括的字段有Sta_id、
Sta_name、Sta_sex、Sta_department、Sta_post、Tra_date、Tra_content、Tra_remark。
表 4-4 員工培訓信息 Train
名稱 類型 是否為主鍵 描述
Sta id int 是 員工編號
Sta name varchar 否 員工名稱
Sta sex varchar 否 性別
Dep name varchar 否 名稱
Sta post varchar 否 職位
Tra date datetime 否 培訓日期
Tra content varchar 否 培訓內容
Tra rebank varchar 否 備注
人員調動表Transfer,主要用于儲存員工的調動信息,包括的字段有Sta_id、
Sta_name、 Sta_sex、 Sta_department、 Sta_post、 Tra_date、 Tra_bdepart、 Tra_bpost、 Tra_cause、 Tra_adepart、 Tra_apost、 Tra_remark。
表 4-5 人員調動表 Transfer
名稱 類型 是否為主鍵 描述
Sta id int 是 員工編號
Sta name varchar 否 員工名稱
Sta sex varchar 否 性別
Dep name varchar 否 名稱
Sta post varchar 否 職位
Tra date datetime 否 調度日期
Tra bedepart varchar 否 調前部門
Tra bpost varcha 否 調前職務
Tra cause varcha 否 調動原因
Tra adepart varcha 否 調后部門
Tra apost varcha 否 調后職位
Tra remark varcha 否 備注
人員考評表Evaluation,主要用于儲存員工考評的信息,包括的字段有Sta_id、 Sta_name、 Sta_sex、 Sta_department、 Sta_post、 Eva_date、 Eva_content、 Eva_result、 Eva_remark。
表 4-6 人員考評表 Evaluation
名稱 類型 是否為主鍵 描述
Sta id Int 是 員工編號
Sta name Varchar 否 員工姓名
Sta sex Varchar 否 性別
Dep name Varchar 否 部門
Sta post Varchar 否 職位
Eva date DateTime 否 考評日期
Eva content Varchar 否 考評內容
Eva result Varchar 否 考評結果
Eva remark Varchar 否 備注
合同信息Contract,主要用于存儲客戶的合同信息,包括的字段有:Con_id、
Con_sort、 Con_name、 Con_project、 Con_money、 Con_Currency、 Con_date、 Con_staff、 Con_depart、 Con_mode、 Con_btime、 Con_etime、 Con_payment、 Con_parta、 Con_partb、 Con_chargea、 Con_chargeb、 Con_time、 Con_person、 Con_remark。
表 4-7 合同信息 Contract
名稱 類型 是否為主鍵 描述
Con id Int 是 合同編號
Con sort Varchar 否 合同分類
Con name Varchar 否 合同名稱
Cli id Varchar 否 客戶編號
Pro id Varchar 否 所屬項目
Con money Money 否 合同金額
Con Currency Varchar 否 幣種
Con date DateTime 否 簽訂日期
Con staff Varchar 否 業務員
Dep id Varchar 否 責任部門
Con mode Varchar 否 支付方式
Con btime DateTime 否 開始時間
Con etime DateTime 否 截止時間
Con payment Varchar 否 收付類型
Con parta Varchar 否 合同甲方
Con partb Varchar 否 合同乙方
Con chargea Varchar 否 甲方責任人
Con chargeb Varchar 否 乙方責任人
Con time DateTime 否 錄入日期
Con person Varchar 否 錄入人
Con remark Varchar 否 備注
客戶信息Client,主要用于存儲客戶的基本資料,包括的字段有:Cli_id、 Cli_name、 Cli_area、 Cli_type、 Cli_person、 Cli_group、 Cli_telephone、 Cli_phone、 Cli_tax、 Cli_code、 Cli_email 、 Cli_range、 Cli_address 、 Cli_contact 、 Cli_credit、 Cli_bank、 Cli_account、 Cli_day、 Cli_check、 Cli_time、 Cli_remark。
表 4-8 客戶信息 Client
名稱 類型 是否為主鍵 描述
Cli id Int 是 客戶編號
Cli name Varchar 否 客戶名稱
Cli area Varchar 否 區域
Cli type Varchar 否 類型
Cli person Varchar 否 業務員
Cli group Varchar 否 客戶組
Cli telephone Varchar 否 聯系電話
Cli phone Varchar 否 移動電話
Cli tax Varchar 否 傳真電話
Cli code Varchar 否 郵編
Cli email Varchar 否 電子郵箱
Cli range Varchar 否 經營范圍
Cli address Varchar 否 聯系地址
Cli contact Varchar 否 聯系人
Cli credit Varchar 否 信用額度
Cli bank Varchar 否 開戶銀行
Cli account DateTime 否 賬期天數
Cli day DateTime 否 次月結賬日期
Cli time DateTime 否 建檔日期
Cli remark Varchar 否 備注
部門信息Department,主要用于存儲部門的資料,包括的字段有:Dep_id、 Dep_name、 Dep_time、 Dep_person、 Dep_bewrite、 Dep_part、 Dep_ priority。
表 4-9 部門信息 Department
名稱 類型 是否為主鍵 描述
Dep id Int 是 部門編號
Dep name Varchar 否 部門名稱
Dep time DateTime 否 創建時間
Dep person Varchar 否 部門負責人
Dep bewrite Varchar 否 職能描述
Dep part Varchar 否 上級部門
Dep priority Varchar 否 部門優先級
工資項目信息Wage,主要用于存儲工資項目信息,包括的字段有:Wag_id、 Wag_name、 Wag_type、 Wag_value。
表 4-10 工資項目信息 Wage
名稱 類型 是否為主鍵 描述
Wag id Int 是 工資項目序號
Wag name Varchar 否 工資項目名稱
Wag type Varchar 否 項目類型
Wag value Varchar 否 初始值
員工帳套信息Wage_set,主要用于存儲員工帳套信息,包括的字段有:Sta_id、
Sta_name、 Sta_sex、 Sta_marriage、 Sta_edu、 Sta_employ、 Sta_department、 Sta_post、 Sta_name。
表 4-11 員工帳套信息 Wage set
名稱 類型 是否為主鍵 描述
Sta id Int 是 員工編號
Sta name Varchar 否 員工姓名
Sta sex Varchar 否 性別
Sta marriage Varchar 否 婚姻狀況
Sta edu Varchar 否 最高學歷
Sta employ Varchar 否 聘用形式
Dep id Varchar 否 部門
Sta post Varchar 否 職位
Sta name Varchar 否 帳套名稱
Sta wage Varchar 否 工資值
項目信息Project,主要用于儲存項目信息,包括的字段有:Pro_id、Pro_name、 Pro_charge、 Pro_creat、 Pro_Schedule、 Pro_bewrite、 Pro_fufil、 Pro_btime。
表 4-12 項目信息 Project
名稱 類型 是否為主鍵 描述
Pro id Int 是 項目編號
Pro name Varchar 否 項目名稱
Pro charge Varchar 否 項目負責人
Pro creat Datetime 否 項目創建時間
Pro schedule Varchar 否 項目進度
Pro bewrite Varchar 否 項目描述
Pro fufil Datetime 否 項目完成時間
Pro btime Datetime 否 項目開始時間
公告信息Announcement,主要用于存儲公告信息,包括的字段有:Ann_id、 Ann_content、 Ann_title、 Ann_time、 Ann_audit。
表 4-13 公告信息 Announcement
名稱 類型 是否為主鍵 描述
Ann id Int 是 公告編號
Ann content Varchar 否 公告內容
Ann title Varchar 否 公告標題
Ann time Datetime 否 公告發布時間
Ann audit Varchar 否 審核人
4.5.2各個數據表之間的關系
圖 4-11 數據庫表之間的關系
4.6系統安全設計
4.6.1應用安全
為了保障 SaaS 系統的應用安全,本系統將從租戶的身份認證、權限管理兩個 層面采取相應的措施[40]。
1. 身份認證
身份認證是保證 SaaS 系統安全的最基礎的應用,實現的是對使用 SaaS 系統 的用戶的身份驗證和識別。嚴格的身份認證體系,可以防止非法用戶使用系統或 偽裝成其他用戶使用系統。實現身份認證的方式有三種:集中式認證、非集中式 認證和混合認證[41]。
(1)集中式認證
集中式認證,由SaaS系統為用戶提供一個統一的身份認證中心。所有用戶都 通過這個身份認證中心來管理各自的身份數據,而 SaaS 可以通過統一的身份認證 中心對用戶的身份進行驗證。
集中式認證的優點是能夠更好地保障用戶身份的安全,但不足之處在于需要 用戶在身份認證中心管理自己的身份信息,不可以使用已有系統的身份信息,也 不能同其他系統一起維護。
(2)非集中式認證 非集中式認證,各個用戶通過自己的身份認證系統對身份進行驗證,并向 SaaS 身份認證中心發布自己的安全令牌,用戶身份認證中心通過接受用戶的安全令牌, 從而獲取用戶的身份信息,用戶通過身份認證后,即可使用系統。
非集中式認證不僅能對用戶的身份信息進行統一的維護,還能復用用戶原有 系統的身份信息,能夠實現各個租戶的系統之間的單點登錄。
(3)混合認證方式
混合認證方式是既支持集中身份認證又支持非集中身份認證的形式,它常見 于多租戶的 SaaS 應用中。對于大多數中小企業來說,它們并沒有自己的身份認證 中心,這就需要 SaaS 應用提供統一的用戶身份認證中心,來對用戶的身份信息進 行管理和維護。但對于一些比較大型的企業來說,它們已經建立了自己的身份認 證中心, SaaS 應用只需要通過接收安全令牌來獲取用戶的身份信息,用戶也不需 要到 SaaS 的身份認證中心去維護自己的身份信息。因此, SaaS 應用提供混合認證 方式,既能實現統一的身份認證,又能支持用戶自己的身份認證系統。
2. 權限管理
權限管理主要實現的是對用戶訪問系統功能的權限進行管理,保證合法授權 的用戶可以安全和正常地使用系統,從而防止未經授權和無權限的用戶使用系統 的功能。 SaaS 應用的權限管理與傳統應用的權限管理不同, SaaS 應用是基于多租 戶的授權模式,它需要對租戶的使用權限進行管理。權限管理的內容包括權限模 式、權限分配和權限校驗。
(1)權限模式
對于權限模式,傳統系統廣泛采用RBAC模型體系。RBAC模型由美國國家 標準與技術研究院制定。標準的 RBAC 模型包括 4 種:分別是基本模型 RBAC0、 角色分級模型RBAC1、角色限制模型RBAC2和統一模型RBAC3。
圖 4-15 RBAC0 模型圖
在多租戶的 SaaS 應用中,
在 SaaS 的多租戶架構設計中, RBAC 模型體系任然適用。但是,模型中涉及 的用戶、角色、操作及操作對象,在傳統應用中都屬于系統全局的,而在 SaaS 應 用中,情況比較復雜。其中,用戶都是按租戶隔離的;而角色既會有全局的,又 會有租戶自身的,而租戶的角色是需要進行隔離的。
(2)權限分配 權限分配包括三部分,即角色管理、用戶到角色的分配和角色許可的分配。 在傳統的應用中,角色都是全局的,管理員的角色只有一個,有但在SaaS應用中, 有兩個管理員,即系統管理員和租戶管理員。在 SaaS 應用中,角色分為兩類,全 局角色和租戶角色。全局角色又包括系統管理員和系統通用角色。系統管理員的 主要責任是對系統的日常維護和租戶信息的管理。系統通用角色即系統操作員的 角色,它的主要作用是簡化系統的用戶的操作。租戶角色包括租戶管理員和租戶 自定義角色。租戶管理員主要負責租戶角色的分配、租戶系統的設置和租戶自定 義角色的管理。
在 SaaS 應用中用戶角色的分配和用戶的管理都是租戶來負責。租戶管理員的 主要職責是負責租戶角色的分配,租戶可以使用系統中的通用角色,也可以自己 定義角色。租戶可以把系統的通用角色或者租戶自定義角色分配給用戶使用。
角色許可的分配包括系統通用角色的許可分配和租戶自定義角色的許可分配 兩部分。系統通用角色的分配由系統管理員來完成,而租戶管理員主要負責租戶 自定義角色的分配。
(3)權限校驗
在進行權限驗證時,SaaS應用會首先驗證用戶是否購買了系統的相應的功能。 若用戶購買了相應的功能,然后再來驗證該用戶是否被授權使用該功能。
由于系統內有些角色是系統全局的,這些全局的角色,可能被授予了比較多 的功能權限,但是并不是每個租戶都能購買了這些功能。因此,在權限校驗時, 應該首先校驗租戶是否已經購買了相應的功能。
盡管在系統內對用戶進行授權時,已經對租戶是否購買功能進行了校驗。但 是,租戶購買的功能是有使用期限的,一旦過了使用期,租戶就不再有使用該功 能的權限了。所以,要實時地校驗租戶是否具備相應的功能權限。
4.6.2數據安全
對于 SaaS 的租戶來說,他們最關心的就是數據的安全。本系統主要通過對租 戶的數據進行隔離和對敏感數據進行加密的技術,來保證數據庫的安全。
(1) 數據隔離 在傳統的應用中,每個客戶的設備是獨立的,因此他們的數據也是完全隔離 的。而SaaS應用中用戶的設備和數據都不是獨立的,為了保證數據的安全,需要 對數據進行隔離。數據隔離是指對租戶之間的數據進行隔離,以保證各個租戶數 據的安全性。對于數據隔離的方法,本文中數據庫選擇部分已詳細介紹過。
(2) 數據連接安全
為了保證數據庫連接的安全,本系統分別為不同的用戶設置了相應的數據庫 身份。由于相應的數據庫身份是和把系統的相應功能匹配的,因此,用戶只能使 用自己的身份去連接相應的數據庫和進行相應的數據操作。
(3) 數據加密
SaaS 應用的數據庫是由軟件運營商來負責維護,為了保證用戶數據的安全, 防止用戶的數據被非法使用,需要對客戶的一些敏感數據進行加密。加密算法可 以分為不可逆加密和可逆加密兩種,可逆加密又分為對稱加密和公開加密兩種。 不可逆加密算法對數據加密后,是不能解密的,不能得到明文,因此適合于對租 戶的校驗數據進行加密。由于數據在經過不可逆加密后,是不可以被解密的,因 此針對本系統中租戶的敏感業務數據采用可逆加密算法,具體是采用對稱加密或 者公開加密均可。對稱加密只需要一個密鑰就可以把明文加密成密文或者密文解 密成明文。而非對稱式加密需要一個公鑰和一個私鑰,公鑰用來將明文加密成密 文,私鑰用來將密文解碼成明文。
4.6.3網絡安全
由于 SaaS 應用依托于互聯網,因此在數據的傳輸過程中更容易受到網絡的攻 擊,網絡的安全是保證 SaaS 應用正常運行的關鍵。
(1 ) 安全傳輸
SaaS 需要完全依托于互聯網,因此如采用明文傳輸的形式,將很容易受到網 絡的沖擊。HTTPS與HTTP不同,它更能保證數據的安全,它有一個默認的端口 和一個加密/身份驗證層。因此,本系統將采用安全超文本傳輸協議 HTTPS 進行傳 輸。
(2) 網絡攻擊防范
SaaS 應用是基于互聯網進行使用的,由于用戶需要通過互聯網來使用該應用, 因此, SaaS 需要將部分內容部署在網上,而部署在網上的部分很容易受到攻擊。 為了減少網絡攻擊的概率,需要把暴露在網上的內容減少到最少。本系統采用分 層部署的形式,將系統的部分界面層部署在網上,而應用服務器和數據庫服務器 則部署在防火墻內。
(3) 網絡監控
通過使用網絡監控系統,可以實現對網絡 7*24 小時的實時監控,當網絡出現 故障時,能夠及時報警。
4.7本章小結
本章主要包括四方面的內容:系統的結構設計、功能模塊設計、數據庫設計 及安全設計。在本章的開始,首先闡述了本系統設計的基本原則;其次在此基礎 上詳細闡述了本系統的三層架構模式,然后重點介紹了系統的各個功能模塊的具 體設計,本系統總共設計包括系統管理、人事管理、合同管理等7 個功能模塊。 在SQL SERVER 2008軟件平臺上設計了系統中的各個數據表。最后從身份認證、 權限管理和數據安全三個層面進行了系統安全的設計。
第五章 企業信息管理系統的實現
本系統的開發環境是采用了 Microsoft.NET平臺并利用ASP.NET 4.Web開發工 具,通過C#作為后臺開發語言用以實現整個系統。
5.1系統管理功能實現
系統會根據用戶輸入的用戶名和密碼判斷用戶的角色,不同的角色擁有不同的 權限。如果是用戶是系統管理員,則進入系統后臺進行界面的管理,若只是普通 的員工,則根據不同員工的權限進入不同的功能界面。
登錄流程的核心代碼如下:
public loginIn (String tenantCode, String userCode, String password)
throws Exception, RemoteException
{
try
{
ISecTenantSV tenaSv = (ISecTenantSV) ServiceFactory.getService (ISecTenantSV.class);
IBOSecTenantValue loginTenant
=tenaSv.getTenantByCode {tenantCode, false);
ISecOperatorSV operSv = (ISecOperatorSV) ServiceFactory getService ^ISecOperatorSV.class);
IBOSecOperatorValue loginOperator
= operS v.getOperatorByCode (userCode, false) ;
//校驗租戶存不存在
if (null == loginTenant)
{
throw new LoginExceptio(AppframeLocaleFactory getResource
("i18n.secframe _ resource", sec.secloginsvimpl.nouser "));
}
else if (0 == loginTenant.getState())
{
throw new LoginExceptio(AppframeLocaleFactory getResource
("i18a.secframe _ resource", " sec.secloginsvimpl.userinvalid "));
}
//校驗用戶存不存在
if (null == loginOperator )
{
throw ne^w
LoginException(AppframeLocaleFactory.getResource("i18n.secframe _ resource", "sec.secloginsvimpl.nouser"));
}
else if (0 == loginOperator. getState())
{
LoginException(AppframeLocaleFactory.getResource(" i18n.secframe _ resource ", "sec .secloginsvimpl .userinvalid"));
}
//校驗用戶密碼
String loginPwd = loginOperator.getPassword();
/ / System.out .printin (d 5 .getMD5ofStr ("password"));
IPassword ipass = (Password) Class fovName .
(SecframePropertislnfo.PASSWORD_IMPL ).new/nstance();
if [null == loginPwd || !ipass.getPassword(assWord) .equals (oginPwd))
{
throw ne^w
LoginException(AppframeLocaleFactory.getResource(" i18n.secframe _ resource ", "sec.secloginsvimpl. psderror"));
}
//驗證最近使用密碼登錄次數是否達到最大登錄次數,達到了鎖定該賬號 if (curLoginNum > loginOperator.getTryTimes())
{
//鎖定該用戶
operSv.lockOperator (loginOperator .getOperatorld (), true);
throw ne^w LoginException(AppframeLocaleFactory.getResource("i18n.secframe _ resource", "sec.secloginsvimpl .acclock"));
}
//驗證密碼是否過期
ISecOpSecurityDAO opSecurityDAO = (ecOpSecurityDAO)ServiceFactory getService (iSecOpSecurityDAO .class);
IBOSecOpSecurityValue opSecurityValue = opSecurityDAO.getOpSecurityByld (loginOperator.getSecurityId());
long nowDateLong - Util.getSysDate().getTime();
long psw _ valid _ days = opSecurityValue.getPasswdValid (); if (psw _ valid _ days ! = — 1 )
{
//判斷是否過期 if(psw_valid_days <- 0 )
{
psw _ valid _ days = 90;
}
if( nowDateLong > (loginOperator. getPasswordValidDate(). getTime()
+ psw _ valid _ days * 24 * 60 * 60 * 1000))
{
throw new
LoginException(AppframeLocaleFactory.getResource('i1 Wn.secframe _ resource",
" sec.secloginsvimpl.passwordvalidate "));
}
}
//獲取員工歸屬組織信息
ISecOperatorDAO operDao — (ecOperatorDAO) ServiceFactory getService (ISecOperatorDAO.class );
IQBOSecOrgStaffOperValue orgStaffOperValue
//塞登錄組織和登錄崗位信息
ISecOpStationDAO opStationDAO = (ecOpStationDAO) ServiceFactory getService ^ISecOpStationDAO .class );
long districtOrganizeld = 一 1;
IBOSecOpStationValue baseSecOpStation = opStationDAO.getBaseOpStationByOperId (orgStaffOperValue .getOperato rid ())
if (null = baseSecOpStation )
{
throw new
LoginException(AppframeLocaleFactory.getResource("i18n.secframe _ resource",
"sec.secloginsvimpl.noOpStation"));
}
long stationKey = baseSecOpStation.getOpStationid();
user.set (Constants.LOGIN _ STATION _ ID, baseSecOpStation.getStationid ()); user.set (Constants .LOGIN _ STATION _ KEY, stationKey );
districtOrganizeId = baseSecOpStation.getOrganizeId ();
user.set {Constants .DEFAULT _ ORG _ ID, districtOrganizeId );
if (districtOrganizeId == Constants.PROVINCE _ ORG _ ID)
{
//省公司和地市工號判斷條件
user.set ( Constants.IS _ PROVINCE _ CODE, Boolean .TRUE );//是省級工號
}
else
{
user.set ( Constants.IS _PROVINCE_CODE, Boolean.FALSE);// 是地市工號
//塞入角色信息
ISecRoleSV sv = (ISecRoleSV) )erviceFactory getService (SecRoleSV class) IBOSecRoleValue[] secRoles = sv.getSecRoleValues( orgStaffOperValue.getOperatorId(), orgStaffOperValue.getOrganizeId());
List roleList = new ArrayList ();
if (null!= secRoles && secRoles.length >0)
{
for (int i =0; i < secRoles.length; i ++)
{
roleList.add(secRoles[i].getRoleId());
}
}
user.set ( Constants.ROLE _ LIST, roleList);
系統管理實現的主要功能有三個:用戶管理、權限管理和密碼修改。其中只 有系統管理員才有用戶管理和權限管理的權力,所有的用戶都能進行密碼修改。 如圖 5-1所示:
圖 5-1 系統管理
用戶權限管理的核心代碼:
//加載角色詳細信息
function loadRoleDetail()
{
document.getElementById (" ppdateBtn " .disabled — false;
document.getElementById p addBtn "disabled — false;
document.getElementByIdS" saveBtn ").disabled - false;
document.getElementById (" delBtn ".disabled — false;
var secRoleSearchResultTable -
g _ TableRowSetManager .get (" secRoleSearchResultTable");
var roleDetailForm — g_FormRowSetManager.get("secRoleDetailForm");
var selRoleId — secRoleSearchResultTable getValue(secRoleSearchResultTable getRow((
"ROLE _ID");
if (null == selRoleId || selRoleId =="")
{
//alert ("請在列表中選擇一條角色! ”);
alert (g _ I18NMessage (" secframe _ role" , " sec _ role _ sel _ one _ role"));
return;
}
var cond — " roleId —" + selRoleId;
roleDetailForm.refresh (cond); / /刷新
}
用戶管理主要實現的功能是是對用戶的查看、新增、修改和刪除操作。系統管 理員首先點擊系統管理導航界面,點擊【用戶管理】就進入到圖5-2所示的用戶管 理界面,系統管理員可以對系統里所有的用戶及用戶的權限進行查看。點擊【修 改】或者【刪除】按鈕,就可以完成對所選擇用戶的修改和刪除操作。點擊【新 建】按鈕,即進入到圖5-3的用戶新增界面。在該界面系統管理員可以新增用戶, 并設置新增用戶的初始密碼和權限。如圖5-4所示的權限設置界面,系統管理員可 以通過該界面實現對新增用戶權限的設置或者已有用戶權限的修改。
圖 5-2 用戶查看
圖 5-3 新增用戶
圖 5-4 權限設置
//更新角色
function updateRoleQ
{
document.getElementById ( addBtn "disabled = true;
document.getElementById (" saveBtn " .disabled = false; document.getElementById("delBtn").disabled = true;
varroleDetailForm = g _ FormRowSetManager.get (" secRoleDetailForm "); / /通過 g _ FormRowSetManager方法獲得DBFrom數據集對象句柄.
roleDetailForm.setColEditSts (" ROLE _ NAME", true );//setColEditStsQ 為
Js對象FormRowSet提供的方法
roleDetailForm.setColEditSts (" ROLE _ TYPE", true );//根據列名設置列 的可編輯屬性value = true(可編輯),false(不可編輯) roleDetailForm.setColEditSts (" REGION _ CODE", true); roleDetailForm.setColEditSts (" DOMAIN _ ID", true);
}
//新增角色
function addRole()
{
document .getElementById (" gpdateBtn ".disabled = true; document .getElementById (" iddBtn ".disabled = true; document.getElementById (" saveBtn ''.disabled = false; document.getElementById (" delBtn ".disabled = true;
var roleDetailForm = g _ FormRowSetManager.getS" secRoleDetailForm "); roleDetailForm.setEditSts (true^);
roleDetailForm.setValue ("ROLE _ ID","-1"); roleDetailForm.setValue (" ROLE _ NAME",""); roleDetailForm.setValue("ROLE_TYPE","");
roleDetailForm.setValue (" REGION _ CODE",""); roleDetailForm.setValue ("DOMAIN _ ID","");
}
//刪除角色 function delRole() {
var list = new Array();
var roleDetailForm = g _ FormRowSetManager.get ("secRoleDetailForm"); var delRoleId = roleDetailForm.getValue ("(OLE _ ID");
list. push ( roleDetailForm );
var msg = saveRowSet( < = request getCont"xfPath( .
% > /business / com.ai.seqframe.sysmgrweb.SecRoleAction ? action = delRole & delRoleId ="+ delRoleId, list);
var retVal = msg.getValueByName("(etVal");if ( retVal == "0")
{
II alert (”角色信息刪除成功!");
alert (g _ (18 NMessage (" secframe _ role" , " sec _ role _ del _ ok")); roleDetailForm.setEditSts ( (alse );
roleDetailForm.newRow();
g _TableRowSetManager.get("secRoleSearchResultTable").refresh(condition); }
else
{
alert (msg.getValueByName (" retMsg "));
}
}
5.2人事管理功能實現
人事管理實現的主要功能有六個:人員檔案管理、部門管理、人員考評管理、 人員調動管理、人員培訓管理和人員獎懲管理。人事管理的導航界面如圖5-5所示
圖 5-5 人事管理
點擊導航頁中的【人員檔案管理】即進入到圖 5-6 所示的界面,在該界面上用 戶可以實現對員工信息的查看、查詢、添加、編輯及刪除等操作。單價選中的某 一員工的信息,就可實現對該員工信息的查看。比如,單擊員工“王小丫”的信 息,則可對員工“王小丫”的詳細信息進行查詢,如圖 5-7 所示。在該界面用戶卡 可以查看“王小丫”的所有個人資料,包括所在部門、員工編號、民族等信息。
圖 5-6 人員檔案管理
圖 5-7 員工信息查看
單擊圖5-6 界面的【添加員工】,可以實現對員工信息的新增。如圖5-8 所示的 員工新增界面,用戶需要手動錄入員工的個人信息,包括員工的姓名、性別、出 生日期、錄用日期等詳細的檔案資料,員工的編號系統會自動生成。錄入完畢后 點擊【保存】,即可完成對員工信息的新增。
圖 5-8 員工新增
本系統除了能對公司現有的員工進行管理外,還設置了離職員工管理的功能。 用戶可以對已經離職的員工信息進行查詢,或者徹底刪除離職員工的信息或者恢 復復職員工的信息。如圖 5-9 所示。
圖 5-9 離職員工管理
員工調動信息界面如圖 5-10 所示。在該界面,用戶可以實現對調動員工的增加、 編輯、刪除等操作。還可以對員工的信息進行查詢。選擇查詢的條件,輸入查詢 的關鍵字,即可對員工的信息進行查詢。單擊【添加】,即可實現對員工的調動, 如圖 5-14 所示。
圖 5-10 員工調動
在員工調動管理的新增界面,用戶可以通過查詢查找到需要調動的員工的信 息,再設置該員工工作調動的具體的細節。點擊【新增】即可進入下一個員工調
動的部署。
圖 5-11 新增員工調動信息
5.3合同管理實現
合同管理主要實現功能有三個:合同信息的管理、合同的審批和統計與分析 如圖5-12 所示。
圖 5-12 合同管理
單擊【合同信息】,進入到圖5-13所受的合同信息管理界面。在合同信息管理 界面可以查看合同的詳細信息,如合同編號、合同分類、合同甲方、合同乙方等。
在該界面還可實現對合同信息的新建等操作。
圖 5-13 合同信息管理
合同統計與分析主要實現的功能是對合同信息的匯總,如圖 5-14 所示。用戶可 按照應收款、應付款信息進行分類匯總,還可將匯總的信息打印或導入到EXCEL 中。
圖 5-14 合同信息匯總
5.4客戶管理實現
客戶管理主要實現的功能有兩個:客戶基礎信息的管理和客戶數據的統計與分 析。如圖5-15 所示。
圖 5-15 客戶管理導航
單擊【客戶基礎資料】,進入到5-16所示的客戶信息管理主界面。在該界面用 戶可以查看客戶的信息,還可以修改、刪除客戶的信息。點擊【新建】,即可以完 成對客戶的新增。如圖5-17 所示,用戶需要對新增用戶的信息進行錄入,包括客
戶的編號、名稱、銀行賬號等基本信息。
圖 5-16 客戶管理
圖 5-17 客戶信息新增
5.5項目管理實現
項目管理實現的主要功能是對項目信息的管理和項目進度的監控。如圖 5-18 所示:
圖 5-18 項目管理導航頁
單擊【項目信息管理】,進入如圖 5-19 所示的項目信息管理主界面,在該界面 用戶可以查看項目信息、新增項目信息、修改或者刪除項目信息。
圖 5-19 項目管理
5.6工資管理實現
工資管理主要實現的功能有六個:工資帳套管理、員工帳套設置、工資表管理 計時工資、計件工資及月末處理,如圖5-20所示。
圖 5-20 工資管理導航頁
如圖5-21所示,在工資帳套管理中,用戶可以查看系統中已有的帳套工資項目 也可以新增、編輯或者刪除帳套的工資項目。
<2011±> >帳套的壬竇
帶増加項目© 風編輯項目©)旦刪賒項目⑤ 吐退出鎧址)
圖 5-21 工資帳套管理
點擊【增加項目】,則進入到5-22所示的工資帳套設置界面。用戶需要對新增 加的工資套帳項目進行設置。
5.7公告管理實現
公告管理主要實現三個功能:公告的發布、審核和查看。只有相關的公告維護 人員才能發布公告,公告發布前需要相關的 領導進行審核,待審核通過后方可發 布出來。系統的所有用戶都可以查看公告信息。如圖 5-23 所示:
用戶可以添加公告的標題及內容,如圖 5-24 所示。
圖 5-24 公告管理
5.8本章小結
本章主要是對系統的主要模塊的實現,闡述了系統管理、人事管理、合同管理、 客戶管理、項目管理、工資管理的核心程序及其運行結果,驗證了系統各部分功 能。
第六章 企業信息管理系統的測試
系統測試是軟件投入運行前最重要的一個環節,它是保證軟件的質量,提高 軟件的性能和效能的重要途徑。測試人員根據用戶的需求分析、開發的規格說明、 業務流程等設計一批測試用例,再使用這些測試用例去測試程序,以便發現軟件 運行過程中的問題,以便能及時發現軟件的缺陷,減少系統缺陷發生的概率。系 統測試的最直接的目的是盡可能的發現軟件的錯誤,通過有限的時間和測試次數 盡可能錯誤,分析產生錯誤的原因和趨勢,以便更好的解決這些錯誤。但是系統 測試不僅僅是發現錯誤,測試最重要的任務是發現軟件和用戶需求的匹配度,及 時處理發現的問題提供軟件的可用性。
6.1測試原則
1.系統測試的數據應該盡可能多樣化,包括正確合理的數據和不合理的數據, 以及各種特殊的、邊界情況。
2.系統測試應該對輸入數據的結果做出預估,并對輸出的結果做出全面的檢 查,既要檢查它是否做了應該做的事情,還要檢查它是否做了不應該做的事情。
3.長時間保存測試的各個用例、測試文檔。
4.測試要嚴格按照測試的計劃 ,避免由于隨意性引發的錯誤。
5.要充分重視測試過程的錯誤集群現象,出錯率較高的模塊,就可能發現更多 的錯誤,應該進行重點和反復的測試。
6.測試用例要精心設計,用例要包括輸入數據的描述、測試的步驟和預期的 輸出結果。
7.軟件測試的時間越晚發現系統缺陷所需要付出的成本就越大,因此軟件測 試要盡早而且不斷地進行。
8.測試用例要不斷的更新,以保證測試用例的有用性。
6.2測試目標
1.測試的目的不僅僅是發現問題,而是為了更好的分析和解決問題。
2.盡可能發現更多的錯誤,降低系統的風險。
6.3系統測試的內容
本系統測試的內容包括 UI 測試、性能測試、功能測試和文檔測試。
631 UI測試
UI測試又稱為界面測試,主要是指系統中與用戶交互的界面部分,如菜單、 控件等進行測試。界面測試的主要內容包括;
1.用戶界面的風格是否統一
2.界面的色彩搭配是否合理
3.界面中文字描述是否準確,字體類型和大小是否合理
4.控件的設置是否符合用戶的使用習慣
5.界面中是否存在錯別字
6.界面上的按鈕是否能完成正常功能,是否有出錯提醒
7.圖片是否能正確顯示
6.3.2性能測試
性能測試的目的是為了驗證系統是否達到了用戶的需求,是否有較高的性能。 測試的主要內容包括系統的響應時間、系統的并發性等。本系統性能測試的指標 有:CPU利用率、內存消耗、磁盤、并發最大用戶量、內存使用、數據庫指標、 響應時間、并發查詢響應時間。
業務指標
表 6-1 業務指標
指標 用戶數
CPU使用率 100
平均響應時間 20
平均響應時間 350
并發查詢 20
并發最大用戶查詢 350
數據庫指標
表 6-2 數據庫指標
指標 值
數據庫數據緩存命中率 >90%
庫緩存命中率 >95%
磁盤排序 <10%
數據庫熱點塊等待 <15%
數據庫鎖等待 <15%
每次數據文件讀的時間 <30ms
主機性能指標
表 6-3 主機性能指標
指標 值
CPU利用率 30%-80%
內存消耗 0.08
磁盤 0.3
并發最大用戶量 350
內存使用 300MB-650MB
6.3.3功能測試 功能測試的內容涉及本系統七個主要模塊的主要功能,具體的內容如下: 1.系統中的輸入功能,包括正確的輸入和錯誤的輸入,檢驗當輸入不合理時, 系統是否有提醒 2.系統的查詢功能,各種查詢條件是否能正確完成查詢功能,能否正確的顯示 查詢結果,對于未查詢到的數據是否有提示
3.系統的刪除功能,是否有刪除提示,刪除數據后是否會對系統其它模塊的功 能產生影響
4.系統的按鈕和控件是否正常工作
5.系統的登錄功能,當用戶登錄成功后能否驗證用戶的角色,者用戶名、密碼 輸入不全或者有誤時,是否有提示。
功能測試的部分頁面如下:
(1)用戶登錄功能的測試
圖 6-1 登錄界面
(2)密碼修改功能的測試
所有用戶都可以對自己的密碼進行修改。用戶點擊導航頁的【密碼修改】即進 入到如圖6-2所示的密碼修改界面。用戶輸入用戶名、當前密碼及新密碼后,按【保 存】按鈕,即可完成密碼的修改。
圖 6-2 密碼修改
(3)部門管理功能的測試 部門管理如圖6-3所示,用戶可以實現對部門信息餓查詢、新增、修改和刪除 等操作。
圖 6-3 部門管理
(4)工資管理功能的測試
如圖 6-4所示,在員工的工資帳套管理界面,用戶可以實現對員工工資的查詢 新增、刪除等操作。
總計:
圖 6-4 員工帳套設置 在工資表管理模塊,用戶可以實現對具體的某一年某一個月的工資情況進行查 詢,如圖 6-5 所示。
-選擇要打開哪個月的工資-
年 I月I 是否結帳
6.3.4文檔測試
文檔測試的主要任務是系統開發過程中的文件進行檢查,檢驗文檔的正確性。 文檔測試的主要內容是對系統開發階段的各種文檔和用戶的產品說明書等進行測 試,例如測試開發階段的各種文檔的內容是否準確、完整,語言描述是否清晰; 用戶的產品說明書表達是否簡潔、易懂,語言是否規范,是否符合用戶的閱讀邏 輯,系統是否達到了用戶的需求。
6.4系統測試結果
UI 測試結果:用戶界面友好、易操作,達到了節目設計的目標。
性能測試結果:系統的性能良好,能夠實現多用戶的并發使用,達到了性能 測試的要求。
功能測試結果:系統的各個功能模塊均能正常使用,當輸入和輸出有誤時, 系統都會有正確的提示,系統的按鈕和各個控件都能正常工作,達到了功能測試 的要求。
文檔測試結果:系統的各個文檔正確、完整,語言描述及邏輯均符合用戶的 需求,達到了文檔測試的要求。
測試結果表明,系統界面友好、易操作,系統的性能穩定,與用戶的需求基 本吻合,達到了本次系統的設計目標。
6.5本章小結
在本章中,首先介紹了系統測試的相關理論,然后對系統進行了 UI 測試、性 能測試、功能測試和文檔測試,最后給出了系統測試的結果。系統測試的結果表 明本系統達到了設計的目標。
第七章 總結與展望
7.1總結
本文以 SaaS 模式下企業信息管理系統的開發為背景,主要對 SaaS 模式下 中小企業信息管理系統的研究與實現。本文首先介紹了本課題研究的背景、意義 及研究的意義SaaS的應用現狀,詳細介紹了目前國內外企業信息管理系統的研究 現狀,其次重點闡述了有關SaaS的概念、SaaS的模式、SaaS平臺的優勢和特點 以及在SaaS平臺下企業信息管理系統的特點,然后在SaaS軟件設計方式指導下, 使用 SaaS 的軟件開發工具對企業信息系統進行構建,在實現過程中首先研究了企 業信息化管理系統的需求,在此基礎上,設計了 SaaS 多租戶單實例的應用架構, 完成了對平臺的功能模塊設計和數據庫的設計,給出了系統實現的部分界面及系 統測試的結果。
本文的內容如下:
(1) 探索在 SaaS 服務模式下企業信息管理系統的特點。介紹了 SaaS 概念、 模式、特點等基礎知識,重點闡述了 SaaS 服務模式的特點以及在該模式下的企業 信息管理系統應當具有什么樣的特點、能夠提供什么樣的服務。
(2) 根據 SaaS 租賃模式的特點,分析了本系統的功能性需求需求、性能需 求及安全需求。
(3) 闡述了系統設計的原則和目標,完成了對系統的總體架構的設計、功能 模塊設計、數據庫設計以及系統安全的設計。重點闡述了系統在應用安全、數據 安全及網絡安全上的具體設計。
(4) 完成對SaaS平臺下企業信息系統的界面的設計及實現,本系統主要實 現了系統管理、人事管理、項目管理、合同管理、客戶管控、工資管理和公告管 理等功能。
(5) 闡述了平臺測試的相關理論,完成對開發的企業信息系統的界面測試、 平臺測試和性能測試,給出了測試的結果。
7.2展望
本文還需要進一步探討的問題:
(1) SaaS 平臺最重要的問題就是如何保障平臺的安全性問題, SaaS 的租賃 用戶通過互聯網來訪問 SaaS 平臺,互聯網是連接用戶和軟件的介質,如何更好地 保障互聯網的安全是本文還需進一步研究的領域。
(2)數據庫有待進一步優化,以解決大量并發用戶訪問的問題。
(3) SaaS應用的關鍵就是實現多用戶并發使用和平臺運營低成本之間的平 衡,隨著SaaS用戶數量的不斷擴大,如何保證系統在擴展的同時保持運營的低成 本是本文還需進一步研究的問題。
致謝
歷時一年我終于完成了畢業論文,在整個論文寫作的過程中遇到了很多的障 礙和困難,在此我要感謝所有在我完成論文的過程中給予過我幫助的人。首先, 我要感謝我的導師楊元杰老師,他不厭其煩地解答我的疑問、幫助我修改論文, 正是在楊元杰老師的細心指導下,我才得以順利完成畢業論文。其次我要感謝我 的同伴,他們在初期給我提供了大量的資料和素材,同時在論文后期編輯和排版 過程中,給我提供了技術支持。再其次,感謝論文中引用文獻的各位學者,沒有 他們的啟發和參考,就不可能有這樣一篇畢業論文。最后,我要感謝一直在身邊 支持我的家人和其他所有幫助過我的朋友們。
參考文獻
[1]張雷,扈飛.軟件即服務應用框架中配置的設計與實現J].計算機系統應用,2009,6: 27-32.
[2]許四平.SaaS軟件即服務模型研究[J].硅谷,2009,(04).
⑶洪志,舒軻,林冬捷.中小企業ERP的SaaS解決方案研究[J].商場現代化,2009,17: 019.
[4]李新明,廖貅武,劉洋.基于SaaS模式的服務供應鏈協調研究J].中國管理科學,2013, 21(002): 98-106.
[5]Davis J. Teach Yourself VISUALLY Salesforce. com[M]. Wiley. com, 2013.
[6]莫展宏.國內外SaaS模式的發展現狀分析[J].商場現代化,2012,7:010.
[7]方東.SAAS與中國中小企業信息化J].科技信息(科學教研),2007,14:28-29.
[8]趙樹璋.SaaS架構現狀及發展趨勢[J].湖北省通信學會,武漢通信學會2009年學術年 會論文集, 2009.
叨 莊胡蝶.SaaS模式下的中小企業信息化應用研究J].中國科技縱橫,2013 (17):71-72.
[10]馬立林,李紅.基于RBAC的SaaS系統的權限模型[J].計算機應用與軟件,2010,27(4):
[11]張立雙. 什么是 SaaS[J]. 信息系統工程, 2006, 10: 24-28.
[12]葉偉等著.互聯網時代的軟件革命SaaS架構設計[M].北京:電子工業出版社.2009.1:26-12&
[13]Dan Ma,Abraham Seidmann.The Pricing Strategy Analysis for the “Software-as-a-Serviee”, Business Model[J].Grid Economics and Business Models,2008(8): 103-1 12
[14]耿冰,于修理.SaaS與傳統軟件的比較研究[J].沈陽師范大學學報,2009,27(1): 84-86.
[15]Hall Thomas W.Is SOA superior? Evidence from SaaS finaneial statements[J].Joumal of Software,2008(3):l-10.
[16]董明霞.一種新的競爭情報服務模式[J].現代情報,2009,29(8).
[17]Gene K Landy.SaaS Custome rAgreement[J].The IT Digital Legal Companion.2008(8) : 905-924
[18]Wang Bin,Huang HeYuan,Liu Xiao Xi,Xu Jing Min.Open Identity Management Framework for SaaS Ecosystem[C].Intemational Conferenece on e-Business Engineering,2009:512-518.
[19]吳孟.真實的SaaS: SaaS與ASP在本質上沒有多大的區別[J].經理人,2007(10):98-98.
[20]邊散.未來十年屬于SaaS[M].網絡世界.2007.8.13:1.
[21]Thomas Kwok,Ajay Mohindra.Resource Caleulations with Constraints,and Plaeement of Tenants and Instanees for Multi-tenant SaaS Applications[J].Leeture Notes in Computer
Seienee,2008(5):133-136.
[22]葉偉.互聯網時代的軟件革命—— SaaS架構設計[M].電子工業出版社,2009:63-65.
[23]趙進.SaaS成熟度模型淺析[J].程序員,2008 (8): 52-54.
[24]趙斌.SaaS架構成熟度模型Level3在進銷存系統中的應用研究[D].電子科技大學, 2009.
[25]昌中作, 徐悅, 戴鋼. 基于 SaaS 模式公共服務平臺多用戶數據結構的研究 [J]. 計算機 系統應用, 2008, 2(7).
[26]焦玉昌.SaaS應用中的服務集成方法研究[D].山東大學,2008.
[27]管永明. 多租戶軟件中動態個性化配置與定制技術研究 [D][J]. 山東: 山東大學, 2009.
[28]鄧偉華.SAAS應用的數據模型研究與設計[J].電腦編程技巧與維護,2009, 8: 5-6.
[29]昌中作, 徐悅, 戴鋼. 基于 SaaS 模式公共服務平臺多用戶數據結構的研究 [J][J]. 計算 機系統應用, 2008, 2(7). .
[30]黃桂梅.SaaS的運營模式和定價策略研究[D].西安電子科技大學,2010.
[31]張水坤.SaaS模式的設計與研究[J].科技創業月刊,2007, 11: 188-192.
[32]周相兵, 佘堃, 馬洪江, 等. 一種基于云計算的 SaaS 組裝方法研究 [J][J]. 小型微型計算 機系統, 2010, 31(10): 1942-1953.
[33]Li Qin,Bing Li,Wei-Feng Pan,Tao Peng.A Novel Method for Mining SaaS Software Tag via Community Detection in Software Serviees Network[J].CloudComputing,2009(11):312-321.
[34]曹薇,張乃洲.企業SaaS應用分析[J].計算機時代,2010,2:63-67.
[35]童恒慶,梅清.基于.NET平臺的B/S系統開發框架的研究[J].微機發展,2004,14(8):
61-66.
[36]溫昱.軟件架構設計[M].電子工業出版社,2007.
[37]袁志俊,夏紅霞.基于SaaS模式在線軟件系統開發方案的研究[J].計算機工程與設計, 2009, 30(11): 2714-2717.
[38]Yong Zhang, Shijun Liu, Xiangxu Meng. GridSaaS: A Grid-enabled and SOA-based SaaS Application Platform. 2009 IEEE International Conference on Services Computing.
[39]A. Konary, S. Graham, and L. Seymour, “The future of soft-ware licensing: Software licensing under siege,” International Data Corporation, White Thesis, Mar. 2004: 89~90.