CDIF:基於JSON的SOA軟體架構

來源:互聯網
上載者:User

標籤:動態   約束   title   height   調用介面   連網   asc   自動化   web app   

通用裝置互聯架構(CDIF)是一個基於web的串連架構,目前有部分開源實現存放在: GitHub - out4b/cdif: Common device interconnect framework。CDIF是一種基於JSON的SOA軟體架構。CDIF為用戶端app提供了與基於XML的WSDL語言和SOAP協議同等抽象能力、但簡潔得多的基於JSON的實現,也非常適合用於描述微服務架構的API介面。CDIF提供了完整的服務註冊和發現能力,並為所有的web服務和物聯網裝置,包括REST、SOAP類型的服務,各種協議的物聯網裝置建立出一個簡潔、統一的JSON模型;並在此基礎上提供了其REST介面上的,基於JSON文本的統一RPC調用介面,方便了各種前端應用開發出基於該統一模型的API調用代碼。

CDIF的總體架構如所示:

CDIF總體架構

通過架構提供的裝置抽象層,CDIF將來自不同廠商的各種類型的REST或SOAP API,或者物聯網裝置封裝成各種虛擬設備,並對外提供統一的虛擬設備訪問REST介面供用戶端使用。

CDIF架構代碼用node.js書寫,因此底層的虛擬設備驅動全部使用node.js的npm包進行管理。每個裝置驅動可包含一到多個虛擬設備,由驅動被載入時上報給CDIF架構。被CDIF管理的虛擬設備及其API內部實現通過裝置抽象層被封裝在驅動中,這些驅動的內部實現可以使用node.js豐富的生態中任意一個優秀的第三方包協助實現,比如request, crypto, moment等,因此非常容易開發和管理。配合周邊的輔助開發工具,由CDIF管理的API可以擁有自動文檔產生,自動化的測試工具等能力。以下是基於CDIF的API管理市場上,通過解析CDIF API為REST或SOAP API定義的規範,以及利用JSON schema form技術為各種REST或SOAP API自動產生的API文檔和測試頁面。同時,當API的參數發生變化比如新增參數欄位時,這些API的文檔和測試載入器都會自動更新。

自動API文檔產生

 

自動API測試頁面產生

CDIF為雲端服務API建立的統一模型由UPnP的啟發而來。在支援各類雲端服務的API介面同時,CDIF也為所有的物聯網裝置了一個統一的模型,並且可以方便地協助用戶端建立出物聯網裝置和網路服務聯動的各種應用情境。

由於其簡潔的抽象能力,基於嚴格契約的松耦合架構,狀態無關的可互換服務定義等優點,在WSDL和SOAP基礎上打造的SOA技術體系至今仍然廣泛應用於包括銀行、證券交易所、航空公司、電信、醫院、電商、支付平台等各行各業的大中型企業中。據MuleSoft估算,目前世界上每年花費在與SOA技術相關的企業IT基礎設施建設和系統整合工作有5000億美元之多。但由於XML格式用於資料交換過於複雜,以XML為基礎的許多優秀的WS-*標準都逐漸走向了沒落。

隨著移動時代的發展,以REST和JSON為基礎打造的各種web服務、微服務架構逐漸成為主流。基於JavaScript開發的應用,如各種web app等都以REST和JSON作為串連的基礎。新興IT企業也更傾向於使用REST API,而不是SOAP來串連企業內部的各種基礎業務組件。但是,由於缺少有效schema約束和管理能力,目前企業內外使用的各種REST API基本都需要依賴於文檔手動管理,資料只能用"舉例"的方式描述,缺乏嚴謹的規範也給API整合帶來了諸多不便之處。同時,在API介面需要變化時,部署和升級新的API版本也非常不便。CDIF為REST API建立的通用模型協助填補了REST API與傳統SOA技術的差距,並為傳統SOA技術和雲端服務的結合與發展提供了全新的方向。基於CDIF的SOA技術可以方便地建立出許多全新類型的應用,比如REST服務流應用,web服務和物聯網裝置的無縫結合等等,這些都是現有技術無法輕易實現的情境。

與WSDL或Swagger等API modelling language不同,藉助於JSON schema form和伺服器端渲染等技術帶來的便利,使用CDIF提供的JSON模型與RPC介面的用戶端app可以為用戶端app提供全自動化整合能力。在這種情況下,不需要對被CDIF管理的REST API做離線的產生用戶端程式碼和手動整合,便可將由CDIF管理的API介面,及其變化動態地反映在用戶端UI上供使用者使用,省卻了用戶端對REST API的整合和API介面變化帶來的繁瑣的手動用戶端升級工作。由CDIF管理的REST API可以將新增加的,或者變化後的API自動展現在app UI上供使用者消費使用,簡化了app開發人員的工作,同時可做到即時推廣廠商新增API所展現的新業務能力。

如果用戶端app不希望使用這些進階特性,CDIF提供的REST介面也可以向下相容目前流行的手動整合方法。使用者參考CDIF為各種雲端服務API建立的通用模型便可方便地開發出基於該模型的API調用代碼。

由於做到了對API的訪問地址和方法完全透明,CDIF也可以較好地協助企業解決REST API的變化管理這一難題。CDIF內部對API驅動包中的JS代碼使用動態裝載技術,可支援驅動代碼的熱切換,驅動中的API存取碼發生變化時,只需要一鍵安裝新的驅動包到CDIF架構上,變化即可立即生效。同時可做到不打斷線上正在執行的舊版本API調用。這些特性都可以協助企業更方便地管理其自身的API介面。

更進一步,CDIF也為廠商的雲端服務API介面提供了靈活的資料緩衝和專屬的雙向資料通道能力,廠商只需要調整其API對CDIF架構提供的統一JSON模型上幾個欄位取值便可開放這些能力,API資料的緩衝時間從1毫秒到10年可以由API開發人員根據實際情況隨意指定,並隨時調整。在開啟雙向資料通道能力後,廠商雲端服務上的各種資料更新便可以即時地通過WebSocket,APN等通道被CDIF的訊息訂閱者擷取,而不需要由使用者主動發起API調用更新資料,產生額外的API調用開銷。這些專屬的特性都為目前所有基於API調用的單向雲端服務資料通道提供了更強大的能力。

CDIF:基於JSON的SOA軟體架構

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.