概述
G4Studio是一套基於JavaEE的免費開源快速開發平台,主要面向中小軟體企業用戶,涵蓋需求分析、軟體設計、編碼實現、運行測試、運營維護、軟體項目管理等模組,是一套力求復蓋整個軟體生命周期的產品套件。以“標準功能可復用、通用模組可配置、行業需求快速開發、異構系統無縫集成”為目標,全方位立體化的為企業信息化建設,打造行業套用管理信息系統構建企業套用門戶提供強有力的一站式解決方案。
G4Studio是一套面向中小軟體企業及個人開發者的集設計、開發、部署、後期維護於一體,力求復蓋整個軟體生命周期的高品質開源產品套件。(java + extjs)
架構體系
下圖2為G4Studio平台技術架構總體結構圖。
①、ExtJS作為G4Studio套用富瀏覽器客戶端的主要組成部分。雖然ExtJS稍顯臃腫的體積和動態構造Dom和渲染使得其在部分瀏覽器上(比如IE,尤其是IE6)上的表現飽受爭議和詬病。但是輔以G4Studio平台提供的壓縮和快取技術以及一系列的最佳化手段,G4Studio富客戶端不但能在Intranet上完美表現,而且在複雜不可控的Internet環境下也一樣能得到可接受範圍內的性能表現。對於G4Studio客戶端雙兼容架構之一的富桌面客戶端通過HTTP協定和部署在遠端的業務服務組件進行通信並以Java原生系列化技術對數據傳輸對象進行系列化操作,不但能得到HTTP無限穿越網路防火牆的先天優勢也能得到Java原生高性能系列化技術的支持。因此,G4Studio富桌面客戶端一樣能夠在Intranet和Internet環境下有著卓越表現。
②、G4Studio藉助Java先天跨平台優勢,使得基於G4Studio的套用可以方便的部署到Windows、Linux、HP-Unix、IBM-AIX作業系統上。
③、G4Studio目前支持且經過嚴格測試的伺服器及版本為:Weblogic9.2(+)、Tomcat5.0(+)、Jetty6.0(+)、G4Server。
④、G4Studio目前支持的資料庫中間件及版本為:Oracle、Mysql5.0(+)、H2。
⑤、G4Studio提供了穩定成熟的套用框架和豐富完善的技術組件庫。在套用框架的組合上,我們參考設計模式但不拘泥於設計模式,以實用、快速開發為目標並結合平台開發外掛程式,使得G4Studio二次開發人員能夠非常快速的開發出行業套用功能模組來。豐富完善的技術組件庫讓你在開發過程中碰到任何技術問題都有現成可靠的解決辦法,各種難題迎刃而解,徹底解放程式設計師,讓他們更多時間和精力關注和解決業務域的問題,創造更大更可觀的價值回報。
⑥、業務組件庫是基於G4Studio套用框架和技術組件庫開發的一些平台預置功能模組。其中包括企業組織機構能力模型參考實現、系統管理及許可權模型參考實現、通用業務參考實現。
⑦、G4Studio平台對業務建模、流程建模、業務重組集成、設計開發、運行測試、套用部署
整個生命周期都提供了不同程度的支持。
數據流圖
下圖為G4Studio平台技術架構數據流向圖。
①、瀏覽器通過HTTP以Form提交和請求參數提交的方式首先經過平台的編碼過濾器和安全認證器,然後將數據採集到控制邏輯器Action中,Action將界面數據包裝為Dto後調用Dao進行數據查詢或調用業務服務組件BizService進行業務處理後將查詢結果集或業務處理返回結果序列化為JSON對象通過HttpSerletResponse返回給瀏覽器客戶端。
②、Action將界面採集的數據組裝為DTO對象後調用視圖服務ViewService。特彆強調:一般情況下,我們不走這條線。只有在系統的業務服務組件要同時支持各種異構客戶端接入的時候,出於接口統一的因素,我們才需要考慮瀏覽器客戶端是否要走這條線路。注意:並不是說有異構客戶端接入時瀏覽器客戶端就必須走這條路,而是如果為了要和其它客戶端保持統一的接入口時才需要在Action調用視圖服務。因為調用視圖服務和其它異構客戶端保持一致接口是需要付出性能代價的,具體情況得根據實際項目而定。
③、Action將界面採集的數據組裝為DTO對象後調用業務服務組件BizService進行業務處理,並將處理結果以DTO對象返回給Action。
④、針對一些非事務類的查詢操作,為了簡化DAO編程,我們可以在Action中將界面採集的查詢條件包裝為DTO對象後直接調用非事務類DAO查詢接口g4Reader,並將結果集以DTO、
JavaBean、ArrayList等類型的數據對象返回給Action。
⑤、業務服務組件BizService將相關業務數據組裝為DTO對象或者JavaBean後調用事務類DAO訪問接口g4Dao進行數據查詢、數據持久化和存儲過程調用操作。
⑦、數據訪問接口將DTO對象、JavaBean交給DAO實現將其映射為相應的SQL語句向資料庫發出請求,並將資料庫返回的結果集映射為DTO、JavaBean、等數據類型對象返回給數據訪問接口調用端。
⑧、對於桌面客戶端我們可以將其簡單分為2類。一類是使用G4Studio平台提供的基於SWT/Jface圖形庫的富桌面客戶端開發框架開發出來的桌面客戶端,對於這種客戶端而言,我們使用HttpInvoker技術直接通過http協定訪問視圖服務ViewService,相互之間可通過DTO或者其它任意可序列化的Java對象來進行參數傳遞和數據互動。另一類是使用其它開發工具比如Delphi、VB、VC等開發出的桌面客戶端,對於這類桌面客戶端發出的請求可以通過WebService使用Soap協定調用視圖服務組件,以序列化的XML資料格式進行數據互動。
⑨、對於移動終端設備,我們提供Webservice數據接入技術。
開源協定
在富瀏覽器端開發框架中,我們引用了在GPL協定下發布的ExtJSV3.1版本。按照協定要求,G4Studio也在GPL協定下發布。如果您使用G4Studio進行閉源商用系統開發,建議大家購買ExtJS商業授權,但具體如何操作取決於項目的實際情況和大家對ExtJS著作權的認識。其次,雖然G4Studio自身也在GPL協定下發布,但無論是在過去、現在還是可預見的將來,我們都始終堅定不移的堅持開源發布,免費使用。您無需購買任何G4Studio產品的商業授權。(了解GPL協定)
組件結構
G4Studio既是行業套用快速開發平台解決方案也是在此開發平台之上衍生的一個開源軟體產品線。
它包含的內容極其廣泛,復蓋了行業套用系統集成與開發、系統運維、軟體企業管理等諸多方面。主要由基礎類庫體系、伺服器端開發框架、富瀏覽器端開發框架、富桌面端開發框架、系統管理及許可權參考模型、通用業務參考實現、入口網站配置與開發框架、平台輔助開發外掛程式、標準範例系統、軟體企業管理信息系統十大核心部件構成(見圖1)。
第三方組件
G4Studio平台取得的成績,離不開大量的第三方開源組件的貢獻。
在平台研發過程中,開發團隊反覆論證精選了一些成熟穩定的開源組件套用到G4Studio中來具體如下圖所示。在此,我們也像這些開源組件的作者表示由衷的感謝和敬意。提示:如下所示部分組件為商業不友好組件或收費組件,建議大家使用時根據自己項目實際情況酌情刪減或按照相應組件的開源協定靈活使用。