<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

履約核心引擎低代碼化原理與實踐

OSC開源社區 ? 來源:OSC開源社區 ? 2023-04-11 09:55 ? 次閱讀

1、導讀

業界,規則引擎是一個非常普遍的技術類工具,也有很多非常優秀的開源工具,例如Drools等,它是一種嵌入在應用程序中的組件,主要解決易變邏輯和業務耦合的問題,把易變的規則從應用程序代碼中分離出來,進而提升交付效率,降低應用程序維護和可擴展性成本。

然而,行業上開源的規則引擎,在互聯網場景使用卻存在諸多障礙。從技術上來看,面對特大流量的高并發略顯不足;從交付上看,操作語言是以研發視角,無法讓更多的非技術人員參與來實現交付鏈條的最大化降低;從實施上,也沒有配套的標準化架構開放規范,無法規?;淖屢巹t從應用程序代碼中實現分離。

基于此,京東供應鏈研發部自研了一套,面向業務角色的海納低代碼規則引擎平臺,產品定位是面向業務、研發多角色一體化的零低代碼開發平臺,這其中規則引擎是其最核心的部分之一。

這個平臺,不僅可以高效的支持互聯網高并發業務,它還具有一套標準化擴展開放的能力?;诖藰I務系統可以快速實現業務規則的規?;_放,短短4個月內,低成本開放了近100+個擴展點,抽取沉淀了近400+個業務規則,支持了14+個京東核心鏈路重大項目,產品經理/ISV也首次以無代碼的方式,在安全清晰的工作邊界內,自助式的完成京東核心鏈路的業務需求,平均的交付周期0.5天內。

另外,從長遠來看,它把研發職能進行轉移及拓寬,以安全的模式讓更多的角色參與研發,進而優化了需求的交付模式,為后續生態規?;慕桓兜於嘶A。

2、JD履約的應用

01現狀

海納低代碼規則引擎平臺在履約已大規模運用,初步達成了約20%的需求可由業務角色來直接交付,預估后續此比例可提升至40%。和其他平臺的發展情況一樣,海納的發展過程也相當驚心動魄。下面就以一個獨特的視角、簡短的語言為大家展開。

一個陽光明媚的早上,初級工程師小徐背著軍綠色的雙肩包,前腳剛從滿滿當當的電梯里面出來,還沒來得及走到工位邊脫下厚重的羽絨服?!扳忊忊彙钡碾娫捖曇艟晚懫鹆?,是對應業務條線的產品小李打過來的。該死,不會昨天晚上上線有什么問題吧。小徐揉了下微微發脹的太陽穴,不安的接起電話。很快就放下心來,昨天上線的業務已驗收沒問題了。是一個新的業務訴求要去滿足。

快速溝通了下,小徐就搞明白了大致想要做的事情了。商城上新引入了一批高端的時尚化妝品品牌,業務側將貨物入倉并在APP上開始售賣后,在客戶同時或者分開購買這批化妝品后,在這些貨物在出庫履約生產的時候,物流會建立單獨的生產業務線,為不同品牌的化妝品單獨包裝,并放置到品牌獨立的包裝禮盒中。期望在配送給客戶的時候,使用精美的禮盒也可以加強客戶的感知,提升用戶體驗。

小徐工作已三年了,聽完這個需求后,大腦中已構思出了大致的實現方案了。這個需求簡單,不就是配置一批特殊的品牌增加特殊的業務處理規則么,幾行if代碼就可以搞定了,前2天剛實現了個類似的需求。剛想完,小徐就打開代碼編輯器,眼睛盯著那幾百行多個if else分支的代碼,想著加到哪個地方最合適。

想著正有點出神,電話再次響起,還是產品小李,這個需求的優先級提高了,業務那邊希望今天就可以給出一個排期計劃,小徐預估了大致的工作,覺得應該可以滿足預期。和小李確定了下午的需求評審會時間,并順手將這個任務加到了待辦列表中了,不經意的掃了下工作安排,這周上線的需求就有4個了,突破了以前每周處理2個的平均值了??磥斫裉焱砩弦蛹影嗔?,不然干不完了。小徐戴上帽子,遮住了有點稀疏的腦門,抿了一口黑咖啡,全心開始工作了。

幾天后,另外一個角落里,核心架構師小彭和其他幾個產品、業務聚在一起,對最近排期不滿足的情況進行溝通。大家一番討論后,總算共識了一起評估是否有合適的方式可以提升交付的速度,降低排期不滿足的概率。甚至個別業務還提出來,有沒有什么工作是可以分出來交給他們來做的。嗯,這是一個有意思的方向。小彭記下了這個關鍵的內容,開始認真琢磨有無好的辦法。小彭從來就不是一個空想派,說干就干。從項目文檔中拿出了近3年的項目及需求列表,從頭梳理其實現方式,評估需求的共性及特點。

02挑戰

小彭帶領團隊,重新審視了最近收到的項目及需求,發現約有40%的需求相似性比較高,需求抽象后基本可以描述為“基于一定組合的業務條件下”,“執行特定領域的業務動作”??雌饋砗鸵巹t引擎的匹配度相當高。但是綜合分析后,發現實施難度存在2類挑戰,均需要有對應的解決方案。

性能挑戰:小彭負責的業務領域有點特殊,所有商城的每一個訂單都會流向他負責的系統,峰值時一天處理超億級訂單。傳統意義上的規則引擎,應用的都是低流量的業務場景。在這種大數據量,高并發的場景下,怎么保障性能是個問題,需要有對應的解決方案。

價值挑戰:引入成熟的規則引擎,假定可以解決目前的應用場景。但是一般規則引擎都會有其獨立的領域描述語言(DSL Domain Specific Language),這類語言的使用門檻一般都比較高,交給研發人員維護還處于勉強可以接收的程度,交給產品或者業務人員去維護,初步看可能性較低。那么引入規則引擎后,如何實現一種方案,可以讓產品、業務、研發均可以快速參與進來,均可以使用此產品功能進行快速交付,就是此產品要解決的核心問題了。

03方案

經過幾天連夜的奮戰,小彭總算把相關的解決方案敲定了具體的可行性方向,與上級主管沛公約好了匯報討論的時間。與前幾天心驚肉跳的討論不同,在大的討論開始之前,小彭的心反而沒有那么緊張了。小彭就是這樣,越是難的事情,越覺得有挑戰。即使再難的事情,在心里過一過,總可以想得明白。他是使萬物回歸其本源,而種子總能突破土地的束縛,慢慢長成誰也無法阻擋的參天大樹。

落地層面,小彭從來不擔心。雖然可以預判到實施的過程中會有這樣或者那樣的難題。但是小彭和其合作的團隊的戰斗力,是小彭信心高昂的一切來源。這是一支不同的尋常的團隊,支撐的也是不同尋常的業務。業務上,小彭負責了商城所有訂單的履約生產過程,為每一個訂單實時高效的制定好最優的生產計劃,在過程中發出多個如拆單、轉倉、補貨等多個快速指令,為在商城中消費的每一個客戶提供最優服務,并最大可能性的降低履約生產過程中的生產成本。過去幾年多次一起并肩作戰的戰斗與沖鋒,早就鍛造了這只團隊獨特的戰斗力。

和沛公的交談如預期中順利,但是沛公說他還是要再認真考慮一下。是的,是要認真考慮一下,成熟的人總是要三思而后行,而一但確定好后就毫不猶豫的堅決執行。這個事情,風險和收益同樣巨大。干好了后面研發交付的工作可以發生變革式的變化,產品、業務來完成需求交付不再是個可望不可即的事情了;但是如果干不好,比如過程中遇到了無法突破的難題,或者交付后出現業務使用不佳的情況,辛辛苦苦投入的精力可能就會存在白費的情況,特別是面對如此高的交付壓力,一旦失敗,對上對下,都不好交代。

變革的過程總是很痛苦,而有先見之明的人在經歷痛苦后才能有機會涅槃重生。做,還是不做,這是一個擺在沛公面前的難題。在經過一個晚上的深思熟慮后,沛公心中就有了預判和決斷。這個事情是一個長期的事、有價值的事情,現在不做,將來我們也會要做。等將來項目及需求的壓力變得不可阻擋,不得不做的時候,重重壓力下執行的動作反而會變形。最好的時機就是當下,沛公已暗暗下定了決心。至于困難,總會有的,但是只要信心在,辦法總比困難多。敢于沖鋒,直面失敗,這也是這個團隊難以磨滅的特質。

沛公找到了供應鏈負責整體效能同時身為首架的林老師溝通。林老師最近也一直在思考,如何將供應鏈高頻共性的研發動作進一步抽象、打造出合適的Y工具產品,并將工具提供開放給業務角色,來降低研發的需求數,提升交付效率,部門也一直在做這樣的探索,正好最近零(低)代碼解決方案也初步有了成果,與沛公提到的想法不謀而合。兩個部門立刻決定,共同推進落地。

一個小的分隊很快就成立了,兩個團隊都挑選了一些精兵強將,共同負責功能的設計、開發及運維,具體帶隊的分別是小麗,小徐,小彭,總體架構師是林老師,部門中一些架構師和研發也自愿的踴躍參加,例如 小孫,小馬,小丁,小夢,小張,小喜等等。大家除了日常需要支持的本質工作外,其余的時間都一頭撲在了這個新產品能力的打造上了。和一般偉大的事業開啟必然附加有華美的篇章不同,研發的工作總是這樣,樸實而無華。沒有激情澎湃的贊歌,也沒有千里不留行的豪邁,只是一個接一個的不眠之夜??此瓶菰锏墓ぷ?,和冷冰冰的代碼,但總難澆滅大家心中火熱的激情。每每深夜里有一些靈光乍現的新思路,每個人總會趕緊拿手機記下來,再倒頭躺下。想到新的一天可以和團隊一起,討論新的思路和落地方式,大家按捺不住激動的內心,久久不能入睡。

一個月后,產品雛形已初步完成,小彭拉上業務線對口的產品和業務來試用,算是毀譽參半,小彭沒有泄氣,收集了大家的問題和反饋,并開始快速迭代。又半個月過去,產品總算達到了可用、可交付的狀態。經過一段時間的試點使用后,一些業務、產品開始主動來尋求合作和反饋??偹阈纬闪苏蚍答?。

3、核心原理介紹

看了這么多,那這個產品到底是如何完成的呢,其中的原理和亮點分別是什么,讓小分隊的成員帶領我們來一窺究竟。

提高交付效率、保證交付質量,擴大交付角色,是業界追求的最高目標,也是是小彭及其小分隊追求的最終目標。為保障產品功能可安全、可靠的交付給業務角色,小分隊探索出了一個帶可視化界面、研發和產品可共同參與開發的通用性規則平臺,并在平臺內設定了一系列的規范化約定,計劃提供沙箱模式、錄制與回放驗證等機制來保證交付的質量,并提升聯調與驗證的效率。

而其核心原理,簡而言之可以表述為:平臺提供可視化設計器,業務角色在可視化界面沉浸式式編排業務規則,即可完成所有業務功能的新增、變更、修改與發布。與之相對應的,平臺在功能后臺自動生成規則引擎描述文件,待業務角色審核完成后自動化的同步給應用系統。應用系統通過SDK對擴展點進行攔截,并在擴展點執行生效的規則編排。

海納低代碼規則引擎工作示意圖如下所示:

e57364de-d7fb-11ed-bfe3-dac502259ad0.png

e590d776-d7fb-11ed-bfe3-dac502259ad0.png對于適用于業務規則類的業務場景,小分隊的成員很快就發現存在共性特點:“當滿足部分特定業務條件時,執行特定業務動作的一組規則集合”。

小分隊成員對此特點深入研究,發現市面上常見的規則引擎提供的技術規則內容太深奧、太專業,對于普通的業務人員理解難度太高,導致市面的規則引擎產品主要在研發內部使用。為解決這一難題,小分隊在平臺中除了提供純技術規則注冊外,還提供了業務規則注冊與組合編排。使得平臺的用戶不光可以覆蓋至研發角色,還可以覆蓋至業務角色。業務交付需求時,只需關注其業務規則與業務編排,而其背后支撐的復雜技術規則則可完全對業務角色透明。最終業務像畫流程圖一樣在平臺進行操作即可自助式完成需求交付。

伴隨著需求的交付個數的增長,系統中的業務規則和業務行為不斷地擴充,后續的需求交付可復用之前沉淀確定的業務規則,包括如“自營”、“廠直”、“醫藥”等統一的業務含義,均可統一在后續需求進行復用??蛇M一步提升交付速度。

下邊我們以一個實際的例子展示下海納規則引擎的主要特色功能。為了讓大家有直觀的感受可視化規則編排和執行過程,先展示下規則編排結果:

e5a2f4c4-d7fb-11ed-bfe3-dac502259ad0.png

從規則流程圖可以看到主要的元素就是菱形和矩形。菱形表示條件,類似于我們代碼中的if;而矩形則是動作,就是我們具體做的一個動作,比如更新數據庫、遠程接口調用等任何想做的事。

那么規則流程是如何被編排出來,編排出來后又是如何運行的呢?下圖描述了主要過程。

e5bb4e66-d7fb-11ed-bfe3-dac502259ad0.png

注冊擴展點:

擴展點是規則要執行的切入點,在平臺注冊擴展點后,可圍繞該擴展點進行業務規則流程編排。

業務模型注冊:

業務模型是業務數據的載體,確保引擎正確識別并訪問模型以進行邏輯運算;

技術規則注冊:

e5cb7836-d7fb-11ed-bfe3-dac502259ad0.png

主要面向研發人員,主要包括方法的簽名信息,和系統中的代碼方法對應,提供最基礎的規則。

平臺還內置了豐富的技術規則,如下圖所示,對于一般業務而言,預制的規則可以滿足80%及以上的場景。對于其余個性化場景,平臺也提供了可擴展的能力。

e5dfc214-d7fb-11ed-bfe3-dac502259ad0.png

業務規則注冊:

e5f6fb32-d7fb-11ed-bfe3-dac502259ad0.png

業務規則是對技術規則或業務規則的組合,形成具有業務語義的規則,最終用于業務規則流程編排。為了實現復雜業務條件,我們提供and/or/not/group等多種組合形式,方便業務靈活配置。

e61537e6-d7fb-11ed-bfe3-dac502259ad0.png

業務規則編排:

e5a2f4c4-d7fb-11ed-bfe3-dac502259ad0.png

對業務規則進行組合,以流程圖的方式展現業務流程,最終形成規則流程描述文件。

規則引擎執行:

SDK將規則流程描述文件解析成規則引擎能執行的腳本,規則引擎通過執行腳本完成業務規則的運行。

小結:

對業務角色而言,海納平臺提供可視化規則編排能力,業務規則主要是由具有業務語義化的條件規則和動作規則組成,因此產品業務人員可以輕松地自助完成業務規則編排。隨著規則豐富度持續提升,業務人員也可以對已有規則進行組合或通過自定義規則方式實現新業務規則創建,實現全面自助。

對于研發角色而言,應用系統只需引入SDK并定義要執行規則擴展點即可完成集成工作。后續需求業務實現自助化交付后,整個交付的過程從原來的10天,可縮短至最快0.5天,達成了提效的目的。

01亮點

01輕量化

海納規則引擎以對業務系統無侵入,只需引入規則引擎SDK,添加注解即可完成接入,對于存量系統具有友好的支持。一般而言,1天即可快速完成集成工作。

02高性能

海納平臺是去中心化的設計,平臺只負責流程編排,編排后的結果以流程描述文件的方式同步給業務系統,應用系統通過SDK解析并執行,采取本地化執行方式,沒有性能瓶頸,并通過了京東訂單履約核心系統11.11大促驗證。平臺提供的能力支持峰值一天處理超億級訂單平穩運行,單個規則運行的耗時在納秒級別內完成。

03研發和業務實現分離

海納規則引擎將研發角色和業務角色分離,在技術領域和業務領域間建立規則適配,屏蔽技術細節,讓業務角色更關注業務規則,提高業務角色的使用體驗。

04可視化

面向業務語義的流程編排,流程的編排可以向畫流程圖一樣方便,實現所見即所得的業務體驗。

05技術資產沉淀

通過在平臺上注冊業務規則和業務行為,可實現技術資產沉淀,隨著業務規則的擴充,可支持更為豐富的業務流程。

4、總結

時間又回到了當下,產品小李找到了小彭,同步了近期業務提過來的幾個需求,均已經在海納規則引擎低代碼平臺自助化實現了,單個需求差不多5到10分鐘即可完成配置,全程在平臺上沉浸式操作即可。但最終上線需要小彭幫忙審批一下。仔細檢查了業務規則條件,確認業務邏輯符合預期后,小彭快速移動鼠標,輕輕點擊了“發布生效”,新配置的規則就如同打一個響指一樣,秒級的速度就更新至線上生產環境,并全面運行了。送走小李后,小彭看著線上平穩的監控曲線出神,這個手段確實挺有效,省去了需求評審、業務功能開發、業務功能內部測試的時間,業務角色可以快速自助化交付。那么其余60%的需求如何提效呢?是否有其他的解決方案呢?小彭又陷入了沉思。

看到了這里,您是不是對海納規則引擎低代碼平臺有了更多的了解了呢?您在日常的工作中,是否遇到了類似的場景,可以復用此解決的方案么?如果有,歡迎多多交流。

在項目需求日趨增加,而人力資源逐步成為瓶頸的時候,采用多種方式來達成提效的效果,是擺在所有人面前的一個難題。希望本文章可以以一個視角和解決方案,以拋磚引玉的方式,引起大家更多的共鳴和思考。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 引擎
    +關注

    關注

    1

    文章

    344

    瀏覽量

    22279
  • 代碼
    +關注

    關注

    30

    文章

    4556

    瀏覽量

    66784
  • 應用程序
    +關注

    關注

    37

    文章

    3136

    瀏覽量

    56399

原文標題:履約核心引擎低代碼化原理與實踐

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Git工程實踐(一)巧用commit message

    參差不齊。那么有沒有優雅而簡單方式將commit message按照工程標準來落地呢?下面分享一個git commit message的實踐,其核心是通過git commit template標準
    發表于 05-03 17:30

    從3個層面介紹華為快應用引擎架構

    華為快應用引擎架構及開發實踐
    發表于 02-13 10:07

    基于Druid的Kylin存儲引擎實踐的三個部分分析

    美團點評:基于Druid的Kylin存儲引擎實踐
    發表于 07-18 10:40

    代碼開發的五個優勢是什么

    服務器等)來使核心系統現代。想象一下,嘗試使用傳統編碼來完成所有這些工作-IT或企業真正的敏捷性如何?3.輕松體驗之前我曾提到過,代碼可以滿足您以客戶的方式使您能夠與您的企業互動的
    發表于 04-29 17:32

    5G核心網極簡開局技術架構及市場實踐

      5G核心網極簡開局技術架構  5G核心網自動集成極簡開局應用  5G核心網極簡開局行業推廣及市場實踐
    發表于 12-22 07:40

    虛幻引擎的紋理最佳實踐

    紋理是游戲不可或缺的一部分。 這是一個藝術家可以直接控制的領域,以提高游戲的性能。 本最佳實踐指南介紹了幾種紋理優化,這些優化可以幫助您的游戲運行得更流暢、看起來更好。 最佳實踐系列指南的總體目標
    發表于 08-28 06:39

    Python數據挖掘入門與實踐數據集及代碼

    Python數據挖掘入門與實踐 作者:Robert Layton人民郵電出版社隨書代碼以及數據集,現在網上并無此數據集 為隨書配套資源。
    發表于 09-06 17:04 ?32次下載

    《Python編程:從入門到實踐》的源代碼文件免費下載

    本文檔的主要內容詳細介紹的是《Python編程:從入門到實踐》的源代碼文件免費下載。
    發表于 02-13 08:00 ?166次下載
    《Python編程:從入門到<b class='flag-5'>實踐</b>》的源<b class='flag-5'>代碼</b>文件免費下載

    濤思數據開源TDengine,10多萬行C代碼,登頂GitHub!

    7月12日,濤思數據宣布將TDengine開源,10多萬行C代碼,包括最核心的存儲引擎和計算引擎都上傳到了GitHub上。
    的頭像 發表于 07-31 16:07 ?1.3w次閱讀

    圖形引擎服務場景化接口示例代碼

    簡介 圖形引擎服務場景化接口示例代碼演示了如何調用SceneView、ARView和FaceView進行圖形渲染。 開發準備 1.檢查Android Studio開發環境是否就緒。使用Android
    發表于 03-23 10:57 ?1次下載

    貼吧低代碼高性能規則引擎設計

    規則引擎是一種專注于業務規則的服務,它可以將業務規則從代碼中剝離出來,使用預先定義好的語義規范來實現這些剝離出來的業務規則。規則引擎通過接受輸入的數據,進行業務規則的評估,并做出業務決策。
    的頭像 發表于 01-10 10:41 ?436次閱讀

    一個基于GPT-4的代碼搜索引擎,開源了!

    于是,一個名為 Bloop 的代碼搜索引擎應運而生,它的存在,徹底打破了以往傳統的代碼搜索方式,采用基于 GPT-4 的 AI 智能模型,成功實現用自然語言,語義化的代碼搜索方式!
    的頭像 發表于 04-27 14:25 ?927次閱讀
    一個基于GPT-4的<b class='flag-5'>代碼</b>搜索<b class='flag-5'>引擎</b>,開源了!

    2023年第四屆無代碼探索者大會,輕流邀您一同聆聽無代碼數字化實踐分享

    7月6日,輕流第四屆76Day無代碼探索者大會將回歸線下,于上海盛大舉辦。 據悉,此屆無代碼探索者大會將以“實踐”為核心,聚焦無代碼技術,召
    的頭像 發表于 06-20 16:01 ?357次閱讀

    AI引擎內核編碼最佳實踐指南

    電子發燒友網站提供《AI引擎內核編碼最佳實踐指南.pdf》資料免費下載
    發表于 09-14 14:58 ?0次下載
    AI<b class='flag-5'>引擎</b>內核編碼最佳<b class='flag-5'>實踐</b>指南

    百度搜索exgraph圖執行引擎設計與實踐分享

    百度搜索exgraph圖執行引擎設計重點分成三個部分:圖描述語言、圖執行引擎、對接擴展。
    的頭像 發表于 01-16 10:27 ?208次閱讀
    百度搜索exgraph圖執行<b class='flag-5'>引擎</b>設計與<b class='flag-5'>實踐</b>分享
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>