关于商业销售系统、企业级销售系统的一些思考 - 业务规则与软件系统的剥离

  • 内容
  • 评论
  • 相关

创办企业要面临首要问题就是生存,业务的开展是企业生命力的源泉,只有有了源源不断的现金流,企业才具备了向未来发展的可能。处于业务导向阶段的企业一切力量都应答为业务、为销售服务,只有这样,才能在市场当中取得一席之地。然而市场是瞬息万变的,竞争是时刻存在的,企业只有根据市场环境的变化动态的迅速的调整业务竞争策略,才能在市场竞争中立于不败之地。那么什么样的销售系统才能,支撑起这样瞬息万变的市场呢?答案是现代化销售系统。那何谓现代化销售系统?

在了解什么是现代化销售系统之前,我们先来看看什么是传统销售系统。在销售系统中时常会遇一些上业务规则或运营营销规则,在一定的条件下,允许进行一些配置,以满足业务变化的需要。以JAVA程序为例,通常会采用以下方案来解决这个问题,程序直接写死提供几个可调节的参数配置然后封装成为独立的业务模块组件。后期每一次的业务调整或者运营营销规则调整都需要开发重新去代码模块逻辑,然后测试上线。一些较大型的销售系统,为了保证生产环境的稳定性,每一次的代码更新都需要经过严格的测试和发布流程,这样的流程显然是有些漫长的。显然这样的传统销售系统是无法满足企业快速调整业务或者运营营销规则的需求。

那么现代化销售系统又是怎么来满足这种快速更变调整业务或者运营营销规则的需求呢?答案就是在传统的销售系统中加入规则决策系统,通过决策系统将一些与软件系统无关的业务规则和逻辑从系统中剥离出来,以实现业务和软件系统相互之间的解耦,那么什么又是规则决策系统呢?规则决策系统就是通过规则引擎对各种业务或运营销售规则进行条件判断,最后得出结果进行业务决策,这里引入一个新的概念“规则引擎”,何为规则引擎?

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策,一个好的规则引擎能大大提高系统的灵活性,扩展性。

通俗的来说规则引擎就是将系统设置的一系列预定的业务决策条件,将一个或多个条件组合成为各种业务规则。系统接受的业务数据流经各种业务规则的判断并动态的智能化的做出各种业务决策。
举个简单的例子:
假设现在有两台无人售货机,一台放在黑龙江,一台放在深圳。首要货柜需要自动展放一些适宜的热销商品。由于两地温差很大,并且还有一定时差,黑龙江可能大晚上零下几度正在下着雪,而深圳却正值下午三十多度烈日炎炎,且当前系统有以下热销商品:热牛奶,热咖啡,冰可乐,冰红茶。通过规则引擎,我们则可以在不更新系统代码的情况下添加温度、时间条件。比如说,时间为夜间并且温度低于10°,则售货机自动在首要货柜摆放热饮。时间为下午且温度高于30°时则自动摆放冷饮。这样通过规则引擎的决策,售货机则自动的在黑龙江售货机的首要货柜上摆放了热牛奶,热咖啡。深圳地区的售货机则自动摆放了冰可乐,冰红茶。原先可能需要修改系统代码甚至人工干预才能达到的效果在通过规则引擎的决策下实时的、智能的、自动的、就解决了商品的摆放问题大大的提升了产品被购买的几率和客户的产品使用体验。

除了销售运营决策,规则引擎还通常用于支付风控银行积分移动积分各种黑白名单会员评级问卷评分量化交易等系统。

以JAVA程序为例,目前市面上存在的几款知名度较高的商业引擎:iLog、国产的“旗正规则引擎VisualRules。开源引擎:esay-ruledrools。当然如果使用脚本语言来开发自己的规则引擎也是一个不错的方案。在JSR223规则中,已经对java中集成脚本引擎有了规范。目前较为常见的是在java中使用javax.script.ScriptEngineManager类来动态解析javascript、groovy(其实也支持python以及PHP)。个人认为使用javascript作为脚本语言来实现规则引擎非常适合大部分技术团队,毕竟除了前端很多后端也是会javascript的。

此文抛砖引玉,下一篇文章,我将通过部分代码实例来展示如何通过javax.script.ScriptEngineManager动态解析javascript脚本来实现一个规则引擎。


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,非商业性质可转载须署名链接,详见本站版权声明。

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注