(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022042176
(43)【公開日】2022-03-14
(54)【発明の名称】情報処理プログラム、情報処理システム及び情報処理方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20220307BHJP
G06F 21/62 20130101ALI20220307BHJP
【FI】
H04L9/00 601A
H04L9/00 601B
G06F21/62 309
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2020147462
(22)【出願日】2020-09-02
(71)【出願人】
【識別番号】599115217
【氏名又は名称】株式会社 ディー・エヌ・エー
(74)【代理人】
【識別番号】110001210
【氏名又は名称】特許業務法人YKI国際特許事務所
(72)【発明者】
【氏名】小野 篤司
(72)【発明者】
【氏名】赤坂 翔太
(72)【発明者】
【氏名】汐田 徹也
(57)【要約】
【課題】汎用的な処理自動化の仕組みを提供する。
【解決手段】ユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して第1情報を生成する第1情報生成手段と、ユーザ鍵を用いて、1人以上のユーザが所属するグループに関するグループ情報から生成されたグループ鍵を暗号化して第2情報を生成する第2情報生成手段と、グループ鍵を用いて、シナリオを実行するために必要なジョブ情報を暗号化して第3情報を生成する第3情報生成手段と、シナリオに沿って処理を自動的に実行する際に、第1情報、第2情報、第3情報を順に復号化して、復号化によって得られたジョブ情報を用いてシナリオに沿った処理を自動的に実行する実行手段と、を備える情報処理システムとする。
【選択図】
図15
【特許請求の範囲】
【請求項1】
対象処理を自動化するために作成されたシナリオに沿って処理を自動的に実行する情報処理システムであって、
ユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して第1情報を生成する第1情報生成手段と、
前記ユーザ鍵を用いて、1人以上のユーザが所属するグループに関するグループ情報から生成されたグループ鍵を暗号化して第2情報を生成する第2情報生成手段と、
前記グループ鍵を用いて、前記シナリオを実行するために必要なジョブ情報を暗号化して第3情報を生成する第3情報生成手段と、
前記シナリオに沿って処理を自動的に実行する際に、前記第1情報、前記第2情報、前記第3情報を順に復号化して、復号化によって得られた前記ジョブ情報を用いて前記シナリオに沿った処理を自動的に実行する実行手段と、
を備えることを特徴とする情報処理システム。
【請求項2】
請求項1に記載の情報処理システムであって、
クライアント及びサーバを含み、
前記第1情報生成手段における処理は前記クライアントによって実行され、前記第1情報は情報通信網を介して前記サーバに登録され、
前記第2情報生成手段における処理は前記クライアントによって実行され、前記第2情報は情報通信網を介して前記サーバに登録され、
前記第3情報生成手段における処理は前記クライアントによって実行され、前記第3情報は情報通信網を介して前記サーバに登録され、
前記実行手段における処理は、前記クライアント又は前記サーバにおいて実行されることを特徴とする情報処理システム。
【請求項3】
請求項2に記載の情報処理システムであって、
前記サーバは、クラウドサーバであることを特徴とする情報処理システム。
【請求項4】
請求項2又は3に記載の情報処理システムであって、
前記第1情報生成手段は、前記クライアントにおいて公開鍵を用いて前記ユーザ鍵を暗号化して前記第1情報を生成し、
前記実行手段は、前記サーバにおいて前記公開鍵に対応する秘密鍵を用いて前記第1情報を復号化することを特徴とする情報処理システム。
【請求項5】
請求項2又は3に記載の情報処理システムであって、
前記実行手段は、前記クライアントにおいて前記ユーザ情報を用いて生成された前記ユーザ鍵を用いて前記第1情報を復号化することを特徴とする情報処理システム。
【請求項6】
請求項1~5のいずれか1項に記載の情報処理システムであって、
前記グループに別のユーザを登録する際に、
前記第1情報生成手段は、前記別のユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して前記別のユーザに対する前記第1情報を生成し、
前記第2情報生成手段は、前記別のユーザに対する前記ユーザ鍵を用いて、前記グループ鍵を暗号化して第2情報を生成することを特徴とする情報処理システム。
【請求項7】
請求項1~6のいずれか1項に記載の情報処理システムであって、
予め処理の自動化のスケジュールを設定しておき、前記スケジュールに応じて前記実行手段における処理の自動化を実行することを特徴とする情報処理システム。
【請求項8】
対象処理を自動化するために作成されたシナリオに沿って処理を自動的に実行する情報処理プログラムであって、
コンピュータを、
ユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して第1情報を生成する第1情報生成手段と、
前記ユーザ鍵を用いて、1人以上のユーザが所属するグループに関するグループ情報から生成されたグループ鍵を暗号化して第2情報を生成する第2情報生成手段と、
前記グループ鍵を用いて、前記シナリオを実行するために必要なジョブ情報を暗号化して第3情報を生成する第3情報生成手段と、
前記シナリオに沿って処理を自動的に実行する際に、前記第1情報、前記第2情報、前記第3情報を順に復号化して、復号化によって得られた前記ジョブ情報を用いて前記シナリオに沿った処理を自動的に実行する実行手段と、
して機能させることを特徴とする情報処理プログラム。
【請求項9】
対象処理を自動化するために作成されたシナリオに沿って処理を自動的に実行する情報処理方法であって、
ユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して第1情報を生成する第1情報生成ステップと、
前記ユーザ鍵を用いて、1人以上のユーザが所属するグループに関するグループ情報から生成されたグループ鍵を暗号化して第2情報を生成する第2情報生成ステップと、
前記グループ鍵を用いて、前記シナリオを実行するために必要なジョブ情報を暗号化して第3情報を生成する第3情報生成ステップと、
前記シナリオに沿って処理を自動的に実行する際に、前記第1情報、前記第2情報、前記第3情報を順に復号化して、復号化によって得られた前記ジョブ情報を用いて前記シナリオに沿った処理を自動的に実行する実行ステップと、
を備えることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理を自動化するための情報処理プログラム、情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
近年、コンピュータにおけるユーザの操作手順をシナリオとして記録して、当該操作手順を自動的に実行することでコンピュータにおける処理を自動化する技術が用いられている。このような技術は、ロボティック・プロセス・オートメーション(RPA)と呼ばれている。例えば、検索するべき文字列の画像を生成し、画像認識処理によって表示画面中から当該画像を抽出することで自動化操作する位置を特定する技術が開示されている(特許文献1)。
【0003】
また、クラウドを用いたRPAに関する技術が開示されている。コンピュータの認証情報を用いて社外サーバとの間にトンネル形成を要求し、トンネル形成要求が認証されると社外サーバは第1の社内サーバに対して予め人間が指定した操作を順に送信する技術が開示されている(特許文献2)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2018-116394号公報
【特許文献2】特開2020-92400号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、ユーザにとってクラウドを経由する処理の自動化が最適とは限らず、企業ネットワーク内のみのアクセスに制限されたシステムの自動化など、より汎用的な処理自動化の仕組みを提供することが望まれている。特に、処理の自動化がセキュアに実行できる仕組みであることが必要とされている。
【課題を解決するための手段】
【0006】
本発明の1つの態様は、対象処理を自動化するために作成されたシナリオに沿って処理を自動的に実行する情報処理システムであって、ユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して第1情報を生成する第1情報生成手段と、前記ユーザ鍵を用いて、1人以上のユーザが所属するグループに関するグループ情報から生成されたグループ鍵を暗号化して第2情報を生成する第2情報生成手段と、前記グループ鍵を用いて、前記シナリオを実行するために必要なジョブ情報を暗号化して第3情報を生成する第3情報生成手段と、前記シナリオに沿って処理を自動的に実行する際に、前記第1情報、前記第2情報、前記第3情報を順に復号化して、復号化によって得られた前記ジョブ情報を用いて前記シナリオに沿った処理を自動的に実行する実行手段と、を備えることを特徴とする情報処理システムである。
【0007】
ここで、クライアント及びサーバを含み、前記第1情報生成手段における処理は前記クライアントによって実行され、前記第1情報は情報通信網を介して前記サーバに登録され、前記第2情報生成手段における処理は前記クライアントによって実行され、前記第2情報は情報通信網を介して前記サーバに登録され、前記第3情報生成手段における処理は前記クライアントによって実行され、前記第3情報は情報通信網を介して前記サーバに登録され、前記実行手段における処理は、前記クライアント又は前記サーバにおいて実行されることが好適である。
【0008】
また、前記サーバは、クラウドサーバであることが好適である。
【0009】
また、前記第1情報生成手段は、前記クライアントにおいて公開鍵を用いて前記ユーザ鍵を暗号化して前記第1情報を生成し、前記実行手段は、前記サーバにおいて前記公開鍵に対応する秘密鍵を用いて前記第1情報を復号化することが好適である。
【0010】
また、前記実行手段は、前記クライアントにおいて前記ユーザ情報を用いて生成された前記ユーザ鍵を用いて前記第1情報を復号化することが好適である。
【0011】
また、前記グループに別のユーザを登録する際に、前記第1情報生成手段は、前記別のユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して前記別のユーザに対する前記第1情報を生成し、前記第2情報生成手段は、前記別のユーザに対する前記ユーザ鍵を用いて、前記グループ鍵を暗号化して第2情報を生成することが好適である。
【0012】
また、予め処理の自動化のスケジュールを設定しておき、前記スケジュールに応じて前記実行手段における処理の自動化を実行することが好適である。
【0013】
本発明の別の態様は、対象処理を自動化するために作成されたシナリオに沿って処理を自動的に実行する情報処理プログラムであって、コンピュータを、ユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して第1情報を生成する第1情報生成手段と、前記ユーザ鍵を用いて、1人以上のユーザが所属するグループに関するグループ情報から生成されたグループ鍵を暗号化して第2情報を生成する第2情報生成手段と、前記グループ鍵を用いて、前記シナリオを実行するために必要なジョブ情報を暗号化して第3情報を生成する第3情報生成手段と、前記シナリオに沿って処理を自動的に実行する際に、前記第1情報、前記第2情報、前記第3情報を順に復号化して、復号化によって得られた前記ジョブ情報を用いて前記シナリオに沿った処理を自動的に実行する実行手段と、して機能させることを特徴とする情報処理プログラムである。
【0014】
本発明の別の態様は、対象処理を自動化するために作成されたシナリオに沿って処理を自動的に実行する情報処理方法であって、ユーザから取得したユーザ情報から生成されたユーザ鍵を暗号化して第1情報を生成する第1情報生成ステップと、前記ユーザ鍵を用いて、1人以上のユーザが所属するグループに関するグループ情報から生成されたグループ鍵を暗号化して第2情報を生成する第2情報生成ステップと、前記グループ鍵を用いて、前記シナリオを実行するために必要なジョブ情報を暗号化して第3情報を生成する第3情報生成ステップと、前記シナリオに沿って処理を自動的に実行する際に、前記第1情報、前記第2情報、前記第3情報を順に復号化して、復号化によって得られた前記ジョブ情報を用いて前記シナリオに沿った処理を自動的に実行する実行ステップと、を備えることを特徴とする情報処理方法である。
【発明の効果】
【0015】
本発明によれば、より汎用的な処理自動化の仕組みを提供することができる。また、セキュアな状態において処理を自動的に実行できる仕組みを提供することができる。本発明の実施の形態の他の目的は、本明細書全体を参照することにより明らかになる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施の形態における情報処理システムの全体構成の概略図である。
【
図2】本発明の実施の形態におけるAPIサーバの構成を示す図である。
【
図3】本発明の実施の形態におけるクラウドサーバの構成を示す図である。
【
図4】本発明の実施の形態におけるクライアントの構成を示す図である。
【
図5】本発明の実施の形態におけるシナリオ作成方法を示すフローチャートである。
【
図6】本発明の実施の形態における第1表示部の表示例を示す図である。
【
図7】本発明の実施の形態における動画表示の処理を説明する図である。
【
図8】本発明の実施の形態における選択肢データベースの例を示す図である。
【
図9】本発明の実施の形態における第2表示部の表示例を示す図である。
【
図10】本発明の実施の形態におけるメニュー画像の表示例を示す図である。
【
図11】本発明の実施の形態における処理の選択肢を選択する処理を説明する図である。
【
図12】本発明の実施の形態におけるシナリオを追加する処理を説明する図である。
【
図13】本発明の実施の形態における条件データベースの例を示す図である。
【
図14】本発明の変形例におけるシナリオ実行方法を示すフローチャートである。
【
図15】本発明の実施の形態における処理の自動化のための登録処理を示すフローチャートである。
【
図16】本発明の実施の形態における処理の自動化のための新規ユーザ登録処理を示すフローチャートである。
【
図17】本発明の実施の形態におけるクラウドサーバでの実行処理を示すフローチャートである。
【
図18】本発明の実施の形態におけるクライアントでの実行処理を示すフローチャートである。
【発明を実施するための形態】
【0017】
[システム構成]
本発明の実施の形態における情報処理システム100は、
図1に示すように、APIサーバ102、クラウドサーバ104,クライアント106及び情報通信網108を含んで構成される。APIサーバ102、クラウドサーバ104及びクライアント106は、情報通信網108(例えば、インターネット)を介して接続される。クライアント106は、APIサーバ102が提供するウェブページにアクセスすることができる。また、クライアント106は、APIサーバ102を介してクラウドサーバ104にアクセスすることができ、セキュアな状態で処理を自動的に実行させることができる。
【0018】
APIサーバ102は、一般的にウェブサーバやデータベースを含み、OSI参照モデルにおいて複数層にわたって構成されている。なお、
図1では、APIサーバ102を1つのみ示したが、複数のAPIサーバ102が情報通信網108に接続されてもよく、それぞれの複数のAPIサーバ102からウェブページが提供されるようにしてもよい。
【0019】
APIサーバ102は、
図2に示すように、処理部10、記憶部12、入力部14、出力部16及び通信部18を含んで構成される。処理部10は、CPU等の演算処理を行う手段を含む。処理部10は、記憶部12に記憶されているウェブページ提供プログラム(例えば、サーバプログラム)を実行することによって、本実施の形態における情報処理システム100においてクライアント106にウェブページを提供するための機能を実現する。記憶部12は、半導体メモリやメモリカード等の記憶手段を含む。記憶部12は、処理部10とアクセス可能に接続され、ウェブページ提供プログラム、その処理に必要な情報を記憶する。入力部14は、情報を入力する手段を含む。入力部14は、例えば、管理者からの入力を受けるキーボード、タッチパネル、ボタン等を備える。出力部16は、管理者から入力情報を受け付けるためのユーザインターフェース画面(UI)等のAPIサーバ102での処理結果を出力する手段を含む。出力部16は、例えば、管理者に対して画像を呈示するディスプレイを備える。通信部18は、情報通信網108を介して、クライアント106との情報の通信を行うインターフェースを含んで構成される。通信部18による通信は有線及び無線を問わない。
【0020】
クラウドサーバ104は、
図3に示すように、処理部20、記憶部22、入力部24、出力部26及び通信部28を含んで構成される。処理部20は、CPU等の演算処理を行う手段を含む。処理部20は、記憶部22に記憶されている自動化処理プログラムを実行することによってセキュリティ情報を用いてウェブページに対する処理の自動化を実現する。具体的には、クラウドサーバ104は、いわゆるサービスワーカー、ジョブワーカー、鍵管理サーバ(KMS)等として機能する。記憶部22は、半導体メモリやメモリカード等の記憶手段を含む。記憶部22は、処理部20とアクセス可能に接続され、自動化処理プログラム、その処理に必要な情報を記憶する。入力部24は、情報を入力する手段を含む。入力部24は、例えば、管理者からの入力を受けるキーボード、タッチパネル、ボタン等を備える。出力部26は、管理者から入力情報を受け付けるためのユーザインターフェース画面(UI)等のクラウドサーバ104での処理結果を出力する手段を含む。出力部26は、例えば、管理者に対して画像を呈示するディスプレイを備える。通信部28は、情報通信網108を介して、クライアント106との情報の通信を行うインターフェースを含んで構成される。通信部28による通信は有線及び無線を問わない。
【0021】
なお、本実施の形態では、情報通信網108を介してクライアント106に接続されるクラウドサーバ104としたが、LAN等によってクライアント106に接続されるローカルサーバとしてもよい。すなわち、クラウドサーバ104は、クライアント106と情報通信が可能であり、クライアント106に代わって処理の自動化に必要なセキュリティ情報を記憶できるものであればよい。
【0022】
クライアント106は、
図4に示すように、処理部30、記憶部32、入力部34、出力部36及び通信部38を含んで構成される。処理部30は、CPU等の演算処理を行う手段を含む。処理部30は、記憶部32に記憶されているクライアントプログラム(又は、クライアントアプリケーション)を実行することによって、本実施の形態における情報処理システム100におけるウェブページに対する処理の自動化を実現する。記憶部32は、半導体メモリやメモリカード等の記憶手段を含む。記憶部32は、処理部30とアクセス可能に接続され、クライアントプログラム、その処理に必要な情報を記憶する。入力部34は、情報を入力する手段を含む。入力部34は、例えば、ユーザからの入力を受けるキーボード、タッチパネル、ボタン等を備える。出力部36は、ユーザから入力情報を受け付けるためのユーザインターフェース画面(UI)等のクライアント106での処理に必要な情報を出力する手段を含む。出力部36は、例えば、ユーザに対して画像を呈示するディスプレイを備える。通信部38は、情報通信網108を介して、APIサーバ102との情報の通信を行うインターフェースを含んで構成される。通信部38による通信は有線及び無線を問わない。
【0023】
以下では、シナリオ作成処理、シナリオ実行処理、自動化処理を1つのクライアント106にて実行する態様として説明するが、これらの処理の一部を他のクライアント106にて実行してもよい。
【0024】
また、APIサーバ102、クラウドサーバ104及びクライアント106は、一般に用いられるコンピュータ、すなわちPC(パーソナルコンピュータ)、あるいはスマートフォンなどの携帯端末等とすることができる。また、APIサーバ102の処理の一部又は全部をクライアント106において実現してもよいし、クライアント106の処理の一部又は全部をAPIサーバ102において実現してもよい。また、APIサーバ102の一部又は全部の処理をクラウドサーバ104にて実現してもよいし、クラウドサーバ104の一部又は全部の処理をAPIサーバ102にて実現してもよい。
【0025】
[シナリオ作成処理]
情報処理システム100において、ウェブページに対する処理を自動化するためには、当該処理をコンピュータによって自動的に実行できる形式であるプログラム、コード、データ等を含むシナリオとして記憶させる処理とこのシナリオに沿って自動化処理を実行することが必要である。以下、コンピュータによって自動的に実行できる形式であるプログラム、コード、データ等を含むRPAデータ(Robotic Process Automation Data)をシナリオと呼ぶ。例えば、ウェブブラウザに対する処理はSelenium等のアプリケーションによって実行可能なシナリオとして記憶させることができる。
【0026】
以下、
図5のフローチャートを参照して、本実施の形態における情報処理システム100によるウェブページに対する処理を自動化するためにシナリオを記憶させる処理について説明する。ウェブページに対する処理とは、ウェブページを構成する要素に対する操作(例えば、カーソル移動、クリック等)、テキスト等の情報の入力等のウェブページ上において行える操作やそれに伴う処理を意味する。
【0027】
ステップS10では、シナリオを記憶させるためのアプリケーションの起動処理が行われる。当該ステップにおける処理によって、情報処理システム100は起動処理手段として機能する。クライアント106は、記憶部32に記憶されているクライアントプログラムを実行することによってシナリオを記憶させるためのアプリケーションを起動する。
【0028】
ステップS12では、自動化する内容を編集するための編集部を含む第1表示部を表示する処理が行われる。当該ステップにおける処理によって、情報処理システム100は第1表示部表示手段として機能する。ステップS10におけるアプリケーションの起動に伴って、クライアント106の出力部36に自動化する内容を編集するための編集部を含む第1表示部が表示される。
【0029】
図6は、第1表示部200の表示例を示す。第1表示部200は、選択肢表示領域202、処理内容編集領域204及び処理内容入力領域206を含んで構成される。
【0030】
選択肢表示領域202は、自動化する処理の選択肢を示す領域である。ユーザは、入力部34を用いて選択肢表示領域202に表示されている選択肢の1つを選択する(例えば、マウスを用いて選択肢をクリックする等)ことによって自動化する処理を新たに追加することができる。処理の選択肢は、ウェブブラウザやウェブページに対する操作に伴う処理を含む。ウェブブラウザやウェブページに対する処理としては、ユーザから入力されたURLで特定されるウェブページを開く操作及びその処理、アクティブ状態にあるウィンドウのウェブページを更新する処理、ウェブページにおいてユーザが指定した領域にカーソルを移動させる操作及びその処理、ウェブページにおいてカーソルが位置する領域をクリックする操作及びその処理等が挙げられる。ただし、ウェブブラウザやウェブページに対する処理は、これらに限定されるものではなく、他の処理を選択肢としてもよい。
【0031】
また、処理の選択肢は、ローカルで使用されるネイティブアプリケーションに対する処理であってもよい。ここで、本明細書においてネイティブアプリケーションとは、端末内部の演算処理手段において演算処理を行うアプリケーションを意味する。具体的には、ワードプロセッサアプリケーション、表計算アプリケーション等がある。
【0032】
処理内容編集領域204は、自動化する処理の内容を表示及び編集するための領域である。すなわち、処理内容編集領域204は、シナリオとして記憶される処理を表示させる領域である。処理内容編集領域204は、シナリオとして記憶される処理をステップ毎のフローチャート形式で表示させることが好適である。自動化する処理の内容は、各操作や各処理を自動的に行う順にステップとして並べたシナリオとして記憶される。例えば、選択肢表示領域202において選択された選択肢に対応する処理が処理内容編集領域204に表示されると共に自動化する処理としてシナリオに追加される。また、後述するようにウェブページを表示させた第2表示部に対してユーザが行った操作や第2表示部において行われた処理が処理内容編集領域204に表示されると共に自動化する処理としてシナリオに追加される。また、ユーザは、入力部34を用いることによって処理内容編集領域204に表示されている処理の内容を編集することができる。処理の内容の編集は、処理の順番の入れ替え、処理に用いられるデータの変更、処理に必要なパラメータの変更等が挙げられる。ただし、処理の内容の編集は、これらの編集に限定されるものではなく、自動化する処理に対するシナリオを編集するものであればよい。
【0033】
処理内容入力領域206は、自動化する処理の内容を編集する際にデータやパラメータ等の自動化に必要な情報を入力するための領域である。処理内容入力領域206には、処理内容編集領域204において編集対象である処理に必要な情報を入力するための入力インターフェース画像が表示される。ユーザは、入力部34を用いて、処理内容入力領域206に必要な情報を入力した上で情報を確定することによってシナリオとして記憶される処理が設定される。
【0034】
なお、本実施の形態では、選択肢表示領域202、処理内容編集領域204及び処理内容入力領域206を1つの画面上に同時に表示させるものとしたが、空間的又は時間的に別々に表示させるようにしてもよい。例えば、選択肢表示領域202、処理内容編集領域204及び処理内容入力領域206を別々のウィンドウとして表示させるようにしてもよい。また、例えば、選択肢表示領域202、処理内容編集領域204及び処理内容入力領域206の各々について必要なときにだけポップアップするウィンドウとして表示させるようにしてもよい。
【0035】
例えば、シナリオにウェブページを開く処理を登録する場合、
図6に例示するように、選択肢表示領域202において「ウェブページを開く」を選択(クリック)する(図中、選択されたことを示すためにハッチングを施して示す)ことで処理内容編集領域204に新たにシナリオに記憶させる処理として表示される。これと共に、処理内容編集領域204において現在編集中である処理(ステップ)として、処理に関連する情報を入力するための入力インターフェース画像が処理内容入力領域206に表示される。ここでは、「ウェブページを開く」という処理に付ける名称、対象であるウェブページを特定するためのURL、ウェブページを開く処理についてのオプションを入力するための画像が表示されている。名称を「ページAを開く」、URLを「https:/www.xxx」として実行ボタンをクリックすると、処理内容編集領域204において編集対象となっている「ウェブページを開く」という処理(ステップ)に対して「ページAを開く」という名前が付けられ、https:/www.xxxというウェブページを開く処理がシナリオとして記憶される。
【0036】
このような操作を繰り返すことによって、自動化する処理をステップとして時系列に並べたシナリオが記憶部32に記憶される。以下、本実施の形態では、ウェブページを開いて、当該ウェブページにおける処理をシナリオとして記憶させていく処理について説明する。
【0037】
なお、選択肢表示領域202において自動化する処理の選択肢を示す際に、選択肢の意味の説明を提供するようにしてもよい。例えば、
図7に示すように、ウェブページを開く操作が選択肢である場合、当該選択肢にカーソルを合わせることによって「URLで指定されたサイトに移動する」という選択肢の意味を説明する動画を表示する動画領域202aをポップアップさせてもよい。他の選択肢の処理についても同様に動画領域202aにおいて動画で説明を表示させるようにしてもよい。
【0038】
このように選択肢をシナリオに追加した際に実行される処理を説明することによって、ユーザはどの選択肢をシナリオに加えれば必要な処理を実行することができるかを理解し易くなる。
【0039】
また、選択肢表示領域202において選択されてシナリオに追加された選択肢に対して、次に用いられる可能性が高い選択肢を優先的に選択肢表示領域202に表示させるようにしてもよい。この場合、
図8に示すように、選択肢毎に次に選択される可能性が高い順に選択肢を関連付けて選択肢データベースとして記憶させておき、当該選択肢データベースを参照してシナリオに追加された選択肢に対して関連付けられた選択肢を次に選択され易い選択肢として選択肢表示領域202に表示させればよい。このとき、選択肢を次に選択され易い順に選択肢表示領域202に表示させることが好適である。また、機械学習等によって次に選択される可能性が高い順に選択肢を求めるようにしてもよい。
【0040】
自動化される処理の選択肢は数百に及ぶことがあるので、使用される可能性が高い選択肢を優先的に表示させることによってユーザに対する使いやすさを向上させることができる。
【0041】
ステップS14では、自動化の対象となるウェブページを表示するためのソースコードの取得処理が行われる。当該ステップにおける処理によって、情報処理システム100はコード取得手段として機能する。処理部30は、ステップS12において自動化する処理の対象であるウェブページのURLが指定されると、情報通信網108を介してAPIサーバ102にアクセスして指定されたURLで特定されるウェブページのソースコードを取得する。
【0042】
ステップS16では、自動化の対象となるウェブページにおいて選択可能な処理の選択肢を表示させるコードを埋め込む処理が行われる。当該ステップにおける処理によって、情報処理システム100はコード埋込手段として機能する。処理部30は、ステップS14において取得されたウェブページのソースコードを解析して、当該ウェブページにおいて処理可能なタブに対して行われる処理をメニュー形式で表示させるためのコードを当該ソースコードに埋め込む処理を行う。
【0043】
ステップS18では、自動化の対象となるウェブページを表示する第2表示部を表示させる処理が行われる。当該ステップにおける処理によって、情報処理システム100は第2表示部表示手段として機能する。処理部30は、ステップS16においてメニュー表示のためのコードが埋め込まれたソースコードに応じたウェブページを第2表示部としてウェブブラウザ上に表示させる。ウェブページを表示させるためのウェブブラウザは、既存のブラウザとしてもよいし、情報処理システム100において専用のブラウザとしてもよい。
【0044】
図9は、第2表示部300の表示例を示す。処理部30は、URL(当該例では、https:/www.xxx)で特定されるソースコードをAPIサーバ102から受信すると、当該ソースコードにメニュー表示のためのコードを埋め込んだうえで第2表示部300として表示させる。
【0045】
例えば、
図9に示した第2表示部300では、処理が可能な画像領域(図中では「アイコンX」)にカーソル302を移動させて右クリックすることによって、
図10に示すように、埋め込まれたコードに基づいてアイコンXというオブジェクトに対して可能な処理を選択肢として表示させるメニュー画像304が表示される。ユーザは、入力部34を用いてメニュー画像304として表示された選択肢から希望する処理を選択することが可能になる。
【0046】
ここで、オブジェクトは、自動化する処理において画面上の位置の特定が必要な対象物を意味する。オブジェクトは、例えば、ウェブページにおけるアイコン、ボタン、テキスト等とすることができる。
【0047】
第1表示部200と第2表示部300を同時に表示させることが好適である。この場合、第1表示部200を表示させるウィンドウと第2表示部300を表示させるウィンドウとを並べて表示させてもよいし、一部又は全部を重ね併せて表示させてもよい。すなわち、ウィンドウを切り換えることによって、第1表示部200と第2表示部300とを直ちに操作対象とすることができる態様で表示させるものであればよい。なお、第1表示部200と第2表示部300とを空間的又は時間的に別々に表示させるようにしてもよい。
【0048】
ステップS20では、ウェブページに対する処理を記憶する処理が行われる。当該ステップにおける処理によって、情報処理システム100はシナリオ記憶手段として機能する。メニュー画像304の選択肢の1つが選択されると、当該選択肢で表わされる処理がシナリオとして記憶される。
【0049】
具体的には、ユーザが入力部34を用いて第2表示部300上に表示されたメニュー画像304から選択肢の1つを選択すると、第1表示部200の処理内容編集領域204にシナリオとして記憶される処理を追加して表示させる。例えば、
図11に示すように、メニュー画像304中の選択肢である「クリックする」にカーソル302を移動させてマウスをクリックする。これによって、
図12に示すように、第1表示部200の処理内容編集領域204に新たに「アイコンXをクリックする」というオブジェクトの選択及びオブジェクトに対する処理がシナリオとして追加され、その処理の内容を示す情報が処理内容入力領域206に表示される。したがって、ユーザは、第1表示部200に表示された内容を編集して確定させることで、第2表示部300に表示されたウェブページに対する処理をシナリオとして記憶させることができる。
【0050】
なお、ここでは、メニュー画像304を表示させて処理をユーザに選択させる態様としたが、第2表示部300に表示されたウェブページにおいてオブジェクトを直接操作することによって、当該オブジェクトとそれに対する操作の内容を取得してシナリオとして記録するようにしてもよい。
【0051】
ステップS22では、シナリオに沿った処理においてオブジェクトを特定する条件を設定する処理が行われる。当該ステップにおける処理によって、情報処理システム100は条件設定手段として機能する。
【0052】
本実施の形態では、1つのオブジェクトに対してオブジェクトを特定する条件を複数設定できるようにする。すなわち、シナリオに沿って自動化処理を実行する際に対象となるオブジェクトを選択するための複数の条件をユーザが設定できる。オブジェクトを選択するための条件は、ウェブページ上のオブジェクトに対するCSSセレクタ、オブジェクトの画面上の座標(画面上の領域)、オブジェクトを表示したときの画像の少なくとも1つを含むことが好適である。
【0053】
例えば、
図12に示すように、処理内容入力領域206内に条件セレクト領域206a及び条件内容設定領域206bを含む条件設定画面を表示させる。
図12の例では、条件内容設定領域206bにおいて、4つのCSSセレクタ(CSSセレクタ1~4)、1つの画像認識、1つの画像座標がオブジェクトを選択するための条件の選択肢として挙げられている。
【0054】
CSSセレクタは、HTMLで表現されたウェブページ上のオブジェクトを選択するための条件であり、例えば、パターン1“id属性>タグ名>相対的な構造”、パターン2“タグ名>相対的な構造”、パターン3“id属性>class属性>タグ名>相対的な構造”、パターン4“タグ名>name属性>相対的な構造”等とすることができる。例えば、第2表示部300上に表示されたウェブページ上において処理対象となるオブジェクトを選択して、当該オブジェクトに対する処理を指定することによって、当該オブジェクトを要素として当該要素に対する処理内容を示すCSSセレクタが自動的に条件に加えられる。
【0055】
また、画像認識は、操作対象であるウェブページにおいて選択されたオブジェクトを画像として認識して選択する条件である。画像認識に用いられるオブジェクトの画像データは、ウェブページにおけるオブジェクトの画像をユーザが選択して画像データとして記憶させればよい。また、ウェブページにおけるオブジェクトのHTML要素に含まれる当該オブジェクトの画像データを画像認識に用いられるオブジェクトの画像データとして記憶させてもよい。また、テキスト及びその表示パラメータ(フォント要素等)に基づいて画像データを自動生成して画像認識に用いられるオブジェクトの画像データとして記憶させてもよい。
【0056】
また、画像座標(領域)は、操作対象であるウェブページにおいて選択されたオブジェクトを画面上の座標(領域)に基づいて選択する条件である。オブジェクトの座標データは、ウェブページにおけるオブジェクトの画像領域をユーザが選択して座標データとして記憶させればよい。また、ウェブページにおけるオブジェクトのHTML要素に含まれる当該オブジェクトの画像データを表示する座標データを記憶させてもよい。
【0057】
また、条件セレクト領域206aにおいて、オブジェクトの選択に使用する条件をユーザが選択することができる。本実施の形態では、
図12に示すように、条件毎にトグルボタンを表示させ、当該トグルボタンを右に動かすことによってユーザが条件を使用する状態(オン)と当該トグルボタンを左に動かすことによって条件を使用しない状態(オフ)を選択できるようにしている。
図12では、CSSセレクタ1,CSSセレクタ3、画像認識及び画像座標の条件が使用される状態(オン)されており、CSSセレクタ2,CSSセレクタ4の条件が使用されない状態(オフ)された例を示している。
【0058】
なお、各条件に対して、条件が使用される状態(オン)を初期状態とすることが好適である。この場合、ユーザが使用する必要がないと考える条件に対して、条件セレクト領域206aにおいて条件が使用されない状態(オフ)とするようにすればよい。
【0059】
また、本実施の形態では、条件の選択をトグルボタンで行うものとしたが、他の選択方法を適用してもよい。例えば、トグルボタンの代わりに、チェックボックスやオン/オフボタン等を用いて条件を選択できるようにしてもよい。
【0060】
オブジェクトを特定するための条件は、自動化される処理の対象であるオブジェクト毎に条件データベースとして記憶部32に記憶される。例えば、
図12に示した例の場合、
図13に示すような条件データベースが記憶される。
【0061】
上記のステップS18とステップS22を繰り返すことによって、自動化したい処理をシナリオとして順次記憶させていくことができる。
【0062】
[シナリオ実行処理]
上記シナリオ作成処理において記録されたシナリオに沿ってウェブサイト等に対する操作を含む処理について自動化することができる。以下、
図14のフローチャートを参照して、本実施の形態における情報処理システム100によって、シナリオに沿って処理を自動的に実行する処理について説明する。
【0063】
なお、シナリオ実行処理は、ユーザからの指示やスケジュールとして設定された日時においてシナリオに沿って行われる。その際に、処理の自動化を実行するためにID、パスワード、OSの認証情報等のジョブ情報を要求するようにしてもよい。このジョブ情報を用いてセキュリティを担保したシナリオ実行処理については後述する。
【0064】
ステップS30では、シナリオを実行するためのアプリケーションの起動処理が行われる。当該ステップにおける処理によって、情報処理システム100は起動処理手段として機能する。クライアント106は、記憶部32に記憶されているクライアントプログラムを実行することによってシナリオに沿って処理を自動的に実行するためのアプリケーションを起動する。
【0065】
このとき、シナリオを実行する前にID、パスワード、OSにおける認証情報等のジョブ情報を要求するようにしてもよい。このようなジョブ情報を要求することによって、シナリオに沿った処理の自動化のセキュリティを向上させることができる。
【0066】
ステップS32では、自動化処理の対象となるウェブページを表示する処理が行われる。当該ステップにおける処理によって、情報処理システム100はウェブページ表示手段として機能する。処理部10は、シナリオとして記憶されている「ウェブページを開く」というステップに沿って、当該ステップで対象とされているウェブページのURLを読み出し、情報通信網108を介してAPIサーバ102にアクセスして指定されたURLで特定されるウェブページのソースコードを取得する。そして、
図9に示したように、ウェブページを表示させる。
【0067】
ステップS34では、ウェブページに対する処理が行われる。当該ステップにおける処理によって、情報処理システム100はシナリオ実行手段として機能する。処理部10は、シナリオに沿って、処理の対象となるオブジェクトの特定及びそのオブジェクトに対する処理を自動的に実行する。
【0068】
オブジェクトの特定処理は、上記ステップS22において使用される状態(オン)に設定された条件に基づいて行われる。処理部10は、シナリオから次の処理内容を読み出すと、処理の対象となるオブジェクトを特定する処理を開始する。各オブジェクトには、上記ステップS22において使用される状態(オン)に設定されている条件について、ステップS32において表示されたウェブページ上においてそれらの条件の少なくとも1つを満足するオブジェクトを選択する。
【0069】
条件がCSSセレクタである場合、CSSセレクタにおいて処理対象として定義されているウェブページのHTML要素を自動化処理の対象であるウェブページから検索する。当該HTML要素が当該ウェブページに含まれていれば、当該HTML要素を処理対象のオブジェクトとして特定する。また、条件が画像認識である場合、画像認識のために記憶されている画像データを読み出し、当該画像データに対応する画像領域を自動化処理の対象であるウェブページから検索する。当該画像領域が当該ウェブページに含まれていれば、当該画像領域に対応する画面上の座標を取得し、当該座標に該当するウェブページのHTML要素を処理対象のオブジェクトとして特定する。また、条件が画像座標(領域)である場合、自動化処理の対象であるウェブページにおいて条件とされている画像座標(領域)に位置するウェブページのHTML要素を検索する。当該画像座標(領域)に処理可能なウェブページのHTML要素が存在していれば、当該画像座標(領域)に対応するウェブページのHTML要素を処理対象のオブジェクトとして特定する。
【0070】
オブジェクトについて複数の条件が設定されている場合、複数の条件について順にいずれかの条件が満たされるまでオブジェクトの特定処理を行う。そして、いずれか1つの条件でも満たされて処理対象となるオブジェクトが特定された場合、オブジェクトの特定処理を終了すればよい。
【0071】
ここで、オブジェクトを特定するために使用される状態(オン)に設定されていたすべての条件について満たされなかった場合、自動化処理の対象とするオブジェクトが特定できなかった旨を示す情報を表示してユーザに知らせる処理を行ってもよい。また、オブジェクトを特定する条件のうち満たされた条件を表示してユーザに知らせるようにしてもよい。
【0072】
処理対象のオブジェクトが特定されると、処理部10は、当該オブジェクトに対してシナリオに記録されている処理を実行する。シナリオにさらに自動化する処理が含まれている場合、ステップS34を繰り返せばよい。
【0073】
例えば、「アイコンXをクリックする」という処理がシナリオに登録されている場合、まず処理対象であるオブジェクト「アイコンX」を特定する処理を行う。例えば、
図13に示したような記憶部32に記憶されている条件データベースを参照して、オンに設定されている条件のうちいずれかを満たすようなオブジェクトがウェブページ内に存在するか否かを調べる。具体的には、「アイコンX」を特定するための条件としてオン設定されている条件1(CSSセレクタ1)、条件3(CSSセレクタ3)、条件5(画像認識)及び条件6(画像座標)が満たされるかを順に確認し、条件のいずれかを満たすオブジェクトが存在した時点でそのオブジェクトを「アイコンX」として特定する。すなわち、オン設定されている条件のうち少なくとも1つを満たすオブジェクトが見付かると当該オブジェクトを「アイコンX」として特定する。そして、当該「アイコンX」に対してクリックする処理が自動的に実行される。ウェブサイトに条件を満たすオブジェクトが存在しなければ、自動化処理の対象とするオブジェクトが特定できなかった旨を示す情報を表示してユーザに知らせる。
【0074】
なお、シナリオに基づく自動化の処理は、情報通信網108を介したクラウドサーバ104による処理としてもよいし、クラウドサーバ104に代えてクライアント106による処理としてもよい。クラウドサーバ104による処理とした場合、クライアント106の電源の有無に依存しない処理を実現することができる。また、クライアント106による処理とした場合、情報通信網108を介して外部からアクセスができない社内専用サイト等のウェブページに対する処理も自動化することができる。なお、情報処理システム100では、クラウドサーバ104による処理とクライアント106による処理とを切り換えることができるようにすることが好適である。
【0075】
また、本実施の形態では、対象をウェブブラウザにおける処理としたがこれに限定されるものではない。処理の対象は、ローカルで使用されるネイティブアプリケーション等の他の処理としてもよい。
【0076】
[自動化処理]
以下、本実施の形態における情報処理システム100によって、セキュリティ情報を用いて処理の自動化をセキュアに行う方法について説明する。
【0077】
本実施の形態では、情報処理システム100を利用するユーザのパスワード等を含むセキュリティ情報を登録しておき、処理を自動化するためのシナリオを実行することができるグループに属しているユーザの指示によって処理の自動化を実行する方法について説明する。
【0078】
<登録処理>
まず、
図15のフローチャートを参照して、処理の自動化を実行するために必要な情報をセキュアに登録する処理について説明する。
【0079】
ステップS40では、公開鍵と秘密鍵を生成する処理が行われる。当該ステップにおける処理によって、情報処理システム100は初期化手段として機能する。
【0080】
クラウドサーバ104の処理部20は、公開鍵pk及びそれに対応する秘密鍵skを生成する。処理部20は、生成された秘密鍵skを記憶部22に記憶させると共に、公開鍵pkをクライアント106へ受け渡す。公開鍵pkの受け渡し方法は、例えば、クライアント106で実行されるクライアントプログラム(又は、クライアントアプリケーション)に埋め込んでおき、クライアント106へ受け渡すようにしてもよい。
【0081】
ステップS42では、ユーザ秘密情報(Master Secret)を受け付ける処理が行われる。当該ステップにおける処理によって、情報処理システム100はユーザ秘密情報取得手段として機能する。
【0082】
クライアント106の処理部30は、処理を自動化しようとするユーザからユーザ秘密情報を取得する。ユーザ秘密情報は、例えば、パスワード、暗証番号等の特定のユーザのみが知る情報とすることが好適である。具体的には、入力部34を用いてユーザからユーザ秘密情報の入力を受け付ける。例えば、ユーザAからユーザ秘密情報[A,ms]を受信する。
【0083】
ステップS44では、ユーザ秘密情報からユーザ鍵(Master Key)を生成する処理が行われる。当該ステップにおける処理によって、情報処理システム100はユーザ鍵生成手段として機能する。
【0084】
クライアント106の処理部30は、ステップS42で取得したユーザ秘密情報からユーザ鍵を生成する。ユーザ鍵の生成には、例えば、PBKDF2等の既存の鍵生成方法を適用することができる。例えば、ユーザAから取得したユーザ秘密情報[A,ms]からユーザAに対するユーザ鍵[A,mk]を生成する。
【0085】
ステップS46では、ユーザ鍵を暗号化する処理が行われる。当該ステップにおける処理によって、情報処理システム100はユーザ鍵暗号化手段として機能する。
【0086】
クライアント106の処理部30は、公開鍵pkを用いてステップS44で生成したユーザ鍵を暗号化して第1情報を生成する。ユーザ鍵の暗号化には、例えば、DES、RC4、AES等の既存の暗号化アルゴリズムを適用することができる。例えば、ユーザAから取得したユーザ秘密情報[A,ms]から生成されたユーザ鍵[A,mk]を暗号化して第1情報Encpk([A,mk])を生成する。ここで、Enckey(XXX)は、鍵Keyを用いて情報XXXを暗号化した情報を意味する。
【0087】
ステップS48では、ユーザ鍵を暗号化した第1情報をクラウドサーバ104へ送信して保存する処理が行われる。当該ステップにおける処理によって、情報処理システム100は第1情報保存手段として機能する。なお、本実施の形態において、ユーザ鍵生成手段及び第1情報保存手段は、第1情報生成手段として機能する。
【0088】
クライアント106の処理部30は、通信部38を介してステップS46で暗号化された第1情報をクラウドサーバ104へ送信する。クラウドサーバ104の処理部20は、通信部28を介してクライアント106から送信された第1情報を受信する。処理部20は、受信した第1情報を記憶部22に記憶させる。例えば、ユーザAに対する第1情報Encpk([A,mk])が記憶部22に記憶される。
【0089】
なお、ステップS42~S48の処理は、処理の自動化を実行するユーザ毎に行われる。例えば、ユーザA以外にユーザBが処理の自動化を実行するユーザのグループに属している場合、ユーザBから取得したユーザ秘密情報[B,ms]からユーザ鍵[B,mk]を生成し、ユーザ鍵[B,mk]を暗号化して第1情報Encpk([B,mk])を生成する。そして、第1情報Encpk([B,mk])をクライアント106からクラウドサーバ104へ送信して記憶させる。
【0090】
ステップS50では、グループ鍵を生成する処理が行われる。当該ステップにおける処理によって、情報処理システム100はグループ鍵生成手段として機能する。
【0091】
クライアント106の処理部30は、処理を実行することが許可されたユーザが属するグループのみが知るグループ情報を取得しておき、当該グループ情報からグループ鍵を生成する。グループ鍵の生成には、例えば、PBKDF2等の既存の鍵生成方法を適用することができる。例えば、ユーザAが所属するグループGに対してグループ鍵[G,gk]を生成する。
【0092】
なお、各グループには少なくとも1人のユーザが所属するものとする。すなわち、グループに所属するユーザは、複数であってもよいし、1人であってもよい。
【0093】
ステップS52では、グループ鍵を暗号化する処理が行われる。当該ステップにおける処理によって、情報処理システム100はグループ鍵暗号化手段として機能する。
【0094】
クライアント106の処理部30は、ステップS44にて生成されたユーザ鍵を用いてステップS50で生成したグループ鍵を暗号化して第2情報を生成する。グループ鍵の暗号化には、例えば、DES、RC4、AES等の既存の暗号化アルゴリズムを適用することができる。例えば、グループGに所属するユーザAに対するユーザ鍵[A,mk]を使用して、グループGに対するグループ鍵[G,gk]を暗号化して第2情報Enc[A,mk]([G,gk])を生成する。
【0095】
ステップS54では、グループ鍵を暗号化した第2情報をクラウドサーバ104へ送信して保存する処理が行われる。当該ステップにおける処理によって、情報処理システム100は第2情報保存手段として機能する。なお、本実施の形態において、グループ鍵生成手段及び第2情報保存手段は、第2情報生成手段として機能する。
【0096】
クライアント106の処理部30は、通信部38を介してステップS52で暗号化された第2情報をクラウドサーバ104へ送信する。クラウドサーバ104の処理部20は、通信部28を介してクライアント106から送信された第2情報を受信する。処理部20は、受信した第2情報を記憶部22に記憶させる。例えば、グループGに対する第2情報Enc[A,mk]([G,gk])が記憶部22に記憶される。
【0097】
ステップS56では、ジョブ情報を暗号化する処理が行われる。当該ステップにおける処理によって、情報処理システム100はジョブ情報暗号化手段として機能する。
【0098】
ジョブ情報は、処理を自動化するためのシナリオを実行するために必要な情報である。ジョブ情報は、シナリオを実行する際に必要とされる情報であり、例えば、ID、パスワード、OSにおいて認証に必要な情報(トークン等)の情報である。クライアント106の処理部30は、ステップS50にて生成されたグループ鍵を用いてジョブ情報を暗号化して第3情報を生成する。ジョブ情報の暗号化には、例えば、DES、RC4、AES等の既存の暗号化アルゴリズムを適用することができる。例えば、グループGに対するグループ鍵[G,gk]を使用して、ジョブ情報[X,xc]を暗号化することによって第3情報Enc[G,gk]([X,xc])を生成する。
【0099】
ここで、グループ鍵[G,gk]がクライアント106に存在しない場合、処理部30は、通信部38及び通信部28を介してクラウドサーバ104にアクセスして第2情報を取得する。そして、ユーザからユーザ秘密情報の入力を受けて、ユーザ秘密情報に基づいてユーザ鍵を生成し、当該ユーザ鍵を用いて第2情報を復号化してグループ鍵を得るようにしてもよい。例えば、グループGに所属するユーザAが処理を行う場合、クラウドサーバ104から第2情報Enc[A,mk]([G,gk])を取得する。そして、ユーザAからユーザ秘密情報[A,ms]の入力を受けてユーザ鍵[A,mk]を生成し、ユーザ鍵[A,mk]を用いて第2情報Enc[A,mk]([G,gk])を復号化してグループGに対するグループ鍵[G,gk]を得るようにしてもよい。
【0100】
ステップS58では、暗号化された第3情報をクラウドサーバ104へ送信して保存する処理が行われる。当該ステップにおける処理によって、情報処理システム100は第3情報保存手段として機能する。なお、本実施の形態において、ジョブ情報暗号化手段及び第3情報保存手段は、第3情報生成手段として機能する。
【0101】
クライアント106の処理部30は、通信部38を介してステップS56で暗号化された第3情報をクラウドサーバ104へ送信する。クラウドサーバ104の処理部20は、通信部28を介してクライアント106から送信された第3情報を受信する。処理部20は、受信した第3情報を記憶部22に記憶させる。例えば、ジョブ情報[X,xc]を暗号化した第3情報Enc[G,gk]([X,xc])が記憶部22に記憶される。
【0102】
このとき、クラウドサーバ104とクライアント106との通信において第1情報、第2情報及び第3情報はいずれも暗号化されており、これらの情報の通信におけるセキュリティは確保される。
【0103】
<新規ユーザ追加処理>
既に存在するグループに新たなユーザを加えることもできる。
図16のフローチャートを参照して、既に存在するグループに新たなユーザを加える処理について説明する。
【0104】
ステップS60では、新たなユーザを追加する要求を暗号化する処理が行われる。当該ステップにおける処理によって、情報処理システム100は新規ユーザ追加要求暗号化手段として機能する。
【0105】
クライアント106の処理部30は、入力部34等から新たなユーザを追加する要求を受けると、新たなユーザを追加する要求を暗号化して第4情報を生成する処理を行う。すなわち、既存のグループに所属する既存のユーザから当該グループに対して新たなユーザを追加する要求を受け付けると、当該既存のユーザのユーザ鍵を用いて新たなユーザを追加する要求(リクエスト情報)を暗号化する。例えば、グループGに所属するユーザAが新たにユーザBを追加する要求を行った場合、ユーザAに対するユーザ鍵[A,mk]を用いてユーザBをグループGに追加することを要求するリクエスト情報Xbを暗号化して第4情報Enc[A,mk](Xb)を生成する。
【0106】
なお、本実施の形態では、暗号化によって第4情報を生成する処理としたが、電子署名等の他の技術を適用してもよい。
【0107】
ステップS62では、暗号化された第4情報をクラウドサーバ104へ送信して保存する処理が行われる。当該ステップにおける処理によって、情報処理システム100は第4情報保存手段として機能する。
【0108】
クライアント106の処理部30は、通信部38を介してステップS60で暗号化された第4情報をクラウドサーバ104へ送信する。クラウドサーバ104の処理部20は、通信部28を介してクライアント106から送信された第4情報を受信する。処理部20は、受信した第4情報を記憶部22に記憶させる。例えば、グループGに対する第4情報Enc[A,mk](Xb)が記憶部22に記憶される。
【0109】
このとき、クラウドサーバ104とクライアント106との通信において第4情報は暗号化されており、当該情報に対するセキュリティは確保される。
【0110】
ステップS64では、第4情報を復号化して、ユーザからの要求を確認する。当該ステップにおける処理によって、情報処理システム100は要求確認手段として機能する。
【0111】
まず、クラウドサーバ104の処理部20は、既に記憶部22に記憶されている既存のユーザのユーザ鍵を取得する。そして、当該ユーザ鍵を用いて第4情報を復号化して、新たなユーザを追加する要求を確認する。例えば、クラウドサーバ104に保持されている秘密鍵skを用いて既に記憶部22に記憶されている第1情報Encpk([A,mk])を復号化してユーザAのユーザ鍵[A,mk]を取得する。そして、当該ユーザ鍵[A,mk]を用いて、ステップS62にて受信した第4情報Enc[A,mk](Xb)を復号化してリクエスト情報Xbを取り出す。
【0112】
ステップS66では、グループ鍵を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100はグループ鍵取得手段として機能する。
【0113】
クラウドサーバ104の処理部20は、既に記憶部22に記憶されているグループ鍵を暗号化した第2情報を読みだし、当該グループに所属している既存のユーザのユーザ鍵を用いて第2情報を復号化してグループ鍵を取得する。例えば、追加対象となるグループGに対する第2情報Enc[A,mk]([G,gk])を読みだし、グループGに所属しているユーザAのユーザ鍵[A,mk]を用いて第2情報Enc[A,mk]([G,gk])を復号化してグループGに対するグループ鍵[G,gk]を取得する。
【0114】
ステップS68では、新たに追加されるユーザのユーザ鍵によりグループ鍵を暗号化して保持する処理が行われる。当該ステップにおける処理によって、情報処理システム100はグループ鍵暗号化手段として機能する。
【0115】
クラウドサーバ104の処理部20は、新たに追加されるユーザのユーザ鍵を用いて、ステップS66にて取得されたグループ鍵を暗号化して第2情報を生成して記憶部22に保持させる。当該ステップにおける処理によって、情報処理システム100はグループ鍵暗号化手段として機能する。
【0116】
クラウドサーバ104の処理部20は、新たに追加されるユーザのユーザ鍵を用いてステップS66で取得されたグループ鍵を暗号化して第2情報を生成する。グループ鍵の暗号化には、例えば、DES、RC4、AES等の既存の暗号化アルゴリズムを適用することができる。例えば、ユーザBを新たにグループGに追加する場合、ユーザBに対するユーザ鍵[B,mk]を使用して、グループGに対するグループ鍵[G,gk]を暗号化して第2情報Enc[B,mk]([G,gk])を生成して記憶部22に記憶させる。
【0117】
なお、新たに追加されるユーザのユーザ鍵は、上記ステップS42~S48と同様に、予めクラウドサーバ104の記憶部22に記憶されているものとする。
【0118】
上記処理によって、新たなユーザが追加されたグループに対するグループ鍵を新たなユーザに対するユーザ鍵を用いて暗号化した第2情報を記憶させることができる。したがって、新たなユーザが当該グループに属するシナリオに沿って処理の自動化を実行する際に当該新たなユーザのユーザ鍵によってグループ鍵を取得することが可能になり、新たなユーザがグループ鍵を用いて処理の自動化を実行させることができる。
【0119】
<クラウドサーバにおける処理の自動化の実行>
次に、
図17のフローチャートを参照して、クラウドサーバ104において登録された情報を用いて処理の自動化を実行する処理について説明する。クラウドサーバ104での処理の自動化の実行は、例えば、権限を有するグループに所属するユーザからクラウドサーバ104への処理の自動化を実行する指示を受けた場合、権限を有するグループに所属するユーザによって予め設定された処理の自動化の開始日時に達した場合等において以下の処理を開始する。
【0120】
ステップS70では、実行に必要な情報を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100は実行初期化手段として機能する。
【0121】
クラウドサーバ104の処理部20は、秘密鍵、処理の自動化の実行を指示したユーザのユーザ鍵を暗号化した第1情報、当該ユーザが所属するグループのグループ鍵を暗号化した第2情報及び当該グループに対するシナリオを実行するためのジョブ情報を暗号化した第3情報を記憶部22から読み出して取得する。例えば、ユーザAによってグループGに対するシナリオに沿って処理の自動化を実行する場合、秘密鍵sk、ユーザAのユーザ鍵[A,mk]を暗号化した第1情報Encpk([A,mk])、グループGに対するグループ鍵[G,gk]を暗号化した第2情報Enc[A,mk]([G,gk])、ジョブ情報[X,xc]を暗号化した第3情報Enc[G,gk]([X,xc])を記憶部22から読み出して取得する。
【0122】
ステップS72では、ユーザ鍵を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100はユーザ鍵復号化手段として機能する。
【0123】
クラウドサーバ104の処理部20は、ステップS70において取得した秘密鍵skを用いて第1情報を復号化してユーザ鍵を得る。例えば、秘密鍵skを用いてユーザAに対する第1情報Encpk([A,mk])を復号化してユーザ鍵[A,mk]を取得する。
【0124】
ステップS74では、グループ鍵を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100はグループ鍵復号化手段として機能する。
【0125】
クラウドサーバ104の処理部20は、ステップS72において取得したユーザ鍵を用いてステップS70において取得した第2情報を復号化してグループ鍵を得る。例えば、ユーザAに対するユーザ鍵[A,mk]を用いてユーザAが所属するグループGに対する第2情報Enc[A,mk]([G,gk])を復号化してグループ鍵[G,gk]を取得する。
【0126】
ステップS76では、ジョブ情報を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100はジョブ情報復号化手段として機能する。
【0127】
クラウドサーバ104の処理部20は、ステップS74において取得したグループ鍵を用いてステップS70において取得した第3情報を復号化してジョブ情報を得る。例えば、ユーザAが所属するグループGに対するグループ鍵[G,gk]を用いてグループGに対するジョブ情報を暗号化した第3情報Enc[G,gk]([X,xc])を復号化してグループGのシナリオに沿った処理を自動的に実行するためのジョブ情報[X,xc]を取得する。
【0128】
ステップS78では、シナリオに沿った処理の自動化を実行する処理が行われる。当該ステップにおける処理によって、情報処理システム100は処理実行手段として機能する。
【0129】
クラウドサーバ104の処理部20は、ステップS76において取得したジョブ情報を用いて対象となるシナリオに沿って処理の自動化を開始させる。例えば、ユーザAが所属するグループGに対するシナリオについて、当該シナリオを実行するために必要なジョブ情報[X,xc]を用いて当該シナリオに沿って処理を自動的に行う。
【0130】
<クライアントにおける処理の自動化の実行>
次に、
図18のフローチャートを参照して、クライアント106において登録された情報を用いて処理の自動化を実行する処理について説明する。クライアント106での処理の自動化の実行は、例えば、権限を有するグループに所属するユーザからクライアント106へ処理の自動化を実行する指示が行われた場合、権限を有するグループに所属するユーザによって予め設定された処理の自動化の開始日時に達した場合等において以下の処理を開始する。
【0131】
ステップS80では、実行に必要な情報を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100は実行初期化手段として機能する。
【0132】
クライアント106の処理部30は、クラウドサーバ104へアクセスして、クラウドサーバ104の記憶部22に予め記憶されているユーザが所属するグループのグループ鍵を暗号化した第2情報及び当該グループに対するシナリオを実行するためのジョブ情報を暗号化した第3情報を要求する。クラウドサーバ104は、通信部28及び通信部38を介して、第2情報及び第3情報を記憶部22から読み出してクライアント106へ送信する。例えば、ユーザAによってグループGに対するシナリオに沿って処理の自動化を実行する場合、グループGに対するグループ鍵[G,gk]を暗号化した第2情報Enc[A,mk]([G,gk])、ジョブ情報[X,xc]を暗号化した第3情報Enc[G,gk]([X,xc])がクラウドサーバ104からクライアント106へ送信される。
【0133】
このとき、第2情報及び第3情報は、いずれも暗号化されており、クラウドサーバ104とクライアント106との通信においてセキュリティは確保される。
【0134】
ステップS82では、ユーザ鍵を生成する処理が行われる。当該ステップにおける処理によって、情報処理システム100はユーザ鍵生成手段として機能する。
【0135】
クライアント106の処理部30は、ユーザからユーザ秘密情報の入力を受け付ける。そして、ユーザ秘密情報からユーザ鍵を生成する処理が行われる。ユーザ鍵の生成には、例えば、PBKDF2等の既存の鍵生成方法を適用することができる。例えば、ユーザAから取得したユーザ秘密情報[A,ms]からユーザAに対するユーザ鍵[A,mk]を生成する。
【0136】
ステップS84では、グループ鍵を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100はグループ鍵復号化手段として機能する。
【0137】
クライアント106の処理部30は、ステップS82において取得したユーザ鍵を用いてステップS80において取得した第2情報を復号化してグループ鍵を得る。例えば、ユーザAに対するユーザ鍵[A,mk]を用いてユーザAが所属するグループGに対する第2情報Enc[A,mk]([G,gk])を復号化してグループ鍵[G,gk]を取得する。
【0138】
ステップS86では、ジョブ情報を取得する処理が行われる。当該ステップにおける処理によって、情報処理システム100はジョブ情報復号化手段として機能する。
【0139】
クライアント106の処理部30は、ステップS84において取得したグループ鍵を用いてステップS80において取得した第3情報を復号化してジョブ情報を得る。例えば、ユーザAが所属するグループGに対するグループ鍵[G,gk]を用いてグループGに対するジョブ情報を暗号化した第3情報Enc[G,gk]([X,xc])を復号化してグループGのシナリオに沿った処理を自動的に実行するためのジョブ情報[X,xc]を取得する。
【0140】
ステップS88では、シナリオに沿った処理の自動化を実行する処理が行われる。当該ステップにおける処理によって、情報処理システム100は処理実行手段として機能する。
【0141】
クライアント106の処理部30は、ステップS86において取得したジョブ情報を用いて対象となるシナリオに沿って処理の自動化を開始させる。例えば、ユーザAが所属するグループGに対するシナリオについて、当該シナリオを実行するために必要なジョブ情報[X,xc]を用いて当該シナリオに沿って処理を自動的に行う。
【0142】
以上のように、情報処理システム100では、汎用的な処理自動化の仕組みを提供することができる。また、セキュアな状態において処理を自動的に実行できる仕組みを提供することができる。
【符号の説明】
【0143】
10 処理部、12 記憶部、14 入力部、16 出力部、18 通信部、20 処理部、22 記憶部、24 入力部、26 出力部、28 通信部、30 処理部、32 記憶部、34 入力部、36 出力部、38 通信部、100 情報処理システム、102 APIサーバ、104 クラウドサーバ、106 クライアント、108 情報通信網、200 第1表示部、202 選択肢表示領域、202a 動画領域、204 処理内容編集領域、206 処理内容入力領域、206a 条件セレクト領域、206b 条件内容設定領域、300 第2表示部、302 カーソル、304 メニュー画像。