999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

服務(wù)發(fā)布與發(fā)現(xiàn)在面向服務(wù)的架構(gòu)中的研究與應(yīng)用

2018-03-31 12:22:42汪潤方英蘭韓兵
電腦知識與技術(shù) 2018年6期
關(guān)鍵詞:服務(wù)

汪潤 方英蘭 韓兵

摘要:SOA是一種服務(wù)導向的可重用組件模型。隨著SOA應(yīng)用服務(wù)數(shù)量、服務(wù)之間依賴關(guān)系復雜度的增加,服務(wù)發(fā)布與發(fā)現(xiàn)作為實現(xiàn)SOA架構(gòu)的一項重要基礎(chǔ)設(shè)施,如何管理現(xiàn)存服務(wù)變得越來越困難。針對集中式服務(wù)注冊中心存在單點失效的不足,通過構(gòu)建多節(jié)點的服務(wù)注冊中心避免單點失效導致其對外提供的服務(wù)發(fā)布、發(fā)現(xiàn)、查詢等接口不可用的缺陷。同時多個節(jié)點間基于消息與通知的方式,采用SSL建立安全的連接確保多個節(jié)點之間服務(wù)數(shù)據(jù)的一致性。針對Web服務(wù)之間內(nèi)生點對點調(diào)用存在硬編碼的不足,通過消息攔截分發(fā)機制有效緩解該問題。本文擬在上述服務(wù)注冊中心的基礎(chǔ)上,提出一種基于SOA的軟件可重用開發(fā)模型,并在實際生產(chǎn)系統(tǒng)用戶管理系統(tǒng)設(shè)計,實現(xiàn)并驗證該模型的有效性。

關(guān)鍵詞:UDDI;WSDL;SOA;SSL;服務(wù)

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)06-0212-03

1引言

自從1996年SOA(Service-Oriented Architecture,面向服務(wù)架構(gòu))的概念被Gartner提出以后,近二十年SOA的發(fā)展也經(jīng)歷了起起伏伏。近些年隨著Web Service的興起,使得SOA登上了第一次的巔峰。面向服務(wù)體系架構(gòu)是繼面向?qū)ο蟆⒒跇?gòu)件開發(fā)之后的一種新型軟件開發(fā)、部署和集成模式,為軟件開發(fā)提供了靈活的設(shè)計和開發(fā)方案口。在SOA的應(yīng)用中,幾乎所有對Web Service的介紹都會引入三種角色:服務(wù)供應(yīng)者,服務(wù)消費者以及服務(wù)注冊中心。Web Service所具備的平臺獨立性,松耦合,自包含,服務(wù)可發(fā)現(xiàn)性等等可以很好地支持SOA架構(gòu)思想。其提供了一系列接口通過標準的XML格式消息在In-ternet上進行發(fā)布,查找與訪問。

服務(wù)提供者發(fā)布可通過網(wǎng)絡(luò)訪問的服務(wù),服務(wù)消費者從本地或者服務(wù)注冊中心查找服務(wù)描述信息完成服務(wù)綁定。UDDI定義了服務(wù)發(fā)布與發(fā)現(xiàn)的標準,對服務(wù)提供者與服務(wù)消費者提供了相應(yīng)的發(fā)布與發(fā)現(xiàn)API(Application Programming Inter-face)。通過UDDI,SOA系統(tǒng)可以實現(xiàn)服務(wù)的可發(fā)現(xiàn)性,可重用,互操作,位置透明和服務(wù)之間的松耦合。對服務(wù)提供者,服務(wù)消費者而言,UDDI扮演著十分重要的“橋梁”角色。

2服務(wù)發(fā)布與發(fā)現(xiàn)模型研究現(xiàn)狀

在傳統(tǒng)的Web服務(wù)發(fā)布與發(fā)現(xiàn)體系結(jié)構(gòu)中,根據(jù)實現(xiàn)方式的不同,服務(wù)發(fā)布與發(fā)現(xiàn)模型可以分為集中式、分布式與混合式。

2.1集中式服務(wù)發(fā)布與發(fā)現(xiàn)模型

集中式服務(wù)發(fā)布與發(fā)現(xiàn)模型以傳統(tǒng)的UDDI為代表。該模型使用單一節(jié)點存儲服務(wù)提供者發(fā)布的服務(wù),服務(wù)信息將會持久化到單一節(jié)點上。該模型通過解析WSDL與UDDI的映射關(guān)系,生成核心數(shù)據(jù)模型數(shù)據(jù),如Business Entity,Business Ser-vice等等。服務(wù)消費者根據(jù)查詢結(jié)果中服務(wù)描述信息構(gòu)建本地客戶端服務(wù)代理,進行服務(wù)調(diào)用。文獻5探討了一種基于集中式UDDI的集成框架,并借助工程實踐驗證上述框架的實用性與有效性。

2.2分布式服務(wù)發(fā)布與發(fā)現(xiàn)模型

面對高并發(fā)服務(wù)發(fā)布與發(fā)現(xiàn)應(yīng)用場景,集中式服務(wù)發(fā)布與發(fā)現(xiàn)模型存在性能瓶頸與單點失效的問題。部分學者基于P2P對等網(wǎng)絡(luò)構(gòu)建了以分布式結(jié)構(gòu)為特點的服務(wù)發(fā)布與發(fā)現(xiàn)模型,適用于移動網(wǎng)絡(luò)的服務(wù)發(fā)布與發(fā)現(xiàn)。該模型無中心節(jié)點,每個peer既可能是服務(wù)供應(yīng)者也可能是服務(wù)消費者。服務(wù)請求以廣播的形式發(fā)送到P2P網(wǎng)絡(luò)中,服務(wù)提供者將滿足需求的服務(wù)返回給服務(wù)請求者。由于采用廣播的通信機制進行服務(wù)發(fā)現(xiàn),所以通信開銷較大。文獻2引入對等架構(gòu),設(shè)計并實現(xiàn)基于結(jié)構(gòu)化對等協(xié)議的Web服務(wù)注冊系統(tǒng)。

2.3混合式服務(wù)發(fā)布與發(fā)現(xiàn)模型

混合式服務(wù)發(fā)布與發(fā)現(xiàn)模型是在集中式與分布式的基礎(chǔ)上,將多個節(jié)點組合成一個組,盡管降低了全局服務(wù)查詢的幾率,減少了節(jié)點之間的通訊開銷。但是隨著服務(wù)數(shù)量的增加,其服務(wù)發(fā)現(xiàn)算法異常復雜,并需要考慮如何分組以及分組中的中心節(jié)點問題,不利于系統(tǒng)的擴展,降低了系統(tǒng)的靈活性。

本文結(jié)合上述三種服務(wù)發(fā)布與發(fā)現(xiàn)模型的優(yōu)缺點,提出一種方案。針對集中式服務(wù)注冊中心存在單點失效的不足,通過構(gòu)建多節(jié)點服務(wù)注冊中心避免單點失效,并且多個服務(wù)注冊中心采用消息與通知的方式,基于雙向SSL安全交換不同節(jié)點之間存在差異的數(shù)據(jù),保證不同節(jié)點之間服務(wù)數(shù)據(jù)的一致性。

3分布式UDDI系統(tǒng)模型設(shè)計

3.1體系結(jié)構(gòu)設(shè)計

分布式UDDI遵循UDDIv3版本規(guī)范,包含常用inquiry,publication等常用接口服務(wù)提供者通過服務(wù)注冊中心客戶端訪問服務(wù)注冊中心,通過SOAP消息客戶端與服務(wù)注冊中心交互,將服務(wù)描述信息傳遞給publication接口。服務(wù)請求者通過客戶端提交服務(wù)查詢相關(guān)參數(shù),服務(wù)器端inquiry接口根據(jù)客戶端傳遞過來的SOAP消息并解析該消息,按照關(guān)鍵詞查詢相關(guān)服務(wù)。

服務(wù)注冊中心整體上劃分為三個部分。第一部分提供對外暴露的接口信息,如服務(wù)發(fā)布接口,服務(wù)查詢接口,服務(wù)復制接口等等。第二部分提供對象關(guān)系映射,將服務(wù)提供者發(fā)布的服務(wù)持久化到關(guān)系數(shù)據(jù)庫或者服務(wù)消費者提供的關(guān)鍵檢索數(shù)據(jù)庫,查找符合要求的服務(wù)描述信息。第三部分為關(guān)系數(shù)據(jù)庫。每個服務(wù)注冊中心包含唯一的標識碼,類似主鍵;將其與其他的服務(wù)注冊中心區(qū)分開。多個服務(wù)注冊中心需要保證多個服務(wù)注冊中心關(guān)系數(shù)據(jù)庫中所保存服務(wù)數(shù)據(jù)的一致性。

3.2數(shù)據(jù)一致性的考慮

每一個服務(wù)注冊中心維護著本地數(shù)據(jù)庫中存放的服務(wù)數(shù)據(jù),在Business Entity,Business Service等數(shù)據(jù)模型產(chǎn)生改變的時候,源服務(wù)注冊中心(服務(wù)數(shù)據(jù)發(fā)生改變的源頭服務(wù)注冊中心)將會通知與其有關(guān)聯(lián)的所有其他節(jié)點。其他收到消息通知的節(jié)點從源服務(wù)注冊中心節(jié)點拉取改變的數(shù)據(jù),并將改變的數(shù)據(jù)持久化到本地數(shù)據(jù)庫。此種模式下,所有節(jié)點之間均會相互關(guān)聯(lián),從邏輯上來看,節(jié)點之間構(gòu)成了無向圖這種數(shù)據(jù)結(jié)構(gòu)。

服務(wù)提供者在獲取authToken的基礎(chǔ)上,將服務(wù)描述信息發(fā)布到服務(wù)注冊中心。對服務(wù)注冊中心而言,其保存數(shù)據(jù)的有效l生與正確性是十分重要的。Replication接口為服務(wù)注冊中心之間交換數(shù)據(jù)提供了支持。服務(wù)注冊中心之間采用雙向SSL認證,保證雙發(fā)交換數(shù)據(jù)之前知道對方的身份,確保對方在自己的信任庫中。

4服務(wù)發(fā)布與發(fā)現(xiàn)模型在用戶管理系統(tǒng)中的應(yīng)用

本文所述的用戶管理系統(tǒng)是企業(yè)在面對日常業(yè)務(wù)操作,實現(xiàn)信息化所構(gòu)建的后臺管理系統(tǒng)。該系統(tǒng)包含基礎(chǔ)的賬號管理,權(quán)限訪問控制等常見功能。

本文擬在上述背景下,基于IBM SOMA(Service-oriented Modelingand Architecture)對用戶管理系統(tǒng)中的菜單模塊,角色模塊,權(quán)限模塊以及通用的支付模塊進行服務(wù)建模;并以Web Service的形式對外暴露可訪問的接口;利用Apache CXF框架組織上述服務(wù)(由上述服務(wù)構(gòu)建的系統(tǒng)定義為基礎(chǔ)服務(wù)系統(tǒng)SRS)。同時,將上述對外發(fā)布的服務(wù)發(fā)布到改進的分布式服務(wù)注冊中心Apache JUDDI中。最后實現(xiàn)剝離上述模塊的用戶管理系統(tǒng)與上述服務(wù)進行交互,實現(xiàn)相關(guān)的業(yè)務(wù)邏輯,同時提高程序的可維護性,可擴展性,為未來開發(fā)不同產(chǎn)品時提供信息集成和共享能力。

4.1系統(tǒng)交互模型

整個交互模型由三種角色構(gòu)成。基于JUDDI的分布式服務(wù)注冊中心、用戶管理系統(tǒng)與基礎(chǔ)服務(wù)系統(tǒng)。JUDDI是基于UDDIv3規(guī)范的開源服務(wù)注冊中心,用于服務(wù)發(fā)布與發(fā)現(xiàn)。用戶管理系統(tǒng)是常見的企業(yè)后臺管理系統(tǒng)。基礎(chǔ)服務(wù)系統(tǒng)基于權(quán)限服務(wù),菜單服務(wù),用戶管理服務(wù),支付服務(wù);為其他應(yīng)用系統(tǒng)提供基礎(chǔ)服務(wù)的系統(tǒng)。使用JUDDI將二者集成,基礎(chǔ)服務(wù)系統(tǒng)將服務(wù)發(fā)布到JUDDI,用戶管理系統(tǒng)搜索相應(yīng)服務(wù)并構(gòu)建客戶端服務(wù)代理調(diào)用服務(wù)完成相應(yīng)的后臺業(yè)務(wù)邏輯。

4.2服務(wù)發(fā)布與查詢

4.2.1服務(wù)發(fā)布

服務(wù)建模的目標是建立企業(yè)的服務(wù)模型,該服務(wù)模型作為業(yè)務(wù)與IT之間的橋梁是首先SOA對業(yè)務(wù)隨需應(yīng)變靈活性支持的關(guān)鍵因素。本文基于SOMA進行服務(wù)建模。首先抽取用戶管理系統(tǒng)中的菜單模塊,角色模塊,權(quán)限模塊以及支付模塊。在此基礎(chǔ)之上,確定各個組件對外暴露決策以及接口的參數(shù)規(guī)范。最后采用Web Service的形式,使用Apache CXF框架組織服務(wù),并對外發(fā)布,供服務(wù)消費者請求與訪問。

在服務(wù)注冊中心持久化Business Entity之后,將會觸發(fā)消息產(chǎn)生并通知其他服務(wù)注冊中心節(jié)點,當前有數(shù)據(jù)更新。其他服務(wù)注冊中心接收到該通知之后,會根據(jù)通知中的參數(shù)主動請求源服務(wù)注冊中心節(jié)點,拉取更新的數(shù)據(jù),并持久化到本地。

4.2.2服務(wù)查詢

服務(wù)請求在服務(wù)注冊中心客戶端輸入服務(wù)名稱,分類等信息查詢,服務(wù)注冊中心根據(jù)關(guān)鍵詞匹配服務(wù)描述信息并返回結(jié)果。

4.3服務(wù)調(diào)用

用戶管理系統(tǒng)通過調(diào)用基礎(chǔ)服務(wù)系統(tǒng)來實現(xiàn)相應(yīng)的業(yè)務(wù)邏輯。具體的步驟如下。(1)用戶登錄系統(tǒng)時請求基礎(chǔ)服務(wù)系統(tǒng)提供的用戶管理服務(wù),驗證用戶名密碼是否正確,并返回驗證結(jié)果。(2)在用戶通過驗證的基礎(chǔ)上,用戶管理系統(tǒng)請求基礎(chǔ)服務(wù)系統(tǒng)角色服務(wù)獲取用戶所屬的角色以及該角色所擁有的權(quán)限(菜單以及按鈕)信息;(3)進人后臺主界面,顯示菜單、按鈕等資源。二者之間的交互模型如圖1所示。

圖中展示了用戶管理系統(tǒng)調(diào)用基礎(chǔ)服務(wù)系統(tǒng)服務(wù)所做的特殊處理,主要是服務(wù)代理層與POJO模型對象轉(zhuǎn)換層;服務(wù)代理層在SOAP請求消息中加入當前客戶端的信息,為服務(wù)調(diào)用提供憑證。POJO模型轉(zhuǎn)換層處理服務(wù)調(diào)用的結(jié)果,將服務(wù)調(diào)用的結(jié)果轉(zhuǎn)化為適用于本系統(tǒng)簡單對象或者將本系統(tǒng)的簡單對象處理為服務(wù)代理層適用的請求參數(shù)。

5實驗與分析

5.1實驗環(huán)境

該實驗在1MB/S以太網(wǎng)的網(wǎng)絡(luò)環(huán)境中進行測試,包括三臺阿里云服務(wù)器(Windows Server 2012、Intel雙核2.60GHz處理器、4GB內(nèi)存),軟件環(huán)境有Jdk1.7的Java平臺,Mysq15.5數(shù)據(jù)庫,Apache Tomcat 7應(yīng)用服務(wù)器,Apache Maven 3.5.0項目管理工具。JUDDI分布在兩臺獨立的阿里云服務(wù)器上,二者建立雙向的SSL連接,為服務(wù)數(shù)據(jù)的復制提供支持。使用SOAPUI對JUDDI中的服務(wù)是否可用進行測試。同時記錄用戶管理系統(tǒng)在調(diào)用服務(wù)時產(chǎn)生的數(shù)據(jù)包括當前調(diào)用的客戶端,調(diào)用時間等等。下面對比分析修改前方法調(diào)用與修改后服務(wù)調(diào)用在性能方面的差異。下面以獲取第三方支付憑證以及子菜單列表為例分析。

5.2實驗結(jié)果

5.2.1獲取支付憑證耗時對比分析

圖2展示了在使用支付服務(wù)時,調(diào)用第三方支付獲取支付憑證用戶管理系統(tǒng)通過方法調(diào)用與服務(wù)調(diào)用所消耗的時間,耗時差距平均基本維持在50ms以內(nèi)。

5.2.2獲取菜單列表耗時對比分析

圖3展示了在使用菜單服務(wù)時,根據(jù)權(quán)限獲取當前用戶所擁有的一級菜單時;獲取用戶一級菜單下的所有二級菜單所消耗的時間,耗時差距平均維持在1ms以內(nèi)。

在調(diào)用基礎(chǔ)服務(wù)系統(tǒng)提供的服務(wù)時,若客戶端提供的參數(shù)含義不符合服務(wù)要求的參數(shù)定義,服務(wù)調(diào)用將會出現(xiàn)異常,并不會返回預期的結(jié)果;基礎(chǔ)服務(wù)系統(tǒng)在對外暴露接口調(diào)用規(guī)范的同時會對服務(wù)的調(diào)用進行監(jiān)控,將服務(wù)調(diào)用的客戶端,服務(wù)調(diào)用所消耗的時間,當前調(diào)用的是哪個方式形成結(jié)構(gòu)化數(shù)據(jù)持久化到數(shù)據(jù)庫;供后期進行數(shù)據(jù)分析。

在企業(yè)開發(fā)不同產(chǎn)品的過程中,往往會出現(xiàn)不同產(chǎn)品包含相似功能模塊的場景。從面向組件到面向服務(wù),將各個產(chǎn)品功能類似的模塊抽象成服務(wù),單獨維護與運營,提高相似模塊的復用性。服務(wù)組件部署于局域網(wǎng)之中,網(wǎng)絡(luò)開銷比較小,以這種開發(fā)方式有利于規(guī)范軟件開發(fā)過程,復用軟件構(gòu)件,降低軟件開發(fā)風險以及軟件維護成本。

6總結(jié)

本文在分析服務(wù)發(fā)布與發(fā)現(xiàn)模型的基礎(chǔ)上,設(shè)計并實現(xiàn)了基于UDDIv3規(guī)范的多節(jié)點Web服務(wù)注冊系統(tǒng)。通過Apache JUDDI構(gòu)建多服務(wù)注冊中心,用于服務(wù)發(fā)布與發(fā)現(xiàn);采用消息與通知的方式維護多個服務(wù)注冊中心服務(wù)數(shù)據(jù)的一致性。結(jié)合實際生產(chǎn)系統(tǒng)用戶管理管理,抽取該系統(tǒng)中通用的菜單,角色,權(quán)限,支付模塊;并采用SOMA方法建模為服務(wù),并發(fā)布到服務(wù)注冊中心。多節(jié)點的服務(wù)注冊中心能夠避免單節(jié)點服務(wù)注冊中心失效而導致其對外提供API不可用的問題。基于消息分發(fā)模式能夠改善傳統(tǒng)Web Service點對點調(diào)用的缺點。文章對服務(wù)發(fā)布與發(fā)現(xiàn)的幾種模型進行了深入研究,對基于SOA架構(gòu)的信息系統(tǒng)中服務(wù)發(fā)布與發(fā)現(xiàn)的應(yīng)用與實現(xiàn)技術(shù)進行了分析與研究,在改進的服務(wù)注冊中心的基礎(chǔ)上提出了一種軟件可重用開發(fā)模型,并在相關(guān)項目中進行了驗證與實現(xiàn)。

猜你喜歡
服務(wù)
自助取卡服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
高等教育為誰服務(wù):演變與啟示
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 91精品啪在线观看国产| 色综合五月| 精品久久综合1区2区3区激情| 99视频全部免费| 国产主播喷水| 97视频免费看| 国产乱子伦精品视频| 92午夜福利影院一区二区三区| 国产精品乱偷免费视频| 日韩精品成人网页视频在线| 国产又黄又硬又粗| 欧美精品伊人久久| 99999久久久久久亚洲| 亚洲精品无码在线播放网站| 国产精品久久久久婷婷五月| 欧美a在线看| 欧美日韩国产高清一区二区三区| 免费播放毛片| 在线五月婷婷| 在线观看免费国产| 凹凸国产熟女精品视频| 四虎精品免费久久| 波多野结衣的av一区二区三区| 国产成a人片在线播放| 国产精品爽爽va在线无码观看 | 在线观看亚洲精品福利片| 精品福利网| 亚洲国产精品日韩欧美一区| 亚洲AV无码不卡无码| 不卡无码h在线观看| 欧美 亚洲 日韩 国产| 国产97色在线| 亚洲人成网址| 69视频国产| 伊人福利视频| 国产正在播放| 国产成人永久免费视频| 无码人中文字幕| 日韩天堂视频| 国产在线视频导航| 日韩美毛片| 精品福利视频网| 黄色免费在线网址| 精品99在线观看| 国产午夜一级毛片| 手机在线看片不卡中文字幕| 五月婷婷亚洲综合| 欧美曰批视频免费播放免费| 久久无码av三级| 国产大片喷水在线在线视频| 久久黄色小视频| 亚洲国内精品自在自线官| 日韩 欧美 国产 精品 综合| 欧美成人一级| 亚洲动漫h| 久久免费视频播放| 亚洲区一区| 99精品福利视频| 日韩在线网址| 九月婷婷亚洲综合在线| 亚洲视频免| 女同久久精品国产99国| 国产福利一区在线| 午夜爽爽视频| 欧美A级V片在线观看| 青草视频免费在线观看| 欧美三级视频网站| 亚洲无码熟妇人妻AV在线| 久久香蕉国产线看观看精品蕉| 婷婷亚洲综合五月天在线| 日韩A∨精品日韩精品无码| 国产精品理论片| 国产在线八区| 国产美女精品一区二区| 亚洲无码电影| 国产成人亚洲日韩欧美电影| 国产天天色| 欧美午夜在线观看| 欧亚日韩Av| 视频在线观看一区二区| 日本不卡视频在线| 日本妇乱子伦视频|