关于移动应用的繁荣,服务器端技术领域正在发生什么?


12

随着移动技术变得越来越流行,这些应用程序中的大多数在需要与后端通信时在服务器端发生了什么?

我习惯于10年前的技术世界,那时大多数资源都是通过请求一个动态网页来访问的,该网页在被查看者的背后使用服务器端语言从关系数据库中获取所需的信息。

情况是否仍然如此?如果不是,则有哪些重大变化?


许多较小的应用程序都依赖Google App Engine :)。
MrFox 2012年

Answers:


7

从我的头顶:

  1. 使用Web服务,而不是从客户端直接访问数据库。
  2. REST而不是SOAP。SOAP对于与后端的移动通信似乎过于繁琐。使用JSON的REST更易于设置和使用。特别是如果您在客户端和服务器上使用不同的技术。
  3. 着重于网页的多个视图。一种用于桌面,另一种用于移动。如果有人使用MVC,这应该很容易,但是仍然存在很多问题。

可能还有更多。移动应用程序通常被视为普通客户端,它们会消耗数据并显示它们。


6

技术领域

  • 使用JSON作为序列化的RESTful API- 本机应用程序,混合应用程序和移动Web应用程序使用相同的API。即使在前一种情况下,也经常使用客户端模板(请参见“将JSP抛在脑后:将LinkedIn移至ustry.js客户端模板”中的出色示例)

  • 轻型,异步(事件驱动)服务器 -无需再进行前叉Apache。现在使用Nginx,node.js,Twisted,Tornado等。

  • OAuth /社交登录 -用户期望不必为每个单独的应用程序注册一个帐户。因此,大多数应用程序都允许使用FB,TW和其他提供程序登录。对于FB,Android和iOS均提供“ 单点登录”选项。

要考虑的事情

  • 移动网络具有很高的延迟。
  • 客户断开连接是正常的。
  • 客户端在会话期间更改IP是正常的。
  • 手机远没有台式机/笔记本电脑强大。

4

REST只是故事的一半。比网络上的轻量级协议更有趣的事情是轻量级的Web应用程序服务器和堆栈-相对于较厚的呈现HTML而言,对小数据报的大规模规模要求意味着您有不同的要求。一些例子:

  • node.js可能是典型的例子。大多数人都挂在服务器上的javascript功能上,但这是一个红鲱鱼-对于无法超越js却没关系的孩子来说很酷。真正有趣的部分是异步特性,使其疯狂扩展,尤其是在提供小型,清晰的RESTful服务时。对于.NET,某些其他具有相似性的堆栈将被扭曲为python或manos de mono。

  • nginx使用了与node.js相同的事件IO(libuv),并且在某些方面正在清理服务器市场。比apache更专注和疯狂。

  • 瘦服务器堆栈在传统上具有厚框架的环境中弹出,这些框架具有很多假设。IE,在红宝石中,您可以通过sinatra来平衡轨道。在python中,您有flask [和其他]来抵消django。在.NET中,您已经有了WebAPI来抵消MVC和WebForms的不足。我提到的所有堆栈都非常非常薄,并且(或完全)专注于服务数据报而不是网页。我提到的这些功能都没有一种可以满足当今人们对典型Web堆栈期望的模板和ORM。

综上所述,黑客攻击现有的已有10年历史的服务器端网络应用程序以在其他HTTP端点上提供json的服务通常不是在为他们的移动应用程序服务。世界并没有发生太大变化-如果他们认为自己可以摆脱困境,管理层仍然会li着两个轮子和一个甜甜圈。


1

情况是否仍然如此?如果不是,则有哪些重大变化?

我认为仍有一些应用程序使用提到的服务器端或客户端-服务器体系结构。但是,近年来,朝着SOA(面向服务的体系结构)发展了一大步。因此,通过安全服务进行的通信为所有客户端应用程序打开了新功能,并同时访问/重用了后端业务服务。

随着手机和平板电脑的新兴市场,将HTTP服务用作向客户端应用程序提供扩展服务的重要通信渠道变得越来越重要。


1

现在,大多数后端都支持JSON和REST,而不仅仅是SOAP。除此之外,Web前端和移动应用程序之间没有太大区别。我认为移动应用程序的大多数挑战都在前端(如何最好地在较小的屏幕上显示信息)。一些应用程序开始利用移动功能(例如位置报告),但这两端都有。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.