資源描述:
《用友UAP開發(fā)平臺(tái)介紹》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、用友UAP開發(fā)平臺(tái)介紹UAP作為基于多組織架構(gòu)的企業(yè)應(yīng)用運(yùn)行平臺(tái)、基于模式化的開發(fā)平臺(tái)、開放的系統(tǒng)集成平臺(tái)及統(tǒng)一的系統(tǒng)管理平臺(tái),是建立在Java語言所提供的強(qiáng)大功能的基礎(chǔ)上開發(fā)的。Java是一種簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、結(jié)構(gòu)中立的、安全的、可移植的、性能優(yōu)異的、多線程的、動(dòng)態(tài)的開發(fā)語言,適合構(gòu)建基于網(wǎng)絡(luò)計(jì)算的企業(yè)應(yīng)用。由于Java的平臺(tái)無關(guān)性,使得UAP可以運(yùn)行在不同硬件平臺(tái)、不同操作系統(tǒng)平臺(tái)上。基于UAP所開發(fā)的應(yīng)用軟件采用Browser/Server(瀏覽器/服務(wù)器)的方式來運(yùn)行。B/S的運(yùn)行方式最大限度地方便了用戶部署和維護(hù)
2、大型軟件系統(tǒng),保證了瘦客戶機(jī)運(yùn)行,從而大大降低了用戶目標(biāo)系統(tǒng)的總體擁有成本(TCO)。UAP平臺(tái)經(jīng)過十幾年的發(fā)展,在實(shí)際項(xiàng)目當(dāng)中總結(jié)出許多典型的管理信息系統(tǒng)的應(yīng)用模式,在此基礎(chǔ)上,用友公司提供企業(yè)建模開發(fā)平臺(tái),將用友的先進(jìn)的軟件設(shè)計(jì)經(jīng)驗(yàn)和先進(jìn)的開發(fā)技術(shù)融入到平臺(tái)當(dāng)中,可全面解決企業(yè)信息化建設(shè)各種IT系統(tǒng)的業(yè)務(wù)場(chǎng)景。1.1基于UML的建模平臺(tái)UAP是基于元數(shù)據(jù)的模型驅(qū)動(dòng)開發(fā)平臺(tái),將程序開發(fā)工作的抽象層次提高到和ERP日常業(yè)務(wù)相關(guān)的操作上,將一些常用界面(表單、報(bào)表、打印、查詢)抽象成為模型,模型結(jié)合元數(shù)據(jù)定義出數(shù)據(jù)的各種展現(xiàn)操作方式,使
3、用極少的代碼量即可產(chǎn)生客戶需要的模塊,并且通過各個(gè)層次的抽象分離很好的支持了逆向工程,有利于產(chǎn)品迭代開發(fā)。使用UAP平臺(tái)進(jìn)行業(yè)務(wù)實(shí)現(xiàn)可以分為如下幾大步驟:n業(yè)務(wù)模型設(shè)計(jì):使用模型設(shè)計(jì)器創(chuàng)建業(yè)務(wù)元數(shù)據(jù)并發(fā)布。業(yè)務(wù)模型設(shè)計(jì)器如圖14所示。圖14NC—UAP元數(shù)據(jù)模型設(shè)計(jì)器示意圖n自動(dòng)生成數(shù)據(jù)模型:根據(jù)定義好的業(yè)務(wù)模型可以自動(dòng)生成數(shù)據(jù)模型,完成建立數(shù)據(jù)庫(kù)結(jié)構(gòu)工作。操作如圖15所示。圖15NC—UAP元數(shù)據(jù)自動(dòng)生成數(shù)據(jù)模型示意圖n用戶界面模型設(shè)計(jì):使用UAP集成開發(fā)工具進(jìn)行單據(jù)表單模板設(shè)計(jì)、查詢模板設(shè)計(jì)、打印模板設(shè)計(jì),通過UI組裝完成完成界面
4、模型設(shè)計(jì)工作。如圖16、圖17所示。圖16NC—UAP元數(shù)據(jù)單據(jù)模板設(shè)計(jì)示意圖圖17NC—UAP元數(shù)據(jù)UI組裝示意圖?節(jié)點(diǎn)發(fā)布,生成代碼,單據(jù)開發(fā)完成:如圖18所示。圖18NC—UAP元數(shù)據(jù)節(jié)點(diǎn)發(fā)布及生成代碼示意圖1.1數(shù)據(jù)訪問及緩存機(jī)制UAP元數(shù)據(jù)數(shù)據(jù)庫(kù)訪問居于對(duì)象-關(guān)系映射,大大提高開發(fā)效率、同時(shí)提升軟件產(chǎn)品的可維護(hù)、擴(kuò)展性。因此,在UAP的業(yè)務(wù)開發(fā)中必要通過引入對(duì)象-關(guān)系映射系統(tǒng)中間件,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的快速開發(fā)。目前UAP可以通過JDBC開發(fā)了單獨(dú)的持久化層,把數(shù)據(jù)庫(kù)訪問操作封裝起來,提供簡(jiǎn)潔的API,供業(yè)務(wù)層統(tǒng)一調(diào)用,實(shí)現(xiàn)了自己的
5、ORM系統(tǒng)。支持多種數(shù)據(jù)庫(kù),統(tǒng)一接口轉(zhuǎn)換SQL語句,大大簡(jiǎn)化開發(fā)過程。通過NC數(shù)據(jù)庫(kù)訪問框架可以把內(nèi)存中的對(duì)象持久化到數(shù)據(jù)庫(kù)、把數(shù)據(jù)庫(kù)中的關(guān)系數(shù)據(jù)加載到內(nèi)存中,同時(shí)保證了系統(tǒng)頻繁地訪問數(shù)據(jù)庫(kù)的性能,降低訪問數(shù)據(jù)庫(kù)的頻率。SuperVO是NC系統(tǒng)中比較特殊的值對(duì)象,該值對(duì)象自身已經(jīng)包涵了值對(duì)象到數(shù)據(jù)庫(kù)中的映射信息,所以SuperVO的持久化更為簡(jiǎn)單方便,無需構(gòu)造對(duì)象映射元數(shù)據(jù)類,可以直接對(duì)VO進(jìn)行持久化操作。如下圖19在最上層提供了基于元數(shù)據(jù)的持久化接口??梢詫?shí)現(xiàn)對(duì)模型數(shù)據(jù)(NCObject)對(duì)象持久化操作,比如基本的增、刪、查、改等操
6、作。通過這些持久化服務(wù)可以進(jìn)行對(duì)模型數(shù)據(jù)的數(shù)據(jù)庫(kù)操作。同時(shí)業(yè)務(wù)建??蚣苓€提供了代碼生成和SQL生成的相關(guān)功能。其中代碼生成用于生成模型對(duì)象(元數(shù)據(jù)實(shí)體)的類代碼。圖19元數(shù)據(jù)數(shù)據(jù)訪問在UAP的數(shù)據(jù)訪問模型中,對(duì)數(shù)據(jù)的刪除,是采用邏輯刪除的,而非物理刪除,這樣可以保證在誤操作的情況下還有機(jī)會(huì)恢復(fù)數(shù)據(jù)。對(duì)于一些經(jīng)常被訪問的基礎(chǔ)數(shù)據(jù),UAP提供服務(wù)器端和客戶端的緩存機(jī)制,這樣可以大大減少前后臺(tái)的遠(yuǎn)程調(diào)用次數(shù),減少了對(duì)數(shù)據(jù)庫(kù)的訪問,從而提高了業(yè)務(wù)處理速度,提高客戶端響應(yīng)速度。要做到合理的利用緩存機(jī)制,需要考慮到下面幾個(gè)方面:1.合理分配緩存數(shù)
7、據(jù)到內(nèi)存和文件,內(nèi)存級(jí)緩存訪問速度快,但容量有限;2.有效判斷緩存數(shù)據(jù)的時(shí)效性,即是否為更新數(shù)據(jù);3.動(dòng)態(tài)監(jiān)聽基礎(chǔ)數(shù)據(jù)的變更,及時(shí)更新緩存數(shù)據(jù);1.處理好應(yīng)用服務(wù)器集群之間的緩存共享和同步;2.對(duì)文件緩存要加密保護(hù),不能被更改,尤其是客戶端文件級(jí)緩存;3.對(duì)緩存的讀寫操作,需要很好的封裝,以便開發(fā)過程中的調(diào)用和緩存策略的升級(jí)。1.1數(shù)據(jù)權(quán)限管理UAP平臺(tái)提供對(duì)常用的基礎(chǔ)數(shù)據(jù)的訪問權(quán)限控制,包括:科目、組織機(jī)構(gòu)、人員、存貨等。系統(tǒng)提供啟用數(shù)據(jù)權(quán)限的設(shè)置功能,如下圖20所示:圖20數(shù)據(jù)權(quán)限UAP不僅預(yù)置了對(duì)常用基礎(chǔ)數(shù)據(jù)的權(quán)限控制,還提供了
8、對(duì)新開發(fā)功能數(shù)據(jù)的權(quán)限控制接口。對(duì)新開發(fā)的基本檔案、基礎(chǔ)數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)如果要進(jìn)行權(quán)限控制,需要開發(fā)人員做好以下兩步:1.實(shí)現(xiàn)權(quán)限插件類,繼承平臺(tái)提供的基類nc.ui.uap.rbac.editor.tree.Defaul