Discussion and Analysis on the maturity of SaaS mode software platform
in today's small and medium-sized enterprise management software market, especially in China, the demand for applying enterprise management software to optimize operations and improve enterprise productivity has been rising, and SaaS mode based on the concept of software as a service is also favored by many enterprises
saas is the acronym of "software as a service" in English, software as a service (SaaS). It is a delivery mode of software applications, which usually refers to that software providers develop network-based software applications, install and operate them (either independently or with the help of a third party) and let customers use them through the Internet. Customers do not pay for the software itself, but only for the use of the software. Customers can use these applications through specific interfaces or web services
because SaaS, a software delivery model, can allow small and medium-sized enterprises to quickly realize informatization without increasing IT investment, and can also significantly reduce the risks brought by informatization to enterprises. So at present, the enterprise management software based on SaaS mode has occupied a certain market share in the international market, and has been pursued by many small and medium-sized enterprises. Especially in the domestic small and medium-sized enterprise market with a large number of weak it foundation, this model is favored by many domestic and foreign software giants, including SAP, who have invested a lot of resources in corresponding research and development
this paper attempts to study several key elements and common architectures in the design of SaaS mode software platform by studying the domestic and foreign genes, but there are no signs of production. It is necessary to equip the stretching machine with a large stroke to test the tensile properties of flexible packaging materials. Combined with the current market trend, this paper preliminarily discusses and analyzes the SaaS software platform
I Three elements of SaaS system
from the perspective of system architecture, to design a SaaS system that meets the actual business needs and can support simultaneous access by multiple users, we must pay attention to the following three elements: scalable, efficient multi-user support (multi-tenant efficient), configurable
extensibility means to maximize the concurrency of the system and use system resources more effectively. For example, applications, optimize the persistence of resource locks, use stateless processes, use resource pools to share key resources such as lines and database connections, cache reference data, partition large databases, and other technologies
efficient multi customer support is the most important part of designing a system based on SaaS mode. For example, when a user tries to access the company's customer data through a SaaS based customer relationship management application, the SaaS based customer relationship management application it connects may be used by hundreds of end users from different enterprises at the same time. At this time, all users are completely unaware of the existence of other concurrent user access. This scenario, which is very common in SaaS applications, requires that the system based on SaaS mode can support the maximum sharing of resources among multiple users while strictly distinguishing and isolating data belonging to different customers
when talking about configurability in the traditional use environment of locally installed software, it is a common solution to directly modify part of the code for secondary development to meet the needs of current users. However, in the use environment based on SaaS mode, if any part of the business application is modified, this modification may affect the use environment of all current customers at the same time. Therefore, generally speaking, in the use environment of SaaS mode, customers use metadata to configure the system interface and related interaction behavior for their end users, and then wipe them with clean absorbent gauze. It can be seen that a major challenge in designing SaaS system is to ensure that the process of configuring software applications is simple and easy for customers to understand and use directly, and there should be no need to consider paying any additional development and maintenance costs
of course, the above three elements are the key factors for building a mature SaaS system with single instance and multiple users, but designing a mature system is not a simple addition. Developing a SaaS system that meets only one or two of the above elements but meets all customer business needs at the same time has great practical value. However, this situation should only be established under the following premise: if the SaaS system is forced to meet all the above elements, it will not be cost effective
II The maturity model of SaaS system
generally speaking, according to the current industry standard, the system based on SaaS mode can be divided into the following four levels according to its design maturity, and the difference between each level and the previous level is whether it introduces some or all of the above three elements
first level customization
the first level maturity is similar to the software delivery mode adopted by application service providers in the early 1990s. In a system that meets this level of maturity, each customer has a customized application instance that runs on the hardware of the SaaS service provider. In terms of system architecture, this level of SaaS system is very similar to the traditional local installation software. Different end users of the same customer use client software to connect to the same application instance, but this customer instance is completely independent from the application instances of other customers running at the same time by the service provider
therefore, the traditional server client application can be transformed into a system that conforms to this level of SaaS mode on the premise of spending a small amount of development resources and without redesigning the entire architecture. Although compared with other more mature SaaS mode systems, this type of system can bring limited benefits to SaaS service providers, it can indeed enable SaaS service providers to reduce costs by integrating server hardware and management. Therefore, at present, many domestic software manufacturers try to use this means to transform their existing traditional systems into corresponding SaaS systems
second level configurable
in the system that meets the second level maturity, each customer still has a separate application instance, but the difference is that the user instances in the first level are customized separately according to the needs of each customer, and here, each customer uses the same code. SaaS service providers allow customers to change the appearance and system behavior of their applications through detailed specific configuration options. However, different application instances still run completely independently
centralizing all customer application instances under the same code base greatly reduces the service demand for SaaS service providers, because at this time, any small change to the system code will immediately affect all current customers, which can also save the cost of upgrading or modifying each customer's application instance separately. However, compared with the first level maturity model, if you try to transform a traditional server client application into a SaaS system that meets the second level maturity, you will need to spend more re architecture and development costs
finally, similar to the first level model, the system that conforms to the second level maturity model requires SaaS service providers to prepare enough hardware and storage space to support a large number of potential simultaneous application instances
third level configurable, efficient multi-user support
in the third level maturity model, service providers serve all customers by running an application instance, and provide different user experiences and functions to each customer through configurable metadata. Configurable authority control and security policies ensure that the data of each customer is stored separately and isolated from the data of other customers. Therefore, from the perspective of end users, they will not feel that the application instances used are also shared by other customers at the same time
this method solves the problem that with the development of SaaS service providers' business and the increase of customers, more application instances can only be run by providing more server resources. Now SaaS service providers can use the same number of service tank materials and stainless steel plate resources to serve more customers, so that hardware resources can be used more effectively than the system of the previous two levels of maturity model, Reduced operating costs
but the disadvantage of this architecture is that it cannot flexibly improve the system performance. Unless data partitioning technology is used to improve the performance of the database, generally speaking, SaaS service providers will only be able to improve the performance by transferring the system to a more powerful server
the fourth level is configurable, efficient multi-user support is scalable
in this level, which is the last level of maturity model, SaaS service providers will run a load balanced platform with authority verification function to serve many customers at the same time, and the business data of each customer will be stored separately, At the same time, configurable metadata is provided to provide each customer with its own unique user experience. SaaS system meeting such a maturity will easily support a considerable number of customers, because the services and business instances running in its background can dynamically increase and decrease with the demand without modifying the system architecture. Any system change and repair can easily act on thousands of customer environments at the same time, just as it is simple to serve a single customer
III To sum up, the SaaS system that conforms to the highest fourth level maturity model seems to always be the ultimate goal of SaaS system design, but practice has proved that this is not always correct. Generally speaking, it may be more appropriate to regard the maturity of SaaS system as a lever with equal importance at two ends. One end of the lever is independent data and code, while the other end is shared data and code
the degree of maturity model selected depends on the business model, system model and operational requirements supported by SaaS service providers, as well as other considerations based on customer business needs, and there are often subtle links between the above factors:
business model - whether the independent data model meets financial considerations. Data sharing for economic and management benefits often means that SaaS service providers can save a considerable part of management costs. However, in some cases, customers may have different needs for this. For example, although SaaS service providers can ensure that customers' confidential data will never be leaked even if it is stored in the same database with other customers' data, customers may still be subject to strong legal or cultural restrictions, Thus resist or simply refuse to use any SaaS software services based on multiple customers using shared services to access the same application structure. Of course, from the perspective of business model, what is more important is that once the SaaS system based on this business model is planned to operate, the SaaS service provider must prove how the application can ensure the smooth development of business and achieve profitability based on the currently adopted maturity model
system model - whether the application can run under a single logical instance, and whether it can
LINK
Copyright © 2011 JIN SHI