【RPA】どのランタイム環境上で作られているか/ツール別比較


RPAソフトウェアはロボットが動作するプラットフォームですが、OSの上で動くソフトウェアでもあります。そして、いずれのRPAソフトウェアもOSの上で動くソフトウェア開発/ランタイム環境の機能を使って構築されています。これによってRPAソフトウェアのUI、動作プラットフォームや実行速度など、いくつかの点でランタイム環境上で動作するRPAソフトウェアが制約を受けることがあります。ということで、どのランタイム環境上で作られているかについて主要5大RPAソフトウェア (WinActor、BizRobo!、UiPath、Automation Anywhere、Blue Prism)の比較をしてみたいと思います。

# どのランタイム環境上で作られているか - ずばり比較！
|RPAソフトウェア|構築プラットフォーム|説明|
|:--|:--|:--|
|WinActor|Amazon Corretto OpenJDK 8 (~v6)<br/>Microsoft .NET Framework 4.8+(v7)|Version 6.xまではJavaランタイム環境上で動作していましたが、v7より.NET Frameworkに切り替えて全面作り直しをすることによりUIの刷新と実行速度の向上を図っています。|
|BizRobo!|Oracle Java SE 8 or OpenJDK8 (v10.x)|昔からJava8一択で動作します。RPAソフトウェアとして利用できる機能の中にもJavaの特長が組み込まれています。開発環境、運用環境ともWindows/Linuxの両方に対応しています。|
|UiPath|Microsoft .NET Framework 4.6.1+|昔から.NET Framework一択で動作します。RPAソフトウェアとして利用できる機能の中にも.NET Frameworkの変数や式の構文の特長が組み込まれています。|
|Automation Anywhere|Microsoft .NET Framework 4.6+(~v11)<br/>Java 11 Zulu OpenJDK (A2019)|v11.xまでは.NET Framework上で動作していましたが、A2019よりJava11に切り替えて全面作り直しをしています。Windows以外にMacやLinuxなどマルチプラットフォームへの展開を見据えています。現時点でサーバー環境はWindows/Linux両方に対応しています。|
|Blue Prism|Microsoft .NET Framework 4.7+|昔から.NET Framework一択で動作します。|

個人的には、WinActorとAutomation Anywhereがランタイム環境を真逆の方向に移行しているのが興味深いです。WinActorは元々Windows環境のみをターゲットしているのにJavaを使っていたので、Ver.7 でパフォーマンス向上を目的としてランタイム環境乗り換えを決断したのでしょうか。逆にAutomation Anywhereはマルチプラットフォーム化を目指してランタイム環境を乗り換えたのでしょうか。

以下は、開発者視点ではなく、ランタイム環境上で実行されるソフトウェアをエンドユーザーが使う観点からのそれぞれのメリット、デメリットを記載してみました～

### Javaのメリット、デメリット

メリット

* Javaが動作する環境「JVM (Java仮想環境)」はWindows、Mac、Linux、Android、iOSなど様々なプラットフォームに移植されており、マルチプラットフォーム化に適しています。エンドユーザーは様々なOSで同じソフトウェアを動作させることが可能となります。

デメリット

* 一般的に言ってJavaのプログラムは起動や実行がC/C++や.NET Frameworkで書かれたプログラムよりも遅く、実際にエンドユーザーが使う環境下だと動作がもっさりしている印象を受けます。[^1] 
* ユーザーインターフェイスの作りが通常のWindowsアプリケーションと異なる印象になります。フォントもつくりを気を付けないと設定によっては日本語文字に中華フォントが使われてしまうなど、違和感が出ます。

[^1]: Javaのパフォーマンスについてはいろいろなベンチマークがあり、整備された環境下での単体機能テストだとC/C++や.NET Frameworkで書かれたプログラムと同等の値を出すこともあります。

### .NET Frameworkのメリット、デメリット

メリット

* Windows環境上でアプリケーションを構築する場合は、エンドユーザーにとっては高速で通常のアプリケーションと同じユーザーインターフェイスで使うことができます。

デメリット

* Windows以外の環境への移植がまだ実績がありません。wineや.NET CoreによるLinux環境などへの移植も進んでいますが、実用化段階に至るのはもう少し先の話になりそうです。

# 関連記事

* [【RPA】プロセスマイニング・タスクマイニング (プロセスディスカバリー) 対応状況/ツール別比較](https://qiita.com/Okura_/items/320e84651403ac4266a1)
* [【RPA】ロボット実行環境のOS対応状況/ツール別比較](https://qiita.com/Okura_/items/8975d6cd7ba0ff2ff61b)
* [【RPA】基本用語/ツール別比較](https://qiita.com/Okura_/items/2cb0dd2ce17356bb50ea)
* [【RPA】メールの送受信/ツール別比較](https://qiita.com/Okura_/items/369d95a938a05e836417)
* [【RPA】自動化に対する思想/ツール別比較](https://qiita.com/Okura_/items/1c8b29d40d98f2e5ce63)
* [【RPA】サーバー管理の仕組み/ツール別比較](https://qiita.com/Okura_/items/dfc380ec50df6b289391)
* [【RPA】トリガー・スケジュール機能/ツール別比較](https://qiita.com/Okura_/items/7d5e617260378fd2947f)
* [【RPA】ロボットの稼働方法 (ヒトロボ協働型・ロボ自律型)別ライセンス提供/ツール別比較](https://qiita.com/Okura_/items/e9c9f394ae5805481b2b)
* [【RPA】オブジェクト指向のロボット作成/ツール別比較](https://qiita.com/Okura_/items/923706e8f4c8e3628522)
* [【RPA】シンクライアント操作への対応/ツール別比較](https://qiita.com/Okura_/items/13de777603cd9912992b)
* [【RPA】SAP対応/ツール別比較](https://qiita.com/Okura_/items/b265ca3f083b92471b58)
* [【RPA】対応ブラウザー/ツール別比較](https://qiita.com/Okura_/items/8501117954139300f427)
* [【RPA】コーディング知識の必要度/ツール別比較](https://qiita.com/Okura_/items/71a577e2141591c88a33)
* [【RPA】UI Automation 対応状況/ツール別比較](https://qiita.com/Okura_/items/95a78c46454ae0dac036)
* [【RPA】ログイン情報の保管方法/ツール別比較](https://qiita.com/Okura_/items/12cdcc743670c6d9c7c7)