开发者社区> 芷沁> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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.

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何使用代码区分service contract和service contract quotation
SAP standard deliver的service contract和service contract quotation的transaction type分别为SC1和SCQ1:
39 0
Introduction to the Keras Tuner
The Keras Tuner is a library that helps you pick the optimal set of hyperparameters for your TensorFlow program. The process of selecting the right set of hyperparameters for your machine learning (ML) application is called hyperparameter tuning or hypertuning.
141 0
A BRIEF INTRODUCTION TO STATISTICS | DEFINITION, SCOPE AND LIMITATIONS
Introduction to Statistics: In the modern world of computers and information technology, the importance of statistics is very well recognized by all the disciplines.
1267 0
SQLServer异常:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。
C#在进行SQL Server数据库插入的时候,发生如下的问题(异常) ,从网上也看到很多朋友遇到这样的问题。System.Data.SqlClient.SqlException (0x80131904): 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。
1768 0
WebService大讲堂之Axis2(9):编写Axis2模块(Module)
本文为原创,如需转载,请注明作者和出处,谢谢!     Axis2可以通过模块(Module)进行扩展。Axis2模块至少需要有两个类,这两个类分别实现了Module和Handler接口。
933 0
Java -- 在Eclipse上使用XFire开发WebService
终于,使用Java完成了一个WebService的例子,其中的一个非常小的问题,折腾了我将近一天的时间。下面给出步骤,说明在Java平台上如何开发WebService。    采用的工具:Eclipse3.1.2 + Tomcat5.5 + XFire1.1 。
983 0
+关注
芷沁
https://www.alibabacloud.com/blog/
417
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载