文 | 邢波涛
与SOA一样,SaaS(软件即服务)的概念也已经出现很多年了(最初叫ASP,微软叫S+S,当然它们之间的概念和商业模式会有差异)。如果说2007年是SaaS真正意义上的概念普及年的话,2008年无疑是SaaS大踏步往前发展的关键一年。从国际软件巨头Oracle和IBM,到国内的知名软件公司如用友、金蝶和阿里巴巴,无疑都把基于SaaS商业模式的中小企业的信息化看作自己利益增长点的长期战略目标。
然而,由于SaaS注定是多个客户运行在同一个网站下的同一个应用平台,所以,如果这个网站出了问题,则会影响到所有的客户均不能访问自己的应用系统和数据。而大规模并发访问,是导致网站瘫痪的一个最重要的原因。
面临大规模并发
基于SaaS商业模式的网站,理论上,是不会有像国内门户网站如新浪和搜狐,每日数千万甚至亿人次以上的访问量的,但是,也不排除在某个时段客户的访问量剧增或者遭受黑客的攻击,而使得网站面临大规模并发的问题。
事实上,从互联网诞生之初,到第一个提供WEB服务的网站开始运行,在进行网站架构设计的时候,无疑都会考虑到大规模并发访问的问题。这个问题,早已经存在数十年了,并且一直是技术开发领域的热门话题,但是真正能够处理好这些技术问题的公司却寥寥无几。基于SaaS商业模式的网站,首先它是一个网站,跟一般网站没有任何区别,图一是它的三层架构示意图:
在数据库服务器和应用服务器之间,WEB服务器本身,一般还都会放置硬件防火墙或者软件防火墙。
但是SaaS应用程序,在数据库设计那一端,又有自己独特的特点。一般SaaS应用的数据库分为三种设计方式:每个客户独立一个数据库;所有客户共用一个数据库,但是每个客户有自己独立的Schema。所有客户共用一个数据库和一个Schema。每种设计都有自己的优点和缺陷。第一种设计一般用于VIP客户,每年/每月交纳的服务费比较多,享受VIP待遇,但是非常耗费服务器资源。第三类设计适用于免费使用的客户或者小型企业,共享数据库资源,但是数据的安全性和权限比较复杂。第三类数据库的设计模式是适用于 |