官术网_书友最值得收藏!

1.1 從基本概念談起

RPA是Robotic Process Automation(機器人流程自動化)三個英文單詞的首字母縮寫,該概念有別于新興的人工智能技術,如機器學習、深度學習、神經網絡等,這些人工智能技術大多來自學術機構或科研單位的研究成果,學者們首先會通過一些論文和報告對某個技術給出清晰的定義,然后由相關科技公司研發和生產相關產品。而RPA概念來自信息技術自動化實戰經驗的總結。

1.1.1 RPA概念溯源

RPA概念由一家研發此類軟件的IT創業公司和一家研究機構在2012年提出,遠遲于機器學習(1959年)和深度學習(1986年)等概念的提出時間。隨后,RPA逐步在外包服務領域以及為外包服務提供軟件的廠商中推廣開來。所以,RPA更多是通過廠商和用戶的實戰總結、口口相傳后逐步推廣開來的,所以目前尚無機構給出公認的權威解釋。正由于此,在后續市場推廣和宣傳RPA的過程中,各軟件廠商和服務供應商對RPA概念各執一詞,使最終用戶對RPA概念缺乏統一的認識。

如果只從字面來理解,“機器人流程自動化”其實就是“利用機器人技術來實現流程的自動化處理”。當然,將這樣的簡單字面理解直接作為RPA的定義,是遠遠不夠的。要真正理解什么是RPA,通常需要對以下問題進行剖析。

第一,RPA是什么樣的機器人技術?比如,這是個新技術還是傳統技術?是人工智能技術的一種嗎?與工廠里的機器人是一樣的嗎?

第二,RPA可以實現哪些流程的自動化?比如,像企業內已經實現的辦公自動化嗎?與利用工作流引擎來實現的自動化有什么區別?

第三,RPA可實現什么程度的流程自動化?比如,它能幫助或替代人類做什么?完全不需要人參與嗎?

這三點也是在第一次聽說RPA時,所有讀者和用戶頭腦中首先冒出的一些疑問。

首先我們找到一些關于RPA的官方解釋,然后對其內涵逐步細化和展開。

1.1.2 RPA的官方解釋

隸屬于IEEE標準組織,由領先的RPA軟件廠商和咨詢公司共同參與組成的一個工作組,針對智能自動化(Intelligence Automation)開展了一項概念梳理和定義工作,希望對智能自動化各個部分的概念達成行業共識。顯然,這些概念的定義真正在行業中被廣泛采用還需要相當長的時間。

2017年,IEEE給出了RPA的定義:“RPA通過軟件技術來預定義業務規則以及活動編排過程,利用一個或多個相互不關聯的軟件系統,協作完成一組流程、活動、交易和任務,需要在人工對異常情況進行管理后交付結果和服務。”IEEE強調了RPA具有預定義規則、活動編排、串接不同的系統等主要特征。

“機器人流程自動化及人工智能”(IRPAAI)研究機構在2017年也給出了RPA的定義:“RPA是一種技術應用模式,使計算機軟件或者‘機器人’能夠捕獲并解釋現有應用的信息,從而能夠處理事務、操作數據、觸發響應以及與其他數字化系統進行通信。”IRPAAI強調了它是一種應用模式,具有獲取現有應用的信息、不同系統的操作處理等特征。

Gartner在2018年AI技術曲線報告中對RPA進行了定義:“機器人流程自動化整合了用戶界面識別和工作流執行能力。它能夠模仿人們操作電腦的過程,利用模擬的鼠標和鍵盤操作來驅動和執行應用系統。有時候,它被設計成應用到應用之間的自動化處理。雖然它被稱為機器人流程自動化,但是并不存在一個物理設備,相似于其他如工作流引擎和人工智能工具。”Gartner指出RPA能模仿人類,具有工作流執行能力,是軟件并非物理設備。

IDC組織的“RPA軟件帶來業務運營變革”報告(2017)給出了RPA的定義:“RPA軟件能夠處理基于固定規則且重復執行的流程,而不需要人類操作。在那些高度重復、單調且勞動量大的工作中,RPA消除了對人類員工處理的需要。”IDC表達了能實施RPA的流程具有規則固定、重復執行和工作量大的主要特征。

IBM組織的“市場研究及遠景趨勢”報告(2017)給出了對RPA的定義:“機器人流程自動化(RPA)是利用軟件來執行業務流程的一組技術,其按照人類的執行規則和操作過程來執行同樣的流程。RPA技術可以降低工作中的人力投入,避免人為的操作錯誤,大大減少了處理時間,使人類可以投入到更加高級的工作環節中。”IBM強調了RPA是一組技術、按照規則執行流程,以及RPA帶來的業務價值。

麥肯錫(McKinsey)給出對RPA的定義:“RPA是一種可以在流程中模擬人類操作的軟件。它能夠更快速、精準、不知疲倦地完成重復性工作,使人們投入到更加需要人類腦力的工作中,如情感、推理、判斷或與客戶溝通。”可見,模擬人類和替代工作是RPA的主要特征。

普華永道(PWC)給出對RPA的定義為:“RPA利用了流程自動化技術及更易配置的軟件機器人,業務人員只需要少量IT經驗,在快速培訓后就能操作,以替代手工工作。”普華永道提到了RPA不需要專業人員就能快速實施的特征。

綜上所述,看起來各家機構講的是同一個概念,側重點卻各不相同。本書并無意重新定義RPA,只要我們能對前面提到的三個問題給出清晰的解釋就可以了。

1.1.3 回答RPA的三個關鍵問題

問題1:RPA是什么樣的機器人技術?

我們從五個方面來回答這個問題。

(1)RPA是一種軟件技術,也就是說RPA概念中所謂的“機器人”并不是指有物理形態、物理實體的機器人,不是工廠中的機器手臂、自動設備、家里的掃地機器人以及銀行大堂的迎賓機器人。說到底,它就是計算機中的程序代碼,所以被稱作軟件機器人(Software Robot),也可以把運行在RPA中的機器人稱作Bot。

RPA技術的核心能力是模擬和替代人工勞動。工廠中那些物理形態的機器人替代的是工人的體力勞動,掃地機器人替代的是家庭主婦的清潔勞動,而RPA這種存活在計算機里的軟件替代的是辦公室里員工的部分腦力勞動,以及諸如敲擊鍵盤、點擊鼠標、切換頁面等系統操作動作。隨著全社會進入信息化時代,幾乎所有企業中的員工以及人們的日常生活都需要依賴計算機,一些大型企業更是同時擁有多套應用系統,員工在工作中經常需要登錄不同的系統進行業務處理,而系統處理過程中必然存在大量的數據錄入、數據核對以及數據報告等工作,RPA通過模擬人工操作的方式很好地解決了這類問題。

(2)RPA可無縫地實現跨系統連接。員工通常在工作中需要使用多個業務系統、桌面軟件,以及不定時訪問內外部網站來獲取信息,所以在實際業務辦理過程中,他們需要在不同系統間切換,將數據傳來傳去,不停地復制粘貼,從而花費了大量時間。RPA目前能夠調用幾乎所有桌面系統中的應用程序,如常用的辦公軟件Excel、PPT、Word、郵件和即時通信工具等,以及其他帶有客戶端的用戶界面和各類瀏覽器支持的Web頁面,這樣就可以模擬員工的以上行為,無縫地集成上述業務操作,變相起到了不同應用系統之間集成的作用。而這樣的集成方式并不需要修改后端程序的任何一行代碼或數據庫字段,也不需要打開后端程序的接口或服務,因為RPA只是在模擬人的行為,訪問操作的是那些應用系統的頁面。這種集成方式也被稱作“At-the-glass Integration”,即“表層集成”。

正因為RPA不需要工作人員了解復雜的后端程序邏輯、數據庫結構、軟件接口和服務調用方式,而是主要利用圖形化可拖拽的工具進行編輯,采用腳本語言編寫程序并且不需要編譯和部署,甚至可以用錄制的方式自動生成,才使技術人員更容易上手,甚至于一些業務人員在經過培訓后也可以直接使用。

(3)RPA是多種技術的組合應用。RPA其實是一類自動化技術的統稱,通常包括鍵盤和鼠標的模擬操作技術、屏幕信息獲取和定位的抓屏技術、流程控制處理的工作流引擎技術,以及自動化任務調動控制和管理技術等。這些技術各自可能已經有了很長的發展歷史,但是能夠將這些技術綜合起來一起使用,而且能夠穩定安全地使用,讓用戶用起來更容易,即真正商用,只有短短幾年的時間而已。

(4)利用計算機來實現自動化計算、數據存儲和業務操作,這似乎是計算機天生的屬性。RPA和傳統的自動化技術有什么不同嗎?傳統的利用計算機實現自動化的模式大致可以分為四種。

第一種模式是傳統C/S或B/S的應用系統,需要人類通過操作應用系統的用戶界面來驅動系統,實現所謂的數據計算和存儲的自動化。雖然我們把辦公系統叫作辦公自動化(Office Automation),但距離今天對自動化的要求還差很遠。

第二種模式是利用工作流(Workflow)引擎支持業務流程管理(Business Process Management,BPM)的自動化,即利用系統自動串接業務流程中不同崗位角色所做的任務,但在落實到每個具體的業務執行過程中,還是需要人工來操作用戶界面,這樣工作流引擎才能將工作任務自動流轉到下一個節點。這種模式與RPA的區別是,工作流引擎實現的是不同角色之間業務流程的自動化,而RPA實現的是某個特定角色操作步驟的自動化。但是,RPA結合工作流引擎可以解決全流程的自動化,所以在部分高級的RPA軟件中已經融入了工作流引擎技術。

第三種模式是利用服務器端的程序或腳本來實現日間或夜間批處理,也包括數據庫中存儲過程的執行,這種批處理執行方式是通過程序邏輯直接訪問數據庫,無須通過用戶界面處理信息。這種模式與RPA的區別是,批處理能夠大批量、高效地執行數據庫處理,但批處理程序必須由專業的技術人員完成,而且一旦完成,由于批處理的邏輯復雜且處理的數據量龐大,難以再次修改。批處理過程和業務邏輯對于業務人員完全是不可見的,業務人員只能通過第二天所產生的報表檢查業務結果是否正確。而RPA的腳本編制簡單,容易上手,甚至業務人員也可以讀懂,達到了所見即所得的效果。RPA模擬了用戶的手工操作過程,業務人員看起來也更加熟悉和親切;RPA仍是單筆業務處理方式,更符合用戶日常業務的處理行為,當出現業務問題或程序異常時也可以及時進行修正。

第四種模式有點像RPA的雛形階段,即利用系統或軟件自帶的腳本語言,編制一些簡單的可以自動執行的腳本來幫助用戶實現系統處理自動化,如Excel中的VBA、UNIX中的Shell等。這種模式與RPA的區別是,普通的腳本必須依賴于某一個特定的軟件,比如VBA只能在Microsoft Office中使用,而不能自動化地操作Oracle EBS的用戶界面。RPA在技術原理上調用的是操作系統底層技術,它能夠識別和處理Windows系統中幾乎全部的應用程序、客戶端、瀏覽器,甚至是遠程虛擬桌面,所以比起傳統的執行腳本方式,RPA可以起到強大的用戶操作集成作用。

(5)我們還要解釋一下RPA與自動化測試(Test Automation,TA)的區別,很多測試人員也許使用過如QTP和Selenium這樣的自動化測試工具。二者在很多方面看起來十分相似,如都是為了避免重復的人工操作,避免人工處理過程中引入的錯誤和風險,基于結構化數據和固定的業務規則等。

一個基本的前提是,RPA可以代替TA工具,但在測試設計上需要做些特別的改進,也就是說RPA基本兼容了TA的功能。TA與RPA比起來有一定的局限性,如TA的目的是測試,輸入的是測試案例,加載于測試環境;而RPA既可以用于測試,也可以用于生產,輸入既可以是測試案例,也可以是實際生產的案例,并且RPA可以加載于開發、測試和運行環境中。由于RPA可使用真正的生產數據,所以需要RPA能夠兼容各種異常,跟蹤和記錄所有的用戶操作行為,對機器人的執行過程進行嚴格監控,這些能力都是TA軟件所不具備的。

通常TA具有兩個目的,一個是回歸測試,另一個是壓力測試。為了達成這兩個目的,自動化測試只需要關注于某個測試案例或測試場景的成敗,而不需要關注整個業務流程的處理過程和業務邏輯,從而可以把這些內容都交給后端程序。

RPA既可以實現單任務的自動化,也可以實現多任務的長流程自動化。另外,RPA可以把真正的業務處理邏輯寫在腳本或代碼中,而TA的業務處理邏輯只能依賴于后臺應用程序,因為TA的目的只是為了檢驗應用程序的正確性。

總之,RPA是實現自動化的技術合集,通過模擬人類使用計算機的行為,實現了跨應用系統的操作集成。

問題2:RPA可以實現哪些流程的自動化?

RPA是運行在計算機中的機器人程序,能實現的自動化流程必然是那些涉及電腦處理的,而現實物理世界中人們的行為就無法利用RPA來模擬和替代,如領導在紙質文件上的手寫簽名、取回已打印的文件、將寄送的包裹交到快遞人員的手中等。不過RPA可以通過實現自動化的電子簽名和校驗來替代手寫簽名。如果企業還未實現無紙化辦公,至少RPA可以做到將要打印的文件自動發送給打印機,并自動判斷打印成功與否。雖然RPA不能親自遞交包裹,但是可以在快遞公司的系統中自動下單,并自動化地檢查快遞物流的實時狀態。

所以,如果在一個業務流程中,一部分步驟是人工的電腦操作,一部分是人在現實世界中的行為,那么可以肯定地說,RPA只能自動化地替代人工的電腦操作,而對于人類的物理行為無能為力,不過這時那些擁有物理手臂和可以自動行走的機器人就可以派上用場了。

既然RPA是利用程序模擬人的操作行為,那么這些流程中的操作行為就必須要有明確的業務規則、明確的行為邏輯,才能轉換成可執行的軟件程序。目前RPA主要應用于商業領域,為企業用戶服務。商業領域其實不像人們的日常生活,日常生活中大部分行為是受情感所支配的,如人們在“雙十一”填滿購物車,在各個網站上隨意地瀏覽新聞。而在商業世界中,90%的業務行為都是有邏輯規則可循的,尤其一線業務人員的操作過程,更是需要嚴格遵守公司的操作規程。

RPA應用領域主要包括財務會計、人力資源、采購、供應鏈管理等,如費用報銷、單據審核、人員入職、開具證明、訂單核對等流程。

另外,并非所有能夠實現自動化的流程,都要真正地實現自動化,如上面幾個定義中所提到的,RPA的目的是要處理那些重復執行且工作量大的流程環節。其實,這里討論的是自動化的必要性,而不是RPA能否實現自動化的問題。

首先,需要考慮投入產出比的問題。因為使用RPA最原始的動力是替代人工勞動,降低人力成本。這部分工作通過人工操作是需要成本的,但是RPA的軟件、實施和維護也需要成本,需要對比一下哪種方式成本更低。

其次,還要考慮業務靈活性的問題。RPA一旦將業務流程和處理規則固化下來,也就意味著業務人員在業務辦理中的自主控制力會降低,隨之會帶來業務靈活性和業務人員及時應變能力的問題。當然,我們還需要從效率、風險、安全、IT建設周期等其他維度來判斷一個流程是否需要自動化,詳細內容參見第4章。

通常得出的結論是,那些重復執行且勞動量大的工作一定是人力相對密集的流程,越多的人執行這樣的流程,規則越不會輕易調整,將這些流程進行自動化所帶來的業務收益通常也會更大。這也就是為什么RPA首先應用于外包服務和企業內部共享中心的原因。

總之,RPA適用于那些具有明確業務規則、重復執行且業務量較大的、相對穩定的業務流程。

問題3:RPA可實現什么程度的流程自動化?

如上所述,RPA模擬用戶在計算機上的操作行為,那么流程中只要涉及用戶界面的操作過程就都有可能被自動化。首先說明,我們所談的流程自動化,并不是指流程100%的步驟都實現了自動化,也就是說流程中的部分環節仍然難以被自動化技術所實現或者技術實現成本過高,仍需要通過手工方式完成。但是隨著技術的進步、推廣和普及,以及企業管理成熟度水平的提升,流程自動化的比例自然會逐步提高。一些流程自動化比例不是很高的企業也決定開始嘗試使用RPA技術,因為只有通過實際的應用才能充分了解實施過程中的風險和問題,培養自身的能力,構建相匹配的團隊,為將來更大規模的RPA應用做準備。可以預想到,開始由于流程自動化比例較低,更多是由RPA來配合人類完成工作,而發展到未來,隨著流程自動化比例的升高,可能就會顛倒過來,更多是由人類來配合RPA完成工作。

由于流程不是100%的自動化,人類和RPA之間就會產生協作,也就必然產生一種全新的與RPA機器人的協作方式,事實上產生了人、RPA機器人、應用軟件三者之間的協作,如圖1-1所示。

圖1-1 人、RPA機器人、應用軟件三者之間的協作

其中,我們最熟悉的就是人使用應用軟件的方式,人通過用戶界面來操作應用軟件(Input),應用軟件處理后(Processing),再將結果反饋給人(Output),也就是常說的IPO,這也是所有軟件工程領域,包括需求人員、需求分析人員、設計人員、開發人員和測試人員等共同遵循的話語體系。由于RPA是模仿人類的操作,Bot使用應用軟件的方式和人類似,不同的是由于Bot也是一種軟件,它可以選擇不去操作UI,而是通過Service或API來直接調用應用軟件。

那么人如何觸發這些軟件機器人呢?主要有以下三種方式。

第一種是手工觸發,即通過手工方式隨時隨地地啟動一個Bot讓它開始運行,既可以啟動本地電腦上的Bot,也可以啟動遠程的Bot。

第二種是通過人們事先編排好的機器人工作日程表,讓Bot按照這個日程表來工作,可以是在某日某時讓Bot開始運行,也可以設置為上一個Bot運行完成后,下一個Bot再開始運行。

第三種是Bot按照事先設定好的規則來觸發機器人的執行,如收到一封郵件,訂單量超過全年30%等,這些都可以作為觸發機器人啟動的外部事件。當RPA系統監聽到這些外部事件后,會自動調用機器人執行自動化任務。然后,在機器人完成任務后,將結果反饋給人類,或者并不需要完全執行,而是執行了一部分,再將其余的工作轉交給人繼續完成。不單是人可以調用Bot,應用軟件也可以反過來采用Service或接口的方式來調用Bot。舉一個RPA已經可以實現的有趣例子,企業中的員工可以通過手機App啟動辦公室里的某臺電腦中的Bot,由Bot操作電腦中的某個應用軟件來完成任務,完成任務之后,再由Bot通過微信將完成結果發送給該員工。

總之,RPA不只是單純的技術創新,而是創造了一種新的技術應用模式,是一種新的人機交互方式和協作方式。

主站蜘蛛池模板: 田林县| 新化县| 桂阳县| 兴安县| 南昌县| 司法| 马山县| 云林县| 分宜县| 合山市| 弥勒县| 鹿泉市| 新昌县| 巨野县| 东兴市| 九龙县| 宁晋县| 呼和浩特市| 维西| 桃园县| 津南区| 探索| 靖边县| 加查县| 库车县| 秭归县| 平舆县| 红桥区| 康定县| 谷城县| 铁力市| 承德县| 南溪县| 和林格尔县| 乌海市| 桐梓县| 上饶市| 哈密市| 蓬安县| 海林市| 宜昌市|