2

我搜索了很多,但也許我錯過了一些東西...
我想知道最佳實踐,當你有不同的平臺(dekstop,web,移動,終端)如何避免再次寫bussiness邏輯然後再次。
我知道Web服務,EJB等都是爲了這個目的,REST。但我不知道這些技術是否兼容..
如果我想使用Java的桌面和PHP的Web應用程序,然後如何tek赫克我可以實現這一點??通過一點搜索,我發現RESTful可能是一個解決方案.. 。
任何其他想法/架構?分佈式應用程序如何

回答

3

是的,您提到的技術(Web服務,EJB,REST,..)旨在用於部署服務基礎架構。關於兼容性的關鍵是接口必須是標準的。從這個意義上說,例如EJB基本上是J2EE技術​​,它只是JCP(Java社區過程)中的標準,如果您只關心J2EE世界中的兼容性,那麼它足夠公平。您將無法從.Net客戶端調用EJB,只是舉一個例子。另一方面,Web服務(如SOAP,WSDL和XML)是W3C標準,這意味着協議,消息,格式等與技術無關。因此,例如,您可以使用Axis用Java發佈服務,並以.Net,python,C或任何其他語言開發客戶端來發送消息。這很好,但就Web服務而言,標準層在過去幾年中變得瘋狂。說實話,圍繞面向服務的體系結構和Web服務出現的各種標準很容易迷失方向。

REST服務也是一種標準,它們主要依靠URL組合和HTTP來建立服務器和客戶端之間的通信機制。比SOAP/WSDL更簡單。今天的大多數語言都提供庫來使用JSON作爲數據格式來使用和發佈這種服務。在REST中,接口比SOAP/WSDL更輕,您沒有定義服務的XML文件,但通常而不是問題是一個優點。

在一天結束時,如果您關心兼容性,那麼請遵循標準進行編碼,並且不要將自己鎖定在任何專有格式中。使用REST和Web服務,您應該是安全的。從這兩個選項中,REST服務將是我的選擇。 PS:其他分佈式體系結構,今天沒有那麼多用於你提到的那些,它們是:RPC/XML,COM和CORBA。