什么是后端-javascript是前端还是后端
什么是后端即服务
后端即服务(Backend as a Service; BaaS)是指专为移动应用开发者提供整合云后端的服务。开发者无需过多研究服务器端程序,而只需调用云计算平台提供的API,使用相应SDK,就能迅速完成数据存储、账户管理、消息推送、社交网络整合等功能。
BaaS也作为移动后端即服务(MBaaS)而出名,是连接移动应用到云服务的一种方式。作为移动中间件的一个备选方案,BaaS方法使用统一的应用编程接口(API)和软件开发工具包(SDK)来连接移动应用到后端云存储。它也提供一些常用的后端功能,如推送通知、社交网络集成、位置服务和用户管理,以及后台服务联合。
后端即服务的兴起
移动应用开发领域有一个BaaS(后端即服务:Backend as a Service)的概念。BaaS是指为移动应用开发者提供整合云后端的边界服务。现在,BaaS生态系统正从一个小众垂直领域迅速成为非常重要的行业环节。
BaaS服务提供商的基础服务是数据/文件存储,主要帮助App开发者解决存储的问题。更进一步的集成服务则包括:账户管理、消息推送、社交网络整合、地理位置与广告等。BaaS分两种模式:一种是API模式,让开发者自己拓展代码;另一种是SDK模式,提供如iOS、Android及Windows Phone等的SDK。
国外比较知名的BaaS服务提供商是StackMob和Parse。在国内,Talking Data、友盟、Bmob、百度和新浪开放平台均有相关业务。
后端即服务的用途
BAAS为应用开发提供后台的云服务,在当前的移动互联网+云计算热潮中,尤其为这2类应用提供了大量的技术支持。包括提供存储、托管环境,也包括提供推送等通行后端技术能力。有单独的mBAAS的说法,但大多数人习惯将BAAS等同于为移动互联网应用开发而提供的云服务。
BAAS作为应用开发的新模型,进一步实现专业分工,有助于应用的成本下降和市场的进一步繁荣。
BAAS分公有云和私有云,公有云面向开发者提供运营服务;企业私有云是企业构建移动信息化应用的基础平台,大量的移动应用基于该平台开发、管理,能有效降低企业的移动信息化投入成本。
企业私有云也称E-BAAS。
后端即服务相关问答
1.BaaS和移动中间件最主要的区别是什么?
BaaS和移动中间件之间最主要区别在于他们对于后端流程的方法——或者说,是应用后端连接前端的方法。传统的移动中间件通过本地的物理服务把后端服务集成到应用中。BaaS正相反,它通过云集成后端服务。
2.BaaS对移动应用开发产生怎样的影响?
通过移动集成点到云中,BaaS提供了一种新的方法来连接后端服务和移动应用。通过使用统一的API和SDK,BaaS把移动应用 的前端连接到后端的各种基于云的服务上。这是与典型的移动应用开发相背离的,典型的移动应用开发要求开发人员吸收每一个后端服务的API。
3.BaaS是怎样影响开发人员的?
后端即服务为开发人员消除了构想他们自己的后端的需求。BaaS供应商向开发者提供了现成的、可定制的后端,它已经配备了常见的后端功能。因此,该方法的支持者说它使开发人员的关注点从耗时、复杂的后端开发上转移了,并给他们更多的时间投入到前端工作上,如用户界面设计等。移动应用的扩展性是移动开发人员的一大痛点,它也是由BaaS供应商负责的;在云中,应用是根据用户和流量的变化自动扩展的。
4.BaaS的使用者是谁,以及什么时候使用?
BaaS已经发现使用了企业和非企业模式的开发人员。使用BaaS的开发人员常常在寻找一个可以简化建立移动应用复杂性的方法,从跨平台开发的困难到高效后端流程需要的技能集合。例如,那些习惯于前端工作的开发人员,如在客户端从事JavaScript工作的人,可能会转向BaaS,从而以免连接后端数据到前端的工作。
承担后端构建的工作是一个耗时而昂贵的任务。对于那些不想花费时间和金钱来建立他们自己的或培训他们在后端基础设备的前端开发人员的团队来说,BaaS是一个外包的选择。
5.BaaS的最主要问题是什么?
虽然BaaS开始着手解决厂商绑定的问题——BaaS厂商说,他们给开发人员提供他们期望的灵活性来部署和迁移应用——技术绑定也是一个主要的障碍。把集成在后端服务的唯一码移到新的平台或供应商上仍然有难度。
后端即服务产品的案例
案例一:StackMob
StackMob是一家提供移动应用后端服务的公司,成立于2010年1月,有人把StackMob称为移动版的Heroku。StackMob的创始人之一Ty Amell,2004年从西北大学获得MIS专业的学士学位。2007-2009年间什么是后端,他在知名的音乐分享网站imeem担任工程经理,负责移动和前端产品,经历了从0到120万用户的全过程。他意识到,如果能够建立一个平台,帮助许许多多移动开发者提供后端云服务,便能够大大简化他们的工作。
StackMob的云计算系统为App开发者提供实时分析、消息放送、Facebook/Twitter集成、Amazon S3集成、广告、地理位置、盈利等服务。开发者只需几十分钟什么是后端,就可以通过Web界面勾勾选选,定制一个API架构,而且能很快在云端激活。StackMob支持Java、Ruby、Python、Lua和各种JVM语言。
StackMob支持iOS、Android以及HTML5平台。StackMob采用免费模式,入门是免费的,当使用平台的开发者开始有更多用户并挣钱后,会根据用户数、资源使用情况来收费。
案例二:Parse
Parse是由YC孵化出来的,专为移动应用提供后台服务的云计算平台,为开发者包办繁琐的后台服务,让开发者只需专注于具体的开发工作。它提供任意数据保存,照片或其它文件存储,发送推送通知,创建用户帐号,使用地理位置数据以及添加Facebook/Twitter帐号登录等服务。
Parse用户无需再费时费力地折腾Facebook帐号连接和推送通知等服务器端的功能,只需把相应SDK拖放到应用内即可。
Band of the Day是苹果App Store 2011年度一款重量级的应用,它就使用了Parse的服务。此外,有些大公司也在使用Parse。
案例三:Kinvey
Kinvey同样是一个为移动应用开发者提供后台创建服务的平台。Kinvey成立于2010年,位于马萨诸塞州的剑桥市。Kinvey强调加速移动应用开发与销售的“即取即用”理念。Kinvey的中间层与数据层均托管在多个云服务提供商处,包括 Rackspace、Amazon与Microsoft。所有通过Kinvey存储的数据都会有四种方式备份:Amazon EC2、Windows Azure、Rackspace以及Kinvey自己的服务器,假如其中一两个出现了故障,用户的数据依然安然无恙。
案例四:Sencha.io
Sencha.io号称“第一”个移动HTML5云,由Javascript网页开发框架提供商Sencha发布。这项服务允许应用开发者构建基于浏览器的应用而不用写服务器端代码或者管理托管代码。Sencha.io Data,Sencha.io Messages,Sencha.io Login 和Sencha.io Development是Sencha.io目前提供的服务。开发者只需要写很少的Javascript代码就能实现数据存储、信息发送、信息监听、应用部署或者使用Facebook、Twitter的账号登录。Sencha公司表示,他们的目标是将多用户和多设备功能整合到应用中去,帮助开发者减少从零开始写代码带来的负荷。
案例五:Bmob
Bmob是国内第一家专注于移动应用云存储的平台,是基于PaaS模式的云计算平台。开发者可以使用Bmob设计存储框架、获取应用密钥、下载SDK并嵌入应用程序、调用相应API,应用发布后查看存储的统计分析数据,整个流程能够快速实现,并且Bmob的云服务是免费的。
案例六:Amazon EC2
Amazon EC2(Amazon Elastic Compute Cloud,亚马逊弹性云计算)是由亚马逊公司提供的Web服务,是一个让用户可以租用云电脑运行所需应用的系统。Amazon EC2虽然不属于严格意义上的BaaS体系,但它是国外最主流的云计算服务,拥有强大的生态系统和用户覆盖面,EC2甚至为中小型BaaS服务提供商提供基础设施租赁。EC2称得上广义的BaaS云服务。当下最热门的图片社交应用Instagram就是EC2平台的客户之一。
一款App一旦流行起来,发行商还需考虑在极大并发量情况下的数据处理问题。上周,Instagram宣布其月活跃用户数达到1亿,如果背后没有强大的后端云服务作支撑,是很难并发处理这些海量图片信息的。
Instagram于2010年在洛杉矶开始提供服务,创业时只有一台租赁的服务器,为了适应迅速发展的业务情况,Instagram较早地采用了EC2。
Amazon EC2是云计算IaaS(Infrastructure as a Service,基础设施即服务)层面的佼佼者,Instagram创始团队在创业之初就意识到,只要他们能够在较早时期利用IaaS来构建系统,就没有必要像其他创业公司那样,将资金投放在存储器和服务器上了。