ESB總線和能力開放平臺
上圖是ESB企業服務總線和互聯網Open API能力開放平臺的一個簡單對比。對于在企業內部的服務集成和管控,由于需要面對企業內復雜的業務系統間集成和遺留系統適配,因此使用較多的仍然是 ESB企業服務總線。而對于互聯網應用,更多考慮的是輕量和高性能,已經開發和接入的效率,當前使用較多的是類似Open API方式下的能力開放平臺。
對于能力開放平臺,網上有比較明確的定義,具體如下:
Open API即開放API,也稱開放平臺。 所謂的開放API(OpenAPI)是服務型網站常見的一種應用,網站的服務商將自己的網站服務封裝成一系列API(Application Programming Interface,應用編程接口)開放出去,供第三方開發者使用,這種行為就叫做開放網站的API,所開放的API就被稱作OpenAPI(開放 API)。就現在互聯網上Open API的形態來看,主要分成兩種:標準REST和類REST(也可以叫做RPC形態)。
對于是否夠成一個能力開放平臺,有兩個重點,其一是服務的提供以htpp rest服務為主,其二是平臺本身是提供和暴露服務能力,而不消費服務。因此即使是在企業內部,如果ESB平臺本身能夠實現為僅暴露和提供服務,同時采用 輕量的Rest服務接入,那么也可以看做是能力開放平臺。
對于企業內部的服務,往往由于服務接口對需求規范要求嚴格,往往有會采用SOAP WebService方式來實現完整的服務契約設計。即服務接口本身就對服務的調用規范進行了強約束。而對于開放平臺往往采用http協議,傳輸的對象也 是大的json串,對于json串格式的定義往往只有通過文檔約定。這兩種方式各有優缺點,具體的選擇使用關鍵還是看使用的場景。
企業內部只是提供和暴露服務,供其它業務系統消費,這種場景往往出現在主數據和共享數據服務能力提供,因此對于共享數據往往是適合構建能力開放平 臺的。而對于企業內部端到端流程引起的橫向業務系統接口,這類橫向集成接口本身復用度不高,更多是為了業務系統,即使這類服務接入也很難真正高復用和共 享。
前面有一篇文章專門談到過Dubbo服務總線,對于Dubbo是可以用來構建Open API平臺的輕量服務總線。互聯網能力開放平臺這類總線其核心是服務注冊和管控,服務的訪問安全,服務集群擴展能力等。為了達到高并發和高性能,往往不會 在總線層面做詳細的服務調用日志審計。即:
服務消費方從總線獲取到服務地址后,即轉為對服務提供端的直接調用,數據流不經過輕量總線。
對于互聯網能力開放平臺的構建要注意,能力開放平臺不僅僅是一個高性能的輕量服務總線或一個http接口,而是要構建一個完整的互聯網PaaS平 臺生態環境。從最早期的中國移動等電信運營商開放的互聯網PaaS能力開放平臺可以看到這個特點,即這種能力開放平臺提供了完整的自服務,多租戶管理,服 務申請和開通,安全管控,開發框架和環境,本地SDK開發包,開發樣例等完整的支持。即除了開發完成的應用托管能力可以不提供外,其它標準的互聯網 PaaS平臺提供的能力,在能力開放平臺都需要完整提供。