2013-12-17 51 views
0

這是一個設計問題。使用Web服務或Java API

我們正在用Java實現一個REST-ful Web服務,我們的設計將把精簡服務層和域層分開。我們的領域層可以封裝在自己的.jar中,因爲它是完全獨立的,並且不知道服務層。服務層將爲我們的一些非Java客戶端提供服務,並且我想知道,允許Java客戶端直接使用Java API的設計很糟糕嗎?在我看來,Java軟件不需要通過Web服務,但有人可能會認爲Web服務是一個更標準化的界面,所有軟件都應該通過它。我可以有一些原因來阻止或允許Java客戶端直接使用域圖層API嗎?

回答

1

我相信你回答了你自己的問題(atleast方式)。

但有人可能會爭辯說,Web服務是一個更標準化的接口,所有的軟件都應該通過它。

對於所有客戶端而言,Webservices絕對是一個更加標準化的接口,無論他們在哪個平臺上構建客戶端(java,C#,asp.net,php等)。你可能仍然通過RMI暴露你的java apis(請參閱 What is rmi registry),並讓你的JAVA CLIENTS使用這些API,但隨着公開這些API,他們將不得不跟上你對POJO所做的任何更改或者他們使用的域分類通過使這些RMI調用在線上(否則它們將得到serialversionUID不匹配錯誤)。這更加痛苦,因爲您必須以某種方式與您的客戶共享您的域類(將您的域類的.jar集中到他們將訪問的某個Maven存儲庫上)。

總而言之,Webservices是一種更簡潔的方式。那將是我的2美分