(57)【特許請求の範囲】
【請求項１】
プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるためのコンピュータプログラムであって、
前記情報処理装置に、
前記サーバへコネクションの確立を要求し、
前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、
取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、
前記操作処理の実行結果を取得し、
取得した前記実行結果を前記サーバに出力する
処理を実行させるためのコンピュータプログラム。
【請求項２】
前記コネクションは、アプリケーション層にて確立される
請求項１に記載のコンピュータプログラム。
【請求項３】
前記コネクションは、Ｗｅｂｓｏｃｋｅｔによるものである
請求項１又は請求項２に記載のコンピュータプログラム。
【請求項４】
前記操作指示は、前記ブラウザの起動指示及び前記操作処理の実行指示を含む
請求項１から請求項３のいずれか１項に記載のコンピュータプログラム。
【請求項５】
前記サーバは、前記ブラウザの起動指示を送信する第１サーバと、前記操作処理の実行指示を送信する第２サーバとを含み、
前記コネクションは、第１コネクション及び第２コネクションを含み、
前記情報処理装置に、
前記第１サーバへ前記第１コネクションの確立を要求し、
前記第１コネクションを用いて、前記第１サーバからプッシュ送信される前記起動指示を取得し、
取得した前記起動指示に基づいて、前記ブラウザを起動し、
前記第２サーバへ前記第２コネクションの確立を要求し、
前記第２コネクションを用いて、前記第２サーバからプッシュ送信される前記実行指示を取得し、
取得した前記実行指示に基づいて、前記ブラウザの前記操作処理を実行する
処理を実行させるための請求項１から請求項４のいずれか１項に記載のコンピュータプログラム。
【請求項６】
前記情報処理装置に、
前記起動指示を取得した場合に、前記第２コネクションの確立を要求し、
前記実行指示に基づいて実行した前記操作処理が終了した場合に、前記第２コネクションを切断する
処理を実行させるための請求項５に記載のコンピュータプログラム。
【請求項７】
前記実行結果は、前記操作処理に応じて前記ブラウザ上で表示されるべき画面の画像データを含む
請求項１から請求項６のいずれか１項に記載のコンピュータプログラム。
【請求項８】
前記実行結果は、前記ブラウザ上で表示されるべき画面の変化に応じた画像データを含む
請求項１から請求項７のいずれか１項に記載のコンピュータプログラム。
【請求項９】
前記実行結果は、前記操作処理に係るエラー情報又はタイムアウト情報を含む
請求項１から請求項８のいずれか１項に記載のコンピュータプログラム。
【請求項１０】
プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理方法であって、
前記サーバへコネクションの確立を要求し、
前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、
取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、
前記操作処理の実行結果を取得し、
取得した前記実行結果を前記サーバに出力する
情報処理方法。
【請求項１１】
プライベートネットワークに接続され、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理装置であって、
前記サーバへコネクションの確立を要求する要求部と、
前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得する操作指示取得部と、
取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、
前記操作処理の実行結果を取得する実行結果取得部と、
取得した前記実行結果を前記サーバに出力する出力部と
を備える情報処理装置。
【請求項１２】
プライベートネットワークに接続されるウェブサーバにアクセス可能に接続される情報処理装置と、
グローバルネットワークに接続されており、前記情報処理装置からの要求に応答することにより確立されたコネクションを用いて、前記情報処理装置に前記ウェブサーバにアクセスするブラウザの操作処理に関する操作指示を出力するサーバとを備え、
前記情報処理装置は、
前記サーバへ前記コネクションの確立を要求する要求部と、
前記コネクションを用いて、前記サーバからプッシュ送信される前記操作指示を取得する操作指示取得部と、
取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、
前記操作処理の実行結果を取得する実行結果取得部と、
取得した前記実行結果を前記サーバに出力する出力部とを備える
情報処理システム。
【請求項１３】
前記プライベートネットワークに接続されるユーザ端末装置をさらに含み、
前記サーバは、前記ユーザ端末装置の要求を受け付けた場合に、前記情報処理装置に前記操作指示を送信する
請求項１２に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、コンピュータプログラム、情報処理方法、情報処理装置及び情報処理システムに関する。
【背景技術】
【０００２】
オフィス又は工場等における作業の効率化を目的としたクラウドサービスとして、特許文献１には、社内ネットワーク上のサーバに対する操作を伴う業務プロセスを自動化するための方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６５３２６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
プライベートネットワークに接続される情報処理装置と、グローバルネットワークに接続されるサーバとが通信することにより提供されるクラウドサービスにおいては、セキュリティを担保しつつ可用性の更なる向上が期待される。
【０００５】
本開示の目的は、プライベートネットワークに接続される情報処理装置に、ブラウザの操作を自動実行させることが可能なコンピュータプログラム等を提供することである。
【課題を解決するための手段】
【０００６】
本開示の一態様におけるコンピュータプログラムは、プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるためのコンピュータプログラムであって、前記情報処理装置に、前記サーバへコネクションの確立を要求し、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、前記操作処理の実行結果を取得し、取得した前記実行結果を前記サーバに出力する処理を実行させる。
【０００７】
本開示の一態様における情報処理方法は、プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理方法であって、前記サーバへコネクションの確立を要求し、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、前記操作処理の実行結果を取得し、取得した前記実行結果を前記サーバに出力する。
【０００８】
本開示の一態様における情報処理装置は、プライベートネットワークに接続され、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるための情報処理装置であって、前記サーバへコネクションの確立を要求する要求部と、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得する操作指示取得部と、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、前記操作処理の実行結果を取得する実行結果取得部と、取得した前記実行結果を前記サーバに出力する出力部とを備える。
【０００９】
本開示の一態様における情報処理システムは、プライベートネットワークに接続される情報処理装置及びウェブサーバと、グローバルネットワークに接続されており、前記情報処理装置からの要求に応答することにより確立されたコネクションを用いて、前記情報処理装置に前記ウェブサーバにアクセスするブラウザの操作処理に関する操作指示を出力するサーバとを備え、前記情報処理装置は、前記サーバへ前記コネクションの確立を要求する要求部と、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作指示を取得する操作指示取得部と、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行する実行部と、前記操作処理の実行結果を取得する実行結果取得部と、取得した前記実行結果を前記サーバに出力する出力部とを備える。
【発明の効果】
【００１０】
本開示によれば、プライベートネットワークに接続される情報処理装置にブラウザの操作を自動実行させることが可能なコンピュータプログラム等を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１における情報処理システムの概要を示す図である。
【図２】ブラウザ制御装置の内部構成を示すブロック図である。
【図３】情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【図４】情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【図５】情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【図６】情報処理システムにおいて実行される処理の手順の一例を示すフローチャートである。
【図７】実施形態２における情報処理システムの概要を示す図である。
【図８】情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【図９】情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【図１０】情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【図１１】情報処理システムにおいて実行される処理の手順の一例を示すフローチャートである。
【図１２】実施形態３における情報処理システムの概要を示す図である。
【発明を実施するための形態】
【００１２】
本発明をその実施の形態を示す図面を参照して具体的に説明する。
【００１３】
（実施形態１）
図１は、実施形態１における情報処理システム１００の概要を示す図である。情報処理システム１００は、サーバ１、ブラウザ制御装置２、ユーザ端末装置３及びウェブサーバ４を含む。ブラウザ制御装置２、ユーザ端末装置３及びウェブサーバ４はプライベートネットワークＮ１に接続される。サーバ１は、インターネット等のグローバルネットワークＮ２に接続され、中継装置５を介してプライベートネットワークＮ１上のブラウザ制御装置２及びユーザ端末装置３との間で通信接続し、情報を送受信する。
【００１４】
情報処理システム１００では、ユーザ端末装置３からの要求に応じて、サーバ１を介してブラウザ制御装置２がウェブサーバ４に対する各種の操作処理を自動で実行し、実行結果をユーザ端末装置３へ提供する自動実行サービスを実現する。
【００１５】
サーバ１は、例えば、サーバコンピュータである。実施形態１において、以下では、サーバ１は１台のサーバコンピュータとして説明するが、複数のサーバコンピュータで機能又は処理を分散させてもよいし、１台の大型コンピュータに仮想的に生成される複数のサーバコンピュータ（インスタンス）の内の１つであってもよい。サーバ１は、自動実行サービスにより実行される操作処理のためのシナリオを記憶するシナリオデータベース（図示せず）を備える。シナリオは、例えばＪＳＯＮ（Javascript(登録商標) Object Notation）形式のデータであり、ブラウザの操作処理の手順に関するデータが含まれる。
【００１６】
シナリオに基づき、自動実行される操作処理は、例えば、ウェブサーバ４へのアクセス、ウェブサーバ４上におけるデータの入力、エレメントの選択、ブラウザのリサイズ、ブラウザのスクロール、タブの切替等である。サーバ１は、シナリオデータベースを参照して、これらの操作処理の操作指示をブラウザ制御装置２へ送信する。
【００１７】
ブラウザ制御装置２は、自動実行サービスによる操作処理の自動実行を行う装置であり、例えばパーソナルコンピュータ、サーバコンピュータ等である。ブラウザ制御装置２は、ブラウザ２ａを備える。ブラウザ２ａは、ウェブサーバ４と通信を行い、ウェブサーバ４から取得した情報を解析し、解析結果をブラウザ画面に表示する。
【００１８】
ユーザ端末装置３は、例えばパーソナルコンピュータ、スマートフォン又はタブレット等である。ユーザ端末装置３は、自動実行サービスのユーザにより使用され、ブラウザ制御装置２により自動実行された操作処理に応じて得られる実行結果を取得する。
【００１９】
ウェブサーバ４は、プライベートネットワークＮ１に接続されるウェブサーバであり、例えばユーザ企業の販売管理システム、売上管理システム、就業管理システム等である。ウェブサーバ４は、ＨＴＴＰプロトコルを用いて、プライベートネットワークＮ１に接続されている各装置にウェブサービスを提供する。ウェブサーバ４からブラウザ制御装置２には、例えばＨＴＭＬ（Hyper Text Markup Language）形式、ＸＭＬ（Extensible Markup Language）形式等のデータが送信される。
【００２０】
中継装置５は、プライベートネットワークＮ１とグローバルネットワークＮ２との間の通信を中継する中継装置であり、例えばルータ、ゲートウェイ等である。中継装置５は、プロキシサーバ、ファイアウォール等の機能を含んでいてもよい。中継装置５は、プライベートネットワークＮ１でのみ通用するプライベートＩＰ（Internet Protocol ）アドレスと、グローバルネットワークＮ２で使用されるグローバルＩＰアドレスとを相互に変換するＮＡＴ（Network Address Translation ）又はＮＡＰＴ（Network Address Port Translation）機能を備える。中継装置５は、プライベートネットワークＮ１とグローバルネットワークＮ２との通信を中継する。中継装置５は、グローバルネットワークＮ２からの不正なアクセスから、プライベートネットワークＮ１を防御する。
【００２１】
図２は、ブラウザ制御装置２の内部構成を示すブロック図である。ブラウザ制御装置２は、制御部２０、記憶部２１及び通信部２２を備える。
【００２２】
通信部２２は、グローバルネットワークＮ２を介してサーバ１との間で、情報の送受信を実現するための有線又は無線の通信モジュールである。通信部２２は、プライベートネットワークＮ１を介してウェブサーバ４との間で、情報の送受信を実現するための有線又は無線の通信モジュールである。通信部２２は、制御部２０の指示に従って、サーバ１から、シナリオの操作指示を受信し、ウェブサーバ４にアクセスする。通信部２２は、制御部２０の指示に従って、ブラウザ画像データをサーバ１に送信する。
【００２３】
記憶部２１は、不揮発性メモリである。記憶部２１には、ブラウザ制御プログラム２１０が記憶されている。ブラウザ制御プログラム２１０は、シナリオ操作を自動で実行するためのアプリケーションプログラムである。
【００２４】
ブラウザ制御プログラム２１０は、ブラウザ制御プログラム２１０を読み取り可能に記録した非一時的な記憶媒体Ａ１を用いて、ブラウザ制御装置２に提供されてもよい。記憶媒体Ａ１は、例えば可搬型メモリである。可搬型メモリの例として、ＣＤ−ＲＯＭ、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤカード、マイクロＳＤカード又はコンパクトフラッシュ（登録商標）等が挙げられる。記憶媒体Ａ１が可搬型メモリである場合、制御部２０の処理素子は、図示しない読み取り装置を用いて記憶媒体Ａ１からブラウザ制御プログラム２１０を読み取り、記憶部２１に記憶してもよい。
【００２５】
ブラウザ制御プログラム２１０は、通信部２２を介した通信によって、ブラウザ制御装置２に提供されてもよい。この場合、制御部２０の処理素子は、通信部２２を通じてブラウザ制御プログラム２１０を取得し、記憶部２１に記憶してもよい。
【００２６】
制御部２０は、ＣＰＵ(Central Processing Unit)、ＭＰＵ(Micro-Processing Unit)又はＧＰＵ(Graphics Processing Unit)等の処理素子（コンピュータ）を有する。制御部２０の処理素子は、ブラウザ制御プログラム２１０を実行する。なお、制御部２０が有する処理素子の数は２以上であってもよい。この場合、複数の処理素子が協働で種々の処理を実行する。
【００２７】
上記のように構成される情報処理システム１００において、シナリオに基づく操作処理の自動実行が行われる。図３から図５は、情報処理システム１００において実行される操作処理の手順の一例を示すシーケンス図である。
【００２８】
ブラウザ制御装置２は、ブラウザ制御装置２が起動された場合、グローバルネットワークＮ２を介してサーバ１にコネクション６１の確立要求を送信する（ステップＳ１１１）。確立要求は、ＨＴＴＰプロトコルにより行われ、Ｗｅｂｓｏｃｋｅｔへのプロトコルのアップグレード、及びブラウザ制御装置２からの要求であること等が示される。サーバ１は、受信したコネクションの確立要求への応答を送信する（ステップＳ１１２）。これにより、サーバ１とブラウザ制御装置２との間でＷｅｂｓｏｃｋｅｔプロトコルによるコネクション６１が確立され、双方向通信、すなわちプッシュ型の相互通信が可能となる。以降のサーバ１とブラウザ制御装置２との通信は、コネクション６１を用いてＷｅｂｓｏｃｋｅｔプロトコルに準拠する電文を用いて行われる。ブラウザ制御装置２が起動している場合は常時サーバ１との情報の送受信を可能にするため、コネクション６１は、ブラウザ制御装置２の起動をトリガとして確立され、ブラウザ制御装置２のシステムが終了されるまではコネクションが継続される。
【００２９】
通常、グローバルネットワーク上の装置がプライベートネットワーク内の装置に接続する場合においては、いわゆるＮＡＴ（Network Address Translation ）越えを行う必要がある。本実施形態においても、サーバ１からブラウザ制御装置２へと通信を行う場合はＮＡＴ越えが必要とされる。本実施形態においては、Ｗｅｂｓｏｃｋｅｔにより、ＯＳＩ参照モデルのアプリケーション層にてコネクション６１を確立することで、ＮＡＴ越えを実現する。なお、Ｗｅｂｓｏｃｋｅｔプロトコルを用いる場合においては、ＳＳＬ（Secure Sockets Layer）／ＴＬＳ（Transport Layer Security）を使用して暗号化して通信するｗｓｓ（Websocket secure）のようなセキュアな通信プロトコルが好ましい。
【００３０】
コネクション６１の確立後、ユーザ端末装置３は、シナリオの自動実行を要求する。ユーザ端末装置３は、初めにサーバ１へブラウザの起動要求を送信する（ステップＳ１１３）。ユーザ端末装置３からは、例えば、起動要求と共にユーザ端末装置３の識別情報が送信される。サーバ１は、ブラウザの起動要求を受信する。サーバ１は、シナリオの自動実行を要求するユーザ端末装置３と、当該ユーザ端末装置３からの要求に応じて操作処理を実行させるべきブラウザ制御装置２とを対応付けたテーブルを予め記憶している。サーバ１は、起動指示を送信するブラウザ制御装置２をテーブルから読み出し、コネクション６１を介して、読み出したブラウザ制御装置２へとブラウザの起動指示をプッシュ送信する（ステップＳ１１４）。起動指示は、Ｗｅｂｓｏｃｋｅｔプロトコル内で定められた電文形式にて送信される。サーバ１とブラウザ制御装置２との間では、コネクション６１が確立されているため、ＮＡＴを超えたサーバ１からのブラウザ制御装置２への情報のプッシュ送信が可能である。
【００３１】
ブラウザ制御装置２は、起動指示を受信し、ブラウザ２ａを起動する（ステップＳ１１５）。一連のシナリオ処理操作は、ブラウザ制御装置２にて自動実行されるため、起動されるブラウザ２ａはヘッドレスブラウザであってよい。ブラウザ２ａの制御は、ウェブドライバ等を用いてよい。
【００３２】
次に、ユーザ端末装置３は、サーバ１へシナリオの実行要求を送信する（ステップＳ１１６）。サーバ１は、シナリオの実行要求を受信する。サーバ１は、既に確立されているコネクション６１を介してシナリオの実行指示をブラウザ制御装置２へプッシュ送信する（ステップＳ１１７）。実行指示は、Ｗｅｂｓｏｃｋｅｔプロトコル内で定められた電文形式にて送信される。
【００３３】
ブラウザ制御装置２は、実行指示を受信する。ブラウザ制御装置２は、受信した実行指示に基づき、ブラウザ２ａの操作処理を実行する。具体的には、ブラウザ制御装置２は、実行指示に基づき、ブラウザ２ａの操作処理を実行する（ステップＳ１１８）。ブラウザ２ａは、ウェブサーバ４へＨＴＴＰリクエストを送信し（ステップＳ１１９）、ＨＴＴＰレスポンスを取得する（ステップＳ１２０）。ウェブサーバ４から取得するレスポンスは、例えばＨＴＭＬ形式のデータである。ブラウザ制御装置２は、操作処理に対するブラウザ２ａのレスポンスを取得し（ステップＳ１２１）、取得したレスポンスをサーバ１へ送信する（ステップＳ１２２）。実行指示へのレスポンスには、例えば操作が正常に完了した場合の結果以外に、操作処理に対して異常終了した場合のエラー情報等が含まれる。ブラウザ制御装置２は、ウェブサーバ４への操作処理に応じたウェブページを含むブラウザ画面の画像データを要求する（ステップＳ１２３）。ブラウザ制御装置２は、ブラウザ画面の画像データを取得する（ステップＳ１２４）。画像データは、ブラウザ画面のスナップショットによるイメージデータである。これにより、操作処理の実行結果が、画像データで取得される。
【００３４】
シナリオに含まれる操作処理は、一般的なセレクタの仕様形態を拡張した独自セレクタを用いるものであってもよい。自動実行する操作処理の対象であるウェブサーバ４が提供するウェブサービスにおいて、当該ウェブサービスによる主たるブラウザ画面が、ｉｆｒａｍｅタグを含むものである場合、当該ｉｆｒａｍｅタグによって定義されるインラインのブラウザ画面内の入力項目等のエレメントへの操作処理も自動化する必要がある。この場合、主たるブラウザ画面及びインラインのブラウザ画面の双方の画面におけるセレクタを取得し、取得したセレクタ夫々を結合した独自セレクタを用いることにより、ｉｆｒａｍｅタグによって定義されるインラインのブラウザ画面内、すなわちインラインフレームのエレメントを直接指定し、操作処理を行うことができる。
【００３５】
さらに、ブラウザ制御装置２は、ブラウザ画面を定期的に取得し、ブラウザ画面の変化を検知する。ブラウザ制御装置２は、例えば３秒毎等の所定のタイミングで、ウェブページを含むブラウザ画面の画像データを要求し（ステップＳ１２５）、画像データを取得する（ステップＳ１２６）。ブラウザ制御装置２は、前回画面との差分に基づき、画面変化を検知する。（ステップＳ１２７）。ブラウザ制御装置２は、所定時間操作が行われないことによるタイムアウト情報等の、ウェブサーバ４からの処理により変化する画面遷移を取得する。これにより、自動変化の検知に対する実行結果が、画像データで取得される。
【００３６】
ブラウザ制御装置２は、取得した実行結果の画像データ、ＨＴＭＬソース等をサーバ１へ送信する（ステップＳ１２８）。ユーザ端末装置３は、実行結果の取得を希望する場合には、サーバ１へ実行結果の要求を送信する（ステップＳ１２９）。サーバ１は、送信要求への応答として、受信した実行結果の画像データをユーザ端末装置３へ送信する（ステップＳ１３１）。ユーザ端末装置３に送信される実行結果の画像データは、ＨＴＭＬ形式のデータの一部として送信される。ユーザ端末装置３は、自身の端末装置上でブラウザ操作を行うことなく、選択したシナリオに応じた実行結果の画面を画像データで取得することができる。なお、ユーザ端末装置３から実行結果の要求がされない場合においては、サーバ１は実行結果画面の画像データを送信しない構成であってよい。サーバ１は、実行結果をデータベースに記憶しておき、ユーザの要求を取得したタイミングで、データベースから実行結果を読み出し送信する構成であってよい。
【００３７】
ステップＳ１１７からステップＳ１３１のループ処理が行われ一連のシナリオの操作処理が終了した場合、情報処理システム１００の各装置は、一連の処理を終了する。
【００３８】
上記の処理において、ブラウザ制御装置２は、ブラウザ２ａの起動指示を受信することなくブラウザ２ａの起動を行ってもよい。例えば、ブラウザ制御装置２の起動時にブラウザ２ａが自動起動されてもよい。ブラウザ制御プログラム２１０とブラウザ２ａが一体化されることにより、ブラウザ制御プログラム２１０の起動と同時にブラウザ２ａが自動起動されてもよい。
【００３９】
また、シナリオ自動実行の操作指示は、ユーザ端末装置３からの要求を受けて行われるものに限定されない。サーバ１は、ユーザ端末装置３からの要求を受信することなく、予め設定されるタイミングにて、起動指示又は操作指示を自動でブラウザ制御装置２へと送信してよい。
【００４０】
図６は、情報処理システム１００において実行される処理の手順の一例を示すフローチャートである。図６の処理はブラウザ制御装置２の制御部２０により実行される。ブラウザ制御装置２は、ブラウザ制御プログラム２１０を実行することによって、ブラウザ操作処理を自動実行する。処理の実行タイミングは、例えばブラウザ制御装置２が起動されたタイミングである。
【００４１】
制御部２０は、通信部２２を介してサーバ１にコネクション６１の確立要求を送信する（ステップＳ１１）。制御部２０は、ブラウザ制御装置２からの要求であることを示す情報を含むコネクション６１の確立要求を送信する。制御部２０は、サーバ１から確立要求に対する応答を受信する（ステップＳ１３）。これにより、サーバ１とブラウザ制御装置２との間でコネクション６１が確立される。
【００４２】
制御部２０は、通信部２２を介してサーバ１から起動指示を取得する（ステップＳ１５）。起動指示は、Ｗｅｂｓｏｃｋｅｔプロトコル内で定められた電文形式を用いて、コネクション６１を介して任意のタイミングでサーバ１からプッシュ送信される。制御部２０は、取得した起動指示に基づき、ブラウザ２ａを起動する（ステップＳ１７）。ブラウザ２ａは、バックグラウンドにて起動されるヘッドレスブラウザであってよい。なお、制御部２０は、起動指示を取得することなくブラウザ２ａを起動する構成であってよい。例えば制御部２０は、ブラウザ制御プログラム２１０の起動等をトリガとして、ブラウザ２ａを起動してよい。
【００４３】
制御部２０は、通信部２２を介してサーバ１から実行指示を取得する（ステップＳ１９）。実行指示は、Ｗｅｂｓｏｃｋｅｔプロトコル内で定められた電文形式を用いて、コネクション６１を介して任意のタイミングでサーバ１からプッシュ送信される。制御部２０は、実行指示に基づき、通信部２２を介してウェブサーバ４へアクセスし、シナリオの操作処理を実行する（ステップＳ２１）。制御部２０は、操作処理に対するブラウザ２ａのレスポンスを取得する（ステップＳ２３）。レスポンスには、操作処理の正常完了、異常終了等が含まれる。
【００４４】
制御部２０は、サブプロセスを発生させ、ステップＳ１９の処理に並行してステップＳ２５の処理を行う。制御部２０は、例えばウェブドライバ等を介して、所定のタイミングで、ブラウザ２ａに表示されるウェブページのブラウザ画面データを取得し、取得した今回の画面データと前回の画面データとを比較する。制御部２０は、今回の画面データと前回の画面データとの差分を導出し、導出した差分に基づきブラウザ画面が変化したか否かを判定する（ステップＳ２５）。ブラウザ画面が変化したことを示す差分が取得されず、ブラウザ画面が変化したと判定されない場合には、制御部２０は、処理をステップＳ２５に戻しブラウザ画面データの取得を継続する。ブラウザ画面が変化したことを示す差分が取得され、ブラウザ画面が変化したと判定された場合には、制御部２０は、処理をステップＳ２７へ進める。
【００４５】
制御部２０は、ウェブサーバ４への操作処理の実行結果を取得する（ステップＳ２７）。具体的には、制御部２０はブラウザ画面の画像データを取得する。画像データには、実行指示に対するブラウザ画面の画像データ及び画面の自動変化の検知に対するブラウザ画面の画像データの少なくとも一方が含まれる。制御部２０は、通信部２２を介して取得した実行結果の画像データをサーバ１へ出力する（ステップＳ２９）。
【００４６】
制御部２０は、一連のシナリオの操作処理が終了したか否かを判断する（ステップＳ３１）。取得した全ての操作処理を実行しておらず、操作処理が終了したと判断されない場合（Ｓ３１：ＮＯ）、制御部２０は、処理をステップＳ１９に戻しループ処理を行い、一連のシナリオの操作処理に係る実行指示の取得を継続する。一方、取得した全ての操作処理を実行し、操作処理が終了したと判断される場合（Ｓ３１：ＹＥＳ）、制御部２０は一連の処理を終了する。
【００４７】
本実施形態では、実行結果は画像データで出力される例を説明するが、実行結果は画像データのみに限定されるものではない。実行結果は、画像データ以外にパスが出力されてもよく、ＨＴＭＬ形式のデータが出力されてもよい。制御部２０は、操作ログを取得し、取得した操作ログをサーバ１へ出力してもよい。また、実行指示の取得及び画像データの出力は、操作処理毎に行われる必要はなく、所定数の操作処理がまとめて送受信されてよい。複数の画像データがまとめて送信される場合においては、制御部２０は、画像データを識別するための画像ＩＤ、当該画像ＩＤに対応付けられる操作指示の情報等のメタデータを画像データと共に出力してよい。
【００４８】
シナリオの操作処理に対するエラー情報を取得した場合、制御部２０は、ステップＳ２９において、画像情報と共にエラー情報に関する情報を出力してもよい。制御部２０は、例えば、ブラウザ２ａからエラー箇所又はエラー内容を取得して画像情報と共にサーバ１へ出力する。制御部２０は、例えば、ブラウザ２ａからエラーの発生原因を取得し、エラーがウェブサーバ４、シナリオ、本ブラウザ制御プログラム２１０及びブラウザ制御装置２等のいずれを原因として発生しているかを識別する情報を画像情報と共にサーバ１へ出力する。さらに制御部２０は、サーバ１又はユーザ端末装置３へ、エラーの発生を示す通知情報を出力してもよい。
【００４９】
本実施形態において、ブラウザ制御装置２、ユーザ端末装置３及びウェブサーバ４はそれぞれ、複数台設けられてよい。この場合において、各ブラウザ制御装置２と各ユーザ端末装置３とは、異なるプライベートネットワークに接続されていてもよい。
【００５０】
ブラウザ制御装置２が複数台設けられる場合においては、サーバ１は、操作指示を出力するブラウザ制御装置２を特定し、特定したブラウザ制御装置２へと操作指示を出力する。操作処理の処理対象として、特定のブラウザ制御装置２が指定されている場合には、サーバ１は、特定されるブラウザ制御装置２へ操作指示を出力する。操作処理の処理対象が指定されていない場合には、サーバ１は、各ブラウザ制御装置２の負荷状況に基づき、シナリオを実行させるブラウザ制御装置２を特定するとよい。サーバ１は、コネクション確立時に取得した各ブラウザ制御装置２を識別するための情報と、各ブラウザ制御装置２へのシナリオの実行指示状況とに基づき、新たな操作処理を実行させるブラウザ制御装置２を選択し、操作指示を出力する。所定のブラウザ制御装置２へ操作指示を出力した場合に、エラー等により正常に受信されなかった場合には、サーバ１は、代替するブラウザ制御装置２を選択して操作指示を出力する。サーバ１は、シナリオの操作処理を割り振り、各ブラウザ制御装置２の負荷を分散させるロードバランサーとして機能する。
【００５１】
本実施形態によれば、グローバルネットワークＮ２上のサーバ１とプライベートネットワークＮ１内のブラウザ制御装置２との間にコネクション６１が確立されることにより、双方向通信が可能となる。従って、任意のタイミングでサーバ１からブラウザ制御装置２へと、シナリオの操作処理に関する各種の情報をプッシュ送信することができる。
【００５２】
コネクション６１は、アプリケーション層にて確立される。ＯＳＩ参照モデルの上位層でのコネクションが確立されるため、通信時のセキュリティの向上を図ることが可能となる。コネクション６１を用いたサーバ１からの操作処理に関する操作指示は、Ｗｅｂｓｏｃｋｅｔプロトコルに準拠した電文のみが送信可能である。従って、グローバルネットワークＮ２からのアクセスに関して、送信される情報の範囲が限定されるため、脆弱性の発生リスクを減少させることができる。また、サービスの提供を受けるユーザ側のネットワーク環境のセキュリティ設定条件により、グローバルネットワークＮ２上の装置からプライベートネットワークＮ１へのアクセスにおいて、ＨＴＴＰプロトコル以外のプロトコルは不正アクセスとして遮断される場合がある。本実施形態では、ＨＴＴＰプロトコルの拡張規格として規定されるＷｅｂｓｏｃｋｅｔプロトコルを用いるため、コネクション６１の確立が容易に実現される。
【００５３】
本実施形態によれば、ブラウザ制御装置２上のブラウザ２ａを用いてウェブサーバ４へのシナリオ操作処理が実行され、サーバ１及びユーザ端末装置３へは、実行結果の画像データが送信される。ブラウザ制御装置２及びウェブサーバ４は、プライベートネットワークＮ１により接続されるため、セキュリティを確保した情報の送受信が可能である。また、ブラウザ制御装置２のリソースにてブラウザ機能を使用することで、サーバ１の負荷を軽減することが可能となる。
【００５４】
上記では、ブラウザ制御装置２上のブラウザ機能を使用して一連の操作処理が実行される例を説明したが、本実施形態はこれに限定されるものではない。例えば、ブラウザ制御装置２とプライベートネットワークＮ１により通信接続された他の情報処理装置との間で情報の送受信を行い、他の情報処理装置のブラウザからウェブサーバ４へアクセスが実行されてもよい。本実施形態は、シナリオを自動実行する場合のみならず、シナリオデータを記録する場合においても適用が可能である。
【００５５】
（実施形態２）
実施形態２では、実施形態１のサーバ１が行う処理を、第１サーバ及び第２サーバが分担して行う点で実施形態１と異なる。図７は、実施形態２における情報処理システム２００の概要を示す図である。実施形態２における情報処理システム２００は、サーバ１に代替して第１サーバ１１及び第２サーバ１２が含まれる点、情報処理システム２００で実行される処理の詳細が異なる点以外は実施形態１における構成と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
【００５６】
第１サーバ１１及び第２サーバ１２は夫々、インターネット等のグローバルネットワークＮ２に接続され、中継装置５を介してプライベートネットワークＮ１との間で通信接続し、情報を送受信することが可能である。また、第１サーバ１１及び第２サーバ１２は、グローバルネットワークＮ２を介して通信接続し、情報を送受信することが可能である。第１サーバ１１及び第２サーバ１２は夫々、例えばサーバコンピュータである。
【００５７】
実施形態２では、第１サーバ１１からブラウザ２ａの起動指示が出力され、第２サーバ１２から操作処理の実行指示が出力される。図８から図１０は、情報処理システム２００において実行される操作処理の手順の一例を示すシーケンス図である。
【００５８】
ブラウザ制御装置２は、ブラウザ制御装置２が起動された場合、グローバルネットワークＮ２を介して第１サーバ１１にコネクション６１の確立要求を送信する（ステップＳ２１１）。確立要求は、ＨＴＴＰプロトコルにより行われ、Ｗｅｂｓｏｃｋｅｔへのプロトコルのアップグレード、及びブラウザ制御装置２からの要求であること等が示される。第１サーバ１１は、コネクションの確立要求への応答を送信する（ステップＳ２１２）。これにより、第１サーバ１１とブラウザ制御装置２との間でＷｅｂｓｏｃｋｅｔプロトコルによる第１コネクション６２が確立され、双方向通信が可能となる。第１コネクション６２は、ブラウザ制御装置２の起動をトリガとして確立される。
【００５９】
ユーザ端末装置３は、シナリオの自動実行を要求する。ユーザ端末装置３は、初めに第２サーバ１２へブラウザ２ａの起動要求を送信する（ステップＳ２１３）。ユーザ端末装置３からは、例えば起動要求と共にユーザ端末装置３の識別情報が送信される。第２サーバ１２は、ブラウザ２ａの起動要求を受信した場合、起動指示を第１サーバ１１へ送信する（ステップＳ２１４）。第１サーバ１１は、シナリオの自動実行を要求するユーザ端末装置３と、当該ユーザ端末装置３からの要求に応じて操作処理を実行させるべきブラウザ制御装置２とを対応付けたテーブルを予め記憶している。第１サーバ１１は、起動指示を送信するブラウザ制御装置２をテーブルから読み出し、第１コネクション６２を介して、読み出したブラウザ制御装置２へとブラウザ２ａの起動指示をプッシュ送信する（ステップＳ２１５）。第１サーバ１１とブラウザ制御装置２との間では、第１コネクション６２が確立されているため、ＮＡＴを超えた第１サーバ１１からのブラウザ２ａ制御装置への情報のプッシュ送信が可能である。
【００６０】
ブラウザ制御装置２は、起動指示を受信し、ブラウザ２ａを起動する（ステップＳ２１６）。一連のシナリオ処理操作は、ブラウザ制御装置２にて直接操作を受け付けることなく自動で実行されるため、起動されるブラウザ２ａはヘッドレスブラウザ２ａであってよい。
【００６１】
さらにブラウザ制御装置２は、起動指示を受信した場合に、グローバルネットワークＮ２を介して第２サーバ１２に第２コネクション６３の確立要求を送信する（ステップＳ２１７）。確立要求は、ＨＴＴＰプロトコルにより行われ、Ｗｅｂｓｏｃｋｅｔへのプロトコルのアップグレード、及びブラウザ制御装置２からの要求であること等が示される。第２サーバ１２は、受信した第２コネクション６３の確立要求への応答を送信する（ステップＳ２１８）。これにより、第２サーバ１２とブラウザ制御装置２との間でＷｅｂｓｏｃｋｅｔプロトコルによる第２コネクション６３が確立され、双方向通信が可能となる。第２コネクション６３は、ブラウザ制御装置２における起動指示の取得をトリガとして確立される。
【００６２】
ユーザ端末装置３は、第２サーバ１２へシナリオの実行要求を送信する（ステップＳ２１９）。第２サーバ１２は、シナリオの実行要求を受信する。第２サーバ１２は、既に確立されている第２コネクション６３を介して、シナリオの実行指示をブラウザ制御装置２へプッシュ送信する（ステップＳ２２１）。
【００６３】
ブラウザ制御装置２は、実行指示を受信する。ブラウザ制御装置２は、実行指示のメッセージに基づき、ブラウザ２ａの操作処理を実行する（ステップＳ２２２）。ブラウザ２ａは、ウェブサーバ４へＨＴＴＰリクエストを送信し（ステップＳ２２３）、ＨＴＴＰレスポンスを取得する（ステップＳ２２４）。ブラウザ制御装置２は、操作処理に対するブラウザ２ａのレスポンスを取得し（ステップＳ２２５）、取得したレスポンスを第２サーバ１２へ送信する（ステップＳ２２６）。ブラウザ制御装置２は、ウェブサーバ４への操作処理に応じたウェブページを含むブラウザ画面の画像データを要求する（ステップＳ２２７）。ブラウザ制御装置２は、ブラウザ画面の画像データである実行結果を取得する（ステップＳ２２８）。
【００６４】
さらに、ブラウザ制御装置２は、ブラウザ画面の変化を検知する。ブラウザ制御装置２は、所定のタイミングで、ウェブページを含むブラウザ画面の画像データを要求し（ステップＳ２２９）、画像データを取得する（ステップＳ２３０）。ブラウザ制御装置２は、前回画面との差分に基づき、画面変化を検知する（ステップＳ２３１）。
【００６５】
ブラウザ制御装置２は、取得した実行結果の画像データ、ＨＴＭＬソース等を第２サーバ１２へ送信する（ステップＳ２３２）。ユーザ端末装置３は、実行結果の取得を希望する場合には、第２サーバ１２へ実行結果の要求を送信する（ステップＳ２３３）。第２サーバ１２は、送信要求への応答として、受信した実行結果の画面の画像データをユーザ端末装置３へ送信する（ステップＳ２３４）。ユーザ端末装置３は、選択したシナリオに応じた実行結果を画像データで取得することができる。
【００６６】
ステップＳ２２１からステップＳ２３４のループ処理が行われ、一連のシナリオの処理操作が実行される。一連のシナリオの操作処理が終了した場合、ブラウザ制御装置２は第２サーバ１２との通信を切断する（ステップＳ２３５）。これにより第２コネクション６３が切断される。
【００６７】
図１１は、情報処理システム２００において実行される処理の手順の一例を示すフローチャートである。図１１の処理はブラウザ制御装置２の制御部２０により実行される。ブラウザ制御装置２は、ブラウザ制御プログラム２１０を実行することによって、ブラウザ２ａ操作処理を自動実行する。処理の実行タイミングは、例えばブラウザ制御装置２が起動されたタイミングである。
【００６８】
制御部２０は、通信部２２を介して第１サーバ１１に第１コネクション６２の確立要求を送信する（ステップＳ４１）。制御部２０は、ブラウザ制御装置２からの要求であることを示す情報を含む第１コネクション６２の確立要求を送信する。制御部２０は、第１サーバ１１から確立要求に対する応答を受信する（ステップＳ４３）。これにより、第１サーバ１１とブラウザ制御装置２との間で第１コネクション６２が確立される。
【００６９】
制御部２０は、通信部２２を介して第１サーバ１１から起動指示を取得する（ステップＳ４５）。起動指示は、Ｗｅｂｓｏｃｋｅｔプロトコル内で定められた電文形式を用いて、第１コネクション６２を介して任意のタイミングで第１サーバ１１からプッシュ送信される。制御部２０は、取得した起動指示に基づき、ブラウザ２ａを起動する（ステップＳ４７）。ブラウザ２ａは、バックグラウンドにて起動されるヘッドレスブラウザ２ａであってよい。
【００７０】
制御部２０は、起動指示の取得をトリガとして、通信部２２を介して第２サーバ１２に第２コネクション６３の確立要求を送信する（ステップＳ４９）。制御部２０は、第２サーバ１２から確立要求に対する応答を受信する（ステップＳ５１）。これにより、第２サーバ１２とブラウザ制御装置２との間で第２コネクション６３が確立される。
【００７１】
制御部２０は、通信部２２を介して第２サーバ１２から実行指示を取得する（ステップＳ５３）。実行指示は、Ｗｅｂｓｏｃｋｅｔプロトコル内で定められた電文形式を用いて、第２コネクション６３を介して任意のタイミングで第２サーバ１２からプッシュ送信される。制御部２０は、実行指示に基づき、通信部２２を介してウェブサーバ４へアクセスし、シナリオの操作処理を実行し（ステップＳ５５）、レスポンスを取得する（ステップＳ５７）。
【００７２】
制御部２０は、サブプロセスを発生させ、ステップＳ５３の処理に並行してステップＳ５９の処理を行う。制御部２０は、所定のタイミングで、ブラウザ２ａに表示されるウェブページのブラウザ画面データを取得し、取得した今回の画面データと前回の画面データとを比較する。制御部２０は、今回の画面データと前回の画面データとの差分を導出し、導出した差分に基づきブラウザ画面が変化したか否かを判定する（ステップＳ５９）。ブラウザ画面が変化したことを示す差分が取得されず、ブラウザ画面が変化したと判定されない場合には（ステップＳ５９：ＮＯ）、制御部２０は、処理をステップＳ５９に戻しブラウザ画面データの取得を継続する。ブラウザ画面が変化したことを示す差分が取得され、ブラウザ画面が変化したと判定された場合には（ステップＳ５９：ＹＥＳ）、制御部２０は、処理をステップＳ６１へ進める。
【００７３】
制御部２０は、ウェブサーバ４への操作処理の実行結果を取得する（ステップＳ６１）。具体的には、制御部２０はブラウザ画面の画像データを取得する。制御部２０は、通信部２２を介して取得した実行結果の画像データを第２サーバ１２へ出力する（ステップＳ６３）。
【００７４】
制御部２０は、一連のシナリオの操作処理が終了したか否かを判断する（ステップＳ６５）。取得した全ての操作処理を実行しておらず、操作処理が終了したと判断されない場合（Ｓ６５：ＮＯ）、制御部２０は、処理をステップ５３に戻しループ処理を行い、一連のシナリオの操作処理に係る実行指示の取得を継続する。一方、取得した全ての操作処理を実行し、操作処理が終了したと判断される場合（Ｓ６５：ＹＥＳ）、制御部２０は、第２サーバ１２との通信を切断し（ステップＳ６７）、一連の処理を終了する。
【００７５】
本実施形態では、第１サーバ１１及び第２サーバ１２を用いてシナリオの操作処理に関する指示を分担して行うため、各サーバの負担をさらに軽減することが可能となる。
【００７６】
（実施形態３）
実施形態３では、複数台のサーバにて、操作処理の自動実行からシナリオの記録までの一連の自動実行サービスを提供する例を説明する。図１２は、実施形態３における情報処理システム３００の概要を示す図である。実施形態１及び実施形態２と共通する構成については同一の符号を付してその詳細な説明を省略する。
【００７７】
情報処理システム３００は、第１サーバ１３、第２サーバ１４、第３サーバ１５、第４サーバ１６、シナリオデータベース１７、ブラウザ制御装置２、ユーザ端末装置３、ウェブサーバ４及び中継装置５を含む。なお、図１２では、中継装置５及びグローバルネットワークＮ２は図示しない。第１サーバ１３、第２サーバ１４、第３サーバ１５及び第４サーバ１６は夫々、グローバルネットワークＮ２と接続され、中継装置５を介してプライベートネットワークＮ１との間で通信接続し、情報を送受信することが可能である。第１サーバ１３、第２サーバ１４、第３サーバ１５及び第４サーバ１６は夫々、例えばサーバコンピュータである。実施形態３においては、実施形態２における第２サーバ１２の処理を第２サーバ１４、第３サーバ１５及び第４サーバ１６で行う。
【００７８】
初めにブラウザ制御装置２は、第１サーバ１３へ第１コネクション６２の確立要求を送信し、ブラウザ制御装置２と第１サーバ１３との間で第１コネクション６２を確立する。
【００７９】
ユーザ端末装置３は、第２サーバ１４へブラウザ２ａの起動要求を送信する。第２サーバ１４は、第１サーバ１３へブラウザ２ａの起動要求を送信する。第１サーバ１３は、受信した起動要求に基づき、第１コネクション６２を用いてブラウザ制御装置２へブラウザ２ａの起動指示をプッシュ送信する。
【００８０】
ブラウザ制御装置２は、起動指示の取得をトリガとして、第２サーバ１４へ第２コネクション６３の確立要求を送信し、ブラウザ制御装置２と第２サーバ１４との間で第２コネクション６３を確立する。
【００８１】
ユーザ端末装置３は、第２サーバ１４へシナリオの実行要求を送信する。第２サーバ１４は、受信した実行要求に基づき、第２コネクション６３を用いてブラウザ制御装置２へシナリオの実行指示をプッシュ送信する。
【００８２】
ブラウザ制御装置２は、ブラウザ２ａの操作を実行する。具体的にはブラウザ制御装置２は、ウェブサーバ４へアクセスし、アクセス結果を取得する。ブラウザ制御装置２は、操作処理の実行結果の画像データを取得し、取得した画像データを第２サーバ１４へ送信する。第２サーバ１４は、取得した画像データをユーザ端末装置３へ送信する。
【００８３】
ユーザ端末装置３は、実行結果画面の画像データを取得する。さらにユーザ端末装置３は、実行した操作処理の手順データであるシナリオを蓄積する。ユーザ端末装置３は、蓄積した一連のシナリオの保存要求を第４サーバ１６へ送信する。第４サーバ１６は、受信したシナリオをシナリオデータベース１７に記憶する。これによりシナリオが記録される。
【００８４】
記録したシナリオに基づき、ユーザ端末装置３からの要求によらず所定のタイミングで操作処理を実行する場合には、第３サーバ１５は、シナリオデータベース１７を参照しシナリオを取得する。第３サーバ１５は、読み出したシナリオの実行要求を第２サーバ１４へ送信する。第２サーバ１４は、ブラウザ制御装置２へシナリオの実行指示を送信し、上記の操作処理が々実行される。
【００８５】
（実施形態４）
上述の各実施形態における通信方法は、Ｗｅｂｓｏｃｋｅｔによるものに限定されない。コネクション６１、第１コネクション６２及び第２コネクション６３は、Ｗｅｂｓｏｃｋｅｔによるものに代替して、例えばポーリング、ロングポーリング等の、他の通信方法を用いてもよい。例えば、ポーリングを用いることにより、ブラウザ制御装置２は、所定間隔にて定期的又は定常的にサーバ１（第１サーバ１１及び第２サーバ１２）に問合せを行い、当該問合せに対しサーバ１からプッシュ送信される返答を取得するものであってもよい。当該所定間隔の間に、サーバ１における操作指示の更新があった場合、ブラウザ制御装置２は、サーバ１からの返答に基づき操作指示の更新に関する情報を取得することができる。ポーリングを用いることにより、中継装置５に対するフォワード設定等を不要とし、セキュリティを担保しつつサーバ１とブラウザ制御装置２との通信を行うことができる。なおロングポーリングにより通信を行う場合においては、定期的にコネクションが切断されるため、ブラウザ制御装置２を一位に識別できるようにセッション管理等を行うことが好ましい。
【００８６】
なお、上述のように開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。各実施例にて記載されている技術的特徴は互いに組み合わせることができ、本発明の範囲は、特許請求の範囲内での全ての変更及び特許請求の範囲と均等の範囲が含まれることが意図される。
【符号の説明】
【００８７】
１  サーバ
１１，１３  第１サーバ
１２，１４  第２サーバ
１５  第３サーバ
１６  第４サーバ
２  ブラウザ制御装置
３  ユーザ端末装置
４  ウェブサーバ
５  中継装置
６１  コネクション
６２  第１コネクション
６３  第２コネクション
２０  制御部
２１  記憶部
２２  通信部
２ａ  ブラウザ
２１０  ブラウザ制御プログラム
【要約】
【課題】プライベートネットワークに接続される情報処理装置にブラウザの操作を自動実行させることが可能なコンピュータプログラム等を提供する。
【解決手段】コンピュータプログラムは、プライベートネットワークに接続される情報処理装置に、グローバルネットワークに接続されるサーバからの指示に基づいて、前記プライベートネットワーク上のウェブサーバにアクセスするブラウザの操作処理を自動実行させるためのコンピュータプログラムであって、前記情報処理装置に、前記サーバへコネクションの確立を要求し、前記コネクションを用いて、前記サーバからプッシュ送信される前記操作処理に関する操作指示を取得し、取得した前記操作指示に基づいて、前記ブラウザの前記操作処理を実行し、前記操作処理の実行結果を取得し、取得した前記実行結果を前記サーバに出力する処理を実行させる。
【選択図】図１【図１】
0006651178.tif 000002
【図２】
0006651178.tif 000003
【図３】
0006651178.tif 000004
【図４】
0006651178.tif 000005
【図５】
0006651178.tif 000006
【図６】
0006651178.tif 000007
【図７】
0006651178.tif 000008
【図８】
0006651178.tif 000009
【図９】
0006651178.tif 000010
【図１０】
0006651178.tif 000011
【図１１】
0006651178.tif 000012
【図１２】
0006651178.tif 000013