图片来源
视觉中国文
郭华
最近我在看最新一期的Gartner云数据库魔力象限,发现了一家非常特别的公司InterSystems。
最先让我觉得特别的是它上榜的时间。我把所有公司首次上榜的时间算了一下,平均是8年,但InterSystems却长达4年,不仅显然高于平均值,而且显然高于其他所有公司的值。
于是我就对它做了一些研究,然后发现它远比从时间轴上看过去的要有意思,它有这里唯一的业务型数据库,也是这场零和游戏中罕见的非零和玩家,它背后故事漫长但不枯燥,非常值得一叙。
图1:Gartner01云数据库魔力象限及其上榜时间表
注:首次上榜耗时规则,以该公司首次投入数据库市场的时间为起点,以第一次登上Gartner魔力象限为终点,但如果是首榜就上榜的,统一记为0,因为实际上正是这些公司开创了数据库市场。
01零和游戏
数据库的市场竞争常常是零和的。
零和的概念来自博弈论,指利益总和一定,竞争只实现其在不同参与主体间划分的一种状态。
数据库是存储和处理数据的工具,而从数据源头看,同样的需求,数据一般只会进入一个数据库,所以这显然是零和的。
只不过得益于数据量的持续爆发,市场总规模一直在扩大,零和的残酷性便被掩盖了,似乎所有数据库都在增长。但如果把数据库按类型进行划分,就会发现每个类型都会被一两个产品所统治,比如关系类型下的Oracle、内存数据库下的Redis、云数仓下的Snowflake等,这就是典型的零和特征。
0抓错牌
零和游戏的唯一目的是赢,所以作为数据库厂商,一开始抓到什么牌是非常关键的。
从这点看,InterSystems的开局并不十分有利。
数据库的主流是关系型数据库,WilliamBlair的数据显示,关系型数据库占据了80%以上的市场份额。
图:WilliamBlair数据库市场分布
关系数据库始于年,这年IBM提出了数据库的关系模型。然后Oracle出现了、IBMDB出现了、微软SQLServer也出现了,它们抓到了数据库历史进程中最主流的牌,于是自年代起,便长久的统治了数据库的关系时代。
图3:WilliamBlair数据库市场分布
InterSystems成立于年,从时间看比Oracle还晚一年,它抓了另一张牌,MUMPS数据库。
MUMPS全称MassachusettsGeneralHospitalUtilityMulti-ProgrammingSystem,翻译过来是麻省总院编程系统,顾名思义,医院的信息化需求而存在的一种技术。
MUMPS的起源其实比关系数据库更早,是年,那时计算机还处于蛮荒时代,现代操作系统的鼻祖Unix、现代编程语言的鼻祖C语言,以及现代数据库的基础关系模型,都要在3年后的年才会出现。所以MUMPS没有享受到后来的理论红利,它闭门造车的兼顾了很多方面的工作,以至于在现代技术的视角下它看起来有些怪——实际上,MUMPS数据库有时候还被称为M编程语言。
MUMPS在技术上属于层次型数据库,适用场景有限。在以关系代数为基础、更有通用型的关系数据库出现后,层次型数据库就被打上了前关系时代的标签后放进了历史的存档里,除了偶尔为佐证关系模型的优越性时会拿出来外,很少再被讨论。
所以InterSystems开局抓的是滚滚潮流中的非主流牌,甚至是逆流牌。
03打好牌
不过InterSystems没有打算换,它要把这张牌先打好。
它选择了跟业务结合的打法。
MUMPS有个优点,那就是和医疗的需求特别匹配,这在其他所有数据库中是独一无二的。医疗信息化的典型场景是电子病历,而电子病历就是一种层次化的数据结构,MUMPS的全部设计都为处理这样的东西而存在的。
图4:电子病历数据结构示意
所以MUMPS很快得到了医疗用户的认可,然后有了用户组和开发委员会,并在年形成了第一套MUMPS标准,ANSIX11.1-。接着在这个标准下,又出现了一些商用MUMPS供应商。
从这里开始,InterSystems就开始琢磨MUMPS这张牌的打法。
那时市场的主流有两种,一种是独立发展,一种是业务耦合。
前者以DEC为代表,模式和任何通用数据库都一样,就是独立提供商业MUMPS产品。
后者以Meditech为代表,把MUMPS和应用做到一起,对外只售卖医疗应用系统。
Meditech成立于年,其创始人是NeilPappalardo,而NeilPappalardo也是MUMPS的创始人。Meditech开发了一种MUMPS的变体——MIIS。MIIS全称MeditechInterpretiveInformationSystem,与MUMPS标准不兼容,后续也逐渐脱离了主流MUMPS的发展,成为了Meditech的专用技术。
InterSystems发展出了一种折中的方式,它找到了一个合作伙伴Epic。
Epic成立于年,定位和Meditech一样,对外提供医疗应用系统,但不同的是,它使用InterSystems的数据库。
所以它和InterSystems既不独立,也不耦合,是一种结合的打法,一个做应用,一个做数据库,两个相加等于Meditech。
亚当斯密说分工带来生产力上升,但分工程度取决于市场容量。
医疗信息化在年代那个时间点,应该是处于刚好要分工但规模又没大到能分那么细的阶段。所以InterSystems这种业务结合的中间打法最终占领了上风。那些独立发展的产品,比如DataTree的DTM、DEC的DSM、Micronetics的MSM,分别在年、年、都卖给了InterSystems。而Meditech不仅失去了MUMPS市场,甚至在医疗应用领域也被Epic超越了。
图5:美国电子病历市场份额
InterSystems和Epic像双子星一样,各自统治了自己的角落。
04换牌
但角落永远是角落,当站稳这个角落的时候,InterSystems决定换牌。
在年代的大部分时间里,InterSystems的营收都是万美金,它说它成了一个小市场的国王,但这个小市场不会增长,也没有未来。[1]
外面的数据库世界却正飞速发展。
Oracle的成立时间和InterSystems差不多,在年的营收和InterSystems也差不多,都是万美金左右。但三年后的年Oracle的营收就到了5亿美金,十倍的增长。实际上如果再往后看一下的话,到年这个数字将会到达亿。[]
面对这种巨大落差,InterSystems准备走出角落,换一张通用数据库的牌。
它决定开发一个与时代接轨的、更具有通用性的新产品——Caché。这是一个艰难的决定,不亚于IBM孤注一掷System/,幸运的是它成功了。
Caché于年发布。
InterSystems是这样介绍Caché的:第一,它是Oracle的竞争对手;第二,当它的用户——比如Epic,在受到其他MUMPS的用户——比如Cerner——挑战的时候,对方在技术上已经输了,因为它用的是过时的东西。[3]
前者的意思是它是通用数据库,后者的意思则是它还保持着医疗领域的垄断性竞争力。
Caché是法语,本意是隐藏,但从Caché开始,InterSystems反而走向了公众,按照其