您好,登錄后才能下訂單哦!
基于REST和JSON的SOA軟件框架CDIF是怎樣的,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
通用設(shè)備互聯(lián)框架(CDIF)是一個具備中美知識產(chǎn)權(quán)保護的,基于web的連接框架,目前有部分開源實現(xiàn)存放在: Common device interconnect framework。CDIF是世界上第一種基于REST和JSON的SOA軟件框架,提供了與基于XML的WSDL語言和SOAP協(xié)議同等抽象能力、但簡潔得多的基于JSON的實現(xiàn),也非常適合用于描述微服務(wù)架構(gòu)的API接口。CDIF提供了完整的服務(wù)注冊和發(fā)現(xiàn)能力,并為所有的web服務(wù)和物聯(lián)網(wǎng)設(shè)備,包括REST、SOAP類型的服務(wù),各種協(xié)議的物聯(lián)網(wǎng)設(shè)備創(chuàng)建出一個簡潔、統(tǒng)一的JSON模型;并在此基礎(chǔ)上提供了其REST接口上的,基于JSON文本的統(tǒng)一RPC調(diào)用接口,方便了各種前端應(yīng)用開發(fā)出基于該統(tǒng)一模型的API調(diào)用代碼。
CDIF的總體架構(gòu)如下圖所示:
通過框架提供的設(shè)備抽象層,CDIF將來自不同廠商的各種類型的REST API,或者物聯(lián)網(wǎng)設(shè)備封裝成各種虛擬設(shè)備,并對外提供統(tǒng)一的虛擬設(shè)備訪問REST接口供客戶端使用。
CDIF框架代碼用node.js書寫,因此底層的虛擬設(shè)備驅(qū)動全部使用node.js的npm包進行管理。每個設(shè)備驅(qū)動可包含一到多個虛擬設(shè)備,由驅(qū)動被加載時上報給CDIF框架。被CDIF管理的虛擬設(shè)備及其API內(nèi)部實現(xiàn)通過設(shè)備抽象層被封裝在驅(qū)動中,這些驅(qū)動的內(nèi)部實現(xiàn)可以使用node.js豐富的生態(tài)中任意一個優(yōu)秀的第三方包幫助實現(xiàn),比如request, crypto, moment等,因此非常容易開發(fā)和管理。
CDIF項目由UPnP標準發(fā)展而來。在支持各類云服務(wù)的API接口同時,CDIF也為所有的物聯(lián)網(wǎng)設(shè)備了一個統(tǒng)一的模型,并且可以方便地幫助客戶端創(chuàng)建出物聯(lián)網(wǎng)設(shè)備和網(wǎng)絡(luò)服務(wù)聯(lián)動的各種應(yīng)用場景。
由于其簡潔的抽象能力,基于嚴格契約的松耦合架構(gòu),狀態(tài)無關(guān)的可互換服務(wù)定義等優(yōu)點,在WSDL和SOAP基礎(chǔ)上打造的SOA技術(shù)體系至今仍然廣泛應(yīng)用于包括銀行、交易所、航空公司、電信、醫(yī)院、電商、支付平臺等各行各業(yè)的大中型企業(yè)中。據(jù)MuleSoft估算,目前世界上每年花費在與SOA技術(shù)相關(guān)的企業(yè)IT基礎(chǔ)設(shè)施建設(shè)和系統(tǒng)集成工作有5000億美元之多。但由于XML格式用于數(shù)據(jù)交換過于復(fù)雜,以XML為基礎(chǔ)的許多優(yōu)秀的WS-*標準都逐漸走向了沒落。
隨著移動時代的發(fā)展,以REST和JSON為基礎(chǔ)打造的各種web服務(wù)、微服務(wù)架構(gòu)逐漸成為主流?;贘avaScript開發(fā)的應(yīng)用,如各種web app等都以REST和JSON作為連接的基礎(chǔ)。新興IT企業(yè)也更傾向于使用REST API,而不是SOAP來連接企業(yè)內(nèi)部的各種基礎(chǔ)業(yè)務(wù)組件。但是,目前企業(yè)內(nèi)外使用的各種REST API基本都需要依賴于文檔手動管理,在API接口變化時,部署和升級新的API版本非常不便。CDIF為REST API建立的通用模型幫助填補了REST API與傳統(tǒng)SOA技術(shù)的差距,并為傳統(tǒng)SOA技術(shù)和云服務(wù)的結(jié)合與發(fā)展提供了全新的方向?;贑DIF的SOA技術(shù)可以方便地創(chuàng)建出許多全新類型的應(yīng)用,比如REST服務(wù)流應(yīng)用,web服務(wù)和物聯(lián)網(wǎng)設(shè)備的無縫結(jié)合等等,這些都是現(xiàn)有技術(shù)無法輕易實現(xiàn)的場景。
與WSDL或Swagger等API modelling language不同,使用CDIF提供的JSON模型與RPC接口的客戶端app不需要對被CDIF管理的REST API做離線的客戶端代碼生成和手動集成,便可將這些REST API接口及其變化通過schema form等組件動態(tài)地反映在客戶端UI上供用戶使用,省卻了客戶端對REST API的集成和API接口變化帶來的繁瑣的手動客戶端升級工作。被CDIF管理的REST API可以將新增加的,或者變化后的API自動展現(xiàn)在app UI上供用戶消費使用,簡化了app開發(fā)人員的工作,同時可做到實時推廣廠商新增API所展現(xiàn)的新業(yè)務(wù)能力。
如果客戶端app不希望使用這些高級特性,CDIF提供的REST接口也可以向下兼容目前流行的手動集成方法。用戶參考CDIF為REST API創(chuàng)建的通用模型便可方便地開發(fā)出基于該模型的API調(diào)用代碼。
由于做到了對API的訪問地址和方法完全透明,CDIF也可以較好地幫助企業(yè)解決REST API的變化管理這一難題。CDIF支持驅(qū)動代碼的熱切換,驅(qū)動中的API訪問地址或方法發(fā)生變化時只需要安裝新的驅(qū)動包到CDIF框架上,變化即可立即生效。當(dāng)API參數(shù)或結(jié)果類型發(fā)生變化時,上層應(yīng)用可以自動發(fā)現(xiàn)這些變化。這些特性都可以更好地幫助企業(yè)建設(shè)全自動化的運維環(huán)境。
更進一步,CDIF還可以為廠商的REST API提供獨有的雙向數(shù)據(jù)通道能力,廠商只需要調(diào)整其REST API對CDIF框架提供的統(tǒng)一JSON模型上一個Boolean取值便可開放該能力。此時,廠商云服務(wù)上的各種數(shù)據(jù)更新便可以實時地通過WebSocket,APN等通道被CDIF的消息訂閱者獲取,而不需要由用戶主動發(fā)起API調(diào)用更新數(shù)據(jù),產(chǎn)生額外的API調(diào)用開銷。該特性為目前所有基于API調(diào)用的單向云服務(wù)數(shù)據(jù)通道提供了更強大的能力。
關(guān)于基于REST和JSON的SOA軟件框架CDIF是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。