當前位置:首頁 > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術》雜志
[導讀]摘 要:面向服務的架構(SOA)是一種架構風格,遵循此風格的系統(tǒng)是基于松耦合、粗粒度、自治的組件間的交互來構 建的,這類組件被稱為服務,Web也是服務的一種。本文詳細描述了 Web服務的SOA構建關鍵技術,并就其中的服務發(fā)現(xiàn)進 行舉例說明。

引言

SOA是一個體系結構概念,與具體的技術無關,Web服 務是一種實現(xiàn)方式,也可以基于其他技術來實現(xiàn)SOA,比如 OSGi (Open Services Gateway initiative))CORBA (Common Object Request Broker Architecture,公共對象請求代理體系 結構)、DCOM、RPC等。而且,Web服務不僅僅限于實現(xiàn) SOA,通過將一個方法公開為Web服務,可以實現(xiàn)過程式的 RPC。

1 SOA和Web服務

最初,Web服務被描述為一種連接技術。這種方式由于 是基于已有的HTTP協(xié)議之上,因此具有簡單、安全和無障 礙的特點。SOAP與WSDL的出現(xiàn)和應用可以說是軟件技術 史上的一個里程碑。

Web 服務之前的 CORBA、MQ、EJB、COM/COM+ 等 技術可以很好地解決在某種特定平臺或技術之上的分布式計 算問題,它們都很強大。然而,業(yè)務全球化和企業(yè)國際化導致 信息現(xiàn)代化必須面臨“不同系統(tǒng)平臺、不同組件技術和不同技 術下的遺留系統(tǒng)整合”的現(xiàn)實情況。而Web服務提供了一種 技術,即不管什么平臺、什么技術和什么開發(fā)語言,它能夠通 過WSDL技術和標準將不同平臺、不同技術和不同開發(fā)語言 下的業(yè)務服務發(fā)布出去,客戶端可以通過基于HTTP的SOAP 協(xié)議來遠程調用。由于訪問是基于HTTP,因而遠程調用可以 突破防火墻,實現(xiàn)互聯(lián)網(wǎng)級別的遠程調用。因此,目前軟件 技術已走向了“無技術”時代。所謂“無技術”時代并不是不 要任何技術,而是通過Web服務實現(xiàn)了企業(yè)級應用系統(tǒng)基于 平臺無關性、技術無關性和語言無關性的開發(fā)、整合、部署和 運行的全新時代。

SOA與Web服務的關系如圖1所示。

基于SOA的Web服務應用構建關鍵技術研究


Web服務用機器可處理的格式,以特定的Web服務描述 語言描述接口及其他系統(tǒng)與Web服務的互動,以SOAP消息 實現(xiàn)通信。事實上,可以把Web服務看做是一種至少具有以 下制約的SOA :

第一是接口必須基于互聯(lián)網(wǎng)協(xié)議,如HTTP、FTP、 SMTP ;第二是消息必須是XML格式的。

REST (Representational State Transfer,表現(xiàn)層狀態(tài)轉化) 在Web領域已經(jīng)得到了廣泛的接受,是基于SOAP和WSDL 的Web服務的更為簡單的替代方法。REST定義了一組體系架 構原則,可以根據(jù)這些原則設計以系統(tǒng)資源為中心的Web服 務,包括使用不同語言編寫的客戶端如何通過HTTP處理和 傳輸資源狀態(tài)。Web服務具體實現(xiàn)應具備以下SOA技術點: 2關鍵技術研究

2.1服務的連接與集成(Integration)

服務的主要形式是點對,點(Point-to-point)和中心輻射(總 線式)方式。點對點方式就是服務消費者與服務直接連接。每 個服務消費者必須確保與所有相連的服務接口保持一致(例如 同步或異步、SOAP或REST、服務的版本、安全性問題等)。 圖2所示是點對點服務的連接方式。

點對點方式適用于以下環(huán)境:

-服務和服務消費者的數(shù)量較小

-采用同質技術體系

中心輻射型(Hub-and-spoke)的主要方式是總線型(ESB)) 有些ESB廠商認為ESB不屬于中心輻射型,其實ESB在邏 輯拓撲上仍然屬于中心輻射型,只不過其組件可能是分布式的, 以消除性能瓶頸和單點故障(SPOF, single-point-of-failure)。 圖3所示是總線型連接方式。

圖3總線型連接方式

近年來,ESB往往被視為構建SOA的基石之一。實踐證 明,ESB是企業(yè)構建真正的SOA架構應用所必須的基礎設施。 ESB可以理解為一類產(chǎn)品,即在服務消息者和服務之間連接 和中介所有通信和接口的中間件產(chǎn)品。也可以理解為一種模式, 具有多個廠商和開源實現(xiàn)。實際應用中,一般從一個廠商或開 源實現(xiàn)開始,根據(jù)業(yè)務需要增加擴展或定制。

服務使用Web服務或其他標準或適配器連接到一個公共 的骨干背板上。ESB管理接口的相容性、服務的路(基于內容、 可用性、負載或其他規(guī)則,可能是動態(tài)決定,可能是一對多或 多對一的聚合)以及數(shù)據(jù)轉換問題(格式和業(yè)務語義)。可以 促進系統(tǒng)的松耦合。減少連接的復雜性。

ESB適用于技術上異構、變化快速和大規(guī)模系統(tǒng)如果 具體的把ESB產(chǎn)品和傳統(tǒng)EAI里面的消息總線類產(chǎn)品(如 ActiveMQ)做個比較,兩者差異就很大了,主要有三方面。第 一,ESB以SOA面向業(yè)務的哲學為基礎,所以它主要是通過 配置來建立,而不是通過編程建立;第二,ESB必須有能力 在不同的協(xié)議之間建立互通機制,包括傳統(tǒng)的消息機制(JMS) 和Web服務接口(WS);第三,除了消息(服務)代理方式外, ESB還必須為SOA服務治理提供服務的生命周期管理,而非 簡單的過濾、轉發(fā)、路由,包括服務發(fā)布、注冊、使用、推廣、 效益統(tǒng)計、升級等。

2.2日艮務發(fā)布與發(fā)現(xiàn)

服務發(fā)布(publish)指在目錄服務(directory service)中 發(fā)布和更新Web服務的信息。服務發(fā)現(xiàn)(discovery)指客戶 使用發(fā)現(xiàn)服務(discovery service)發(fā)現(xiàn)已注冊的服務。發(fā)現(xiàn) 服務是目錄服務的一種特例。包括靜態(tài)和動態(tài)兩種。服務發(fā) 布和發(fā)現(xiàn)均可以基于人工,注冊庫是自動方式的一種。

Repository (翻譯為資源倉庫或存儲庫)和Registry (注 冊中心)經(jīng)?;煊茫ǔ6贾赣脕碜苑盏囊粋€中心位置。 如果嚴格區(qū)分的話,區(qū)別在于Repository除了注冊服務及其元 數(shù)據(jù)外,還可以注冊任何其他制品;而Registry 一般僅用于 服務的定位。存儲庫比注冊中心包含的內容更為豐富,目前一 般采用存儲庫的較多,因為同時可以實現(xiàn)治理(Governance) 的一些功能。服務注冊本就屬于SOA治理(SOA governance) 的范疇。

通用描述、發(fā)現(xiàn)與集成(Universal Description,Discovery and Integration,UDDI)標準旨在為Web服務提供一個平臺 中立的注冊表。UDDI可被用作私有或公開的注冊表。然而, UDDI的術語相當晦澀和復雜,它的動態(tài)發(fā)現(xiàn)功能過于想當然, UDDI Registry的實現(xiàn)比較少。如今只有少數(shù)企業(yè)用戶在使 用UDDI,公共的注冊表就更少了。現(xiàn)實當中,除了少數(shù)幾個 商業(yè)產(chǎn)品(在那里它的復雜度用戶看不到),很少用到UDDI。 UDDI的失敗并不意味著對注冊表的需求也隨之消失,大多 數(shù)公司轉而尋求別的替代。可以使用簡單的數(shù)據(jù)庫或輕量目 錄訪問協(xié)議(Lightweight Directory Access Protocol,LDAP) 應用,甚至在Wiki上保存一個目錄。開源注冊表方案,如 MuleSource 的 Galaxy 及 WSO2 的 Registry,試圖填補這一空白。 2.3 BPM、服務編排與編配

BPM (業(yè)務流程管理)是設計、制定規(guī)則、控制、分析 操作過程的軟件,涉及人、組織、應用、文檔和其他資源。在 尋求良好的性能、對變化迅速的市場及時響應、發(fā)展軟件等方 面,SOA和BPM是天生的“伴侶” BPM工具和技術在設計 和編排SOA服務時,非常有用。目前,有如下幾種BPM標準:

BPEL-WS規(guī)范在2003年4月提 交給了 OASIS Organizationfor the Advancement of Structured Information Standards,結構化信息標準促進組織)并更名為WSBPEL(Web Services Business Process Execution Language) 規(guī) 范,2007 年 4 月發(fā)布 WSBPEL2.0 版本,除了 Microsoft, BEA、IBM、 SAP和Siebel, Sun Microsystems和甲骨文公司也相繼加入了 OASIS組織。除去政治因素,BPEL的流行還在于Web正成 為分布式系統(tǒng)架構的平臺以及SOA的雄起,SOA強調服務的 分解和解耦,而BPEL則對這些Web服務進行編制,兩者密 不可分。但BPMN到BPEL的轉換存在著先天上的缺陷,原 因是BPMN是基于圖的,而BPEL是基于塊的,BPEL是一 個結構化(塊[Block])和非結構化(控制鏈和事件)的混合體。 這個缺陷導致有些BPMN建模的流程無法映射到BPEL,兩

者的雙向工程更是存在問題。這個缺陷成為人們反復詬病的對 象。許多支持BPEL的產(chǎn)品為了解決這一問題,不得不在用戶 建模時做出種種限制,讓用戶繪制不出無法轉換的模型。

BPMN2.0正式版本于2011年1月3日發(fā)布。BPMN2.0 正式將自己更名為 Business Process Model And Notation (業(yè)務 流程模型和符號),相比BPMN1.X,最重要的變化在于其定 義了流程的元模型和執(zhí)行語義,即它自己解決了存儲、交換 和執(zhí)行的問題,BPMN由單純的業(yè)務建模重新回歸了它的本 源,即作為一個對業(yè)務人員友好的標準流程執(zhí)行語言的圖形 化前端。BPMN2.0 一出手,競爭就結束了,XPDL、BPEL和 BPDM各自準備回家釣魚。看起來勝利者似乎是BPMN,但 看看BPMN2.0的領導者,就會發(fā)現(xiàn)最后的勝利者還是IBM, Oracle和SAP這些大廠商們,他們提交的草案明確要賦予 BPMN2.0以執(zhí)行語義,這迫使BPDM團隊撤回了其提交,并 將他們的提議與BPDM團隊想法合并,這就是BPMN2.0最 后內容的由來。

BPMN的目標是期望通過一套統(tǒng)一的建模、執(zhí)行模型填 起業(yè)務人員與開發(fā)人員之間的那道鴻溝

服務編排(choreography):在編排的業(yè)務流程中,流程 的每個節(jié)點都自己決定接下來怎么往前走。舉例來說,每個節(jié) 點可能都在自己的虛擬機里運行,從某個內向(in-port)的隊 列接收消息,執(zhí)行處理,然后決定往哪個向外(out-port)的 隊列發(fā)送消息。從某種意義上來說,節(jié)點并不知道自己在更大 的流程中扮演什么樣的角色。在編排的服務中,并沒有“流程 實例”的概念,而是采用存在于流程節(jié)點內部某處的消息。

服務編配(orchestration):編配的業(yè)務流程是集中管理的, 通常還是在單個虛擬機內。拿BPEL來說,每一個流程啟動, 都會創(chuàng)建這個流程的“實例”,交給BPEL引擎管理。如果是 長時間的流程,該實例則有可能被持久放在數(shù)據(jù)庫(這個處理 過程叫做“脫水”)。

2.4服務安全

對Web服務的威脅涉及網(wǎng)絡基礎設施、應用和托管系統(tǒng)。 要使Web服務安全,需要一組基于XML的安全機制來解決 有關消息層次的安全性、認證、基于角色的接入控制、分布安 全策略的執(zhí)行等。

Web服務需要點到點還是端到端的安全機制,決定于威 脅的程度和面臨的安全風險。“端到端”是指從最初的請求者 到最終的接收者,傳統(tǒng)的面向連接的點到點安全機制不能滿足 Web服務的終端到終端的安全需求。但是,安全性需要在風 險和對抗措施的成本之間進行折中,如果風險可以容忍,那 么點到點傳輸層的安全機制也是可用的,只要它能夠提供足夠 的對抗能力。

傳統(tǒng)的網(wǎng)絡安全機制,如傳輸層的SSL和TLS、VPN、 IPSec、S/MIME等,都可以用于Web安全保護,但它們都是 點到點的安全技術,對端到端的安全性是不夠的。

現(xiàn)在,Web服務的應用拓撲包括大量移動設備的組合、 網(wǎng)關、代理、負載均衡器、外包數(shù)據(jù)中心等,并且是全球分布、 動態(tài)配置的系統(tǒng)。所有這些系統(tǒng)依靠消息處理中介的能力去 轉發(fā)消息。中介設施的數(shù)據(jù)接收和轉發(fā)超越傳輸層,數(shù)據(jù)的 完整性和安全性信息可能喪失。這一情況迫使任何消息處理 器要信任前一個中介設施的安全性評估,并且完全相信它們 對消息內容的處理。一個全面的Web服務安全性體系結構所 需要的是端到端的安全性。成功的Web服務安全性解決方案 應當同時成功地對傳輸層和應用層實現(xiàn)安全保護,提供全面的 安全性能力。

信息系統(tǒng)通常采用的安全性保護技術,可以用于Web服 務,包括以下方面:

認證。認證是對服務請求者和提供者身份的檢驗, 有時候還需要對雙方進行互相認證??捎玫募夹g包括:口令、 證書、LDAP、Kerberos、PKI ;

授權??刂普埱笳呓尤胭Y源,并規(guī)定請求者的接入 權利。通常采用最小接入權限的策略;

數(shù)據(jù)完整性和機密性。一般使用數(shù)據(jù)加密和簽名技術;

交易正確性;

不可抵賴;

端到端的消息完整性和機密性;

安全的消息傳輸。保證信息安全性、消息的加密和 簽名技術;

審計蹤跡。可以通過對資源的監(jiān)測和守護而得到。

安全策略的分布執(zhí)行;

跨領域的身份標識。支持不同領域身份標識的映射;

安全的發(fā)現(xiàn)機制;

發(fā)現(xiàn)與信任。

2 Web服務架構示例

以服務發(fā)現(xiàn)為例,完成服務發(fā)布。下面是SOAP服務發(fā) 布使用的詳細過程。

發(fā)布通過WSOL ESB完成,目前發(fā)布SOAP服務到 ESB,必須提供正確可用的WSDL文件。提供方式有兩種: 第一是給管理員提供可訪問WSDL的URL ;第二是把WSDL 以純文本文件發(fā)送給管理員。

發(fā)送URL方式可以訪問WSDL所在URL的協(xié)議,必 須是 HTTP/HTTPS 協(xié)議。例如:http : //yczy.zys.zbb.hj/wiki/ ws.php?wsdl,這樣,管理員可以在ESB上導入此URL所包含 的WSDL內容,從而創(chuàng)建相應的SOAP Web Service。

發(fā)送WSDL文件,發(fā)送的WSDL文件必須是純文本文件, 內容為XML。這樣才能為系統(tǒng)進行解析處理。下面是WSDL 的示例作為參考,主要代碼如下:

<?xml version=v1.0 v?>

<wsdl : definitions name= ” WikiService ” targetNamespace=” http : //wiki.hyperats.com/”

xmlns : ns1=” http : //schemas.xmlsoap.org/soap/ http”xmlns : soap=” http : //schemas.xmlsoap.

org/wsdl/soap/‘‘ xmlns : tns=” http : //wiki.hyperats. com/”xmlns : wsdl=” http : ^schemas.xmlsoap.

org/wsdl/” xmlns : xsd=” http : //www.w3.org/2001/ XMLSchema” >

<!-- Messages -->

<wsdl: message name=” helloResponse” >

<wsdl : part element=” tns : helloResponse” name=” parametersv>

</wsdl part>

</wsdl message>

<wsdl: message name=” hello” >

< w s d l : part el e m e n t = ” tns : hello ” name=” parametersv>

</wsdl part>

</wsdl message>

<!--省略-->

</wsdl message>

<!-- Operations -->

<wsdl: portType name="WikiWs">

<wsdl: operation name="hello">

<wsdl : input message= "tns : hello" name="hello">

</wsdl input>

<wsdl : output message="tns : helloResponse" name="helloResponse"〉

</wsdl output>

</wsdl operation>

<!--省略-->

</wsdl portType>

<!-- Protocol binding -->

<wsdl : binding name="WikiServiceSoapBinding"

type="tns : WikiWs">

<soap : binding style="document" transport="http : // schemas.xmlsoap.org/soap/http"></soap binding>

<wsdl: operation name=” hello” >

<soap : operation soapAction=””

style=” documentv></soap : operation>

<wsdl: input name=” hello” >

<soap : body use=” literalv></

soap body>

</wsdl input>

<wsdl: output name=” helloResponse” >

<soap : body use=” literalv></

soap body>

</wsdl output>

</wsdl operation>

<!--省略-->

</wsdl binding>

<!-- Service endpoint -->

<wsdl: service name="WikiService">

<wsdl: port binding="tns : WikiServiceSoapBinding" name="WikiPort">

<soap : address location="http :

〃192.168.12.44/ws.php"></soap : address>

</wsdl port>

</wsdl service>

</wsdl definitions>

這樣就完成了服務發(fā)布工作。

3結語

通過構建面向服務的應用支撐環(huán)境,各級保障部門、各 個業(yè)務系統(tǒng)的信息服務,都能夠通過服務的包裝,成為隨取即 用的IT資產(chǎn),以服務的形式對外發(fā)布,以松耦合原則實現(xiàn)共享, 并可將各種服務快速整合,開發(fā)出組合式應用,達到“整合即 開發(fā)”的目的。

20211221_61c1e905b8896__基于SOA的Web服務應用構建關鍵技術研究

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉