Java-框架到;APIzize“;任何类并使其在TCP上可用?

Java-框架到;APIzize“;任何类并使其在TCP上可用?,java,api,frameworks,tcp,Java,Api,Frameworks,Tcp,我有一个应用程序,其中后端和前端都是用Java构建的。后端提供一些功能,如访问数据库等,而前端内置的Struts调用这些功能 我正在寻找一种方法,使任何Java类都可以在TCP上轻松调用,在我看来,理想情况下,这可以通过扩展一个特定的类来实现,比如: public class MyClass extends ThisIsAnAPI 以这种方式使所有公共函数都可以在网络协议上调用 有了这样一个框架,前端可以很容易地用其他语言实现,比如Ruby(在Rails上),通过向用Java编写并在TCP上公

我有一个应用程序,其中后端和前端都是用Java构建的。后端提供一些功能,如访问数据库等,而前端内置的Struts调用这些功能

我正在寻找一种方法,使任何Java类都可以在TCP上轻松调用,在我看来,理想情况下,这可以通过扩展一个特定的类来实现,比如:

public class MyClass extends ThisIsAnAPI
以这种方式使所有公共函数都可以在网络协议上调用

有了这样一个框架,前端可以很容易地用其他语言实现,比如Ruby(在Rails上),通过向用Java编写并在TCP上公开的后端API发出网络请求


有什么建议吗?

我将从设计用于此目的的RMI开始。您创建了一个客户端使用和服务器实现的接口。

Try,这是一个低级别的TCP协议,同时也绑定了其他几个平台,因此您将获得C++/C++/Flash/。。。免费的。我认为与RMI相比,它更容易使用


如果将来需要更多的移植性,请考虑通过SOAP/REST来公开POJOS(大多数WS栈都有这种能力,如果需要的话,只需要很少的额外注释)。它的级别相当高,易于使用,但您需要运行MessageBroker。这与点对点通信有点不同。

如果您可能使用JavaScript/Ajax UI,那么我会花时间将后端公开为RESTful服务。使用JAX/RS只需要几行代码、一些注释和一个接口

如果您保持纯Java,那么现在将POJO转换为远程可调用EJB是非常简单的:只需几个注释

这听起来可能有些过分,但就工作量和成本而言(考虑到WebSphereCE或JBoss等免费应用服务器),这并没有什么大不了的。但是,如果您不选择EJB,则需要考虑两个大问题:

  • 安全。您有一些TCP可调用服务。这些服务有多敏感?他们需要认证和授权吗?你可以很容易地向整个公司甚至互联网开放敏感数据库
  • 弹性和伸缩性。您将如何管理故障场景?通过RMI/IIOP公开的EJB可以集群化,因此您可以扩展和处理错误。如果您从一种能够做到这一点的技术开始,即使您现在不需要该功能,您也可以为未来做好准备

  • 正如几个人提到的RMI一样,您可以查找spring,spring对此有支持,我自己也成功地使用了它