Monthly Archives: February 2011

SaaS中数据可配置性的实现方案

摘自《SaaS架构设计》(阿里软件著)

问题的关键在于如何让数据库兼容来自于不同租户的不同扩展字段

有三种方案:

  1. 按需增加字段   — 为租户A增加一个a字段,为B增加一个b字段 — 多而杂,不被采用

  2. 预分配通用字段 — 先定好一个Ext字段,租户A在这里面填入姓名,租户B在这里面填入性别 — 缺点是预分配字段的个数不好确定

  3. 把横向的数据记录变成纵向的名值对 — 兼容性最好,但复杂性也最高,由于查询复杂,性能也会很差

《漫谈电子商务、SaaS及开放平台》给人的启示

原文在这里:

  
http://blog.open.taobao.com/archives/1237

本文的启示是可以帮你理清SaaS和Open API (Web Service)及SOA之间的关系

SaaS与OpenAPI本无必然联系,只不过
软件用户需要通过这个API使自己的系统与SaaS服务商的系统进行对接,所以SaaS服务商一般要提供API。

而从用户的角度来说,SaaS服务就成了用户SOA系统群的一个成员。 也就是说,
这里的SOA是指用户的SOA,不是SaaS服务商内部的SOA。 (不过有种观点认为SaaS服务商内部的SOA可以更方便地构件对外的Open API)

抛开这篇文章不说,Open API似乎还有一个好处,就是可以让用户通过选取合适的API组合,定制出适合自己的服务。可是用户自己没有开发能力,怎么办? 让SaaS服务商开发吧。而SaaS服务商的客户太多,不可能逐一服务;于是,第三方的开发者出现了,即“应用商店”。这些店主利用Open API开发出应用,卖给用户,从而实现SaaS服务商、用户、第三方开发者的三方共赢。

知名SaaS厂商

摘自阿里软件写的《SaaS架构设计》

   1.Salsforce.com

   2.Google

     a.在线办公软件

     b.搜索API和Google Map API — 这是SaaS ?

     c.Google App Engine — 这是SaaS ?

   3.阿里软件

     a.自己开发了一些在线应用,比如财务管理、外贸管理等

     b.同时还提供了一个互联平台,帮助第三方软件公司销售SaaS软件 (已经关闭了!)

   4.国内其他厂商

     Xtools, 800app等

我看SaaS相对于ASP的唯一创新就是计费模式

ASP 即 Application Service Provider,它指的是把软硬件都交给服务商托管。

SaaS说的那些特点,ASP其实特有,比如 用户无须自己开发,无须担忧防病毒 部等等。

不过我觉得SaaS相对于ASP确有一个创新点:计费模式。

按使用的功能点个数和使用次数计费,从某种程度上可以避免浪费。也仅仅从这个意义而言,SaaS像自来水,接多少水交多少钱。

Oracle:SQL优化的四种基本方案

源自《Troubleshooting Oracle Performance》

1. 调整访问结构,比如加索引,调整聚簇

2. 修改SQL语句

3. SQL Hint

4. 在session级别或SQL语句级别调整运行时参数,比如把all_rows临时变成first_rows  — 注意:如果使用了连接池,则不要使用这个技术。因为它会导致一个物理连接可能被频繁修改参数,而修改参数的开销并不小。

Oracle: 识别低效的执行计划

比较一下执行计划中各步操作的估计行数(E-Rows) 和实际运行时产生的行数(A-Rows),如果两者差别很大,就是一个低效的执行计划。按低效的计划来执行SQL,也会很低效。

这种情况下应该想办法让CBO产生新的、高效的执行计划。而CBO之所以产生低效的计划,往往是因为数据统计出了问题,比如说,直方图缺失。 这种情况下生成一下直方图,可能就可以让CBO产生高效的计划。