国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于開源的林業(yè)信息系統(tǒng)定制開發(fā)平框架研究

2015-04-23 11:36段輝良
綠色科技 2015年9期
關(guān)鍵詞:代碼頁(yè)面框架

段輝良

(中南林業(yè)科技大學(xué),湖南長(zhǎng)沙412000)

1 引言

加快推進(jìn)林業(yè)信息化,有利于逐步建立起覆蓋各級(jí)林業(yè)部門的林業(yè)信息化體系,對(duì)提高林業(yè)信息管理和服務(wù)水平,促進(jìn)林業(yè)可持續(xù)發(fā)展具有重要的理論和實(shí)際意義。軟件定制開發(fā)作為一種軟件開發(fā)形式,在我國(guó)還是一種新生事物,尚未被廣大用戶所認(rèn)同。林業(yè)信息系統(tǒng)定制平臺(tái)是行業(yè)內(nèi)的軟件定制開發(fā),是以林業(yè)業(yè)務(wù)為導(dǎo)向和驅(qū)動(dòng),無需編寫代碼或只需編寫少量功能擴(kuò)展代碼即可快速構(gòu)建林業(yè)信息系統(tǒng)的軟件平臺(tái)。林業(yè)信息系統(tǒng)定制平臺(tái)的研建將改變以往林業(yè)信息系統(tǒng)的研發(fā)方式,通過使用林業(yè)軟件定制平臺(tái),開發(fā)人員能夠集中精力關(guān)注林業(yè)信息系統(tǒng)研發(fā)的業(yè)務(wù)需求與管理問題,擺脫技術(shù)細(xì)節(jié)的困擾,以提高林業(yè)信息系統(tǒng)研發(fā)的效率。

2 通用軟件與軟件定制平臺(tái)

由于自身的歷史和業(yè)務(wù)狀況,軟件用戶對(duì)于軟件系統(tǒng)會(huì)有特殊的要求,尤其是在行業(yè)個(gè)性化需求和行業(yè)自身獨(dú)有的個(gè)性化需求方面顯得格外迫切。通用軟件通常都是利用套裝軟件的管理思路及模式,讓客戶按照軟件的業(yè)務(wù)流程實(shí)現(xiàn)管理的流程化套用,根本不考慮行業(yè)及內(nèi)部個(gè)性化需求,這樣就造成了軟件在上線和使用過程中存在著相當(dāng)嚴(yán)重的“水土不服”的現(xiàn)象。如不采用類似通用軟件,將帶來昂貴的軟件開發(fā)費(fèi)用及后期軟件維護(hù)與升級(jí)投入。

任何一個(gè)應(yīng)用系統(tǒng),都具備一個(gè)最基本的功能,就是對(duì)數(shù)據(jù)進(jìn)行“增刪改查”的操作。軟件定制平臺(tái)就是抽象出這些共性,采用“標(biāo)準(zhǔn)化+行業(yè)化+個(gè)性化”的應(yīng)用模式,實(shí)現(xiàn)數(shù)據(jù)、模板資源共享以便節(jié)約開發(fā)成本,提高開發(fā)效率,縮短開發(fā)周期。傳統(tǒng)的C/S架構(gòu)模式已經(jīng)不適合應(yīng)用于定制平臺(tái),B/S架構(gòu)模式以互聯(lián)網(wǎng)為基礎(chǔ),程序、數(shù)據(jù)、可供利用的所有資源均實(shí)現(xiàn)了網(wǎng)絡(luò)化。軟件開發(fā)的參與者通過網(wǎng)絡(luò)形成協(xié)作,極大地提高了以往的軟件開發(fā)效率。對(duì)于基于web的軟件定制開發(fā)平臺(tái),應(yīng)具有如下幾個(gè)特點(diǎn):①以web2.0為基礎(chǔ),基于互聯(lián)網(wǎng)的B/S架構(gòu)的軟件。Web2.0本身也是一個(gè)軟件,只不過不是最終的軟件產(chǎn)品,而是用于二次開發(fā)的軟件;②用于實(shí)現(xiàn)各類業(yè)務(wù)系統(tǒng),web開發(fā)平臺(tái)不同于傳統(tǒng)的開發(fā)工具,需要編寫代碼來完成各個(gè)業(yè)務(wù)模塊,基于web的二次開發(fā)平臺(tái)只需要設(shè)計(jì)好自己的數(shù)據(jù)結(jié)構(gòu),進(jìn)行一些簡(jiǎn)單的配置、拖拉等操作就可以完成業(yè)務(wù)系統(tǒng)的開發(fā);③能夠快速的實(shí)現(xiàn)各種報(bào)表包括復(fù)雜的圖表報(bào)表的設(shè)計(jì)制作,傳統(tǒng)的編碼式開發(fā)需要自己去編寫想要的各種報(bào)表,而運(yùn)用開發(fā)平臺(tái)通過配置就應(yīng)能產(chǎn)生相應(yīng)的報(bào)表。

3 林業(yè)信息系統(tǒng)數(shù)據(jù)共享現(xiàn)狀

目前,我國(guó)各級(jí)林業(yè)部門研發(fā)的各類信息系統(tǒng)均基于不同的技術(shù)架構(gòu),由不同的技術(shù)單位研制。它們的開發(fā)語(yǔ)言平臺(tái)、數(shù)據(jù)結(jié)構(gòu)、運(yùn)行環(huán)境均存在不同程度的差別,提供的業(yè)務(wù)功能與信息服務(wù)也都不盡相同,形成諸多信息孤島,導(dǎo)致不同的業(yè)務(wù)部門之間無法共享數(shù)據(jù),各個(gè)林業(yè)信息系統(tǒng)之間基本沒有對(duì)外開發(fā)擴(kuò)展接口,使得系統(tǒng)無法進(jìn)行功能擴(kuò)展。目前,為解決以上問題,業(yè)界常用的技術(shù)架構(gòu)有基于WCF與WebService框架及基于面向服務(wù)的體系結(jié)構(gòu)(SOA)。

Web Service使用X mL擴(kuò)展標(biāo)記語(yǔ)言來表示數(shù)據(jù),它使用Soap簡(jiǎn)單對(duì)象訪問協(xié)議來實(shí)現(xiàn)分布式環(huán)境里應(yīng)用程序之間的數(shù)據(jù)交互。WSDL來實(shí)現(xiàn)服務(wù)接口相關(guān)的描述。此外Web services可以注冊(cè)到UDDI中心.供其客戶查找使用。

基于面向服務(wù)的體系結(jié)構(gòu)(SOA)是近年來軟件項(xiàng)目開發(fā)和信息系統(tǒng)構(gòu)建方法的一個(gè)國(guó)際性技術(shù)趨勢(shì),代表一個(gè)開放的、可擴(kuò)展的、安全的和可組合的軟件架構(gòu),SOA是一種松散耦合的應(yīng)用程序體系結(jié)構(gòu),在這種應(yīng)用體系結(jié)構(gòu)中,所有的業(yè)務(wù)功能被定義為獨(dú)立的服務(wù)(Service),即在業(yè)務(wù)層和表現(xiàn)層之間增加了一個(gè)服務(wù)層,可以獨(dú)立完成特定的服務(wù)功能,使業(yè)務(wù)層和表現(xiàn)層相互獨(dú)立,從而適應(yīng)應(yīng)用程序需求的變化。

自2014年1月1日起,《林業(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)總體規(guī)范》已經(jīng)公布,該規(guī)范為實(shí)現(xiàn)林業(yè)數(shù)據(jù)大范圍共享提供了堅(jiān)實(shí)基礎(chǔ)。使用Web Service框架及基于面向服務(wù)的體系結(jié)構(gòu)(SOA)在一定程度上可以解決數(shù)據(jù)共享問題,但是依然無法解決業(yè)務(wù)的快速開發(fā)與應(yīng)用快速步署問題。

4 基于開源框架的軟件定制平臺(tái)設(shè)計(jì)

4.1 技術(shù)框架

ZKOSS是異步的AJAX技術(shù),提供整套的界面的業(yè)務(wù)邏輯通訊解決方案,是三大主流RIA(Rich Internet Applications)技術(shù)之一,多人同時(shí)在線時(shí)數(shù)據(jù)通訊比較集中的情況下,可以有效的控制對(duì)資源占用,減少服務(wù)器的壓力。

Hibernate是一個(gè)開源的對(duì)象關(guān)系映射框架,對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的映射,提供了一個(gè)使用方便的框架,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用。同時(shí),該框架是目前公認(rèn)的JAVA數(shù)據(jù)持久層技術(shù),對(duì)減少程序員開發(fā)量,規(guī)范化代碼編寫,便于后期維護(hù)。尤其是對(duì)事務(wù)控制方面比其他持久化技術(shù)表現(xiàn)更為突出,對(duì)數(shù)據(jù)要求嚴(yán)謹(jǐn)性的系統(tǒng)尤顯其重要性。

Spring框架提供了構(gòu)建 Web應(yīng)用程序的全功能MVC模塊。MVC作為WEB項(xiàng)目開發(fā)的核心環(huán)節(jié),嚴(yán)格按照分層概念驅(qū)動(dòng)項(xiàng)目開發(fā),控制器將用戶客戶端與業(yè)務(wù)分開構(gòu)成了MVC,Spring框架是高度可配置的,而且包含JSP技術(shù),iText和 POI等多種視圖技術(shù)??蚣芊蛛x了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行定制。

Jquery一個(gè)優(yōu)秀的Java script框架。它是輕量級(jí)的js庫(kù),把部分業(yè)務(wù)放在客戶端處理,減少服務(wù)器部分壓力,降低服務(wù)器資源占用,能兼容各種瀏覽器,能更方便地處理HT mL documents、events、實(shí)現(xiàn)動(dòng)畫效果,并且方便地為網(wǎng)站提供AJAX交互。

上述技術(shù)框架開發(fā)語(yǔ)言基于JAVA,所有技術(shù)框架、控件都是J2EE領(lǐng)域常用控件??蚣苤忻恳豁?xiàng)技術(shù)至少都有5年以上的歷史,經(jīng)歷了多個(gè)版本更新,是在多個(gè)項(xiàng)目實(shí)踐中驗(yàn)證過的成熟技術(shù),同時(shí)也是典型的MVC結(jié)構(gòu)。上述框架主要體現(xiàn)了以下幾個(gè)特點(diǎn):邏輯嚴(yán)謹(jǐn),結(jié)構(gòu)清晰,規(guī)范化編寫,方便維護(hù);充分發(fā)揮客戶端、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器的作用,又同時(shí)兼顧壓力和負(fù)載的均衡;與其他應(yīng)用系統(tǒng)的接口采用業(yè)務(wù)標(biāo)準(zhǔn)的技術(shù)和通用的做法,使系統(tǒng)具有良好的擴(kuò)展性;清晰的層次結(jié)構(gòu),模塊化的設(shè)計(jì),方便功能性的擴(kuò)展;嚴(yán)格的層次結(jié)構(gòu),對(duì)整個(gè)體系的安全性具有層層的保護(hù)作用(圖1)。

4.2 功能設(shè)計(jì)

基于以上開源框架,軟件定制平臺(tái)具備以下功能及特性:支持主流數(shù)據(jù)庫(kù),實(shí)現(xiàn)代碼自動(dòng)生成,支持多種數(shù)據(jù)模型,同時(shí)代碼生成器的依賴性低,具有方便的擴(kuò)展能力,可完全實(shí)現(xiàn)二次開發(fā);框架的組件耦合度底,便于功能的擴(kuò)展和修改,通用的SQL查詢無須編寫代碼,通過頁(yè)面動(dòng)態(tài)查詢字段、實(shí)現(xiàn)查詢自動(dòng)化定制;工具類實(shí)現(xiàn)了共同封裝,文件的導(dǎo)入導(dǎo)出,短信接口等基本能滿足項(xiàng)目需求;集成了簡(jiǎn)易報(bào)表工具,實(shí)現(xiàn)圖像報(bào)表和數(shù)據(jù)方便導(dǎo)出或生成pdf、excel、word等格式報(bào)表。該框架的功能框圖及主頁(yè)面如圖2所示。

圖1 技術(shù)框架

圖2 功能框圖

4.3 代碼自動(dòng)生成

通過讀取表結(jié)構(gòu)和字段屬性,可以生成統(tǒng)一的前臺(tái)頁(yè)面、頁(yè)面表單校驗(yàn)和規(guī)范的后臺(tái)代碼(Action、Service、Dao、Entity、Page等)。同時(shí),抽離出框架,實(shí)現(xiàn)解耦設(shè)計(jì)使得 Struts2、Spring MVC 、Hibernate、Mybatis、EasyUI、DWZ、ExtJS等技術(shù)可以靈活組合使用,導(dǎo)入模板文件即可生成對(duì)應(yīng)的代碼。

4.3.1 數(shù)據(jù)獲取及系統(tǒng)配置

在數(shù)據(jù)庫(kù)里建立數(shù)據(jù)庫(kù)表,每個(gè)字段加上注釋,代碼生成器會(huì)根據(jù)注釋去生成頁(yè)面字段對(duì)應(yīng)的顯示文本。

代碼生成器有兩個(gè)配置文件:一個(gè)用于數(shù)據(jù)源的配置,一個(gè)用于代碼生成器的參數(shù)配置。這兩個(gè)配置文件分別是 database.properties 和 config.properties。該配置文件主要完成WEB應(yīng)用文件的根目錄、生成器使用的模板文件目錄、項(xiàng)目編碼、自定義主鍵命名等主要內(nèi)容。

4.3.2 代碼生成

傳統(tǒng)程序設(shè)計(jì)過程中,通常是根據(jù)表字段建立實(shí)體類,再編寫程序DAO,然后根據(jù)業(yè)務(wù)完成Service層,action及前臺(tái)頁(yè)面。也就是說,只要知道了表的結(jié)構(gòu),增刪改查的前后臺(tái)頁(yè)面的代碼格式就是固定的,剩下的就是復(fù)雜的業(yè)務(wù)。而代碼生成工具的目標(biāo)就是自動(dòng)生成那部分固定格式的增刪改查的代碼。可以把代碼生成分為2個(gè)步驟:①讀取數(shù)據(jù)庫(kù)表信息,主要包括表名、字段名稱、字段類型、主鍵、外鍵等。技術(shù):java.sql.DatabaseMetaData;②編寫模板文件,根據(jù)模板文件和讀出的數(shù)據(jù)庫(kù)表數(shù)據(jù)生成相應(yīng)的代碼。技術(shù):freemarker。打開代碼生成器并輸入相應(yīng)的參數(shù),如圖3所示。執(zhí)行“生成”之后,可以在源代碼目錄src中可查看到新生成的java代碼文件,同樣地,可以在 WebRoot/webpage中看到新的自動(dòng)生成的jsp頁(yè)面。

圖3 代碼生成器

5 結(jié)語(yǔ)

以軟件定制平臺(tái)為基礎(chǔ),通過集成各類林業(yè)基礎(chǔ)數(shù)據(jù),可以快速高效地開發(fā)出各類林業(yè)信息系統(tǒng)。目前,只實(shí)現(xiàn)了框架平臺(tái)的主要功能,林業(yè)基礎(chǔ)數(shù)據(jù)的獲取與轉(zhuǎn)換是需進(jìn)一步完善和改進(jìn)。軟件定制開發(fā)平臺(tái)的功能還需進(jìn)一步完善。

[1]龐麗峰,唐小明,劉鵬舉.基于WebGIS省級(jí)林業(yè)信息共享平臺(tái)的研發(fā) 西北林學(xué)院學(xué)報(bào)[J].2011,26(2):180~184.

[2]曹 丹.森林資源數(shù)據(jù)共享框架設(shè)計(jì)初步研究[J].林業(yè)調(diào)查規(guī)劃,2009,34(4):58 ~60.

[3]張習(xí)科.林業(yè)應(yīng)用系統(tǒng)定制平臺(tái)研究[D].長(zhǎng)沙:中南林業(yè)科技大學(xué),2013.

[4]彭環(huán)珂,劉旭東.面向領(lǐng)域的軟件定制化開發(fā)方法研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2005(6).

[5]王忠林,尹寶林.開源軟件定制改造過程中的原型選擇[J].北京航空航天大學(xué)學(xué)報(bào),2006(3):112.

猜你喜歡
代碼頁(yè)面框架
刷新生活的頁(yè)面
有機(jī)框架材料的后合成交換
框架
答案
讓W(xué)ord同時(shí)擁有橫向頁(yè)和縱向頁(yè)
神秘的代碼
一周機(jī)構(gòu)凈增(減)倉(cāng)股前20名
一行代碼玩完19億元衛(wèi)星
關(guān)于原點(diǎn)對(duì)稱的不規(guī)則Gabor框架的構(gòu)造
近期連續(xù)上漲7天以上的股
恩平市| 剑川县| 香河县| 固安县| 什邡市| 来安县| 昌平区| 来宾市| 桓仁| 吉首市| 甘南县| 宜春市| 西平县| 玉山县| 政和县| 邵阳市| 黔西县| 山阴县| 柳林县| 苍南县| 靖州| 澄城县| 恩施市| 泰州市| 徐汇区| 淳化县| 霞浦县| 拉萨市| 辽宁省| 文山县| 滦南县| 成武县| 九龙县| 元氏县| 富阳市| 佳木斯市| 钦州市| 普兰县| 罗田县| 徐闻县| 哈尔滨市|