解析提供移动应用程序上的功能,但不适用于企业

脸书'的MBaaS面向消费者移动应用程序,但错过了一些业务应用程序的必备条件

数据速度应用

Parse曾经是 移动后端即服务(MBaaS),尽管最近已被Facebook收购,但它仍然是一种适用于低容量消费类应用程序的可行,低摩擦的MBaaS。从好的方面来说,它已被很好地记录下来,具有良好的本机客户端支持,并且具有基于Backbone.js的JavaScript客户端SDK。 Parse还在后端运行JavaScript代码,这为开发人员提供了全JavaScript应用程序堆栈的选项。  

不利的一面是,Parse缺少了业务应用程序所需的重要部分,例如数据集成,脱机操作以及联机/脱机同步。同时,它的定价似乎适用于小批量应用。如果您碰巧创造了下一个病毒,那么随着应用程序使用率的增加,解析将使您付出大量代价。 

客户支持

解析支持本机移动,JavaScript和桌面应用程序。在移动端,它具有对iOS,Android和Windows Phone 8的本地支持。在桌面上,它支持OS X和Windows 8(.Net)以及Unity游戏。 

Parse JavaScript SDK基于Backbone.js框架。据该公司称,大多数现有的Backbone.js应用程序都可以与Parse一起使用,只需稍作更改即可。 Parse还具有一个REST API,几乎可以使它在任何支持HTTP请求的语言(包括Curl命令行实用程序)中的任何客户端上都可以使用。 

除了自己的官方客户端API库之外,Parse还具有许多第三方,社区支持的客户端库。其中包括对.Net,ActionScript,Appcelerator Titanium,Clojure,Corona,Java,其他JavaScript API,Temboo,PHP,Python,Qt,RealBasic,Ruby和WebOS的支持。 

解析仪表板日志

在“分析仪表板”中查看的“分析云”应用程序日志。可以从命令行界面查看相同的信息。

云码

通过Parse,您可以使用与Backbone.js框架相同的客户端使用相同的Parse JavaScript SDK,在云中运行JavaScript代码。与使用FeedHenry和Kinvey而不是在浏览器中常规编辑云代码相比,Parse提供了用于在Parse Cloud中管理代码的命令行工具,并允许您在计算机上使用自己喜欢的JavaScript编辑器。但是,您可以在仪表板中查看代码,也可以在其中查看日志。

在OS X和Linux上,一个名为Parse的工具安装到/ usr / local / bin / parse。在Windows上,解析工具将安装一个ParseConsole,它会启动一个可识别Parse的PowerShell会话。第一个会话将Parse添加到PowerShell中以备将来使用。命令行工具Parse是应用程序脚架生成器,应用程序部署工具,日志打印机,应用程序回滚工具和自我更新程序。 

Your cloud code resides in main.js after running parse new. The default is a “hello, world” program: 

response.success("Hello world!"); });

您可以使用parse deploy将其推送到云中。成功部署后,您可以使用任何Parse客户端来运行它,包括简单的REST调用。 Parse Web控制台中的教程将使用几种语言的正确凭据为您生成示例代码。这是我的凭据被遮盖的Python版本:

importjson,httplib
connection =httplib.HTTPSConnection('api.parse.com', 443)
     }), {
       "X-Parse-Application-Id": "TRZxxxxxx"
       "X-Parse-REST-API-Key": "Ajyetxxxxxx",
       "Content-Type": "application/json"
     })
result =json.loads(connection.getresponse().read())
printresult 

“Hello, world” does nothing but demonstrate that you can call code in the Parse Cloud, but Cloud functions can be useful if you pass them parameters and have them do database lookups and calculations on the data. If you need to do more complicated tasks, you’ll probably want to break your application up into multiple .JSfiles and load them from main.js using require() statements.

解析仪表板云代码

解析云代码是用JavaScript编写的。在这里,我们可以看到从我的计算机上载的Parse Dashboard中的“ Hello”版本2。

键/值存储

解析云中的键/值对存储易于使用。具体细节随客户端SDK的不同而不同,但是典型的Android Java代码是:

ParseObject testObject = newParseObject("TestObject");
testObject.put("foo", "bar");
testObject.saveInBackground();

可以从任何有权访问数据的应用程序检索结果数据,并在“解析仪表板”中查看。

You can define Parse.Cloud.beforeSave handler functions to perform server-side data validation, and possibly apply data-modification rules, such as restricting the length of strings or removing forbidden characters. To take actions after data has been saved, define Parse.Cloud.afterSave handler functions. Similarly, you can control object deletion by handling the Parse.Cloud.beforeDelete event, and take action after object deletion, such as logging, with a Parse.Cloud.afterDelete handler. These event handlers have much the same flavor as Kinvey’s hook-processing functions.

Parse Cloud functions will be killed after 15 seconds of wall clock time. The beforeSave, afterSave, beforeDelete, and afterDelete functions will be killed after three seconds of runtime. To get around these limits, you can define a background job, Parse.Cloud.job. Background jobs are terminated after 15 minutes of runtime. You can schedule background jobs from your Parse Dashboard.

标准Parse Cloud函数采用JSON中的参数。如果您需要使用其他格式,则可以编写自定义Webhooks并调用 表现 用于处理输入的Web应用程序框架。

解析使用NoSQL数据存储,但它支持以下关系:一对一,一对多以及多对多。这些可以通过指针,数组,解析关系和联接表来实现。解析支持九种简单的数据类型,包括null,并且给定的列在首次存储时可以是任何数据类型。但是,在存储第一个值之后,Parse会将该字段的类型锁定为初始类型。有两种在Parse中存储二进制数据的方式:作为字节流或文件。

解析仪表板数据浏览器

解析云数据浏览器可让您导入批量数据;添加类,列和行;并查看过滤的数据。

推送通知

Parse可以将推送通知发送到iOS,Android,Windows 8和Windows Phone8。在每种情况下,您都必须配置您的推送服务器,然后向您的应用提供证书或凭据。对于iOS,您需要在Apple Developer网站上进行配置。对于Android,您可以在设备支持的地方使用Google Cloud Messaging;否则,消息来自解析服务器。 Windows RT和Windows Phone应用程序可以从Microsoft推送服务器接收推送通知。 JavaScript客户端无法接收推送通知。

用户和角色

Parse具有相当完整的预定义用户系统,包括常规的注册和电子邮件验证,以及针对匿名用户的设置。 ACL系统控制着各个用户可以读取和写入的数据。对于更复杂的用例,Parse支持角色,具有用于角色的单独ACL层和角色层次结构。

毫不奇怪,鉴于Parse属于Facebook,它对社交帐户链接(包括Twitter)具有良好的支持。在每种情况下,您都必须在社交网络平台上设置一个应用程序才能启用OAuth身份验证。

Parse仅在iOS上支持应用程序内购买。奇怪的是,尽管计划在iOS上支持本地数据存储,但Parse当前仅在Android上支持本地数据存储。

整合方式

Parse声称它可以作为Web主机承担双重职责。很好,但这并不是选择移动后端服务的引人注目的考虑因素。

Parse具有与其他服务的九个预制集成。其中三个-Mailgun,Mandrill和SendGrid-用于发送电子邮件。条带用于为信用卡收费。 Twilio发送SMS消息和语音消息。另外,Parse具有Cloudinary,Instagram和Paymill的第三方模块。

据我所知,实现与Parse的企业数据集成需要为数据源编写REST Web服务包装程序,并为Parse编写JavaScript模块。这并不难,但也不方便。有一次,在被Facebook收购之前,Parse拥有一个网页,该网页讨论了如何自己进行企业数据集成。现在已经过去了,而且Parse甚至都不假装进行企业数据集成。

除了自己的多租户云外,我没有看到任何托管Parse的选项。我看不到它被用于需要符合HIPAA要求的应用程序或仅限于欧盟数据的应用程序。

Parse现在具有基于使用情况的定价,范围从低使用免费到每个应用程序每月1,700美元(每秒200个请求),以及每月每1,000个唯一的推送消息接收者(首百万个)五个中心。对于许多应用程序来说,这是相当合理的,但是我可以看到一个流行的消费类应用程序突破了限制,而且我看不到有一家大型企业想要为其重要应用程序提供此类限制。另一方面,成功的应用和大型企业的供应商通常可以谈判价格。

尽管我不认为Parse是大多数企业的首选MBaaS选项,但我可以将Parse看作是一种简单,低成本的方法来为移动应用程序(尤其是消费类应用程序)的后端制作原型。我心中的问题是,从缺少您稍后可能需要的重要功能的后端开始是否有意义,以及从对于流行的应用程序而言可能变得过于昂贵的后端开始是否有意义?大赚钱的人。

这个故事“解析提供移动应用程序,但不用于商业”最初是由 信息世界 .

版权© 2014 IDG通讯,Inc.