2012-11-21 40 views
0

enter image description here避免RPC(SOAP)API之間的中間數據轉換?

讓我們假設我開發了兩個服務稱爲ProductAPIOrderAPI。無論他們使用通用的領域模型(普通實體層次)。

這兩個服務最終都作爲RCP(SOAP或REST)公開。OrderAPI在內部調用ProductAPI。

在REST的情況下:

我們可以通過JAX-RS開發ProductAPI,我們可以實現一個 「ProductAPI REST客戶端」 被內OrderAPI用於訪問ProductAPI。

此客戶端可以使用相同的類heirachy將JSON反序列化爲ProductAPI中使用的相同類。

因此,沒有中間格式轉換。

在SOAP的情況下:

我們開發使用JAX-WS(或Axis2..etc)的ProductAPI和WSDL公開服務。 在這種情況下,我們必須使用公開的WSDL實現「ProductAPI SOAP客戶端」(可能正在使用暴露的WSDL的存根生成工具)。

此時生成的類是根據WSDL中的XSD定義生成的,如果我們想使用相同的公共域模型類,則必須進行額外的格式轉換。

我的問題:

1)在SOAP的情況下,有沒有辦法跳過此格式轉換?

2)在企業應用程序(如電子商務)中,避免這種中間數據轉換的性能是一種很好的做法嗎?

回答

1
  1. 要在進程之間移動數據,需要對數據進行序列化。對於序列化的數據,您當然可以使用與SOAP不同的更好的格式,但是如果您已經擁有SOAP,那麼將會有更多的工作。

  2. 值得交易程序員在這類項目中的表現是否值得?我的猜測是否定的,因爲無論如何,表演可能會足夠好。如果不是,通常的建議是在優化任何事情之前測量和確定瓶頸。