×

ソフトウェアロボットの作り方   -- ROBOWARE --RPA概説シリーズ インデックス

(*この記事は、2017年7月4日公開の過去の情報です)

RPA(Robotic Process Automation)が注目される中、ソフトウェアロボットの需要が増えております。これにより、バックオフィス(間接部門)の業務オペレーションを自動化して、業務処理のエラーを無くし、効率を高め、ひいては事業拡大に結びつけようというものです。

皆様はソフトウェアロボットの作成方法をご存知でしょうか?
自分の会社の業務は独特だから、自動化は無理だよって諦めていませんか?

ソフトウェアロボットの作り方にご興味がある方のために、人の業務操作を代行してくれるソフトウェアロボットを、少しのプログラム知識で比較的簡単に作成できるROBOWAREを使った作成方法を解説いたします。

 ソフトウェアロボットを作るには

 

ソフトウェアロボットがあれば、面倒な事務作業などのPC操作が自動化できます。

通常ソフトウェアロボット制作するためには、かなり高度なプログラミング能力が要求されます。たとえば、マウスやキーボードの入力操作を一からプログラミングすることは、経験が少ないプログラマーや、Windows等のパソコンの内部の仕組みを知らない人にとっては、とても難しく、時間もかかり、専門知識がなければ作成することさえ困難となります。

そのため、多くのRPAのツールベンダーは、メモリやストレージがいろいろ選択できるBTOパソコンと同様に、希望にあったロボットを手軽に作成できるようシステム化して、GUIで比較的簡単に設定できるソフトウェアロボットを業務に合わせ、いろいろな種類のパターンで作成しました。
これによりRPAツールの中から必要なソフトウェアロボットの形に近いものを選んでカスタマイズできれば、簡単にソフトウェアロボットが作成できます。
しかしながら、企業や組織の業務は多種多様なため、すでにある形に無理に合わせようとすると、希望するソフトウェアロボットが作成できない場合も多いです。
自作パソコンをイメージしてみてください。まずPCのフレームを用意して、メモリやディスクやファンなど、すでに完成された部品を利用するでしょう。気に入った部品を揃えて組み立てれば、そんなに高度なパソコンの知識がなくても、思い通りのパソコンができるはずです。

図1

ソフトウェアロボットについても、同様にフレームワーク化されたAPIを搭載したROBOWAREを使用すれば、高度なプログラミング知識がなくても、比較的容易に作成することができます。

ROBOWAREであれば、目的に合ったソフトウェアロボットを、RubyやPHPなどの汎用プログラミング言語を使用して、幅広い分野に対応して制作できます。





*ROBOWAREは、株式会社シーイーシーカスタマサービスの登録商標です。

 ROBOWARE - フレームワーク

 

ROBOWAREは、ソフトウェアロボットを開発、実行するためのソフトウェアフレームワークです。

ソフトウェアフレームワークとは、ソフトウェアロボットの開発・運用を行う際に、その基礎となるルール・構造・アイデア・思想などの集合で、ROBOWAREにはソフトウェアロボットを作成するために多くのAPIが含まれています。

ROBOWAREのフレームワークにより、ソフトウェアロボットの骨格が用意され、開発も容易で、実行時にソフトウェア同士の連携が簡単に取れます。

プログラミング言語としては、Ruby、Java、PHP、C#にて作成されるスクリプトに対応したソフトウェアロボット専用のフレームワークです。

図2

フレームワークのメリット
ソフトウェアロボットを作るために必要な枠組みはすでに出来ているため開発コストが下がり、ある程度の品質が保証されます。
また、設計、構成などがフレームワークとして用意されており、機能が明確に分離されているため、保守性が上がり、またコードが読みやすくなる、というメリットもあります。

 ROBOWARE - API

 

ROBOWAREは、ソフトウェアロボットを開発し、実行・運用するための多くのAPI(Application Programming Interface)を実装しております。

APIとは、ソフトウェアが、他のソフトウェアとお互いやり取りをするために機能を共有出来るようにするためのインターフェースのことです。 たとえば、異なるアプリケーションを連携させるためには、通常内部のレコードフォーマットなどの仕様に合わせてアクセスできるようにしたインターフェースが必要なため、目的に応じたAPIを用意します。

ROBOWAREの場合のAPIとは、ROBOWAREに搭載されたソフトウェアフレームワークに対して、ソフトウェアロボットを開発、実行するためにスクリプトにより指示できるように実装されたインタフェースです。
このAPIに引数として、指示に必要な情報を与えることによって、ソフトウェアロボットとして稼働するための動きが指示できます。

APIを利用することで、どのような文字列をコピーしたり、クリックするかなどを複雑なプログラムコードを記述することなく、引数によって簡単に指示できます。
ROBOWAREのAPIの引数は、 基本として ハッシュ型を採用しております。ハッシュは、連想配列とも呼ばれ、文字列を キー とする配列で、1つのAPIに対し、いろいろな指示が可能です。

図3

 フレームワーク と ライブラリの違い

 

ROBOWAREは、ソフトウェアロボットが制作できるソフトウェアフレームワークです

ソフトウェアフレームワークは、定義されたAPIを持ち、具体的な実装を再利用可能な形で持っている点でライブラリとよく似ています。 しかし、ライブラリではプログラムの制御に関する主導権がプログラムコードにあるのに対し、ソフトウェアフレームワークでは、フレームワークがコード(API)の制御を行ないます。

図4

プログラムのライブラリは、通常共通で使用できるプログラムの部品をひとまとまりのファイルにしたものです。
ソフトウェアロボットの場合、そのライブラリに共通部品を置いて使用したとしても、メインとなるプログラムコードを記述しなければならず、通常のプログラム開発をする工程と同じとなります。

一方、ソフトウェアフレームワークであるROBOWAREは、既にソフトウェアロボットの枠組みが構成されているため、APIに引数を渡すスクリプトをコーデイングするだけで、ロボットに指示が与えられます。データの選択条件や、エラー時のハンドリングなどを詳しく指定する必要がある場合でも、通常のプログラム言語によるコーデイング追加によって、ロボットに対し更に詳しい指示が可能になります。
また、ソフトウェアロボットが動くためには、別のPCからの指令や、リモートから制御する仕組みが必要な場合があります。ROBOWAREであれば、単独のプログラムと比較して、実行・管理が出来る仕組みも予めフレームワークに備わっているという利点もあります。 

 ROBOWAREの導入

 

ソフトウェアロボット制作のために、ROBOWAREを、操作を代行するPCに導入します。
稼働環境:Windows および Linux
インストーラーの起動で簡単に導入が出来ます。
(使用中のウイルス・スパイウェア対策のソフトに対象外の設定をする必要があります。)

  • RBF API        : ROBOWAREが提供する各種API
  • RBFサーバ       : RBF APIの命令に基づき処理を実行、または通信リレーを行うサーバソフトウェア
  • サンプルスクリプト集 : APIのコーディング例

  • ROBOWAREの導入として、RBFソフトウェアをインストールすると、上記、3つが使用可能になります。

    導入後、マニュアルも導入フォルダ内に格納されます。
    各API、サンプルスクリプト集もプログラミング言語ごとに4種類用意され、Ruby、Java、PHP、C#に分かれてそれぞれのリファレンスマニュアルがあります。
    RBFサーバのインストール後に、RBFアプリケーションを起動するランチャーのショートカットが設定されます。

    図5
    次に、ROBOWAREで開発したプログラムを管理するためのROBOWARE-Job Managerをインストールします。
    Job Managerの導入により、複数のROBOWAREのJobの実行や監視、各種設定ができます。

    (導入後、ライセンスの登録が必要です。)

     サンプルスクリプトを選ぶ

     

    APIで使用するスクリプト用の言語をRuby、Java、PHP、C#より選択します。

    図6

    Ruby、Java、PHP、C#の各言語ごとに用意されている50種類以上のサンプルスクリプトファイルより、参考になりそうなサンプルコーディングを選びます。

    各言語のマニュアルを基に、APIを使い、ROBOWAREにどのようにオペレーションするかを、プログラミング言語によって指示します。

    このサンプルを参考に、言語の種類ごとユーザが使い慣れたエディタを使用してコーディングします。実際にサンプルを実行させて、サンプルスクリプト内のAPIを変更するなど試行をしながら、APIを短期間で効率よく習得し、作成できる方式になっています。



     RBF APIプログラム開発 リレー通信

     

    ROBOWAREの開発言語基本記述構成

    図7-0


    配列変数にリレーさせる経路順にIP(FQDN)設定します。

    図7

     APIの種類

     

    ROBOWAREは、WindowsまたはLinuxで動作可能な約80のAPIを提供します。 ROBOWAREの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ホスト)のモニターの解像度等に関係なく開発することができます。

    図8

    ① ウィンドウに表示される「親ウィンドウのみ」または「親ウィンドウと子ウィンドウ」の2つのテキスト文字を引数に指定して検索します。

    ②モニターに表示されているテキスト文字を検索する場合、ワイルドカード検索もできます。
    ・Windows OSが異なる場合で「サーバー」と「サーバ」と表示が異なった場合でも「サーバ*」 と指定することで検索することができます。

    ③モニターに表示されている文字で同じ文字が複数あった場合は、検索して見つかった順番の番号、またはZオーダーを引数に指定します。

    ④モニターに表示されていないテキスト文字の場合は、検索することができません。
    ・トップウィンドウが、モニタのスクリーン領域内から一部はみだしていると判断した場合、自動的にモニター内に位置を調整します。

     ROBOWARE アナライザー

     

    マウス・キーボード操作の開発は、RBF アナライザーを使用します。

    図9
    自動化したいアプリケーションの画面を基にマウスやキーボード操作について、 RBFアナライザーを使用してRBF APIのメソッドの引数に渡す情報を取得できます。
    これにより、画面上の操作を簡単にスクリプトコードにジェネレートできます。

    典型的なRPAツールであれは、ツールのGUIによって、マウスやキーボード操作がそのままマクロ設定できるものが多いですが、ROBOWAREは、いろいろな条件で操作をハンドリングできるように、APIの引数の情報をアナライザーによって取得し、その後、作成者自身でスクリプトに反映する必要があります。
    つまりプログラミングを支援するユーティリティとなります。




    図9-1

     ROBOWARE プログラム管理

     

    ROBOWARE – Job Manager

    RBF APIで開発したプログラムをJobコマンドとして、管理するソフトウェアです。

    Job Managerの画面は、タッチパネルモニターの場合に、Jobコマンドを実行するまでの操作を指でタップし易いように設計されています。

    図10

    よく使用するランチャーボタンを一覧表示し、Jobコマンドを用途別にフォルダのツリー形式で管理でき、Jobコマンドの一覧が出るエリアと、詳細を表示するエリアに分かれて表示されます。
    分割されたエリアのサイズ変更や、フォルダのアイコンの変更も可能です。

     Jobコマンドの新規登録

     

    作成したソフトウェアロボットを実行するためにJob ManagerでJobコマンドを作成します。

    図11

    Job ManagerのJobコマンドツリービューに表示されたフォルダ毎に、Jobコマンド登録情報を作成できます。
    実行するJobについて、プログラムファイルのパスや、プログラムを実行する時の引数、起動時に引数を入力させるかどうかなどを指定できます。

    また、Jobコマンドリストビューのから選択で、Jobコマンド実行方法の設定ができます。

     ソフトウェアロボットの実行方法

     

    ROBOWAREには、スケジューラ機能もあり、作成したソフトウェアロボット毎にJob Mangerで予め実行形態を登録できます。

    図12
    図12-0
    バッチあるいはユーティリティコマンドからも起動停止が可能なので、他のスケジューラへの組み込みや、アプリケーション連携が簡単に行えます。


    ROBOWAREは、他のROBOWAREが導入済みのPCやサーバに対し、実行指令が可能です。
    これによって、IPネットワークで接続されていれば、テレワークに対応して、遠隔地の自宅やサテライトオフィスからでも、制御することが可能になります。
    中央管理のための専用サーバは必要なく、ROBOWARE同士で、異なるネットワークセグメントにおいてもリレー(中継)して実行することが可能で、相互のバックアップ(冗長化)になることもできます。

    図12-1

     ROBOWARE 構成例

     

    操作端末からの操作は社内のみ、監視端末からはDMZのみの端末操作を行う場合の例

    図13

    ROBOWAREは、ライセンスIDでお互いの通信を制限できます。
    同じ社内の異なるシステムにROBOWAREが共存する場合であっても、外部のROBOWAREからそのシステムを制御されない作りになっております。

    典型的な例では、実行したいPC上にROBOWAREを導入し、それぞれ作成したソフトウェアロボットが動く環境にします。
    実行指示や、実行結果の管理を行うPCあるいはサーバには、ライセンスID毎にJob Manegerを導入して制御します。

    ROBOWAREでソフトウェアロボットを作成すれば、様々な業務形態に対応して比較的簡単にオペレーションの自動化が実現できます。





    ← (前ページ)  RPA導入のために知っておきたい豆知識
    AI搭載を見据えたRPAの実装方法とは?(次ページ) →  



    【RPA概説ページリンク】(*2017年1月31日~2019年5月10日公開の過去の情報です)
    RPA
    RPA
    ソフトウェアロボットの作り方
    AI搭載を見据えたRPAの実装方法とは?
    RPA2.0を加速するソフトウェアロボット開発
    RPAの盲点ITガバナンスの重要性
    無人運転を実現するRPAのシステム開発
    RPA2.0 実現に必要な4つの要素
    セキュリテイ強化したRPAのロボット開発
    RPAが必要とするログ管理とは?


     PDFダウンロード

    PDF
    PDF
    PDF
    PDF
    PDF
    PDF
    PDF
    PDF
    PDF
    PDF
    PDF


    【RPAソリューションページリンク】
    RPA2.0 業務プロセス自働化
    OCR連携RPAソリューション
    RPAセキュリティ対策ソリューション
    RPAセキュリティ-統合ログ管理ソリューション
    2019.02.07RPAセミナー開催報告


    【業務視える化関連リンク】


    お問合せ