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

时间:2012-09-21 07:22:07

标签: java database mobile architecture

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

因此,我有一整套技术可用于此任务,但我正在寻找可能更符合要求的更高级的技术。我对它有一些想法,但我最好首先解释一下我当前的系统是如何工作的,然后是我希望即将推出的系统的样子。

目前正在使用

  • 将所有内容连接在一起的Spring框架
  • Hibernate with Entity bean for persistence
  • MySQL或其他人作为RDBMS
  • 使用Dozer
  • 创建的DTO对象
  • 用于公开服务的RESTful API
  • DTO以JSON格式传输

此设置有效。但我觉得这只是太多的工作和生活可以更简单的其他技术。

我在寻找什么

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

我绝对想要使用Java和Spring,我愿意接替Hibernate,RDBMS和实体bean以及DTO。

期待您的回答!

3 个答案:

答案 0 :(得分:3)

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

    我。 CouchDB

    II。 JasDB

    III。SchemaFreeDB

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

答案 1 :(得分:0)

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

您可能考虑的一个选项是使用Backend-as-a-service。大多数BaaS提供商使用JSON通过网络传输数据,这听起来像是符合您的要求。

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

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

答案 2 :(得分:0)

即使这个问题有点陈旧,也许是RDBMS的一个快速替代方案:MongoDB。它是一个具有文档级锁定的文档数据库。它非常好地扩展

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

一样简单
newComboBox.val()

在mongo shell上和

db.collection.insert(JSON);

在java驱动程序中。