SOA 是實現(xiàn)跨平臺、跨技術(shù)的各種軟件服務(wù)的整合。作為一個理想的SOA架構(gòu)平臺,應(yīng)該有無限的服務(wù)擴(kuò)展性,任何新的服務(wù)都能以插件的方式加入此SOA平臺,馬上對外發(fā)布;此外它應(yīng)該有無限的服務(wù)兼容性,任何應(yīng)用的傳輸協(xié)議,不管是J2EE,.NET, CORBA, DCOM 還是Web Service等, 它都能夠提供支持并進(jìn)行相應(yīng)的協(xié)議轉(zhuǎn)換,不管是同步服務(wù)還是異步事件都能處理。
SOA需要一個對各種服務(wù)進(jìn)行集成管理的核心架構(gòu), 這就是企業(yè)服務(wù)總線(ESB),全稱為Enterprise Service Bus, 其本質(zhì)是一個架構(gòu), 而不失一個真正的產(chǎn)品。
ESB的標(biāo)準(zhǔn)
? 下面是IBM公司定義的作為ESB應(yīng)該有的功能:
????1. ??能夠在做管理的服務(wù)之間實現(xiàn)消息路由, 也就是說能夠?qū)⑾姆?wù)A轉(zhuǎn)向另一個服務(wù)B。
????2.??能夠在服務(wù)請求者和服務(wù)提供者之間實現(xiàn)傳輸協(xié)議的轉(zhuǎn)換。比如說服務(wù)提供者得應(yīng)用服務(wù)是EJB,應(yīng)用協(xié)議是Java RMI,而服務(wù)請求者的協(xié)議是HTTP/SOAP, ESB將會把請求著的傳輸協(xié)議轉(zhuǎn)換為Java RMI發(fā)送到服務(wù)提供者, 在得到響應(yīng)后, 再將響應(yīng)消息的傳輸協(xié)議轉(zhuǎn)化為HTTP/SOAP返回給服務(wù)請求者。
???3. 能夠在請求者和服務(wù)之間實現(xiàn)消息格式的轉(zhuǎn)換。?
???4. 能夠處理不同來源的業(yè)務(wù)事件。 也就是說不管業(yè)務(wù)來源于何處,不管是同步還是異步事件,都能進(jìn)行相應(yīng)的處理。
???5. 一個ESB應(yīng)該是用戶更加關(guān)注與核心業(yè)務(wù), 而不是關(guān)注如何將各種程序連接在一起的IT底層基礎(chǔ)技術(shù)。?
?? 6. 一個ESB應(yīng)該是用戶能夠在現(xiàn)有的服務(wù)中加入新的服務(wù)。 或者改變現(xiàn)有服務(wù),而沒有對現(xiàn)有服務(wù)的使用產(chǎn)生影響。
???
?????????