前言:
技術(shù)平臺與業(yè)務(wù)平臺的分離,在很大程度上是體現(xiàn)一家軟件公司,尤其是軟件服務(wù)公司成熟度和競爭力的指標。
統(tǒng)一開發(fā)平臺的主要作用
開發(fā)平臺(SDCSolution Development Center)定位于技術(shù)層面,其主要目的是為統(tǒng)一公司內(nèi)相關(guān)產(chǎn)品研發(fā)和項目實施使用的技術(shù)架構(gòu)和開發(fā)工具,有效提高統(tǒng)一技術(shù)支持力度,形成持續(xù)的技術(shù)積累手段,提升技術(shù)人員的利用率并降低對人員的依賴性,最終提升軟件的規(guī)模化、流水線式的生產(chǎn)能力。
開發(fā)平臺提供一整套的應(yīng)用軟件設(shè)計開發(fā)方法論及支持工具。針對國內(nèi)軟件需求成熟度低,軟件變更頻繁等特點,都有一系列的對策,能夠極大地縮短開發(fā)周期,保證軟件的可維護性,降低應(yīng)用開發(fā)的風(fēng)險。 平臺可以根據(jù)具體需求定制應(yīng)用程序,滿足企業(yè)持續(xù)改進的業(yè)務(wù)應(yīng)用需求,企業(yè)、軟件開發(fā)商、系統(tǒng)實施服務(wù)商還可以用SDC平臺進行增值開發(fā)和服務(wù)。
開發(fā)平臺設(shè)計理念
SDC基于J2EE框架設(shè)計,核心采用SOA設(shè)計模式,平臺中包括基礎(chǔ)框架、實施平臺、集成平臺、BPM系列套件、門戶系列套件以及開發(fā)工具系列等。
基礎(chǔ)框架提供系統(tǒng)運行的基礎(chǔ)環(huán)境,包括緩存框架、日志框架、安全審計、多數(shù)據(jù)庫支持、多語言支持(國際化)、多租戶支持(SaaS化應(yīng)用)、報表中心、文件中心等;
集成平臺包括系統(tǒng)注冊、系統(tǒng)監(jiān)控、服務(wù)管理、數(shù)據(jù)交換、消息組件、統(tǒng)一用戶與權(quán)限等用于多系統(tǒng)集成的相關(guān)組件;
BPM系列套件包括流程管理套件、電子表單套件、業(yè)務(wù)編排套件、流程監(jiān)控與分析等用于業(yè)務(wù)流程管理與優(yōu)化的相關(guān)套件;
門戶系列套件包括PORTAL、SSO、CMS、ETL、全文檢索等;
開發(fā)工具系列包括開發(fā)規(guī)范、代碼生成工具、可視化流程設(shè)計與建模工具等。
1.?微內(nèi)核模式
基礎(chǔ)架構(gòu)核心采用微內(nèi)核模式,以保證架構(gòu)核心內(nèi)容簡潔、清晰與穩(wěn)定,主要實現(xiàn)清晰的分層結(jié)構(gòu)、實現(xiàn)各層Bean定義的尋址和實例生命周期的管理。更豐富的功能采用關(guān)聯(lián)模式和裝飾模式進行擴展。微內(nèi)核的擴展通過 plugin插件技術(shù),將擴展功能以模塊化的方式進行即插即用的熱部署。
2.分層結(jié)構(gòu)設(shè)計
分層包括橫向分層(技術(shù)層面)和縱向分層(業(yè)務(wù)層面)。橫向分層包括UI層、Action層、proxy層、Service層與DAO層。縱向分層通過提供模塊化設(shè)計機制提供支持。
3.上下文
基礎(chǔ)架構(gòu)采用上下文和數(shù)據(jù)總線的理念進行設(shè)計:
1) 上下文對象負責(zé)登陸信息、調(diào)用參數(shù)、執(zhí)行環(huán)境、處理結(jié)果、數(shù)據(jù)庫連接等信息的管理和傳輸。架構(gòu)代碼負責(zé)上下文中公共信息的生命周期管理。
2) 在系統(tǒng)各層的實現(xiàn)類中,只需從上下文對象中獲取需要的變量,不必關(guān)心變量的產(chǎn)生與銷毀。
3) 對于業(yè)務(wù)過程中產(chǎn)生的數(shù)據(jù),產(chǎn)生數(shù)據(jù)的實現(xiàn)類只負責(zé)將數(shù)據(jù)放置到上下文中,不必關(guān)心數(shù)據(jù)使用者。使用數(shù)據(jù)的實現(xiàn)類只負責(zé)獲取數(shù)據(jù)來運算,不必關(guān)心數(shù)據(jù)生產(chǎn)者。將生產(chǎn)者與使用者松耦合。
4.配置化設(shè)計與配置化開發(fā)
為了提高開發(fā)時的效率及系統(tǒng)質(zhì)量,平臺提供大量的配置化開發(fā)支持。配置化既方便工具的實現(xiàn)以提高效率,又可以控制核心代碼的數(shù)量,以保證其質(zhì)量。
配置化開發(fā)主要體現(xiàn)在實施平臺,實施人員可以根據(jù)客戶的個性化需求,通過配置化開發(fā),設(shè)計新的業(yè)務(wù)、查詢等功能。配置化開發(fā)支持信息集擴展、表單擴展、報表擴展、查詢擴展、業(yè)務(wù)編排等。
5.AOP設(shè)計
基于過濾器技術(shù),對Action調(diào)用、業(yè)務(wù)日志、權(quán)限管理等通過AOP方式實現(xiàn)。架構(gòu)提供AOP的實現(xiàn)機制,但內(nèi)部會較少使用AOP,以保證核心架構(gòu)的執(zhí)行效率。
架構(gòu)使用AOP的部分為:
1) 業(yè)務(wù)日志
2) 權(quán)限控制
3) 異常處理
6.插件式設(shè)計
插件式設(shè)計有兩層概念,第一層為細粒度的插件,即類級別的插件模式;第二層為模塊級別的插件模式。
類級別:所有各層業(yè)務(wù)類的實現(xiàn),默認可繼承架構(gòu)提供的祖先類,也可脫離架構(gòu)提供的祖先類,自行實現(xiàn)。對于權(quán)限、業(yè)務(wù)日志、參數(shù)格式規(guī)范等內(nèi)容,除框架提供默認實現(xiàn)以外,各業(yè)務(wù)系統(tǒng)可以根據(jù)具體需要做相應(yīng)的擴展,只要實現(xiàn)框架的接口規(guī)范,可實現(xiàn)即插即用。支持默認包名和配置擴展包名。
模塊級別:使用plugin技術(shù),每個擴展功能以單獨模塊的方式進行開發(fā),形成獨立JAR包(以及一個JSP目錄),JAR包內(nèi)按規(guī)范包括classes類、配置文件、plugin.xml描述文件、SQL初始語句等相關(guān)信息。部署時將JAR包與JSP目錄放置到相應(yīng)的位置,系統(tǒng)在啟動時即可自動加載相關(guān)功能。
7.面向服務(wù)設(shè)計
服務(wù)層采用SOA的設(shè)計理念,對服務(wù)集中管理。
實現(xiàn)兩層SOA模式:SOA是一種應(yīng)用模式,而非定式。在SDC內(nèi)部完整實現(xiàn)面向服務(wù)的模式,包括服務(wù)管理、服務(wù)總線、業(yè)務(wù)編排等。同時,通過服務(wù)代理與服務(wù)發(fā)布功能,還可以與企業(yè)級SOA體系完美融合。形成兩級SOA體系。
8.事務(wù)管理
事務(wù)管理采用聲明式事務(wù),業(yè)務(wù)實現(xiàn)類不可以自行產(chǎn)生連接對象,必須通過上下文對象來獲得。
1) 事務(wù)通過在代理層的配置文件中進行聲明式管理,事務(wù)級別分為:無事務(wù)、獨立事務(wù)、繼承事務(wù)。繼承事務(wù)用于業(yè)務(wù)編排時,一個大事務(wù)串起所有小服務(wù)的調(diào)用過程。
2) 服務(wù)類中只負責(zé)從上下文中獲取連接進行操作,不關(guān)心事務(wù)與連接的產(chǎn)生與釋放。防止業(yè)務(wù)代碼有未釋放的連接。
9.多數(shù)據(jù)源(多賬套)
架構(gòu)支持多數(shù)據(jù)源,即同一套系統(tǒng)部署,可以支持多個數(shù)據(jù)源同時使用。每個數(shù)據(jù)源即表示一個數(shù)據(jù)庫連接的設(shè)置。用戶登陸時選擇要登陸的數(shù)據(jù)源。在系統(tǒng)執(zhí)行過程中,可以根據(jù)需要隨時更換數(shù)據(jù)源。
集成控制中心和產(chǎn)品實施平臺均需要使用多數(shù)據(jù)源來控制不同的業(yè)務(wù)系統(tǒng)。
業(yè)務(wù)系統(tǒng)在開發(fā)以后,也可以通過多數(shù)據(jù)源來實現(xiàn)多賬套功能。
多數(shù)據(jù)源可有效支持SaaS化應(yīng)用對數(shù)據(jù)的隔離要求。
10.國際化支持
滿足對系統(tǒng)國際化,多語言要求。
頁面文件使用標簽技術(shù)對國際化進行支持。所有頁面內(nèi)需要顯示的文字均通過配置實現(xiàn)。
11.強制性規(guī)范
由于在項目開發(fā)中,開發(fā)人員的水平參差不齊,為了能有效的控制代碼質(zhì)量與規(guī)范,在基礎(chǔ)架構(gòu)中,設(shè)置多種強制規(guī)范要求。
開發(fā)平臺整體規(guī)劃參考
開發(fā)平臺系統(tǒng)組成參考
SDC開發(fā)平臺底層主要包括基礎(chǔ)框架、技術(shù)組件、工具與規(guī)范三部分。基礎(chǔ)框架為系統(tǒng)運行的基礎(chǔ),包括分層、SOA、AOP等框架所需要的基礎(chǔ)內(nèi)容,以及MVC框架、插件模式、服務(wù)代理等增強功能。
SDC應(yīng)用套件包括報表平臺套件、BPM平臺套件、集成平臺套件與門戶系列套件,在應(yīng)用套件之上搭建公司的業(yè)務(wù)平臺。
底層框架與開發(fā)工具
1、基礎(chǔ)框架
基礎(chǔ)架構(gòu)以ToftCore的IoC模式為核心,在此之上掛接組件引擎,比如電子表單引擎、規(guī)則引擎、緩存組件、ORM、SCA、消息平臺等。
基于分層理念,框架分層包括T oftWeb、ToftProxy、ToftDao等。
應(yīng)用層面,包括電子表單系統(tǒng)、業(yè)務(wù)流程系統(tǒng),以輔助流程與業(yè)務(wù)表單的快速開發(fā)以及相互關(guān)聯(lián)。
安全認證組件通過安全過濾器鏈實現(xiàn),可支持license認證、證書認證、URL安全、對象方案安全幾個層次的安全控制。
2、開發(fā)工具
1)集成開發(fā)環(huán)境
SDC提供方便快捷的集成化開發(fā)插件,通過插件對項目進行SDC環(huán)境集成,同時附帶代碼生成工具,可以有效的提高開發(fā)人員的工作效率,降低SDC平臺的學(xué)習(xí)曲線,不需要深刻理解SDC結(jié)構(gòu)以及前臺開發(fā)技術(shù),只要對web開發(fā)有基礎(chǔ)性的認識,即可參與SDC平臺上的項目開發(fā)工作。
插件與SDC產(chǎn)品同步更新,功能可以包括以下:
1. Web項目工程向?qū)Р寮蛊鋷в蠸DC結(jié)構(gòu)特性。
快速開發(fā)向?qū)Р寮瑢⒉寮渴鸬紼clipse開發(fā)工具中,在項目中的新建功能中,會出現(xiàn)SDC的“開發(fā)向?qū)А保糜谏蓸I(yè)務(wù)所需文件,如圖:
2)表單設(shè)計器
電子表單是SDC的一個快速響應(yīng)組件,用來生成界面和業(yè)務(wù)邏輯。電子表單專有的設(shè)計器依托Flex富客戶端技術(shù)開發(fā),通過配置文件來動態(tài)擴展現(xiàn)有的函數(shù)、模板、容器、元素和屬性,能以可視化的、拖拽的方式生成設(shè)計界面,實現(xiàn)相關(guān)數(shù)據(jù)的聯(lián)動和更新,并根據(jù)界面內(nèi)容生成業(yè)務(wù)邏輯,體現(xiàn)出高度的美觀性、交互性、易用性。
3)流程設(shè)計器
流程定義實現(xiàn)任務(wù)節(jié)點、狀態(tài)節(jié)點、會簽節(jié)點、分支節(jié)點、聚合節(jié)點、決策節(jié)點、子流程節(jié)點、動態(tài)節(jié)點等。
這些節(jié)點組合,實現(xiàn)目前所知的絕大部分業(yè)務(wù)流程的需求。在每個節(jié)點上,還可以定義:基礎(chǔ)屬性、高級屬性、抄送配置、業(yè)務(wù)連接、事件定義、定時操作等。可以實現(xiàn)催辦與抄送:可以通過郵件、短信、IM等方式進行通知;事件處理:定義到達某個事件時觸發(fā)一定的操作;定時操作:定義定時器,進行相應(yīng)的處理。
3、技術(shù)組件
技術(shù)組件包括但不限于:系統(tǒng)參數(shù)與碼表、日志監(jiān)控、工作日歷、導(dǎo)入導(dǎo)出、元數(shù)據(jù)管理、附件管理器、序列管理器、字典管理、授權(quán)管理、內(nèi)存數(shù)據(jù)庫、郵件管理、動態(tài)菜單、安全管理、即時通訊管理、任務(wù)調(diào)度管理、消息管理等。
4、UI控件庫
使用UI控件庫快速開發(fā)功能,快速定制出預(yù)定義模板的頁面樣式的功能。控件包括但不限于:datagrid(表格)、searchform(查詢表單)、dataform(數(shù)據(jù)表單)、tabs(多頁簽)、dic(字典)、date(日歷)等。對于復(fù)雜頁面,可以通過控件的組合來實現(xiàn)。
報表平臺
支持單獨部署與集成部署模式,可以支持J2EE或非J2EE的B/S結(jié)構(gòu)應(yīng)用,以及windows環(huán)境下的JAVA應(yīng)用與非JAVA應(yīng)用。
報表設(shè)計器采用類Excel的報表設(shè)計方式,可以定義套打與精確度量。支持多數(shù)據(jù)源定義、內(nèi)建數(shù)據(jù)集、豐富的表達式與函數(shù)支持;分片混合擴展與相關(guān)引用、靈活快捷的分組匯總、行列對稱的擴展機制、層次座標、子報表、統(tǒng)計圖定義、報表參數(shù)與宏、報表設(shè)計向?qū)АQL編輯器與向?qū)А⒐骄庉嬇c函數(shù)幫助等功能。
集成平臺
企業(yè)內(nèi)部通常具有多套信息管理系統(tǒng),每個信息系統(tǒng)都有各自獨立的組織機構(gòu)、用戶與權(quán)限管理體系,且多系統(tǒng)之間往往需要數(shù)據(jù)交換、消息互通等需求。多系統(tǒng)因為重復(fù)維護一些基礎(chǔ)資源而造成時間資源浪費,以及用戶在不同的應(yīng)用系統(tǒng)中切換時,必須重復(fù)進行身份認證的問題。
SDC集成平臺主要實現(xiàn)多系統(tǒng)資源統(tǒng)一整合的功能,將企業(yè)內(nèi)多個系統(tǒng)整合成一個系統(tǒng)界面。通過將各系統(tǒng)的功能點打散后重新設(shè)置子系統(tǒng)、模塊與菜單的劃分,在集成平臺集中體現(xiàn),并進行統(tǒng)一的組織機構(gòu)、用戶、與權(quán)限的管理,以及一些基礎(chǔ)資源、身份認證等,以及在多系統(tǒng)之間進行數(shù)據(jù)交換與消息定制的功能。
業(yè)務(wù)流程管理
業(yè)務(wù)流程管理主要包括但不限于:工作臺、流程定義、流程監(jiān)控、電子表單、業(yè)務(wù)編排等。
統(tǒng)一開發(fā)平臺大方向上的設(shè)計基本就這樣了,具體細節(jié)設(shè)計由于篇幅有限,不再贅述。更多資料和案例來自知識星球(微課堂)。
?