ソフトウェアロボットの作り方 -- ROBOWARE --
ソフトウェアロボットを作るには
ROBOWARE - フレームワーク
ROBOWARE - API
フレームワークとライブラリの違い
ROBOWAREの導入
サンプルスクリプトを選ぶ
RBF APIプログラム開発 リレー通信
RPA(Robotic Process Automation)が注目される中、ソフトウェアロボットの需要が増えております。これにより、バックオフィス(間接部門)の業務オペレーションを自動化して、業務処理のエラーを無くし、効率を高め、ひいては事業拡大に結びつけようというものです。
皆様はソフトウェアロボットの作成方法をご存知でしょうか?
自分の会社の業務は独特だから、自動化は無理だよって諦めていませんか?
ソフトウェアロボットの作り方にご興味がある方のために、人の業務操作を代行してくれるソフトウェアロボットを、少しのプログラム知識で比較的簡単に作成できるROBOWAREを使った作成方法を解説いたします。
ソフトウェアロボットを作るには
ソフトウェアロボットがあれば、面倒な事務作業などのPC操作が自動化できます。
通常ソフトウェアロボット制作するためには、かなり高度なプログラミング能力が要求されます。たとえば、マウスやキーボードの入力操作を一からプログラミングすることは、経験が少ないプログラマーや、Windows等のパソコンの内部の仕組みを知らない人にとっては、とても難しく、時間もかかり、専門知識がなければ作成することさえ困難となります。
そのため、多くのRPAのツールベンダーは、メモリやストレージがいろいろ選択できるBTOパソコンと同様に、希望にあったロボットを手軽に作成できるようシステム化して、GUIで比較的簡単に設定できるソフトウェアロボットを業務に合わせ、いろいろな種類のパターンで作成しました。
これによりRPAツールの中から必要なソフトウェアロボットの形に近いものを選んでカスタマイズできれば、簡単にソフトウェアロボットが作成できます。
しかしながら、企業や組織の業務は多種多様なため、すでにある形に無理に合わせようとすると、希望するソフトウェアロボットが作成できない場合も多いです。
自作パソコンをイメージしてみてください。まずPCのフレームを用意して、メモリやディスクやファンなど、すでに完成された部品を利用するでしょう。気に入った部品を揃えて組み立てれば、そんなに高度なパソコンの知識がなくても、思い通りのパソコンができるはずです。
ソフトウェアロボットについても、同様にフレームワーク化されたAPIを搭載したROBOWAREを使用すれば、高度なプログラミング知識がなくても、比較的容易に作成することができます。
ROBOWAREであれば、目的に合ったソフトウェアロボットを、RubyやPHPなどの汎用プログラミング言語を使用して、幅広い分野に対応して制作できます。
ROBOWARE - フレームワーク
ROBOWAREは、ソフトウェアロボットを開発、実行するためのソフトウェアフレームワークです。
ソフトウェアフレームワークとは、ソフトウェアロボットの開発・運用を行う際に、その基礎となるルール・構造・アイデア・思想などの集合で、ROBOWAREにはソフトウェアロボットを作成するために多くのAPIが含まれています。
ROBOWAREのフレームワークにより、ソフトウェアロボットの骨格が用意され、開発も容易で、実行時にソフトウェア同士の連携が簡単に取れます。
プログラミング言語としては、Ruby、Java、PHP、C#にて作成されるスクリプトに対応したソフトウェアロボット専用のフレームワークです。
フレームワークのメリット
ソフトウェアロボットを作るために必要な枠組みはすでに出来ているため開発コストが下がり、ある程度の品質が保証されます。
また、設計、構成などがフレームワークとして用意されており、機能が明確に分離されているため、保守性が上がり、またコードが読みやすくなる、というメリットもあります。
ROBOWARE - API
ROBOWAREは、ソフトウェアロボットを開発し、実行・運用するための多くのAPI(Application Programming Interface)を実装しております。
APIとは、ソフトウェアが、他のソフトウェアとお互いやり取りをするために機能を共有出来るようにするためのインターフェースのことです。
たとえば、異なるアプリケーションを連携させるためには、通常内部のレコードフォーマットなどの仕様に合わせてアクセスできるようにしたインターフェースが必要なため、目的に応じたAPIを用意します。
ROBOWAREの場合のAPIとは、ROBOWAREに搭載されたソフトウェアフレームワークに対して、ソフトウェアロボットを開発、実行するためにスクリプトにより指示できるように実装されたインタフェースです。
このAPIに引数として、指示に必要な情報を与えることによって、ソフトウェアロボットとして稼働するための動きが指示できます。
APIを利用することで、どのような文字列をコピーしたり、クリックするかなどを複雑なプログラムコードを記述することなく、引数によって簡単に指示できます。
ROBOWAREのAPIの引数は、 基本として ハッシュ型を採用しております。ハッシュは、連想配列とも呼ばれ、文字列を キー とする配列で、1つのAPIに対し、いろいろな指示が可能です。
フレームワーク と ライブラリの違い
ROBOWAREは、ソフトウェアロボットが制作できるソフトウェアフレームワークです
ソフトウェアフレームワークは、定義されたAPIを持ち、具体的な実装を再利用可能な形で持っている点でライブラリとよく似ています。
しかし、ライブラリではプログラムの制御に関する主導権がプログラムコードにあるのに対し、ソフトウェアフレームワークでは、フレームワークがコード(API)の制御を行ないます。
プログラムのライブラリは、通常共通で使用できるプログラムの部品をひとまとまりのファイルにしたものです。
ソフトウェアロボットの場合、そのライブラリに共通部品を置いて使用したとしても、メインとなるプログラムコードを記述しなければならず、通常のプログラム開発をする工程と同じとなります。
一方、ソフトウェアフレームワークであるROBOWAREは、既にソフトウェアロボットの枠組みが構成されているため、APIに引数を渡すスクリプトをコーデイングするだけで、ロボットに指示が与えられます。データの選択条件や、エラー時のハンドリングなどを詳しく指定する必要がある場合でも、通常のプログラム言語によるコーデイング追加によって、ロボットに対し更に詳しい指示が可能になります。
また、ソフトウェアロボットが動くためには、別のPCからの指令や、リモートから制御する仕組みが必要な場合があります。ROBOWAREであれば、単独のプログラムと比較して、実行・管理が出来る仕組みも予めフレームワークに備わっているという利点もあります。
ROBOWAREの導入
ソフトウェアロボット制作のために、ROBOWAREを、操作を代行するPCに導入します。
稼働環境:Windows および Linux
インストーラーの起動で簡単に導入が出来ます。
(使用中のウイルス・スパイウェア対策のソフトに対象外の設定をする必要があります。)
ROBOWAREの導入として、RBFソフトウェアをインストールすると、上記、3つが使用可能になります。
導入後、マニュアルも導入フォルダ内に格納されます。
各API、サンプルスクリプト集もプログラミング言語ごとに4種類用意され、Ruby、Java、PHP、C#に分かれてそれぞれのリファレンスマニュアルがあります。
RBFサーバのインストール後に、RBFアプリケーションを起動するランチャーのショートカットが設定されます。
Job Managerの導入により、複数のROBOWAREのJobの実行や監視、各種設定ができます。
(導入後、ライセンスの登録が必要です。)
サンプルスクリプトを選ぶ
APIで使用するスクリプト用の言語をRuby、Java、PHP、C#より選択します。
Ruby、Java、PHP、C#の各言語ごとに用意されている50種類以上のサンプルスクリプトファイルより、参考になりそうなサンプルコーディングを選びます。
各言語のマニュアルを基に、APIを使い、ROBOWAREにどのようにオペレーションするかを、プログラミング言語によって指示します。
このサンプルを参考に、言語の種類ごとユーザが使い慣れたエディタを使用してコーディングします。実際にサンプルを実行させて、サンプルスクリプト内のAPIを変更するなど試行をしながら、APIを短期間で効率よく習得し、作成できる方式になっています。
RBF APIプログラム開発 リレー通信
ROBOWAREの開発言語基本記述構成
配列変数にリレーさせる経路順にIP(FQDN)設定します。
APIの種類
ROBOWAREは、WindowsまたはLinuxで動作可能な約80のAPIを提供します。 ROBOWAREのAPIに、プロセス名や座標などの引数を与えるだけで簡単にスクリプトが作成できます。
GetActiveProcessNum() | 実行されているプロセス数を取得 |
GetCPUusageRate () | 指定のPIDまたはOS全体のCPU使用率を取得 |
AddRemovePrograms() | インストールされたソフト一覧の取得/アンインストール |
ExecProcess () | プロセスや実行ファイルを起動 |
FileTransfer () | ファイルを転送 |
SendMail() | メールを送信 |
WindowCapture() | ウィンドウをキャプチャーする |
KeyboardTyping() | 指定のウィンドウハンドルにキー入力 |
TermPrint() | Telnet/SSHサーバにコマンドを送信する …etc |
スクリプトを実行するRBFホストのOSがWindowsの場合に、終端でソフトウェアロボットが稼働するRBFホストの環境がLinuxであっても制御可能です。
同様に、スクリプト実行RBFホストのOSがLinuxで、終端RBFホストがWindowsでも可能ですが、終端RBFホストのOSで指定できる引数が異なる場合があります。
ROBOWAREには、多数のカテゴリーのAPIがあり、各プログラミング言語のリファレンスマニュアルには、該当APIがどのサンプルスクリプトに例文があるのか記載されています。
・TCP接続開始、終了、エラーに関するAPI Method |
・OSまたはプロセスのリソース取得設定に関するAPI Method |
・OSまたはプロセス制御に関するAPI Method |
・通信に関するAPI Method |
・メールに関するAPI Method |
・Windows UI制御に関するAPI Method ・・・ 他 |
ROBOWAREの画面表示認識
画面表示された内容の認識
モニターに表示されているウィンドウのテキスト文字を RBF APIの引数に指定して、目的の操作(クリック・キー入力等)を行います。
遠隔で制御したいロボット(RBFホスト)のモニターの解像度等に関係なく開発することができます。
ROBOWARE アナライザー
マウス・キーボード操作の開発は、RBF アナライザーを使用します。
これにより、画面上の操作を簡単にスクリプトコードにジェネレートできます。
典型的なRPAツールであれは、ツールのGUIによって、マウスやキーボード操作がそのままマクロ設定できるものが多いですが、ROBOWAREは、いろいろな条件で操作をハンドリングできるように、APIの引数の情報をアナライザーによって取得し、その後、作成者自身でスクリプトに反映する必要があります。
つまりプログラミングを支援するユーティリティとなります。
ROBOWARE プログラム管理
ROBOWARE – Job Manager
RBF APIで開発したプログラムをJobコマンドとして、管理するソフトウェアです。
Job Managerの画面は、タッチパネルモニターの場合に、Jobコマンドを実行するまでの操作を指でタップし易いように設計されています。
よく使用するランチャーボタンを一覧表示し、Jobコマンドを用途別にフォルダのツリー形式で管理でき、Jobコマンドの一覧が出るエリアと、詳細を表示するエリアに分かれて表示されます。
分割されたエリアのサイズ変更や、フォルダのアイコンの変更も可能です。
Jobコマンドの新規登録
作成したソフトウェアロボットを実行するためにJob ManagerでJobコマンドを作成します。
Job ManagerのJobコマンドツリービューに表示されたフォルダ毎に、Jobコマンド登録情報を作成できます。
実行するJobについて、プログラムファイルのパスや、プログラムを実行する時の引数、起動時に引数を入力させるかどうかなどを指定できます。
また、Jobコマンドリストビューのから選択で、Jobコマンド実行方法の設定ができます。
ソフトウェアロボットの実行方法
ROBOWAREには、スケジューラ機能もあり、作成したソフトウェアロボット毎にJob Mangerで予め実行形態を登録できます。
ROBOWAREは、他のROBOWAREが導入済みのPCやサーバに対し、実行指令が可能です。
これによって、IPネットワークで接続されていれば、テレワークに対応して、遠隔地の自宅やサテライトオフィスからでも、制御することが可能になります。
中央管理のための専用サーバは必要なく、ROBOWARE同士で、異なるネットワークセグメントにおいてもリレー(中継)して実行することが可能で、相互のバックアップ(冗長化)になることもできます。
ROBOWARE 構成例
操作端末からの操作は社内のみ、監視端末からはDMZのみの端末操作を行う場合の例
ROBOWAREは、ライセンスIDでお互いの通信を制限できます。
同じ社内の異なるシステムにROBOWAREが共存する場合であっても、外部のROBOWAREからそのシステムを制御されない作りになっております。
典型的な例では、実行したいPC上にROBOWAREを導入し、それぞれ作成したソフトウェアロボットが動く環境にします。
実行指示や、実行結果の管理を行うPCあるいはサーバには、ライセンスID毎にJob Manegerを導入して制御します。
ROBOWAREでソフトウェアロボットを作成すれば、様々な業務形態に対応して比較的簡単にオペレーションの自動化が実現できます。
【RPA概説ページリンク】(*2017年1月31日~2019年5月10日公開の過去の情報です)
PDFダウンロード
【RPAソリューションページリンク】
【業務視える化関連リンク】