谈谈SaaS的实现架构 - ohmyjava

时间:2024-03-17 17:53:34

谈谈SaaS的实现架构

今日大老板突然问起SaaS,一时不知如何说起。看来得好好补一下了。对于老板来讲,他显然不是关心SaaS的概念。以我看来,更重要的是如何将SaaS应用到企业的实际应用中。所以,如果你想了解SaaS的概念,可以在网络上搜索,本文重点不在这个方面。

SaaS从实现上讲,和以前的ASP(Application Service Provider,应用程序提供商)的概念在本质上是一样的。这里面不得不提到的架构就是B/S结构。即以浏览器为客户端,业务逻辑全部放在服务器上的瘦客户端三层模式模式。

经典的三层模式不需要我来描述,相信大家都很清楚了。不过这个模式在推广后遇到了非常大的问题。主要是客户不能满意在浏览器上的客户体验。比起胖客户端来讲,浏览器上的体验确实让很多客户失望。

不过最近随着Ajax的兴起,很多人看到了可能,在浏览器上实现有着丰富客户体验的客户端已经有相对比较完整的框架。在SaaS的概念再次提出的时候,很多人也将希望压在这上面。

从ASP到SaaS,大家不知道有没有注意到一些变化。当Ajax提出的时候,其实很多业务逻辑已经前移到了客户端。这和实现一个胖客户端的唯一差别就是:浏览器基本每台机器都有。

MS显然也是看到了这点。这几年微软在推行智能客户端的概念的同时,也悄悄地在它最最赚钱的软件上动起了手脚。那就是它的Office。现在的Office几乎可以做到每台机器都安装着。而且Office都是可以执行VBA的。其扩展性比起浏览器毫不逊色,而且还能有更好的客户体验。事实上,Office之所以让广大客户接受,也正是基于它的易用性和丰富的客户体验。

O/S架构,是的,这个概念几乎已经形成!微软借着Office的普及性,完成了类似B/S的架构。这个和智能客户端刚好是同一个理念。

我并不是想将所谓的O/S架构详细介绍给大家,而是想从这个概念的引入,提醒大家SaaS的概念并不是和B/S是等价的。也就是说,SaaS的实现架构并不是只是B/S那么一种方式。

在选择架构模型的时候,我们要关注SaaS的重点。那就是最后一个S:Service。你的软件必须让用用户依赖于你网络上提供的服务。对于软件供应商来讲,其运营模式也就是如何持续稳定地提供这个Service了。如果只是从实现的角度来看,服务就是服务,它是用来被调用的程序模块。让你的客户端依赖于你的服务,你的SaaS模式已经差不多了。

SaaS的实现架构中,必须保障提供几个服务:

  1. 服务查询服务。寻找Service的服务。
  2. 模块更新服务。保障客户端模块的更新。微软提供的OneClick在这方面是一个好的实现模式。
  3. 业务服务容器。用来提供真正的Services。
  4. 离线更新服务。保障分布式系统的数据安全。

如果我们能想用户提供一个统一的运行平台,类似IE、类似Office,其实完全可以在此基础上开发SaaS模式的应用。其实很多在线游戏都已经采用了这种模式,特别是网游。你难道不认为他们也是SaaS吗?

虽然从老板的问话开始的,但只有对实现理解深入了,才能更好地将概念应用到实践中。