sg uap v300高級開發(fā)手冊分冊4公共套件_第1頁
sg uap v300高級開發(fā)手冊分冊4公共套件_第2頁
sg uap v300高級開發(fā)手冊分冊4公共套件_第3頁
sg uap v300高級開發(fā)手冊分冊4公共套件_第4頁
sg uap v300高級開發(fā)手冊分冊4公共套件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

V2.0修訂記12013-04-22013-04-SG-UAP任務(wù)調(diào) 概 任務(wù)調(diào)度管理配 集成執(zhí)行組件開 概 集成執(zhí)行組件運(yùn)行機(jī) 組件配置操 組件部署配 本地組件部署配 編寫Java執(zhí)行組件實 為業(yè)務(wù)系統(tǒng)組件發(fā)布服 在業(yè)務(wù)系統(tǒng)中獲取任務(wù)調(diào)度信 在業(yè)務(wù)系統(tǒng)中引入依賴 在Java執(zhí)行組件中獲取任務(wù)信 驗證集成執(zhí)行組 輸入正確地 可能出現(xiàn)的錯 SG-UAP即席報 概 即席報表使用(二次開發(fā) 業(yè)務(wù)系統(tǒng)與即席報表集成開 直接調(diào)用即席報表頁 HTML頁面組件集 SG-UAP任務(wù)調(diào)任任務(wù)調(diào)F0501任務(wù)定F0502任務(wù)執(zhí)行執(zhí)行組件定任務(wù)定任務(wù)控任任務(wù)監(jiān)任務(wù)執(zhí)行引動態(tài)類型參數(shù)定任 接F0503分析統(tǒng)F0504系統(tǒng)管任務(wù)日圖形統(tǒng)計分系統(tǒng)級參數(shù)配<任務(wù)調(diào)度產(chǎn)品由三個部分組成:任務(wù)定義、任務(wù)執(zhí)行和和任務(wù)分析任務(wù)定義:定義一個任務(wù),包含若干執(zhí)行的執(zhí)行組件,并確定任務(wù)執(zhí)行時所需參數(shù)任務(wù):任務(wù)調(diào)度服務(wù)的運(yùn)行狀態(tài),并在服務(wù)發(fā)生不可控制的用戶通過任務(wù)設(shè)計器定義任務(wù)模型最終在關(guān)系型數(shù)據(jù)庫中。在任務(wù)調(diào)度服務(wù)啟動時會加載任務(wù)模型,并到調(diào)度引擎中。任務(wù)的執(zhí)行和邏輯系統(tǒng)制定的接口規(guī)范將其成OSGI服務(wù)。任務(wù)模型中以配置方式定義任務(wù)邏輯的調(diào)用,任務(wù)調(diào)度引擎在觸發(fā)任務(wù)后基于配置調(diào)用指定服務(wù)。SG-UAPworkbench址,其中{uapproject}UAPSG-UAP概任務(wù)調(diào)度組件是在Quartz基礎(chǔ)上擴(kuò)展開發(fā)的任務(wù)和任務(wù)建模工具,任務(wù)以Web方式實現(xiàn)控制界面、分析管理圖表,任務(wù)調(diào)度提供開放式的任務(wù)務(wù)組合、任務(wù)調(diào)度、實時任務(wù)等功能特點(diǎn)集成執(zhí)行組件運(yùn)行機(jī)springBean,bundleITaskDispatchService,BeanOSGI到組件bundle中。從而執(zhí)行組件可以接受或本地任務(wù)調(diào)度引擎的觸發(fā)調(diào)restful方式,業(yè)務(wù)系統(tǒng)需要引入任務(wù)調(diào)度執(zhí)行組件bundle(com.s ponent),在執(zhí)行組件bundle內(nèi)會自動發(fā)布兩個rest服務(wù):系統(tǒng)調(diào)用post服務(wù) 測試連接的get服務(wù) {serviceid},{serviceidID本地部署方式,業(yè)務(wù)系統(tǒng)需要引入任務(wù)調(diào)度模塊bundle(com.sgcc.uap.tponent),在調(diào)度模塊bundle內(nèi)會調(diào)用A中在OSGI容器過的服務(wù),并且自動發(fā)布一個測試連接的get服務(wù):系統(tǒng)客戶端名稱/bundle名稱/過濾資源字符串/rest1級/rest2級/服務(wù)ID,例如:ponents/testTaskServiceWebService方式,業(yè)務(wù)系統(tǒng)發(fā)布WebService服務(wù)后,任務(wù)調(diào)度基于Xfire框架根據(jù)URI例如:emote/services/ITaskDispatchWebService?wsdl對象以消息形式發(fā)到中間件,業(yè)務(wù)系統(tǒng)根據(jù)自己配置的消息隊列自行消息組件配置操rest組件部署配rest-MANIFEST.MF--4bundle(com.sgcc.uap.taskdispatch.co查找bundle(com.sgcc.ua 如圖-5所示。業(yè)務(wù)系統(tǒng)實現(xiàn)類參考。URI,-6所示編寫rest組件實Class,Interfaces ponent-AddITaskDispatchService-2生成Class后如圖-3所示,在 ponent方法中實現(xiàn)執(zhí)行組件的業(yè)務(wù)方法,返回值同樣為ponent,為保證RestTemte通正確此處返回值不能為null,具體實現(xiàn)內(nèi)容由業(yè)務(wù)系統(tǒng)決定。具體填充內(nèi)容業(yè)務(wù)系統(tǒng)決定。參 ponent類的主要屬性和描述jobjobjob為業(yè)務(wù)系統(tǒng)發(fā)布rest組件服1SpringIOC<bean<beanid="testTask"2、將spring容器中的Bean實例發(fā)布成OSGI服務(wù),并注入到執(zhí)行組件bundl <module:serviceid="testTaskService"vice.ITaskDispatchService"ponent"配置中id為服務(wù)ID,后面測試時使用ID測試,注意該ServiceIDUAP任務(wù)調(diào)度平臺中唯一。beanId為配置1中的spring<module:serviceid="testTaskService"vice.ITaskDispatchService"ponent"本地組件部署rest-MANIFEST.MF--4bundle(com.sgcc.uap.taskdispatch.co查找bundle(com.sgcc.ua 如圖-5所示。業(yè)務(wù)系統(tǒng)實現(xiàn)類參考。URI,-6所示編寫本地組件實Class,Interfaces ponent-AddITaskDispatchService-2生成Class后如圖-3所示,在 ponent方法中實現(xiàn)執(zhí)行組件的業(yè)務(wù)方法,返回值同樣為ponent,為保證RestTemte通正確此處返回值不能為null,具體實現(xiàn)內(nèi)容由業(yè)務(wù)系統(tǒng)決定。具體填充內(nèi)容業(yè)務(wù)系統(tǒng)決定。參 ponent類的主要屬性和描述jobjobjob為業(yè)務(wù)系統(tǒng)發(fā)布本地組件服1SpringIOC<bean<beanid="testTask"2、將spring容器中的Bean實例發(fā)布成OSGI服務(wù),并注入到執(zhí)行組件bundl <module:serviceid="testTaskService"vice.ITaskDispatchService"ponent"配置中id為服務(wù)ID,后面測試時使用ID測試,注意該ServiceIDUAP任務(wù)調(diào)度平臺中唯一。beanId為配置1中的spring<module:serviceid="testTaskService"vice.ITaskDispatchService"ponent"WebService組件部署配Webserviceurl?WSDL編寫WebService組件實Class,Interfaces ponent-AddITaskDispatchWebService,如圖-2:生成Class后如圖-3所示,在 ponent方法中實現(xiàn)執(zhí)行組件的業(yè)務(wù)方法,返回值同樣為ponent,為保證RestTemte信正確此處返回值不能為null,具體實現(xiàn)內(nèi)容由業(yè)務(wù)系統(tǒng)決定。具體填充內(nèi)由業(yè)務(wù)系統(tǒng)決定。參 ponent類的主要屬性和描述jobjobjobITaskDispatchWebServiceITaskDispatchServiceTest需要實現(xiàn),該方法用于組件測試,返回值為字符串,如果字符串必須有內(nèi)容否則系統(tǒng)判斷為服務(wù)不通。為業(yè)務(wù)系統(tǒng)發(fā)布WebService組件服務(wù)參1、在SpringIOC容器中XFireSpringServletOSGI映射<<module:servlet>2、引入3、業(yè)務(wù)Bean,將業(yè)務(wù)Bean注入到spring發(fā)布的XFire服務(wù)中<beanid=<beanid="componentServiceBean"<propertyname="hibernateDao"ref="hibernateDao"<beanid="componentService"name="componentService"<propertyname="serviceBean"<property JMS組件部署配在perties中配置(不配置默認(rèn):tcp://localhost:61616)jms點(diǎn)擊測試組件可以登陸activeMQ中間點(diǎn)界面查看com.sgcc.uap.jms.test度的測試隊列并且任務(wù)調(diào)度提供該隊列的,如果測試成功了說明用戶配置TASKDISPATCH_JMS_URL(注意這里測試的并不是業(yè)務(wù)系統(tǒng)的隊列該例子業(yè)務(wù)系統(tǒng)隊列是:com.bussiness.testSerivceIDURI編寫JMSClass,Interfaces ponent-代碼繼承:javax.jms.MessageListener接口實現(xiàn), component=( ponent)objMsg.getObject();通過參 ponent類的主要屬性和描述jobjobjob為業(yè)務(wù)系統(tǒng)發(fā)布JMS組件服<beanid="messageListener"<beanid="messageListener"class="com.TestReceiverMessageListener"><propertyname="hibernateDao"ref="hibernateDao"<beanid="listenerContainer"<propertyname="connectionFactory"ref="receiverPoolConnectionFactory"/><propertyname="destination"ref="destination"<propertyname="messageListener"<propertyname="maxConcurrentConsumers"value="10"<propertyname="idleTaskExecutionLimit"value="2"<<beanid="receiverPoolConnectionFactory"<property<propertyname="maxConnections"<property<propertyname="brokerURL"value="tcp://localhost:61616"/>2、隊列名稱,下例的com.bussiness.test就是該業(yè)務(wù)系統(tǒng)的隊列<<bean<constructor-arg在業(yè)務(wù)系統(tǒng)中獲取任務(wù)調(diào)度在業(yè)務(wù)系統(tǒng)中引入依賴MANIFEST.MF1org.codehaus.jsckson.coreorg.codehaus.jackson.mapperbundle在Java執(zhí)行組件中獲取任務(wù)Stringjobname=arg0.getJobName();//獲取任務(wù)名稱JsonNodejnarg0.getJsonParam();//獲取任務(wù)的參數(shù)數(shù)據(jù)Stringusernamejn.get("username").getTextValue();//獲取任務(wù)執(zhí)行組件StringStringjobname=arg0.getJobName();//獲取任務(wù)名稱JsonNodejnarg0.getJsonParam();//獲取任務(wù)的參數(shù)數(shù)據(jù)Stringusernamejn.get("username").getTextValue();//獲取任務(wù)執(zhí)行組件Stringdeptjn.get("dept").getTextValue值在Java執(zhí)行組件中獲取動態(tài)信在任務(wù)定義中添加動態(tài)請參考《SG-UAP_V2.0_任務(wù)調(diào)度使用手Stringjobname=arg0.getJobName();//獲取任務(wù)名稱JsonNodejnarg0.getJsonParam();//獲取任務(wù)的參數(shù)數(shù)據(jù)StringscriptedResultarg0.getScriptedResult()在JavaStringjobname=arg0.getJobName();//獲取任務(wù)名稱JsonNodejnarg0.getJsonParam();//獲取任務(wù)的參數(shù)數(shù)據(jù)StringscriptedResultarg0.getScriptedResult()通 來調(diào)用JAVA執(zhí)行組#Configureplugins1:tformconfig.xml 2:xmlJAVA<?xmlversion="1.0"encoding="UTF-<beansxmlns="xmlns:xsi=" <beanid="tb" ponent.impl.TestBean"<module:serviceid="tbService"beanId="tb"includeBundle="com.sgcc.uap.scriptengine"packageimportpackageimportpublicclassTestBeanimplements publicObjectdispatch(Objectob)throwsScriptDispatchException//TODOAuto-generatedmethodstubSystem.out.println("TestBeangetScriptInstance");returntrue;}}4:JAVA驗證集成執(zhí)行服務(wù)配置完成后,執(zhí)行組件bundle(com.sgcc.ua t)會自動發(fā)布兩個Rest服務(wù),其中一個功能為測試并檢查服務(wù)ID。組件地址組成:系統(tǒng)客戶端名稱/bundle名稱/過濾資源字符串/rest資源名1級/rest資源名2級/服務(wù)ID,即:uap- ponents/testTaskService在非IE瀏覽器地址欄輸入地址rest地址,本案例以chrome測輸入正確地Rest JsonWebService可能出現(xiàn)的錯serviceId JsonServiceID(紅字部分)找不IP Rest WEBbundle /co結(jié)論:UAPOSGI 結(jié)論:UAPSG-UAP即席報數(shù)復(fù)報圖表37<即表數(shù)復(fù)報擎。用戶在報表設(shè)計器中設(shè)計報表后可發(fā)布到報表服務(wù)器上,由報表引擎來運(yùn)行報表,報表服務(wù)器為報表引擎提供運(yùn)行環(huán)境,報表引擎會利用統(tǒng)一開發(fā)平臺的集成設(shè)施數(shù)據(jù),并且可通過引擎進(jìn)行數(shù)據(jù)運(yùn)算。報表服務(wù)同時提供管理功能。報表展示客戶端是一個抽象的概念,瀏覽器可通過url直webjavascript即席報表使用(二次開發(fā)請參考《SG-UAP如果要集成即席報表設(shè)計的報表,必須先在統(tǒng)一應(yīng)用平臺的報表管理模38統(tǒng)一應(yīng)用平臺-直接調(diào)用即席報表頁在要展示報表的JSP或HTML界面中直接調(diào)用報表服務(wù)器提供的報表設(shè)計界面和預(yù)覽界面,例如提供的報表服務(wù)的地址為(WebReport為項目名其中temteId為需要的報表模版ID其中temteId為要集成的報表模版的ID,其在報表管理模塊中設(shè)置href=" e6808d0139e69434630006HTML頁面組件集<script<script在要展示報表的JSPHTML界面中加載uapreport.js文件,例如代碼片段如下(srcuapreport.js):<div<divVarVarrv=new 其中showId為任意生成的展示id(例如1,2,3等任意整數(shù);divId為展示區(qū)的divId;reportserverUrl為步驟1獲取的報表服務(wù)地址;temteId為要集成的報表模版的ID,其在報表管理模塊中設(shè)置;show方法的第二個參數(shù)可選truetrueshowtruefalse,true表示顯示參數(shù),false表示不顯示參數(shù),可不填寫(默認(rèn)trueVarVarreportviewer=new 2)VarVarrv=new Stringparam1key#=#param1Value###param2key#=#VarVarreportviewer=new VarVarrv=new 其中showId為任意生成的展示id(例如1,2,3等任意整數(shù);divId為展示區(qū)的divId;reportserverUrl為步驟1獲取的報表服務(wù)地址;temteId為要集成的報表模版的ID,其在報表管理模塊中設(shè)置。VarVarrv=至此,完成報表集成工作,當(dāng)JSP或HTML頁面時,就會把對應(yīng)ID中的業(yè)務(wù)系統(tǒng)直接獲取報表碼2.0版本,支持導(dǎo)出word,excel,rtf,pdf四種格式的文件碼流。下面是代碼生成方法:UapExportServiceUapExportServiceexportService=newUapExportService();MapparamsMap=newHashMap<String,String>();paramsMap.put("test","ss");byte[]outword=exportService.export("word", ",paramsMap);FileOutputStreamout=newFileOutputStream(newFile("E:\\test1.docx"));byte[]outExcel=exportService.export("excel", ",paramsMap);FileOutputStreamout1=newFileOutputStream(newFile("E:\\test1.xls"));bytebyte[]outpdf=exportService.export("pdf", ",FileOutputStreamout2=newFileOutputStream(newFile("E:\\test1.pdf"));byte[]outrtf=exportService.export("rtf", ",FileOutputStreamout3=newFileOutputStream(newFile("E:\\test1.rtf"));方法為 temteId,Map<String,String>paramsMap)。format:導(dǎo)出報

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論