前回は、安易なRPA導入によってRPA自体がレガシー化してしまうリスクや、RPAの役割は極論するとシステム連携であり、APIが存在しない場合にのみ利用すべきなこと、さらにAIとRPAの独立性について説明しました。

2回目となる今回は、RPAを導入するにあたって知っておくべき技術的なバックグラウンドを紹介します。この議論は、RPAの用法や処理精度、処理スピード、開発効率を考える上で重要です。

RPAはアプリケーションをどのように自動化しているのか?

RPAは、自動化対象アプリケーションをどのように操作しているのでしょうか。人間と同じようにマウスやキーボードを操作している……と言っても、実際に人型のロボットがマウスを握ったり、キーを打ったりしているわけではありません。では、ここで言う「人間と同じように」というのは、具体的に何を意味しているのでしょうか。

少し考えれば分かることですが、「人間と同じように」というのは、あくまで「人間が見ているのと同じアプリケーション画面遷移に基づいて、RPAがアプリケーションを操作している」ということを意味しています。

それでは、RPAがアプリケーションを操作するための具体的な手段は一体何でしょうか。

RPAは、人間のように画面を俯瞰的に眺めてアプリケーション部品を識別することができません。もしそれを実現するならば、高度な認知機能が必要となります。単純作業を実行するためのRPAに、そんな高度な認知機能を内包しようというのは、ロボットの実行効率の観点から考えると最適解とは言えません。

現在世の中に存在する多くのRPAの自動化方式は、以下のように大別されます。

  1. 座標方式、キーボード操作送信方式
  2. 画像処理方式(画像認識/文字認識)
  3. オブジェクト認識方式/HTML構文解析方式


なお、上記3つの方式は互いに排他的とは限らず、1つのRPA製品が複数の方式を兼ね備えていることもあります。

以降では、この3つの方式を順に見ていきましょう。

座標方式、キーボード操作送信方式

この方式が、3つのなかで最もプリミティブかもしれません。アプリケーション画面を座標に基づいてクリックし、文字入力をキーボード操作の送信によって実現するものです。

座標やキーボード操作が決め打ちになるため、例えば、ウインドウサイズの変更によって画面部品の位置が変わったり、業務内容に応じて画面が動的に変化したりする場合には不向きです。

画像処理方式(画像認識/文字認識)

この方式は、多くのRPAベンダーが採用しているものです。アプリケーション画面内の部品を、グラフィックレイヤー(ビットマップデータ)を解析することで識別します。ここで言う「解析」とは、画像認識や文字認識(OCR)を指しています。

アプリケーション画面内から、必要なラベルやボタンを画像処理によって探し出し、必要な処理(クリック、データ読み取り)などを行います。データの入力は、対象画面に対してキーボード操作を送信するアプローチを取るのが一般的です。

画像認識や文字認識にはCPUパワーが必要とされるため、ほかの方式に比べると処理が遅くなる傾向があります。また、人間の操作(自動化対象アプリ画面上をマウスのポインタが横切ったり、画面を最小化したりなど)がアプリケーション画面の読み取りを阻害し、RPAが停止してしまう場合があります。

オブジェクト認識方式/HTML構文解析方式

オブジェクト認識方式は、多くのRPAベンダーが徐々に採用し始めている方式です。同方式では、アプリケーションの実行レイヤーを解析することで、画面部品(オブジェクト)の識別を実現しています。

もう少し詳しく説明しましょう。Windows上でアプリケーション(exeファイル)を実行すると、内部的にDLL(ダイナミックリンクライブラリ)が読み込まれます。オブジェクト認識方式では、このDLLの間にRPA独自のDLLを挿し込み、アプリケーションの動作を傍受/上書きしています。

アプリケーション通常実行時(図左)とRPA (オブジェクト認識方式) 発動時(図右)

一方、HTML構文解析は、HTMLソースコードを参照することで、画面上のオブジェクトを識別し、Webブラウザの動作に作用します。言ってみれば、オブジェクト認識方式のWeb版です。

アプリケーションの動作に直接作用するオブジェクト認識方式は、画像処理方式に比べて、少ないメモリ空間とCPUリソースで実行できます。

3つの自動化方式の長所と短所

3つの自動化方式について、筆者なりに○×表を作成すると次のようになります。

  システムや環境の変更への強度 同一マシン上での人間の操作への強度 対応アプリケーションの豊富さ 自動化処理スピード 自動化処理精度 開発効率
1. 座標方式、キーボード操作送信方式 × × ×
2. 画像処理方式 (画像認識/文字認識) ×
3. オブジェクト認識方式/HTML構文解析方式

○×の根拠については、ここまでの解説内容から、おおよそご想像いただけるはずです。この表を見る限り、「操作可能なアプリケーションの種類の豊富さ」を除くと、「オブジェクト認識方式/HTML構文解析方式」が圧倒的な優位性を持っているようにも見えます。では、それは現実的な感覚から言って正しい結論なのでしょうか。

オブジェクト認識では、アプリケーション内のオブジェクトの変化を捕捉できるため、アプリケーションの画面遷移を待つために一定時間のポーズを置く必要がありません。正しいオブジェクトの生成(あるいは変化)を待ち、オブジェクトが生成された(あるいは変化が起きた)瞬間に後続処理を開始することができます。

筆者の経験上、この「正しいオブジェクトを捕捉する」という部分が、方式3の”要”です。「正しいオブジェクト」がなかなか特定できず、「開発難易度が高い!」と感じる方もいるようですが、いったん仕組みを分かってしまえば、「これほど効率的な方法はない!」と感じる方が多いのも事実です。

* * *

以前、あるお客様が「オブジェクト認識は宇宙の真理に近い」とおっしゃっていました。Windows OSが宇宙全体だとすると、DLLファイルの動作に直接作用するオブジェクト認識方式は、まさに宇宙の真理に迫るものです。自動化対象の.NETアプリやWebアプリがどのような仕組みで動いているのか、その動作を極限まで追及し、高速かつ軽量に実行できるオブジェクト認識方式は、ひとたび動作させれば「最強のRPA」となる可能性を秘めています。

著者紹介


ペガジャパン株式会社
シニア ソリューション コンサルタント
金井 盛隆 (Moritaka Kanai)

2012年11月より現職。ペガジャパンの親会社である米ペガシステムズ社が2016年4月にオープンスパン社を買収したことに伴い、同年6月よりRPAのプリセールス活動を開始。これまでの提案企業は50社を超え、導入検証、実プロジェクトでの実装経験もある。
小さい頃から大きな車を運転することが夢だったため、学生時代に大型免許を取得。しかし、現在に至るまで活用シーンはなし。趣味はビール、ラーメン(主に二郎系)、映画鑑賞。
現在、ペガジャパン毎年恒例のイベント『Customer Engagement Summit Tokyo』のデモ準備中。例年、当社ソリューション コンサルタント数名がステージに上がり小芝居を打っています。
前職は日本オラクル (2000年4月~2012年11月)。2児の父。