作为新的云服务,后端即服务(BaaS)或移动后端即服务(MBaaS),为移动和Web应用程序提供后端云服务,包括云数据,文件存储,帐户管理,消息推送和社交媒体整合。随着移动互联网的发展,BaaS在开发商中越来越受欢迎。BaaS是应用程序开发的新模式,可以降低开发成本,允许开发人员专注于开发过程本身。
来自移动互联网的BaaS是加速移动应用开发的开发架构。BaaS将后端功能转化为服务,减少服务开发人员的重复构建。
IaaS,PaaS和SaaS
我们大多数人已经熟悉IaaS,PaaS和SaaS,因为这些术语被广泛应用于云计算。
基础架构即服务(IaaS)由AWS和阿里云代表的基础设施服务。
平台即服务(PaaS)由Google APP Engine,阿里云,百度开放平台,腾讯开发平台和新浪开发平台代表的开发平台服务。
软件即服务(SaaS)以微软 Office 365为代表的软件程序服务。
BaaS-PaaS的改进
作为PaaS和SaaS之间的中间架构,创建BaaS的本质是满足移动互联网的快速发展需求,并提供后端功能作为服务。基于PaaS平台,开发人员可利用服务后端功能来开发软件解决方案。
作为移动中间件的替代品,BaaS使用统一的API和SDK将移动应用程序连接到后端云存储,而传统移动中间件则使用本地物理服务来集成后端服务。中间件和BaaS之间的最大区别是云服务的包容。以这种方式,BaaS是移动垂直领域中PaaS的扩展,或更好的是移动中间件与云的组合。
当PaaS简化了应用程序部署过程时,BaaS简化了应用程序开发过程。PaaS是用于执行代码和管理应用程序操作环境的开发平台。用户可以通过使用SVN或Git等代码版本管理工具进行交互。对于开发人员,PaaS主要是一个容器,输入是代码和配置文件,输出是应用程序的各种URL。然后,BaaS平台进一步提炼用户需求。
让我们来看一个用户管理示例。创建用户数据库表(模型)后,客户端应该能够通过RESTful接口直接操作这些模型,其中所有操作都被抽象为CRUD。以前,开发人员必须创建表,开发接口和写检查代码才能启用此功能。通过使用BaaS平台,开发人员只需要定义模型,平台将自动生成相应的界面,使开发人员只能专注于客户端特定的代码。
BaaS有助于转变J2EE平台进行开发,适应现代企业的需求。我们来看一下J2EE PaaS的传统方法。
J2EE Stack引入的一些主要改进包括新的服务和API,如:
1、JDBC(Java数据库连接)JDBC API为访问不同的数据库提供了统一的路径。
2. JNDI(Java名称和目录接口)向远程方法发出请求,之后RMI协议调用远程对象中的方法。它可以以串行方式实现客户端和服务器之间的数据传输。
3. Java Servlet,它是Web服务器的功能扩展。
4. JMS,面向对象消息的中间件之间的通信的应用接口。
随着服务器端开发进入中间件阶段,开发人员可以使用中间件提供的功能和规范来满足各种业务需求。随着J2EE和中间件的发展,开发人员已经形成了云架构的PaaS基础。具体来说,这些中间件和服务器构成开发平台,通过各种规范和协议为开发人员提供综合功能。
J2EE也是当今最常见的开发架构。最初,J2EE被认为是开发的理想解决方案,允许开发人员在必要时深入了解各种技术细节。实际上,这种架构已经成为瓶颈。
由于其强调开发效率高,成本低,因此开发架构具有开发所需的高技术技能等多重缺点。还需要升级开发架构。
通过BaaS提高开发效率和降低成本
理想情况下,在开发典型的网络业务系统时应该采取哪些步骤?
通常,开发过程包括后端开发和前端开发。后端负责一系列功能,包括数据存储,检索,集成,业务逻辑,认证和授权,你可能认为易于实施:
然而,实际上,这个过程看起来更像这样:
在我们的开发过程中有更多的服务和应用被考虑。
构建高可靠性,并发性,性能,长期技术积累和高资源成本的互联网系统对于提升开发能力至关重要。
现有的开发过程是重复的,因为开发人员必须为每个业务组重复相同的工作。在理想情况下,开发人员应该能够通过简单地选择输入并让接口和API生成所需的输出来产生结果。
云计算的发展使这个梦想成为可能。在阿里云IaaS平台上,只需输入所需数量的服务器和配置即可完成服务器部署。此外,RDS,OSS等中间件服务以及阿里云PaaS平台上的消息传递功能,只需单击即可实现存储,消息传递功能。
阿里云正在通过BaaS实施额外的服务,包括认证和授权,消息推送,数据建模,映射和语音。使用BaaS,外部应用程序作为服务可以获得后端功能。
通过将后台功能集成到一个平台中,我们可以构建一个新的开发架构:
BaaS架构由以下组件组成:BaaS = IaaS + PaaS + API + SDK
开发人员可以通过使用API或SDK来实现所需的功能,使他们只能专注于开发特定于业务的应用程序。这种开发架构大大加快了业务,而不需要后台开发和维护,而简化了开发人员的技术要求。
BaaS行业生态系统
自2012年以来,BaaS业已发展迅猛。许多大型企业已经收购了BaaS初创公司,将BaaS纳入其系统。 2013年4月,Facebook收购了Parse; 2014年6月,苹果在年度WWDC上发布了CloudKit;2014年10月,Google收购了Firebase。
Facebook打算删除应用程序之间的隔离信息孤岛,以实现内容通信和切换。有了这个愿景,Facebook已经发布了一个名为AppLinks的“协议”,它依赖后端服务来支持后端的一系列技术,如数据存储,计算和推送通知。
对于苹果而言,CloudKit可以提供全面而有弹性的后端解决方案,以帮助开发人员开发服务器代码并维护服务器要求。显然,苹果的目标是降低iOS应用的开发成本,并保持iOS生态系统的成功。
Firebase创始人JamesTamplin在他的博客上写道:“Firebase和Google Cloud Platform可以完美互补。”就像苹果公司为iOS开发人员提供CloudKit一样,Google还希望开发类似的服务来协助Android生态系统中的开发人员。
BaaS价值和利益
BaaS可以将技术与企业无缝衔接。通过BaaS,业务开发团队可以作为外部创业公司,其核心竞争力在于企业的理解和实施。他们可以及时,经济地开发应用程序,以低成本满足他们的需求,同时承担关键资源扩大其核心竞争力。
将PaaS平台作为产品构建是可能的,将PaaS功能转变为开发人员更容易使用的BaaS服务。同时,开发人员可以操作,维护和分开部署平台,提供高并发,性能和可靠性的服务功能。
此外,作为云产品,BaaS平台可以为中小型开发商和创业团队,企业和组织提供各种与BaaS相关的产品和服务。
以下是BaaS的一些主要优点:
为个人移动应用程序开发人员创建实施阈值对于个人移动开发人员,前端和后端开发功能必须到位,以实现其想法。为此,外包或建立小团队可以帮助您。但这对移动开发人员来说仍然是困难的。
成本控制和满足创业团队的快速发展需求对于创业团队,敏捷性和敏捷性是赢得市场机会的关键。然而,后端开发和移动应用的运维是重复,单调,耗时和耗时的。由于种种原因,创业团队成员通常必须扮演多重角色,而这种劳动力短缺可能会导致产品推迟,并淹没了伟大的想法。
企业的数据安全和敏捷开发需求对于企业而言,自己构建后端是重复而昂贵的。相比之下,采购经过验证的服务,并将企业劳动力放在具有更大创造价值的其他工作中比将劳动力和时间资源用于重复工作量更为可取。尽管如此,不同企业的业务逻辑是不同的。因此,企业的云定制服务变得重要。
Baas是业务发展的后端业务逻辑解决方案的提供商。为个人开发商和创业团队提供免费的公有云服务,并为企业提供私有云定制服务。BaaS旨在消除开发人员的后端开发和部署问题,使他们不再需要购买服务器(使用IaaS),部署后端环境(使用PaaS),开发后端代码(使用BaaS),并可轻松修改业务逻辑(使用SDK和API),从而实现快速实现。
同时,拆除这些非必需品可以降低成本和运行维护工作量。此外,开发人员不再需要了解各种中间件,并担心应用程序的并发性和稳定性,因为它们都将成为简单的服务。
结论
BaaS可以作为移动互联网的基本服务,因为它适用于所有的网络和移动应用。BaaS还可以将云服务和开发者服务结合在一起,并将其免费提供给个人用户,并以较低的成本向大中型企业用户提供。
展望未来,BaaS应与大数据相关联,以一套完整的资源来控制未来。它可以通过使用API和SDK来收集用户行为数据。结合大数据的商业智能,可以提供重要的价值并减少数据障碍。
本文来自阿里云:
https://cloudfocus.alibabacloud.com/Introduction-to-Backend-as-a-Service-(BaaS)-213665