(57)【要約】【課題】クロスドメイン通信が不可能なブラウザであっても同一ページでの非同期のファイル登録を可能にする文書管理システムを提供する。【解決手段】文書管理サーバは、情報処理装置から受信したアップロード開始リクエストにクロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれていると判定した場合、アップロード先を示す第１のＵＲＬとアップロード成功時に遷移する第２のＵＲＬとを含むレスポンスを、前記情報処理装置に送信する。情報処理装置は、前記レスポンスを受けて、ブラウザ内にフレームを生成し、第１のＵＲＬに対して、第２のＵＲＬを含むアップロードリクエストを送信して、ファイルをアップロードする。そして、フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したかを監視し、遷移したと判定した場合、ファイルアップロード完了通知を前記文書管理サーバへ送信する。【選択図】図５
2017073084.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と文書管理サーバとがネットワークを介して接続された文書管理システムであって、
前記情報処理装置は、
クロスドメイン通信機能を有していないブラウザである旨のパラメータを含むアップロード開始リクエストを、前記文書管理サーバに送信する送信手段と、
前記文書管理サーバから、アップロード先を示す第１のＵＲＬと、アップロード成功時に遷移する第２のＵＲＬとを含むレスポンスを受けて、前記ブラウザ内にフレームを生成する生成手段と、
アップロード先を示す前記第１のＵＲＬに対して、前記第２のＵＲＬを含むアップロードリクエストを送信し、前記ファイルをアップロードするアップロード手段と、
前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したか判定する第１の判定手段と、
前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したと判定した場合、ファイルアップロード完了通知を前記文書管理サーバへ送信する通知手段と、
を備え、
前記文書管理サーバは、
前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれているか判定する第２の判定手段と、
前記第２の判定手段で前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれていると判定した場合、前記第１のアドレスと前記第２のアドレスとを含む前記レスポンスを前記情報処理装置に送信する応答手段と、
を備える
ことを特徴とする文書管理システム。
【請求項２】
前記第２の判定手段で前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれていないと判定した場合、前記応答手段は、前記第１のＵＲＬをレスポンスとして前記情報処理装置に送信する
ことを特徴とする請求項１に記載の文書管理システム。
【請求項３】
前記第１の判定手段により前記フレームに表示中のＵＲＬが前記第２のＵＲＬと異なるＵＲＬに遷移したと判定された場合、エラーを表示する表示手段を更に有する
ことを特徴とする請求項１または２に記載の文書管理システム。
【請求項４】
ネットワークを介して接続された情報処理装置からファイルのアップロード開始リクエストを受信する受信手段と、
前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれているか判定する判定手段と、
前記判定手段で前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれていると判定した場合、前記ファイルのアップロード先を示す第１のＵＲＬと、アップロード成功時に遷移する第２のＵＲＬとを含むレスポンスを、前記情報処理装置に送信する応答手段と、
を備える
ことを特徴とする文書管理サーバ。
【請求項５】
前記情報処理装置では、前記応答手段より送信された前記レスポンスを受けて前記ブラウザ内に生成したフレームを介して前記第１のＵＲＬに対して前記第２のＵＲＬを含むアップロードリクエストを送信して、前記ファイルをアップロードし、前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したと判定した場合に、ファイルアップロード完了通知を前記文書管理サーバに送信する
ことを特徴とする請求項４に記載の文書管理サーバ。
【請求項６】
前記判定手段で前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれていないと判定した場合、前記応答手段は、前記第１のＵＲＬをレスポンスとして前記情報処理装置に送信する
ことを特徴とする請求項４に記載の文書管理サーバ。
【請求項７】
ネットワークを介して文書管理サーバと接続された情報処理装置であって、
前記情報処理装置のブラウザがクロスドメイン通信機能を有しているブラウザであるか否かを判定する第１の判定手段と、
前記第１の判定手段で前記クロスドメイン通信機能を有していないブラウザであると判定した場合、クロスドメイン通信機能を有していないブラウザである旨のパラメータを含むアップロード開始リクエストを、前記文書管理サーバに送信する送信手段と、
前記文書管理サーバから、アップロード先を示す第１のＵＲＬと、アップロード成功時に遷移する第２のＵＲＬとを含むレスポンスを受けて、前記ブラウザ内にフレームを生成する生成手段と、
アップロード先を示す前記第１のＵＲＬに対して、前記第２のＵＲＬを含むアップロードリクエストを送信し、前記ファイルをアップロードするアップロード手段と、
前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したか判定する第２の判定手段と、
前記第２の判定手段で前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したと判定した場合、ファイルアップロード完了通知を前記文書管理サーバへ送信する通知手段と、
を備える
ことを特徴とする情報処理装置。
【請求項８】
前記第２の判定手段により前記フレームに表示中のＵＲＬが前記第２のＵＲＬと異なるＵＲＬに遷移したと判定された場合、エラーを表示する表示手段を更に有する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
ネットワークを介して接続された情報処理装置と文書管理サーバとを含む文書管理システムにおける文書管理方法であって、
前記情報処理装置が、クロスドメイン通信機能を有していないブラウザである旨のパラメータを含むアップロード開始リクエストを前記文書管理サーバに送信する送信工程と、
前記文書管理サーバが、前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれているか判定する第１の判定工程と、
前記文書管理サーバが、前記第１の判定工程で前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれていると判定した場合、アップロード先を示す第１のＵＲＬとアップロード成功時に遷移する第２のＵＲＬとを含むレスポンスを、前記情報処理装置に送信する応答工程と、
前記情報処理装置が、前記文書管理サーバから前記第１のＵＲＬと前記第２のＵＲＬとを含むレスポンスを受けて、前記ブラウザ内にフレームを生成する生成工程と、
前記情報処理装置が、前記第１のＵＲＬに対して、前記第２のＵＲＬを含むアップロードリクエストを送信し、ファイルをアップロードするアップロード工程と、
前記情報処理装置が、前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したかを判定する第２の判定工程と、
前記情報処理装置が、前記第２の判定工程で前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したと判定した場合、ファイルアップロード完了通知を前記文書管理サーバへ送信する通知工程と、
を有する
ことを特徴とする文書管理方法。
【請求項１０】
請求項４乃至６のいずれか１項に記載の文書管理サーバの各手段としてコンピュータを機能させるためのプログラム。
【請求項１１】
請求項７または８に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書管理システム、文書管理サーバ、情報処理装置、文書管理方法及びプログラムに関し、特にクラウド上でファイルを管理するシステムにおいて、ファイルをアップロードして登録・更新する文書管理システムに関する。
【背景技術】
【０００２】
近年、クラウドサーバ上で業務データの管理や各種処理を行うシステムが普及し始めている。このシステムでは、まず、ユーザがクライアントコンピュータのブラウザからインターネットを介してクラウドサーバ（文書管理サーバ）のＷｅｂページにアクセスする。そして、クライアントコンピュータに保存されているファイルを選択してＷｅｂページからファイルのアップロードリクエストを行う。次に、クラウドサーバは、アップロードリクエストを受け付けると、ファイルのアップロード先を示すＵＲＬを生成し、クライアントコンピュータに返却する。そして、クライアントコンピュータが返却されたＵＲＬに対してファイルをアップロードする。ファイルアップロード完了後、クライアントコンピュータは、クラウドサーバにアップロード完了したことを通知する。なお、ユーザは、ファイルに対して各種属性（例えば、フレンドリー名やタグ、コメント等）を付与することができる。また、ユーザは、クラウドサーバにより提供されるＷｅｂページを表示した画面で、各種属性を指定してファイルを検索することができる。特許文献１には、ブラウザからＷｅｂサーバとＤＢにクロスドメイン、特にイントラネット上に存在するＤＢにアクセスするための方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１９４８０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ファイルをアップロードするために、クライアントコンピュータのブラウザは、クラウドサーバに対して、ファイルのアップロードリクエストと、アップロードが完了したことを通知するリクエストの２回のリクエストを送信する必要がある。また、ブラウザは、ファイルを管理するストレージサーバに対し、ファイルの保存リクエストを送信する。これらのリクエストは、ブラウザで表示している同一ページ内において非同期で発生するため、クラウドサーバとストレージサーバのドメインが異なる場合、クロスドメイン通信が発生する。このとき、ＸＭＬＨｔｔｐＲｅｑｕｅｓｔ  Ｌｅｖｅｌ２（以降、ＸＨＲ２）非対応のブラウザを使用していた場合、クロスドメイン通信不可のためにストレージサーバへのアクセスができず、ファイルアップロードを行うことができない。
【０００５】
本発明は、上記課題を鑑みて、クロスドメイン通信が不可能なブラウザであっても同一ページでの非同期のファイル登録を可能にする文書管理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の文書管理システムは、情報処理装置と文書管理サーバとがネットワークを介して接続された文書管理システムであって、前記情報処理装置は、クロスドメイン通信機能を有していないブラウザである旨のパラメータを含むアップロード開始リクエストを、前記文書管理サーバに送信する送信手段と、前記文書管理サーバから、アップロード先を示す第１のＵＲＬと、アップロード成功時に遷移する第２のＵＲＬとを含むレスポンスを受けて、前記ブラウザ内にフレームを生成する生成手段と、アップロード先を示す前記第１のＵＲＬに対して、前記第２のＵＲＬを含むアップロードリクエストを送信し、前記ファイルをアップロードするアップロード手段と、前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したか判定する第１の判定手段と、前記フレームに表示中のＵＲＬが前記第２のＵＲＬに遷移したと判定した場合、ファイルアップロード完了通知を前記文書管理サーバへ送信する通知手段と、を備え、前記文書管理サーバは、前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれているか判定する第２の判定手段と、前記第２の判定手段で前記アップロード開始リクエストに前記クロスドメイン通信機能を有していないブラウザである旨のパラメータが含まれていると判定した場合、前記第１のアドレスと前記第２のアドレスとを含む前記レスポンスを前記情報処理装置に送信する応答手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、クロスドメイン通信が不可能なブラウザであっても同一ページでの非同期のファイル登録を可能にする文書管理システムを提供することができる。これにより、ＸＨＲ２非対応のブラウザの場合であっても、ブラウザで表示するＷｅｂページ内に不可視のｉｆｒａｍｅを作成し、ｉｆｒａｍｅの遷移先ＵＲＬを監視することによりファイルアップロードの成否が判定される。そして、同一ページでの非同期ファイルアップロードが可能となる。
【図面の簡単な説明】
【０００８】
【図１】文書管理システム構成を示すブロック図である。
【図２】ハードウェア構成を示す図である。
【図３】文書管理システムの全体構成を示す図である。
【図４】文書管理サーバで管理するテーブル構造の一例を示す図である。
【図５】ファイルアップロード処理を示すシーケンス図である。
【図６】ファイル登録処理を示すフローチャートである。
【図７】ファイル登録リクエストを受けた際の処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面などを参照して説明する。
【００１０】
図１は、本実施形態に係るシステム構成を示すブロック図である。本実施形態に係る文書管理システムは、クライアント装置１０１と、文書管理サーバ１０２と、ストレージサーバ１０３と、データベースサーバ１０４を含み、各構成要素は、インターネットを介してネットワーク１００により通信可能に接続されている。クライアント装置（情報処理装置）１０１は、文書管理サーバ１０２およびストレージサーバ１０３に対してリクエストを発行する。文書管理サーバ１０２は、クライアント装置１０１からのリクエストに応じて、ファイル属性の表示や、ファイルの登録、更新または削除等を行う。また、文書管理サーバ１０２は、クライアント装置１０１からストレージサーバ１０３にアクセス可能なＵＲＬを生成する。ストレージサーバ１０３は、ファイルの保存と管理を行い、クライアント装置１０１や文書管理サーバ１０２からのファイルアップロード／ダウンロードのリクエストを受け付ける。データベースサーバ１０４は、ストレージサーバに保存されたファイルに関する各種属性の情報を保持する。
【００１１】
なお、本実施形態では、文書管理サーバ１０２〜データベースサーバ１０４の各サーバは、複数台のサーバで冗長化されたクラウドサービスとしてそれぞれ異なるドメインにインターネット上に公開される。しかしながら、これに限定することなく、例えば、それぞれ１台の構成であってもよい。ネットワーク１００は、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかであってよい。また、これらの組み合わせにより実現される、いわゆる通信ネットワークであってよい。また、ネットワーク１００は、データの送受信が可能であればよく、各サーバおよびクライアント装置間の通信手段が異なっていてもよい。
【００１２】
図２は、クライアント装置１０１、文書管理サーバ１０２、ストレージサーバ１０３、データベースサーバ１０４のいずれかとして利用可能なコンピュータのハードウェア構成を示すブロック図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、内部バスで接続される各デバイス（ＲＯＭ、ＲＡＭなど）を直接または間接的に制御し、本実施形態に係る処理を実現するためのプログラムを実行する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２は、ＢＩＯＳを格納している。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３は、ＣＰＵ２０１のワーク領域として利用され、本実施形態に係る処理を実現するためのソフトウェアモジュールをロードするための一時記憶として利用される直接記憶装置である。ＨＤＤ２０４は、基本ソフトウェアであるＯＳやソフトウェアモジュールが記憶されているＨＤＤ（ハードディスクドライブ）、またはＳＳＤ（ソリッドステートドライブ）などの間接記憶装置である。入力装置２０５は、不図示のキーボードやポインティングデバイスなどの入力手段である。出力装置２０６は、ディスプレイなどの出力手段である。Ｉ／Ｆ２０７は、ネットワーク１００に接続するためのインターフェースである。
【００１３】
各装置（サーバ）の起動後、ＣＰＵ２０１によりＢＩＯＳが実行され、ＯＳがＨＤＤ２０４からＲＡＭ２０３に実行可能にロードされる。そして、ＣＰＵ２０１は、ＯＳの動作に従って後述する各種ソフトウェアモジュールをＨＤＤ２０４からＲＡＭ２０３に、随時、実行可能にロードする。各種ソフトウェアモジュールは、上記各構成部品の協調により、ＣＰＵ２０１によって実行されて動作する。また、Ｉ／Ｆ２０７は、ネットワーク１００に接続されており、ＯＳの動作に従ってＣＰＵ２０１により制御され、上述した通信手段による通信を実現している。
【００１４】
図３は、本実施形態に係る文書管理システムの全体構成を示す図である。なお、各ソフトウェアモジュールは、図２で示したＨＤＤ２０４に記憶されており、前述したようにＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。クライアント装置１０１は、ユーザインタフェースアプリケーションとしてＷｅｂブラウザ３０１を備えている。文書管理サーバ１０２は、Ｗｅｂサーバ３０２と、文書管理部３０３と、一時ＵＲＬ生成部３０４を備える。クライアント装置１０１は、Ｗｅｂブラウザ３０１を介してＷｅｂサーバ３０２にアクセスすることができる。Ｗｅｂサーバ３０２は、Ｗｅｂアプリケーションの機能を有し、Ｗｅｂブラウザ３０１からのリクエストに対してユーザインタフェース情報を返答する。
【００１５】
Ｗｅｂブラウザ３０１は、Ｗｅｂサーバ３０２から得られたユーザインタフェース情報をレンダリングし表示する。表示されたユーザインタフェース情報には、例えば、後述するストレージサーバ１０３が管理するファイルの一覧や、後述するデータベースサーバ１０４が管理する各ファイルの属性を表示するためのインターフェース等が含まれている。また、後述するファイルアップロード成功時に遷移するＷｅｂページも含まれている。文書管理部３０３は、クライアント装置１０１がストレージサーバ１０３にアップロードしたファイルの管理や、データベースサーバ１０４に対してファイル属性の登録や更新を行う。一時ＵＲＬ生成部３０４は、Ｗｅｂサーバ３０２が受け付けたファイルアップロードリクエストやファイルダウンロードリクエストに応じて、ストレージサーバ１０３にアクセス可能な一時ＵＲＬの発行を行う。本実施形態において、一時ＵＲＬとは、所定の期間（例えば、１時間）のみ有効で且つ該所定の期間が過ぎるとアクセス不可となる一時的なＵＲＬである。また、一時ＵＲＬには、ファイルの保存先となるストレージサーバ１０３のアドレスに関する情報、ならびに、該所定の期間に基づいてアクセス制御するための制御情報（引数）などが含まれる。
【００１６】
ストレージサーバ１０３は、Ｗｅｂサーバ３０５と、アクセス制御部３０６と、ストレージ管理部３０７と、ストレージ３０８を備える。Ｗｅｂサーバ３０５は、Ｗｅｂアプリケーションの機能を有し、クライアント装置１０１は、Ｗｅｂブラウザ３０１を介してＷｅｂサーバ３０５にアクセスすることができる。また、ファイルアップロードリクエストにアップロード成功時ＵＲＬが含まれており、ストレージ管理部３０７でのファイル保存に成功した場合、アップロード成功時ＵＲＬへのリダイレクトレスポンスを返す。アクセス制御部３０６は、Ｗｅｂブラウザ３０１から指定された一時ＵＲＬに含まれる制御情報に基づいて、Ｗｅｂブラウザ３０１からのリクエストを実行許可するか否かを判定する。アクセス制御部３０６が実行許可したリクエストは、ストレージ管理部３０７へ渡され、実行拒否と判定したリクエストは、エラーにする。ストレージ管理部３０７は、ファイル情報を管理し、アップロード／ダウンロードリクエストされたファイルの入出力を行う。ストレージ３０８は、ストレージサーバ１０３がＷｅｂブラウザから受信したファイルを格納する。
【００１７】
データベースサーバ１０４は、Ｗｅｂサーバ３０９と、アクセス制御部３１０と、ストレージ３１１を備える。ストレージ３１１には、文書管理サーバ１０２で管理しているファイルに関する属性などの情報が格納されており、キーバリュー形式で属性情報を管理する。Ｗｅｂサーバ３０９は、文書管理サーバ１０２の文書管理部３０３からのリクエストに対してユーザインタフェース情報を返答する。ユーザインタフェース情報には、例えば、指定されたキーに対するバリュー情報の返却や、バリュー情報の検索結果のインターフェース等が含まれている。
【００１８】
図４は、文書管理サーバ１０２がデータベースサーバ１０４に保存するファイル属性情報４００のデータテーブルである。
【００１９】
ファイル属性情報４００は、ファイル登録時に文書管理部３０３がレコードを生成し、データベースサーバ１０４に保持される。ファイルＩＤ４０１は、ファイルを一意に識別するＩＤである。本実施形態では、ユーザがアップロードするファイルのファイル名をファイルＩＤとしているが、これに限定することなく、例えば、文書管理サーバ１０２が独自のファイルＩＤを発行してもよい。フレンドリー名４０２およびタグ４０３は、ユーザがＷｅｂブラウザ３０１からファイルの管理や検索を容易にするためユーザが任意に指定可能な属性である。ファイルバージョン４０４は、ファイルのバージョンを表す属性であり、ファイルを更新するたびに文書管理サーバ１０２がファイルバージョン４０４の値を更新する。ファイルＵＲＬ４０５は、ファイルが保存された場所を示すアドレスであり、ストレージサーバ１０３のＵＲＬから構成される。ファイルＵＲＬ４０５は、文書管理サーバ１０２がファイルアップロードリクエスト受信時に、ストレージサーバ１０３でファイルを一意に特定できるように、ユニークな文字列で構成されるＵＲＬパスおよびファイルＩＤ４０１等を含めて生成される。
【００２０】
次に、本発明の実施例における文書管理システムを用いたファイルアップロードの手順について、図５を参照しながら詳細に説明する。図５は、ＸＨＲ２非対応ブラウザでのファイルアップロード処理を示すシーケンス図である。ＸＨＲ２対応ブラウザの場合の処理は後述する。ここで、ＸＨＲ（ＸＭＬ  Ｈｔｔｐ  Ｒｅｑｕｅｓｔ）とは、ＪａｖａＳｃｒｉｐｔ（登録商標）等のウェブブラウザ搭載のスクリプト言語であり、サーバとのＨＴＴＰ通信を行うための組み込みオブジェクト（ＡＰＩ）である。既に読み込んだページから、さらにＨＴＴＰリクエストを発することができ、ページ遷移することなしにデータを送受信できるＡｊａｘの基幹技術である。なお、本実施形態において、ユーザは、不図示のログイン画面にて文書管理サーバ１０２にログイン済とする。
【００２１】
まず、ステップＳ５０１において、Ｗｅｂブラウザ３０１は、Ｗｅｂサーバ３０２に画面表示リクエストを送信する。次に、ステップＳ５０２において、Ｗｅｂサーバ３０２は、ファイル登録画面およびファイルアップロードスクリプトを送信し、ファイル登録画面がＷｅｂブラウザ３０１に表示される。そして、ユーザによりＷｅｂブラウザ３０１に表示された不図示のファイル登録画面で登録操作が行われる。次に、ステップＳ５０３において、Ｗｅｂブラウザ３０１は、文書管理サーバ１０２へＸＨＲ２不可（非対応）である（すなわち、クロスドメイン通信機能を有していない）旨のパラメータを含むファイルアップロード開始リクエストを送信する。
【００２２】
文書管理サーバ１０２のＷｅｂサーバ３０２がファイルアップロード開始リクエストを受け取ると、ステップＳ５０４において、一時ＵＲＬ生成部３０４は、ファイルをストレージサーバにアップロードするための一時ＵＲＬを生成する。一時ＵＲＬ（第１のＵＲＬ）は、所定の期間（例えば１時間）のみ有効で且つ該所定の期間が過ぎるとアクセス不可となる一時的なＵＲＬであり、ファイルのアップロード先を示すアップロード先ＵＲＬである。さらに、文書管理サーバ１０２は、ＸＨＲ２非対応ブラウザからのファイルアップロード開始リクエストである場合、ファイルアップロード成功時に遷移するＵＲＬであるアップロード成功時ＵＲＬ（第２のＵＲＬ）を生成する。次に、ステップＳ５０５において、文書管理サーバ１０２は、ファイルアップロード成功時に遷移するＵＲＬであるアップロード成功時ＵＲＬ（第２のアドレス）と一時ＵＲＬ（第１のアドレス）をＷｅｂブラウザ３０１に返却する（応答する）。
【００２３】
レスポンスを受け取ったＷｅｂブラウザ３０１は、ステップＳ５０６において、インラインフレーム５００（以降ｉｆｒａｍｅ）をページ内（ブラウザ内）に生成する。なお、ｉｆｒａｍｅ５００は、不可視であってもよく、その場合、ｉｆｒａｍｅ５００内に読み込まれたコンテンツは表示されない。次に、ステップＳ５０７において、Ｗｅｂブラウザ３０１は、ｉｆｒａｍｅ５００の画面（ＵＲＬ）遷移を監視する。具体的には、ｉｆｒａｍｅ５００の画面が遷移したタイミングで発生するｏｎＬｏａｄイベントを監視するイベントリスナを登録する。なお、画面遷移を検知した際の処理については後述する。
【００２４】
次に、ステップＳ５０８において、Ｗｅｂブラウザ３０１は、ストレージサーバ１０３からのレスポンスがｉｆｒａｍｅ５００に表示されるように指定したファイルアップロードリクエストを、ステップＳ５０５で受け取った一時ＵＲＬに対して送信する。このとき、Ｓ５０５で受信したアップロード成功時ＵＲＬをファイルアップロードリクエストに含めてストレージサーバに送信する。そして、ファイルアップロードリクエストを受信したストレージサーバ１０３は、ストレージ管理部３０７を通じてファイルをストレージ３０８に保存する。
【００２５】
次に、保存が完了すると、ステップＳ５０９において、ストレージサーバ１０３は、ファイルアップロードリクエストに含まれていたアップロード成功時ＵＲＬを用いて、アップロード成功時ＵＲＬへのリダイレクトレスポンスをｉｆｒａｍｅ５００に返す。そして、アップロード成功時ＵＲＬへのリダイレクトレスポンスを受け取ったｉｆｒａｍｅ５００は、ステップＳ５１０において、アップロード成功時ＵＲＬへリダイレクトを行う。前述のとおり、本実施形態において、アップロード成功時ＵＲＬは、文書管理サーバ内のＷｅｂページを指しており、ステップＳ５１１において、文書管理サーバ１０２のＷｅｂサーバ３０２は、アップロード成功画面のレスポンスを返す。
【００２６】
アップロード成功画面のレスポンスを受け取ったｉｆｒａｍｅ５００は、アップロード成功画面に遷移する。そして、ステップＳ５０７でｉｆｒａｍｅ５００の画面遷移を監視していたＷｅｂブラウザ３０１は、ステップＳ５１２において、ｉｆｒａｍｅ５００の現在ＵＲＬを取得する。取得したＵＲＬがアップロード成功時ＵＲＬと一致している場合、ストレージサーバ１０３へのファイルアップロードに成功したと判定する。そして、ステップＳ５１３において、Ｗｅｂブラウザ３０１は、文書管理サーバ１０２へファイルアップロード完了通知リクエストを送信する。なお、ファイルアップロード完了通知リクエストには、アップロードしたファイルに関するファイル属性の情報が含まれる。次に、ファイルアップロード完了通知リクエストを受信した文書管理サーバ１０２は、ステップＳ５１４において、データベースサーバ１０４にファイル属性情報の保存リクエストを送信する。以上のシーケンスにより、文書管理システムは、ＸＨＲ２非対応のブラウザでのファイル登録処理を実行する。
【００２７】
図６は、Ｗｅｂブラウザ３０１のファイル登録処理を示すフローチャートである。なお、図６の処理は、ユーザによりクライアント装置１０１のＷｅｂブラウザ３０１に表示された不図示のファイル登録画面で登録操作が行われることで開始される。まず、ユーザによりＷｅｂブラウザ３０１に表示された不図示のファイル登録画面で登録指示操作が行われると、ステップＳ６０１において、Ｗｅｂブラウザ３０１は、自身のブラウザがＸＨＲ２対応か否かを判定する。すなわち、クロスドメイン通信機能を有しているか否かを判定する。ＸＨＲ２対応の場合（ＹＥＳ）、ステップＳ６０２に進み、ステップＳ６０２において、文書管理サーバ１０２へファイルアップロード開始リクエストを送信する。次に、文書管理サーバ１０２からファイルアップロード開始リクエストに対する成功レスポンスとしてファイルアップロード先を示す一時ＵＲＬを受信する。そして、ステップＳ６０３において、この一時ＵＲＬに対してＸＨＲ２による非同期ファイルアップロードリクエストを送信する。次に、一時ＵＲＬにより指定されたストレージサーバにファイルのアップロードが完了し、ストレージサーバからファイルの保存に成功したことを示すレスポンスを受信する。そして、ステップＳ６０４において、Ｗｅｂブラウザ３０１は、文書管理サーバ１０２へファイルアップロード完了通知リクエストを送信する。
【００２８】
一方、ステップＳ６０１でＷｅｂブラウザ３０１がＸＨＲ２非対応である場合（ＮＯ）、ステップＳ６０５に進む。そして、ステップＳ６０５において、その旨を判別するためのパラメータとともに文書管理サーバ１０２へファイルアップロード開始リクエストを送信する。なお、ステップＳ６０５からステップＳ６０９の処理は、図５のステップＳ５０３、ステップＳ５０６からステップＳ５０８、ステップＳ５１２でそれぞれ説明済みのため、その詳細な説明を省略する。ステップＳ６０９において、監視中のｉｆｒａｍｅ５００での表示中ＵＲＬがアップロード成功時ＵＲＬに遷移したと判定した場合（ＹＥＳ）、ステップＳ６０４に進む。そして、ステップＳ６０４において、Ｗｅｂブラウザ３０１は、文書管理サーバ１０２へファイルアップロード完了通知を送信する。一方、ｉｆｒａｍｅ５００に表示中のＵＲＬがアップロード成功時ＵＲＬと異なるＵＲＬに遷移した場合（ＮＯ）、ステップＳ６１０に進む。そして、ステップＳ６１０において、アップロードに失敗したとみなして、Ｗｅｂブラウザ３０１は、登録エラー画面を表示する。以上の処理により、Ｗｅｂブラウザ３０１は、ファイル登録処理を実行する。
【００２９】
図７は、文書管理サーバ１０２がファイル登録を受け付けた際の処理を示すフローチャートである。なお、本実施形態において、ユーザは、不図示のログイン画面にて文書管理サーバ１０２にログイン済とし、Ｗｅｂブラウザ３０１には、Ｗｅｂサーバ３０２のファイル登録画面が表示されているものとする。
【００３０】
まず、ステップＳ７０１において、文書管理サーバ１０２は、ファイルアップロード開始リクエストを受信すると、一時ＵＲＬ生成部３０４にて、ファイルをストレージサーバ１０３にアップロードするための一時ＵＲＬを生成する。次に、ステップＳ７０２において、文書管理サーバ１０２は、ファイルアップロード開始リクエストにＸＨＲ２使用不可のパラメータが含まれるか否かを判定する。そして、ＸＨＲ２使用不可のパラメータが含まれない（すなわち、ＸＨＲ２対応ブラウザからのファイルアップロード開始リクエストである）と判定した場合（ＮＯ）、ステップＳ７０３に進む。ステップＳ７０３において、文書管理サーバ１０２は、一時ＵＲＬを含むレスポンスをＷｅｂブラウザ３０１に返却する。
【００３１】
一方、ステップＳ７０２で、ファイルアップロード開始リクエストにＸＨＲ２使用不可のパラメータが含まれる（すなわち、ＸＨＲ２非対応ブラウザからのファイルアップロード開始リクエストである）と判定した場合（ＹＥＳ）、ステップＳ７０４に進む。ステップＳ７０４において、文書管理サーバ１０２は、ファイルアップロード成功時に遷移するＵＲＬであるアップロード成功時ＵＲＬを生成して、一時ＵＲＬおよびアップロード成功時ＵＲＬを含むレスポンスをＷｅｂブラウザ３０１に返却する。以上の処理により、文書管理サーバ１０２は、ファイルアップロード開始リクエストを受け付けた際の処理を実行する。
【００３２】
なお、本実施形態では、ステップＳ７０２において、送信されてきたリクエストにＸＨＲ２が使用不可かどうかのパラメータの有無を判定しているが、リクエストに含まれるブラウザ情報（ユーザエージェント情報）によりＸＨＲ２の使用可否を判定してもよい。
【００３３】
以上、本実施形態によれば、クロスドメイン通信が不可能なブラウザ（ＸＨＲ２非対応のブラウザ）であっても同一ページでの非同期のファイル登録を可能にする情報処理システムを提供することができる。
【００３４】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３５】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2017073084.tif 000003
【図２】
2017073084.tif 000004
【図３】
2017073084.tif 000005
【図４】
2017073084.tif 000006
【図５】
2017073084.tif 000007
【図６】
2017073084.tif 000008
【図７】
2017073084.tif 000009