Node.js 进入移动领域: StrongLoop 推出开源的 mBaaS

  • Zef Hemel
  • 吴海星

2013 年 9 月 23 日

话题:JavaScript移动Node.js语言 & 开发

之前推出即开即用企业版 Node.js的公司StrongLoop今天推出了一款新产品-LoopBack,这是一个开源的移动端后台即服务产品。

移动端后台即服务把完整的后台方案做成拿来就用的组件,提高了后台开发的抽象水平。后台即服务所包含的服务通常有:

  • 用户管理 (注册、登录、授权)
  • 数据存储
  • 分析

尽管后台即服务的服务已经有很多了,比如FirebaseParse,但都是托管式方案,要把数据放在他们的数据中心上。StrongLoop 的 LoopBack 可以部署到你自己的基础设施上(LoopBack 自降生之日起就支持六种云服务:AmazonHerokuCloud Foundry红帽子的 OpenShiftRackspace 云Cloud9 IDE),从而保留了所有数据的访问,并可以做定制的修改和补充。

除了宣布推出 LoopBack,StrongLoop 还宣布他们从沙斯塔创投和启明创投筹集到了 800 万美元的风险投资,以及伊萨克 罗斯加盟成为该公司的 CEO。

下面是 InfoQ 跟 StrongLoop 的新 CEO 伊萨克 罗斯的对话。

您的介绍视频 里提到 LinkedIn 是用Node.js 为移动端构建后台的范例(还有其他一些公司)。StrongLoop跟这些公司有直接合作吗,或者是受到启发做跟他们类似的事情?

伊萨克 罗斯:StrongLoop 有一个 StrongLoop 技术咨询委员会 ,这是我们的一个论坛,里面的成员都做过大型复杂的 Node 部署,我们能从具体实现中学到经验、受到启发,他们也可以互相学习,交流思想。我们的很多产品,从 StrongNode 中经过认证的模块到 LoopBack 的架构和具体功能,都是出自这个咨询委员会。甚至我们跟Node Inspector 的结合也出自他们,因为所有成员都说:“嘿,你知道这儿没有好用的调试工具。”有些需求我们还没能完成,比如 npm 能编译二进制模块,而大多数人在自己的生产机器上都没有编译器,所以他们只能编写脚本来完成构建和部署过程。

为什么JavaScript/Node.js 对移动端后台开发来说是个不错的平台?尽管有争议,但在webapp上还可以说能在客户端和服务端共享专业经验/代码。然而大多数的原生移动app都是用JavaObjective-C写的,所以说共享知识/代码是说不通的,或者你们主要是对准移动web

伊萨克 罗斯:你说得对,是面向移动 web 和混合 (比如 PhoneGap) 应用程序,在客户端和服务端共享代码非常棒。

但事实证明大多数开发人员都了解 JavaScript,它是一门优秀的脚本语言。运行速度快,开发效率高。在编写移动应用时,为了优化速度、节省带宽和降低耗电量,真的需要精心细化过的后台 API,只推送和拉取用户当前交互所需的数据。如果把整个客户记录都拉过来,就会浪费人们的移动资费,所以应该只把屏幕上的几个字段 填充上,当用户滑动或按下按钮进入下一屏时,才加载下一屏的数据。这种级别的粒度表明你要不断地创建后台 API 并定制它们。还要尽可能把数据的计算和获取 / 排序 / 揉合推到后台,因为这些工作在后台做效率更高。

所以要用高效的语言编程,写代码快,运行迅速,伸缩性好,还有你已经知道的。对于大多数移动应用开发人员来说,不管他们是用 Android Java、Objective-C 编程,还是用 JavaScript ,JavaScript 就是这种语言。后台代码写得越快,就能腾出更多的精力放在前端交互上,而这通常是人们评判一个 app 的标准。从我们得到的反馈来看,选择 Node 的人就是因为它快(所谓快,是指它运行快,但更主要的是用它开发快)。

你可能觉得作为一门语言或体系来说,Node 还不成熟,但这种情况变化很快,并且我们成立 StrongLoop 实际上就是为了催熟 Node。这里有很多我们试图解决的问题:

  • 模块体系的导航,并且不知道哪个模块又好又可靠… 现在我们会对模块进行验证并在背后支持他们
  • 工具……就像对 Node Inspector 做的一样,我们在更好的工具上投资,以提高开发者的工作效率-部署和伸缩……StrongNode 有集群 API 和集群管理,我们将继续为这些问题创建开放的工具。
  • 错误跟踪……Bert 上周展示了他做的原型,经过改进的 Node 出现错误后更容易追踪。
  • 基于事件的流程控制太难……我们已经集成了 Q 和 Async,可以实现不同风格的流程控制,并且 Bert 的任务建议又把这个向前推进了一步。

所以说,凭借着有成千上百万了解 JavaScript 的程序员,并且它学起来也很容易,Node 将逐渐成为世界级的编程环境。

mBaaS思想的本质是一个或多个即开即用的组件。它本质上是一个软件“成品”,比如在理想情况下不需要自己修改。跟其它技术相比,用Node.js写能给LoopBack的用户带来什么好处?

伊萨克 罗斯:你说得对,通常都是即开即用的 API。然而大多数 mBaaS 都创建了对那些即开即用功能进行扩展的办法,都承认开发人员通常需要定制这样一个事实 (比如 Parse 调用这段“云代码”)。有意思的是几乎每个 mBaaS 都允许用 JavaScript 或只用 JavaScript 做这种扩展,这更加表明 JavaScript 是既成事实的移动端后台语言。

LoopBack 酷在把这一想法带到了另一个层面。给你的是软件组件“成品”,但你还能用庞大的强力体系社区中的 40000 多个 node 组件扩展它。而且 LoopBack 是建立在社区“标准”上的,而不是我们独门独派的东西,比如你需要用新的认证方式来获取数据,我们用的是 Passport,所以你可以用任何一个 Passport 的插件实现那种方式。如果想加个 Express 插件,用 LoopBack 也能处理得很好。

之前在开发的时候我们跟一个企业架构师聊过,他管这叫“组合”能力。他想要混合并匹配组件,扩展核心功能,知道软件能跟着他成长,而不是卡死在一个不能发展的软件“成品”上。

另外这是一个很强的保险。如果厂商(也就是 StrongLoop)消失了,或者收费太高,你不会卡死在这个 mBaaS 上。用 LoopBack,你可以自己修改代码,或者找个顾问让它朝你想要的方向发展。

LoopBack 是开源的, 可以到它的网站上下载

原文链接:Node.js Goes Mobile: StrongLoop Launches Open Source mBaaS


感谢杨赛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

JavaScript移动Node.js语言 & 开发