2012-04-12 151 views
4

我想了解哪種方法最適合管理下面的場景。服務架構 - webservies | soa

說例如有25個應用程序主要在java中,並且基於web部署跨不同平臺jboss,websphere & tomcat。每個應用程序公開3-5個服務,並且也消耗來自其他應用程序的服務。它們中的大多數是同步的並且在需要的基礎上被觸發。下面的一些使用案例,

  1. 當患者被錄取時,這將發送消息給有興趣入場細節(同步)的4 -5系統。
  2. 計費系統發送詳細信息到另一個系統來計算折扣(同步)
  3. 通過傳遞該ID來獲取患者詳細信息。 (同步)

所以,如果你試圖在picutre中表示整個圖表,如果將像每個系統之間的硬編碼靜態線那麼多。

的問題

  1. 不常見的方式找到每個系統或網絡服務的健康狀況,直到用戶抱怨一些事情不工作。

  2. 太多的Web服務和端點來跟蹤。

  3. 由於差異應用程序服務器和容器,跨差異標準JAX-wS,Jax-RS實施。

  4. 一些消息是相同的細節略有不同。因此可重用性降低,並最終爲每個自定義需求提供新服務。

什麼樣的解決方案更適合解決上述問題?

+0

+1好問題 – 2012-04-12 09:51:17

回答

1

這是大型企業的一個難題和常見問題。您可以看到的是將enterprise service bus集成到您的公司以促進SOA。然後,您可以爲您的生態系統中的每個系統實施適配器。適配器接口將被嚴格控制,記錄和標準化。 雖然這樣做有相當大的成本。

關於檢查系統健康狀況。您可以使用Nagios這樣的平臺來查看。您需要確定一些無害的Web服務(例如基本閱讀),以確定給定系統是否「啓動」。 Nagios可以定期打電話給他。

+0

謝謝尼克瑞恩你的時間。是的ESB是我們正在密切關注的一個選項。但是現在我看到很多有關SOA已經死亡的文章,這讓我對此持懷疑態度。我正在看的其他選項是AMQP,例如Rabbit MQ,也計劃遷移一些容易出錯的Web服務來規劃REST/JSON。 – cresc 2012-04-13 01:59:20

0

您需要一個ServiceBus,它不一定是一個完整的ESB,但您確實需要一個集成和中介點,以確保您管理不同的端點類型和不同的協議,而無需使用1-1連接。

您可以查看Fuse Mediation Hub(根據apache camel)。將來自不同服務的集成邏輯再次外化,將爲您提供更多靈活性。例如,它可以讓你將不同的服務遷移到你提到的REST/JSON,而不需要改變依賴於正在發展的服務的每個服務(在整個轉換過程中保持整個工作)。

關於監控 - 您可能要考慮查看splunk它可以連接到很多來源(應用程序服務器的日誌,JMX,SNMP)並關聯事件。他們有一個免費版本(每天最多500Mb的數據)