蔡学镛,台湾清华大学硕士,曾任程序员、技术经理、技术总监。除了将技术知识用于软件开发相关的工作之外,他也担任过培训班讲师、研讨会讲师、技术图书翻译与编辑、技术专栏作家等工作。他撰写的《Java夜未眠》一书,至今仍常被IT圈提及。蔡学镛于1995年就开始玩Java,在2001年进入.NET领域,近年则倾向于使用动态语言。因为工作关系,他接触到CEP(Complex Event Processing),并完成了一套相应的系统。InfoQ编辑在QCon全球企业开发大会(北京站)期间,就CEP相关的技术,企业采用CEP的价值等话题采访了蔡学镛。

\

InfoQ:按惯例,请您先做一下自我介绍。然后,再向我们的读者介绍一下您在这次大会上讨论的主题?

\

蔡学镛(以下简称学镛):大家好,我是支付宝技术部的蔡学镛(编辑注:现已离职),这次到QCON上演讲的主题是CEP,刚好也算是我在支付宝的一个项目的心得体会。基本上,CEP系统能够让我们把很多来自四面八方,各个系统的一些事件搜集起来,从中萃取出一些更大、更有意义、更有用的信息,这些信息不管是对制订公司、运营和行销的决策,还是对发现系统潜在的问题、漏洞和威胁都有帮助。这种系统就是CEP系统,它是准实时的,跟其他一些系统,比方说数据挖掘,又不太一样。那些系统是在事后才对过去的历史数据进行挖掘。这次跟大家分享的就是CEP这个技术。

\

InfoQ:在未来的企业中,CEP会充当一个什么样的角色,它如何跟我们企业中其他的系统进行交互,完成企业的业务目标?

\

学镛:大家之所以会对CEP比较陌生的原因,是因为CEP过去主要用在银行业、金融业。例如,他们可以通过CEP系统来判断某一些持卡人的信用卡操作是有问题的,可能是这个卡掉了,或者可能因为卡所处的状态而就把卡给锁住了。但是这样就太局限了,我认为CEP的用途非常广,它可以用在任何企业里面。任何一家企业里面都有许多系统,系统之间交互和系统内部都会产生大量信息,如果我们能把这些信息善加分析、处理和使用的话,会对企业经营有很大帮助。至于怎样应用,就很难讲了,必须要看企业是哪种类型。但我相信,不管是什么样的企业都可以使用到CEP。

\

InfoQ:在选择CEP产品和解决方案的时候,我们要考虑哪些因素?市面上主要的CEP产品有哪些,各有什么优缺点?

\

学镛:市面上提供CEP产品的厂商,基本上就是做数据库的那几家,我就不特别提及了。另外一些较小的厂商,如TIBCO,也不能说它小,它其实是CEP最大的厂商,号称有40%的市场占有率,而且我看他们的CEP确实也不错。还有一些小厂商,像StreamBase;另外一些开源的,像EsperTech,都可以在产品选型时考虑。

\

那么,要考虑哪些因素呢?我觉得有两大重点。第一,所提供的EPL语言。EPL语言可以让我们描述哪些事件,在什么状况发生了我们感兴趣的符合条件的事件。这个描述语言本身如果不够灵活,表达能力不够好的话,那势必这个系统买回来对你的作用也不大,甚至可能会造成很严重的误报警率。误报警率一高,这个系统就不堪使用,所以我觉得EPL是最重要的一个考量点。除了EPL之外,我认为引擎本身的效率也非常重要,因为CEP面对的是海量事件、海量数据,如果没有一个很强有力的算法和引擎的话,整个系统效率绝对会是一个非常大的问题。

\

InfoQ:既然市面上已经有了这么多CEP的产品,为什么支付宝还选择自行开发?这个自行开发的解决方案,跟这些产品相比,有什么独到之处?

\

学镛:其实,早期我们评估过是否采用开源CEP框架。但我的评估结果是它的能力基本上达不到我们的要求,原因就是刚才我提到的第一点,EPL的描述能力。所以,我认为可能还是自行开发会好一些。我们采用了状态机的设计方案,后来确实证明这个方案完全符合支付宝现金流的需求,我们现在不管是担保交易,还是更复杂的业务,再复杂的规则,即便整个状态图大如地图,这个引擎都能够把它描述出来。

\

确实,现在回想起来,当时决定自行开发引擎的做法是对的。但我不建议所有企业都自行开发,还是得量力而为。因为,如果你做的东西是别人已经做好的话,你可能得评估,自己有没有办法做得更好,或者是自己花一点钱就买得到的东西,是不是得自己开发?

\

InfoQ:这个CEP解决方案目前在支付宝内部的应用情况怎样,目前处于什么样的阶段,大概主要应用在哪些业务中?

\

学镛:支付宝内部其实很多部门都在用CEP了,虽然我们不会特别强调CEP这个词,但其实都已经在用这样的概念了。采用的解决方案有很多,有买来的,有自行开发的。例如,支付宝里面有一个非常有名、非常经典的例子,CTU。CTU大家应该都看过,这是一个24小时反恐的政府组织,他们做的事情就是要针对恐怖分子去做一些应对措施。支付宝因为牵涉到金融,所以我们也对这部分特别谨慎,这一直是支付宝非常核心的技术,大量地在使用CEP。而且每隔一段时间就会发布新的供给模型,让支付宝会更加完善。这是一个例子,它们是用来防止网络攻击以及洗钱等这些行为。另外,支付宝还有一些比较小的CEP应用。比如,在营销、协助公司决定生产或判断趋势方面都有应用。至于我开发的这个总督系统,其实是比较新的,它的目的就是用来侦测我们各个系统之间的信息交互有没有问题,属于比较动态的系统校验。这些都是支付宝里面用到的CEP。

\

InfoQ:您在演讲时候也提到准确性的问题。您开发的这个CEP解决方案,在性能和准确性方面表现如何?有没有相应的数据或者案例来支撑您的说法?

\

学镛:由于目前这个产品还属于比较前期的阶段,所以还没有特别去针对它收集相关数据,这个数据我给不出来。但是它的效率的确非常好,因为我们现在所有的计算,都是在内存里面而不是在数据库中进行的,它的效率绝对会比数据库方式来得快。我们现在就是几台服务器,处理支付宝目前的那些系统已经足够了,因此也没有特别针对项目进行调整。当前的效率都还可以,但我没办法给出比较确切的数据。

\

InfoQ:那准确性呢?

\

学镛:关于它,我倒是可以给出些数据。我们做过一些像担保交易、即时到帐等这类支付宝比较经典的应用,基本上所有的支付宝应用都是担保交易和即时到帐,它们大概一直占了百分之八九十,所以已经算是涵盖支付宝大部分的应用。监控这些业务,之前的误报警率是3%,已经很低了。而且现在,一旦发生误报警,我们就会检查为什么会误报警,看看规则里面少了哪些判断,然后再去补充规则,所以现在又降低了,可能是1%多点,而且又在不断地持续降低,这是我们这个总督系统的现状。至于其他像CTU的方式,那边的数据我就不清楚了,那边数据的效率可能会高一些。

\

InfoQ:您曾经说过,在您开发的CEP解决方案中有一个规则DSLDSL现在相当热门,您能不能对此详细介绍一下?

\

学镛:我认为状态机的描述,最好能够让它非常简单,这样就可以让更多人能够去写规则,放到我们的这个平台上,这个CEP就能应用到更多场合。如何让这个规则可以很简单、很容易地写呢?DSL是关键。DSL是第一种方式,另一种方式就是利用易用的绘图工具,让我们可以去做一些表单设置或者是状态图的绘制。我们先是采取DSL的方式,未来当人力更充足时,我们就会去做这个图形工具,我相信这两个阶段都达到之后,使用我们的系统或者是在上线之后再修改规则,都会更容易、更快。

\

InfoQ:您刚才说过支付宝的CEP解决方案,山头林立,未来是否有可能出现一个统一的CEP平台?

\

学镛:有可能,这就是我的野心了。我期望我做的这个平台,能够尽量多的发挥它的价值。我认为,因为这个平台有非常大的潜力,所有希望借目前的这些应用,慢慢扩展到未来也能够去做网络攻击、洗钱的侦测。当系统做到更好、更稳定的时候,能够把它推荐到阿里巴巴的其他子公司,像淘宝或B2B,让他们也能够用。当然,这是我的目标啦,都还是未知数,现在言之过早。

\

InfoQ:祝您早日完全心愿。如果我想说服一家企业去采用CEP的话,您有何建议?回顾当初支付宝内部决定采用CEP解决方案的过程,有没有一些经验可以跟我们分享?

\

学镛:企业如果想采用CEP,不应该是为了用CEP而用CEP,应该是确切发现公司里面的某些地方能够通过CEP带来价值。不管是营销,还是其他方面,先要找到应用点。找到之后,然后再去评估这个应用点值不值得花大钱去做CEP。因为提供CEP系统的厂商都是大厂商,东西都挺贵,这个可能要考量的第一点。如决定采用,那这个应用值不值得投入这么多钱去买一个CEP,或者是投入这么多人力开发一个CEP,说到底还是应用。你刚才的第二个问题是?

\

InfoQ:因为支付宝现在已经有经验了,有什么可供借鉴的?

\

学镛:支付宝倒是没什么问题,在支付宝内部要推行CEP非常容易,因为公司本身的属性虽说是网络业,但有一大部分是金融业,所以大家的安全意识非常非常的强。就以CTU来说,在支付宝里面算是最重要、最大的CEP了。其实,由于支付宝一成立就立刻有了这个CTU,它等于是伴随着支付宝公司成长的,在支付宝没有推广不下的可能。

\

InfoQ:对于想要了解和学习CEP的开发者,您有什么建议,能否给出一些参考资料和学习方法?

\

学镛:我觉得可以先从各个CEP厂商的技术白皮书着手。技术白皮书一般都较为简短,可能会比较好读。像TIBCO、StreamBase、Oracle,这几家的CEP,都可以从这里着手。另外,有本书其实挺好的,去年刚出版,国内可能没有引进,或许可以通过英文站点从国外购买,书名是《Event Processing: Designing IT System for Agile Companies》,McGraw Hill出版社出版,作者名字不记得了。这本书非常棒。而且这本书里面提到的不只是CEP,基本上CEP只占一章,其他讲的都是事件处理,重点是怎么结合起来成为一个整体,我觉得CEP不是单独存在的,它会搭配很多其他的事件处理的概念,所以这本书整个对它进行了一个完整的说明。另外,今年开始也会陆续有一些面向程序员,不是着重架构的,让程序员看的CEP书籍。像是Manning出版社今年就会出一本,里面应该有CEP,这些都是不错的参考资料。相对其他领域,如SOA,大家对它可以说是耳熟能详了,说知道CEP的确实是少得可怜。

\

InfoQ:非常感谢。

\

学镛:谢谢。

\


给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

采访:蔡学镛谈复杂事务处理(CEP)相关推荐

  1. 蔡学镛[散文随笔]:从A到E+ (转)

    蔡学镛[散文随笔]:从A到E+ (转)[@more@] [散文随笔]: 从A到E+ XML:namespace prefix = o ns = "urn:schemas-microsoft- ...

  2. 蔡学镛[散文随笔]:从A到E+

    [散文随笔]: 从A到E+ 最近台湾的书市有一本名为<从A到A+:向上提升,或向下沉沦?企业从优秀到卓越的奥秘>的书,由远流出版,狂卖到缺货,这本书的原书是Jim Collins所着的&l ...

  3. 蔡学镛:如何进入程序设计的领域- -

    如何进入程序设计的领域 http://bunny.blogdriver.com/bunny/946271.html 本文作者:蔡学镛 撰文日期:05/12/00 这一阵子,软件和网络相关产业相当兴盛, ...

  4. 蔡学镛在支付宝工作那段时间,最让不开心的事情揭秘

    蔡学镛在支付宝工作那段时间,最让不开心的事情揭秘 Jerry Tsai: 在支付宝工作那段时间,最让你不开心的事情是什么? 对我来说,支付宝是一段很美好的回忆,我到现在依然怀念.我离开支付宝,有很大的 ...

  5. 蔡学镛:编译、反编译、反反编译

    「盗版」的行为,天天都在我们的周遭上演,所以今年五月由BSA(商业 软件联盟)和法务部发起的「反盗版」活动,着实让大家风声鹤唳了好一 阵子.但是,即使在这样诡谲的气氛之下,由大专院校学生为主的「反反 ...

  6. IT命名学(蔡学镛)

       最近比较烦这些命名的事,网上看到好文一枚,收藏! 许多人告诉我,我的名字听起来很有「书卷气」.如果他们知道我更名前的旧名,他们一定会觉得很有「乡土味」.同样的人,只因为不同的名字,竟然有了「书卷 ...

  7. 如何做好 PPT(蔡学镛演讲稿)

    2019独角兽企业重金招聘Python工程师标准>>> 四大困扰,一个对策:告别损伤,呈现完美!你所需要的 [PPT 修复精华],都在这一瓶 "学镛小黑瓶".万千 ...

  8. 如何选择技术书籍——蔡学镛

    http://www.csdn.net/develop/author/cxy/525.shtm 你说挑书就像挑老师一样,我说你乱有思想的 想学某项技术,于是到书局打算买书,但是面对书架上陈列出来琳琅满 ...

  9. 一口气看完了蔡学镛的--爪哇夜未眠(第二版)

    今天中午和好友出去逛街,路过南国书店,就买了一本<<爪哇夜未眠>>(第二版).回到学校后,有mm占用我的电脑,我就在书桌前看书.........

  10. 数学家不太喜欢用计算机,科学网-蔡论意谈数学与艺术-蒋迅的博文

    作者:蔡论意/翻译:蒋迅 蔡论意和他的画室 译者注:蔡论意先生是一位为了追求绘画艺术而学数学的美国华裔学者.我和王淑红教授在<数学都知道>第一册第九章里专门介绍了他的事迹.现在这里是他的访 ...

最新文章

  1. linux cpu拓扑查看工具 hwloc 简介
  2. 丑憨批的爬虫笔记4BeautifulSoup4
  3. ES2017 异步函数async/await
  4. JavaScript 内存机制(前端同学进阶必备)
  5. JavaScript遭嫌弃,“反JS”主义者兴起
  6. ZOJ Monthly, March 2018
  7. Mobile如何通过重定向来定制主页
  8. C语言字母标题,C语言题目!!
  9. 2023年北京邮电大学软件工程807考研信息汇总
  10. 确认main_arena相对libc的偏移地址
  11. 物联网萤石云获取登录的accessToken工具类
  12. 使用Python的psutil包获取机器IPv4信息
  13. 使用httpclient必须知道的参数设置及代码写法、存在的风险
  14. 模糊测试工具-peachFuzzer
  15. 具有射频器件的电路系统调试注意事项
  16. [二分图最大独立集] bzoj4808 马
  17. 视频图像分析处理流程(完整版)
  18. Python 实现 一键Wifi小助手
  19. 农村电商APP软件开发 电商新农村紧跟时代脚步
  20. PHP使用phpword生成word文档

热门文章

  1. 教务辅助管理系统mysql_教务管理系统(项目)
  2. 中国互联网十大骨干网有哪些?了解互联网的真实网络结构
  3. 计算机网络知识之交换机、路由器、网关、MAC地址
  4. Vue开发者工具安装祥析
  5. 复杂截面抗扭惯矩计算
  6. COMSOL仿真软件入门学习(一)
  7. 太极发送卡片软件_超详细介绍如何利用太极+QN框架制作一个属于自己的QQxml卡片...
  8. IT运维服务整体方案(资料下载)
  9. 高频面试题:秒杀系统设计
  10. Endnote与知网研学(E-study)题录相互导入