Java 小程序(或WebStart应用程序)调用服务器:最佳实践?

Java 小程序(或WebStart应用程序)调用服务器:最佳实践?,java,applet,java-web-start,Java,Applet,Java Web Start,我想编写一个applet(或javawebstart应用程序)调用其服务器(servlet?),以调用一些方法并发送/检索数据。发送和检索这些信息的最佳方式/技术是什么 HTTP请求?参数输入,xml输出。xml仍然是我数据交换的首选 将XML与类似的东西一起使用可以消除XML Java库的许多麻烦。你可以用一种非常简单的方法 协议: 如果您不关心与其他语言的互操作性,我会选择RMI over HTTP。它有来自JRE的支持,很容易安装,一旦你有了框架,就很容易使用 对于应用程序逻辑,我将使用:

我想编写一个applet(或javawebstart应用程序)调用其服务器(servlet?),以调用一些方法并发送/检索数据。发送和检索这些信息的最佳方式/技术是什么

HTTP请求?参数输入,xml输出。

xml仍然是我数据交换的首选

将XML与类似的东西一起使用可以消除XML Java库的许多麻烦。你可以用一种非常简单的方法

协议:

如果您不关心与其他语言的互操作性,我会选择RMI over HTTP。它有来自JRE的支持,很容易安装,一旦你有了框架,就很容易使用

对于应用程序逻辑,我将使用:

  • 命令模式,传递在调用时调用服务器上方法的对象。这对于小项目来说是很好的,但是随着时间的推移和添加更多的命令,它会变得过于复杂。此外,它还要求客户机与服务器逻辑相耦合
  • 按名称请求+DTO方法。这样做的好处是将服务器逻辑与客户机完全分离,使服务器端可以根据需要自由更改。构建支持框架的开销比第一个选项要大一些,但在我看来,将客户机与服务器分离是值得的
  • 实施:

    如果您还没有开始,或者您已经开始使用Spring,那么SpringRemoting是一个很好的工具。即使您不使用IOC容器,它也可以在任何地方(包括小程序)工作。

    如果您不想使用Spring,那么基本RMI也很容易使用,并且在web上有大量的示例

    轻量级的解决方案也可以

    一个简单的例子是


    如果在这种情况下需要ORM:试试。

    是的,但我希望有一个基于接口的解决方案(就像RMI?)。在这里,我将调用一个异步方法,并且我的对象将在不解析/验证XML的情况下返回。我认为您将在xstream+commons_httpclient之上创建自己的api,这比您确定使用哪个库要快。