系统架构 - Java 后端、数据库、移动应用程序

3
我已经使用Spring、Hibernate和关系型数据库(如MySQL)构建Java后端一段时间,并且经常为iOS和Android开发移动应用程序。
尽管我已经有了很多技术栈,但我正在寻找更先进的技术来更好地满足需求。在介绍我的当前系统以及我期望的系统之前,我需要思考一下。 目前采用的技术:
  • 使用Spring框架进行连接
  • 使用Entity bean的Hibernate进行持久化
  • 使用MySQL或其他关系型数据库作为RDBMS
  • 使用Dozer创建DTO对象
  • 使用RESTful API公开服务
  • 使用JSON格式传输DTOs
这个设置是可行的。但我觉得这太麻烦了,可能还有其他技术可以更简单地实现。 我正在寻找的技术: 在移动端,我想要接收当前屏幕的数据,并将其缓存。JSON已经是序列化的,因此很容易保存到移动应用程序的磁盘中,而不使用另一个数据库。因此,问题是,我如何在后端存储数据,以便更轻松地接收它,而不必使用entity beans、DTOs和Dozer进行转换?是否有另一种数据库解决方案可以直接提供JSON呢?例如图形数据库,如OrientDB或Neo4J?
我一定要使用Java和Spring,并且我可以考虑替换Hibernate、关系型数据库和entity beans和DTOs。
期待你的回答!
3个回答

3
  1. 您现在的设计(这个设置有效)具有良好系统应该具备的特点。层次分明,关注点分离。
  2. 如果我正确理解了您的要求,那么您的论点是,如果我的最终数据格式是JSON,那么为什么不将数据存储为JSON格式,这样可以省去许多中间层的代码和工作量。
  3. 它将直接使您能够从存储中提取数据并将其传递给请求客户端。这是您的要求的要点。如果我理解错误,请纠正我。
  4. 现在JSON更像文本符号,而不是存储格式。Jason通常由MVC架构的View层消耗,因为使用Javascript在屏幕上呈现很容易。
  5. 考虑到最终客户端将是移动应用程序,您使用直接提供JSON的NoSQL DB的推理是可信的。
  6. 总体架构看起来很好,非常适合移动访问。
  7. 现在谈到NoSQL JSON存储,以下是支持JSON接口的文档存储NoSQL DB:

    i. CouchDB

    ii. JasDB

    iii.SchemaFreeDB

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


0

(完全透明 - 我是Kinvey的工程师,一家BaaS提供商)

你可以考虑使用后端即服务(Backend-as-a-service)。大多数BaaS提供商使用JSON在网络上传输数据,这听起来与您的要求兼容。

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

最后但同样重要的是价格。很多情况取决于您的使用情况,但从我所看到的情况来看,与在AWS或其他云提供商上自行解决方案相比,BaaS提供商通常要便宜得多,尤其是因为大多数提供商都提供免费层。


0
尽管这个问题有点老,但也许对于关系型数据库的一个快速替代方案是MongoDB。它是一个文档数据库,具有文档级锁定功能。它的扩展性非常好。
主要观点:它使用JSON作为其文档存储(实际上是二进制JSON,即BSON,但那只是一个超集)。将文档插入数据库就像轻而易举的事情一样。
db.collection.insert(JSON);

在Mongo shell上

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

在Java驱动程序中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接