No standard does not equate to SaaS being accepted by the user. We can vitalize some common applications and see what standards SaaS services should have. Today we look at what the standard SaaS CRM should look like in a CRM system commonly used by enterprise users.
In fact, many users are not unfamiliar with CRM, as early as 2000, some enterprises have begun to try CRM system. In many people's eyes, CRM is a set of C/s or b/a application system. And when CRM gets into SaaS, what is the architecture? The SaaS online CRM platform with enterprise-level multi-level and multiple application system architecture. The platform architecture is divided into four layers from a large level, according to the call relationship, the application layer, buffer layer, service layer and storage layer.
Application Layer
Requests sent from the browser, directly by the application layer to direct response; platform is more than leasing users of the online application to achieve, because each user's specific business needs are different, so the application of each rental user is isolated, but the application layer structure is the same, from top to bottom mainly divided into business presentation layer, Business logic layer, business model layer, entity access layer; The business presentation layer is mainly for the different views of the user data, presenting various data expressions that are easy to browse and easy to understand, such as forms, tables, reports, charts, etc. the business logic layer is the concrete implementation layer of the business logic, for the user action, Triggering events and workflows such as the business logic layer to achieve business processing and response, through the business logic layer to the lower business model access to achieve specific logic processing; The business model layer is the specific definition and encapsulation of the business object, which is the most direct mapping of the real business in the platform. The Entity Access layer is the encapsulation of the business logic layer for the business model operation, the update, deletion and query of the entity state of the business model are realized through the entity access layer.
Buffer Layer
Buffer layer mainly for static resources and dynamic Data caching. Static resources mainly refers to the static resource files to be used in the presentation layer in the application layer. As well as the user in the business operation generated files, such as pictures, uploaded files, and dynamic Data refers to the user in the process of using the platform generated business data, in the implementation of the business, this part of the data is mostly read operations more, and write operations are relatively few, so you can for this part of the data according to a specific cache failure strategy mechanism for the corresponding cache; buffer layer of cache for the application layer is transparent, and for multiple applications is transparent, so the buffer layer has greater flexibility and flexibility.
Service Layer
Service mainly refers to the core services of the platform, core services are divided into common services and platform common services, platform common services are not related to the business and platform of the most basic services, such as task scheduling, Message Queuing, mail services, image processing, workflow engine, and common services are based on platform common Services, And for all business has common service, such as log audit, operation Rollback, data security, Full-text Search, authority role, etc. service layer is for platform operation, maintenance the most core service realization, is the platform normal Operation Foundation.
Storage Layer
Storage is mainly divided into two parts: Distributed file storage and distributed data storage, because it is a platform of many applications, as the platform's operation, will produce a large number of business data and resource files, so the problem with massive data is storage, retrieval, analysis and statistics, and so on. The 361CRM platform adopts distributed storage system, which is based on Map-reduce to retrieve, analyze and statistic, and realize the unified operation of massive data.
This kind of structure can do the real distributed network computation, reduce the network traffic effectively, reduce the burden of the client, and can be safe and convenient with the Internet interface. In addition, the company staff or customers to distribute or walk across the country, usually have mobile office needs.
REST Architecture
Rest is based on HTTP, so there is a natural ability to penetrate firewalls on the Internet, rest can simply think of it as lightweight webservice, but it has its own salient features: all resources are accessed through a unified interface (Http/httpsget, POST, Put, ELETE), and the interface is more unified, easy to integrate with the third party, because it is based on HTTPS, so you can divide the resources (response) into cacheable and not cached, as well as the use of browser standard compression mode, effectively improve network performance. You can also insert different intermediate components between customers and resources to improve performance and security, such as proxy services, caching services, Gateway services, and so on; because it is a resource request based on HTTPS, there is no state between this connection and the next connection to the server. Because the 361CRM platform uses a rest architecture, it also determines that the 361CRM platform naturally has the following advantages:
Because rest itself is stateless, the 361CRM platform is distributed naturally, which determines that the backend can realize the linear increase of the platform computing capacity by increasing the server flexibly according to the business volume. All requests are unified through the rest to carry out the corresponding resources and services request, This will ensure that the services provided by the system are decoupled, greatly simplifying the system, thus improving the system's interactivity and reusability, but also the corresponding unified and transparent memory cache according to the business; The client browser can easily implement the asynchronous call processing of rest resources through Ajax. It can also reduce the pressure of application server effectively, and can integrate with third party easily by providing open rest.
Platform Services
The Platform service layer is called through rest, and because of rest, it is easy to achieve smooth upgrade of platform and data compatibility problem by adding resource path and version information in URI.
The Platform service layer implements common services, the services are independent and plug-in, and the platform is implemented using Erlang language for distributed computing, which ensures that these plug-in services can be deployed in a hot-pluggable manner, and that they are truly not down-deployed and updated.
The plug-in architecture of platform service layer determines the unlimited expansion capability of the platform, and can continuously iterate and update the platform in accordance with the changing user's demand, and form a virtuous circle with the user's demand. Configuration custom platform through the server (Apache) custom development, the enterprise user application of transparent isolation, so the platform for different enterprise users according to different needs for personalized customization capabilities. Different enterprise users, generally there are several aspects of the customization requirements: Business objects, workflow, reports, layout, and so on, and the platform framework of CRM platform determines to be able to meet the user's custom needs, mainly divided into the following areas:
Because the user uses the document database, has the loose data structure, therefore the user according to the demand, but may customize own business object freely; The Platform service layer in the background of CRM platform has the corresponding real-time workflow engine, which provides the user with the powerful custom workflow function; CRM platform has the industry is rich report template, users only need to choose according to their own needs, for some custom dynamic data, but also provide templates to redefine the function, can well meet the needs of the user report; Because the platform is application-isolated, the layout of the page, Personalized customization can be easily achieved; The configuration function of CRM platform is powerful, it is not based on the usability of Loss platform application, the CRM platform uses the guided operation in operation, and provides the convenient on-line help, greatly reduces the complexity of the system usage, makes the system more humanized and simpler.
Real-time Instant
The Platform service layer of the 361CRM platform is different from the usual application service, it is the real-time service, the Platform service layer has the corresponding task scheduling mechanism, mail service, message queue and real-time workflow engine, these services are run in real time, so when the business object or business process of the enterprise user changes, These platform services allow instant status messages (via email, SMS, or other IM tools) to be pushed to the user to truly understand the immediate and real-time status of the business.
And the usual application service is static, only when the user login, will carry out the corresponding business status checks, this seriously affected the speed of business processing, for the immediate business, will bring great losses.
Multi-level load
Platform is an online SaaS system for many leasing users, so it will bring a lot of high concurrent requests to the platform, 361CRM platform is a multi-level structure, and the rest architecture is used, rest is inherently distributed, so the load balance of high concurrent belt can be achieved by physical deployment.
The four-layer load solves the concurrent request pressure from the Internet in the link layer, uses the lvs+heartbeat structure of the master and slave, and guarantees that no single point of failure will occur; Most of the pressure on Web apps comes from resource requests, such as pictures, static files, style sheets and other file requests, server pressure of 70% of these resources from the request, so for these static resource requests, through the static resource buffer layer can be very good to solve these requests for the background pressure; After a period of steady operation, the static resource buffer layer can hit more than 80% of the foreground request, which effectively alleviates the pressure of the application server; The seven layer load layer is mainly to do business, and the request of the resource shunt, load balanced to multiple file server and application server; File server and application server are distributed , through the map-reduce of the task splitting and the result merging, making full use of the parallel computing ability of multiple servers, improving the performance of the whole platform; the file cache adopts multilevel caching strategy to solve the frequent requests of high hit files. The data cache is cached by the service tag and the timeliness strategy, and the incremental update of the cache is used to effectively solve the data reading and writing pressure of the backstage. The distributed storage System effectively solves the problems of storing, retrieving, analyzing and statistics of the massive data.
It can be seen that when the traditional CRM system is transformed into SaaS service, there are still a lot of changes in its architecture, and only such changes make CRM better serve the customers on the SaaS platform.
(Responsible editor: The good of the Legacy)