3

我们目前正在开发一个应用程序,使用户能够注册一个或多个电子邮件帐户,以便他的电子邮件可以自动分类。前端已经使用 Ruby 实现,但是后端(电子邮件分类器)是用 java 编写并使用 WEKA API。问题是我们如何以可扩展的方式(同时处理大量用户)将前端(用 Ruby 编写的 Web 界面)与后端(用 java 编写的电子邮件分类器)集成在一起。

4

3 回答 3

1

我不确定什么是电子邮件分类器。但在任何类似问题中,我建议为您的 java 服务创建一个 RESTful API 的最佳解决方案。这可以使用正确的工具非常优雅地完成。API 应该通过返回 JSON 的 HTTP。使用像Jackson这样序列化为 JSON 的库。

在 ruby​​ 方面,您可以轻松解析 JSON 并反序列化。

这是一个非常可扩展的解决方案,因为 HTTP 调用是无状态的并且已经可扩展。线程被使用并被丢弃。如果您需要更多电力,那么只需添加更多机器。

Rails 应用程序也可以开始缓存一些调用。但这是过早的优化。

如果没有逻辑并且只有一个公共数据库,那么只需在两个应用程序之间共享该公共数据库即可。但听起来 Java 应用程序需要做一些工作。这是 API 的常用方法。它也不限制您使用 Ruby。您可以为 AJAX 或任何其他可以理解 JSON 的客户端创建 JSONP 服务。

于 2012-05-05T22:24:43.777 回答
0

随着您用于训练分类器的数据量的增长,您可能会发现您可能想要使用集成算法(其中一组 n 个节点形成集成)并将训练数据拆分到每个 n 个节点上.

要对新数据点进行分类,您可以使用投票系统,其中 n 个节点中的每一个节点都可以“投票”决定新数据点应该被分类为什么。得票最多的分类获胜。

于 2012-09-27T18:51:51.100 回答
0

如果您想要一个新的电子邮件警报,只需反转您正在公开的 RESTful API。与其将 Java 应用程序公开为 RESTful API,不如公开 Rails 应用程序 API。例如/user/ID/newmail.

然后,当收到新电子邮件时,Java 应用程序将调用 Rails 应用程序。

顺便提一句:

您是如何在 Java 中实现一个可扩展的系统来检查 1000 个电子邮件帐户的?

于 2012-08-23T09:07:29.600 回答