java - Spring 3 : Network Client-Server with custom protocol for runtime service generation

标签 java spring web-services rest client-server

我正在寻找一个最简单的解决方案来使用 Spring 3 框架创建客户端-服务器网络架构。该架构将有许多客户端和多个服务器。每个客户端都可以连接到每个服务器。每个客户端都可以定义一组必须由服务器在运行时生成的服务。

通信协议(protocol):

  1. 客户端向 5 个服务器之一打招呼。

  2. 服务器收集有关存储数据的本地元数据并将其发送到客户端

  3. 客户端选择其中一些信息并将元数据子集发送到服务器,以决定稍后需要哪些数据。

  4. 服务器根据客户端选择的元数据选择,动态生成可供客户端使用的服务,并向其提供所请求(步骤 3)配置所指向的数据(例如以序列化 JSON 的形式)

  5. 客户端获取有关生成的服务的信息并将其用于将来调用这些服务。

最大的问题是,客户端在收到应答之前对要提供的服务器资源一无所知,而服务器在收到客户端请求后没有任何服务。

我考虑过 Spring 3:

  • HTTP 调用程序
  • JMS
  • Netty(与spring结合)

但据我尝试上述方法,很难提供动态服务生成需求或者代码量(Netty)很大。

由于 SOAP 的沉重性质,我拒绝。 另一方面,据我所知,REST 并没有给这里带来任何好处。它只是一种提供数据的方式,并且需要某种 servlet 容器(例如 Tomcat),因为它使用 HTTP。 @Timmmm 的 great and simple answer to REST fashion

我追求什么:

  • 尽可能简单
  • 根据客户选择动态生成服务
  • 保持服务器轻量级,即没有额外的服务器实例(最好消除 tomcat;但 ts 并不重要)
  • 基于 Spring

您会推荐什么技术?

由于需要在运行时生成基于配置的服务,因此很难完成此任务。

不想想要基于属性文件,服务必须根据客户端请求动态生成。

提前感谢您的回答和提示。

最佳答案

我会研究 RESTful 架构。它的一些原则就是你所追求的,包括发现。

Spring 提供了与 REST 的轻松集成。

关于java - Spring 3 : Network Client-Server with custom protocol for runtime service generation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972482/

相关文章:

java - 无法使用 JavaMail POP 获取 Gmail 收件箱

java - java注释只适用于它正下方的属性吗?

java - Spring 执行器自定义指标(平均、最小、最大响应时间)

spring - Mongodb upsert 抛出 DuplicateKeyException

java - 如何使用接口(interface)创建bean?

java - 为什么 Java 客户端在运行时需要 WSDL?

java - Thread 类中的 Run 方法未被调用

java - 在 Java 中从标准输入中分离多个图像

wcf - 为什么 powershell 向 Web 服务方法签名添加额外的参数

c# - WCF 中的并发管理