产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

  • 2010-10-13
  • 本文字数:4096 字

    阅读完需:约 13 分钟

蔡学镛,台湾清华大学硕士,曾任程序员、技术经理、技术总监。除了将技术知识用于软件开发相关的工作之外,他也担任过培训班讲师、研讨会讲师、技术图书翻译与编辑、技术专栏作家等工作。他撰写的《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 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2010-10-13 19:2711496
用户头像

发布了 255 篇内容, 共 56.9 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

九科信息与统信、电科申泰完成产品适配联合认证

九科Ninetech

RPA 信创

Django 的基础模板和模板文件重构

宇宙之一粟

Python django 三周年连更

Ins保存图片保姆级教程!拯救手残党的图文教程,速来GET!

frank

MySQL 序列使用

网络视频监控如何入门?如何安装和配置、设备选择和实时监控?

wljslmz

三周年连更

仅需三步,快速打造指标数据应用

Kyligence

数据分析 指标平台

OpenHarmony生态贡献获肯定,华秋践行加速硬件创业初心

华秋电子

劝人写码,千刀万剐——“前端已死”难道要成真了?

引迈信息

前端 大前端 低代码 JNPF

C++ 基本语法

雪奈椰子

Appuploader证书申请教程

MySQL 教程

【揭秘】智慧公厕监控系统,让你告别糟糕公厕体验!

光明源智慧厕所

智慧城市

重塑元宇宙体验!3DCAT元宇宙实时云渲染解决方案来了

3DCAT实时渲染

元宇宙 元宇宙解决方案

linux环境下用c语言实现reactor网络模型的代码案例

linux大本营

Linux reactor 高并发 epoll

kafka常用命令

烟波

kafka MQ 中间件

AI的道德风险测试:偏见风险

陈磊@Criss

破防了!这个在Ins上保存视频到手机相册的方法把我给感动哭了!

frank

Appuploader安装指南

如何快速在手机中查看UDID,无需itunes、itools

数据治理体系建设与实践

Openlab_cosmoplat

数据治理 开源社区

C++ 数组

雪奈椰子

《简化iOS APP上架流程,App Uploader助你搞定!》

C++ 基本的输入输出

雪奈椰子

Appuploader安装指南

雪奈椰子

报名开启,明天直播!龙蜥社区多位专家在线报告 | 2023 大学生操作系统大赛培训会

OpenAnolis小助手

活动 操作系统 计算机 大学生 龙蜥社区

Appuploader证书申请教程

雪奈椰子

《简化iOS APP上架流程,App Uploader助你搞定!》

雪奈椰子

MySQL WHERE 子句

Node 版本控制

程序员海军

Node 三周年连更

ORACLE EBS:多组织结构 理解与配置

back_wang

oracle oracle ebs oracle apex

【网络安全】CVE漏洞分析以及复现

网络安全学海

网络安全 安全 信息安全 计算机 渗透测试

采访:蔡学镛谈复杂事务处理(CEP)_SOA_胡键_InfoQ精选文章