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

标签 java api frameworks tcp

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

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

public class MyClass extends ThisIsAnAPI

以这种方式使所有公共(public)函数都可以在网络协议(protocol)上调用。

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

有什么建议吗?

最佳答案

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

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

这听起来可能有些过头了,但就工作量和成本而言(给定免费的应用程序服务器,例如 WebSphere CE 或 JBoss),这并不是什么大不了的事。但是,如果您不选择 EJB,那么您需要考虑两个大问题:

  1. 安全。您已经有了一些 TCP 可调用的服务。这些服务有多敏感?他们需要身份验证和授权吗?您可以轻松地向整个公司甚至互联网开放敏感数据库。
  2. 弹性和扩展。您将如何管理故障场景?通过 RMI/IIOP 公开的 EJB 可以集群,因此您可以扩展并处理错误。如果您从能够做到这一点的技术入手,即使您现在不需要该功能,您也可以为 future 做好准备。

关于Java - 框架到 "APIzize"任何类并使其在 TCP 上可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7187512/

相关文章:

java - Mapbox,MapSnapshotter.callback 并不总是被调用

java - Android 无法从图库中加载正确方向的图像

java - 动态(编译时生成)Java 包名称

python - "invalid character ' u ' looking for beginning of value"golang开发的服务解析错误

mysql - URL API (JSon) 存储在 MySql 中

ios - 模拟器 OK 设备编译错误 Undefined symbols for architecture armv7s

objective-c - CoreText 框架 - 应用程序无法在模拟器中运行 - iOS

java - 在 javadoc 中使用源路径

iphone - 在我的项目中找不到核心audio.h吗?

javascript - 使用 Javascript 调用外部 API