Introduction to Backend as a Service (BaaS)

简介: As a new cloud service, Backend as a Service (BaaS), or Mobile Backend as a Service (MBaaS), seeks to provide mobile and web applications with backend.

Introduction_to_BaaS

01

As a new cloud service, Backend as a Service (BaaS), or Mobile Backend as a Service (MBaaS), seeks to provide mobile and web applications with backend cloud services including cloud data, file storage, account management, message pushing, and social media integration. With the evolution of the mobile Internet, BaaS is gaining popularity among developers. BaaS is a new model for application development and can lower development costs, allowing developers to focus on the development process itself.

Derived from the mobile internet, BaaS is a development architecture for accelerating mobile application development. BaaS transforms backend capabilities into services, reducing repetitive construction for service developers.

IaaS, PaaS, and SaaS

Most of us are already familiar with IaaS, PaaS, and SaaS as these terms are widely used in cloud computing.

  • Infrastructure as a Service (IaaS)
    Servitization of infrastructures, represented by AWS and Alibaba Cloud.
  • Platform as a Service (PaaS)
    Servitization of development platforms, represented by Google APP Engine, Alibaba Cloud, Baidu open platform, Tencent development platform, and Sina development platform.
  • Software as a Service (SaaS)
    Servitization of software programs, represented by Microsoft Office 365.

BaaS - The Improvement of PaaS

Being an intermediate architecture between PaaS and SaaS, the essence of creating BaaS is to meet the rapid development needs of the mobile Internet and to provide backend capabilities as services. Built on PaaS platforms, developers can utilize the serviced backend capabilities to develop their software solutions.

Being an alternative to mobile middleware, BaaS uses unified APIs and SDKs to connect mobile applications to backend cloud storage, whereas legacy mobile middleware uses local physical services to integrate backend services. The biggest difference between middleware and BaaS is the inclusion of cloud services. In this manner, BaaS is an expansion of PaaS in the mobile vertical field, or better yet, the combination of mobile middleware and the cloud.

While PaaS simplifies the application deployment process, BaaS simplifies the application development process. PaaS is a development platform for executing code and managing application operating environments. Users can interact with it by using a code version management tool such as SVN or Git. For developers, PaaS is largely a container where the input is code and configuration files, and the output is various URLs to applications. The BaaS platform then further abstracts user needs.

Let us look at a user management example. After creating user database tables (models), clients should ideally be able to directly operate these models through the RESTful interface, where all operations are abstracted as CRUD. Previously, developers had to create tables, develop interfaces, and write check codes to enable this feature. By using the BaaS platform, developers only need to define models, and the platform will automatically generate corresponding interfaces, enabling developers to focus only on client-specific codes.

BaaS helps transform the J2EE platform for development, adapting to the needs of modern businesses. Let us examine the conventional method of J2EE PaaS.

02

Some of the major improvements introduced by the J2EE Stack include new services and APIs such as:

  1. JDBC (Java Database Connectivity) JDBC APIs provide a unified path for accessing different databases.
  2. JNDI (Java Name and Directory Interface) makes requests to remote methods, after which the RMI protocol invokes the methods in remote objects. It can implement data transfers between clients and servers in a serial manner.
  3. Java Servlet, which is a functional extension of web servers.
  4. JMS, an application interface for the inter-communication between object-message-oriented middleware.

As server-end development enters the middleware phase, developers can use the features and specifications provided by middleware to meet various business needs. With the development of J2EE and middleware, developers have formed a PaaS foundation for cloud architecture. Specifically, these middleware and servers constitute a development platform, which provides developers comprehensive capabilities through various specifications and protocols.

J2EE is also the most common development architecture today. Initially, J2EE was thought to be the ideal solution to development, allowing developers to go in depth into various technical details only when necessary. In reality, this architecture has come to its bottleneck.

Because its emphasis on high development efficiency and low costs, this development architecture has multiple disadvantages, such as the high technical skills required for development. It is also necessary to upgrade the development architecture.

Improved Development Efficiency and Lowered Costs through BaaS

Ideally, what steps should you take during the development of a typical web business system?

Usually, the development process consists of backend development and frontend development. The backend is responsible for a series of features including data storage, retrieval, integration, business logics, authentication, and authorization, which you may think are easy to implement:

03

However, in reality, the process looks much more like this:

04

There are a lot more services and applications to be considered in our development process.

05

Building an internet web system with high reliability, concurrency, performance, long-term technical accumulation, and high resource cost is essential for enhancing development capabilities.

Existing development processes are repetitive because developers have to repeat the same job for each business group. In an ideal scenario, developers should be able to produce results by simply selecting inputs and letting the interface and APIs generate the desired output.

The development of cloud computing makes this dream increasingly possible. On the Alibaba Cloud IaaS platform, you can complete server deployment just by entering the desired number of servers and configurations. Furthermore, middleware services such as RDS, OSS, and messaging on the Alibaba Cloud PaaS platform, allow you to achieve storage, messaging capabilities with a single click.

Alibaba Cloud is working on implementing additional services through BaaS, including authentication and authorization, message pushing, data modeling, mapping, and voice. With BaaS, external applications as services get backend capabilities.

06

By integrating backend capabilities into a platform, we can build a new development architecture:

07

The BaaS architecture consists of the following components:
BaaS = IaaS + PaaS + APIs + SDKs

08

Developers can implement desired features by using APIs or SDKs, allowing them to focus only on developing business-specific applications. This development architecture significantly accelerates businesses without complicated backend development and maintenance, simplifying the technical requirements for developers.

09

BaaS Industry Ecosystem

Since 2012, BaaS has witnessed rapid development in the industry. Many large enterprises have acquired BaaS startups to incorporate BaaS in their system. In April 2013, Facebook acquired Parse; in June 2014, Apple released CloudKit in the annual WWDC; in October 2014, Google acquired Firebase.

Facebook intends to remove isolated information islands between applications to enable content communication and switching between them. With this vision, Facebook has released a "protocol" named AppLinks, which depends on backend services to support a series of technologies in the backend, such as data storage, computing, and push notification.

For Apple, CloudKit can provide a comprehensive and elastic backend solution to help developers develop server code and maintain server requirements. Obviously, Apple's aim is to lower development costs of iOS applications and maintain the success of the iOS ecosystem.

James Tamplin, the founder of Firebase, wrote on his blog, "Firebase and Google Cloud Platform can complement each other perfectly." Just like Apple providing CloudKit for iOS developers, Google also wants to develop a similar service to assist the developers in the Android ecosystem.

BaaS Values and Benefits

BaaS can seamlessly link technologies with businesses. With BaaS, business development teams can work as external entrepreneurial companies, and their core competencies lie in the understanding and implementation of businesses. They can develop applications in a timely and cost-effective manner to meet their needs with low cost while committing their critical resources to expanding their core competence.

It is possible to build the BaaS platform as a product, transforming PaaS capabilities to BaaS services that are easier to use for developers. Meanwhile, developers can operate, maintain, and separately deploy the platform, providing service capabilities with high concurrency, performance, and reliability.

Besides, as a cloud product, the BaaS platform can provide mid- and small-size developers and entrepreneurial teams, enterprises, and organizations with various BaaS-related products and services.

Here are some of the major benefits of BaaS:

  • Creating an implementation threshold for personal mobile application developers
    For personal mobile developers, both frontend and backend development capabilities must be in place to fulfill their ideas. For this purpose, outsourcing or building a small team can help. But this remains difficult for mobile developers.
  • Cost control and meeting quick development needs of entrepreneurial teams
    For entrepreneurial teams, quickness and agility are key to winning market opportunities. However, backend development and O&M of mobile applications are repetitive, monotonous and time- and labor-consuming. For various reasons, entrepreneurial team members normally have to play multiple roles, and this labor shortage can cause delayed product launch and aborted great ideas.
  • Data security and agile development needs of enterprises
    For enterprises, building the backend by themselves is repetitive and costly. Comparatively, purchasing proven services and putting enterprise labor in other jobs with greater creation values is preferable to devoting labor and time resources to repetitive workloads. Despite this, the business logics of different enterprises are different. Thus, cloud customization services for enterprises become important.

Baas is the provider of backend business logic solutions for business development. It provides personal developers and entrepreneurial teams with free public cloud services and provides enterprises with private cloud customization services. BaaS is designed to remove backend development and deployment concerns for developers so that they no longer need to purchase servers (with IaaS), deploy backend environments (with PaaS), develop backend code (with BaaS) and can easily modify business logics (with SDKs and APIs), leading to quick implementations.

Meanwhile, the removal of those non-necessities can reduce costs and O&M workload. Also, developers no longer have to learn about various middleware and worry about the concurrency and stability of applications as they all will become simple services.

Conclusion

BaaS can serve as the fundamental service of the mobile internet, as it caters to all web and mobile applications. BaaS can also link cloud services and developer services together and provide them to personal users for free, and to large- and mid-size enterprise users at lower costs.

Looking ahead, BaaS should be associated with big data to control the future with a complete set of required resources. It can collect user behavior data by using APIs and SDKs. Being combined with business intelligence of big data, it can deliver significant value and reduce data barriers.

目录
相关文章
|
IDE 程序员 编译器
适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
1464 0
|
SQL 关系型数据库 MySQL
Flink CDC 2.0 正式发布,详解核心改进
Flink CDC 2.0.0 版本于 8 月 10 日正式发布,点击了解详情~
Flink CDC 2.0 正式发布,详解核心改进
|
4月前
|
缓存 NoSQL 关系型数据库
优惠券功能设计与实现
本文从底层逻辑出发,全面拆解优惠券功能的核心设计要点,结合JDK17、MyBatis-Plus、MySQL8.0等最新稳定技术栈,提供全量可编译运行的实现代码,帮助开发者快速掌握从需求分析到落地部署的完整流程。
401 4
|
Cloud Native Serverless 数据中心
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
阿里云ACK One:注册集群支持ACS算力——云原生时代的计算新引擎
414 10
|
机器学习/深度学习 Python
机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况
本文介绍了机器学习中评估模型性能的重要工具——混淆矩阵和ROC曲线。混淆矩阵通过真正例、假正例等指标展示模型预测情况,而ROC曲线则通过假正率和真正率评估二分类模型性能。文章还提供了Python中的具体实现示例,展示了如何计算和使用这两种工具来评估模型。
760 8
|
数据采集 存储 JavaScript
使用Python截取网页内容的综合指南
使用Python截取网页内容的综合指南
793 1
|
Java fastjson Apache
【数据安全】数据脱敏方案总结
【数据安全】数据脱敏方案总结
1278 1
|
Web App开发 Ubuntu Linux
Linux无图形界面环境使用Python+Selenium实践
【5月更文挑战第1天】Linux无图形界面环境使用Python+Selenium实践
1619 2
|
Web App开发 JavaScript 前端开发
推荐常用的VSCode插件
推荐常用的VSCode插件
682 2
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】Python环境下的机器学习库概览
【4月更文挑战第30天】本文介绍了Python在机器学习中的重要性及几个主流库:NumPy用于数值计算,支持高效的数组操作;Pandas提供数据帧和序列,便利数据处理与分析;Matplotlib是数据可视化的有力工具;Scikit-learn包含多种机器学习算法,易于使用;TensorFlow和Keras是深度学习框架,Keras适合初学者;PyTorch则以其动态计算图和调试工具受到青睐。这些库助力机器学习研究与实践。
565 2