紀昌鋒
(福州職業技術學院,福建 福州 350001)
開發基于CAP協議的統一認證平臺,是電信運營商給客戶提供增值服務的重要平臺之一。根據項目需求使用UML工具進行需求分析,畫出各模塊的用例圖;使用活動圖對每一個用例圖進行用例實現[1],經歷了“用例層→控制層→服務層→實體層”的建模過程。項目的流程是集中認證、聯邦認證、漫游認證和數據同步。
后臺管理主要包括用戶管理、權限管理、業務系統管理、日志管理和報表管理,省級代理包含SSO認證地址查詢、注冊、簽入和信息維護(增、刪、改、查),借助UML工具建模為下階段基于MDA模式協作編程做好基礎。
沿著“設計即是開發”的思想,平臺使用ArgoUML工具對用例模型進一步細化[2],對用例實現的活動圖進一步配置可視元素和流程,使用AndroMDA工具成功將細化的設計模型轉化為代碼和界面雛形,最后,從設計模型中,導出數據模型,形成數據庫腳本。
使用TestNG作為單元測試工具,以周期性地進行自動化回歸測試,使得業務邏輯在變更頻繁的情況下,可以及時得到測試,單元測試主要針對核心的認證、數據同步、后臺管理部分進行測試代碼的編寫,從源頭保障代碼的質量。
(1)CAS2協議
角色有client,server,Back-End Service,Proxy;Ticket有 TGC:Ticket Granting Cookie, ST:Service Ticket(接入系統:一次性消費;服務綁定),PGT:Proxy Grinting Ticket(接入系統:服務綁定), PGTIOU:PGT編號, PT:Proxy Ticket(目標系統:服務綁定;代理層的ST)。
(2)CAS的TicketCAS的Ticket如表1所示。
軟件測試是衡量軟件質量,評估系統是否滿足條件的過程。為檢驗統一認證系統的質量,測試流程分成模擬器聯調、功能測試和性能測試三個環節。
(1)模擬器聯調
聯調的是網廳和網廳代理模擬器,以及全國平臺、業務系統和數據同步模擬器,聯調階段要特別注意服務端的配置嚴格按照規范所定的命令空間和操作名稱的大小寫。
(2)功能測試
分成認證模塊的共呢測試和數據同步測試,包括業務系統接入、報表展示平臺、日志采集功能、人員的權限分配等,本環節要注意不同操作系統如Windows和Solaris的編碼問題,否則會造成驗證失敗的問題。
(3)性能測試
性能測試是整個測試最重要的環節,分為服務器的性能、代碼性能和壓力測試。測試環境:HP用于安裝數據庫,導入初始化的6千萬數據,并對數據庫進行調優設置。SUN用于安裝WebLogic應用服務器,安裝統一認證平臺,配置數據庫連接池、SSL端口、初始連接數、生產模式等。DELL用于安裝模擬器和LoadRunner性能測試工具,提供全流程測試的支持。如表2所示。

表1 CAS的Ticket

表2 全流程測試結果
使用“集中認證”腳本,進行性能測試,針對調優代碼對指標的影響很大,通過簡化登錄流程頁面,剔除斷言簽名的驗證,剔除流水號驗證,屏蔽了日志記錄模塊,屏蔽了密碼屬性的獲取部分,簡化了Ticket的生成方式,將原有SpringMVC方案修改為簡單的Servlet方式;同時在SUN上安裝兩個WebLogic服務,在HP上再安裝一個Apache,作為兩個WebLogic服務的負載均衡器。
經過幾輪的測試,發現Apache在高并發情況下成為了瓶頸,基本上這臺機器的CPU都被Apache占用。在資源有限的情況下,Apache影響了Oracle的性能,如果將Apache移植到SUN機器,則同樣會對WebLogic應用造成很大的影響。基于此,建議拋棄Apache的負載均衡方案,腳本中指定特定的端口來測試,增加一個WebLogic服務。
為保證系統的性能和穩定性,建議開啟頁面緩存、啟用認證數據緩存、將數據同步的多條SQL語句替換為存儲過程,同時開啟WebLogic的數據庫連接的有效性測試選項。針對內存過載保護問題,建議當jvm內存使用低于30%時,處于free狀態;當jvm內存高于90%時處于overload狀態,需要回收內存。