論:統(tǒng)一開發(fā)平臺對一個軟件公司的重要性

前言:

技術(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è)計由于篇幅有限,不再贅述。更多資料和案例來自知識星球(微課堂)。

?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內(nèi)容