因為公司今年推出了Apusic ESB集成平臺,而銷售同事希望能夠用通俗的方式理解這個產品,于是一段談話促成了這篇隨筆。
Apusic ESB字面意思就是(Enterprise Service Bus)企業服務總線,顧名思義就是把(web services)注冊在服務總線上,使應用程序通過統一的服務總線平臺獲取其他應用提供的服務,目的是可以獲取其他應用程序里面的信息,再簡單些就是讓程序與程序之間可以交換數據。講到這,有朋友肯定會問,這么簡單的事情干嗎要整得這么復雜呢,程序里面多寫兩段代碼就可以完成了呀,而且現在市場上做數據交換的東西很多,程序自己寫代碼交換數據、通過MQ的消息機制交換數據、通過數據交換平臺交換數據,現在金蝶又出個ESB交換數據,有什么區別嗎?下面我將一一道來。
第一代通過協議傳送數據。就是編寫代碼通過HTTP、FTP、SMB等協議實現數據在應用程序之間的交換,好處是開發過程簡單、維護成本低,就像一個工廠買了電瓶車在不同廠房之間運送貨物。問題也顯而易見,如果是地區性甚至全國性的企業,自己運送貨物的成本和效率都變得極為不值。
第二代通過消息傳送數據。仍然需要寫代碼,但是不需要通過某個具體的協議,也不需要與最終目標打交道,只要按照Apusic MQ(消息中間件)提供的消息格式將數據打包,然后告訴MQ目的在哪里,MQ就會負責把打包成消息的數據傳送到位,并且還保質保量。就像一個業務擴展后的企業,不再依靠自己找幾個人、買幾部車的方式來傳送貨物,而是通過專業化的物流公司,利用物流公司搭建的網絡,并按照物流公司制定的貨物標準將貨物打包,就可以獲得專業化的物流服務,從而大幅降低企業本身物流成本和更高的傳送質量,因此選擇物流公司必須關注網絡質量和傳送效率是否滿足企業需要。
第三代通過數據交換平臺傳送數據。基于第二代消息中間件(MQ)搭建起一個數據交換平臺,平臺中還提供了直接訪問數據的適配器,程序員不再編寫代碼,而是制定源數據與目標數據的格式和存取方式,剩下的數據抽取、轉換和裝載工作就由數據交換平臺完成,大大減輕了程序員的工作量。就如物流公司希望提供差異化服務,不再局限于送個東西,而是為用戶提供上門服務,用戶只需要像點菜一樣列出貨物清單和送貨地點,物流公司就會完成貨物打包和發送的事情,大大減輕了企業送貨的工作量,當然同樣要多付出一點定制化成本。而物流公司在基礎平臺方面是否采用了優質高效的運輸設備,在用戶支持方面是否具備專業化的服務能力,就成為用戶選型的重要參考條件。
第四代通過Apusic ESB(企業服務總線)傳送數據。以前的數據傳送方式都是以“推”為主,就是定義好需要傳送的數據,然后推向接收方,接收者是被動的接收數據,而無法根據需要從數據源“拉”數據。傳送的內容僅僅是數據,必須被接收方整合到自己的應用系統中才能變成有價值的信息。應用之間是數據的傳送,數據被轉換成信息后還需要整合到業務流程中才能最終完成業務的整合。如果業務發生變更,仍然需要修改代碼完成業務整合工作,非常不利于未來應用整合的需要。Apusic ESB通過web service滿足業務流程整合需要,這種整合方式就是當今流行的SOA(Service-Oriented Architechture),將數據包裝成信息通過服務的方式暴露出來,并統一注冊到企業服務總線上。如果是應用本身的業務發生變化,代碼的修改不會影響到暴露出來的行為;如果是業務流程發生變化,通過改變業務流程定義文件,將業務流程重組從而實現新業務需要。應用程序通過服務將需要的數據“拉”到本地應用中,從而完成數據交換、信息交換及至業務整合工作,還可以通過自定義方式將常用數據按統一存儲到數據倉庫中,從而提升了數據使用效率、降低后期維護成本。就如物流公司不僅幫助企業運送貨物,還協助企業維護貨物清單、建立貨物倉庫,降低企業貨物運輸的成本和維護成本,使貨物可以根據需求進行運輸,從而使資源分配更加合理。