林仙麗 孫劍峰 朱順痣
摘 要:隨著“互聯網+”技術的快速發展,基于Web的平臺信息管理系統逐漸成為應用系統的開發主流。軟件供應商不再局限于本地尋找,更多的是跨地區、甚至是跨國采購,那么一套能有效支持遠程協助的開發、部署、運行管控平臺就顯得尤為重要。作者通過自身多年的Web應用系統開發經歷和經驗,設計和研發了一套面向平臺MIS的遠程協助平臺Auto-PMIS,包括遠程開發、遠程部署、遠程運維監控,涉及到以代碼模板為核心的系統生成器、運行平臺和監控平臺,該平臺能有效規避傳統MIS開發模式的周期長、質量不易控、遠程維護難等局限性,能有效的縮短平臺應用系統的開發周期,提高系統開發質量和生產效率。
關鍵詞:平臺管理信息系統 系統生成器 規則引擎 遠程協助
中圖分類號:TP31 文獻標識碼:A 文章編號:1674-098X(2015)09(c)-0022-03
Research of Key Technologies of Remote Assistance Platform for Platform-MIS
Lin Xianli1 Sun Jianfeng2 Zhu Shunzhi1
(1.School of Computer & Information Engineering,Xiamen University of Technology,Xiamen Fujian,361024,China;2.Xiamen Gillion Technology Co.,Ltd,Xiamen Fujian,361008,China)
Abstract:With the rapid development of information technology such as “Internet +”,the platform information management system based on Web is becoming the mainstream of J2EE application system. Software vendors are no longer limited to local providers,more is cross regional,and even cross-border procurement,then an effective platform supporting for the development,operation and management of remote assistance is particularly important.Through many years of experience,the author designs and develops a platform Auto-PMIS,which includes remote development,remote deployment,remote maintenance and monitoring.The system can effectively avoid the limitation of traditional MIS development mode,such as long cycle,weak quality control,hard to remote maintenance,and so on.Auto-PMIS can effectively shorten the development cycle and improve the quality and make the production more efficiency.
Key Words:Platform management information system;System generator;Rule engine;Remote assistance
平臺經濟(Platform Economics)是進入21世紀后經濟發展的一種新形式。它指的是一種虛擬或真實的交易場所,平臺本身并不生產產品,但它可以方便交易雙方或多方的供求關系[1]。平臺信息管理系統是平臺經濟實體的重要組成部分,是提高平臺企業效率和效益的關鍵因素。
隨著“互聯網+”、“智能物聯網”,大數據技術等信息技術的快速發展,基于Web方式的平臺信息管理系統已經成為J2EE應用系統的主要發展趨勢。但目前,平臺信息管理系統的開發,仍然主要還是在采用定制或集中開發模式,通過手工編寫代碼進行系統開發,目前還沒有一種高效、快速的方法來開發這種平臺信息管理系統。當前主要采用的模式是:在充分掌握J2EE框架的基礎上,系統開發者手工編寫程序實體層,服務會話層和交互層JSP頁面顯示,或使用已經封裝好的開發框架(如Struts+Spring+Hibernate框架)[2]。這種開發模式周期一般比較長,程序的質量主要依賴于程序員的個人能力和縝密的思考,系統的質量難以保證。
作者研究了大多數的平臺管理信息系統的開發模式,分析了平臺信息管理系統的特點,設計了一個通用的平臺信息管理系統生成工具Auto-PMIS。該工具不僅能夠自動生成實體,生成平臺信息管理系統的操作界面和功能,具有查詢、添加、修改、刪除等功能,而且用于生成系統操作界面的模板可以遠程修改,無需重新編譯系統就能動態調整系統操作界面和流程,無需重新生成可執行EXE文件。平臺信息系統的開發、部署、運行和監控通過Auto-PMIS這個遠程協助平臺就能得到真正的實現。
Auto-PMIS的應用將大大提高平臺信息管理系統的開發效率,因為幾乎所有的代碼都是由模板生成,程序的質量可以得到更高的保證。此外,使用該工具修改系統,基本上不需要重新編譯,而且通過該工具,能夠實現遠程部署、遠程開發和遠程運維,大大便利了系統開發過程,減少了開發環節,縮短開發周期,可以有效提高項目的整體效率和進度。
1 Auto-PMIS總體架構
Auto-PMIS從開發、部署、運維3個層面為平臺信息管理系統提供支撐,支持平臺的開發、運行和管理,其核心部分:開發平臺,運行平臺,運維平臺,在平臺信息系統軟件生命周期的各個過程提供服務。
Auto-PMIS總體架構如圖1所示。
1.1 開發平臺
Auto-PMIS開發平臺提供可視化建模、界面設計設置至項目代碼自動生成一體化的解決方案,由可視化建模、界面定制、前后端分離、代碼自動生成、增量生成、質量檢測等幾大部分構成。
可視化建模,依次是進行業務模塊、實體模型和數據建模的設計和建立。
創建實體模型時,需要設置實體屬性對應的特性值,例如屬性名稱,屬性類型,中文顯示,英文顯示,是否唯一,是否需要驗證存在性等等。另外可以通過Association對兩個實體建立關聯關系。
UML建模完成后,利用系統提供的“系統生成”功能,可快速生成實體類對應的Java對象、Java對象對應的service及impl、AS文件以及整個模塊的國際化文件。
1.2 運行平臺
Auto-PMIS的運行平臺,主要包括平臺基礎框架與平臺應用框架、企業服務總線,以及圍繞著它們的各種應用,包括規則引擎、工作流、定時任務、硬件接口、企業門戶、移動應用、統計報表、商業智能等等應用,提供運行時的解決方案。
運行平臺的支持,是平臺應用系統的重要支撐和有力支柱。企業服務總線,有序、有機的將各個子應用聯系、整合在一起,統一接口,統一調度,統一服務,統一規范,大大增強了系統的規范性、靈活性和可擴展性。
1.3 運維監控平臺
負責系統運行維護階段的管理,包括實時采集運行時運行數據的監控平臺、安裝、部署方案等等。運維監控平臺,可以很好的起到事先預防、事中監控、事后分析的重要作用。例如,可以對系統運行的各種性能數據進行實時的收集,然后通過平臺提供的工具進行分析、報警,從而在第一時間知道問題和解決問題,而不是等到問題爆發后束手無策。有時候往往問題的爆發表象,并不是問題的本因,監控系統運行第一手資料的收集,能夠很好的協助問題的排查和分析,從而能在盡可能短的時間內解決問題。
2 Auto-PMIS系統生成器
Auto-PMIS的總體應用架構如圖2所示。
以P-FMarker實現代碼配置生成,以P-Drools實現業務規則配置,通過開發平臺,生成平臺信息管理系統,加上P-Activiti工作流,P-Monitor運行監控,整體形成一個遠程協助平臺的系統架構。這樣的一個系統架構,不但能實現快速開發、流程可配,而且能做到遠程部署、遠程運維和監控的目的。
2.1 P-FMarker代碼模板
P-FMarker是以Java的FreeMarker為核心建立的一個代碼生成器,是基于代碼模板來生成所需要的代碼文本。代碼模板倉庫中存放用于生成所需管理操作界面的各類代碼模板[3]。
Auto-PMIS P-FMarker采用FreeMarker進行代碼生成,能夠做到邏輯和界面設計分離,提高靈活性,同時也支持系統修改的靈活性和擴展性,且不需要重新編譯生成可執行EXE文件,做到遠程運維和修改。實現頁面和邏輯分離,還能解決傳統邏輯和頁面混合在一起,很難修改,很難重新生成問題,因為一旦重新生成,有可能導致原先定制的邏輯代碼被覆蓋或者被篡改。
P-FMarker通過對freemarker中的類進行二次封裝,擴展了創建模板和加載模板的功能,方便代碼模板的管理和應用。
2.2 P-Drools業務規則引擎
P-Drools是在Drools基礎上增加了一些平臺MIS所需要的特定的業務規則引擎。它將會隨著業務發展而變化的業務規則從硬編碼中剝離出來,以規則腳本的形式存放在單獨文件中[4],使得規則的變更不需要修改代碼、重編譯程序、重新生成可執行EXE文件、重啟機器就可以立即在生產環境上生效。
P-Drools的基本工作過程和Drools差不多,也是主要通過使用接口來實現某個業務規則的設定和實現,需要傳遞數據進去規則接口,在接口內進行規則的檢查,再返回規則運行的結果或者規則檢查的結果。
規則文件可以使用drl文件,也可以是xml文件。
通過P-FMarker代碼模板和P-Drools業務規則引擎,Auto-PMIS可以很好的進行代碼生成,圖3是對應的結構圖。
首先,梳理和整理業務規則范例,總結平臺信息管理系統的典型應用操作,比如單表操作,主從表操作等等,總結對應的代碼范例,在J2EE MVC架構下,可以整理成代碼范例。
接下來,根據配置參數、實現設定好的FreeMarker代碼模板,結合實際的業務規則,加上代碼生成器和Drools規則引擎,最終生成平臺信息管理系統。
這中間,將會是一個不斷循環迭代、優化的過程,因為在業務過程中,業務規則可能會產生變化,同樣,業務邏輯控制也可能需要不斷的調整以適應新的業務調整和新的業務要求。
2.3 P-Activiti工作流
同樣是基于Activiti的快速、穩定的BPMN 2.0流程引擎,強調流程服務的可嵌入性和可擴展性,同時更加強調面向業務人員[5]。
Auto-PMIS P-Activiti的功能組件,包括用于存儲、存取定義文件,部署文件和支持數據的RepositoryService,用于啟動流程、查詢流程、設置獲取流程實例變量的RuntimeService,對用戶任務和表單進行操作的TaskService,用于日常維護的ManagementService,用于管理用戶的IdentityService,以及用于獲取正在運行或已經完成的流程實例的信息的HistoryService和用于存取管理和控制表單的FormService。
工作流的引進和實現,大大提高了業務流程的柔性。幾乎所有的平臺MIS系統,都會涉及到工作流,穩定和健全的工作流引擎,能夠增加工作流處理的適應性、柔韌性,有效的處理各種業務流和數據流。
3 Auto-PMIS遠程部署與監控
3.1 P-Ramp運行平臺
(1)平臺基礎框架PIA。
主要運用J2EE模型-視圖-控制(MVC)結構提供系統程序代碼運行的基礎框架。
(2)平臺應用框架PAA。
主要運用J2EE的關聯技術,提供各種應用框架所需的功能,包括認證管理、日志管理、異常管理、國際化處理、事務處理等等。
(3)企業服務總線ESB。
Auto-PMIS使用ESB作為應用架構中最基本的連接中樞,采用“總線”來管理和簡化不同服務之間的集成,不同服務、不同應用之間,以定義好的公用標準在消息、事件和服務級別上進行通訊,使得系統在耦合度上能夠取得一個很好的平衡。
3.2 P-Monitor監控平臺
隨著Web應用的不斷增強,針對平臺項目要求越來越高,系統性能監控越來越重要,監控平臺包括數據采集、數據分析、數據統計、監控預警等功能。
(1)多方位監控。
監控數據主要包括:業務處理時間、應用調用時間、垃圾回收時間、CPU、內存占用。
(2)快速定位性能問題。
綜合以上信息收集,同時包括對非正常關閉、異常列表、耗時排行、數據量排行、服務執行效率排行等數據分析進行輔助定位性能瓶頸、問題原因,方便解決問題。
(3)快速跟蹤預警。
對于執行時間過大與處理數據量過大的服務進行預警,自動通知管理員進行處理。監控平臺能夠根據管理員需要設置預警參數。
(4)性能決策。
決策者根據項目當前相關性能參數判斷是否需要進行軟硬件升級,以及升級方案。通過分析給出具體的建議,例如建議增加CPU、建議增加數據庫空間等。這些都是運維管理決策的重要客觀依據。
4 結語
該文提出了一種Web Platform MIS系統的自動生成、遠程部署、遠程運維的遠程協助平臺解決方案,介紹了解決方案的總體架構和開發平臺中系統生成器的主要組成、關鍵實現方法,介紹了運行平臺的遠程部署和監控。該解決方案可減輕傳統系統開發模式中的手工勞動和重復性工作,提高程序質量,縮短了平臺MIS系統的開發周期,并可以有效的實現遠程支持和協助。
當然,當前自動生成的Web Platform MIS系統對應的功能有一定的局限性,無法實現有復雜業務邏輯功能,這方面有待繼續研究,進一步減少定制化開發的比例和提高自動化程度。
參考文獻
[1] 陳威如,余卓軒.平臺戰略[M].北京:中信出版社,2013.
[2] 陳亞輝,繆勇.Struts2+Spring+Hibe
rnate框架技術與項目實戰[M].北京:清華大學出版社,2012.
[3] http://freemarker.org
[4] Michal Bali. Drools JBoss Rules 5.0 Developers Guide [M].UK: Packt Publishing,2009.
[5] 楊恩雄.瘋狂Workflow講義——基于Activiti的工作流應用開發[M].北京:電子工業出版社,2014.