1.1. RPAとは何か

RPA(ロボティック・プロセス・オートメーション)は、エンドユーザーがアプリケーションを使用して行うのと同じ「手動」経路を模倣するように設計されたソフトウェアベースのソリューションです。一般的には、コスト削減、キー入力ミスの排除、プロセスのスピードアップ、アプリケーション間の容易な連携を実現する有効な手段として、これまで人間が行っていた繰り返し作業を自動化するために使用されます。これらのタスクは、うまくモデル化され、ビジネスプロセスに変換された後、(UI)インタラクション、クライアントサーバー、メインフレーム、データベース、ウェブなどのコネクタの組み合わせを使って自動化することができる。

1.2. ツール(OpenRPA/OpenFlow/NodeRED)

UiPath、Automation Anywhere、blueprismなど、RPAでプロセスを自動化するためのツールは数多くあります。私たちのツールのスタック(“OpenRPA、OpenFlow、NodeRED“¹)には多くの利点があり、明らかにあなたへの提案となります。この推奨の理由は次の章で明らかにしますが、今は、これらのツールがそれぞれ何をするのか、そしてその結果について説明します。

OpenRPAOpenFlowNode-REDのスタックをさらにOONと呼ぶことにします¹。

1.2.1. OpenRPA

このツールは基本的に、問題の本質的なタスクを満たすためにプロセスをマッピングし、設計するための主要な環境である。ワークフローを作成するためのIDE 統合 開発 環境)と考えてください。例えば、メールボックスのメッセージをクリックしたり、入力フォームに内容を入力したりといった、以前にマッピングされたすべてのアクティビティが実装される場所です。

また、オーケストレーションとインプットを管理するリポジトリにすべてのワークフローをエクスポートするために使用することになっているソフトウェアでもあります。そのために使うソフトウエアが、この話の次に出てくるOpenFlowです。

1.2.2. OpenFlow

OpenFlowは中央集権的なプラットフォームとしても、分散型プラットフォームとしても機能し、すべてのオブジェクトにアクセス制御リストを適用し、その場で暗号化を行うことで安全なデータベースを公開することができます。また、Kubernetes上で動作するNode-REDインスタンスのオーケストレーターや、ロボットの軽量オーケストレーターとしても機能します。OpenRPAロボットがOpenFlowに接続すると、すべてのデータ(ワークフロー、検出器、資格情報、状態)がOpenFlow内に保存されます。Node-REDインスタンスがOpenFlowに接続された場合も同様で、すべてのデータ(フロー、ステート、セッション、クレデンシャル)をOpenFlow内部に保存します。 最後に、OpenFlowは、内蔵のフォームデザイナーを使用したり(Node-REDワークフローを介して呼び出す)、WebサイトでOpenRPAワークフローを直接リモートで呼び出したりして、人間との対話をテーブルに追加できるさまざまな方法も提供します。

1.2.3. ノードRED

Node-REDは、IoTの電文メッセージを処理するために設計されたイベントベースのワークフローエンジンですが、Node-REDを取り巻く大きなコミュニティは、PLCなどの従来の自動化や、2500以上のITシステム、クラウドオファリングに統合するために機能を拡張しました。 OpenFlowの一部として実行すると、プラットフォームに簡単なオーケストレーション、負荷分散、セキュリティ強化機能が追加されています。Node-REDは、OpenFlow経由でOpenRPAロボットのオーケストレーターとしても機能します。Node-REDは、フローを配線するだけで、ロボットがNode-REDがサポートする全てのITシステム(ハードウェアデバイス、API、オンラインサービス、その他多数!)と相互作用することを可能にします。最後に、OpenFlowはNode-REDをバックエンドとして利用し、Formsデザイナーが作成したフォームのフローを実行することも可能です。

1.3.1. ローコードコンセプト

ローコードコンセプトとは、目的のタスクを実行するために必要な技術やプログラミングの知識がないこと、つまり、ボックスをドラッグしていくつかのパラメータを入力するだけで、完全に機能するようになることを意味します。

ロー コードとは、基本的なプログラミングの知識を必ずしも必要とせず、BPMの開発を支援するGUIを中心としたインターフェースを持つプラットフォームを指す。これらのアプリケーションは、プロセスの設計と実装のプロセスを支援するために、コーディングの代わりに視覚的なモデリングを多用する。

ローコード開発プラットフォームは、学習曲線が非常に緩やかで、UX指向の実践を念頭に置いて設計されていることが多い。また、ユーザーが迅速に進歩し、ほとんど注意することなく作業プロセスを設計・展開するのに役立つという事実があります。

² – 今後、ローコード開発プラットフォームのことをLCDPと呼ぶことにします。

1.3.2. 市場投入までの時間

一般的なアプリケーション開発プロセスでは、製品が構想されてから完成し、展開されるまでの期間が、LCDPに比べて大幅に長くなる。これは、LCDPを使用する場合、このサイクルに関与するステップがはるかに少ないために起こります。例えば、アプリケーションを構築するために使用されるソフトウェアのすべての部分がすでにテストされ、フレームワーク内に統合されているため、コード関連のユニットテストは必要ありません。

私たちのスタックでは、LCDPプログラミングにより、プロトタイプや実際に機能するものを作ることが容易で、プロトタイプから実際の生産品への移行も簡単にできることを意味します。これは、OONスタックフレームワークのネイティブな統合と使いやすさによって提供されています。

1.3.3. フレームワーク vs. 余分な仕事

OONスタックは、最終的な製品を実装するために必要な作業量を大幅に削減します。これは、特権とアクセス管理、組み込みのMongoDBデータベース、安全なクレデンシャルとフォームなど、多くの機能が組み込まれているためです。これについては、これから説明します。

1.3.3.1. 特権とアクセス管理

OpenFlow は、すぐに統合できる権限とアクセス管理のインターフェースを提供します。これについては、OpenFlow のセクションのロールの章で詳しく説明します。管理者はユーザーを作成し、そのユーザーにロールを割り当てることで、アクセスできる機能を制限したり、拡張したりすることが可能です。ワークフローごとにユーザーを設定し、それに応じてパーミッションを設定する必要はなく、ロールを作成し、与えられたパーミッションを割り当てるだけでよいのです。

1.3.3.2. 組み込み型MongoDBデータベース

OONスタックは、MongoDB(https://www.mongodb.com/what-is-mongodb)との間でデータをやり取りするために使用する単一のデータベースを有しています。統合は簡単で、データはJSONで保存されます。

スタックにセントラルデータベースがあることで、KPI(重要業績評価指標)、レポートやダッシュボード、グラフ、エージェントが処理したデータの記録を簡単に作成することができます。また、ロボットの効果や精度を測定することもできますが、測定可能なものしか管理できないことを忘れないでください。

また、クラウド上にファイルを保存し、共有ファイルとして利用することも可能です(Wordファイルで表現されたフォームなど)。また、時間がかかりすぎるタスクや、多くのステップ/ワークフローにまたがっているタスクなど、将来使用するためにファイルを保存する方法も備えています。これにより、ファイル管理を一元化することができます。

1.3.3.3. 安全なクレデンシャル

安全なクレデンシャル管理システムは、SecureStringクラス¹を使用して、システムやロボット間でクレデンシャルを簡単に共有、挿入、更新、削除する方法を提供します。すべて自動で管理されるため、ワークフローで使用する特定のクレデンシャルを保管する必要がある場合でも、保管システムのセキュリティを心配する必要はありません。

¹ –Secure String クラス(https://docs.microsoft.com/en-us/dotnet/api/system.security.securestring?view=netcore-3.1).

1.3.3.4. フォーム

OpenFlowはまた、動的なウェブページを作成することによって、ワークフローに入力を送信するためのユーザーフレンドリーな方法であるフォームを提供します。これはユーザーが与えるべき全ての入力を収集し、ロボットがその処理と実行に使用できるようにするものです。つまり、ロボットからデータを収集するためだけにウェブページを作成する必要はなく、フォームを作成して公開し、エンドユーザーが入力できるように、一部の役割にのみアクセスを許可すればよいのだ。

1.3.3.5. メッセージキューイング

OpenFlowによって公開されたAMQP機能を使用して、NodeREDはOONスタックのキューとタスクで動作することができます。これは、同じワークロードを実行する必要がある多数のNodeREDインスタンスや多数のロボットにワークロードを分散させるために使用されます。これにより、ワークフローの耐障害性が向上し(単一障害点の排除)、ワークロードの実行を支援するノードやロボットを簡単に追加できるようになるため、弾力性が高まります。

1.3.3.6. 内蔵機能

多くの普遍的なRPAアクティビティは、すでにOpenRPA内部に組み込まれて出荷されており、すぐに使用することができます。例えば、エクセルファイルの読み込み、ファイルのオープン、ウェブページのブラウズなどです。

1.3.4. ツールの統合方法

開発プロセスは、OpenRPA→OpenFlow→Node-REDという流れになります。

OpenRPAでは、目的のRPAプロセスを実行するワークフローを設計します。

OpenFlowでは、それらを管理するとともに、ユーザーが外部から入力するためのフォームを作成するのです。

Node-REDでは、フローチャートを作るように両者を配線していくのです。

OpenRPAのワークフローがコンサートの演奏者、OpenFlowがマエストロ(指揮者)、Node-REDが楽譜だと考えてみてください。

1.3.5. スケーラビリティ(拡張性

OONスタックを使った製品のスケーリングは、通常よりもずっと簡単です。オーケストレーションがOpenFlowによって直接管理され、Node-REDによって支援されることを考えると。また、ロボットへのデプロイ、検証、メンテナンスもはるかに簡単です。

3つのアプリケーション(OpenFlow、OpenRPA、Node-RED)のいずれかに新しい変更をデプロイすると、環境全体に瞬時に適用されます。オンラインロボットは自動的に変更を取得し、オフラインロボットは次にオンラインになったときに変更を行います。これは、ロボットやアプリケーションがデータを収集する主要なリポジトリであるOpenFlowによるものです。

OpenFlowは、RabbitMQ¹により、無限のロボットを扱うことができます。OpenFlow/Node-REDが動作するサーバーに求められる技術スペックは極めて低い。

OpenRPAエージェントは、異なる物理マシンや仮想マシンにOpenRPAをインストールしたり、Windowsターミナルマシンで多くのユーザー/インスタンスを同時に実行できるHDRobots拡張機能を使用することでスケールアップすることができます。また、あるプロセスがGUIを必要としない場合、言い換えれば、キーボードやマウス、画像認識を必要とせずにすべての処理を行うことができる場合、OpenRPAの1つのインスタンスが多くのワークフローを並行して実行することが可能です。

¹ –RabbitMQ(https://www.rabbitmq.com/)。

1.3.6. セキュリティ/コードが露出しない

LCDPのおかげで)ほとんどコードが書かれていないため、エンドユーザーやエージェントにコードが公開されることはなく、必要に応じてコード自体の閲覧を無効にすることができます。

クレデンシャルについては、OpenFlowはユーザ名/パスワード、OAuth、WS-Federationをサポートし、ユーザを認証することができます。NodeREDは、OpenFlowからユーザーを認証するためにWS-Federationを使用します。 OAuth/WS-Federationを使用すると、お気に入りのIDPソリューションでユーザーのアイデンティティをよりよく管理・制御できるため、通常セキュリティは大幅に向上します。

また、ユーザーやエージェントの数にも制限がないため、各ロボットやOpenFlowユーザーは、必要な数だけ独自のユーザー名/パスワードのクレデンシャルを持つことができます。

また、クレデンシャルはオブジェクト(ワークフロー、プロジェクト、フォームなど)ごとに異なるレベルの権限(読み取り/編集/削除)を持つことができ、さらに、各パスワードは暗号化されるため、誰かが認証攻撃を試みることはさらに困難となります。

2.1. OpenFlowとは

OpenFlowはOONスタックの心臓部であり、アプリケーション間のすべてのアクティビティをオーケストレーションします。ここでは、その主な機能を紹介します。

  • ロボットやワークフローの管理、呼び出し、設定。

  • ユーザーとその権限レベルの管理

  • 人間がプロセスに参加しなければならないときはいつでもフォームを作成し、現在ユーザーに割り当てられているワークフローや休止中のワークフローをすべて表示することができます。

  • MongoDBのコレクションとエントリーを管理する。

  • クラウドの中央リポジトリで、そのコンテンツ(ワークフロー、フォーム、MongoDBファイルなど)をロボット、ユーザー、その他のアプリケーションで利用できるようにします。