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。