呂 亮 陳安玥
(國家知識產權局專利局,北京 100088)
隨著我國創(chuàng)新能力和創(chuàng)新水平的提高,未來五年我國申請量仍繼續(xù)保持快速增長態(tài)勢。以2011年發(fā)明專利申請量52.6萬計算,年增長率34%,預計到2015年發(fā)明專利申請將達到169.6萬余件。
同時在《全國專利事業(yè)發(fā)展戰(zhàn)略2011-2020年》中明確提出了2015年達到“專利審批能力進一步提升,不斷提高審查效率,改進審查質量,發(fā)明專利申請的平均實審結案周期縮短到22個月左右”的目標。
這就意味著不僅需要對現有審查模式做進一步改變,還需要通過改進和優(yōu)化智能化審查手段來代替只靠增加專利審查人員的模式來適應我國發(fā)明專利申請的迅猛增長、支撐國家知識產權戰(zhàn)略目標的達成。
通過新的技術手段,采用新的智能化的審查模式來提升審查效率、降低審查對人力資源的需求,進而縮短審查周期、提升審查質量,使我國發(fā)明專利授權質量和審查綜合能力達到世界主要知識產權局的先進水平。
審查模式發(fā)生變化,由原來的電子文件審查轉變?yōu)榛跀祿畔⒌膶彶?,有原來的人工審查轉變?yōu)橹饕蕾嚈C器智能審查。這為技術實現提出了一個挑戰(zhàn)。而專利申請和審查業(yè)務的復雜性,規(guī)則條款的繁多性,流程轉移的多樣性,又增加了業(yè)務實現的難度。
為此,為實現專利審查的智能化處理,需要首先實現專利審查規(guī)則的梳理和細化工作,而在專利局現有發(fā)明初審、PCT初審、法律手續(xù)等核心業(yè)務系統(tǒng)中,共涉及業(yè)務規(guī)則3300多條,在智能化處理中,需要對每條規(guī)則單獨實現具體功能。針對這種非常復雜的需求,筆者與相關技術人員一起,對這些規(guī)則做了抽象歸類,形成了規(guī)則引擎模型,通過這個規(guī)則引擎能夠為實現專利信息的審查帶來極大便利。
規(guī)則引擎是專業(yè)的業(yè)務解析工具,可以滿足業(yè)務規(guī)則復雜,業(yè)務與技術分離,可視化開發(fā),便于維護,便于擴展等需求。
(1)業(yè)務規(guī)則的實現和解析運行
相對于紙件審查,電子審批是一次重要的業(yè)務變革,使審查業(yè)務人員從繁瑣的手工勞動中解放出來。而智能審查是進一步的業(yè)務模式轉變,把人工審查轉變?yōu)闄C器智能審查、人工輔審結合的方式,由原來的主觀審查,轉變?yōu)闄C器的自動化客觀審查。這不但能進一步解放人力資源,更能消除人員業(yè)務水平的差異帶來的審查誤差,實現審查業(yè)務的標準化、智能化,同時提高審查效率,降低審查成本。
規(guī)則引擎是一個業(yè)務邏輯的解析器。規(guī)則引擎需要結合規(guī)則編輯器、規(guī)則包來完成業(yè)務邏輯的解析。簡單的說,我們通過業(yè)務分析提取業(yè)務規(guī)則,用于自動化審查點依據,通過規(guī)則編輯器可以實現用業(yè)務語言來編寫程序,實現業(yè)務規(guī)則,并通過編譯生成技術語言描述的規(guī)則包,規(guī)則包交由規(guī)則引擎執(zhí)行,完成業(yè)務功能。最終實現業(yè)務審查點自動化,并將業(yè)務與技術的分離,業(yè)務人員可以直接參與開發(fā)和維護。
規(guī)則引擎是實現機器自動化的非常合適的手段。由于專利審查實際上是根據相關條款、條文對專利申請內容的審核。而這些條款、條文可以方便的抽象成業(yè)務規(guī)則,我們只需把這些業(yè)務規(guī)則按照邏輯關系,組合編寫成機器程序,就可以實現機器智能審查。而規(guī)則引擎正是解決這一問題的專業(yè)工具,規(guī)則引擎用來進行專門的業(yè)務定制、業(yè)務解析、業(yè)務處理,滿足高性能、穩(wěn)定性、易維護性的需求。
(2)業(yè)務實現與技術實現分離
要實現審查的智能化,必然要面對業(yè)務中存在的大量審查規(guī)則,在專利局現有三大信息化應用中共涉及業(yè)務規(guī)則3300多條,這些規(guī)則大部分是些基本的邏輯判斷,及其簡單組合,與業(yè)務緊密相關,相對獨立且存在隨業(yè)務邏輯的變化而出現調整的情況。以傳統(tǒng)編碼實現的方式,無法實現需求變更的快速響應。往往一個小小的業(yè)務變更,要涉及到諸多代碼的修改。而且由于修改了代碼,整個系統(tǒng)都需要重新編譯,系統(tǒng)要重新加載,導致系統(tǒng)重啟,影響用戶體驗。即便是集群部署的情況下,由于每個服務都要升級一遍,操作復雜,容易造成遺漏,增加系統(tǒng)出現漏洞的風險。
而采用獨立的規(guī)則引擎,可以實現業(yè)務無關性的設計,實現程序復用和性能的改善。規(guī)則引擎可以管理智能審查中與業(yè)務緊密相關的部分。一方面采用可視化的配置化編程的方法和動態(tài)加載技術,極大的降低程序員開發(fā)業(yè)務邏輯的工作量,并且可以隨時更改業(yè)務規(guī)則,而不會影響程序代碼,降低了維護成本,實現客戶需求的快速響應。另一方面,由于業(yè)務層與底層實現技術分離,可以做到不用技術人員參與,只要業(yè)務人員經過短時間的培訓即可實現業(yè)務編碼,做到業(yè)務與技術分離,增加易維護性。
(3)促進業(yè)務人員、技術人員、管理分析人員協(xié)同工作
規(guī)則引擎可以讓開發(fā)人員、業(yè)務人員和管理分析人員協(xié)同工作,提升開發(fā)效率;業(yè)務人員可以用業(yè)務語言直接描述自己的業(yè)務邏輯,開發(fā)人員根據業(yè)務描述可以方便的轉化成程序代碼;甚至業(yè)務人員可以直接在規(guī)則編輯器上用業(yè)務語言來實現功能,省去開發(fā)人員的參與。管理人員可以實時監(jiān)控業(yè)務執(zhí)行情況,分析發(fā)現問題,形成業(yè)務報表,優(yōu)化業(yè)務流程。如圖1所示。
規(guī)則引擎通過語言改進、圖表等多種豐富的展現形式來減少業(yè)務部門、管理部門、設計部門、開發(fā)部門、測試部門、技術支持部門等相關人員的溝通成本,同時改進業(yè)務規(guī)則變更的流程,徹底加快業(yè)務變化的響應時間,提高敏捷性。
(4)基于配置開發(fā),便于橫向擴展
為了使智能化審查能夠適應新的業(yè)務需求,需要盡可能分離業(yè)務需求以及技術實現。因此采用配置方式進行實現,而不采用程序編碼方式,是有效解決業(yè)務邏輯變更和業(yè)務范圍擴大的實現方式。
在自動生成代碼的基礎上,需要將代碼自動進行編譯,并且實現動態(tài)的加載,所生成的代碼無需進行修改,直接應用到系統(tǒng)中。這樣就徹底的實現了全配置、無編碼的實現。
未來實現其他子系統(tǒng)的智能化,針對業(yè)務規(guī)則部分,可以不做太大的改動,只需加入新的業(yè)務規(guī)則包,即可實現規(guī)則審查的功能,能夠方便的實現系統(tǒng)擴充。
(1)引擎調用審查規(guī)則包的技術原理
新開發(fā)的程序通過規(guī)則引擎調用審查規(guī)則包,每個規(guī)則包中包含接口、規(guī)則邏輯和數據對象。如圖2 所示。
(2)規(guī)則引擎的架構
規(guī)則引擎是用于外部程序來調用規(guī)則包的一批java類庫,將一個規(guī)則引擎嵌入到應用程序中的方法與添加任何其他Java類的方法一樣。在java的項目中,需要調用規(guī)則引擎來執(zhí)行規(guī)則包,只需實現一個類(RuleEngine)就可以了。通過RuleEngine類就可以實現調用某個規(guī)則包,以及傳遞需要處理的業(yè)務數據。
每個規(guī)則包配置完成后,會生成一個繼承RuleContext的類,并且將這個類自動編譯發(fā)布到java的class path的路徑中。外部程序通過RuleEngine接口,根據需要調用規(guī)則包的名稱,加載對應的RuleContext類并且執(zhí)行其excuteRule()方法。
(3)Web方式調用規(guī)則包原理
Jsp+規(guī)則引擎+規(guī)則包是一種MVC的架構模式,其中jsp中體現了View,規(guī)則引擎體現了Control,規(guī)則包體現了Model的結構。
Jsp層包括html部分和頁面邏輯部分。為了保證系統(tǒng)的完全runtime,頁面邏輯集成到jsp的頭部,用于jsp字段和規(guī)則引擎的交互。Html部分采用jsp標簽來處理jsp字段顯示到html。
規(guī)則引擎只處理jsp字段和規(guī)則包的交互,規(guī)則引擎將jsp中字段傳遞給規(guī)則包,等規(guī)則包執(zhí)行處理完數據后,再將處理后的規(guī)則包傳遞給jsp層。
規(guī)則包中設置了數據庫對象、數據對象和業(yè)務邏輯,業(yè)務邏輯實現對數據對象和數據對象的處理。如圖3所示。
在專利審查規(guī)則配置器中,可以添加一個web方式調用審查規(guī)則包的測試頁面,這個測試頁面采用jsp程序,其中根據規(guī)則包的接口數據結構,自動生成文本輸入框。同時根據數據結構的類型,自動生成解析request中提交的數據,并且傳遞到規(guī)則引擎中,并且執(zhí)行對應規(guī)則包,最后取出返回結果,在顯示到頁面中。以上過程完整的再現了java程序如何通過規(guī)則引擎調用規(guī)則包的實現方式。用戶可以通過自動生成的jsp代碼查看具體的實現。
規(guī)則引擎具備開發(fā)支持和運行支持兩大功能,同時支持版本控制、修改發(fā)布、動態(tài)加載、測試跟蹤、遠程管理等功能。
(1)規(guī)則配置器
規(guī)則配置器是一款基于規(guī)則引擎和產生式編程技術的全配置軟件開發(fā)平臺。
規(guī)則配置器首先是一個業(yè)務規(guī)則管理系統(tǒng),提供可視化的規(guī)則配置器,業(yè)務人員或者開發(fā)人員可以使用配置界面直接編寫業(yè)務規(guī)則,并生成可以執(zhí)行的規(guī)則包。在配置界面還可以對數據庫、傳輸參數等進行管理維護,還可以查看流程圖、源代碼、執(zhí)行測試的等功能。
同時,規(guī)則配置器又提供配置界面,自動生成了前端用戶操作界面的代碼。這樣就實現了信息化系統(tǒng)功能的全配置開發(fā),無需采用編碼方式。
另外,規(guī)則配置器還是一個SOA平臺,通過SOAP、Socket、Http等多種方式為外部的其他系統(tǒng)提供服務。
(2)規(guī)則包版本控制
專利審查規(guī)則的修改需要進行版本控制,新建的規(guī)則包的版本缺省情況下是1.00,其中整數部分的版本為規(guī)則的大版本,小數部分為規(guī)則小版本。每次修改并保存新版本時,都會自動添加0.01,依次遞增。
專利審查規(guī)則包每審核一次,都會進行規(guī)則包大版本的遞增,用于區(qū)分規(guī)則的審核情況。規(guī)則的小版本,在具體的規(guī)則編輯過程中,可以選擇遞增,用于區(qū)分對規(guī)則包的修改情況。
當規(guī)則包開發(fā)完成之后,上傳到數據庫服務器中,分為兩種類型,一種是開發(fā)類規(guī)則包,另外一種是管理類規(guī)則包。管理類規(guī)則包才能進行規(guī)則的審核等操作,以及進行大版本的遞增。 開發(fā)類規(guī)則包只能進行小版本的變動。
(3)規(guī)則修訂痕跡跟蹤
規(guī)則修改時,需要跟蹤規(guī)則包的修改情況,目前只記錄規(guī)則和決策表的修改情況。
當用戶在開發(fā)過程中,可以對規(guī)則包設置修訂點。當設置了修訂點之后,規(guī)則包會記錄一個當前所有規(guī)則的編輯狀態(tài)。以后進行規(guī)則的修改時,可以查看到規(guī)則的變化情況,并且可以同時看到當前規(guī)則和修訂點規(guī)則的對比情況。
用戶還可以選擇某個版本的規(guī)則進行比較,比較時可以看到每個規(guī)則的修改情況。
(4)規(guī)則執(zhí)行軌跡記錄
規(guī)則執(zhí)行完畢之后,需要記錄規(guī)則的執(zhí)行軌跡。當前記錄所有滿足條件的規(guī)則的執(zhí)行情況,并且記錄規(guī)則進入時的數據值以及執(zhí)行完之后的數據值。
目前在規(guī)則編輯器中,當使用了規(guī)則包的測試功能之后,會記錄當前規(guī)則包執(zhí)行的執(zhí)行規(guī)則,用戶可以打開進行查看。
規(guī)則執(zhí)行時,首先會對整個規(guī)則包記錄一個執(zhí)行軌跡根。然后執(zhí)行規(guī)則集時,會在此根下面新建一個執(zhí)行軌跡。當執(zhí)行規(guī)則時,會在父的執(zhí)行軌跡下面再新建一個執(zhí)行規(guī)則。新建時,記錄了規(guī)則的名稱,以及進行相關的變量,以及執(zhí)行前值和執(zhí)行后值的情況。
規(guī)則包進行執(zhí)行時,會將執(zhí)行完畢之后的軌跡對象存儲到數據庫中。在進行查看時,就可以看到規(guī)則包的執(zhí)行樹狀結構。
(5)規(guī)則執(zhí)行日志
規(guī)則包中可以設置日志輸出,日志分為錯誤、警告、提示、調試等多種信息??梢酝ㄟ^注冊日志記錄服務,來實現日志的多種方式導出。
日志輸出時可以包括以下信息:規(guī)則包名、執(zhí)行時間、日志類型、日志信息、輸入參數、輸出參數等。
通過對日志的輸出,可以有效的了解和記錄所有規(guī)則包的執(zhí)行情況。
(6)業(yè)務規(guī)則管理
業(yè)務規(guī)則管理是針對規(guī)則管理人員而設置的模塊應用,主要用于管理上傳到數據庫中的規(guī)則包。對存在于數據庫中的規(guī)則包進行查詢,以及對其中的各個版本進行在線的查看和修改??梢詾橐?guī)則包分配用戶權限,設置哪些人可以有查看、修改、開發(fā)、審批、執(zhí)行、發(fā)布權限??梢詫σ?guī)則包的某個版本進行申請審核、審核、測試、執(zhí)行和發(fā)布利益等操作。在具體的規(guī)則執(zhí)行中,可以執(zhí)行規(guī)則的源數據結構以及結果數據結構,可以查看規(guī)則的原始數據和最終結果數據。
規(guī)則引擎技術為專利審查多變、復雜的業(yè)務邏輯提供了一種解決思路和方案。規(guī)則引擎既能夠管理應用層的業(yè)務邏輯,也可以對應用展示層的頁面流程、規(guī)則進行定制。這是給專利審查這類大型信息系統(tǒng)的智能化提供了一種選擇。而Java規(guī)則引擎在不斷進行完善和發(fā)展中,也必將為專利審查智能化水平的不斷提升帶來更大助益。
通過對專利審查規(guī)則引擎技術的研究和初步測試,筆者認為將規(guī)則引擎應用于專利審查智能化在技術上是可行的,筆者對規(guī)則引擎的研究成果,對于配合專利審查模式轉變、提高專利審查智能化水平方面,其實際應用效果將在向實際系統(tǒng)轉化后得到進一步的論證。
[1]黃皞.業(yè)務規(guī)則管理系統(tǒng)ILOG JRules規(guī)則引擎分析[D].解放軍信息工程大學,2006.
[2]曹永亮.基于Java規(guī)則引擎的動態(tài)數據清洗研究與設計[D].武漢理工大學,2008.
[3]劉際.規(guī)則引擎在業(yè)務邏輯層中應用的研究[D].大連海事大學,2007.
[4]薛軍.基于J2EE的BPM系統(tǒng)設計與開發(fā)[D].電子科技大學,2007.
[5]李超.業(yè)務規(guī)則管理系統(tǒng)的研究與實現[D].北京郵電大學,2011.