(57)【特許請求の範囲】
【請求項１】
文書を生成し、生成した文書を、ネットワークを介してクラウドプラットフォームサービスへアップロードする文書生成装置であって、
クライアント装置からの文書生成の要求に応じて文書を生成した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能か否かを判定し、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロードし、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定した場合、前記生成した文書と、前記クラウドプラットフォームサービスを示すリダイレクト先情報と、を前記クライアント装置に送信する制御手段を有する文書生成装置。
【請求項２】
前記制御手段は、現在のアップロード処理数と、最大同時アップロード数と、を比較し、現在のアップロード処理数が最大同時アップロード数未満の場合は、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定し、現在のアップロード処理数が最大同時アップロード数未満でない場合は、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定する請求項１記載の文書生成装置。
【請求項３】
前記制御手段は、文書生成装置の空きメモリ量と、閾値と、を比較し、前記空きメモリ量が閾値以上の場合は、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定し、前記空きメモリ量が閾値未満の場合は、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定する請求項１記載の文書生成装置。
【請求項４】
前記制御手段は、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定した場合、予め定められた待機時間の間、前記判定を繰り返す請求項１乃至３何れか１項記載の文書生成装置。
【請求項５】
文書を生成し、生成した文書を、ネットワークを介してクラウドプラットフォームサービスへアップロードする文書生成装置と、文書生成を要求するクライアント装置と、を含む文書生成システムであって、
前記文書生成装置は、クライアント装置からの文書生成の要求に応じて文書を生成した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能か否かを判定し、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロードし、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定した場合、前記生成した文書と、前記クラウドプラットフォームサービスを示すリダイレクト先情報と、を前記クライアント装置に送信する制御手段を有し、
前記クライアント装置は、前記文書生成装置より、前記文書と、前記リダイレクト先情報と、を受信すると、前記文書を前記リダイレクト先情報が示す前記クラウドプラットフォームサービスへアップロードする文書表示制御手段を有する文書生成システム。
【請求項６】
前記制御手段は、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定した場合、前記生成した文書と、前記クラウドプラットフォームサービスを示すリダイレクト先情報と、前記生成した文書を前記リダイレクト先情報が示す前記クラウドプラットフォームサービスへアップロードするためのアップロードプログラムと、を前記クライアント装置に送信し、
前記文書表示制御手段は、前記文書生成装置より、文書と、リダイレクト先情報と、前記プログラムと、を受信すると、前記アップロードプログラムを解釈、実行し、前記文書を前記リダイレクト先情報が示す前記クラウドプラットフォームサービスへアップロードする請求項５記載の文書生成システム。
【請求項７】
文書を生成し、生成した文書を、ネットワークを介してクラウドプラットフォームサービスへアップロードする文書生成装置が実行する文書アップロード方法であって、
クライアント装置からの文書生成の要求に応じて文書を生成した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能か否かを判定するステップと、
前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定された場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロードするステップと、
前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定された場合、前記生成した文書と、前記クラウドプラットフォームサービスを示すリダイレクト先情報と、を前記クライアント装置に送信するステップと、
を含む文書アップロード方法。
【請求項８】
文書を生成し、生成した文書を、ネットワークを介してクラウドプラットフォームサービスへアップロードする文書生成装置と、文書生成を要求するクライアント装置と、を含む文書生成システムにおける文書アップロード方法であって、
前記文書生成装置が、クライアント装置からの文書生成の要求に応じて文書を生成した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能か否かを判定し、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロードし、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定した場合、前記生成した文書と、前記クラウドプラットフォームサービスを示すリダイレクト先情報と、を前記クライアント装置に送信し、
前記クライアント装置が、前記文書生成装置より、前記文書と、前記リダイレクト先情報と、を受信すると、前記文書を前記リダイレクト先情報が示す前記クラウドプラットフォームサービスへアップロードする文書アップロード方法。
【請求項９】
文書を生成し、生成した文書を、ネットワークを介してクラウドプラットフォームサービスへアップロードするコンピュータに、
クライアント装置からの文書生成の要求に応じて文書を生成した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能か否かを判定するステップと、
前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定された場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロードするステップと、
前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定された場合、前記生成した文書と、前記クラウドプラットフォームサービスを示すリダイレクト先情報と、を前記クライアント装置に送信するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書生成装置、文書生成システム、文書アップロード方法及びプログラムに関する。
【背景技術】
【０００２】
近年、サーバーコンピュータ側で業務データの管理や各種処理を行う形態として、クラウドコンピューティングシステムが普及し始めている。ユーザは、クライアントコンピュータのブラウザからインターネットを介してクラウドサーバコンピュータのＷｅｂページにアクセスし、このＷｅｂページ上で閲覧したい業務データを表示する。ユーザがこの業務データが表示された画面等から文書生成指示を行うと、クラウドサーバコンピュータによって文書生成サーバにリダイレクトされる。そして、ユーザは、クライアントコンピュータのブラウザに表示される文書生成サーバから返される画面にてフォームオーバレイに使用するフォームを選択する。フォームが選択されると、文書生成サーバが、クラウドサーバ上にあるデータを取得して文書を生成して、文書をブラウザへダウンロード、或いはクラウドサーバにアップロードする。
ここで、文書生成サーバは、多数のクライアントコンピュータからのリクエストを並行して同時に処理する必要がある。
同時に多数の文書をクラウドサーバにアップロードする方法には、接続残数を超える接続があった場合、再試行間隔時間だけ待ち、再試行回数を超えるまで、又は処理完了までアップロード処理を繰り返すというものがある（特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−１６７１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウドプラットフォームサービスでは、ファイルをアップロードする際のデータ送信方式が定められている。サービスによっては、処理に大量のメモリが必要となる方式が指定されている場合がある。例えばＢａｓｅ６４方式エンコードの場合は、アルゴリズム上、生成ファイルサイズ以上のメモリが必要となる。
一方、クラウドプラットフォームサービスへファイルをアップロードする文書生成サーバがクラウドサービスとして提供されている場合、同時に大量のアクセスを受ける可能性がある。この際、文書生成サーバのリソース（メモリ量）は限られているため、クラウドプラットフォームサービスへのデータアップロード処理が同時に行われた場合、メモリを大量に消費し、文書生成サービス全体のパフォーマンス劣化を招いてしまう問題があった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、文書のアップロード処理にかかるメモリ使用量を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明の、文書を生成し、生成した文書を、ネットワークを介してクラウドプラットフォームサービスへアップロードする文書生成装置は、クライアント装置からの文書生成の要求に応じて文書を生成した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能か否かを判定し、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能と判定した場合、前記生成した文書を前記クラウドプラットフォームサービスへアップロードし、前記生成した文書を前記クラウドプラットフォームサービスへアップロード可能でないと判定した場合、前記生成した文書と、前記クラウドプラットフォームサービスを示すリダイレクト先情報と、を前記クライアント装置に送信する制御手段を有する。
【発明の効果】
【０００７】
本発明によれば、文書のアップロード処理にかかるメモリ使用量を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】文書生成システムのシステム構成の一例を示す図である。
【図２】図１のクライアント装置、クラウドプラットフォームサービス、文書生成サーバのハードウェア構成の一例を示す図である。
【図３】文書生成システムのソフトウェア構成の概要を説明するための図である。
【図４】クラウドプラットフォームサービス上で動作するソフトウェアモジュールの構成の一例を示す図である。
【図５】文書生成サーバのＷｅｂサーバ上で動作するソフトウェアモジュールの構成の一例を示す図である。
【図６】文書生成サーバの文書生成サービス上で動作するソフトウェアモジュールの構成の一例を示す図である。
【図７】クライアント装置のＷｅｂブラウザから、クラウドプラットフォームサービスにアクセスして業務データを表示した場合の業務画面の一例を示す図である。
【図８】クラウドプラットフォームサービスのデータ管理部が保持する業務データのうち、商談に関するデータのテーブル構造の一例を示す図である。
【図９】クラウドプラットフォームサービスの設定管理部で保持するカスタムボタンの定義情報の例を示す図である。
【図１０】Ｗｅｂサーバのフォーム情報管理部が保持するフォーム情報テーブルのテーブル構造の一例を示す図である。
【図１１】クライアント装置のＷｅｂブラウザで表示する画面遷移の一例を示した図である。
【図１２】文書生成システムが行う処理の一例を示す図である。
【図１３】実施形態１の、図１２のＳ１２１０からＳ１２１７までの、Ｗｅｂサーバにおける文書生成処理の一例を示すフローチャートである。
【図１４】図１２のＳ１２１０からＳ１２１９までの、Ｗｅｂブラウザにおける文書アップロード処理の一例を示すフローチャートである。
【図１５】実施形態２の、図１２のＳ１２１０からＳ１２１７までの、Ｗｅｂサーバにおける文書生成処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
＜実施形態１＞
図１は、文書生成システムのシステム構成の一例を示す図である。
クライアント装置１０１は、後述するクラウドプラットフォームサービス１０２及び後述する文書生成サーバ１０３に対してリクエストを発行する。クラウドプラットフォームサービス１０２は、クライアント装置１０１や文書生成サーバ１０３からのリクエストに応じて、保持するデータの表示・更新等を行う。文書生成サーバ１０３は、クライアント装置１０１からリクエストを受信して文書生成を行う。
また、上記各構成要素はネットワーク１００により通信可能に接続されている。ネットワークは、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等の何れかである。又は、ネットワークは、これらの組み合わせにより実現される、所謂、通信ネットワークである。
ネットワークは、データの送受信が可能であればどのようなものであってもよい。
クライアント装置１０１からクラウドプラットフォームサービス１０２、文書生成サーバ１０３への通信手段、文書生成サーバ１０３からクラウドプラットフォームサービス１０２への通信手段、及び各サーバ間の通信手段が異なっていてもよい。
【００１１】
図２は、図１のクライアント装置１０１、クラウドプラットフォームサービス１０２、文書生成サーバ１０３のハードウェア構成の一例を示す図である。ＣＰＵ２０１は、内部バスで接続される各デバイス（後述のＲＯＭ、ＲＡＭ他）を直接或いは間接的に制御し、本実施形態を実現するためのプログラムを実行する。ＲＯＭ２０２は、ＢＩＯＳを格納する。ＲＡＭ２０３は、ＣＰＵ２０１のワーク領域として利用されたり、本実施形態を実現するためのソフトウェアモジュールをロードするための一時記憶として利用されたりする直接記憶装置である。ＨＤＤ２０４は、基本ソフトウェアであるＯＳやソフトウェアモジュールが記憶されている間接記憶装置である。ＨＤＤ２０４は、ＳＳＤ（ソリッドステートドライブ）等であってもよい。入力装置２０５は、不図示のキーボードやポインティングデバイス等である。出力装置２０６には、ディスプレイが接続される。Ｉ／Ｆ２０７は、ネットワーク１００に接続するためのＩ／Ｆである。
これらハードウェアでは、起動後、ＣＰＵ２０１によりＢＩＯＳが実行されＯＳがＨＤＤ２０４からＲＡＭ２０３に実行可能にロードされる。ＣＰＵ２０１はＯＳの動作に従って後述する各種ソフトウェアモジュールをＨＤＤ２０４からＲＡＭ２０３に随時、実行可能にロードする。各種ソフトウェアモジュールは上記各デバイスの協調によりＣＰＵ２０１によって実行され動作する。また、Ｉ／Ｆ２０７は、ネットワーク１００に接続されており、ＯＳの動作に従ってＣＰＵ２０１により制御され、上述した通信手段による通信を実現している。
つまり、ＣＰＵ２０１が、ＨＤＤ２０４等に記憶されたプログラムに基づき処理を実行することによって、後述するソフトウェアモジュール、及び後述するフローチャート等にかかる処理が実現される。
なお、クラウドプラットフォームサービス１０２、及び文書生成サーバ１０３の場合、入力装置２０５や出力装置２０６は、必須のハードウェア構成ではない。
【００１２】
図３は、文書生成システムのソフトウェア構成の概要を説明するための図である。
クライアント装置１０１は、ユーザインタフェースアプリケーションとしてＷｅｂブラウザ３０１を備えている。例えば、Ｗｅｂブラウザ３０１は、文書表示制御手段の一例である。
クラウドプラットフォームサービス１０２は、クラウドプラットフォームサービスを使用するユーザの管理や、業務データ、後述する文書生成サーバ１０３へのリダイレクトを行うための設定を管理する。
また、クラウドプラットフォームサービス１０２は、複数の企業・組織から使用されることが前提であり（一般的にマルチテナントと呼ばれる）、使用する企業・組織毎に前述のユーザ管理、業務データ管理等が行われる。
文書生成サーバ１０３は、Ｗｅｂサーバ３０３、及び、文書生成サービス３０４を備える。
Ｗｅｂサーバ３０３は、所謂、Ｗｅｂアプリケーションの機能を有するよう構成されている。クライアント装置１０１は、Ｗｅｂブラウザ３０１を介してＷｅｂサーバ３０３にアクセスすることができる。
Ｗｅｂサーバ３０３は、Ｗｅｂブラウザ３０１からのリクエストに対してユーザインタフェース情報を返答する。Ｗｅｂブラウザ３０１は、Ｗｅｂサーバ３０３から得られたユーザインタフェース情報をレンダリングし、表示する。
表示されたユーザインタフェース情報には、例えば、後述する文書生成サーバ１０３が管理するフォームの一覧や、文書生成をリクエストするためのインタフェース等が含まれている。
また、Ｗｅｂサーバ３０３は、Ｗｅｂブラウザ３０１から文書生成リクエストを受信すると、クラウドプラットフォームサービス１０２から業務データを取得し、前記業務データと共に文書生成サービス３０４に対して文書生成のリクエストを送信する。
文書生成サービス３０４は、受信したデータと自身で管理するフォームとを使用してオーバレイ処理を行い、文書データを生成する。
【００１３】
図４は、クラウドプラットフォームサービス１０２上で動作するソフトウェアモジュールの構成の一例を示す図である。なお、各ソフトウェアモジュールは図２で示したＨＤＤ２０４に記憶されており、前述したようにＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。
クラウドプラットフォームサービス１０２は、以下で構成される。
送受信部４０１は、クライアント装置１０１のＷｅｂブラウザ３０１や文書生成サーバ１０３のＷｅｂサーバ３０３との通信を処理する。
制御部４０２は、送受信部４０１が受け付けたリクエストに従って処理を実行する。
ページ生成部４０３は、Ｗｅｂブラウザ３０１にレスポンスを返すためのＷｅｂページを生成する。
認証部４０５は、ログイン要求してきたユーザを認証する。
セッション管理部４０４は、認証部４０５にて認証に成功したユーザのセッション情報を管理する。
データ管理部４０６は、業務データをＤＢ４０８に保持し要求に応じてＤＢ４０８から業務データの取得、或いは業務データの更新を行う。
設定管理部４０７は、文書生成サーバ１０３へのリダイレクトを行うための設定を保持する。
クラウドプラットフォームサービス１０２はこれら各構成要素の協調により、後述する処理を実行する。
また、図中、ＤＢ４０８は、管理ユーザデータや業務データを格納するＤＢであり、図２で示したＨＤＤ２０４に記憶されている。
管理ユーザデータや業務データは、企業・組織（以降、組織と表記）毎に管理される。各組織には組織ＩＤが自動的に割り当てられ、組織ＩＤと共に各データが管理される。認証部４０５は、ユーザ認証時、ユーザが所属する組織の組織ＩＤを取得しセッション管理部４０４に保存する。以降のデータ取得等の処理は組織ＩＤを基に行われ、組織ＩＤの一致するデータのみを参照することが可能となる。
また、ＤＢ４０８には、文書生成サーバ１０３へのリダイレクトを行うための設定も格納される。ＤＢ４０８に格納された業務データや文書生成サーバ１０３へリダイレクトを行うための設定は、Ｗｅｂブラウザ３０１を介して、ユーザ（管理者）により任意のタイミングで設定更新が行われる。
【００１４】
図５は、文書生成サーバ１０３のＷｅｂサーバ３０３上で動作するソフトウェアモジュールの構成の一例を示す図である。
なお、各ソフトウェアモジュールは図２で示したＨＤＤ２０４に記憶されており、前述したようにＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。
Ｗｅｂサーバ３０３は、以下で構成される。
送受信部５０１は、クライアント装置１０１のＷｅｂブラウザ３０１やクラウドプラットフォームサービス１０２、文書生成サービス３０４との通信を処理する。制御部５０２は、受け付けたリクエストに従って処理を実行する。更に制御部５０２は、文書生成サーバ１０３からクラウドプラットフォームサービス１０２への最大同時アップロード数を保持する。
制御部５０２は、最大同時アップロード数と現在実行中の文書アップロード処理数とを比較することで文書のアップロード方法の切り替え処理を行う。
ページ生成部５０３は、Ｗｅｂブラウザ３０１にレスポンスを返すためのＷｅｂページを生成する。
データアクセス部５０４は、クラウドプラットフォームサービス１０２にアクセスして業務データを取得する。
フォーム情報管理部５０５は、後述のフォーム情報テーブルを管理する。
セッション管理部５０６は、Ｗｅｂブラウザ３０１のセッション情報を管理する。
Ｗｅｂサーバ３０３はこれら各構成要素の協調により、後述する処理を実行する。
【００１５】
図６は、文書生成サーバ１０３の文書生成サービス３０４上で動作するソフトウェアモジュールの構成の一例を示す図である。
なお、各ソフトウェアモジュールは図２で示したＨＤＤ２０４に記憶されており、前述したようにＣＰＵ２０１によってＲＡＭ２０３にロードされ実行される。
文書生成サービス３０４は、以下で構成される。
要求受信部６０１は、Ｗｅｂサーバ３０３からの文書生成リクエストを受け付ける。制御部６０２は、受け付けたリクエストに従って処理を実行する。フォーム管理部６０３は、フォームデータを管理する。文書生成部６０４は、Ｗｅｂサーバ３０３から送信された業務データとフォームを使用してオーバレイ処理を行い、文書データを生成する。文書送信部６０５は、生成された文書データをＷｅｂサーバ３０３又はクライアント装置１０１に送信する。
【００１６】
図７は、クライアント装置１０１のＷｅｂブラウザ３０１から、クラウドプラットフォームサービス１０２にアクセスして業務データを表示した場合の業務画面７０１の一例を示す図である。なお、図７の状態は、ユーザがクラウドプラットフォームサービス１０２にログイン済の状態である。業務画面７０１には、あるレコードの詳細情報７０２や商品７０３が表示されている。図７では、商談に関する業務画面の商談レコードの詳細が表示されている。また、文書生成サーバ１０３へリダイレクトを行うための設定がなされたカスタムボタン７０４が表示されている。カスタムボタン７０４は、ボタン押下時の動作や、どの画面に表示するか、等を任意に設定可能で、ユーザ（管理者）によって画面に配置される。
図８は、クラウドプラットフォームサービス１０２のデータ管理部４０６が保持する業務データのうち、商談に関するデータのテーブル構造の一例を示す図である。
業務データは、データテーブル８００で管理され、商談テーブル８０１、及び、商品テーブル８１１によって構成されている。
商談テーブル８０１は、レコードの識別子であるレコードＩＤ８０２、レコードをユーザが容易に区別するために任意の名前を設定可能な商談名８０３で構成される。
商品テーブル８１１は、商談レコードＩＤ８１２、商品テーブルのレコードの識別子であるレコードＩＤ８１３、品名８１４、数量８１５、価格８１６から構成される。また、商談レコードＩＤ８１２は、商談テーブルのレコードＩＤ８０２とリレーションしている。
【００１７】
図９は、クラウドプラットフォームサービス１０２の設定管理部４０７で保持するカスタムボタンの定義情報の例を示す図である。
図９では、カスタムボタンが「商談」画面と「顧客」画面と、に定義されており、「商談」画面に表示するカスタムボタンの設定情報には、ボタン表示名９０３、及び、文書生成サーバ１０３へリダイレクトを行うためのパラメータ情報が格納されている。
文書生成サーバＵＲＩ９０４は、文書生成サーバ１０３のＵＲＩを「ｈｔｔｐ：／／〜」の形式で指定したパラメータである。セッションＩＤ９０５は、ログインしたユーザのセッションＩＤを取得して文字列「ｓｉｄ＝＜セッションＩＤ＞」をＵＲＬパラメータに付加する設定である。ＣＰＳ＿ＵＲＬ（以下、ＣＰＳＵＲＬ）９０６は、文書生成サーバ１０３がクラウドプラットフォームサービス１０２にアクセスするためのＵＲＬを文字列「ｓｒｖ＿ｕｒｌ＝＜クラウドプラットフォームサービスＵＲＬ＞」としてＵＲＬパラメータに付加する設定である。例えば、クラウドプラットフォームサービスのＵＲＬ（ＣＰＳＵＲＬ）は、クラウドプラットフォームサービスを示すリダイレクト先情報の一例である。
クラウドプラットフォームサービス１０２にアクセスするためのＵＲＬは、組織毎に固有であり、ユーザ認証時に、制御部５０２が、ユーザが所属する組織に応じたＵＲＬを取得してセッション管理部４０４に保存する。
組織ＩＤ９０７は、ログインしたユーザの組織ＩＤを取得して文字列「ｏｒｇｉｄ＝＜組織ＩＤ＞」をＵＲＬパラメータに付加する設定である。レコードＩＤ９０８は、画面に表示した商談レコードのレコードＩＤ１２０２を取得して文字列「ｒｅｃｉｄ＝＜レコードＩＤ＞」をＵＲＬパラメータに付加する設定である。
【００１８】
図１０は、Ｗｅｂサーバ３０３のフォーム情報管理部５０５が保持するフォーム情報テーブルのテーブル構造の一例を示す図である。
フォーム情報テーブル１００１のフォーム情報レコードは、以下で構成される。
組織ＩＤ１００３は、前記レコードの所有者である組織を識別する。表示名１００４は、フォーム選択画面に表示する名称である。フォームファイル名１００５は、文書生成サービス３０４のフォーム管理部６０３で管理されているフォームのファイル名である。クエリコマンド１００６は、クラウドプラットフォームサービス１０２からデータを取得するためのクエリを記述したコマンドである。
【００１９】
図１１は、図１の文書生成システムにおけるクライアント装置１０１のＷｅｂブラウザ３０１で表示する画面遷移の一例を示した図である。
なお、以降の図では、クラウドプラットフォームサービスをＣＰＳと略して表記している。
業務画面１１０１は、クラウドプラットフォームサービス１０２が作成し、クライアント装置１０１に返す画面であり、例えば、図７の業務画面７０１が表示される。
文書生成ボタン１１０２は、クラウドプラットフォームサービス１０２へ文書生成リクエストを発行するボタンである。
クラウドプラットフォームサービス１０２は、文書生成ボタン２００２が押下されると、文書生成サーバ１０３へリダイレクトするＵＲＬを返却する。
クライアント装置１０１のＷｅｂブラウザ３０１は、リダイレクトするＵＲＬを受けるとこのＵＲＬに従った文書生成サーバ１０３へリダイレクトする。
リダイレクトでリクエストを受けた文書生成サーバ１０３は、フォーム選択画面１１０３をクライアント装置１０１のＷｅｂブラウザ３０１に返す。
フォーム選択画面１１０３は文書生成に使用するフォームを選択するフォーム選択１１０４を備える。
更にフォーム選択画面１１０３は、文書生成サーバ１０３で作成した文書をクラウドプラットフォームサービス１０２にアップロードするか、クライアント装置１０１のＷｅｂブラウザ３０１にダウンロードするかを選択可能な出力方式選択１１０５を備える。
【００２０】
また、ユーザから文書生成ボタン１１０６の選択を受けたクライアント装置１０１のＷｅｂブラウザ３０１は、フォーム選択１１０４と出力方式選択１１０５の選択結果を文書生成サーバ１０３に送信する。これらの情報を受け取った文書生成サーバ１０３は、業務画面１１０１の業務データをクラウドプラットフォームサービス１０２から取得する。データ取得中画面１１０７は、文書生成サーバ１０３がクラウドプラットフォームサービス１０２から業務データを取得中の間、クライアント装置１０１のＷｅｂブラウザ３０１に表示される。文書生成サーバ１０３がクラウドプラットフォームサービス１０２からの業務データ取得が完了すると、文書生成サーバ１０３は、取得したデータを確認可能なデータ確認画面１１０８をクライアント装置１０１のＷｅｂブラウザ３０１に返す。ユーザから作成ボタン１１０９の選択を受けたクライアント装置１０１のＷｅｂブラウザ３０１は、文書生成サーバ１０３に文書生成リクエストを送信する。文書生成リクエストを受けた文書生成サーバ１０３は、選択されたフォームとクラウドプラットフォームサービス１０２から取得した業務データを使用して文書生成処理を行う。そして、選択された出力方式に従って、文書をクラウドプラットフォームサービス１０２にアップロードするか、クライアント装置１０１のＷｅｂブラウザ３０１にダウンロードする。
選択された出力方式がアップロードであった場合、文書生成サーバ１０３は現在実行中のアップロード処理数を取得する。
アップロード処理数が最大同時アップロード実行数に等しい場合、クラウドプラットフォームサービス１０２へリダイレクトするＵＲＬ、文書、アップロードプログラム、アップロード中画面１１１０及び完了画面１１１１をクライアント装置１０１に返す。
クライアント装置１０１のＷｅｂブラウザ３０１は、アップロード中画面を表示し、更に、リダイレクトするＵＲＬとアップロードプログラムとにより、受け取った文書をクラウドプラットフォームサービス１０２へアップロードする。
文書のアップロードが完了すると、クライアント装置１０１のＷｅｂブラウザ３０１は完了画面１１１１を表示する。
【００２１】
図１２は、文書生成システムが行う処理の一例を示す図である。なお、ユーザは、不図示のログイン画面にてクラウドプラットフォームサービス１０２にログイン済とし、Ｗｅｂブラウザ３０１には図７の業務画面７０１が表示されており、カスタムボタン７０４は、予め、図９の設定がなされているものとする。
はじめ、ユーザによりクライアント装置１０１のＷｅｂブラウザ３０１に表示された業務画面７０１のカスタムボタン７０４が押下される（Ｓ１２０１）と、クラウドプラットフォームサービス１０２では、Ｓ１２０２においてリダイレクトＵＲＬ作成処理を行う。
Ｓ１２０２において、制御部４０２は、カスタムボタンに設定された文書生成サーバＵＲＩ９０４、セッションＩＤ９０５、ＣＰＳＵＲＬ９０６、組織ＩＤ９０７及びレコードＩＤ９０８を取得し、これら取得したパラメータからリダイレクトＵＲＬを生成する。そして、制御部４０２は、リダイレクトさせるためのレスポンスをＷｅｂブラウザ３０１に返す。
Ｓ１２０３で、Ｗｅｂブラウザ３０１は、クラウドプラットフォームサービス１０２から返されたレスポンスを受信すると、セッションＩＤ９０５、ＣＰＳＵＲＬ９０６、組織ＩＤ９０７、レコードＩＤ９０８を文書生成サーバ１０３に送信する。
【００２２】
Ｓ１２０４で、Ｗｅｂサーバ３０３は、Ｗｅｂブラウザ３０１からのリダイレクトを受信する。すると、まず制御部５０２は、セッションＩＤ９０５、ＣＰＳＵＲＬ９０６、組織ＩＤ９０７及びレコードＩＤ９０８をセッション管理部５０６に保存する。
次に、制御部５０２は、フォーム情報レコード１００２に含まれるフォームの表示名１００４のリストをフォーム情報管理部５０５から取得し、フォームの表示名１００４のリストからフォーム選択画面１１０３を作成し、クライアント装置１０１に送る。
Ｓ１２０５では、ユーザによりフォーム選択画面１１０３のフォーム選択１１０４からフォームと出力方式選択１１０５から出力方式とが選択され、文書の作成ボタンが押下される。すると、Ｗｅｂブラウザ３０１は、Ｗｅｂサーバ３０３に対して選択されたフォームと選択された出力方式と共に文書生成リクエストを送信する。
Ｓ１２０６にてＷｅｂサーバ３０３が文書生成リクエストを受信すると、文書生成サーバ１０３はフォーム選択１１０４で指定されたフォームに一致するクエリコマンド１００６を発行し、クラウドプラットフォームサービス１０２にデータ取得リクエストを行う。
この際、クラウドプラットフォームサービス１０２のＵＲＬ及び取得データの内容は、セッション管理部５０６に保存されているＣＰＳＵＲＬ９０６及び組織ＩＤ９０７、レコードＩＤ９０８がそれぞれ使用される。次に、Ｓ１２０７においてクラウドプラットフォームサービス１０２は、データ取得中画面１１０７を作成し、Ｗｅｂブラウザ３０１に送る。
【００２３】
Ｗｅｂブラウザ３０１は、定期的にＳ１２０８でデータ取得完了確認リクエストを文書生成サーバ１０３に送信する。文書生成サーバ１０３のＷｅｂサーバ３０３は、クラウドプラットフォームサービス１０２からデータ取得のレスポンスが返るまで、Ｓ１２０７と同様のデータ取得中画面１１０７をＷｅｂブラウザ３０１に送る。
次に、クラウドプラットフォームサービス１０２からデータ取得のレスポンスが文書生成サーバ１０３に返る。
Ｗｅｂサーバ３０３の制御部５０２は、取得データをセッション管理部５０６へ保存する。
その後にＷｅｂブラウザ３０１からデータ取得完了の確認リクエストが送られてくると、Ｗｅｂサーバ３０３は、クラウドプラットフォームサービス１０２から取得したデータでデータ確認画面１１０８を生成し、Ｗｅｂブラウザ３０１へ返す（Ｓ１２０９）。
Ｓ１２０９でＷｅｂブラウザ３０１に返されたデータ確認画面１１０８にて、ユーザにより作成ボタンが押下されると、Ｗｅｂブラウザ３０１より、Ｗｅｂサーバ３０３に対して、文書生成リクエストが送信される（Ｓ１２１０）。
Ｓ１２１０において、Ｗｅｂサーバ３０３が文書生成リクエストを受信すると、後述の文書生成処理を行う。
【００２４】
図１３は、実施形態１の、図１２のＳ１２１０からＳ１２１７までの、Ｗｅｂサーバ３０３における文書生成処理の一例を示すフローチャートである。
制御部５０２は、Ｗｅｂブラウザ３０１からの文書生成リクエストを受信する（Ｓ１３０１）と、Ｓ１３０２において、セッション管理部５０６を介してセッションが有効かを判定する。
セッションが有効と判定された場合、制御部５０２は、Ｓ１３０４において、セッション管理部５０６から取得データ、フォームファイル名１００５、出力方式を取得する。
次に、制御部５０２は、Ｓ１３０５において、前記取得データ及びフォームファイル名１００５と共に、文書生成サービス３０４に対して文書生成要求を行う（図１２のＳ１２１１）。
次に、制御部５０２は、Ｓ１３０６にて、文書生成サービス３０４からのレスポンス（図１２のＳ１２１２）を取得し、文書生成が成功したかを判定する。文書生成が成功したと判定された場合、制御部５０２は、前記出力方式の値を判定し（Ｓ１３０７）する。
Ｓ１３０７において、前記出力方式でダウンロードが指定されている場合、制御部５０２は、Ｓ１３０８で、文書生成サービス３０４からのレスポンスに含まれる文書を取得して、前記文書をＷｅｂブラウザ３０１に送信する。
【００２５】
前記出力方式でアップロードが指定されている場合、制御部５０２は、Ｓ１３０９において文書生成サーバ１０３からクラウドプラットフォームサービス１０２への最大同時アップロード数と現在実行中のアップロード処理数とを取得する（図１２のＳ１２１３）。
Ｓ１５１０において、制御部５０２は、生成された文書をクラウドプラットフォームサービス１０２へアップロード可能か否かを判定する。より具体的に説明すると、制御部５０２は、現在実行中のアップロード処理数が、最大同時アップロード数未満か否かを判定する（図１２のＳ１２１４）。
現在実行中のアップロード処理数が最大同時アップロード数と等しい場合（Ｓ１３１０のＮＯ）、制御部５０２は、Ｓ１３１３にて以下を取得する。
つまり、制御部５０２は、文書生成サービス３０４からのレスポンスに含まれる文書、ＣＰＳＵＲＬ９０６、アップロード中画面１１１０、完了画面１１１１を取得する。
更に制御部５０２は、Ｗｅｂブラウザ３０１が前記文書をクラウドプラットフォームサービス１０２へアップロードするためのアップロードプログラムを生成する。
ＣＰＳＵＲＬ９０６及び前記アップロードプログラムは、Ｗｅｂブラウザ３０１が解釈し実行できるＪａｖａＳｃｒｉｐｔのプログラムとして、アップロード中画面１１１０に埋め込まれる。
そして、制御部５０２は、文書生成サービス３０４からのレスポンスに含まれる文書、ＣＰＳＵＲＬ９０６、アップロード中画面１１１０、完了画面１１１１、アップロードプログラムをＷｅｂブラウザ３０１に送信する（図１２のＳ１２１７）。
Ｓ１３１０において、現在の同時アップロード数が最大同時アップロード数未満だった場合（Ｓ１３１０のＹＥＳ）、制御部５０２は、Ｓ１３１１を実行する。Ｓ１３１１において、制御部５０２は、文書生成サービス３０４からのレスポンスに含まれる文書を取得して、前記文書をクラウドプラットフォームサービス１０２にアップロードする（図１２のＳ１２１５）。
【００２６】
Ｓ１３１２において、クラウドプラットフォームサービス１０２からアップロード完了のレスポンスを受信すると、制御部５０２は、完了画面１１１１を生成するようページ生成部５０３に要求する。ページ生成部５０３は、完了画面１１１１を生成し、制御部５０２は、完了画面１１１１をＷｅｂブラウザ３０１に送信する（図１２のＳ１２１６）。
Ｓ１３０２において、有効なセッションでないと判定された場合（Ｓ１３０２のＮＯ）や、Ｓ１３０６において文書生成が成功したと判定された場合（Ｓ１３０６のＮＯ）、制御部５０２は、エラー画面を生成するようページ生成部５０３に要求する。ページ生成部５０３は、エラー画面を生成し、制御部５０２は、エラー画面をＷｅｂブラウザ３０１に送信する。以上の処理により、Ｗｅｂサーバ３０３は、文書生成処理を実行する。
なお、文書生成サーバ１０３の文書生成サービス３０４における文書生成処理（フォームを使用したオーバレイ処理）は既知であるため、本実施形態では説明を割愛する。
また、本実施形態の文書生成処理では、文書生成サービス３０４の文書生成処理が完了してからＷｅｂブラウザ３０１にレスポンスを返している。しかし、データ取得処理の場合と同様に、一旦、文書作成中を示す画面をＷｅｂブラウザ３０１に返してオートリダイレクトさせるようにするようにしてもよい。
また、本実施形態の文書生成処理では、制御部５０２に文書生成サーバ１０３からクラウドプラットフォームサービス１０２への最大同時アップロード数を備え、実行中のアップロード処理数との比較により、文書のアップロード方法を切り替えている。
しかし、実行中のアップロード処理数だけでなく、文書生成サーバ１０３の空きメモリ量が制御部５０２に備えた閾値以上か否かで文書のアップロード方法を切り替える等、本実施形態の効果を奏することができるのであれば、どのような方法でもよい。制御部５０２は、文書生成サーバ１０３の空きメモリ量と、閾値と、を比較し、前記空きメモリ量が閾値以上の場合は、前記生成した文書をクラウドプラットフォームサービス１０２へアップロード可能と判定する。また、制御部５０２は、前記空きメモリ量が閾値未満の場合は、前記生成した文書をクラウドプラットフォームサービス１０２へアップロード可能でないと判定する。
【００２７】
図１４は、図１２のＳ１２１０からＳ１２１９までの、Ｗｅｂブラウザ３０１における文書アップロード処理の一例を示すフローチャートである。
Ｓ１４０１において、ユーザによってデータ確認画面１１０８に含まれる作成ボタン１１０９を押下されると、Ｗｅｂブラウザ３０１は、Ｗｅｂサーバ３０３に文書生成リクエストを送信する（図１２のＳ１２１６）。
次にステップＳ１４０２において、Ｗｅｂブラウザ３０１は、Ｗｅｂサーバ３０３からのレスポンスの確認を行う。Ｗｅｂサーバ３０３からのレスポンスが確認されると、Ｗｅｂブラウザ３０１は、Ｓ１４０３において、受信したレスポンスの内容を確認する。
レスポンスの内容が文書のみだった場合（図１２のＳ１２１６）、ステップＳ１４０８にて、Ｗｅｂブラウザ３０１は、受信した文書をクライアント装置１０１の出力装置２０６であるディスプレイ等に表示し、文書のプレビューを行う。
レスポンスの内容に文書以外も含まれていた場合（図１２のＳ１２１７）、Ｓ１４０５において、Ｗｅｂブラウザ３０１は、レスポンスに含まれるアップロード中画面１１１０をディスプレイに表示する。
次にＳ１４０６にてＷｅｂブラウザ３０１は、アップロード中画面１１１０に含まれるＣＰＳＵＲＬ９０６及びアップロードプログラムより、クラウドプラットフォームサービス１０２に文書のアップロードを行う（図１２の１２１８）。
文書のアップロードが完了すると、Ｗｅｂブラウザ３０１は、Ｓ１４０７において、レスポンスに含まれる完了画面１１１１を表示する（図１２のＳ１２１９）。
以上により、Ｗｅｂブラウザ３０１からの文書アップロード処理が行われる。
【００２８】
＜実施形態２＞
実施形態１では、実行中のアップロード処理数が最大同時アップロード数以上であった場合に、直ちにＷｅｂブラウザ３０１へ文書を送信し、Ｗｅｂブラウザ３０１からクラウドプラットフォームサービス１０２へ文書のアップロードを行っていた。
本実施形態では、実行中のアップロード処理数が最大同時アップロード数以上であった場合に、直ぐにＷｅｂブラウザ３０１に文書を送信せず、一定時間待機する方法を説明する。
以下、実施形態１で記載済みの内容については説明を省略する。
図５のＷｅｂサーバ３０３において、制御部５０２は、最大待機時間を更に保持する。
図１５は、実施形態２の、図１２のＳ１２１０からＳ１２１７までの、Ｗｅｂサーバ３０３における文書生成処理の一例を示すフローチャートである。
Ｓ１５０１からＳ１５０９までの処理は、それぞれ図１３のＳ１３０１からＳ１３０９までと同様のため、説明を割愛する。
Ｓ１５１０において、制御部５０２は、現在実行中のアップロード処理数が最大同時アップロード数と等しい場合（Ｓ１５１０のＮＯ）、Ｓ１５１３にて、現在の待機時間を確認する。
待機時間が、予め定められた最大待機時間未満であった場合（Ｓ１５１３のＮＯ）、ステップＳ１５１４において、制御部５０２は、文書のアップロード処理を一定時間待機する。待機する時間は、最大待機時間未満であれば、その時間を問わない。
また、待機時間が、前記最大待機時間以上だった場合（Ｓ１５１３のＹＥＳ）、制御部５０２は、Ｓ１５１５にて、文書生成サービス３０４からのレスポンスに含まれる文書、ＣＰＳＵＲＬ９０６、アップロード中画面１１１０、完了画面１１１１を取得する。
更に、制御部５０２は、Ｗｅｂブラウザ３０１が前記文書をクラウドプラットフォームサービス１０２へアップロードするためのアップロードプログラムを生成する。
ＣＰＳＵＲＬ９０６及び前記アップロードプログラムは、Ｗｅｂブラウザ３０１が解釈し実行できるＪａｖａＳｃｒｉｐｔのプログラムとして、アップロード中画面１１１０に埋め込まれる。
そして、制御部５０２は、文書生成サービス３０４からのレスポンスに含まれる文書、ＣＰＳＵＲＬ９０６、アップロード中画面１１１０、完了画面１１１１、アップロードプログラムをＷｅｂブラウザ３０１に送信する（図１２のＳ１２１７）。
Ｓ１５１０において、現在の同時アップロード数が最大同時アップロード数未満だった場合（Ｓ１５１０のＹＥＳ）、制御部５０２は、Ｓ１５１１を実行する。Ｓ１５１１において、制御部５０２は、文書生成サービス３０４からのレスポンスに含まれる文書を取得して、前記文書をクラウドプラットフォームサービス１０２にアップロードする（図１２のＳ１２１５）。
次に、Ｓ１５１２において、クラウドプラットフォームサービス１０２からアップロード完了のレスポンスを受信すると、制御部５０２は、完了画面１１１１を生成するようページ生成部５０３に要求する。ページ生成部５０３は、完了画面１１１１を生成し、制御部５０２は、完了画面１１１１をＷｅｂブラウザ３０１に送信する（図１２のＳ１２１６）。
【００２９】
なお、Ｗｅｂサーバ３０３は、Ｗｅｂブラウザ３０１とのセッションの中でクライアント装置のタイプを取得し、クライアント装置のタイプに応じて、文書をＷｅｂブラウザ３０１に送信するか否かを判断するようにしてもよい。ここで、クライアント装置のタイプとは、例えば、クライアント装置の製品名、又は種類、又はバージョン等である。
より具体的に説明すると、例えば、Ｗｅｂサーバ３０３は、Ｓ１５１０でＮＯと進んだ後に、通信相手のクライアント装置のタイプが、メモリ等が少ない予め定められたクライアント装置のタイプであるか否かを判定する。Ｗｅｂサーバ３０３は、通信相手のクライアント装置のタイプが、メモリ等が少ない予め定められたクライアント装置のタイプである場合、Ｓ１５１３に進む。一方、Ｗｅｂサーバ３０３は、通信相手のクライアント装置のタイプが、メモリ等が少ない予め定められたクライアント装置のタイプでない場合、Ｓ１５１５に進む。
このような構成とすることによって、メモリ等が少ないクライアント装置に負荷をかけることなく、文書のアップロード処理にかかる文書生成サーバのメモリ使用量を抑制することができる。
【００３０】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３１】
以上、上述した各実施形態によれば、文書のアップロード処理にかかる文書生成サーバのメモリ使用量を抑制することができる。
【００３２】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
0005528229.tif 000002
【図２】
0005528229.tif 000003
【図３】
0005528229.tif 000004
【図４】
0005528229.tif 000005
【図５】
0005528229.tif 000006
【図６】
0005528229.tif 000007
【図７】
0005528229.tif 000008
【図８】
0005528229.tif 000009
【図９】
0005528229.tif 000010
【図１０】
0005528229.tif 000011
【図１１】
0005528229.tif 000012
【図１２】
0005528229.tif 000013
【図１３】
0005528229.tif 000014
【図１４】
0005528229.tif 000015
【図１５】
0005528229.tif 000016