本發(fā)明涉及java web領(lǐng)域,特別涉及一種服務(wù)總線中間件系統(tǒng)及其調(diào)用方法。
背景技術(shù):
和教育平臺是中國移動提出的一套校訊通系統(tǒng),實(shí)現(xiàn)老師聯(lián)系家長,向家長報告孩子在校情況的一種通信手段。在現(xiàn)有廣東移動和教育平臺基礎(chǔ)上,參考并引入移動互聯(lián)網(wǎng)化平臺的設(shè)計思想和理念,對和教育平臺進(jìn)行整體架構(gòu)規(guī)劃并形成建設(shè)方案及規(guī)范,涵蓋架構(gòu)要求、功能要求、業(yè)務(wù)流程要求、接口要求、硬件和存儲要求等多方面內(nèi)容,為后續(xù)平臺方案的詳細(xì)設(shè)計提供有效指引。
圖1為和教育總體架構(gòu)。如圖1所示,Kettle:又名Data Integration,是一種采用開創(chuàng)性和元數(shù)據(jù)驅(qū)動方法實(shí)現(xiàn)數(shù)據(jù)的抽取、轉(zhuǎn)換及加載的ETL開源框架,本系統(tǒng)中用于從外部數(shù)據(jù)源(如:數(shù)據(jù)庫,外部接口等)抽取數(shù)據(jù)到平臺中央數(shù)據(jù)庫的準(zhǔn)備區(qū),以前對抽取的數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換后加載到數(shù)據(jù)倉庫及數(shù)據(jù)集市中。
RabbitMQ:支持高可性及多種協(xié)議的消息中間件,在本系統(tǒng)中其承擔(dān)消息總線的角色,提供基于主題和隊列的兩種消息分發(fā)方式,實(shí)現(xiàn)平臺內(nèi)各組件間消息的流轉(zhuǎn),例如接口調(diào)用異常,數(shù)據(jù)抽取、轉(zhuǎn)換異常信息可以通過消息總線發(fā)送到數(shù)據(jù)監(jiān)控中心。
Oracle 11G:一款功能強(qiáng)大的商業(yè)版關(guān)系型數(shù)據(jù)庫,本系統(tǒng)中用來作為中央數(shù)據(jù)庫,其中的表可分為數(shù)據(jù)準(zhǔn)備層、數(shù)據(jù)倉庫層和數(shù)據(jù)集市層,其中數(shù)據(jù)準(zhǔn)備層具有與源系統(tǒng)相近的表結(jié)構(gòu)模型,烽據(jù)倉庫層具有所有業(yè)務(wù)數(shù)據(jù)的統(tǒng)一模型,而數(shù)據(jù)集市擁有專注主題或領(lǐng)域分析需求的多維模型(如:星型或雪花型表結(jié)構(gòu))
Dubbox:Dubbo是由阿里巴巴提供的一種開源分布式服務(wù)框架,提供諸如服務(wù)的注冊,路由及負(fù)載均衡等功能,而Dubbox則是在其之上增加了Restful及新的更有效的序列機(jī)制(Kyro、FST)。本系統(tǒng)中的Dubbox作為系統(tǒng)的服務(wù)總線,提供系統(tǒng)內(nèi)各組件的交互及向平臺的應(yīng)用層或其它第三方應(yīng)用提供數(shù)據(jù)服務(wù)。
Hadoop Cluster:本系統(tǒng)選擇Cloudera廠商的發(fā)行版5.5.1,主要使用的組件包括HDFS、HBase、Spark。Hadoop集群適用于存儲那些一次寫入多次讀的數(shù)據(jù),本系統(tǒng)中用于存儲諸如日志類只讀且量大的數(shù)據(jù),并通過HBase提供單級別的查詢和通過Saprk提供對數(shù)據(jù)的深度分析和挖掘能力。
Mondrian:一種開源的OLAP分析引擎,提供基于MDX和OLAP4J的多維查詢方式,本系統(tǒng)中為經(jīng)營分析系統(tǒng)提供靈活定制的報表的能力。
根據(jù)現(xiàn)有業(yè)務(wù)功能和技術(shù)實(shí)現(xiàn)方案下,我們不難發(fā)現(xiàn),其中存在很多的問題,主要為以下幾點(diǎn):
1、直連數(shù)據(jù)庫,數(shù)據(jù)和應(yīng)用隔離,數(shù)據(jù)安全性不高。
2、上層應(yīng)用和數(shù)據(jù)庫的耦合性高、可移植性不高。
3、性能處瓶頸期、并發(fā)度不高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于,解決現(xiàn)有和教育平臺存在的上述問題,提供了一種服務(wù)總線中間件系統(tǒng)及其調(diào)用方法。
為實(shí)現(xiàn)上述目的,一方面,本發(fā)明提供了一種服務(wù)總線中間件系統(tǒng),該服務(wù)總線中間件系統(tǒng)包括:Restful服務(wù)模塊和至少一個遠(yuǎn)程過程調(diào)用協(xié)議RPC服務(wù)模塊;
Restful服務(wù)模塊,用于根據(jù)應(yīng)用系統(tǒng)發(fā)送的認(rèn)證請求進(jìn)行認(rèn)證,并在認(rèn)證成功后生成第一訪問令牌;并將第一訪問令牌發(fā)送至應(yīng)用系統(tǒng),以便應(yīng)用系統(tǒng)根據(jù)應(yīng)用系統(tǒng)中存儲的注冊信息生成一個數(shù)據(jù)服務(wù)請求,并將數(shù)據(jù)服務(wù)請求和第一訪問令牌返回;其中,數(shù)據(jù)服務(wù)請求包括參數(shù)列表;將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)至至少一個RPC服務(wù)模塊;
至少一個RPC服務(wù)模塊,用于根據(jù)數(shù)據(jù)服務(wù)請求中的參數(shù)列表,調(diào)用出與數(shù)據(jù)服務(wù)請求對應(yīng)的目標(biāo)服務(wù)。
優(yōu)選地,Restful服務(wù)模塊還用于:根據(jù)第一訪問令牌判斷第一訪問令牌訪問目標(biāo)服務(wù)的權(quán)項(xiàng);當(dāng)?shù)谝辉L問令牌具有訪問目標(biāo)的權(quán)項(xiàng)時,Restful服務(wù)模塊將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)至至少一個RPC服務(wù)模塊。
優(yōu)選地,至少一個RPC服務(wù)模塊還用于:將目標(biāo)服務(wù)通過Restful服務(wù)模塊轉(zhuǎn)發(fā)至應(yīng)用系統(tǒng)。
優(yōu)選地,Restful服務(wù)模塊包括:認(rèn)證單元、鑒權(quán)單元和轉(zhuǎn)發(fā)單元;
認(rèn)證單元,用于根據(jù)應(yīng)用系統(tǒng)發(fā)送的認(rèn)證請求進(jìn)行認(rèn)證進(jìn)行認(rèn)證,其中,認(rèn)證請求包括應(yīng)用ID和數(shù)字簽名;當(dāng)認(rèn)證單元判斷數(shù)字簽名為有效時,生成并發(fā)送第一訪問令牌和刷新令牌至應(yīng)用系統(tǒng),以便應(yīng)用系統(tǒng)根據(jù)應(yīng)用系統(tǒng)中存儲的注冊信息生成一個數(shù)據(jù)服務(wù)請求,并將數(shù)據(jù)服務(wù)請求和第一訪問令牌返回;鑒權(quán)單元,用于根據(jù)第一訪問令牌判斷第一訪問令牌訪問目標(biāo)服務(wù)的權(quán)項(xiàng);轉(zhuǎn)發(fā)單元,用于當(dāng)?shù)谝辉L問令牌具有訪問目標(biāo)服務(wù)的權(quán)項(xiàng)時,將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)至至少一個RPC服務(wù)模塊。
優(yōu)選地,當(dāng)訪問令牌失效時,Restful服務(wù)模塊還包括刷新單元:刷新單元通過刷新令牌獲取第二訪問令牌。
優(yōu)選地,Restful服務(wù)模塊設(shè)置Restful接口;Restful接口采用POST請求方式。
優(yōu)選地,Restful接口使用JSON承載服務(wù)請求參數(shù)和響應(yīng)結(jié)果。
另一方面,本發(fā)明提供一種服務(wù)總線中間件系統(tǒng)調(diào)用方法,該方法包括:
根據(jù)應(yīng)用系統(tǒng)發(fā)送的認(rèn)證請求進(jìn)行認(rèn)證,并在認(rèn)證成功后生成第一訪問令牌;并將第一訪問令牌發(fā)送至應(yīng)用系統(tǒng),以便應(yīng)用系統(tǒng)根據(jù)應(yīng)用系統(tǒng)中存儲的注冊信息生成一個數(shù)據(jù)服務(wù)請求,并將數(shù)據(jù)服務(wù)請求和第一訪問令牌返回;其中,數(shù)據(jù)服務(wù)請求包括參數(shù)列表;將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā);根據(jù)數(shù)據(jù)服務(wù)請求中的參數(shù)列表,調(diào)用出與數(shù)據(jù)服務(wù)請求對應(yīng)的目標(biāo)服務(wù)。
優(yōu)選地,將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求和訪問令牌轉(zhuǎn)發(fā)的步驟之前還包括具體包括:判斷第一訪問令牌訪問目標(biāo)服務(wù)的權(quán)項(xiàng);當(dāng)?shù)谝辉L問令牌具有訪問目標(biāo)的權(quán)項(xiàng)時,將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)。
優(yōu)選地,根據(jù)數(shù)據(jù)服務(wù)請求中的參數(shù)列表,調(diào)用出與數(shù)據(jù)服務(wù)請求對應(yīng)的目標(biāo)服務(wù)的步驟之后還包括:將目標(biāo)服務(wù)轉(zhuǎn)發(fā)至應(yīng)用系統(tǒng)。
本發(fā)明提供的一種服務(wù)總線中間件系統(tǒng)及其調(diào)用方法與現(xiàn)有技術(shù)相比具有以下突出的有益效果:
1、共享接口均采用Restful風(fēng)格的基于Http或Https的接口,同時統(tǒng)一采用Json的數(shù)據(jù)傳遞方式,減少網(wǎng)絡(luò)開銷并支持與Web應(yīng)用的無縫集成
2、所有共享接口均按先認(rèn)證和服務(wù)的方式提供數(shù)據(jù),并記錄接口調(diào)用時間、調(diào)用人、調(diào)用參數(shù)等信息為審計提供數(shù)據(jù)支撐,同時由數(shù)據(jù)提供方實(shí)現(xiàn)對數(shù)據(jù)的脫敏處理。不同的應(yīng)用系統(tǒng)或消費(fèi)方可以訪問不同的接口集。
3、共享接口具有一定的抗災(zāi)能力,如在部分接口服務(wù)器宕機(jī)的情況下,仍然能夠提供相應(yīng)數(shù)據(jù)服務(wù)的能力。
4、接口支持集群和負(fù)載均衡的能力,支持高并發(fā)、高吞吐量的訪問。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中和教育系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的服務(wù)總線中間件系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例提供的服務(wù)總線中間件系統(tǒng)調(diào)用方法的序列圖。
具體實(shí)施方式
下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
本發(fā)明實(shí)施例基于一組Restful服務(wù)對應(yīng)一個或多個RPC服務(wù)構(gòu)建服務(wù)總線中間件系統(tǒng),其以安全、支持高并發(fā)的完成客戶端實(shí)際的數(shù)據(jù)查詢服務(wù)。
圖2為本發(fā)明實(shí)施例提供的服務(wù)總線中間件系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示,服務(wù)總線中間件系統(tǒng)包括:
Restful服務(wù)模塊,用于根據(jù)應(yīng)用系統(tǒng)發(fā)送的認(rèn)證請求進(jìn)行認(rèn)證,并在認(rèn)證成功后發(fā)送訪問token和刷新token;其中認(rèn)證請求包括應(yīng)用ID和數(shù)字簽名。數(shù)字簽名包括應(yīng)用ID、密鑰和時間戳。
與服務(wù)總線中間件系統(tǒng)對應(yīng)的應(yīng)用系統(tǒng)都分配有一個唯一的應(yīng)用ID和隨機(jī)密鑰,時間戳則是應(yīng)用系統(tǒng)向服務(wù)中線中間件發(fā)起認(rèn)證請求的時間,在Restful服務(wù)模塊判斷數(shù)字簽名有效及認(rèn)證成功,生成一個訪問token和刷新token。該訪問token和刷新token是一一對應(yīng)的。
在認(rèn)證成功后,Restful服務(wù)模塊將訪問token和刷新token發(fā)送至應(yīng)用系統(tǒng),以便應(yīng)用系統(tǒng)根據(jù)應(yīng)用系統(tǒng)中存儲的注冊信息(注冊信息包括服務(wù)版本、服務(wù)名稱和參數(shù)列表)生成,生成一個數(shù)據(jù)服務(wù)請求,其中數(shù)據(jù)服務(wù)請求包括:參數(shù)列表;將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)至至少一個RPC服務(wù)模塊;至少一個RPC服務(wù)模塊,用于根據(jù)數(shù)據(jù)服務(wù)請求中的參數(shù)列表,調(diào)用出與數(shù)據(jù)服務(wù)請求對應(yīng)的目標(biāo)服務(wù)。
至少一個RPC服務(wù)模塊還用于:將目標(biāo)服務(wù)通過Restful服務(wù)模塊轉(zhuǎn)發(fā)至應(yīng)用系統(tǒng)。
本發(fā)明實(shí)施例中產(chǎn)生的訪問token用于判斷訪問token具有訪問目標(biāo)服務(wù)的權(quán)項(xiàng)。
當(dāng)訪問token沒有失效時,根據(jù)訪問token判斷訪問token訪問目標(biāo)服務(wù)的權(quán)項(xiàng);當(dāng)訪問token具有訪問目標(biāo)的權(quán)項(xiàng)時,Restful服務(wù)模塊將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)至至少一個RPC服務(wù)模塊。
具體地,Restful服務(wù)模塊包括:認(rèn)證單元、發(fā)送單元、鑒權(quán)單元和轉(zhuǎn)發(fā)單元;
認(rèn)證單元,用于根據(jù)認(rèn)證請求包括的應(yīng)用ID和數(shù)字簽名進(jìn)行認(rèn)證,在判斷數(shù)字簽名有效時,產(chǎn)生訪問token和刷新token提供給應(yīng)用系統(tǒng),以便應(yīng)用系統(tǒng)根據(jù)應(yīng)用系統(tǒng)中存儲的注冊信息生成一個數(shù)據(jù)服務(wù)請求,并將數(shù)據(jù)服務(wù)請求和訪問token返回;
鑒權(quán)單元,用于根據(jù)訪問token判斷訪問token訪問目標(biāo)服務(wù)的權(quán)項(xiàng);
轉(zhuǎn)發(fā)單元,用于當(dāng)訪問token具有訪問目標(biāo)服務(wù)的權(quán)項(xiàng)時,將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)至至少一個RPC服務(wù)模塊。
可選的,當(dāng)訪問token失效時,Restful服務(wù)模塊還包括刷新單元,。
具體地,刷新單元通過刷新token獲取訪問token,通過刷新token獲取的訪問token可以直接調(diào)用目標(biāo)服務(wù),而不用再次進(jìn)行認(rèn)證。
刷新單元通過刷新token獲取新的訪問token的過程中需要對刷新token判斷是和訪問token對應(yīng)的,且刷新token沒有失效時,刷新單元才能通過刷新訪問token獲得新的訪問token。
需要說明的是,在訪問token和刷新token都失效時,則需要應(yīng)用系統(tǒng)將服務(wù)總線中間件系統(tǒng)重新進(jìn)行認(rèn)證,獲取對應(yīng)的訪問token和刷新token。
接口約定:
服務(wù)總線中間件系統(tǒng)由一組Restful風(fēng)格的服務(wù)和至少一組RPC服務(wù)組成,其中Restful服務(wù)為對外提供的服務(wù)接口,其與所有RPC服務(wù)保持連接,并由其代理外部的請求并路由到對應(yīng)的RPC服務(wù)實(shí)現(xiàn)數(shù)據(jù)服務(wù)。
服務(wù)總線中間件系統(tǒng)為每個調(diào)應(yīng)方(通常是應(yīng)用系統(tǒng))分配一個唯一的應(yīng)用ID和隨機(jī)的Secret(密鑰)串。應(yīng)用系統(tǒng)在使用服務(wù)總線中間件系統(tǒng)提供的服務(wù)時,總是需要先認(rèn)證,需要向服務(wù)總線中間件系統(tǒng)發(fā)送由應(yīng)用ID和數(shù)字簽名組成的認(rèn)證請求,該數(shù)字簽名包括應(yīng)用ID、隨機(jī)密鑰和時間戳,并在判斷數(shù)字簽名有效即認(rèn)證成功時獲取訪問token(AccessToken)和刷新token,其后的每次調(diào)用目標(biāo)服務(wù)時均需要攜帶此訪問token。
Restful服務(wù)接口均采用POST請求方式且使用JSON承載服務(wù)請求參數(shù)和響應(yīng)結(jié)果。
本發(fā)明實(shí)施例中的Restful(Representational State Transfer)風(fēng)格服務(wù)組成的前端以一組具備相同功能的Restful服務(wù)(通過Nginx(“engine X”)實(shí)現(xiàn)負(fù)載均衡)對外提供數(shù)據(jù)服務(wù),其后端通過調(diào)用一個或多個RPC服務(wù)完成實(shí)際的數(shù)據(jù)查詢等服務(wù)。
Nginx+Tomcat實(shí)現(xiàn)HTTPS(Hypertext Transfer Protocol Secure Socket Layer)安全鏈接。Nginx+Tomcat配置負(fù)載均衡,將多臺服務(wù)器以對稱的方式組成一個服務(wù)器集合,每臺服務(wù)器都具有等價的地位,都可以單獨(dú)對外提供服務(wù)而無需其他服務(wù)器的輔助。通過負(fù)載分擔(dān)技術(shù),將外部發(fā)送來的請求平均分配到對稱結(jié)構(gòu)中的某一臺服務(wù)器上,而接收到請求的服務(wù)器獨(dú)立地回應(yīng)客戶的請求。均衡負(fù)載平均分配客戶請求到服務(wù)器列陣,籍此提供快速獲取重要數(shù)據(jù),解決大量并發(fā)訪問服務(wù)問題。
RPC(遠(yuǎn)程過程調(diào)用),在傳輸協(xié)議(TCP/HTTP等)上攜帶消息數(shù)據(jù),通過網(wǎng)絡(luò)從遠(yuǎn)程計算機(jī)程序上請求服務(wù)。
服務(wù)總線中間件系統(tǒng)用于實(shí)現(xiàn)負(fù)載均衡和暴露服務(wù);負(fù)載均衡是由web層實(shí)現(xiàn)的,暴露服務(wù)是由RPC層實(shí)現(xiàn)。且多個RPC層之間都是獨(dú)立的,可以通過注冊中心進(jìn)行協(xié)調(diào),根據(jù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請求,RPC層可能會提供一樣的服務(wù),可以達(dá)到RPC層負(fù)載均衡。
圖3為本發(fā)明實(shí)施例提供的服務(wù)總線中間件系統(tǒng)調(diào)用方法的序列圖。如圖3所示,服務(wù)總線中間件系統(tǒng)調(diào)用方法步驟包括:
S300:Restful服務(wù)模塊根據(jù)應(yīng)用系統(tǒng)發(fā)送的認(rèn)證請求進(jìn)行認(rèn)證,并在認(rèn)證成功后,生成訪問token和刷新token;訪問token和刷新token是對應(yīng)的;
認(rèn)證請求包括應(yīng)用ID和數(shù)字簽名,當(dāng)Restful服務(wù)模塊判斷數(shù)字簽名有效即認(rèn)證成功時,生成訪問token和刷新token。其中數(shù)字簽名包括應(yīng)用ID、密鑰和時間戳。時間戳則是客戶端進(jìn)行認(rèn)證的時間。
服務(wù)總線中間件系統(tǒng)為客戶端(通常是應(yīng)用系統(tǒng))分配一個唯一的應(yīng)用ID和隨機(jī)的Secret(密鑰)串。
訪問token是客戶端在進(jìn)行認(rèn)證后獲取的憑證信息,訪問訪問服務(wù)總線中間件系統(tǒng)時需要攜帶訪問token,訪問token有效期為2小時,訪問token過期后需通過刷新接口或獲取新的訪問token;若在訪問token未過期時獲取新的訪問token,之前的訪問token即使未過期也將失效。
刷新token是客戶端在成功認(rèn)證后隨訪問token一起返回的,用于當(dāng)訪問token過期時通過刷新token來訪問服務(wù)總線中間件系統(tǒng),而不需要再次認(rèn)證。刷新token自身的有效期為1天。
需要說明的是,訪問token都是隨機(jī)產(chǎn)生的,在訪問token失效,刷新token沒有失效時,通過刷新token進(jìn)行再次訪問;在刷新token也失效時,需要重新根據(jù)密碼登錄。
S310:Restful服務(wù)模塊將訪問token發(fā)送至應(yīng)用系統(tǒng),以便應(yīng)用系統(tǒng)根據(jù)應(yīng)用系統(tǒng)中存儲的注冊信息,生成一個數(shù)據(jù)服務(wù)請求,并將數(shù)據(jù)服務(wù)請求和訪問token返回至Restful服務(wù)模塊,其中數(shù)據(jù)服務(wù)請求包括:參數(shù)列表;
注冊信息包括參數(shù)列表、服務(wù)名稱和服務(wù)版本。
S320:Restful服務(wù)模塊將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā);
S330:至少一個PPC服務(wù)模塊根據(jù)數(shù)據(jù)服務(wù)請求中的參數(shù)列表,調(diào)用出與數(shù)據(jù)服務(wù)請求對應(yīng)的目標(biāo)服務(wù)。
執(zhí)行步驟S330之前,服務(wù)總線中間件系統(tǒng)調(diào)用方法還包括:
S340:Restful服務(wù)模塊判斷訪問token訪問目標(biāo)服務(wù)的權(quán)項(xiàng);當(dāng)訪問令牌具有訪問目標(biāo)的權(quán)項(xiàng)時,將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)。
具體地,Restful服務(wù)模塊包括:認(rèn)證單元、鑒權(quán)單元和轉(zhuǎn)發(fā)單元;
認(rèn)證單元,用于根據(jù)認(rèn)證請求包括的應(yīng)用ID和數(shù)字簽名進(jìn)行認(rèn)證,在判斷數(shù)字簽名有效時,產(chǎn)生訪問token和刷新token提供給應(yīng)用系統(tǒng),以便應(yīng)用系統(tǒng)根據(jù)應(yīng)用系統(tǒng)中存儲的注冊信息生成一個數(shù)據(jù)服務(wù)請求,并將數(shù)據(jù)服務(wù)請求和訪問token返回;
鑒權(quán)單元,用于根據(jù)訪問token判斷訪問token訪問目標(biāo)服務(wù)的權(quán)項(xiàng);
轉(zhuǎn)發(fā)單元,用于當(dāng)訪問token具有訪問目標(biāo)服務(wù)的權(quán)項(xiàng)時,將應(yīng)用系統(tǒng)發(fā)送的數(shù)據(jù)服務(wù)請求轉(zhuǎn)發(fā)至至少一個RPC服務(wù)模塊。
在執(zhí)行步驟S340后,服務(wù)總線中間件系統(tǒng)調(diào)用方法還包括:
S350:至少一個RPC服務(wù)模塊將目標(biāo)服務(wù)通過Restful服務(wù)模塊轉(zhuǎn)發(fā)至應(yīng)用系統(tǒng)。
可選的,當(dāng)訪問token失效時,服務(wù)總線中間件系統(tǒng)調(diào)用方法還包括:
S360:通過刷新token獲取新的訪問token。
具體地,Restful服務(wù)模塊還包括刷新單元:
刷新單元通過刷新token獲取訪問token。
刷新單元通過刷新token獲取新的訪問token時,需要判斷該刷新token和訪問token是對應(yīng)的,且刷新token是有效的,才能通過刷新token獲取新的訪問token。通過刷新token獲取的訪問token可以直接調(diào)用目標(biāo)服務(wù),而不用再次進(jìn)行認(rèn)證。
本發(fā)明提供的一種服務(wù)總線中間件系統(tǒng)及其調(diào)用方法與現(xiàn)有技術(shù)相比具有以下突出的有益效果:
1、共享接口均采用Restful風(fēng)格的基于Http或Https的接口,同時統(tǒng)一采用Json的數(shù)據(jù)傳遞方式,減少網(wǎng)絡(luò)開銷并支持與Web應(yīng)用的無縫集成
2、所有共享接口均按先認(rèn)證和服務(wù)的方式提供數(shù)據(jù),并記錄接口調(diào)用時間、調(diào)用人、調(diào)用參數(shù)等信息為審計提供數(shù)據(jù)支撐,同時由數(shù)據(jù)提供方實(shí)現(xiàn)對數(shù)據(jù)的脫敏處理。不同的應(yīng)用系統(tǒng)或消費(fèi)方可以訪問不同的接口集。
3、共享接口具有一定的抗災(zāi)能力,如在部分接口服務(wù)器宕機(jī)的情況下,仍然能夠提供相應(yīng)數(shù)據(jù)服務(wù)的能力。
4、接口支持集群和負(fù)載均衡的能力,支持高并發(fā)、高吞吐量的訪問。
專業(yè)人員應(yīng)該還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上所述的具體實(shí)施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。