本発明をその実施の形態を示す図面を参照して具体的に説明する。
(実施形態1)
図1は、実施形態1における情報処理システム100の構成を示すブロック図である。情報処理システム100は、情報処理装置1、端末装置2及びウェブサーバ3を備える。各装置は、インターネット等のネットワークNを介して相互に情報を送受信することが可能である。
情報処理装置1は、第1サーバ11、第2サーバ12及び第3サーバ13を含む。情報処理装置1は、夫々1台のサーバコンピュータである第1サーバ11、第2サーバ12及び第3サーバ13から構成される例を説明するが、第1サーバ11、第2サーバ12及び第3サーバ13は複数のサーバコンピュータで機能又は処理を分散させてもよいし、1台の大型コンピュータに仮想的に生成される複数のサーバコンピュータ(インスタンス)の内の1つであってもよい。
第1サーバ11は、手順DB(Data Base :データベース)14に対して情報を読み書きする。第1サーバ11は手順DB14に、ブラウザにおける操作処理を実行するための操作処理手順を記憶する。操作処理手順には、ブラウザにおける複数の操作処理が含まれる。操作処理手順に基づき自動実行される操作処理とは、ウェブサーバ3へのブラウザの操作に関する処理であり、例えば、ウェブサーバ3上におけるデータの入力、エレメントの選択、ブラウザのリサイズ、ブラウザのスクロール、タブの切替等である。各操作処理には、操作処理内容、エレメント情報、操作処理に必要な入力情報の有無等が含まれている。
端末装置2は、例えばパーソナルコンピュータ、スマートフォン又はタブレット等である。端末装置2は、ブラウザ画面上における操作処理の自動実行要求を情報処理装置1へ送信し、操作処理の自動実行の結果を取得する。端末装置2は、操作処理の自動実行に必要な入力情報を、情報処理装置1へ送信する。入力情報は、例えば、ブラウザで入力されるデータ、選択されるエレメント等の情報である。
第1サーバ11は、ネットワークNを介して端末装置2と通信を行うウェブサービスサーバである。第1サーバ11は、端末装置2から操作処理の自動実行要求を受信する。第1サーバ11は、自動実行要求に応じた操作処理手順を手順DB14から読み出し第2サーバへ送信する。第2サーバ12は、第1サーバ11から取得した操作処理手順に基づき、操作処理の自動実行指示を第3サーバ13へ送信する。第3サーバ13は、取得した操作処理の自動実行指示に応じて、ウェブドライバ等を用いてブラウザを制御し、ネットワークNを介してウェブサーバ3への操作処理を自動実行する。ウェブサーバ3は、操作処理に応じたウェブページを、ネットワークNを介して第3サーバ13に提供し、第3サーバ13はウェブページを取得する。第3サーバ13は、操作処理の自動実行結果を取得し、第2サーバ12及び第1サーバ11を介して、端末装置2へ送信する。このように、情報処理システム100では、情報処理装置1と端末装置2とが通信を行い、端末装置2の自動実行要求に基づき、情報処理装置1が通信によりブラウザの操作処理を自動実行するクラウド型サービスを実現する。
このような情報処理システム100の構成及び詳細な処理内容について以下に説明する
。
図2は、情報処理システム100を構成する各装置の内部構成を示すブロック図である。情報処理装置1は、上述のように第1サーバ11、第2サーバ12及び第3サーバ13を含む。第1サーバ11は、制御部110、記憶部111及び通信部112を備える。制御部110は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)又はGPU(Graphics Processing Unit)等の処理素子(コンピュータ)を有する。制御部110は、記憶部111に記憶されているプログラム11Pに基づき、汎用サーバコンピュータを、ブラウザの操作処理を自動実行するクラウド型サービスを提供する特有の情報処理装置として機能させる。なお、制御部110が有する処理素子の数は2以上であってもよい。この場合、複数の処理素子が協働で種々の処理を実行する。
通信部112は、有線又は無線の通信モジュール又は通信インタフェースであり、ネットワークNを介して第2サーバ12及び端末装置2との間で情報の送受信を行う。
記憶部111は、不揮発性記憶媒体を用いることができる。不揮発性記憶媒体は、例えば、ハードディスク、若しくはSSD(Solid State Drive )が挙げられる。記憶部111は、プログラム11Pを含む制御部110が参照するプログラム及びデータを記憶する。
プログラム11Pは、プログラム11Pを読み取り可能に記録した非一時的な記憶媒体A1を用いて、第1サーバ11に提供されてもよい。記憶媒体A1は、例えば可搬型メモリである。可搬型メモリの例として、CD−ROM、USB(Universal Serial Bus)メモリ、SDカード、マイクロSDカード又はコンパクトフラッシュ(登録商標)等が挙げられる。記憶媒体A1が可搬型メモリである場合、制御部110の処理素子は、図示しない読み取り装置を用いて記憶媒体A1からプログラム11Pを読み取り、読み取ったプログラム11Pを記憶部111に記憶してもよい。プログラム11Pは、通信部112を介した通信によって、第1サーバ11に提供されてもよい。この場合、制御部110の処理素子は、通信部112を通じてプログラム11Pを取得し、取得したプログラム11Pを記憶部111に記憶してもよい。
第2サーバ12は、制御部120、記憶部121及び通信部122を備える。制御部120は、CPU、MPU又はGPU等の処理素子を有する。制御部120は、記憶部121に記憶されているプログラム12Pに基づき、汎用サーバコンピュータを、ブラウザの操作処理を自動実行するクラウド型サービスを提供する特有の情報処理装置として機能させる。なお、制御部120が有する処理素子の数は2以上であってもよい。この場合、複数の処理素子が協働で種々の処理を実行する。
通信部122は、有線又は無線の通信モジュール又は通信インタフェースであり、ネットワークNを介して第1サーバ11及び第3サーバ13との間で情報の送受信を行う。
記憶部121は、不揮発性記憶媒体を用いることができる。不揮発性記憶媒体は、例えば、ハードディスク、若しくはSSDが挙げられる。記憶部121は、プログラム12Pを含む制御部120が参照するプログラム及びデータを記憶する。
プログラム12Pは、プログラム12Pを読み取り可能に記録した非一時的な記憶媒体A2を用いて、第2サーバ12に提供されてもよい。記憶媒体A2は、例えば可搬型メモリである。可搬型メモリの例として、CD−ROM、USBメモリ、SDカード、マイクロSDカード又はコンパクトフラッシュ等が挙げられる。記憶媒体A2が可搬型メモリである場合、制御部120の処理素子は、図示しない読み取り装置を用いて記憶媒体A2からプログラム12Pを読み取り、読み取ったプログラム12Pを記憶部121に記憶してもよい。プログラム12Pは、通信部122を介した通信によって、第2サーバ12に提供されてもよい。この場合、制御部120の処理素子は、通信部122を通じてプログラム12Pを取得し、取得したプログラム12Pを記憶部121に記憶してもよい。
第3サーバ13は、制御部130、記憶部131及び通信部132を備える。制御部130は、CPU、MPU又はGPU等の処理素子を有する。制御部130は、記憶部131に記憶されているプログラム13Pに基づき、汎用サーバコンピュータを、ブラウザの操作処理を自動実行するクラウド型サービスを提供する特有の情報処理装置として機能させる。なお、制御部130が有する処理素子の数は2以上であってもよい。この場合、複数の処理素子が協働で種々の処理を実行する。
通信部132は、有線又は無線の通信モジュール又は通信インタフェースであり、ネットワークNを介して第2サーバ12及びウェブサーバ3との間で情報の送受信を行う。
記憶部131は、不揮発性記憶媒体を用いることができる。不揮発性記憶媒体は、例えば、ハードディスク、若しくはSSDが挙げられる。記憶部131は、プログラム13Pを含む制御部130が参照するプログラム及びデータを記憶する。
プログラム13Pは、プログラム13Pを読み取り可能に記録した非一時的な記憶媒体A3を用いて、第3サーバ13に提供されてもよい。記憶媒体A3は、例えば可搬型メモリである。可搬型メモリの例として、CD−ROM、USBメモリ、SDカード、マイクロSDカード又はコンパクトフラッシュ等が挙げられる。記憶媒体A3が可搬型メモリである場合、制御部130の処理素子は、図示しない読み取り装置を用いて記憶媒体A3からプログラム13Pを読み取り、読み取ったプログラム13Pを記憶部131に記憶してもよい。プログラム13Pは、通信部132を介した通信によって、第3サーバ13に提供されてもよい。この場合、制御部130の処理素子は、通信部132を通じてプログラム13Pを取得し、取得したプログラム13Pを記憶部131に記憶してもよい。
第3サーバ13は、ブラウザを備える。ブラウザは、ウェブサーバ3とネットワークNを介して通信を行い、ウェブサーバ3から取得した情報を解析し、解析結果をブラウザ画面に表示する。ブラウザはヘッドレスブラウザであってよい。
端末装置2は、制御部20、記憶部21、通信部22、表示部23及び操作部24を備える。制御部20は、CPU、MPU又はGPU等の処理素子を有する。なお、制御部20が有する処理素子の数は2以上であってもよい。この場合、複数の処理素子が協働で種々の処理を実行する。
記憶部21は、不揮発性記憶媒体を用いることができる。不揮発性記憶媒体は、例えば、SSD、若しくは、フラッシュメモリが挙げられる。記憶部21は、制御部20が参照するプログラム及びデータを記憶する。
通信部22は、有線又は無線の通信モジュール又は通信インタフェースであり、ネットワークNを介して第1サーバ11との間で情報の送受信を行う。
表示部23は、液晶パネル、有機EL(Electro Luminescence)ディスプレイ等のディスプレイ装置を用いる。操作部24は、ユーザの操作を受け付けるインタフェースであり、物理ボタン、ディスプレイ内蔵のタッチパネルデバイス等を用いる。
上記のように構成される情報処理システム100において、操作処理手順に基づく操作処理の自動実行が行われる。図3及び図4は、情報処理システム100において実行される操作処理の手順の一例を示すフローチャートである。例えば端末装置2に接続されている操作部24からの入力内容に基づき、情報処理装置1、端末装置2及びウェブサーバ3の間で以下の処理が実行される。なお本実施形態においては、情報処理装置1で実行される処理は、第1サーバ11の制御部110、第2サーバ12の制御部120及び第3サーバ13の制御部130により協働して各処理が実行される。
端末装置2は、操作部24の操作を受け付けブラウザプログラム等を起動し、自動実行サービスへのログイン情報を受け付け、情報処理装置1へ通信接続する。情報処理装置1は、ユーザID等に対応付けて登録されている、予め記録済みの複数の操作処理手順を端末装置2へ送信する。端末装置2は、受信した複数の操作処理手順を表示部23に表示し、ユーザの所望する操作処理手順の選択を受け付け、受け付けた操作処理手順IDを情報処理装置1へ送信する。
各操作処理手順には複数の操作処理が含まれる。操作処理には、操作処理の実行において入力情報が必要である操作処理と、入力情報が必要でない操作処理とが含まれる。情報処理装置1は、操作処理手順に対応付けてこれら入力情報の受け付けの必要の有無を記憶している。例えば、以下で説明する処理で自動実行される操作処理手順ID01には、第1操作処理、第2操作処理及び第3操作処理が含まれる。第1操作処理には、操作処理内容及び第1入力情報の受け付けが必要であることを示す情報が含まれる。第2操作処理には、操作処理内容及び第2入力情報の受け付けが必要であることを示す情報が含まれる。
情報処理装置1は、選択された操作処理手順に入力情報の受け付けが必要な操作処理が含まれている場合は、必要な入力情報を受け付けるための入力ボックス等を含む受付画面情報を端末装置2へ送信する。
端末装置2は、取得した受付画面を表示部23に表示させる(図5参照)。ユーザは、予め第1入力情報及び第2入力情報を入力し、操作処理の自動実行を要求する。端末装置2は、操作処理手順IDに対応付けて、操作処理の自動実行要求、第1入力情報及び第2入力情報の入力を受け付ける。端末装置2は、受け付けた操作処理の自動実行要求、第1入力情報及び第2入力情報を操作処理手順IDに対応付けて情報処理装置1に送信する(ステップS101)。
情報処理装置1は、操作処理手順IDに対応付けて、操作処理の自動実行要求、第1入力情報及び第2入力情報を受信する(ステップS201)。情報処理装置1は、第1入力情報及び第2入力情報と、第1操作処理及び第2操作処理とを夫々対応付けて記憶する。情報処理装置1は、手順DB14を参照し、自動実行要求に係る操作処理手順を取得する(ステップS202)。取得した操作処理手順には、例えば第1操作処理、第2操作処理及び第3操作処理を含む複数の操作処理が含まれる。
情報処理装置1は、ブラウザを起動する。情報処理装置1は、操作処理により指定されたURLを読み込み、ウェブサーバ3へHTTPリクエストを送信する(ステップS203)。
ウェブサーバ3は、HTTPリクエストを受信し(ステップS301)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第1画面)を生成する。第1画面には、第1入力情報の入力を受け付ける画面情報が含まれている(図6参照)。ウェブサーバ3は、生成した第1画面を情報処理装置1へ返信する(ステップS302)。
情報処理装置1は、第1画面を取得し(ステップS204)、第1操作処理を実行する(ステップS205)。第1操作処理は、第1入力情報の入力を制御する操作処理である。情報処理装置1は、第1操作処理に対応付けられる第1入力情報を読み出し、ブラウザの第1画面に含まれる所定のエレメントへの第1入力情報の入力を実行し、実行ボタン等のエレメントの押下操作により第1入力情報を含むHTTPリクエストをウェブサーバ3へ送信する。
ウェブサーバ3は、第1入力情報を含むHTTPリクエストを受信し(ステップS303)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第2画面)を生成する。第2画面には、第2入力情報の入力を受け付ける画面情報が含まれている(図7参照)。ウェブサーバ3は、生成した第2画面を情報処理装置1へ返信する(ステップS304)。
情報処理装置1は、第2画面を取得し(ステップS206)、第2操作処理を実行する(ステップS207)。第2操作処理は、第2入力情報の入力を制御する操作処理である。情報処理装置1は、第2操作処理に対応付けられる第2入力情報を読み出し、ブラウザの第2画面に含まれる所定のエレメントへの第2入力情報の入力を実行し、実行ボタン等のエレメントの押下操作により第2入力情報を含むHTTPリクエストをウェブサーバ3へ送信する。
ウェブサーバ3は、第2入力情報を含むHTTPリクエストを受信し(ステップS305)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第3画面)を生成する。第3画面には、一連の操作処理により得られた自動実行結果データを示す結果画面情報が含まれている(図8参照)。ウェブサーバ3は、生成した第3画面を情報処理装置1へ返信する(ステップS306)。
情報処理装置1は、第3画面を取得し(ステップS208)、第3操作処理を実行する(ステップS209)。第3操作処理は、自動実行結果データを取得する操作処理である。情報処理装置1は、例えばブラウザ画面のスナップショットによる画像データを生成することにより自動実行結果データを取得する(図9参照)。情報処理装置1は、取得した自動実行結果データを端末装置2へ送信する(ステップS210)。端末装置2は、自動実行結果データを取得し(ステップS102)、一連の処理を終了する。なお、情報処理システム100は、ステップS208の処理の後にステップS207を行うループ処理を行ってもよい。
具体例を挙げて図3及び図4のフローチャートに示した処理手順を説明する。図5は、端末装置2の表示部23に表示される画面例を示す図である。図5は、端末装置2の表示部23に表示される入力情報の受付画面231の一例を示す図である。ユーザが、ブラウザ上の自動実行の受付画面にて、自動実行すべき操作処理手順IDを選択すると、図5に示す如く入力情報の受付画面231が表示部23に表示される。
図5の例では、操作処理手順として手順ID01の金沢のホテル予約実行の操作処理手順が選択されている。手順ID01の操作処理には、第1入力情報として、ホテル予約サイトのログインID及びパスワードが含まれる。さらに第2入力情報として、宿泊日数が含まれる。ユーザは、図5の入力画面に表示される第1入力情報の入力ボックス232にログインID及びパスワードを、第2入力情報の入力ボックス233に宿泊日数をそれぞれ入力し、実行ボタン234の選択操作を行う。端末装置2は、実行ボタン234の操作を受け付け、自動実行要求、第1入力情報及び第2入力情報を取得し、取得した自動実行要求、第1入力情報及び第2入力情報を情報処理装置1へ送信する(ステップS101)。なお、受付画面231に複数の入力ボックスが含まれる場合において、操作処理は画面単位に実行されるものに限られず、入力ボックス毎に夫々入力情報及び操作処理が定義されていてもよい。
図6から図8は、情報処理装置1のブラウザに表示される画面例を示す図である。情報処理装置1のブラウザでは、取得した操作処理手順、第1入力情報及び第2入力情報に基づく操作が自動で実行される。情報処理装置1がホテル予約サイトのURLを読み込むと、第1画面であるホテル予約サイトのログイン画面140が、図6の如くブラウザに表示される(ステップS204)。第1画面には、第1入力情報のログインID及びパスワードの入力を受け付ける入力ボックス141と、第1入力情報を含むHTTPリクエストの送信を実行するためのログインボタン142とが含まれる。情報処理装置1は、第1操作処理を実行し、入力ボックス141に第1入力情報のログインID及びパスワードを入力し、ログインボタン142を押下する(ステップS205)。
ついで、第2画面であるホテル検索画面143が、図7の如くブラウザに表示される(ステップS206)。ホテル検索画面143には、宿泊地、地域及び宿泊日の選択を受け付ける複数の入力ボックス144と、宿泊日数の入力を受け付ける入力ボックス145と、第2入力情報を含むHTTPリクエストの送信を実行するための検索実行ボタン146とが含まれる。手順ID01の操作処理手順では、例えば宿泊地、地域及び宿泊日等は予め所定の入力内容が決定されており、宿泊日数のみが操作毎に指定され、ホテルの予約が実行される。情報処理装置1は、予め設定される入力内容に従い、宿泊地、地域及び宿泊日の各入力ボックス144の入力操作を実行する。さらに情報処理装置1は、第2操作処理を実行し、入力ボックス145に第2入力情報の宿泊日数を入力し、検索実行ボタン146を押下する(ステップS207)。
情報処理装置1は、以降の操作処理手順を実行し、検索条件に応じたホテルの予約を完了する。検索条件に応じた予約プランが複数表示される場合において、例えば手順ID01の操作処理手順では、先頭に表示される予約プランが選択されるよう操作処理が設定される。
上述のようにして、予約が完了し、第3画面である予約完了画面147が図8の如くブラウザに表示される(ステップS208)。予約完了画面147には、手順ID01の操作処理手順の自動実行結果である、ホテルの予約内容が含まれる。情報処理装置1は、第3操作処理を実行し、自動実行結果データを端末装置2へ送信する(ステップS210)。
図9は、端末装置2の表示部23に表示される画面例を示す図である。端末装置2の表示部23には、図9に示す如く、操作処理の結果画面235が表示される。結果画面235には、自動実行結果データを示す表示ボックス236が含まれ、ユーザは、自動実行された操作処理手順の結果を認識することができる。
なお、ユーザは、操作処理手順の自動実行結果のみでなく、自動実行中、若しくは自動実行完了後の各操作処理手順の自動実行内容等について、任意のタイミングで端末装置2の表示部23にて確認することが可能であることが好ましい。情報処理装置1は、各操作処理の自動実行に応じて表示されるブラウザ画面の各画像データを取得し、操作処理の識別情報に対応付けて記憶する。情報処理装置1は、端末装置2からの要求に応じて、画像データ等を送信する。例えば、端末装置2の表示部23には、ユーザの登録した操作処理手順が一覧で表示され、各操作処理手順の自動実行履歴、進行状況等が視認可能に表示される。ユーザが一の操作処理手順を選択すると、該操作処理手順に含まれる複数の操作処理が表示され、各操作処理に対応付けられたブラウザ画面の履歴を確認することが可能である。
本実施形態によれば、ユーザは、任意の入力情報を指定したうえで操作処理の自動実行を情報処理装置1に行わせることができる。情報処理装置1は、必要な入力情報を受け付けながら操作処理の自動実行を進めることができる。入力情報は、操作処理毎に変更が可能なため、多様なニーズに対応した操作処理手順を提供することができる。
上述の処理において、情報処理装置1は、端末装置2から操作処理の自動実行要求を受信することなく、予め設定された時間に自動で操作処理を開始してもよい。情報処理装置1は、図示しない予約DBに登録されるジョブ内容に基づき、操作処理の自動実行を開始する。予約DBには、例えば予約開始時刻、操作処理手順ID、第1入力情報及び第2入力情報等が登録されている。情報処理装置1は、予約DBに登録された操作処理手順ID、第1入力情報及び第2入力情報等に基づき、予約開始時刻に、操作処理の自動実行を開始する。情報処理装置1は、操作処理に応じた自動実行結果を取得し、取得した自動実行結果を予約DBまたは記憶部等に保存する。ユーザは端末装置2を用いて、情報処理装置1を介して予約DBまたは記憶部等に保存された自動実行結果データを取得し、自動実行結果を認識することができる。
(実施形態2)
実施形態2の情報処理システム200は、外部サーバをさらに備え、当該外部サーバが、情報処理装置1のAPI(Application Programming Interface )を呼び出すことにより、操作処理の自動実行が実現される。図10は、実施形態2における情報処理システム200の構成を示すブロック図である。以下では、実施形態2について、実施形態1と異なる点を説明する。後述する構成を除く他の構成については実施形態1と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
外部サーバ4は、通信機能を有するサーバコンピュータであり、ネットワークNを介して、情報処理装置1及び端末装置2と情報の送受信が可能である。情報処理装置1の第1サーバ11は、外部サーバ4へAPIを提供するAPIサーバとして機能する。外部サーバ4は、第1サーバ11へ操作処理の自動実行要求を送信し、第1サーバ11から要求した操作処理の自動実行結果データを取得する。
実施形態2では、外部サーバ4から、操作処理の自動実行要求、第1入力情報及び第2入力情報等が情報処理装置へ送信される。外部サーバ4は、情報処理装置1が備えるAPIを呼び出し、操作処理の自動実行を要求する。外部サーバ4は、第1入力情報、第2入力情報及びAPIの実行要求を情報処理装置1へ送信する。第1入力情報、第2入力情報及び実行要求を取得した情報処理装置1は、実施形態1と同様の処理を行い、ウェブサーバ3に対する操作処理を自動実行し、操作処理手順の自動実行結果データを取得する。情報処理装置1は、取得した操作処理の自動実行結果データを外部サーバ4へ送信する。
(実施形態3)
実施形態3の情報処理システム300では、操作処理の実行途中で、入力情報が受け付けられる点で実施形態1と異なる。以下では、実施形態3について、実施形態1と異なる点を説明する。後述する構成を除く他の構成については実施形態1と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
操作処理を自動実行する場合において、例えば、表示される選択肢の内容が自動実行の開始時に取得できないとき、第1入力情報の入力内容に応じて第2入力情報が表示されるとき、認証情報等の操作処理毎に異なる入力情報が必要なとき等がある。このようなときには、自動実行の開始時に全ての入力情報を指定した上で操作処理の自動実行を要求することは困難であり、操作処理を進める途中で入力情報を取得することが望ましい。
図11及び図12は、実施形態3の情報処理システム300において実行される操作処理の手順の一例を示すフローチャートである。例えば端末装置2に接続されている操作部24からの入力内容に基づき、情報処理装置1、端末装置2及びウェブサーバ3の間で以下の処理が実行される。実施形態1の図3及び図4と共通する処理については同一のステップ番号を付してその詳細な説明を省略する。
端末装置2は、操作部24の操作を受け付けブラウザプログラム等を起動して、表示部23に自動実行サービスに係るブラウザ画面を表示する。ブラウザ画面には、予め記録済みの複数の操作処理手順が表示される。端末装置2は、複数の操作処理手順の中から、ユーザの所望する操作処理手順の選択を受け付ける。操作処理手順には、例えば第1操作処理及び第2操作処理を含む複数の操作処理が含まれる。第1操作処理及び第2操作処理の実行には、夫々第1入力情報及び第2入力情報が必要である。端末装置2は、必要な入力情報を受け付けるための入力ボックス等を含む画面情報を取得し表示部23に表示させる(図13参照)。ユーザは、ブラウザ画面を介して第1入力情報を入力する。第1入力情報は、例えばログインID及びパスワードであり、自動実行の要求時に入力することが可能な情報である。端末装置2は、操作処理手順IDに対応付けて、操作処理の自動実行要求及び第1入力情報を情報処理装置1に送信する(ステップS121)。
情報処理装置1は、操作処理手順IDに対応付けて、操作処理の自動実行要求及び第1入力情報を受信する(ステップS221)。情報処理装置1は、第1入力情報と第1操作処理とを対応付けて記憶する。情報処理装置1は、手順DB14を参照し、自動実行要求に係る操作処理手順を取得する(ステップS202)。操作処理手順には、例えば第1操作処理、第2操作処理及び第3操作処理を含む複数の操作処理が含まれる。
情報処理装置1は、ブラウザを起動する。情報処理装置1は、操作処理により指定されたURLを読み込み、ウェブサーバ3へHTTPリクエストを送信する(ステップS203)。
ウェブサーバ3は、HTTPリクエストを受信し(ステップS301)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第1画面)を生成する。第1画面には、第1入力情報の入力を受け付ける画面情報が含まれている。ウェブサーバ3は、生成した第1画面を情報処理装置1へ返信する(ステップS302)。
情報処理装置1は、第1画面を取得し(ステップS204)、第1操作処理を実行する(ステップS205)。第1操作処理は、第1入力情報の入力を制御する操作処理である。情報処理装置1は、第1操作処理に対応付けられる第1入力情報を読み出し、ブラウザの第1画面に含まれる所定のエレメントへの第1入力情報の入力を実行し、実行ボタン等のエレメントの押下操作により第1入力情報を含むHTTPリクエストをウェブサーバ3へ送信する。
ウェブサーバ3は、第1入力情報を含むHTTPリクエストを受信し(ステップS303)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第2画面)を生成する。第2画面には、第2入力情報の入力を受け付ける画面情報が含まれている。ウェブサーバ3は、生成した第2画面を情報処理装置1へ返信する(ステップS304)。
情報処理装置1は、第2画面を取得する。(ステップS206)。情報処理装置1は、第2画面に基づき、第2操作処理を実行するための入力情報を受け付けるか否かを判定する(ステップS222)。第2操作処理に対応付けられた第2入力情報が取得済みであることにより、第2入力情報を受け付けると判定されない場合(ステップS222:NO)、情報処理装置1は、処理をステップS207に進める。
一方、第2入力情報が取得済みでないことにより、第2入力情報を受け付けると判定される場合(ステップS222:YES)、情報処理装置1は、第2入力情報を受け付けるための第2画面情報を生成し、生成した第2画面情報を端末装置2へ送信する(ステップS223)。第2画面情報には、第2画面のスナップショットによるイメージデータである画像データ、第2入力情報の入力を受け付けるためのエレメント情報等が含まれる(図14参照)。
端末装置2は、ブラウザ上で第2画面情報を取得する(ステップS122)。ユーザは、第2画面の内容に応じて第2入力情報を入力する。端末装置2は、入力された第2入力情報を情報処理装置1へ送信する(ステップS123)。
情報処理装置1は、第2入力情報を受信し(ステップS224)、第2操作処理を実行する(ステップS207)。第2操作処理は、第2入力情報の入力を制御する操作処理である。情報処理装置1は、ブラウザの第2画面に含まれる所定のエレメントへの第2入力情報の入力を実行し、実行ボタン等のエレメントの押下操作により第2入力情報を含むHTTPリクエストをウェブサーバ3へ送信する。
ウェブサーバ3は、第2入力情報を含むHTTPリクエストを受信し(ステップS305)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第3画面)を生成する。第3画面には、一連の操作処理により得られた自動実行結果データを示す結果画面情報が含まれている。ウェブサーバ3は、生成した第3画面を情報処理装置1へ返信する(ステップS306)。
情報処理装置1は、第3画面を取得し(ステップS208)、第3操作処理を実行する(ステップS209)。第3操作処理は、自動実行結果データを取得する操作処理である。情報処理装置1は、取得した自動実行結果データ(図16参照)を端末装置2へ送信する(ステップS210)。端末装置2は、自動実行結果データを取得し(ステップS102)、一連の処理を終了する。なお、情報処理システム300は、ステップS208の処理の後にステップS222を行うループ処理を行ってもよい。
具体例を挙げて図11及び図12のフローチャートに示した処理手順を説明する。図13から図16は、端末装置2の表示部23に表示される画面例を示す図である。
図13は、端末装置2の表示部23に表示される第1入力情報の受付画面241の一例を示す図である。ユーザが、ブラウザ上の自動実行の受付画面にて、自動実行すべき操作処理手順IDを選択すると、図13に示す如く第1入力情報の受付画面241が表示部23に表示される。図13の例では、操作処理手順として手順ID02の全国のホテル予約実行の操作処理手順が選択されている。手順ID02の操作処理には、第1入力情報として、ホテル予約サイトのログインID、パスワード及び宿泊日数が含まれる。第2入力情報として、宿泊地及び地域が含まれる。第3入力情報として、ホテル順位が含まれる。
ユーザは、第1入力情報の受付画面241にて表示される第1入力情報の入力ボックス242に、ログインID、パスワード及び宿泊日数を夫々入力する。第1入力情報の受付画面241には、その他の入力情報の入力ボックスとして、第2入力情報の宿泊地及び地域を入力する入力ボックス243と、第3入力情報のホテル順位を入力する入力ボックス244とが含まれる。ユーザは、操作処理に応じたブラウザ画面を確認しながら入力を行う第2入力情報及び第3入力情報については、自動実行の要求時に入力しない。ユーザは、第1入力情報の入力ボックス242のみ入力を行い、実行ボタン245の選択操作を行う。端末装置2は、実行ボタン245の操作を受け付け、自動実行要求及び第1入力情報を取得し、取得した自動実行要求及び第1入力情報を情報処理装置1へ送信する(ステップS121)。
情報処理装置1のブラウザでは、取得した操作処理手順及び第1入力情報に基づく操作が自動で実行される。情報処理装置1は、第1画面であるホテル予約サイトのログイン画面で第1操作処理を実行し、第1入力情報のログインID及びパスワードを入力する(ステップS205)。情報処理装置1のブラウザでは、第2a画面であるホテル検索画面が表示される(ステップS206)。第2a画面には、宿泊地及び地域の選択を受け付ける内容が含まれるため、第2入力情報が必要である。情報処理装置1は第2入力情報を受け付けるため、第2a画面の画像データを端末装置2へ送信する(ステップS223)。
端末装置2の表示部23には、図14に示す如く、第2a画面であるホテル検索画面の画像データを含む画面247が表示される。画面247には、宿泊地及び地域の選択を受け付ける複数の入力ボックス248、宿泊日の入力を受け付ける入力ボックス249、及び宿泊日数の入力を受け付ける入力ボックス250が含まれる。手順ID02の操作処理手順では、宿泊日は予め所定の入力内容が決定されているため、入力ボックス249には所定の宿泊日が入力されている。また入力ボックス250には、取得済みの第1入力情報に含まれる宿泊日数が入力されている。ユーザは、ブラウザ画面を操作し、宿泊地及び地域の選択肢を確認しながら、第2入力情報を決定する。例えばユーザは、表示される候補の中から宿泊地「東京都」、地域「新宿」を選択操作し、入力ボックス248にそれぞれ入力する。端末装置2は、入力操作を受け付け第2入力情報を取得し、取得した第2入力情報を情報処理装置1へ送信する(ステップS123)。
情報処理装置1は、第2操作処理を実行し、ブラウザ上で第2入力情報を入力する(ステップS207)。手順ID02の操作処理手順には複数の操作処理が含まれるため、情報処理装置1はループ処理を行う。情報処理装置1は、ウェブサーバ3から第2b画面を取得する。情報処理装置1のブラウザでは、第2b画面である宿泊ホテルを選択するためのホテル一覧画面が表示される。第2b画面には、ホテル順位の選択を受け付ける内容が含まれるため、第3入力情報が必要である。情報処理装置1は第3入力情報を受け付けるため、第2b画面の画像データを端末装置2へ送信する(ステップS223)。
端末装置2の表示部23には、図15に示す如く、第2b画面であるホテル一覧画面の画像データを含む画面252が表示される。画面252には、画面247の検索条件を満たす複数のプランの一覧が含まれ、希望プランの選択を受け付ける入力ボックス253が含まれる。ユーザは、一覧から希望のプランを選択し、希望プランに対応付けられた「予約」と示される入力ボックス253をクリックすることで、第3情報の入力を行う。端末装置2は、入力操作を受け付け第3入力情報を取得し、取得した第3入力情報を情報処理装置1へ送信する(ステップS123)。情報処理装置1は、その後の操作処理手順を実行しホテルの予約を完了する。
端末装置2の表示部23には、図16に示す如く、操作処理の結果画面255が表示される。結果画面255には、自動実行結果データを示す表示ボックス256が含まれ、ユーザは、自動実行された操作処理手順の結果を認識することができる。
なお、ステップS222以降の入力情報の受け付けは、操作処理の自動実行において予め想定されていない操作処理が要求され、操作処理を中断した場合等にも行われる。例えば、入力情報を入力すべきエレメントが不足している、記録された操作処理には含まれていない入力要素が含まれている等、操作処理手順に従い自動実行した操作処理に対してエラーが発生した場合には、情報処理装置1はステップS223の処理を実行し端末装置2から操作処理の継続に必要な入力情報を受け付ける。
ウェブサーバ3から取得した操作処理に対するHTTPレスポンスに、第1操作処理が正常に実行されなかったことを示す情報が含まれている場合、情報処理装置1は、入力情報を受け付けると判定し端末装置2から新たな入力情報を受け付ける。情報処理装置1は、例えば取得したHPPTレスポンスに、エラー又はタイムアウト等が発生したことを表示する所定の語句が含まれている場合、新たな入力情報を受け付ける。情報処理装置1は、HPPTレスポンスにエラーコード等が含まれる場合においては、所定のエラーコードが含まれるが否かを識別してもよい。情報処理装置1は、HPPTレスポンスが一定時刻を経過して取得されない場合、新たな入力情報を受け付けてもよい。
情報処理装置1は、操作処理に対するブラウザの画面情報を端末装置2へ送信する。情報処理装置1は、所定のエラー内容に対しては、エラーが発生した操作処理に対する画面の一つ前の操作処理に対する画面の画面情報を端末装置2へ送信してもよい。例えば、タイムアウトが発生したことにより操作処理が中断した場合には、タイムアウト発生の一つ前の画面情報が送信されることで、ユーザの新たな入力情報の入力を容易にする。ユーザは、画面情報に基づき、表示画面に対するエレメントの選択、画面の更新要求、操作処理の中断等の操作処理を行う。情報処理装置1は、操作処理内容を取得し、取得した操作処理内容に基づき以降の操作処理を再開又は終了する。
上述の処理において、情報処理装置1は、予め設定される操作処理の中断原因に応じて、中断時の対処方法を変化させてもよい。例えば、タイムアウト画面の表示により操作処理が中断された場合においては、情報処理装置1は端末装置2の入力を受け付けることなく、前画面に戻り操作処理を再開する。操作処理に対応するエレメントが不足しており操作処理が中断された場合においては、情報処理装置1は端末装置2からの入力情報を受け付ける。また、所定の操作処理手順に関しては、操作処理が中断された場合には、端末装置2からの入力情報を受け付けることなく操作処理を異常終了させてもよい。
本実施形態によれば、操作処理の中断時に入力情報を受け付けることで、操作処理手順に含まれる操作処理の自動実行を最後まで行うことができる。ユーザは、選択したい情報を自身で設定しつつ、選択の不要な操作に関しては自動で実行させることができるため、操作処理の自動実行を利用することで効率的に自動実行結果を取得することができる。また、端末装置2には操作処理に応じたブラウザ画面の画像データが表示され、ユーザは画像データに基づき入力情報の入力を行う。従って必要な段階で、操作処理に基づく画面に応じて入力情報を受け付けることができる。
(実施形態4)
実施形態4の情報処理システム400では、外部サーバ4が、情報処理装置1のAPIを呼び出して自動実行の操作処理を実現し、操作処理の実行途中において、情報処理装置1と端末装置2との間で入力情報の送受信が行われる。以下では、実施形態4について、実施形態1から実施形態3と異なる点を説明する。後述する構成を除く他の構成については実施形態1から実施形態3と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
図17及び図18は、実施形態4の情報処理システム400において実行される操作処理の手順の一例を示すフローチャートである。例えば外部サーバ4で予約の実行を受け付けると、各装置の間で以下の処理が実行される。実施形態1から実施形態3と共通する処理については同一のステップ番号を付してその詳細な説明を省略する。
外部サーバ4は、記録済みの所定の操作処理手順を選択し、操作処理手順IDに対応付けて、操作処理の自動実行要求及び第1入力情報を情報処理装置1に送信する(ステップS441)。
情報処理装置1は、操作処理手順IDに対応付けて、操作処理の自動実行要求及び第1入力情報を受信する(ステップS241)。情報処理装置1は、第1入力情報と第1操作処理とを対応付けて記憶する。情報処理装置1は、手順DB14を参照し、実行要求に係る操作処理手順を取得する(ステップS202)。操作処理手順には、例えば第1操作処理、第2操作処理及び第3操作処理を含む複数の操作処理が含まれる。第1操作処理及び第2操作処理の実行には、夫々第1入力情報及び第2入力情報が必要である。
情報処理装置1は、ブラウザを起動する。情報処理装置1は、操作処理手順により指定されたURLを読み込み、ウェブサーバ3へHTTPリクエストを送信する(ステップS203)。
ウェブサーバ3は、HTTPリクエストを受信し(ステップS301)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第1画面)を生成する。ウェブサーバ3は、生成した第1画面を情報処理装置1へ返信する(ステップS302)。
情報処理装置1は、第1画面を取得し(ステップS204)、第1操作処理を実行する(ステップS205)。第1操作処理は、第1入力情報の入力を制御する操作処理である。情報処理装置1は、第1操作処理に対応付けられる第1入力情報を読み出し、ブラウザの第1画面に含まれる所定のエレメントへの第1入力情報の入力を実行し、第1入力情報を含むHTTPリクエストをウェブサーバ3へ送信する。
ウェブサーバ3は、第1入力情報を含むHTTPリクエスト受信し(ステップS303)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第2画面)を生成する。ウェブサーバ3は、生成した第2画面を情報処理装置1へ返信する(ステップS304)。
情報処理装置1は、第2画面を取得する。(ステップS206)。情報処理装置1は、第2画面に基づき、第2操作処理を実行するための入力情報を受け付けるか否かを判定する(ステップS222)。第2操作処理に対応付けられた第2入力情報が取得済みであることにより、第2入力情報を受け付けると判定されない場合(ステップS222:NO)、情報処理装置1は、処理をステップS207に進める。
一方、第2入力情報が取得済みでないことにより、第2入力情報を受け付けると判定される場合(ステップS222:YES)、情報処理装置1は、第2入力情報を受け付けるための通知をメール機能等により端末装置2へ送信する(ステップS242)。情報処理装置1は、例えば、予め操作処理手順毎にマスタ登録されている送信先のアドレスへ通知を送信する。通知には、例えば第2入力情報を受け付けるためのウェブブラウザ画面のURLが含まれる。なお、アプリケーションプログラム等により第2入力情報を受け付ける場合においては、該アプリケーションプログラムを起動するためのリンク情報を含む通知が、端末装置2へ送信されてもよい。なお、通知の出力方法は、メール機能を用いたものに限定されない。例えば、情報処理装置1は、端末装置2のOS、ブラウザ又は他のアプリケーション等にプッシュ通知を行う通知用サーバに対してAPIで通知してもよい。情報処理装置1は、Websocket等により通信接続された端末装置2のブラウザに対して通知をプッシュ送信してもよい。
端末装置2は、通知を受信し(ステップS141)、通知に含まれるURLのリンクを開く(ステップS142)。情報処理装置1は、端末装置2からのリクエストに応じて、第2画面情報を生成する(ステップS243)。第2画面情報には、第2入力情報を受け付ける第2画面の画像データが含まれる。情報処理装置1は、生成した第2画面情報を端末装置2へ送信する(ステップS244)。
端末装置2は、第2画面情報を取得し(ステップS143)、ブラウザに表示する。ユーザは、第2画面を確認しながら第2入力情報を入力する。端末装置2は、第2入力情報の入力を受け付け、受け付けた第2入力情報を情報処理装置1へ送信する(ステップS144)。
情報処理装置1は、第2入力情報を受信し(ステップS245)、第2操作処理を実行する(ステップS207)。第2操作処理は、第2入力情報の入力を制御する操作処理である。情報処理装置1は、ブラウザの第2画面に含まれる所定のエレメントへの第2入力情報の入力を実行し、第2入力情報を含むHTTPリクエストをウェブサーバ3へ送信する。
ウェブサーバ3は、第2入力情報を含むHTTPリクエストを受信し(ステップS305)、ウェブコンテンツの要求を受け付ける。ウェブサーバ3は、要求されたウェブコンテンツ(第3画面)を生成する。第3画面には、一連の操作処理により得られた自動実行結果データを示す結果画面情報が含まれている。ウェブサーバ3は、生成した第3画面を情報処理装置1へ返信する(ステップS306)。
情報処理装置1は、第3画面を取得し(ステップS208)、第3操作処理を実行する(ステップS209)。第3操作処理は、自動実行結果データを取得する操作処理である。情報処理装置1は、取得した自動実行結果データを外部サーバ4へ送信する(ステップS246)。外部サーバ4は、自動実行結果データを取得し(ステップS442)、一連の処理を終了する。なお、情報処理システム300は、ステップS208の処理の後にステップS222を行うループ処理を行ってもよい。
本実施形態によれば、操作処理に応じて入力情報を受け付けることができるため、自動実行の開始時に全ての入力情報を取得できない操作処理手順についても自動実行が可能である。入力情報が必要な段階で、端末装置2へ通知が出力されるため、操作処理の実行要求が端末装置2から出力されない場合であっても、入力情報の受け付けを効率的に行うことができる。
本実施形態は、予め設定されたジョブに基づき、情報処理装置1が操作処理を自動実行する場合においても適用が可能である。例えば、ユーザ企業における日々の業務日報の入力処理の場合、情報処理装置1は、図示しない予約DBに登録されるジョブ内容に基づき、所定時刻に業務日報操作処理手順を自動実行する。予約DBには、例えば予約開始時刻、操作処理手順ID、第1入力情報が登録される。情報処理装置1は、各担当者毎のログイン処理等を自動実行する。情報処理装置1は、作業時間、作業内容等の第2入力情報を受け付ける画面が表示された段階で、各業務担当者へ通知を出力する。各業務担当者は、通知に含まれるURLを開き、作業内容、作業時間等の必要な入力項目のみを入力し、送信する。情報処理装置1は、入力情報を受け付け、以降の操作処理を完了させる。上記によれば、操作処理の自動実行において、自動実行による処理操作の開始と、インタラクティブな入力情報の受け付けとを組み合わせて行うことで、操作処理の実行漏れを防止することができる。
(実施形態5)
実施形態5では、入力情報として、認証画面に対する認証情報を受け付ける。ブラウザの操作においては、ログイン時等に認証画面が表示され、認証処理操作が必要な場合がある。認証処理操作には、例えば認証画面に表示される難読化処理を施した画像に対する文字入力、指定画像の選択、指定位置への所定エレメントの移動等が含まれる。また、認証処理操作には、例えばメール機能により端末装置2へ送信される認証情報の入力、複数のアプリケーションプログラムから得られる認証情報の入力等の多要素認証処理操作を必要とする場合もある。これらの認証処理操作においては、予め認証処理操作に必要な入力情報を決定することは困難である。情報処理装置1は、操作処理において認証処理操作が必要な段階で、端末装置2へ入力情報の入力を受け付けるための通知を送信し、端末装置2から認証処理操作に必要な入力情報を受け付ける。
図19は、実施形態5における端末装置2の表示部23に表示される画面例を示す図である。情報処理装置1は、所定の操作処理手順を自動実行する。操作処理手順に含まれる操作処理には、操作処理を実行するサイトへのログイン操作が含まれ、ログインID及びパスワードに加えて認証文字の入力が必要である。情報処理装置1は、認証操作処理が必要となった段階で、端末装置2に入力情報を受け付けるための認証画面情報260を送信する。図19に示す如く、認証画面情報260には、認証画面の画像データが含まれる。認証画面は、操作処理に係るログイン画面であり、ログインID及びパスワードの入力ボックス261、難読化された文字の表示欄262、及び表示された文字の入力を受け付ける入力ボックス263を含む。ユーザは、端末装置2に表示される認証画面情報260に基づき、ブラウザ上で認証情報(入力情報)を入力し情報処理装置1へ送信する。情報処理装置1は、入力情報を取得し、取得した入力情報を用いて以降の操作処理の自動実行を継続する。
本実施形態によれば、自動での入力が困難な認証処理等を含む処理操作に関しても、端末装置に送信される画面情報により入力情報を受け付けることができる。インタラクティブ処理を挟むことにより、予め設定することが困難な入力情報を含む操作処理であっても自動実行が可能となる。
情報処理装置1は、認証画面情報260として、認証処理操作に必要な画像のみを切り出した画像データを生成してもよい。例えば、図19に示した認証画面情報260において、ログインID及びパスワードを除いた、難読化された文字の表示欄262及び表示された文字の入力を受け付ける入力ボックス263のみの画像を切り出した画面情報を生成する。情報処理装置1は、生成した画面情報を、ユーザの端末装置2とは異なる、例えば認証処理操作のみを行う担当者の端末装置2へ送信する。該担当者は、端末装置2を用いて入力情報の入力を行う。上記によれば、ユーザの所有するパスワード等の情報を秘匿しつつ、所定の入力操作のみを第三者に行わせることができる。
上述の処理において、情報処理装置1は、図示しない認証サーバへ認証画面情報260の画像データを送信し、該認証サーバから送信される入力情報を取得してもよい。認証サーバは、例えば認証画面情報を入力した場合に該認証画面情報に対する入力情報を出力するよう学習された学習モデル備え、この学習モデルを用いて入力情報の入力操作を実行するサーバである。学習モデルは、深層学習を含む機械学習の学習モデルであり、例えばニューラルネットワークにより構成されている。学習モデルは認証画面情報を入力とし、該認証画面情報に対する入力情報を出力とする。学習モデルは、過去に大量に収集された、認証画面情報と該認証画面情報に対する入力情報とを対応付けた訓練データを用いて学習を行う。
上記の処理において、情報処理装置1は、複数の操作処理手順に係る認証画面情報260を一覧で表示させる画面情報を生成し、担当者の端末装置2へ送信してもよい。情報処理装置1は、複数の操作処理手順を並行して自動実行する。各操作処理手順に係る複数の入力情報が必要な場合に、情報処理装置1は、入力情報毎に通知を出力せず複数の入力情報をまとめて受け付けるための情報を含んだ通知を出力する。
図20は、端末装置2の表示部23に表示される画面例を示す図である。情報処理装置1から送信される通知に基づき端末装置2に表示される画面には、図20に示す如く、複数の認証画面情報が一覧で表示される。各認証画面情報には、各操作処理のための難読化された文字の表示欄262及び表示された文字の入力を受け付ける入力ボックス263が含まれる。認証処理操作の担当者は、夫々の認証画面情報に対して認証情報を入力し、情報処理装置1へ送信する。情報処理装置1は、複数の入力情報を取得し、各操作処理の自動実行を継続する。上記によれば、情報処理装置1は、通知に応じて端末装置2に表示される画面を介して複数の入力情報をまとめて取得することが可能なため、入力操作の受け付けが必要な場合であっても効率的に自動実行を進めることができる。
なお、上述のように開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。各実施例にて記載されている技術的特徴は互いに組み合わせることができ、本発明の範囲は、特許請求の範囲内での全ての変更及び特許請求の範囲と均等の範囲が含まれることが意図される。