試過騾ESB它的重量很輕。我會說更多,然後是一些競爭。我喜歡它如何不受SOA或肥皂的限制。所以你可以從普通的TCP/IP,HTTP,文件,電子郵件到任何真正有十幾個連接器的任何類型的端點構建,你甚至可以編寫你自己的。我也喜歡這個消息可以是任何東西的事實。我可能是錯的,但即使當其他人聲稱他們有各種連接器和消息格式,他們似乎有一些隱藏在引擎蓋下的SOAP,它似乎喜歡哈哈一些其他人看起來不錯,但有差的文檔。不喜歡這種事實,即某些基本的JDBC功能僅在企業版中可用。 I.e:要從存儲的proc呼叫中獲取輸出參數,您需要企業版。
實際上,我可以選擇任何服務器API,允許我創建一個服務器來接收HTTP,然後編寫我的代碼來轉換消息,打開客戶端連接到下一個服務發送它,接收響應,重新 - 將其轉換回客戶端。同時確保線程和隊列在服務器內正常運行。也許我可以剛剛使用jetty和一個servlet,並在一個請求中完成所有任務。這是一個選項,但是如果我必須切換到TCP/IP,那麼我只需更改一下配置。等待看看客戶說什麼。
ESB基本上是膠水和管道。我所要做的就是編寫三個自定義轉換器類,因爲我處理的消息是專有的銀行業務格式,並且不能完全映射到簡單的XSLT/XML轉換......大約20個XML標記將它們放在一起...
這是所有我需要得到這一點騾(不包括標籤來建立自己的數據源和SQL查詢)的...
<flow name="myFlow">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" />
<object-to-string-transformer />
<custom-transformer class="com.mycom.transformer.MyTransformer" />
<enricher target="#[variable:client]">
<jdbc:outbound-endpoint queryKey="getClientConfig" exchange-pattern="request-response" />
</enricher>
<custom-transformer class="com.MyCom.transformer.MyOtherTransformer" />
<http:outbound-endpoint exchange-pattern="request-response" host="xxx.xxx.xxx.xxx" port="80" path="some path" method="POST"/>
<custom-transformer class="com.MyCom.transformer.BackToOtherFormat" />
</flow>
所以基本上... 1-接收HTTP(S )與自定義消息 2-解析消息以獲取客戶端號碼 3-在數據庫中查找客戶端號碼以獲取其他服務的客戶端號碼... 4-創建新消息 5發送切換到其他服務 6-變換回響應 7返回到客戶端
那麼進一步的細節。我是其他提供者,我的Web服務是一個帶有XML的簡單HTTP POST。客戶端當前正在使用x25和一些銀行信息。因此,x25將被轉換爲TCP/IP,並且它們將連接到我們的網絡併發送該銀行信息。所以我需要某種TCP/IP偵聽應用程序來轉換消息並將其發送到我們的服務。數據轉換隻需簡單查看即可獲取帳戶的新值。 – user432024