A lot of recent SaaS applications, this model is a future trend, the greatest benefit of this model is the benefits of cloud computing-saving resources. Many people on the internet feel that SaaS is simple, is a multi-user leasing model. This understanding can not be said to be wrong, because SaaS does generally use multi-user leasing model. But this statement is very incomplete, is a elephant. And many people think that the architecture of the SaaS model is very simple, it can only be said that he did not really do the SaaS model or the SaaS application they do is a very low-level mode, is not the scope of cloud computing, is a local area network to put things into the public network only.
As a cloud computing model, a typical SaaS model requires the following three models of computing support:
1) Distributed computing model
This is the basic model, but also the foundation of the latter two models; now the very fire of Hadoop is actually just one of the distributed computing models, and not particularly complex;
2) Distributed data storage and access model
This model is many, gfs,hfs,tfs belong to this category, of course, some distributed database including Ali's ocean database belongs to this category; The distributed database access and access model is the basis for SaaS enterprise applications, and it is certainly possible for enterprise-level applications to use the underlying data nodes without a database. But if you use a database, the benefits are very large, at least a lot simpler. Existing distributed databases are not greenplum for SaaS applications, especially SaaS enterprise applications, but need to be weighed against the business itself of your SaaS application (primarily the problem of data separation and efficiency). Especially when related to the query, for a user separation and isolation of enterprise applications, if the data node using a relational database, then 80% of the enterprise application of the associated query will fall into a node, query efficiency will be higher. If the use of distributed databases, it is generally difficult to do this, because the distributed database processing such queries, it is necessary to centralize the data into one node for processing, although some strategies can be used to reduce invalid data transmission, but play less effective. (A and B tables in a distributed database are not necessarily in a data node)
3) Distributed deployment and operation and maintenance model
As a SaaS application under cloud computing, it must be able to support scale-out (Scala out), and the addition and management of these nodes (including application nodes and data nodes) is entirely human-based, and is largely impossible, so as long as it is a SaaS application under the cloud computing model, Distributed deployment and maintenance support model is necessary;
The above three models form the basis of the SaaS application, but the SaaS application has its own particularity, because it involves the transaction, the data collation and the separation, the SaaS application's distributed data storage and the access often cannot simply adopt some existing open source distributed system, or some open source distributed database system, Because in large-scale SaaS applications, the segmentation of data (the basis of distribution) is often not single, and the segmentation of data will affect the routing strategy of data access. This leads to a general-purpose approach that is less suited to specific needs.
This foundation of SaaS is actually very technical in nature, and the SaaS business application itself is more logically difficult, rather than simply accessing the database with an isolated field. General SaaS Systems in addition to basic multi-user leasing (note that SaaS design must be based on soft isolation, which maximizes freedom without compromising database isolation and database instance isolation) and involves online licensing, multi-time zones, multiple languages, and the ability to configure features, pages, and processes. In particular, deeper applications can involve online cross-enterprise resource sharing and process collaboration, and dealing with such issues can be tricky. In particular, SaaS online enterprise applications, you need to face more complex issues (business rules of the division and the combined). If you do not take into account these problems when you do the architecture, there will be a lot of nightmares behind you. You may not even be able to play.
SaaS application is not simple, even if it is a CRM online application, is also very business and technical content. According to my analysis, the sale of customers and sales are easy to combine a lot of capital, but their system architecture is not really the real meaning of the cloud computing model of SaaS. Kingdee, UF, speed up the online application although not in-depth research, but through their user's feedback, I feel that 60% of the possibility is pseudo cloud computing SaaS application. Of course, if you know the insider, you can tell me.
If it is just claiming, the difficulty is not big, but if the real, Cloud computing SaaS application is actually difficult.
????
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
On the difficulty of SaaS application development