1. 程式人生 > >論: 統一開發平臺對一個軟體公司的重要性

論: 統一開發平臺對一個軟體公司的重要性

前言:

技術平臺與業務平臺的分離,在很大程度上是體現一家軟體公司,尤其是軟體服務公司成熟度和競爭力的指標。

統一開發平臺的主要作用

開發平臺(SDCSolution Development Center)定位於技術層面,其主要目的是為統一公司內相關產品研發和專案實施使用的技術架構和開發工具,有效提高統一技術支援力度,形成持續的技術積累手段,提升技術人員的利用率並降低對人員的依賴性,最終提升軟體的規模化、流水線式的生產能力。

開發平臺提供一整套的應用軟體設計開發方法論及支援工具。針對國內軟體需求成熟度低,軟體變更頻繁等特點,都有一系列的對策,能夠極大地縮短開發週期,保證軟體的可維護性,降低應用開發的風險。 平臺可以根據具體需求定製應用程式,滿足企業持續改進的業務應用需求,企業、軟體開發商、系統實施服務商還可以用SDC平臺進行增值開發和服務。

開發平臺設計理念

SDC基於J2EE框架設計,核心採用SOA設計模式,平臺中包括基礎框架、實施平臺、整合平臺、BPM系列套件、門戶系列套件以及開發工具系列等。

基礎框架提供系統執行的基礎環境,包括快取框架、日誌框架、安全審計、多資料庫支援、多語言支援(國際化)、多租戶支援(SaaS化應用)、報表中心、檔案中心等;

整合平臺包括系統註冊、系統監控、服務管理、資料交換、訊息元件、統一使用者與許可權等用於多系統整合的相關元件;

BPM系列套件包括流程管理套件、電子表單套件、業務編排套件、流程監控與分析等用於業務流程管理與優化的相關套件;

門戶系列套件包括PORTAL、SSO、CMS、ETL、全文檢索等;

開發工具系列包括開發規範、程式碼生成工具、視覺化流程設計與建模工具等。

1. 微核心模式

基礎架構核心採用微核心模式,以保證架構核心內容簡潔、清晰與穩定,主要實現清晰的分層結構、實現各層Bean定義的定址和例項生命週期的管理。更豐富的功能採用關聯模式和裝飾模式進行擴充套件。微核心的擴充套件通過 plugin外掛技術,將擴充套件功能以模組化的方式進行即插即用的熱部署。

2.分層結構設計

分層包括橫向分層(技術層面)和縱向分層(業務層面)。橫向分層包括UI層、Action層、proxy層、Service層與DAO層。縱向分層通過提供模組化設計機制提供支援。

3.上下文

基礎架構採用上下文和資料匯流排的理念進行設計:

1) 上下文物件負責登陸資訊、呼叫引數、執行環境、處理結果、資料庫連線等資訊的管理和傳輸。架構程式碼負責上下文中公共資訊的生命週期管理。

2) 在系統各層的實現類中,只需從上下文物件中獲取需要的變數,不必關心變數的產生與銷燬。

3) 對於業務過程中產生的資料,產生資料的實現類只負責將資料放置到上下文中,不必關心資料使用者。使用資料的實現類只負責獲取資料來運算,不必關心資料生產者。將生產者與使用者鬆耦合。

4.配置化設計與配置化開發

為了提高開發時的效率及系統質量,平臺提供大量的配置化開發支援。配置化既方便工具的實現以提高效率,又可以控制核心程式碼的數量,以保證其質量。

配置化開發主要體現在實施平臺,實施人員可以根據客戶的個性化需求,通過配置化開發,設計新的業務、查詢等功能。配置化開發支援資訊集擴充套件、表單擴充套件、報表擴充套件、查詢擴充套件、業務編排等。

5.AOP設計

基於過濾器技術,對Action呼叫、業務日誌、許可權管理等通過AOP方式實現。架構提供AOP的實現機制,但內部會較少使用AOP,以保證核心架構的執行效率。

架構使用AOP的部分為:

1) 業務日誌

2) 許可權控制

3) 異常處理

6.外掛式設計

外掛式設計有兩層概念,第一層為細粒度的外掛,即類級別的外掛模式;第二層為模組級別的外掛模式。

類級別:所有各層業務類的實現,預設可繼承架構提供的祖先類,也可脫離架構提供的祖先類,自行實現。對於許可權、業務日誌、引數格式規範等內容,除框架提供預設實現以外,各業務系統可以根據具體需要做相應的擴充套件,只要實現框架的介面規範,可實現即插即用。支援預設包名和配置擴充套件包名。

模組級別:使用plugin技術,每個擴充套件功能以單獨模組的方式進行開發,形成獨立JAR包(以及一個JSP目錄),JAR包內按規範包括classes類、配置檔案、plugin.xml描述檔案、SQL初始語句等相關資訊。部署時將JAR包與JSP目錄放置到相應的位置,系統在啟動時即可自動載入相關功能。

7.面向服務設計

服務層採用SOA的設計理念,對服務集中管理。

實現兩層SOA模式:SOA是一種應用模式,而非定式。在SDC內部完整實現面向服務的模式,包括服務管理、服務匯流排、業務編排等。同時,通過服務代理與服務釋出功能,還可以與企業級SOA體系完美融合。形成兩級SOA體系。

8.事務管理

事務管理採用宣告式事務,業務實現類不可以自行產生連線物件,必須通過上下文物件來獲得。

1) 事務通過在代理層的配置檔案中進行宣告式管理,事務級別分為:無事務、獨立事務、繼承事務。繼承事務用於業務編排時,一個大事務串起所有小服務的呼叫過程。

2) 服務類中只負責從上下文中獲取連線進行操作,不關心事務與連線的產生與釋放。防止業務程式碼有未釋放的連線。

9.多資料來源(多賬套)

架構支援多資料來源,即同一套系統部署,可以支援多個數據源同時使用。每個資料來源即表示一個數據庫連線的設定。使用者登陸時選擇要登陸的資料來源。在系統執行過程中,可以根據需要隨時更換資料來源。

整合控制中心和產品實施平臺均需要使用多資料來源來控制不同的業務系統。

業務系統在開發以後,也可以通過多資料來源來實現多賬套功能。

多資料來源可有效支援SaaS化應用對資料的隔離要求。

10.國際化支援

滿足對系統國際化,多語言要求。

頁面檔案使用標籤技術對國際化進行支援。所有頁面內需要顯示的文字均通過配置實現。

11.強制性規範

由於在專案開發中,開發人員的水平參差不齊,為了能有效的控制程式碼質量與規範,在基礎架構中,設定多種強制規範要求。

開發平臺整體規劃參考

開發平臺系統組成參考

SDC開發平臺底層主要包括基礎框架、技術元件、工具與規範三部分。基礎框架為系統執行的基礎,包括分層、SOA、AOP等框架所需要的基礎內容,以及MVC框架、外掛模式、服務代理等增強功能。

SDC應用套件包括報表平臺套件、BPM平臺套件、整合平臺套件與門戶系列套件,在應用套件之上搭建公司的業務平臺。

底層框架與開發工具

1、基礎框架

基礎架構以ToftCore的IoC模式為核心,在此之上掛接元件引擎,比如電子表單引擎、規則引擎、快取元件、ORM、SCA、訊息平臺等。

基於分層理念,框架分層包括T oftWeb、ToftProxy、ToftDao等。

應用層面,包括電子表單系統、業務流程系統,以輔助流程與業務表單的快速開發以及相互關聯。

安全認證元件通過安全過濾器鏈實現,可支援license認證、證書認證、URL安全、物件方案安全幾個層次的安全控制。

2、開發工具

1)整合開發環境

SDC提供方便快捷的整合化開發外掛,通過外掛對專案進行SDC環境整合,同時附帶程式碼生成工具,可以有效的提高開發人員的工作效率,降低SDC平臺的學習曲線,不需要深刻理解SDC結構以及前臺開發技術,只要對web開發有基礎性的認識,即可參與SDC平臺上的專案開發工作。

外掛與SDC產品同步更新,功能可以包括以下:

1. Web專案工程嚮導外掛,使其帶有SDC結構特性。

快速開發嚮導外掛,將外掛部署到Eclipse開發工具中,在專案中的新建功能中,會出現SDC的“開發嚮導”,用於生成業務所需檔案,如圖:

2)表單設計器

電子表單是SDC的一個快速響應元件,用來生成介面和業務邏輯。電子表單專有的設計器依託Flex富客戶端技術開發,通過配置檔案來動態擴充套件現有的函式、模板、容器、元素和屬性,能以視覺化的、拖拽的方式生成設計介面,實現相關資料的聯動和更新,並根據介面內容生成業務邏輯,體現出高度的美觀性、互動性、易用性。

3)流程設計器

流程定義實現任務節點、狀態節點、會籤節點、分支節點、聚合節點、決策節點、子流程節點、動態節點等。

這些節點組合,實現目前所知的絕大部分業務流程的需求。在每個節點上,還可以定義:基礎屬性、高階屬性、抄送配置、業務連線、事件定義、定時操作等。可以實現催辦與抄送:可以通過郵件、簡訊、IM等方式進行通知;事件處理:定義到達某個事件時觸發一定的操作;定時操作:定義定時器,進行相應的處理。

3、技術元件

技術元件包括但不限於:系統引數與碼錶、日誌監控、工作日曆、匯入匯出、元資料管理、附件管理器、序列管理器、字典管理、授權管理、記憶體資料庫、郵件管理、動態選單、安全管理、即時通訊管理、任務排程管理、訊息管理等。

4、UI控制元件庫

使用UI控制元件庫快速開發功能,快速定製出預定義模板的頁面樣式的功能。控制元件包括但不限於:datagrid(表格)、searchform(查詢表單)、dataform(資料表單)、tabs(多頁籤)、dic(字典)、date(日曆)等。對於複雜頁面,可以通過控制元件的組合來實現。

報表平臺

支援單獨部署與整合部署模式,可以支援J2EE或非J2EE的B/S結構應用,以及windows環境下的JAVA應用與非JAVA應用。

報表設計器採用類Excel的報表設計方式,可以定義套打與精確度量。支援多資料來源定義、內建資料集、豐富的表示式與函式支援;分片混合擴充套件與相關引用、靈活快捷的分組彙總、行列對稱的擴充套件機制、層次座標、子報表、統計圖定義、報表引數與巨集、報表設計嚮導、SQL編輯器與嚮導、公式編輯與函式幫助等功能。

整合平臺

企業內部通常具有多套資訊管理系統,每個資訊系統都有各自獨立的組織機構、使用者與許可權管理體系,且多系統之間往往需要資料交換、訊息互通等需求。多系統因為重複維護一些基礎資源而造成時間資源浪費,以及使用者在不同的應用系統中切換時,必須重複進行身份認證的問題。

SDC整合平臺主要實現多系統資源統一整合的功能,將企業內多個系統整合成一個系統介面。通過將各系統的功能點打散後重新設定子系統、模組與選單的劃分,在整合平臺集中體現,並進行統一的組織機構、使用者、與許可權的管理,以及一些基礎資源、身份認證等,以及在多系統之間進行資料交換與訊息定製的功能。

業務流程管理

業務流程管理主要包括但不限於:工作臺、流程定義、流程監控、電子表單、業務編排等。

統一開發平臺大方向上的設計基本就這樣了,具體細節設計由於篇幅有限,不再贅述。