本發(fā)明涉及互聯(lián)網(wǎng)分布式應(yīng)用系統(tǒng)及支持分布式處理的組件技術(shù),尤其涉及一種多機(jī)構(gòu)公共門戶中控制工具執(zhí)行的方法。
背景技術(shù):
傳統(tǒng)互聯(lián)網(wǎng)應(yīng)用開發(fā)技術(shù)是用一套應(yīng)用程序?qū)崿F(xiàn)一個(gè)相對(duì)獨(dú)立的應(yīng)用系統(tǒng),這些應(yīng)用系統(tǒng)往往只能被一個(gè)機(jī)構(gòu)所獨(dú)占。如果一個(gè)互聯(lián)網(wǎng)應(yīng)用對(duì)多個(gè)機(jī)構(gòu)同時(shí)服務(wù),則由于技術(shù)的限制,這些機(jī)構(gòu)的軟件是運(yùn)行在擁有或安裝該互聯(lián)網(wǎng)應(yīng)用的機(jī)構(gòu)的計(jì)算機(jī)上的,而不是運(yùn)行在使用這些應(yīng)用的機(jī)構(gòu)的自建計(jì)算機(jī)上的;同時(shí),這些應(yīng)用一般都是一個(gè)完整的軟件系統(tǒng),需要預(yù)先部署,不能動(dòng)態(tài)調(diào)整其中的一部分功能;
機(jī)構(gòu)希望應(yīng)用軟件運(yùn)行在自建的硬件計(jì)算機(jī)系統(tǒng)上;軟件能夠模塊化組件化,以便于修改部分功能而不需要重新安裝和部署整個(gè)軟件;共享公共門戶上的用戶資源。本專利描述的方法可以同時(shí)達(dá)成上述目標(biāo)。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)的不足,本發(fā)明提出一種多機(jī)構(gòu)公共門戶中控制工具執(zhí)行的方法。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的,一種多機(jī)構(gòu)公共門戶中控制工具執(zhí)行的方法,包括步驟:
s1:用戶在門戶中注冊(cè)創(chuàng)建機(jī)構(gòu);
s2:機(jī)構(gòu)管理員搭建組織架構(gòu);
s3:機(jī)構(gòu)管理員邀請(qǐng)用戶進(jìn)入機(jī)構(gòu);
s4:機(jī)構(gòu)管理員管理機(jī)構(gòu)中的工具,在機(jī)構(gòu)中安裝工具并設(shè)置用戶使用工具權(quán)限;
s5:機(jī)構(gòu)管理員安裝支撐工具運(yùn)行的設(shè)施;
s6:用戶在公共門戶中啟動(dòng)工具運(yùn)行,門戶根據(jù)機(jī)構(gòu)設(shè)定的授權(quán)規(guī)則先判斷用戶運(yùn)行該工具權(quán)限,如果有則進(jìn)入下一步,否則運(yùn)行工具失敗,返回;
s7:門戶判斷用戶有權(quán)限運(yùn)行工具后,將運(yùn)行工具請(qǐng)求轉(zhuǎn)發(fā)到調(diào)度模塊,獲得最優(yōu)工具運(yùn)行節(jié)點(diǎn),然后將運(yùn)行工具請(qǐng)求轉(zhuǎn)發(fā)到最優(yōu)工具運(yùn)行計(jì)算機(jī)節(jié)點(diǎn)上執(zhí)行,最后將執(zhí)行結(jié)果返回給用戶。
進(jìn)一步地,步驟s2包括步驟:
s21:機(jī)構(gòu)管理員在機(jī)構(gòu)內(nèi)部創(chuàng)建組織架構(gòu);
s22:機(jī)構(gòu)管理員設(shè)置相關(guān)角色并給角色授予相應(yīng)的權(quán)限;
s23:機(jī)構(gòu)管理員從公共門戶中將公共用戶邀請(qǐng)到機(jī)構(gòu)中擔(dān)任相關(guān)角色,或直接授予用戶執(zhí)行工具權(quán)限。
更進(jìn)一步地,步驟s23中一個(gè)用戶可同時(shí)擔(dān)任多個(gè)角色。
進(jìn)一步地,所述門戶還包括了工具商店,所述工具商店負(fù)責(zé)管理各種工具的程序代碼和有關(guān)使用安裝文檔;機(jī)構(gòu)提供自建的計(jì)算機(jī)設(shè)施,門戶通過(guò)網(wǎng)絡(luò)在物理結(jié)構(gòu)上還連接了各個(gè)機(jī)構(gòu)的自建的計(jì)算機(jī)節(jié)點(diǎn)設(shè)施。
進(jìn)一步地,所述工具是面向普通用戶的應(yīng)用軟件模塊,完成某個(gè)業(yè)務(wù)功能,利用java、jsp、php、python、c、c++等軟件開發(fā)語(yǔ)言開發(fā),安裝到機(jī)構(gòu)后用戶可以直接使用。
進(jìn)一步地,步驟s7中工具的運(yùn)行,某機(jī)構(gòu)中的用戶運(yùn)行工具時(shí),運(yùn)行工具的計(jì)算機(jī)設(shè)施是屬于所屬機(jī)構(gòu)的,或者是屬于提供工具運(yùn)行環(huán)境的另外的機(jī)構(gòu)的。
進(jìn)一步地,步驟s7中工具運(yùn)行計(jì)算機(jī)節(jié)點(diǎn)的選擇,門戶中的調(diào)度模塊是按照某個(gè)機(jī)構(gòu)中的計(jì)算機(jī)節(jié)點(diǎn)當(dāng)前負(fù)載數(shù)據(jù)、節(jié)能原則、數(shù)據(jù)庫(kù)連接狀況等策略,對(duì)該機(jī)構(gòu)中的計(jì)算機(jī)節(jié)點(diǎn)進(jìn)行選擇用于工具執(zhí)行。
本發(fā)明的有益效果在于,與現(xiàn)有技術(shù)相比,本發(fā)明支持多機(jī)構(gòu)在公共門戶中創(chuàng)建管理各自的“應(yīng)用系統(tǒng)”,應(yīng)用系統(tǒng)主要是由機(jī)構(gòu)加工具加授權(quán)規(guī)則組合構(gòu)成;不同機(jī)構(gòu)共享門戶中的公共用戶;本發(fā)明還包括工具組件,較傳統(tǒng)軟件組件而言,本發(fā)明提出的工具組件直接面向用戶使用,用戶只需將工具安裝并設(shè)置授權(quán)規(guī)則便可直接使用,不需要進(jìn)行二次開發(fā)。
附圖說(shuō)明
圖1是本發(fā)明一種多機(jī)構(gòu)公共門戶中控制工具執(zhí)行的方法流程圖;
圖2是本發(fā)明中的機(jī)構(gòu)在架構(gòu)中的位置示意圖;
圖3是本發(fā)明中控制工具執(zhí)行時(shí)序圖;
圖4是本發(fā)明中調(diào)度工具運(yùn)行的策略示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參見圖1,本發(fā)明一種多機(jī)構(gòu)公共門戶中控制工具執(zhí)行的方法,包括步驟:
s1:用戶在門戶中注冊(cè)創(chuàng)建機(jī)構(gòu);
s2:機(jī)構(gòu)管理員搭建組織架構(gòu);
s3:機(jī)構(gòu)管理員邀請(qǐng)用戶進(jìn)入機(jī)構(gòu);
s4:機(jī)構(gòu)管理員管理機(jī)構(gòu)中的工具,在機(jī)構(gòu)中安裝工具并設(shè)置用戶使用工具權(quán)限;
s5:機(jī)構(gòu)管理員安裝支撐工具運(yùn)行的設(shè)施;
s6:用戶在公共門戶中啟動(dòng)工具運(yùn)行,門戶根據(jù)機(jī)構(gòu)設(shè)定的授權(quán)規(guī)則先判斷用戶運(yùn)行該工具權(quán)限,如果有則進(jìn)入下一步,否則運(yùn)行工具失敗,返回;
s7:門戶判斷用戶有權(quán)限運(yùn)行工具后,將運(yùn)行工具請(qǐng)求轉(zhuǎn)發(fā)到調(diào)度模塊,獲得最優(yōu)工具運(yùn)行節(jié)點(diǎn),然后將運(yùn)行工具請(qǐng)求轉(zhuǎn)發(fā)到最優(yōu)工具運(yùn)行計(jì)算機(jī)節(jié)點(diǎn)上執(zhí)行,最后將執(zhí)行結(jié)果返回給用戶。
本發(fā)明的實(shí)施分兩部分,第一部分是各機(jī)構(gòu)在門戶中對(duì)機(jī)構(gòu)的管理并安裝工具,制定授權(quán)規(guī)則,構(gòu)建機(jī)構(gòu)互聯(lián)網(wǎng)應(yīng)用產(chǎn)品的實(shí)施方式;第二部分,控制工具的執(zhí)行,驗(yàn)證用戶運(yùn)行工具權(quán)限及計(jì)算工具合理的計(jì)算機(jī)節(jié)點(diǎn)并將工具分發(fā)到節(jié)點(diǎn)上運(yùn)行來(lái)控制工具的執(zhí)行的實(shí)施方式。
其中,第一部分:
1、用戶在門戶中注冊(cè)創(chuàng)建機(jī)構(gòu)
用戶可根據(jù)機(jī)構(gòu)類型選擇相應(yīng)的機(jī)構(gòu)模板進(jìn)行創(chuàng)建,同時(shí)可以指定機(jī)構(gòu)管理員,機(jī)構(gòu)在架構(gòu)中的位置如圖2所示。平臺(tái)管理員在公共門戶中管理公共用戶和已注冊(cè)的機(jī)構(gòu)。用戶創(chuàng)建好機(jī)構(gòu)后,機(jī)構(gòu)管理員進(jìn)入機(jī)構(gòu)進(jìn)行內(nèi)部管理,機(jī)構(gòu)內(nèi)部管理包括機(jī)構(gòu)人員管理、工具管理、設(shè)施管理和授權(quán)管理等。
2、機(jī)構(gòu)管理員搭建組織架構(gòu)
機(jī)構(gòu)管理員需要在機(jī)構(gòu)內(nèi)部創(chuàng)建好組織架構(gòu),設(shè)置相關(guān)角色并給角色授予相應(yīng)的權(quán)限,然后從公共門戶中將用戶邀請(qǐng)到機(jī)構(gòu)中擔(dān)任相關(guān)角色,一個(gè)用戶可同時(shí)擔(dān)任多個(gè)角色,機(jī)構(gòu)管理員可以隨時(shí)更改角色權(quán)限和人員的角色。
3、邀請(qǐng)用戶進(jìn)入機(jī)構(gòu)
當(dāng)機(jī)構(gòu)被創(chuàng)建后,機(jī)構(gòu)管理員便可邀請(qǐng)用戶進(jìn)入機(jī)構(gòu),并給用戶分配相關(guān)角色或直接設(shè)置權(quán)限,例如某角色在機(jī)構(gòu)內(nèi)下的某部門是否有操作文檔、運(yùn)行工具、發(fā)言互動(dòng)等權(quán)限,機(jī)構(gòu)管理員可以隨時(shí)修改用戶的角色和權(quán)限。
4、管理機(jī)構(gòu)中的工具,安裝工具設(shè)置用戶使用工具權(quán)限
機(jī)構(gòu)管理員在機(jī)構(gòu)工具庫(kù)中管理本機(jī)構(gòu)的所有工具,機(jī)構(gòu)工具庫(kù)中的工具均從工具商店中獲取,機(jī)構(gòu)管理員在各部門中安裝處理相關(guān)業(yè)務(wù)的工具,并將裝好的工具授權(quán)給相關(guān)人員使用;在安裝工具時(shí)平臺(tái)會(huì)先檢查機(jī)構(gòu)是否有工具運(yùn)行所需要的設(shè)施,如果沒有則機(jī)構(gòu)需要先創(chuàng)建好設(shè)施才能安裝工具;機(jī)構(gòu)管理員可以把工具庫(kù)中的工具授權(quán)給機(jī)構(gòu)內(nèi)的人員來(lái)安裝。管理員可隨時(shí)修改工具使用授權(quán)規(guī)則,對(duì)不需要用的工具可將其卸載。
5、管理機(jī)構(gòu)中支撐工具運(yùn)行的設(shè)施(工具運(yùn)行節(jié)點(diǎn)和數(shù)據(jù)庫(kù)節(jié)點(diǎn))
工具運(yùn)行需要設(shè)施的支撐,機(jī)構(gòu)安裝工具運(yùn)行時(shí)最終會(huì)被調(diào)度模塊調(diào)度到機(jī)構(gòu)的工具運(yùn)行節(jié)點(diǎn)設(shè)施上執(zhí)行,所有機(jī)構(gòu)需要管理自己的設(shè)施。管理員除了可以添加、刪除、修改和查看設(shè)施外,還可以監(jiān)控設(shè)施狀態(tài)。設(shè)施分?jǐn)?shù)據(jù)庫(kù)設(shè)施和工具運(yùn)行節(jié)點(diǎn)設(shè)施,工具運(yùn)行在工具運(yùn)行節(jié)點(diǎn)設(shè)施上,這些設(shè)施需要部署安裝工具運(yùn)行環(huán)境;工具需要連接數(shù)據(jù)庫(kù)時(shí)要用到數(shù)據(jù)庫(kù)設(shè)施,這些工具在機(jī)構(gòu)中被運(yùn)行時(shí)工具運(yùn)行環(huán)境會(huì)在該機(jī)構(gòu)中查找工具運(yùn)行所需的數(shù)據(jù)庫(kù)設(shè)施,并為工具提供該數(shù)據(jù)庫(kù)設(shè)施的連接對(duì)象。
6、用戶根據(jù)授權(quán)規(guī)則使用工具
用戶被邀請(qǐng)進(jìn)入機(jī)構(gòu)后,在門戶中可查看該機(jī)構(gòu)和進(jìn)入機(jī)構(gòu),用戶根據(jù)自己的角色和角色擁有的權(quán)限在機(jī)構(gòu)中運(yùn)行相關(guān)工具完成相關(guān)業(yè)務(wù)。
第二部分:
1、門戶先判斷用戶運(yùn)行該工具權(quán)限
如圖3所示為控制工具執(zhí)行的時(shí)序圖,用戶在公共門戶中啟動(dòng)工具運(yùn)行,門戶根據(jù)機(jī)構(gòu)設(shè)定的授權(quán)規(guī)則先判斷用戶運(yùn)行該工具權(quán)限,如果有才能繼續(xù)運(yùn)行,否則運(yùn)行工具失敗。
2、在機(jī)構(gòu)中選擇最優(yōu)的運(yùn)行工具節(jié)點(diǎn)運(yùn)行工具
門戶判斷用戶有權(quán)限運(yùn)行工具后,將運(yùn)行工具請(qǐng)求轉(zhuǎn)發(fā)到調(diào)度模塊進(jìn)行計(jì)算,算法如下:
a)獲取當(dāng)前運(yùn)行工具所安裝機(jī)構(gòu)信息,并獲取機(jī)構(gòu)當(dāng)前可用工具運(yùn)行節(jié)點(diǎn)設(shè)施;
b)若機(jī)構(gòu)當(dāng)前沒有可以節(jié)點(diǎn)設(shè)施,則工具在該機(jī)構(gòu)運(yùn)行失敗,返回;
c)若機(jī)構(gòu)當(dāng)前有可用節(jié)點(diǎn)設(shè)施,設(shè)為集合a,從a中選出符合工具運(yùn)行的節(jié)點(diǎn)設(shè)施,設(shè)為集合b;
d)若b為空,則工具運(yùn)行失敗,返回;
e)若b不為空,則計(jì)算b中每個(gè)節(jié)點(diǎn)設(shè)施的負(fù)載、是否安裝過(guò)工具、是否保留工具運(yùn)行需要的數(shù)據(jù)庫(kù)連接等信息,權(quán)衡這些因素得出最優(yōu)工具運(yùn)行節(jié)點(diǎn)。
獲得最優(yōu)工具運(yùn)行節(jié)點(diǎn),然后將運(yùn)行工具請(qǐng)求轉(zhuǎn)發(fā)到調(diào)度模塊所選中的工具節(jié)點(diǎn)上執(zhí)行,最后執(zhí)行結(jié)果被返回給用戶。
調(diào)度工具運(yùn)行策略如圖4所示,影響選擇最優(yōu)運(yùn)行工具節(jié)點(diǎn)的因素有:
a)工具所安裝的機(jī)構(gòu),安裝在機(jī)構(gòu)下的工具只能運(yùn)行在該機(jī)構(gòu)的工具節(jié)點(diǎn)設(shè)施上執(zhí)行,或者運(yùn)行在某個(gè)指定機(jī)構(gòu)的工具節(jié)點(diǎn)設(shè)施上;
b)工具對(duì)運(yùn)行環(huán)境的要求,調(diào)度模塊只會(huì)選擇符合本次要運(yùn)行工具要求的工具節(jié)點(diǎn);
c)工具節(jié)點(diǎn)是否部署安裝過(guò)工具,調(diào)度模塊會(huì)優(yōu)先選擇已經(jīng)部署安裝過(guò)本次要運(yùn)行的工具的工具節(jié)點(diǎn);
d)工具節(jié)點(diǎn)是否還有工具運(yùn)行需要數(shù)據(jù)庫(kù)的空閑連接,部分工具運(yùn)行時(shí)需要連接數(shù)機(jī)構(gòu)的據(jù)庫(kù)設(shè)施,調(diào)度模塊會(huì)優(yōu)先選擇有空閑連接的工具節(jié)點(diǎn);
e)運(yùn)行工具節(jié)點(diǎn)負(fù)載情況,符合運(yùn)行工具節(jié)點(diǎn)有多個(gè)時(shí),調(diào)度模塊會(huì)選擇負(fù)載較低的節(jié)點(diǎn)。
工具運(yùn)行環(huán)境為執(zhí)行工具選擇好運(yùn)行工具節(jié)點(diǎn)后,先判斷工具是否在選擇的工具節(jié)點(diǎn)上安裝部署了,如果沒有則從門戶的工具商店中動(dòng)態(tài)獲取工具的執(zhí)行代碼,安裝工具執(zhí)行代碼到選擇的工具節(jié)點(diǎn)上,再執(zhí)行工具。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。