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

?

基于Canvas的共享服務(wù)流程的研究

2019-08-22 09:26吳瑩瑩梁正和
關(guān)鍵詞:調(diào)用組件對(duì)象

吳瑩瑩,梁正和

(河海大學(xué) 計(jì)算機(jī)與信息學(xué)院,江蘇 南京 211100)

0 引 言

隨著計(jì)算機(jī)技術(shù)的發(fā)展,信息化程度不斷提高,企業(yè)的信息資源在積累中持續(xù)增長(zhǎng)。因此,各企業(yè)需要建立各種各樣的信息系統(tǒng)來保存大量的數(shù)據(jù),達(dá)到降低企業(yè)的運(yùn)行成本,提高工作效率的目的[1]。而這些信息系統(tǒng)建立在不同的時(shí)期,各個(gè)時(shí)期的信息技術(shù)發(fā)展水平不同,因此造成了不同時(shí)期各企業(yè)系統(tǒng)之間的巨大差異,各系統(tǒng)之間的信息交互也十分困難,難以實(shí)現(xiàn)信息系統(tǒng)之間的高效集成與交互[2]。

隨著信息資源的日益增長(zhǎng),企業(yè)急需將各類信息系統(tǒng)進(jìn)行集成,實(shí)現(xiàn)信息共享。對(duì)于大多數(shù)企業(yè)的應(yīng)用系統(tǒng),在最開始設(shè)計(jì)的時(shí)候只需要滿足當(dāng)前需求即可,而沒有考慮到未來的發(fā)展需要。而隨著企業(yè)業(yè)務(wù)的變化和發(fā)展,企業(yè)對(duì)系統(tǒng)在集成方面提出了更加嚴(yán)格的要求。因此,由于系統(tǒng)用戶需求的變化,導(dǎo)致了系統(tǒng)差異性在集成的過程中出現(xiàn)了多種困難。而SOA(service oriented architecture)正是可以滿足整合數(shù)據(jù)需求的有效方法之一[3]?;赟OA的思想,應(yīng)用系統(tǒng)相關(guān)的業(yè)務(wù)功能被封裝成服務(wù),這些服務(wù)在經(jīng)過組裝之后可以完成相應(yīng)的業(yè)務(wù)流程。SOA對(duì)各個(gè)模塊通過分解整理再組合的方式,完成對(duì)資源的復(fù)用。企業(yè)子系統(tǒng)以及各企業(yè)間數(shù)據(jù)共享與交互是其架構(gòu)實(shí)施過程中的重要部分。因此,可以通過共享服務(wù)的方式,將獲取不同應(yīng)用系統(tǒng)中數(shù)據(jù)的方法組裝成服務(wù),實(shí)現(xiàn)系統(tǒng)之間的服務(wù)共享。

文中對(duì)實(shí)現(xiàn)共享服務(wù)的方法進(jìn)行研究,通過實(shí)現(xiàn)一個(gè)組裝流程,即將獲取不同應(yīng)用系統(tǒng)中數(shù)據(jù)的各種方法組裝成服務(wù),以實(shí)現(xiàn)系統(tǒng)間數(shù)據(jù)的共享?;贖TML5新特性Canvas,實(shí)現(xiàn)了在瀏覽器中通過拖動(dòng)組件的方式組裝成服務(wù)流程,并不需要安裝任何插件[4]。不同的服務(wù)需要調(diào)用不同服務(wù)器上的不同組件方法,傳入的參數(shù)類型和個(gè)數(shù)不一致,調(diào)用方法的返回值及返回類型有所不同,組件的協(xié)議也有所區(qū)別,因此文中采用了超級(jí)代理的方式對(duì)各個(gè)組件實(shí)現(xiàn)統(tǒng)一調(diào)用。

1 共享服務(wù)流程的組成和原理

對(duì)信息系統(tǒng)進(jìn)行集成,實(shí)際上可以理解為對(duì)數(shù)據(jù)實(shí)現(xiàn)共享。傳統(tǒng)實(shí)現(xiàn)互聯(lián)的方式是在系統(tǒng)雙方之間實(shí)現(xiàn)一對(duì)一的連接,每個(gè)系統(tǒng)都需要與其他任意一個(gè)系統(tǒng)建立連接,系統(tǒng)越多,工作量越大,時(shí)間和成本耗費(fèi)越高。隨著數(shù)據(jù)的大量增長(zhǎng),這種系統(tǒng)的集成方式顯然是不可用的。

文中將應(yīng)用系統(tǒng)中獲取數(shù)據(jù)的方法組裝成服務(wù)流程,通過圖形化流程的設(shè)計(jì),完成對(duì)共享服務(wù)的組裝。服務(wù)設(shè)有統(tǒng)一的訪問接口,能夠相對(duì)獨(dú)立、完整地完成對(duì)數(shù)據(jù)的訪問。系統(tǒng)整體架構(gòu)如圖1所示。

圖1 系統(tǒng)架構(gòu)

1.1 Canvas繪圖技術(shù)

相對(duì)于SOA,HTML5起步較晚,對(duì)使用HTML5圖形流程繪制的研究并沒有SOA多。HTML5擁有跨平臺(tái)、多設(shè)備,無縫集成,及時(shí)更新等特點(diǎn),特別是給圖形化業(yè)務(wù)流程的開發(fā)提供了便捷的方式。

Canvas元素起初是由蘋果公司的Safari瀏覽器引入,目前得到了大部分主流瀏覽器的支持[5]。Canvas標(biāo)簽是HTML5新增的API之一,Canvas擁有大量的繪圖API,能夠完成各種圖形的繪制[6]。

Canvas可以認(rèn)為是放置在網(wǎng)頁上的一張“畫布”,可以在“畫布”上進(jìn)行“創(chuàng)作”。區(qū)別于傳統(tǒng)的基于SVG的矢量繪圖技術(shù),Canvas屬于像素位圖的繪制技術(shù)。通過JavaScript腳本語言可以對(duì)Canvas實(shí)現(xiàn)位圖像的動(dòng)態(tài)渲染,完成對(duì)圖像內(nèi)容的各項(xiàng)操作[7]。Canvas可以繪制矩形、文本、路徑等,同時(shí)可以對(duì)圖像實(shí)現(xiàn)引用、漸變等多種效果[8]。瀏覽器對(duì)Canvas的解析與其他標(biāo)簽一樣,能夠通過CSS和JavaScript完成對(duì)圖形的繪制[9]。

瀏覽器在展示前臺(tái)頁面的時(shí)候,通常需要借助視頻插件來實(shí)現(xiàn)豐富絢麗的網(wǎng)頁內(nèi)容,例如flash、Silverlight等[10]。但是安裝插件不僅會(huì)影響用戶體驗(yàn),而且會(huì)增大數(shù)據(jù)量的傳輸,降低了運(yùn)行速度和系統(tǒng)的性能。而Canvas繪圖則無需安裝任何插件,不僅占用系統(tǒng)資源少,而且在傳輸方面節(jié)省了帶寬,減少了系統(tǒng)的壓力。

1.2 服務(wù)流程的組裝

一個(gè)服務(wù)是由多個(gè)組件通過服務(wù)流程組裝而成,服務(wù)的組裝則是將已有的各種組件方法組裝而成,并達(dá)到可復(fù)用的目的,滿足業(yè)務(wù)需求,實(shí)現(xiàn)業(yè)務(wù)功能。在不同企業(yè),或是企業(yè)的不同階段,采用服務(wù)流程進(jìn)行組裝的形式可以迅速對(duì)系統(tǒng)進(jìn)行調(diào)整,快速滿足需求,避免企業(yè)因業(yè)務(wù)需求的變動(dòng)而對(duì)系統(tǒng)進(jìn)行重構(gòu)的問題,降低企業(yè)成本。

在服務(wù)的調(diào)用過程中需要進(jìn)行傳參,包括全局變量、參數(shù)變量、轉(zhuǎn)向以及活動(dòng)。在一個(gè)服務(wù)中,傳過來的參數(shù)也可以傳遞給服務(wù)中的其他組件。其中,全局變量和參數(shù)變量既可以是Double、Boolean、LinkedList等基本包裝類,也可以是其他類。轉(zhuǎn)向有三種形式,分別是值條件、無條件、邏輯條件。值條件和邏輯條件只有滿足一定的條件才可以向下執(zhí)行,無條件則是直接向下執(zhí)行?;顒?dòng)則包含多種,例如:發(fā)送消息、接收消息、單個(gè)調(diào)用、順序執(zhí)行、二值分支、多值分支、條件判斷、賦值操作。

系統(tǒng)中的用戶可以通過服務(wù)名和參數(shù)列表完成對(duì)服務(wù)的統(tǒng)一調(diào)用,使用方便,但同時(shí)也面臨著安全風(fēng)險(xiǎn),對(duì)此需要對(duì)用戶的訪問權(quán)限進(jìn)行限制。該系統(tǒng)采用對(duì)用戶進(jìn)行特定服務(wù)的授權(quán)方式來限制用戶對(duì)服務(wù)的訪問,只有被授權(quán)的用戶才可以調(diào)用特定的服務(wù)。用戶通過正確的服務(wù)名、參數(shù)列表、用戶名、用戶密碼完成對(duì)服務(wù)的調(diào)用,否則無法訪問其他服務(wù)。在數(shù)據(jù)庫中,通過建立數(shù)據(jù)表user_setting對(duì)指定用戶設(shè)定的服務(wù)訪問權(quán)限進(jìn)行保存。其中,系統(tǒng)對(duì)用戶以及服務(wù)的授權(quán)管理主要包括:新建用戶、修改用戶、刪除用戶、給用戶添加服務(wù)授權(quán)、刪除選擇的服務(wù)授權(quán)以及獲取用戶授權(quán)的數(shù)據(jù)服務(wù)。

1.3 超級(jí)代理服務(wù)

在調(diào)用組件方法的過程中,由于傳參的類型和個(gè)數(shù)、調(diào)用方法的返回值和返回類型、組件的協(xié)議有所區(qū)別,想要對(duì)組件方法實(shí)現(xiàn)統(tǒng)一調(diào)用,需要通過超級(jí)代理的方式來完成。超級(jí)代理是一個(gè)位于客戶端和服務(wù)器之間的轉(zhuǎn)發(fā)機(jī)構(gòu),負(fù)責(zé)各種不同協(xié)議的轉(zhuǎn)換,以及各類組件調(diào)用的反射機(jī)制[11]。超級(jí)代理可以分為兩個(gè)部分,一個(gè)代理主機(jī)和各個(gè)服務(wù)器上的子代理,針對(duì)不同的服務(wù)器,采用不同的超級(jí)代理完成調(diào)用。這樣不僅可以有效減少事務(wù)處理和邏輯之間的耦合,而且便于程序日后的維護(hù)。

在文件系統(tǒng)中,數(shù)據(jù)包含了元數(shù)據(jù)和數(shù)據(jù)。數(shù)據(jù)是指文件中的真實(shí)數(shù)據(jù),而元數(shù)據(jù)則是用來描述文件特征的系統(tǒng)數(shù)據(jù),也可以說是用于提供某種資源的有關(guān)信息的結(jié)構(gòu)數(shù)據(jù)[12]。元數(shù)據(jù)具有簡(jiǎn)便易用性、可復(fù)用性、可操作性、充分性、交互性、模塊性、跨平臺(tái)和跨庫的數(shù)據(jù)對(duì)比、集成和復(fù)用等特性[13]。實(shí)現(xiàn)各類組件以及訪問協(xié)議的元數(shù)據(jù)是實(shí)現(xiàn)超級(jí)代理的基礎(chǔ)。元數(shù)據(jù)具體包括:組件接口元數(shù)據(jù)、組件類型元數(shù)據(jù)、組件部署元數(shù)據(jù)和協(xié)議元數(shù)據(jù)??赡艿慕M件類型有:java類、FTPserver、EJB2、EJB3、郵件服務(wù)、短信服務(wù)等。各類協(xié)議包括:ftp、tcp、http、smtp、pop3、udp等。不同類型的組件對(duì)應(yīng)的元數(shù)據(jù)也有所不同。例如:消息服務(wù)組件的元數(shù)據(jù)包括服務(wù)器URL、服務(wù)器用戶名、服務(wù)器密碼、消息工廠用戶名和密碼;java類組件的元數(shù)據(jù)包括:java類名、類功能描述、jar包名稱、主機(jī)地址。因此,組件類型不同,需要建立的元數(shù)據(jù)類也不同,需要用統(tǒng)一的目錄對(duì)象對(duì)所有類型的組件元數(shù)據(jù)類進(jìn)行包裝。

在一個(gè)服務(wù)流程的過程中,通過依據(jù)組件的元數(shù)據(jù)以及傳入的相關(guān)參數(shù)來調(diào)用組件的接口。當(dāng)超級(jí)代理調(diào)用組件的方法時(shí),通過對(duì)組件元數(shù)據(jù)、組件實(shí)例的參數(shù)值和變量值進(jìn)行調(diào)用。組件按照各自的方法通過反射機(jī)制、組件的名稱、接口、協(xié)議、組件的部署、參數(shù)值和變量值完成調(diào)用。

2 共享服務(wù)流程的實(shí)現(xiàn)

2.1 流程組裝服務(wù)

對(duì)服務(wù)的調(diào)用包括直接調(diào)用和基于消息的方式調(diào)用。調(diào)用方式由工廠類的靜態(tài)方法創(chuàng)建一個(gè)服務(wù)的類并返回。

在serviceExeByName()方法中,serviceName是服務(wù)名稱,parameterValList是參數(shù)列表,依據(jù)服務(wù)名來進(jìn)行方法的調(diào)用。userName和password分別是被授權(quán)用戶的賬戶名和密碼。

serviceExe()方法則是按照服務(wù)的唯一標(biāo)識(shí)來進(jìn)行調(diào)用的。例如服務(wù)名為ftpclienttest,參數(shù)列表為serParameterValList,授權(quán)的用戶名為Jojo,被授權(quán)的用戶密碼為123456,服務(wù)返回一個(gè)二進(jìn)制結(jié)果對(duì)象。

服務(wù)流程組裝模塊采用Canvas的類庫Zrender,它提供了生動(dòng)、直觀、可交互以及個(gè)性化定制的流程圖的繪制[14]。Zrender擁有數(shù)據(jù)驅(qū)動(dòng)、完整的事件封裝、高效的分層刷新、豐富的圖形選項(xiàng)、強(qiáng)大的動(dòng)畫支持、易于擴(kuò)展等優(yōu)點(diǎn)。用戶可以在瀏覽器中通過對(duì)圖形元素進(jìn)行增、刪、改等操作,并將變化了的數(shù)據(jù)更新到應(yīng)用服務(wù)器??梢暬軜?gòu)如圖2所示。

圖2 可視化架構(gòu)

2.1.1 異步刷新

Ajax的主要應(yīng)用是對(duì)頁面進(jìn)行局部刷新,也就是對(duì)網(wǎng)頁上其中一個(gè)標(biāo)簽里的內(nèi)容進(jìn)行刷新,從而不影響整體的效果。最常見的例子莫過于Google地圖,對(duì)用戶來說,實(shí)時(shí)的異步刷新既快速又方便。在該系統(tǒng)的服務(wù)組裝過程中,也需要用到異步刷新。當(dāng)用戶拖動(dòng)圖形元素到工作區(qū)時(shí),瀏覽器會(huì)自動(dòng)生成箭頭用來連接所選的圖形元素,協(xié)助開發(fā)人員完成流程組裝。當(dāng)用戶調(diào)整圖形元素的位置時(shí),箭頭會(huì)隨即進(jìn)行相應(yīng)的調(diào)整,并將信息發(fā)送至服務(wù)器。此時(shí)只有被操作的內(nèi)容發(fā)生變化,而不是整個(gè)頁面進(jìn)行刷新。這部分功能主要由serviceShareFlow.js完成,主要功能描述如下:

在serviceReqFlow(cmd,paraRst)方法中:第一個(gè)參數(shù)是操作標(biāo)識(shí),有四種:“selectedSa”、“selectedFt”、“move”、“reSelectedSa”;第二個(gè)是參數(shù)結(jié)果集,通過“post”形式將前端的數(shù)據(jù)發(fā)送給“serviceFlowServlet”流程控制器,服務(wù)器會(huì)根據(jù)接收到的參數(shù)做出相應(yīng)的處理。若服務(wù)器的狀態(tài)發(fā)生改變,則調(diào)用serviceChangeFlow()方法。serviceChangeFlow()方法中含有5個(gè)參數(shù),“serviceId”指服務(wù)唯一的標(biāo)識(shí)號(hào),“serviceType”指“活動(dòng)”或“轉(zhuǎn)向”,“objId”指被選中圖形的Id,“x”與“y”分別為圖形所在的坐標(biāo)值。當(dāng)服務(wù)器狀態(tài)改變時(shí),調(diào)用serviceChangeFlow()方法。在此方法中,當(dāng)網(wǎng)頁返回的狀態(tài)碼顯示為200時(shí),即服務(wù)器已經(jīng)成功處理了相應(yīng)的請(qǐng)求,并返回xml頁面對(duì)結(jié)果進(jìn)行解析。

2.1.2 流程圖繪制

流程圖主要包括兩種元素,分別是連接弧元素和圖形元素。圖形元素指的是除了連接線以外的其他形狀,例如:表示執(zhí)行操作的矩形,表示條件判斷的菱形等,而連接弧則是用來連接這些圖形元素的連接線。在實(shí)現(xiàn)過程中,將Unit類作為基類,其他元素都是Unit的子類,繼承自Unit類。系統(tǒng)的整個(gè)流程管理是通過serviceFlowGraph類來實(shí)現(xiàn)的。

將zrender的dragable屬性設(shè)置為true,即可對(duì)圖形元素進(jìn)行拖動(dòng),但是圖形元素之間的連接線并不會(huì)隨著圖形的拖動(dòng)而移動(dòng)。因此,還需要建立一個(gè)監(jiān)聽機(jī)制zrenderListener.on(),用dragingActivity()來定義當(dāng)前正在拖放的節(jié)點(diǎn),包括對(duì)開始事件、結(jié)束事件的拖動(dòng),用onUnitMouse()來定義鼠標(biāo)的移動(dòng)事件。另外,每個(gè)圖形元素?fù)碛邪藗€(gè)連接點(diǎn),連接弧并不是必須和某個(gè)圖形元素相連接的,而是在連接過程中按照?qǐng)D形元素所在的位置信息,找到最靠近的那一個(gè)點(diǎn)。這里用getAnglePosition()方法來獲取角點(diǎn)的所在位置,用refreshActivityTransitions()來定義對(duì)連接弧進(jìn)行刷新的方法。

2.1.3 流程控制器

該系統(tǒng)采用MVC的設(shè)計(jì)模式[15],serviceFlowServlet作為流程組裝的Controller,相當(dāng)于一名調(diào)度者,根據(jù)“init”標(biāo)識(shí)和服務(wù)的唯一標(biāo)識(shí)號(hào),調(diào)用serShowFlowXml()方法,將服務(wù)流程頁面組裝成xml頁面,經(jīng)過JavaScript解析后再顯示到頁面。

一個(gè)服務(wù)包括四個(gè)部分:參數(shù)變量、全局變量、活動(dòng)和轉(zhuǎn)向?;顒?dòng)和轉(zhuǎn)向是共享服務(wù)流程組裝的主要部分。若要對(duì)轉(zhuǎn)向和活動(dòng)進(jìn)行操作,則向Controller傳入相應(yīng)的服務(wù)標(biāo)識(shí)號(hào)、對(duì)象類型(轉(zhuǎn)向或活動(dòng))、對(duì)象id、移動(dòng)后產(chǎn)生的新的x、y坐標(biāo),根據(jù)對(duì)象的類型不同做出相應(yīng)的處理,將活動(dòng)或轉(zhuǎn)向移動(dòng)到新的位置。serShowFlowXml()方法中傳入的參數(shù)分別是服務(wù)的id、是否是選中狀態(tài)、活動(dòng)的id、轉(zhuǎn)向的id。如需要添加活動(dòng),則根據(jù)活動(dòng)的id和服務(wù)唯一的標(biāo)識(shí)號(hào),調(diào)用該方法將服務(wù)流程顯示到頁面,傳入的參數(shù)分別為serviceId、true、serActivityId、null;當(dāng)需要拖動(dòng)轉(zhuǎn)向?qū)α鞒逃兴僮鲿r(shí),傳入的參數(shù)為serviceId、true、null、serTransformId;當(dāng)刪除一個(gè)服務(wù)時(shí),也需要調(diào)用該方法進(jìn)行顯示。

2.2 超級(jí)代理服務(wù)

文中通過SuperAgent類來實(shí)現(xiàn)超級(jí)代理的服務(wù),其中serGroupMethodExecute()方法完成了對(duì)組件方法的調(diào)用。該方法需要傳入的參數(shù)有:服務(wù)活動(dòng)的二進(jìn)制對(duì)象、需要調(diào)用的組件對(duì)象的二進(jìn)制數(shù)據(jù)、服務(wù)實(shí)例化的標(biāo)識(shí)號(hào)、組件參數(shù)列表的二進(jìn)制數(shù)據(jù)、參數(shù)值集合的二進(jìn)制對(duì)象、對(duì)象轉(zhuǎn)換規(guī)則的二進(jìn)制對(duì)象。

除去參數(shù)服務(wù)實(shí)例化的標(biāo)識(shí)號(hào)以外,當(dāng)其他五個(gè)參數(shù)不為空時(shí),轉(zhuǎn)換成原對(duì)象。轉(zhuǎn)換后,若服務(wù)的活動(dòng)、服務(wù)實(shí)例號(hào)和組件對(duì)象存在,并且服務(wù)對(duì)象必須是系統(tǒng)中已經(jīng)存在的組件的形式,此時(shí),傳入服務(wù)的活動(dòng)對(duì)象、組件對(duì)象、組件參數(shù)列表以及參數(shù)值,通過serRepresentMethods類直接調(diào)用相應(yīng)組件的調(diào)用方法,結(jié)果返回給returnObject。

超級(jí)代理通過調(diào)用應(yīng)用服務(wù)器的組件方法把獲取到的對(duì)象封裝在本地對(duì)象中,被訪問的數(shù)據(jù)對(duì)象在調(diào)用者系統(tǒng)中并不存在,通過transferObjByRule()方法可以解決這個(gè)問題。一種方式是將當(dāng)?shù)貙?duì)象轉(zhuǎn)換為統(tǒng)一的標(biāo)準(zhǔn)對(duì)象,另一種方式是將本地對(duì)象轉(zhuǎn)換為Json中間對(duì)象。Json對(duì)象可以轉(zhuǎn)換成系統(tǒng)可以使用的對(duì)象,以此來實(shí)現(xiàn)異構(gòu)對(duì)象的轉(zhuǎn)換。因此需要判斷returnObject是否需要轉(zhuǎn)換,如果需要轉(zhuǎn)換,并且轉(zhuǎn)換規(guī)則不為空時(shí),直接調(diào)用transferObjByRule()方法,轉(zhuǎn)換后的對(duì)象賦給returnObject。當(dāng)服務(wù)對(duì)象不是javaclass等已存在的組件形式時(shí),調(diào)用失敗。當(dāng)服務(wù)、組件對(duì)象、服務(wù)實(shí)例號(hào)中的某個(gè)參數(shù)為空時(shí),服務(wù)調(diào)用失敗,具體流程如圖3所示。

圖3 組件方法的調(diào)用流程

超級(jí)代理調(diào)用了不同應(yīng)用服務(wù)器的組件方法,同時(shí)各個(gè)應(yīng)用服務(wù)器上又安裝了超級(jí)代理組成了子代理層,因此系統(tǒng)也需要對(duì)應(yīng)用服務(wù)器進(jìn)行管理。對(duì)應(yīng)用服務(wù)器的管理主要通過ServerInfoReginBean.java類完成,該方法會(huì)在構(gòu)造器中獲取到應(yīng)用服務(wù)器的連接,主要方法及功能如表1所示。

3 實(shí)驗(yàn)結(jié)果與分析

系統(tǒng)通過在瀏覽器中拖動(dòng)和編輯各圖形元素,完成對(duì)服務(wù)的組裝。用戶對(duì)服務(wù)的調(diào)用方法之一是直接調(diào)用,這種方式下不需要接收消息,其業(yè)務(wù)流程如圖4所示。該圖中定義的服務(wù)具有三個(gè)參數(shù),一個(gè)全局變量returnVariable,兩個(gè)局部變量parameterValue與inputData。該服務(wù)包括條件判斷、調(diào)用java類方法、對(duì)變量賦值、對(duì)返回值賦值等方法。調(diào)用該服務(wù)后會(huì)得到一個(gè)返回值,返回變量是returnVariable。

表1 應(yīng)用服務(wù)器管理相關(guān)方法

圖4 直接調(diào)用服務(wù)的組裝流程

圖5 基于消息方式調(diào)用服務(wù)的組裝流程

圖5是基于消息方式進(jìn)行調(diào)用的,展示了一個(gè)定義好的實(shí)現(xiàn)數(shù)據(jù)對(duì)象持久化的服務(wù)。該服務(wù)可以調(diào)用EJB組件對(duì)課程進(jìn)行添加addCourseDefine、修改updCourseDefine和刪除delCourseDefine,并實(shí)現(xiàn)數(shù)據(jù)對(duì)象持久化功能。

4 結(jié)束語

文中采用共享服務(wù)的思想,將獲取不同應(yīng)用系統(tǒng)中數(shù)據(jù)的方法組裝成服務(wù),采用Canvas繪圖技術(shù)實(shí)現(xiàn)圖形化流程的設(shè)計(jì),根據(jù)用戶需求自定義選取、編輯組件元素,靈活組裝,完成共享服務(wù)流程的組裝。當(dāng)圖片發(fā)生變化時(shí),通過異步刷新的方式完成對(duì)瀏覽器的更新。為了保證系統(tǒng)的安全性和可靠性,對(duì)用戶進(jìn)行特定服務(wù)的授權(quán)方式來限制用戶對(duì)服務(wù)的訪問。利用直接調(diào)用和基于消息方式的調(diào)用兩種方式,實(shí)現(xiàn)了對(duì)不同服務(wù)接口的統(tǒng)一調(diào)用。最后,使用超級(jí)代理完成對(duì)組件方法的調(diào)用,實(shí)現(xiàn)不同協(xié)議之間的轉(zhuǎn)換以及各類組件調(diào)用的反射機(jī)制,有效地降低邏輯與事務(wù)處理之間的耦合度,使其不受組件的類型和協(xié)議等的影響,最終實(shí)現(xiàn)基于Canvas的共享服務(wù)流程的數(shù)據(jù)共享。

然而,系統(tǒng)仍然存在不足之處,比如流程的設(shè)計(jì)上還不夠美觀、合理,超級(jí)代理還可以調(diào)用更多的應(yīng)用服務(wù)器的組件方法等,這些問題在以后的學(xué)習(xí)過程中會(huì)加以改進(jìn),使系統(tǒng)更加完善。

猜你喜歡
調(diào)用組件對(duì)象
無人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
無人機(jī)快速巡檢光伏電站中異常光伏組件的方法
Kistler全新的Kitimer2.0系統(tǒng)組件:使安全氣囊和安全帶測(cè)試更加可靠和高效
曬曬全國(guó)優(yōu)秀縣委書記擬推薦對(duì)象
一種嵌入式軟件組件更新方法的研究與實(shí)現(xiàn)
系統(tǒng)虛擬化環(huán)境下客戶機(jī)系統(tǒng)調(diào)用信息捕獲與分析①
攻略對(duì)象的心思好難猜
圖說車事
個(gè)性簽名
利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信