Java 从同一后端支持移动应用程序和网站的最佳技术是什么?
我将拥有原生iPhone和Android应用程序,以及稍后的移动网站(用于其他移动平台),所有这些都与管理用户、设置、视频、社交图等的后端进行对话。我还将拥有一个动态网站,其中包含大量视频、图片和社交图管理。该网站将基本上是一个更具特色的手机应用程序版本。后端包括视频存储、转码、视频推荐引擎、与网络共享视频的选项 我的想法是,我应该构建一个公共应用程序服务层,该层公开一个返回JSON的RESTful api,并让应用程序和网站都与该api对话 我的问题是,我应该将web站点和服务层都放在一种技术中,还是使用Java作为服务层,使用Rails或Python作为web站点,以利用其所谓的更快的开发时间。该站点将有大量JavaScript和AJAX来支持动态行为。如果我使用Rails或Python,他们是否也应该与服务层讨论REST/JSON?在部署和扩展管理方面,似乎在所有后端部件上坚持使用Java这样的技术可能会更好;但另一方面,Rails和Python承诺为web层提供更快的开发和维护时间。如果我将Rails用于web层,那么在JRuby中将其部署在与服务层相同的JVM中,以便在web/app服务器上管理较少的移动部件,这有意义吗 该网站可能会发展到数百万用户和视频。开发团队在Java方面经验丰富,有一些Python,但他们很聪明,可以快速学习其他技术Java 从同一后端支持移动应用程序和网站的最佳技术是什么?,java,ruby-on-rails,json,rest,mobile,Java,Ruby On Rails,Json,Rest,Mobile,我将拥有原生iPhone和Android应用程序,以及稍后的移动网站(用于其他移动平台),所有这些都与管理用户、设置、视频、社交图等的后端进行对话。我还将拥有一个动态网站,其中包含大量视频、图片和社交图管理。该网站将基本上是一个更具特色的手机应用程序版本。后端包括视频存储、转码、视频推荐引擎、与网络共享视频的选项 我的想法是,我应该构建一个公共应用程序服务层,该层公开一个返回JSON的RESTful api,并让应用程序和网站都与该api对话 我的问题是,我应该将web站点和服务层都放在一种技术
请随意推荐您选择的技术堆栈 根据我的经验,这里有一些建议:
- 为JSON API创建单独的API层。在那里使用SpringMVC或JAX-RS
- 对于web前端,您可以使用grails,它结合了ruby和python等动态语言的优点以及JVM和java堆栈的强大功能李>
- 您可以选择仅使用站点中的API,或者仅通过API公开部分功能,并在内部使用其余功能李>
- 对于内部通信,尽量不要增加开销——您可以从简单的服务类(例如Springbeans)开始。在我看来,将它们作为web服务公开是有害的。是的,您的模块似乎是解耦的,但这会妨碍灵活性。由于服务是无状态的,因此可以从任何地方调用它们,因此您可以轻松地使它们处于活动状态,并在与grails应用程序相同的JVM中调用它们