2

我正在用 Spring、Hibernate 和 RDBMS 构建 Java 后端有一段时间了。此外,我还经常为 iOS 和 Android 开发移动应用程序。

因此,我拥有一整套技术可用于这项任务,但我正在寻找更先进的技术,以更好地满足要求。我对此有一些想法,但我最好先解释一下我当前的系统是如何工作的,然后我希望我即将推出的系统是什么样子。

目前使用

  • Spring框架将所有东西连接在一起
  • 使用实体 bean 休眠以实现持久性
  • MySQL 或其他作为 RDBMS
  • 使用 Dozer 创建的 DTO 对象
  • 用于公开服务的 RESTful API
  • DTO 以 JSON 格式传输

此设置有效。但我有一种感觉,就是工作量太大,使用其他技术可以让生活变得更简单。

我在找什么

在移动网站上,我想接收我可以轻松缓存的当前屏幕的数据。JSON 是已经序列化的东西,可以很容易地在移动应用程序中保存到磁盘,而无需使用另一个数据库。那么问题来了,我怎样才能将数据存储在后端,以便我可以更轻松地接收它,而不使用实体 bean、DTO 和 Dozer 在它们之间进行转换?难道没有另一个已经提供 JSON 的数据库解决方案吗?例如,像 OrientDB 或 Neo4J 这样的图形数据库呢?

我绝对想使用 Java 和 Spring,并且我愿意替代 Hibernate、RDBMS 和实体 bean 和 DTO。

期待您的回答!

4

3 回答 3

3
  1. 您当前的设计(此设置有效)具有良好系统应具备的细节。分层和良好的关注点分离
  2. 如果我正确理解您的要求,那么您的论点是,如果我的最终数据格式是 JSON,那么为什么不以 JSON 格式存储数据,这将使您摆脱中间层的大量管道代码/工作。
  3. 它将直接使您能够从存储中获取数据并将其传递给请求的客户端。简而言之,这些就是您的要求。如果我错了,请纠正我。
  4. 现在 JSON 更多的是文本符号,而不是存储格式。Jason 通常被 MVC 架构的 View 层使用,因为它很容易使用 Javascript 在屏幕上呈现。
  5. 鉴于终端客户端将是移动应用程序,您使用直接提供 JSON 的 NoSQL DB 的推理是可信的。
  6. 整体架构看起来不错,并且针对移动访问进行了高度优化。
  7. 现在出现在 NoSQL JSON 存储上,以下是支持 JSON 接口的 Document Store NoSQL DB

    一世。沙发数据库

    ii. JasDB

    iii. 架构自由数据库

8.您可以评估其中任何一个以满足您的需求。

于 2012-09-21T09:22:32.677 回答
0

(完全披露——我是一名 BaaS 提供商 Kinvey 的工程师)

您可能会考虑的一种选择是使用后端即服务。大多数 BaaS 提供商都使用 JSON 通过网络传输数据,这听起来很符合您的要求。

此外,您通常会获得很多常用的移动应用程序功能(即推送通知、文件存储和 CDN 基础设施、用户管理等)。如果您正在构建多个应用程序,每个应用程序都有自己的后端,这可能特别有用;而不是每次都重新发明轮子,只需启动一个新的后端。

最后但重要的一点是定价。很大程度上取决于您的用例,但据我所知,BaaS 提供商通常比在 AWS 或其他云提供商上推出自己的解决方案便宜得多,尤其是因为大多数提供商都提供免费套餐。

于 2012-09-21T13:53:56.523 回答
0

尽管这个问题有点老了,但也许是 RDBMS 的一个快速替代方案:MongoDB。它是一个文档级锁定的文档数据库。它的扩展性非常好

要点:它使用 JSON 作为其文档存储(实际上是二进制 JSON 又名 BSON,但这只是一个超集)。将文档插入数据库就像

db.collection.insert(JSON);

在 mongo shell 和

DBObject bson = (DBObject) JSON.parse(JSONstr);
collection.insert(bson);

在java驱动程序中。

于 2015-09-20T11:36:25.030 回答