A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service
If we want more roses, we must plant more roses.
________ Yao Qun's selection of success incentive Maxim
SAASThe model is a new topic. Many concepts are still unclear, and the research content is complicated. Starting from the software platform maturity of the SAAs model, we analyze the key and representative models in the SAAs model. Focuses on quality management. Analyzes how to improve the quality of SAAS applications from the perspective of quality management.
2 main content of SAAS Model Research
The SAAs model involves a lot of research and implementation content, which can be summarized as follows:
L SaaS Operation Model
Analysis of SAAS service marketing methods, service costs, billing methods, SAAS model Demographic Relationship.
Research and Implementation of SAAS service process management, combined with software engineering principles, ISO2000 specifications, cmme specifications, IPD (Integrated Product Development) and IT enterprise project implementation experience, form a complete set of implementation process management specifications that meet the SAAs model. Standardized consultation, standardized training, scientific control, and systematic use.
Based on the integration requirements of typical applications of SAAS platform and software for small and medium-sized enterprises in China, especially individual consumers, this paper studies the service functions, service standards and standard technologies of Networked Manufacturing and SAAS, design and compile the standardized architecture, integrated interface scheme and related specifications of the networked manufacturing system and SaaS service for small and medium-sized enterprises. Develop standardized integrated interface software tools.
L SaaS business model
The emergence of Enterprise portals, the rise of search engines, the popularity of SOA, and the wave of Web2.0 ...... This road of the Internet has been stumbling, but it has been full of money. In the software industry, Internet and service are the trend of the times.
In the face of online services that have already formed a storm in the United States, it was positioned as China's Saas year in 2008. Are we not waiting or actively investing in this battle of history?
The SAAs business model mainly analyzes the starting point, target customer group, profit model, market capacity, development cycle, billing model, expected revenue at each stage of the cycle, and competitive environment of SAAS in managing software applications.
L SaaS Development Model
SAAS development requires a development chain. We need a unified SaaS platform with custom workflows, Custom forms, custom data models, custom interfaces, Custom reports, unified organization and permission control. A business system, such as CRM, also needs to be built on the platform. These software must first consider how to structure, how to design, how to develop, how to test, how to deploy, how to control the version, how to train and educate, and how to support the service.
In terms of team cooperation, group, wiki, blog, mail, Im, and office online are required for collaboration, and code search is also required when necessary. That is why Google has developed Gmail, Gtalk, project hosting, code search, office online, blog, group forum, and SVN. In fact, what Google wants to build is the SAAs platform and SaaS ecosystem chain. You can see that Google not only provides us with Distributed Global storage infrastructure (collectively referred to as "cloud storage, cloud computing"), various applications, but also provides application APIs, in addition, the app engine and the code community are also provided recently.
L Research and Implementation of SAAS platform implementation model, application model and business model
Through in-depth analysis of the network-based manufacturing system requirements of small and medium-sized enterprises in China, especially the enterprise in the park, establish an operable SaaS platform implementation model, application model and business model that meet the regional manufacturing and Economic Development Characteristics of the park. Make sure that the business model of the SAAs service platform is practical and extensible.
L research and implementation of core business processes of Small and Medium-sized Enterprises
Select an industrial park, Software Park, and Productivity Promotion Center, and describe the current situation of SMEs in three aspects: static layout, dynamic operation, and enterprise management through multi-view integrated modeling, analyzes its organization, position settings, business processes, business models, information flows, knowledge flows, asset flows, overall or partial functional structures, this forms a multi-view knowledge management, supply chain management, project management, and information management model for specific industries.
L Architecture Design of Small and Medium-Sized Enterprise Management Software Based on SaaS Model
This paper studies the architecture of Enterprise Management Software Based on the SAAs model of the international Internet or campus network, and focuses on the SAAs service platform for small and medium-sized enterprises, analyzes and analyzes the Framework Design of the SAAs platform and the architecture and related combinations of business application software.
L configuration and management of application software components based on SaaS Model
The application server is used to manage the components and package of the developed application system, so that the system can be configured, cropped, customizable, and changeable flexibly, ensure that the software system adapts to different management modes and supports business process reengineering and configuration and adjustment of software system functions.
L security policy and encryption technology implementation
The SAAs System Platform for Small and Medium-sized Enterprise Management uses the same platform for a large number of enterprise users. Besides considering the scalability of the basic platform, it also solves the one-to-many adaptability of application software systems and the security policy and encryption technology of data access permissions.
L SaaS service platform Resource Integration
The SAAs service platform provides users with a multi-functional and comprehensive range of services. To integrate resources, including multi-system integration, multi-target control, multi-user collaboration, multi-level permission control technology and development, maintenance, delivery of software service technologies shared by multiple customers, and multi-layer architecture, c/S mode, B/S mode, software technology that centrally runs the system and stores data separately.
L using software componentization technology, develop Component Libraries and architecture libraries suitable for the management model of Small and Medium-sized Enterprises in China
Using object-oriented design ideas and componentized development methods, using interface technology to develop middleware such as workflow engine, Custom reports, data exchange module based on standard protocols, dynamic forms, unified permission control and authentication, provides Component Libraries and architecture libraries for specific services, encapsulates application logic into complete sets, and assembles components into service modules for specific enterprises through system configuration functions, A highly reusable component module with high cohesion and low coupling is designed. Build a Software Component package based on J2EE and. Net platforms.
This software package should fully reflect the superiority of componentization in the software development process and support software re-engineering.
L establish SaaS service platforms for industrial park enterprises, Science and Technology Park enterprises, and other small and medium-sized enterprises
Research and construction provides professional networked manufacturing services for industrial park enterprises, Science and Technology Park enterprises, and productivity promotion centers, it also includes policy and law, software and information sharing, training and consulting, and other basic and common SaaS service platforms serving SMEs.
L basic SaaS operating technology
SAAS is only a one-sided set of B/S software that can store data of Multiple customer units. If you want to handle hundreds of millions of accesses and hundreds of millions of users concurrently and data storage, your operating infrastructure must be a trusted platform.
3. Driving Force of SAAS Model
It is a complicated project to study the SAAs model. We should do the following:
L specialized SaaS experts are required
SAAS is a very professional model. To implement it correctly, you often need a SAAS expert with practical experience as a partner to help. For companies of any size, keeping your business evaluated and optimized with an SaaS expert will help avoid costly errors, reduce future and current costs, and get the return of accelerating business growth.
L financial re-evaluation
For software companies, the biggest internal challenge to enter the SAAs market is to configure personnel and other resources for a completely different revenue model. In the traditional and persistent licensing model, revenue is balanced by a large, cyclical model.
However, in the SAAs model, the customer pays for the use of software on a monthly basis. At the beginning, it may be much lower than the income of traditional licenses. However, for a year or two or longer, SAAS revenues may far exceed the licensing model and it will provide more predictable cash flows. In an ideal SaaS model, continuous investment requires software companies to plan their own budgets and benefits.
L continuous leasing of customers determines the success of SAAS
Therefore, software companies need a set of new specifications, such as 100% normal operation time, high-level security, and Performance Assurance, service-oriented operation methods must be responsible for ensuring the quality and quality of services, and the most important thing is to ensure customer satisfaction. Such satisfaction includes: ease of use, fast data access, continuous and stable services, and data security and backup.
Such requirements put forward new requirements on the SAAs infrastructure to meet the required performance, availability and security requirements. Continuous application monitoring is necessary.
L keep New Faces
Of course, the customer's needs and expectations always change over time. This means that software companies must also maintain a fresh face for their development process. The success of SAAS businesses depends largely on the manufacture and release of products. The customer always puts forward various new ideas to the product. The common characteristics are put forward by the customer and the response from the manufacturer. The freshness makes the customer feel that the manufacturer has always been thinking about and working hard for the customer.
L technical capabilities of software vendors
In an SaaS environment, application code must be optimized to ensure reliability and high performance. In addition, product expansion and new product development must respond to market dynamics. All of these require a streamlined development process tailored to the SAAs environment.
As software vendors constantly optimize their products, they need to quickly improve their development capabilities, instead of simply entering the market, but operating based on pre-end product planning and department management. Software Vendors should gain tools and insights to bring more popular and frequent releases of software functions in a more smooth and controllable manner to meet the changing needs of customers.
L how to promote sales
Since SaaS eliminates pre-licensing and infrastructure costs for end users, purchase decisions are often transferred from the company level to the department level. Therefore, SAAS sales personnel must visit the corresponding department manager instead of IT executives.
Another important consideration is marketing. Marketing technologies that are effective for SaaS products and those that are effective for licensed software are different. It is still worth studying how to influence target customers to pay attention to SAAS products.
1) limits on communication bandwidth
The SAAs business model requires sufficient bandwidth resources. At present, China's communication infrastructure has been greatly developed, but the bandwidth resources have not reached the surplus level. Therefore, bandwidth Resources may be an important factor restricting the development of SAAS.
2) Network Security
The security of the network includes two meanings: one is that the technology can defend against illegal intrusion by hackers, and the other is that the professional ethics of SaaS providers has reached a certain level, the customer's trade secrets will not be disclosed due to SAAS's own reasons.
3) Social Credit System
We can see that the SAAs industry in the United States is developing rapidly, and the credit system they have accumulated over the years is actually a key driving force for the development of SAAS. However, Chinese enterprises generally lack the concept of credit, which greatly increases the transaction costs and investment risks of SAAS users.
4) Brand Factors
Because SAAS is a business model that requires high technical requirements, security requirements, and credit requirements, the brand of SaaS providers is also important.
Although technology is one of the driving force behind SaaS success, the key to SAAS success lies not only in mastering advanced technologies and human resources, but also in relying on industry experience in related business processes and information management, therefore, the functions provided by a few SaaS cannot meet the needs of enterprise users, and cannot meet the functions provided by SaaS.
4. Saas-based software platform Maturity
The software platform of the SAAs model is very complicated. There is no unified conclusion on how to test the maturity standards of the platform, we try to study several key elements and common architectures in Software Platform Design Based on SaaS model at home and abroad, and conduct a preliminary discussion and analysis on the software platform based on the current market trend.
4.1 three features of SAAS Software Platform
From the perspective of application architects, there are three main differences between well-designed SaaS applications and poorly-designed applications. The well-designed SaaS application is scalable, efficient for multiple users, and configurable.
Application scalability refers to the ability to maximize parallelism so that application resources can be used more efficiently. For example, we need to optimize the lock time, stateless, shared threads, network connections, and other collection resources, cache reference data, and partition large databases.
L multi-user efficiency
For architects accustomed to designing independent single-user applications, the multi-user nature requires them to carry out an important thought transformation. For example, when a company user uses the CRM application service to access customer information, the user may connect to dozens of other application instances at the same time, users of even hundreds of companies provide services, and users do not know each other. This requires that the application architecture can maximize resource sharing among different users, but data belonging to different customers must be differentiated.
Of course, if we have to use a single application instance on a server to meet the needs of multiple different companies, it is difficult for us to compile custom code for the user experience of an end user, as long as the application is customized for a customer, it will change the usage of other users. Therefore, we do not customize the application in the traditional sense, but let every customer configure the appearance and behavior of the application with metadata.
The challenge for SaaS architects is to ensure that the customer's application configuration is simple, and there is no need to pay additional development or operation costs for each configuration.
4.2 four-level model of SAAS Software Platform
Generally, according to the current industry standard, Saas-based systems can be divided into the following four levels based on their design maturity, the difference between each level and the previous level is whether part or all of the above three elements are introduced.
Broadly speaking, we can use a four-level model to describe the maturity of SAAS applications. Each level adds one of the above three mature features compared with the previous level.
Figure 1 SaaS software level 4 Maturity Model
1. First-level Customization
Level 1 maturity is similar to the Software Delivery model adopted by ASP (Application Service Provider) in the early 1990s S. In this mode, the software service provider customizes and deploys an application for each customer. Each customer uses an independent database instance and application server instance. The data structure and application code of the database may have been customized and modified according to the customer's requirements. Compared with traditional software, this model only differs in business models, and there is no difference in application architecture.
Each customer has a custom 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, however, this customer instance is completely independent from the Application Instances of other customers running at the same time by the service provider.
Therefore, traditional server-client applications can be transformed into a system that meets the SAAs model at this level without the need to redesign the entire architecture while spending a small amount of development resources. Although this type of system has limited benefits to SAAS service providers compared with other more mature SaaS models, however, it does allow SaaS service providers to reduce costs by integrating server hardware and management, therefore, many domestic software vendors have tried to use this method to transform their existing traditional systems into SaaS systems.
In fact, the traditional C/S and B/S software makes corresponding changes in the business model, which is in line with this model. In this mode, it is difficult to achieve the scale effect because each customer needs to customize and deploy it separately.
2. Level 2 configurable
The level-2 Maturity Model is improved on the basis of level-1, that is, customization for each customer can be achieved through configuration, without the need to customize code and database structures. This model requires software developers to consider the scalability when designing applications. Therefore, flexible configuration can be used to respond to customers with different requirements. In this mode, each customer still has an independent database instance and an application server instance, but each customer's instance is of the same version. Different configurations are used to meet different requirements of the customer. For systems that meet the level 2 maturity, each customer has a separate application instance, but the difference is that the user instance in level 1 is customized separately according to the needs of each customer, here, each customer uses the same code. SAAS service providers allow customers to change the appearance and system behavior of their applications through detailed configuration options. However, different application instances still run independently.
The Application Instances of all customers are concentrated under the same code base, which greatly reduces the service requirements of SAAS service providers, because any minor changes to the system code will immediately affect all current customers, this saves 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, it will require more re-architecture and development costs.
Finally, the first-level model is similar, systems that meet the level-2 Maturity Model also require SaaS service providers to prepare sufficient hardware and storage space to support a large number of potential concurrent application instances.
Compared with the first-level Maturity Model, this mode can reduce the cost of custom development, but it is difficult to achieve the scale effect because its deployment and maintenance are still independent.
3. Level 3 configurable and efficient multi-user support
The Level 3 maturity model conforms to the multi-Tenancy architecture. The full name of Multi-tenancy should be single instance multi tenancy, which is also a single instance multi-tenant. In this model, the software provider can deploy an application instance to meet the requirements of multiple customers.
In the Level 3 Maturity Model, a service provider runs an application instance to serve all customers and provides different user experiences and functions to each customer through configurable metadata. Configurable permission control and security policies ensure that each customer's data is separately stored and isolated from other customers' data. Therefore, from the perspective of end users, they will not feel that the used application instances are shared by other customers at the same time.
This solution solves this problem, that is, with the development of SAAS service providers and the increase of customers, more application instances can only be run by providing more server resources, currently, SAAS service providers can use the same number of server resources to serve more customers. This makes more effective use of hardware resources than systems with the first two maturity models, reduces operating costs.
However, the disadvantage of this architecture is that the system performance cannot be improved flexibly unless the data partition technology is used to improve the database performance, generally, SAAS service providers can only migrate their systems to more powerful servers to improve performance.
When the customer's requirements are not very different and the number of customers is not very large, transforming the application of level 1/Level 2 Maturity Model into an application that complies with the Multi-Tenancy architecture is not too complex. The most common transformation solutions include:
1) Add a tenant table (or a similar table, such as an enterprise table or a personal table ).
2) Add the tenantid field to most business data tables to uniquely identify multiple tenants.
3) modify the logon interface, add an enterprise number input box on the logon interface, modify its logic code, and record the tenantid, 2:
Figure 2 SaaS mode logon Interface
4) When querying and filtering business data, add tenantid =? Filter condition. For example, the initial data model is as follows:
Figure 3 traditional software Data Model
Transformed Data Model 4:
Figure 4 SaaS Software Data Model
After the above simple transformation, the system can basically implement the multi-Tenancy architecture. However, it is obviously not that simple to achieve a level 3 Maturity Model. Such a simple transformation will face the dual challenges of configurability and performance.
In the multi-Tenancy architecture, configuration is more feasible than the second-level Maturity Model, especially the expansion of data models. In a single-tenant model, we generally extend the data model by directly expanding tables and fields. In a multi-tenant model, different tenants may have different data model expansion requirements. It is not feasible to directly expand tables and fields. Therefore, in the multi-tenant model, the data model is extended by using the reserved field and name-value pair.
L scalability Mode
According to the design, the application will naturally include standard database settings with default tables, fields, queries, and relationships that correspond to your solution attributes. However, different enterprises have their own unique needs, and the rigid and non-extensible default data model cannot solve these specific problems. For example, a customer in the SAAs Position Tracking System (saasjob-tracking system) may need to work with a classification code string generated externally for each record storage to fully integrate the system with other processes. Another customer may not need to classify string fields, but must be able to track integer idnumbers. Therefore, in many cases, your development and implementation methods should allow customers to extend the default data model to meet their needs without affecting the use of the data model by other customers.
L pre-allocated Fields
The method to implement data model scalability is simple, that is, to create a certain number of custom fields in each table that you want to implement user scalability.
Table 4-1 contains a set of custom Fields marked as C1 ~ C3 table.
Table 4-1 custom Fields
In the preceding table, records of different customers are mixed in the same table. The user ID field matches each record with the corresponding user.
Associated. In addition to the standard set of fields, we also provide a series of custom fields, each customer can decide how to use these custom fields, and how to collect data for these custom fields.
How can we solve the data type problem? This is also very simple. You only need to select a general data type for each Custom field created, but the customer may think this method is too restrictive. Some customers may need three additional string fields, but we may only provide one string field, one integer field, and one Boolean field ). How can we achieve flexibility?
One way is to use the string data type for each Custom field, and use metadata to track the "real" data type you want to use. Figure 5. Custom fields on the Web page are defined by the project in the metadata table.
Figure 5 Relationship Between Custom fields on the web page and the metadata table
In the preceding example, the user adds a text box called "courier zip code" to the data input screen using the extended feature of the application, and maps the text box to a custom field called C1. When creating a text box, the user uses the validation logic (not shown here) to require that the text box contain integers. After implementation, this custom field is defined by a record in the metadata table, which includes the unique ID number (1017) of the user) the tag ("sender's postal code") selected by the user for this field, and the data type ("integer") that the user wants this field to use ").
You can track the field definitions of custom fields of all applications in a unified metadata table, or use different tables for each Custom field. For example, the "C1" table defines each user who uses the C1 Custom field. The operations performed in the "C2" table are the same, and so on.
Table 4-2 execution relationship table
Table 4-3 Custom Field table
Table 4-4 execution operation table
Table 4-2 stores different custom fields in a unified metadata table and in an independent table.
The main advantage of using an independent table is that each specific field table only contains the rows of users using this field, which saves the database space. (If the unified table scheme is adopted, each user who uses at least one custom field will obtain rows in the unified table, although the user does not actually use null fields, however, it shows available custom fields .) The method of using a separate table also has its weakness, because it increases the complexity of Custom field operations and requires the use of SQL join statements to investigate all custom field definitions of a single user.
When the end user enters the quantity in the field and saves the record, before the application creates or updates the record in the database, the value of the sender postal code is converted to a string. As long as the application retrieves records, it checks the data types to be used in the metadata table and converts the values in the Custom fields back to the original type.
L name-value pairs
The pre-allocated field mode described above is a simple method for users to expand and customize the application data model. However, this solution has some limitations. In a given table, you need to make a comprehensive trade-off between how many custom fields are provided. If there are too few custom fields, the user will feel that the application has limitations. If there are too many fields, the database will become too large, resulting in waste and many fields will not be used. In this extreme case, both cases occur. Some users have too many custom fields, and some users are not enough.
One way to avoid the above limitations is to allow customers to extend their own data models and store Custom Data in independent tables, metadata is used to define the tags and Data Types of custom fields for each user.
Figure 4-6. Custom fields for table extension.
In this case, metadata table store provides important information about each Custom field defined by each user, including the field name (TAG) and data type. When an end user saves a record using a custom field, two things will happen. First, the record itself is created or updated in the main data table. The values of all pre-defined fields are saved, but custom fields are not saved. At this time, the application creates a unique identifier for the record and saves it in the record ID field. Second, create a new row in the extended table that contains the following information:
• ID associated with the record in the main data table;
• The extension ID associated with the correct Custom Field definition;
• Convert the Custom Field Value in the saved record to a string.
The above solution allows each user to create as many custom fields as possible to meet business needs. When an application retrieves a customer record, it searches in the extended table, selects all rows corresponding to the record ID, and returns a value for each Custom field.
To associate these values with the correct custom fields and convert them to the correct data type, the application uses the extension ID associated with each value in the extended table to search for Custom Field Information in the metadata.
The above solution allows you to determine the scalability of the data model on your own, while maintaining the cost advantage of using a shared database. The main weakness of this solution is that it will increase the complexity of database functions such as indexing, querying, and updating records. If you want to use a shared database and estimate that the customer requires considerable flexibility when extending the default data model, this method is generally the most desirable.
L custom Columns
The simplest type of extensible data model is to add columns directly to a user's table.
Figure 7. add custom rows to a dedicated table.
This mode is suitable for standalone databases or standalone architecture applications, because each user has a table set that can be modified independently without affecting other clients. From the data model perspective, this is the simplest of the three extensible modes, because you do not need to track data extensions separately.
However, from the perspective of the application architecture, this method may be more difficult to implement because it allows users to change the number of columns in the table. Even if you can use the customized column mode, you should consider whether you can adopt the pre-allocated field or name value equivalent to other modes to reduce the development difficulty, so that the application code you write can assume that the number of known fields in each table remains unchanged.
There are many best practices in the Multi-Tenancy architecture:
L databases can easily become the performance bottleneck of Multi-Tenancy architecture applications, so actions that may cause high database pressure should be avoided as much as possible; such as big data table Association, complex SQL statements, real-time data statistics, like, or, and other SQL statements that may cause the database index to be unable to be effectively used.
L to ensure horizontal scaling of the application server layer, the application server layer is generally required to be stateless (do not use session, etc.), so as to effectively use the load balance device for load balancing.
L suitable cache policies are used to improve the performance of frequently read content.
L adopt appropriate vertical database splitting to share the pressure on the database server.
L use search engines to meet the needs of fuzzy queries with large data volumes
L use timed statistics + incremental data to meet the needs of some data statistics.
The Level 3 maturity model has certain Scalability (as long as the application server is stateless, it can be scaled horizontally, and the database server can be scaled to a certain extent through a Vertical Split of data tables ), however, because there are only sing instances, after the number of users reaches a certain scale (for example, millions or even tens of millions), its centralized database servers and storage can easily become the bottleneck of system performance, at this time, the system performance improvement is limited based on simple up-scaling (server hardware configuration upgrade), and the cost is very high. This is the background of Level 4 Maturity Model.
4. Level 4 configurable, efficient multi-user support and scalability
Level 4 Maturity Model: Level 3 maturity model. The system is extended to multi-Tenancy multi-instance. The end user is allocated to different instances by accessing the tenant load balance layer, through multiple instances, we can achieve almost unlimited horizontal scaling of applications. To implement the level 4 Maturity Model, the most complicated one is to implement horizontal split of data for the database servers of the original single instance. For multi-Tenancy applications, the most suitable horizontal data splitting solution is to split data by tenant. The solution for horizontal data splitting by tenant is roughly as follows:
L tenant is independently put into a centralized dB.
L The data_db (or similar name) field is added to the tenant table to indicate which business database (Instance) the tenant business data is located in ).
When a user logs on, the user locates the corresponding Business Database Based on tenant, and subsequent business operations and data queries are all targeted at the corresponding business database.
In this level, that is, the final level of maturity model, SAAS service providers will simultaneously serve a large number of customers by running a Server Load balancer platform with the permission verification function, each customer's business data is stored separately, and configurable metadata is provided to provide each customer with the unique user experience they need. A mature SaaS system can easily support a large number of customers, this is because the services and business instances running in the background can dynamically increase and decrease as demand increases without modifying the system architecture, any system changes and fixes can be easily applied to thousands of customer environments at the same time, just as simple as serving a single customer.
It should be said that the software that meets the Level 3 maturity model should be switched to the level 4 Maturity Model, and the architecture complexity will not be too great. However, there is still a lot of development work to be done directly by the application. On the other hand, some developers have to face the horizontal split of such data from the very beginning, increasing the complexity of the system. Another more suitable method is to split the horizontal split scheme of the data as a horizontal plane. During system deployment, the system is horizontally split into the system through configuration, this ensures that the data horizontal split solution is completely transparent to application developers. For SaaS software with Level 3 maturity model, it is easy to use such a framework to transform it to level 4 Maturity Model.
4.3 select the appropriate maturity level
To sum up, the SAAs system that meets the highest level 4 Maturity Model always seems to be the ultimate goal of SAAS system design, but practice has proved that this is not always true. Generally speaking, it may be more appropriate to regard the maturity of the SAAs system as a lever of equal importance at both ends, where one end is independent (isolated) data and code, the other is shared data and code.
Figure 8 leverage model for data separation and isolation
The degree to which the maturity model is selected depends on the business model, system model, and operation requirements supported by SaaS service providers, as well as other considerations based on the customer's business needs, there are also subtle connections between the above factors:
1. 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 amount of management costs. However, in some cases, customers may have different requirements, for example, although SaaS service providers can ensure that customers' confidential data is never leaked even if it is stored in a database with other customers, customers may still be subject to strong legal or cultural restrictions, in this way, you can resist or simply refuse to use any SaaS software service that uses shared services to access the same application structure based on multiple customers. Of course, from the business model perspective, it is more important to plan to operate an SaaS System Based on this business model, SAAS service providers must prove how the application can ensure smooth business development and make profits based on the current maturity model.
2. System Model
Can an application run under a single logic instance? Can it transform a previously desktop-or traditional server-client application into an Internet-based SaaS system, these requirements are often fundamentally different from the SAAs model that requires a single instance and metadata-based development. Therefore, based on financial considerations, investing considerable manpower and material resources to switch the current system to a system that fully complies with the SAAs Maturity Model is often an option that outweighs the loss. When you choose to start over and design and build a network-based SaaS application, you will often feel more free development space.
3. Operation Mode
How can SaaS service providers ensure that the customer's Terms of Service (SLA: Service Level Agreement) are enforced, how to carefully assess terms included in SLA signed with customers, such as system downtime, service options, and disaster recovery, and how to implement these Terms of Service under the SAAs architecture where multiple independent customers share access to a single instance.
The SAAs model is a comprehensive and complex subject. This chapter focuses on the software platform maturity and quality management of the SAAs model starting with the main content of SAAS Model Research.
Through the study of Saas-based software platform maturity, we can learn how to evaluate the software quality standards in Saas mode and how to select appropriate maturity levels. Through the analysis of Saas-based quality management, our quality management is infiltrated into every step of development and service, so that quality management is everywhere. Only in this way can we develop products with the highest customer satisfaction, and enterprises can truly obtain the greatest benefits.
Start building with 50+ products and up to 12 months usage for Elastic Compute Service