《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于SOA的快速開發(fā)平臺研究與實現
基于SOA的快速開發(fā)平臺研究與實現
2014年微型機與應用第16期
石 輝,馬 軍,裴文斌,楊懷璽
西安雷迪維護系統(tǒng)設備有限公司(西安),陜西 西安 710061
摘要: 介紹了基于SOA技術快速構建OA、MIS類項目的開發(fā)平臺,該平臺使用簡單、高效,支持界面圖形化操作,使得開發(fā)過程更簡潔、代碼編寫更少、開發(fā)效率更高。使用該平臺建設系統(tǒng)對開發(fā)人員要求很低,方便二次開發(fā)和快速響應用戶的需求變更,可節(jié)省企業(yè)人力成本。
Abstract:
Key words :

  摘  要: 介紹了基于SOA技術快速構建OA、MIS類項目的開發(fā)平臺,該平臺使用簡單、高效,支持界面圖形化操作,使得開發(fā)過程更簡潔、代碼編寫更少、開發(fā)效率更高。使用該平臺建設系統(tǒng)對開發(fā)人員要求很低,方便二次開發(fā)和快速響應用戶的需求變更,可節(jié)省企業(yè)人力成本。

  關鍵詞: SOA;HMVC;快速開發(fā)平臺;MIS

  隨著信息化的發(fā)展,越來越多的日常人為手動處理的工作由電腦系統(tǒng)完成,因此OA、MIS系統(tǒng)得到了廣泛的應用。隨之而來的是各方面需求量的不斷增加,快速開發(fā)平臺就是為了高效地開發(fā)此類系統(tǒng)而產生的??焖匍_發(fā)平臺幾乎是以零代碼量來開發(fā)系統(tǒng),使系統(tǒng)建設者更加快捷、高效地實現MIS系統(tǒng)的同時,使用者可以更加靈活、多樣地對系統(tǒng)進行調整,同時滿足了不同層次的需求。

1 快速開發(fā)平臺設計

  本快速開發(fā)平臺基于SOA架構,采用分層結構設計,包括信息表示層(已配置的業(yè)務系統(tǒng))、信息展示層(建立的業(yè)務系統(tǒng))、業(yè)務對象層、持久層(聲明式服務對象),采用微內核、元模型、插件體系、總線集成的體系結構。該平臺實現了組織機構、工作流、報表、業(yè)務規(guī)則、組織機構權限和用戶界面的完全可視化設計,提供豐富的組件庫和業(yè)務模板,實現了可視化建模和代碼開發(fā)的完美結合;支持順序、并行、同步、異步、分支、合并、循環(huán)、終止、回退、轉交、通知、子流程、批處理等所有業(yè)務工作流模式,提供完全可視化的流程建模環(huán)境,集流程圖設計、業(yè)務規(guī)則定制和運行跟蹤于一體;創(chuàng)新的元模型處理體系,完全可視化的界面設計工具,提供前所未有的Web交互頁面設計體驗。多樣的布局模式、豐富的界面組件、強大的頁面向導,使開發(fā)人員幾乎不用寫代碼便可開發(fā)出復雜的業(yè)務應用界面[1]。開發(fā)平臺系統(tǒng)結構如圖1所示。

001.jpg

  (1)信息表示層

  應用程序運行配置完成的應用以及用來作為配置管理的核心應用,例如多租戶配置等。信息表示層是本系統(tǒng)平臺的UI(用戶界面)部分,此UI部分采用層疊式MVC模式(如圖2所示),將客戶端應用程序分解為有層次的父子關系的MVC。反復應用這個模式,形成結構化的客戶端架構。這樣把界面分成了多個部分,降低了依賴性,同時提高了代碼、組件或者模塊的重用度,在日后的維護中,提高了可擴展性。

002.jpg

 ?。?)邏輯層

  邏輯層與UI層是松耦合的,邏輯層實現的核心是聲明式業(yè)務對象[2],主要通過以下幾種方式進行:①聲明式業(yè)務對象的服務可以通過業(yè)務對象總線進行互操作;②聲明式業(yè)務對象的粒度可大可小,可以是一個實體表,也可以是一個較大的業(yè)務模塊;③服務可以調用多個規(guī)則,規(guī)則本身可以根據上下文環(huán)境判斷是否可以執(zhí)行,從而完成復雜的業(yè)務邏輯而無需編碼;④服務可以調用腳本或JavaClass完成平臺不能配置或不易配置的業(yè)務邏輯。邏輯層主要包含了各類插件及中間處理組件,系統(tǒng)為SOA架構(如圖3所示),其主要目的是:  ①使總線成為業(yè)務對象之間共享數據、交換數據的唯一媒介;②總線的生命周期是Session,即從用戶會話開始到用戶會話結束數據總線是一貫和連續(xù)的;③數據總線是線程獨享的、線程安全的,一個線程對數據總線的改變不會影響到其他線程對數據總線的使用,每個線程使用的都是總線的副本。

  數據總線包括Form、User總線等[3]。Form的類型是BOInstance。使用Form實現對HTTP GET的QueryString的封裝或對HTTP POST數據的封裝,它同時可以充當界面上Form的值,也可以是通過AJAX方式傳遞的參數;User的類型是BOInstance,通過Form對登錄用戶封裝,User在登錄自定義動作里進行創(chuàng)建;通過MVCController操作總線,為了減少調用次數,總線和面板操作及服務操作放在一起進行。元模型層面提供對WebService的支持,即平臺中每個服務都是可被調用的Restful WebService。

003.jpg

 ?。?)持久層

  持久層提供了各類服務組件和可擴展的組件,將各類服務以組件的方式進行封裝,包括組織權限、數據庫訪問、國際化等,擴展組件包括WebService和Restfull等接口的實現,充分發(fā)揮了平臺的靈活性。其中,數據庫訪問組件的建立包含了多種方式不同數據庫的連接,支持多種不同的連接方式。

2 快速開發(fā)平臺實現

  該平臺由操作人員通過管理界面的配置來達到項目開發(fā)的目的,基本是零代碼量來開發(fā)系統(tǒng)。配置界面的主要功能有控制器、工作流管理、組織定義管理、數據庫管理、圖標使用、數據字典等。由于篇幅關系,重點詳解控制器類的實現。

 ?。?)控制器管理。平臺中界面展示都是通過各種控制器控制輸出的。傳統(tǒng)的MVC模式,一個界面對應一個控制器,其界面與控制器是粗粒度的,這也是傳統(tǒng)MVC模式在復用方面無法做到更細更深層次的一個根本原因。本系統(tǒng)采用多層次的HMVC模式,使得界面層能夠實現從粗粒度到細粒度的靈活復用,即從比較大的界面區(qū)域到最細粒度的界面元素都能夠得到良好的復用支持。控制器主要包括面板控制器、表格控制器、表格元素控制器、功能樹控制器和菜單控制器5類。控制器的建立主要是指這5類元素的建立和搭配,元素的建立都是通過配置界面進行的,用戶只需要了解業(yè)務流程即可,不需要進行任何代碼的編寫??刂破鞯膶崿F如圖4所示,主要由MVCControl類實現,DOFormBean類進行業(yè)務對象的組織,通過DoViewTemplat模板類進行展示,BIOIstence類是服務總線類,Session類進行服務總線生命周期的控制,CacheMem是加載的系統(tǒng)默認配置數據[2,4]。

004.jpg

 ?。?)工作流管理。本平臺工作流的建立是在可視化操作界面通過拖拽的方式進行的。本平臺同時提供了請假流程的用例,以方便用戶熟悉工作流的建立。主要通過流程模板、模板變量、節(jié)點、業(yè)務數據這幾個關鍵部分進行協調工作。

 ?。?)組織定義管理。本系統(tǒng)對組織結構進行高層抽象,每一個類型的組織結構(如部門、員工、集團公司、事業(yè)部等)都可以注冊為Parter。組織結構可以增加、刪除、替換,所以平臺的組織結構是靈活、可擴展的。用戶只需簡單的設置,就可以擁有自己的組織權限管理功能。

 ?。?)數據源管理。在數據源中存儲了所有建立數據庫連接的信息。就像通過指定文件名可以在文件系統(tǒng)中找到文件一樣,通過提供正確的數據源名稱,可以找到相應的數據庫連接。平臺提供了3種連接數據庫的方式:(1)JNDI方式。數據庫的連接信息存儲在SEVLET容器或應用程序服務器中(如Tomcat、Weblogic、Websphere等),由其提供數據庫的連接池。推薦用這種方式。(2)直接JDBC連接。數據庫連接信息存儲在平臺中,每次數據庫訪問都會請求一次數據庫連接。(3)平臺提供的數據庫連接池。數據庫連接信息存儲在平臺中,與JDBC唯一不同的是“服務器初始化”選擇“是”。數據庫訪問會從平臺提供的數據庫連接池請求連接。

3 快速開發(fā)平臺建立項目的步驟

  應用快速開發(fā)平臺可以方便地建立各類應用項目,主要分為以下幾步:(1)分析需要建立項目的需求,明確業(yè)務需求的業(yè)務對象;(2)建立工程;(3)選擇數據源,可以選擇不同地址及類型的數據庫;(4)建立數據對象,數據對象的建立可以在頁面上逐步錄入,也可點擊導入已有的建立庫表的語句;(5)數據初始化,根據對象,初始化數據、組織權限及業(yè)務表數據;(6)系統(tǒng)配置、初始化完成后,工程名的子菜單會顯示出所建立的對象名稱,每一個對象下面對應的有面板和服務,面板就是對象展示的方式,服務就是對象的處理邏輯,用戶可以根據業(yè)務需求進入不同的頁面進行修改和配置;(7)發(fā)布工程,系統(tǒng)配置完成后,點擊界面上的“發(fā)布工程”,系統(tǒng)自動完成新建工程的部署。

  通過以上幾步配置,就能夠輕松地實現穩(wěn)定的MIS系統(tǒng),幾乎是零代碼編寫量,可以根據業(yè)務的變動隨時方便地進行配置調整,極大地提高了開發(fā)效率,降低了開發(fā)成本。

  本文簡要闡述了快速開發(fā)平臺的架構、功能和實現方式,將主流的框架集成于本平臺中,為用戶呈現一個高效、穩(wěn)定、可復用、低耦合、通用、功能齊全并且用戶體驗良好的套件產品。通過平臺的集成能力,化繁為簡,從而提高了開發(fā)效率,讓軟件工程師將主要精力放在最核心的業(yè)務邏輯上,而非寫一堆POJO類或頁面導航的配置文件這類工作中。基于服務,快速實現業(yè)務需求。IT的服務、流程直接反映了業(yè)務經營的狀況,服務、流程的管理和監(jiān)控為業(yè)務績效的改進提供了巨大的可能性,它可以告訴工程技術人員在流程的哪些地方存在改進的空間,并為改進業(yè)務績效提供直接的信息支持。

  參考文獻

  [1] 顏元,武岳山.多標簽快速識別算法研究與改進[J].電子技術應用,2012,38(1):81-84.

  [2] 王紫瑤.SOA核心技術及應用[M].北京:電子工業(yè)出版社,2008.

  [3] NEWCOMER E, LOMOW G. Understanding SOA with Web Services[M]. 徐涵,譯.北京:電子工業(yè)出版社,2006.

  [4] JENDROCK E, EVANS L, GOLLAPUDI D, et al. The Java EE 6 tutorial: basic concepts(Fourth Edition)[M]. 李鵬,韓智,譯.北京:人民郵電出版社,2012.


此內容為AET網站原創(chuàng),未經授權禁止轉載。