JavaSpring远程处理选项

JavaSpring远程处理选项,java,spring,remoting,blazeds,Java,Spring,Remoting,Blazeds,一点背景:我想将我正在编写的Java应用程序分离到一个或多或少典型的服务器-客户机模型中。我将提供一个负责业务逻辑和持久性的“服务器”,但它是以一种非常面向服务的方式编写的。然后,任何前端代码(GUI)都会调用服务器以用户友好的方式提供功能 在我使用Spring(和一个ORM框架)编写应用程序时,探索常见的可疑对象以公开服务器功能是有意义的,常见的可疑对象是RMI、SpringHTTP、Hessian、web服务等(Spring本机支持的选项)。这些都有很好的文档记录,包括参考文档和此处 但是,

一点背景:我想将我正在编写的Java应用程序分离到一个或多或少典型的服务器-客户机模型中。我将提供一个负责业务逻辑和持久性的“服务器”,但它是以一种非常面向服务的方式编写的。然后,任何前端代码(GUI)都会调用服务器以用户友好的方式提供功能

在我使用Spring(和一个ORM框架)编写应用程序时,探索常见的可疑对象以公开服务器功能是有意义的,常见的可疑对象是RMI、SpringHTTP、Hessian、web服务等(Spring本机支持的选项)。这些都有很好的文档记录,包括参考文档和此处

但是,对于实际问题:有什么不太明显、更异乎寻常的选项可以用来暴露我的服务器服务吗?< /P> 重要的是(一如既往)在易用性(来自前端POV)、性能和可扩展性之间取得适当的平衡。例如自从我考虑过以任何方式(对于Flex/AS3客户机)在服务器中提供SpringBlazeDS集成以来,我突然意识到BlazeDS提供了一个用于调用AMF服务的Java本机API


如果您有Flex前端,我会推荐BlazeDS,如果没有,我会推荐SpringHTTP。这两种方法都消除了将XML转换为对象并再次转换的非生产性工作


SpringHTTP特别有吸引力,因为您可以像往常一样编写POJOSpring服务接口,将通过HTTP远程处理公开的选择推迟到最后。这样你就可以选择了。如果您决定以后SpringWeb服务更适合您,您可以继续使用相同的POJO-Spring接口。

我说的使用Spring的HTTP导出器/调用器本质上是强迫潜在客户也使用Spring(如果他们希望调用这些服务),对吗?我想唯一真正不依赖于语言/框架的方法是web服务。如果使用SpringHTTPRemoting,客户端将必须使用Spring客户端才能正确地进行封送/解封。Web服务是不可知的。请记住,它们不必与SOAP/XML同义。那些也能把你关起来。(例如,Axis)REST也是一种非常好的方式。+1-我们在客户机-服务器应用程序中一直使用HTTP服务,因为我们只需要担心Java客户机。像冠军一样工作!远程处理层的选择取决于客户机和服务器的选择。显然,您的服务器是java的,但您的客户机肯定是Flex的吗?这就是问题所在,也许我没有足够清楚地说明这一点:在这个阶段,我的客户机是微不足道的。在这个阶段,“我真的不在乎客户将使用哪种技术”。我将自己开发一个Flex,因此BlazeDS肯定会加入,但我也希望提供足够的服务,允许第三方前端。