(57)【要約】【課題】ネットワークを跨いで実行される処理の対応関係の把握を容易化すること。【解決手段】１以上のコンピュータを含む情報処理システムであって、機器における所定の処理単位ごとの第一の識別情報を含む、前記機器からの処理要求の受信に応じ、前記処理要求ごとの第二の識別情報を割り当てる第一の割当部と、前記処理要求に応じて実行された処理に関して、前記第一の識別情報及び前記第二の識別情報を対応付けて記憶する記憶部とを有する。【選択図】図３
2014160451.tif 000002
【特許請求の範囲】
【請求項１】
１以上のコンピュータを含む情報処理システムであって、
機器における所定の処理単位ごとの第一の識別情報を含む、前記機器からの処理要求の受信に応じ、前記処理要求ごとの第二の識別情報を割り当てる第一の割当部と、
前記処理要求に応じて実行された処理に関して、前記第一の識別情報及び前記第二の識別情報を対応付けて記憶する記憶部とを有する情報処理システム。
【請求項２】
前記処理要求に応じた処理を構成する処理単位ごとの第三の識別情報を割り当てる第二の割当部と、
前記記憶部は、前記処理単位ごとに、当該処理単位が属する前記処理要求に対して割り当てられた前記第二の識別情報と、当該処理単位に対して割り当てられた前記第三の識別情報とを対応付けて記憶する請求項１記載の情報処理システム。
【請求項３】
前記処理単位を実行し、相互にネットワークによって接続された複数の処理部を有し、
前記第二の割当部は、いずれかの前記処理部から他の前記処理部への処理単位の実行要求に対して、当該処理単位に対する前記第三の識別情報を割り当てる請求項２記載の情報処理システム。
【請求項４】
１以上のコンピュータを含む情報処理システムであって、
機器における所定の処理単位ごとの第二の識別情報を含む、前記機器からの処理要求の受信する受信部と、
前記処理要求に応じた処理を構成する処理単位ごとの第三の識別情報を割り当てる第二の割当部と、
前記処理単位ごとに、前記第二の識別情報と、当該処理単位に対して割り当てられた前記第三の識別情報とを対応付けて記憶する記憶部とを有する情報処理システム。
【請求項５】
前記処理単位を実行し、相互にネットワークによって接続された複数の処理部を有し、
前記複数の処理部のそれぞれが、前記第二の割当部である請求項４記載の情報処理システム。
【請求項６】
１以上のコンピュータを含む情報処理システムが実行する情報処理方法であって、
機器における所定の処理単位ごとの第一の識別情報を含む、前記機器からの処理要求の受信に応じ、前記処理要求ごとの第二の識別情報を割り当てる第一の割当手順と、
前記処理要求に応じて実行された処理に関して、前記第一の識別情報及び前記第二の識別情報を対応付けて記憶部に記憶する記憶手順とを有する情報処理方法。
【請求項７】
１以上のコンピュータを含む情報処理システムが実行する情報処理方法であって、
機器における所定の処理単位ごとの第二の識別情報を含む、前記機器からの処理要求の受信する受信手順と、
前記処理要求に応じた処理を構成する処理単位ごとの第三の識別情報を割り当てる第二の割当手順と、
前記処理単位ごとに、前記第二の識別情報と、当該処理単位に対して割り当てられた前記第三の識別情報とを対応付けて記憶部に記憶する記憶手順とを有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
従来、画像形成装置等の機器と、機器にＬＡＮ（Local Area Network）又はＷＡＮ（Wide Area Network）等を介して接続されるコンピュータ（以下、単に「サーバ」という。）との連携によって提供されるサービスが有る。例えば、画像形成装置が、原稿から画像データをスキャンして、当該画像データをサーバに転送し、サーバが、当該画像データに関する画像処理や、当該画像データを所定のストレージに保存するといったサービスが有る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記のように機器とサーバとの連携によって提供されるサービスにおいて異常が発生した場合、当該異常の発生時における、機器とサーバとのそれぞれの処理の対応関係の特定が困難な場合が有る。一般的に、サーバ及び機器においては、個別にログが記録されている。したがって、双方のログを突き合わせることで、機器側の処理と、サーバ側の処理との対応関係を把握することが可能である。
【０００４】
但し、双方のログを突き合わせるためには、双方の各処理のタイミングが正確に把握される必要がある。双方の各処理のタイミングを把握するための一つの方法として、時刻情報を用いることが考えられる。すなわち、機器側のログの時刻情報と、サーバ側のログの時刻情報とに基づいて、双方の各処理の対応関係を把握することが考えられる。
【０００５】
しかしながら、時刻情報を利用する場合、機器側のシステム時刻と、サーバ側のシステム時刻が正確に一致している必要が有る。また、双方のシステム時刻が正確に一致していたとしても、ネットワーク負荷等によって、機器とサーバとの間で転送されるメッセージに遅延が発生し、機器からの要求に応じたサーバによる処理の開始時期が不安定となる可能性が有る。更に、通常、サーバは、複数の機器と連携するところ、複数の機器から要求された処理が並列的に実行される可能性も有る。
【０００６】
したがって、時刻情報に基づいて機器の処理とサーバの処理との対応関係を把握するのは、実際上、困難な場合が有る。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、ネットワークを跨いで実行される処理の対応関係の把握を容易化することを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、本発明は、１以上のコンピュータを含む情報処理システムであって、機器における所定の処理単位ごとの第一の識別情報を含む、前記機器からの処理要求の受信に応じ、前記処理要求ごとの第二の識別情報を割り当てる第一の割当部と、前記処理要求に応じて実行された処理に関して、前記第一の識別情報及び前記第二の識別情報を対応付けて記憶する記憶部とを有する。
【発明の効果】
【０００９】
ネットワークを跨いで実行される処理の対応関係の把握を容易化することができる。
【図面の簡単な説明】
【００１０】
【図１】第一の実施の形態のクラウドサービスシステムと機器との関係を説明するための図である。
【図２】第一の実施の形態におけるクラウドサービスシステムの機能構成例を示す図である。
【図３】第一の実施の形態におけるクラウドサービスシステムのネットワーク構成例を示す図である。
【図４】第一の実施の形態におけるクラウドサービスシステムを構成する各コンピュータのハードウェア構成例を示す図である。
【図５】第一の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図６】クラウドサービスシステムにおけるログの記録処理の処理手順の一例を説明するためのシーケンス図である。
【図７】画像形成装置からのリクエストを含むメッセージの一例を示す図である。
【図８】ＲＩＤが付与されたメッセージの例を示す図である。
【図９】ＵＩＤが付与されたメッセージの例を示す図である。
【図１０】認証処理に関するサーバログの一例を示す図である。
【図１１】コンテンツ処理に関するサーバログの一例を示す図である。
【図１２】プリントアプリによる処理に関するサーバログの一例を示す図である。
【図１３】機器ログ記憶部の構成例を示す図である。
【図１４】機器ログのアップロード処理の処理手順の一例を説明するためのシーケンス図である。
【図１５】機器ログのアップロード要求を含むメッセージの一例を示す図である。
【図１６】ログ閲覧画面の表示例を示す図である。
【図１７】第二の実施の形態において各ゲートウェイがメッセージの受信時に実行する処理手順の一例を説明するためのフローチャートである。
【図１８】第二の実施の形態において各サーバがメッセージの受信時に実行する処理手順の一例を説明するためのフローチャートである。
【図１９】第三の実施の形態におけるクラウドサービスシステムの機能構成例を示す図である。
【図２０】第三の実施の形態におけるクラウドサービスシステムのネットワーク構成例を示す図である。
【図２１】第三の実施の形態において非同期処理に関して実行される処理手順の一例を説明するためのシーケンス図である。
【図２２】第三の実施の形態において記録されるサーバログの一例を示す図である。
【図２３】第四の実施の形態におけるクラウドサービスシステムの機能構成例を示す図である。
【図２４】第四の実施の形態におけるクラウドサービスシステムのネットワーク構成例を示す図である。
【図２５】ログ活用ＡＰＩの呼び出しに応じて実行される処理手順の一例を説明するためのシーケンス図である。
【図２６】デバイス種別を含むサーバログの一例を示す図である。
【図２７】ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。
【図２８】ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドに関して検索されるログの集計結果を示す情報の第一の例を示す図である。
【図２９】ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。
【図３０】ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドに関して検索されるログの集計結果を示す情報の第二の例を示す図である。
【図３１】ｇｅｔＪｏｂＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。
【図３２】ｇｅｔＪｏｂＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。
【図３３】配信先及びコンテンツ形式を含むサーバログの一例を示す図である。
【図３４】ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。
【図３５】ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。
【図３６】ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドの呼び出しに応じて実行される処理手順の一例を説明するためのシーケンス図である。
【図３７】ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。
【図３８】ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。
【図３９】アプリＩＤの割り当て処理の処理手順の一例を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第一の実施の形態のクラウドサービスシステムと機器との関係を説明するための図である。図１において、クラウドサービスシステム１と、機器利用環境２における各機器２０とは、インターネットに代表されるＷＡＮ（Wide Area Network）等のネットワークＮ１によって通信可能に接続されている。
【００１２】
機器利用環境２は、クラウドサービスシステム１によって提供されるサービスと連携可能な機器２０が利用される環境である。機器利用環境２の一例として、企業におけるオフィス等が挙げられる。図１では、機器２０の一例として、画像形成装置２０ａ、プロジェクタ２０ｂ、及びＴＶ会議用機器２０ｃ等が示されている。
【００１３】
画像形成装置２０ａは、例えば、複合機、プリンタ、スキャナ、ファクシミリ等である。プロジェクタ２０ｂは、画像データを投影する機器である。ＴＶ会議用機器２０ｃは、テレビ会議に利用される機器である。なお、図１に示される機器２０以外の機器に関して、本実施の形態が適用されてもよい。
【００１４】
クラウドサービスシステム１は、機器２０が連携可能な各種サービスをクラウドサービスとして提供する、１以上のコンピュータの集合である。例えば、画像形成装置２０ａと連携したサービスの一例として、画像形成装置２０ａにおいてスキャンされ、画像形成装置２０ａより転送された画像データを、所定のストレージに保存したり、所定の配信先に配信したりするサービス（以下、「クラウドスキャンサービス」という。）が挙げられる。また、クラウドサービスシステム１に予めアップロードされた印刷データを画像形成装置２０ａにダウンロードさせ、当該印刷データに基づく印刷ジョブを、当該画像形成装置２０ａに実行させるサービス（以下、「クラウドプリントサービス」という。）が挙げられる。
【００１５】
なお、クラウドサービスシステム１によるサービスは、必ずしもクラウドサービスとして提供されなくてもよい。例えば、クラウドサービスシステム１は、一般的なサーバクライアントシステムにおけるサーバ側のシステムであってもよい。また、ネットワークＮ１は、ＬＡＮ（Local Area Network）であってもよい。
【００１６】
図２は、第一の実施の形態におけるクラウドサービスシステムの機能構成例を示す図である。クラウドサービスシステム１の機能は、アプリケーション層１２０、共通サービス層１３０、及びデータベース層１４０等の三つの層に分類されている。
【００１７】
アプリケーション層１２０は、クラウドサービスシステム１が提供するサービスを実現するアプリケーション（以下、「サーバアプリ」という。）を含む層である。図２において、アプリケーション層１２０は、ポータルアプリ１２０ａ、スキャンアプリ１２０ｂ、及びプリントアプリ１２０ｃ等を含む。ポータルアプリ１２０ａは、クラウドサービスシステム１が提供するサービスのポータルサイトを提供するサーバアプリである。当該ポータルサイトでは、例えば、ユーザ情報の登録や、サーバアプリに対するユーザごとの設定情報の設定等を行うことができる。スキャンアプリ１２０ｂは、上述したクラウドスキャンサービスに関する処理を実行するサーバアプリである。プリントアプリ１２０ｃは、上述したクラウドプリントサービスに関する処理を実行するサーバアプリである。
【００１８】
共通サービス層１３０は、複数のサーバアプリに共通する機能、又は複数のサーバアプリから利用される基本機能等を含む層である。図２において、共通サービス層１３０は、ログ管理部１３１ａ、認証部１３２ａ、及びコンテンツ処理部１３３ａ等を含む。ログ管理部１３１ａは、アプリケーション層１２０や共通サービス層１３０において実行される処理に関するログ（以下、単に「ログ」という。）について、ログ記憶部１４１ａへの転送等を行う。認証部１３２ａは、ユーザの認証等を行う。コンテンツ処理部１３３ａは、データ形式の変換やＯＣＲ（Optical Character Recognition）処理等、各種のデータ（コンテンツ）に対する処理を実行する。
【００１９】
なお、共通サービス層１３０の各部の機能は、プラットフォームＡＰＩ１５０を介してアプリケーション層１２０に公開されている。換言すれば、アプリケーション層１２０は、プラットフォームＡＰＩ１５０によって公開されている範囲において、共通サービス層１３０の機能を利用可能である。
【００２０】
データベース層１４０は、アプリケーション層１２０又は共通サービス層１３０において実行される処理に必要な情報等を記憶するデータベース（記憶部）を含む層である。図２において、データベース層１４０は、ログ記憶部１４１ａ、ユーザ情報記憶部１４２ａ、機器情報記憶部１４２ｂ、及びアプリ情報記憶部１４２ｃ等を含む。
【００２１】
ログ記憶部１４１ａは、ログを記憶する。ユーザ情報記憶部１４２ａは、クラウドサービスシステム１が提供するサービスのユーザの属性情報を記憶する。機器情報記憶部１４２ｂは、クラウドサービスシステム１が提供するサービスと連携する機器２０に関する属性情報を記憶する。アプリ情報記憶部１４２ｃは、サーバアプリに対する設定情報等を記憶する。当該設定情報は、例えば、ユーザごとに区別されて記憶されてもよい。
【００２２】
なお、図２に示される各ソフトウェア及び各記憶部の分類形態は、一例であり、本実施の形態を実施するために、クラウドサービスシステム１の各機能が、図２に示されるような階層で分類されていることは必須ではない。すなわち、画像形成装置２０ａ等の機器２０が、アプリケーション層１２０等と連携可能であれば、クラウドサービスシステム１における機能の階層構造等は、特定のものに限定されない。
【００２３】
図３は、第一の実施の形態におけるクラウドサービスシステムのネットワーク構成例を示す図である。図３中、図１と同一部分には同一符号を付し、その説明は省略する。
【００２４】
図３において、クラウドサービスシステム１に含まれるネットワークは、セグメントｇ１、ｇ２、ｇ３、及びｇ４等の複数のセグメント（サブネット）に分割されている。以下、各セグメントを区別しない場合、「セグメントｇ」という。
【００２５】
セグメントｇ１は、ネットワークＮ１に対して最前線に位置するセグメントである。図３において、セグメントｇ１には、インターネット用ゲートウェイ１１１が接続されている。インターネット用ゲートウェイ１１１は、ネットワークＮ１からのリクエスト（要求）を、その宛先に応じたセグメントｇに割り振るコンピュータである。本実施の形態において、ネットワークＮ１からのリクエストは、いずれかの機器２０より送信されるリクエストである。当該リクエストを、以下、単に「リクエスト」という。
【００２６】
セグメントｇ２は、アプリケーション層１２０に対応するセグメントである。図３において、セグメントｇ２には、アプリケーションサーバ１２１及びアプリ用ゲートウェイ１２２等が接続されている。アプリケーションサーバ１２１は、ポータルアプリ１２０ａ、スキャンアプリ１２０ｂ、及びプリントアプリ１２０ｃ等のサーバアプリが実装されているコンピュータである。アプリ用ゲートウェイ１２２は、アプリケーションサーバ１２１に対するリクエストに応じた処理の負荷分散を図ったり、セグメントｇ２へのリクエストの通過の許否を判定したりするコンピュータである。すなわち、図３において一つの矩形で示されているアプリケーションサーバ１２１は、複数存在してもよく、この場合、アプリ用ゲートウェイ１２２は、複数のアプリケーションサーバ１２１に対してリクエストを分散させる。
【００２７】
セグメントｇ３は、共通サービス層１３０に対応するセグメントである。図３において、セグメントｇ３には、ログ管理サーバ１３１、認証サーバ１３２、コンテンツ処理サーバ１３３、及び共通サービス用ゲートウェイ１３４等が接続されている。ログ管理サーバ１３１は、ログ管理部１３１ａとして機能するコンピュータである。認証サーバ１３２は、認証部１３２ａとして機能するコンピュータである。コンテンツ処理サーバ１３３は、コンテンツ処理部１３３ａとして機能するコンピュータである。共通サービス用ゲートウェイ１３４は、共通サービスに関する処理の負荷分散を図ったり、セグメントｇ３への処理要求の通過の許否を判定したりするコンピュータである。すなわち、図３において、それぞれ一つの矩形で示されているログ管理サーバ１３１、認証サーバ１３２、及びコンテンツ処理サーバ１３３は、複数存在してもよく、この場合、共通サービス用ゲートウェイ１３４は、複数のサーバに対して処理要求を分散させる。
【００２８】
なお、ログ管理サーバ１３１、認証サーバ１３２、及びコンテンツ処理サーバ１３３に対する処理要求は、プラットフォームＡＰＩ１５０に準拠した形式で行われる。プラットフォームＡＰＩ１５０は、例えば、ＲＥＳＴベースのＡＰＩ（Application Program Interface）等、ネットワークを介したＡＰＩとして実現される。
【００２９】
セグメントｇ４は、データベース層１４０に対応するセグメントである。図３において、セグメントｇ４には、ログ記憶サーバ１４１、ユーザ情報記憶サーバ１４２、及びデータベース用ゲートウェイ１４３等が接続されている。ログ記憶サーバ１４１は、ログ記憶部１４１ａとして機能するコンピュータである。ユーザ情報記憶サーバ１４２は、ユーザ情報記憶部１４２ａ、機器情報記憶部１４２ｂ、及びアプリ情報記憶部１４２ｃとして機能するコンピュータである。データベース用ゲートウェイ１４３は、セグメントｇ４に対する処理要求に応じた処理の負荷分散を図ったり、セグメントｇ４への処理要求の通過の許否を判定したりするコンピュータである。すなわち、図３において、それぞれ一つの矩形で示されているログ記憶サーバ１４１及びユーザ情報記憶サーバ１４２は、複数存在してもよく、その場合、データベース用ゲートウェイ１４３は、複数のログ記憶サーバ１４１に対して処理要求を分散させる。
【００３０】
なお、各セグメントｇの間や、ネットワークＮ１とセグメントｇ１との間には、ファイアウォールＦＷが設置されている。
【００３１】
図３に示されるようなネットワーク構成によれば、重要な情報を管理するコンピュータほど、高いセキュリティを確保することができる。例えば、ログ記憶サーバ１４１が記憶するログには、機器利用環境２に固有の情報（すなわち、ユーザに固有の情報）が含まれうる。斯かるログが外部からアクセスされ、盗まれることは、回避されなければならない。したがって、本実施の形態において、ログ記憶サーバ１４１は、ネットワークＮ１から最も離れたセグメントｇ４に接続されている。ユーザ情報記憶サーバ１４２も、同様の理由により、セグメントｇ４に接続されている。
【００３２】
図４は、第一の実施の形態におけるクラウドサービスシステムを構成する各コンピュータのハードウェア構成例を示す図である。なお、図４の説明において、「コンピュータ」とは、図３におけるインターネット用ゲートウェイ１１１、アプリ用ゲートウェイ１２２、アプリケーションサーバ１２１、共通サービス用ゲートウェイ１３４、ログ管理サーバ１３１、認証サーバ１３２、コンテンツ処理サーバ１３３、データベース用ゲートウェイ１４３、ログ記憶サーバ１４１、及びユーザ情報記憶サーバ１４２等のことをいう。
【００３３】
図４に示されるように、各コンピュータは、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００３４】
各コンピュータでの処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３５】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って各コンピュータに係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００３６】
なお、図２に示されるアプリケーション層１２０又は共通サービス層１３０に属する各部は、各コンピュータにインストールプログラムが、各コンピュータのＣＰＵ１０４に実行させる処理により実現される。また、データベース層１４０に属する各記憶部は、例えば、各コンピュータの補助記憶装置１０２を利用して実現可能である。
【００３７】
図５は、第一の実施の形態における画像形成装置のソフトウェア構成例を示す図である。図５において、画像形成装置２０ａは、１以上のクライアントアプリ２１、アプリケーションプラットフォーム２２、アップロード部２３、及び機器ログ記憶部２４等を有する。
【００３８】
クライアントアプリ２１は、いずれかのサーバアプリと連携して、当該サーバアプリに係るサービスをユーザに提供するアプリケーションである。基本的に、サーバアプリとクライアントアプリ２１とは、一対一に対応する。したがって、例えば、クラウドスキャンサービスを利用したい場合、ユーザは、画像形成装置２０ａに対してクラウドスキャンサービス用のクライアントアプリ２１をインストールする必要がある。
【００３９】
アプリケーションプラットフォーム２２は、クライアントアプリ２１を開発するためのＡＰＩ（Application Program Interface）を備えると共に、クライアントアプリ２１の実行環境を提供する。ＡＰＩの形態は、例えば、関数であってもよいし、オブジェクト指向のクラス及びクラスのメソッド等であってもよい。例えば、アプリケーションプラットフォーム２２は、スキャン機能に関するＡＰＩ、印刷機能に関するＡＰＩ、コピー機能に関するＡＰＩ等をクライアントアプリ２１に提供する。なお、アプリケーションプラットフォーム２２は、Ｊａｖａ（登録商標）ＶＭ（Virtual Machine）を含んでいてもよい。この場合、クライアントアプリ２１は、Ｊａｖａ（登録商標）言語によって実装されてもよい。
【００４０】
アプリケーションプラットフォーム２２は、また、サーバアプリとクライアントアプリ２１とを連携させるための機構や、画像形成装置２０ａにおける処理に関するログ（以下、「機器ログ」という。）の記録機能等をも有する。
【００４１】
機器ログ記憶部２４は、機器ログを記憶する。機器ログ記憶部２４は、例えば、画像形成装置２０ａが有する補助記憶装置、又は画像形成装置２０ａにネットワークを介して接続される記憶装置等を用いて実現可能である。
【００４２】
アップロード部２３は、機器ログ記憶部２４に記憶されている機器ログをログ記憶サーバ１４１へアップロードするための処理を実行する。
【００４３】
なお、プロジェクタ２０ｂ及びＴＶ会議用機器２０ｃ等、画像形成装置２０ａ以外の機器２０についても、図２と同様のソフトウェア構成を有していてもよい。
【００４４】
以下、クラウドサービスシステム１において実行される処理手順について説明する。図６は、クラウドサービスシステムにおけるログの記録処理の処理手順の一例を説明するためのシーケンス図である。図６では、画像形成装置２０ａにおいて、クラウドプリントサービス（プリントアプリ１２０ｃ）に対応するクライアントアプリ２１が操作対象とされていることを前提とする。但し、図６に示した処理手順は、ログの記録処理を説明するための便宜的なものであり、クラウドプリントサービスが必ずしも図６に示される処理手順で実行されるとは限らない。
【００４５】
画像形成装置２０ａの操作者によって、何らかの操作が行われ（Ｓ１０１）、当該操作に応じて、クラウドサービスシステム１に対してリクエストの送信が必要である場合、クライアントアプリ２１は、アプリケーションプラットフォーム２２を介して、当該リクエストを含むメッセージをプリントアプリ１２０ｃ宛に送信する（Ｓ１０２）。
【００４６】
図７は、画像形成装置からのリクエストを含むメッセージの一例を示す図である。本実施の形態において、画像形成装置２０ａとクラウドサービスシステム１との間では、ＨＴＴＰ（HyperText Transfer Protocol）通信によって、メッセージのやりとりが行われる。したがって、図７に示されるメッセージｍ１は、ＨＴＴＰメッセージの形式に準拠している。他の通信プロトコルが利用される場合、メッセージｍ１の形式は、当該他の通信プロトコルに準拠した形式にされればよい。
【００４７】
メッセージｍ１において、記述ｄ１は、リクエストの内容を示す。図７では、「ｓａｍｐｌｅ／ｄａｔａ／ｐｒｅｖｉｅｗ」の取得（ＧＥＴ）が要求されていることが示されている。「ｓａｍｐｌｅ／ｄａｔａ／ｐｒｅｖｉｅｗ」は、例えば、クラウドサービスシステム１に登録されている印刷データの一覧を意味する。
【００４８】
記述ｄ２は、メッセージｍ１のヘッダを構成するフィールド（項目）群の一部を示す。各フィールドは、＜フィールド名＞：＜値＞の形式を有する。Ｘ−ＣＵＩＤフィールドの値は、ＣＵＩＤ（クライアントユニークＩＤ）と呼ばれる識別情報である。本実施の形態において、ＣＵＩＤは、画像形成装置２０ａにおける所定の処理単位ごとに割り当てられる識別情報である。本実施の形態において、所定の処理単位の一例は、操作者による操作の検知から、当該操作に応じた応答が出力されるまでに実行される一連の処理である。ＣＵＩＤは、例えば、単に画面遷移を生じさせるだけの操作等、全ての操作ごとに割り当てられてもよいし、クラウドサービスシステム１に対してメッセージを送信させる契機となる操作ごとに割り当てられてもよい。ＣＵＩＤは、例えば、ステップＳ１０１における操作を検知するアプリケーションプラットフォーム２２によって割り当てられる。アプリケーションプラットフォーム２２は、検知した操作を、現在操作対象とされているクライアントアプリ２１に通知する。
【００４９】
Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールドの値は、機体番号である。機体番号とは、画像形成装置２０ａの機体（個体）ごとの識別情報である。例えば、製造番号又はＭＡＣアドレス等が機体番号として用いられてもよい。機体番号は、例えば、画像形成装置２０ａの記憶装置に記憶されている。
【００５０】
なお、フィールド名が「Ｘ−」で始まるフィールドは、本実施の形態において拡張されたフィールドである。
【００５１】
Ｕｓｅｒ−Ａｇｅｎｔフィールドの値は、操作対象のクライアントアプリ２１が対応するサービスの名前（サービス名）である。但し、当該フィールドの値の括弧内は、アプリケーションプラットフォーム２２のバージョン情報等である。
【００５２】
記述ｄ３は、操作者を識別するためのユーザ情報である。ユーザ情報は、組織ＩＤ（ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄ）及びユーザＩＤ（ｕｓｅｒ＿ｉｄ）を含む。組織ＩＤは、ユーザが属する組織（例えば、企業）に対する識別情報である。ユーザＩＤは、当該組織内において、各ユーザを識別するための識別情報である。すなわち、クラウドサービスシステム１は、複数の組織（例えば、企業）より利用されることを想定している。したがって、組織内で一意なユーザＩＤであっても、組織を跨いで重複してしまう可能性が有る。組織ＩＤは、斯かる重複を解消することを目的の一つとして設けられた識別情報である。
【００５３】
なお、組織ＩＤ及びユーザＩＤは、図６に示される処理手順の前に実行されるログイン時に入力されてもよいし、ステップＳ１０１において入力されてもよい。
【００５４】
クラウドサービスシステム１に対する全てのメッセージは、まず、インターネット用ゲートウェイ１１１によって受信される。したがって、メッセージｍ１についても、インターネット用ゲートウェイ１１１によって受信される。インターネット用ゲートウェイ１１１は、メッセージｍ１を受信すると、機器２０からのリクエストごとの識別情報であるＲＩＤ（リクエストＩＤ）を生成し、生成されたＲＩＤをメッセージｍ１に対して付与する（Ｓ１０３）。すなわち、インターネット用ゲートウェイ１１１において、クラウドサービスシステム１の外部からのメッセージ（リクエスト）が受信されるたびに、新たな値を有するＲＩＤが生成され、当該メッセージに対して当該ＲＩＤが付与される。したがって、基本的に、ＣＵＩＤとＲＩＤとは、一対一に対応する。
【００５５】
続いて、インターネット用ゲートウェイ１１１は、メッセージｍ１に対してＲＩＤが付与されたメッセージｍ１−１を、その宛先であるプリントアプリ１２０ｃが実装されているアプリケーションサーバ１２１へ転送する（Ｓ１０４）。
【００５６】
図８は、ＲＩＤが付与されたメッセージの例を示す図である。図８中、図７と同一部分には同一符号を付し、その説明は省略する。図８に示されるメッセージｍ１−１では、メッセージｍ１における記述ｄ２が、記述ｄ２１に置き換えられている。記述ｄ２１は、記述ｄ２に含まれていたフィールドに加え、Ｘ−ＲＩＤフィールドが含まれている。Ｘ−ＲＩＤフィールドの値は、ＲＩＤである。すなわち、ステップＳ１０３では、Ｘ−ＲＩＤフィールドが追加される。
【００５７】
セグメントｇ２に属するアプリケーションサーバ１２１宛のメッセージｍ１−１は、まず、アプリ用ゲートウェイ１２２によって受信される。アプリ用ゲートウェイ１２２は、セグメントｇ２に属するサーバ宛のメッセージ（処理の実行要求）ごとの識別情報であるＵＩＤ（ユニークＩＤ）を生成し、生成されたＵＩＤをメッセージｍ１−１に対して付与する（Ｓ１０５）。すなわち、アプリ用ゲートウェイ１２２において、セグメントｇ２の外部からのメッセージ（リクエスト）が受信されるたびに、新たなＵＩＤが生成され、当該メッセージに対して当該ＵＩＤが付与される。
【００５８】
続いて、アプリ用ゲートウェイ１２２は、メッセージｍ１−１に対してＵＩＤが付与されたメッセージｍ１−２を、その宛先であるアプリケーションサーバ１２１へ転送する（Ｓ１０６）。
【００５９】
図９は、ＵＩＤが付与されたメッセージの例を示す図である。図９中、図８と同一部分には同一符号を付し、その説明は省略する。図９に示されるメッセージｍ１−２では、メッセージｍ１−１における記述ｄ２１が、記述ｄ２２に置き換えられている。記述ｄ２２は、記述ｄ２１に含まれていたフィールドに加え、Ｘ−ＵＩＤフィールドが含まれている。Ｘ−ＵＩＤフィールドの値は、ＵＩＤである。すなわち、ステップＳ１０５では、Ｘ−ＵＩＤフィールドが追加される。
【００６０】
アプリケーションサーバ１２１においてメッセージｍ１−２が受信されると、プリントアプリ１２０ｃは、メッセージｍ１−２の記述ｄ１に示されているリクエストに応じた処理を実行する。ここで、当該処理の過程において、クラウドサービスシステム１内における他のサーバへの処理要求が必要になった場合を想定する。例えば、認証サーバ１３２（認証部１３２ａ）に対する認証要求が必要になったとする。この場合、プリントアプリ１２０ｃは、認証要求を含むメッセージｍ２を、認証サーバ１３２宛に送信する（Ｓ１０７）。なお、メッセージｍ２には、認証要求を示す記述の他に、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールド、Ｘ−ＲＩＤフィールド、Ｕｓｅｒ−Ａｇｅｎｔフィールド、及びユーザ情報等を含む。メッセージｍ２におけるこれらのフィールドの値は、メッセージｍ１−２における同名のフィールドの値と同じである。また、メッセージｍ２におけるユーザ情報の内容は、メッセージｍ１−２におけるユーザ情報（記述ｄ３）と同じである。すなわち、機器２０からのリクエストに応じてクラウドサービスシステム１に属するサーバ間でやりとりされる処理要求には、当該リクエストに対して割り当てられたＲＩＤと、当該リクエストのメッセージに含まれていた機体番号、サービス名、及びユーザ情報等とが転記される。したがって、当該ＲＩＤ、当該機体番号、当該サービス名、及び当該ユーザ情報等は、各サーバに引き渡される。一方、メッセージｍ２には、メッセージｍ１−２に含まれていたＵＩＤは含まれない。メッセージｍ２は、認証サーバ１３２に対する処理要求であるところ、当該ＵＩＤは、アプリケーションサーバ１２１に対する処理要求の識別情報だからである。
【００６１】
セグメントｇ３に属する認証サーバ１３２宛のメッセージｍ２は、まず、共通サービス用ゲートウェイ１３４によって受信される。共通サービス用ゲートウェイ１３４は、セグメントｇ３に属するサーバ宛のメッセージごとの識別情報であるＵＩＤを生成し、生成されたＵＩＤをメッセージｍ２に対して付与する（Ｓ１０８）。すなわち、共通サービス用ゲートウェイ１３４において、セグメントｇ３の外部からのメッセージ（処理要求）が受信されるたびに、新たなＵＩＤが生成され、当該メッセージに対して当該ＵＩＤを値とするＸ−ＵＩＤフィールドが追加される。
【００６２】
続いて、共通サービス用ゲートウェイ１３４は、メッセージｍ２に対してＵＩＤが付与されたメッセージｍ２−１を、その宛先である認証サーバ１３２へ転送する（Ｓ１０９）。
【００６３】
認証サーバ１３２は、メッセージｍ２−１を受信すると、メッセージｍ２−１に含まれている認証要求に応じた認証処理を実行する（Ｓ１１０）。続いて、認証サーバ１３２は、認証サーバ１３２内の補助記憶装置１０２に、認証処理に関するログを記録する（Ｓ１１１）。以下、クラウドサービスシステム１を構成するサーバによって記録されるログを、「サーバログ」という。
【００６４】
図１０は、認証処理に関するサーバログの一例を示す図である。図１０に示されるように、サーバログＬ１は、複数のフィールド（項目）を含む。各フィールドは、「＜フィールド名＞：＜値＞」の形式を有し、フィールド間は、カンマ（，）によって区切られている。
【００６５】
具体的には、サーバログＬ１は、ｌｅｖｅｌフィールド、ｒｅｓｕｌｔフィールド、ｍｅｔｈｏｄフィールド、ｐａｔｈフィールド、ａｐｐ＿ｉｄフィールド、ａｐｐ＿ｎａｍｅフィールド、ｉｐフィールド、ｔｏｔａｌ＿ｒｕｎｔｉｍｅフィールド、Ｘ−ＲＩＤフィールド、Ｘ−ＵＩＤフィールド、ＵｓｅｒＡｇｅｎｔフィールド、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールド、ｕｓｅｒ＿ｉｄフィールド、ｉｎｑｕｉｒｙ＿ｃｏｄｅフィールド、ｔｉｍｅフィールド、及びｍｉｃｒｏ＿ｓｅｃｏｎｄフィールド等を含む。
【００６６】
ｌｅｖｅｌフィールドの値は、サーバログのレベルを示す。サーバログのレベルとは、サーバログの内容の種別をいう。例えば、当該フィールドの値の候補には、ＩＮＦＯ及びＥＲＲＯＲ等が有る。ＩＮＦＯは、実行された処理の情報に関するサーバログであることを示す。ＥＲＲＯＲは、異常の発生に関するサーバログであることを示す。
【００６７】
ｒｅｓｕｌｔフィールドの値は、認証サーバ１３２による処理の結果を示す数値（コード）である。ｍｅｔｈｏｄフィールドの値は、認証サーバ１３２に対する処理要求（メッセージｍ２−１）に含まれていたメソッドである。ｐａｔｈフィールドの値は、当該処理要求を示すＵＲＬ（Uniform Resource Locator）のパスである。ａｐｐ＿ｉｄフィールドの値は、認証サーバ１３２において、当該処理要求に応じた処理を実行したプログラムモジュールに割り当てられた、プログラムモジュールごとの識別情報である。すなわち、ａｐｐ＿ｉｄフィールドの値は、認証サーバ１３２を認証部１３２ａとして機能させるプログラムモジュールの名前である。ａｐｐ＿ｎａｍｅフィールドの値は、ａｐｐ＿ｉｄフィールドの値に係るプログラムモジュールに関して、例えば、開発者等によって付与された名前である。ｉｐフィールドの値は、当該処理要求に応じた処理を実行した認証サーバ１３２のＩＰアドレスである。ｔｏｔａｌ＿ｒｕｎｔｉｍｅフィールドの値は、当該処理要求に応じた処理の所要時間である。
【００６８】
Ｘ−ＲＩＤフィールドの値は、当該処理要求が属するリクエストに対するＲＩＤである。当該処理要求が属するリクエストとは、当該処理要求の元となった画像形成装置２０ａからのリクエストをいう。したがって、サーバログＬ１のＸ−ＲＩＤフィールドには、メッセージｍ２−１に含まれているＸ−ＲＩＤフィールドの値が転記される。Ｘ−ＵＩＤフィールドの値は、当該処理要求に対して割り当てられたＵＩＤである。したがって、サーバログＬ１のＸ−ＵＩＤフィールドには、メッセージｍ２−１に含まれているＸ−ＵＩＤフィールドの値が転記される。Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールドの値は、当該処理要求が属するリクエストの送信元の画像形成装置２０ａの機体番号である。したがって、サーバログＬ１のＸ−Ｄｅｖｉｃｅ−ＩＤフィールドには、メッセージｍ２−１に含まれているＸ−Ｄｅｖｉｃｅ−ＩＤフィールドの値が転記される。ＵｓｅｒＡｇｅｎｔフィールドの値は、当該処理要求が属するリクエストの送信元の画像形成装置２０ａが利用するサービスのサービス名等である。したがって、サーバログＬ１のＵｓｅｒＡｇｅｎｔフィールドには、メッセージｍ２−１に含まれているＵｓｅｒ−Ａｇｅｎｔフィールドの値が転記される。
【００６９】
ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールドの値は、当該処理要求が属するリクエストの送信元の画像形成装置２０ａが属する組織の組織ＩＤである。したがって、サーバログＬ１のｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールドには、メッセージｍ２−１に含まれている組織ＩＤが転記される。
【００７０】
ｕｓｅｒ＿ｉｄフィールドの値は、当該処理要求が属するリクエストの送信元の画像形成装置２０ａの操作者のユーザＩＤである。したがって、サーバログＬ１のｕｓｅｒ＿ｉｄフィールドには、メッセージｍ２−１に含まれているユーザＩＤが転記される。
【００７１】
ｉｎｑｕｉｒｙ＿ｃｏｄｅフィールドは、ｌｅｖｅｌフィールドの値がＥＲＲＯＲである場合に有効なフィールドであり、その値は、異常の内容を示す数値（エラーコード）である。ｔｉｍｅフィールドの値は、サーバログＬ１が記録された日時である。ｍｉｃｒｏ＿ｓｅｃｏｎｄフィールドの値は、サーバログＬ１が記録された時刻のマイクロ秒単位の値である。
【００７２】
続いて、認証サーバ１３２は、メッセージｍ２−１に対する応答を返信する（Ｓ１１２）。当該応答には、例えば、認証の成否を示す情報等が含まれる。当該応答は、共通サービス用ゲートウェイ１３４を経由して、アプリケーションサーバ１２１に返信される（Ｓ１１３）。厳密には、当該応答は、アプリ用ゲートウェイ１２２も経由する。
【００７３】
また、認証サーバ１３２は、ステップＳ１１１において記録したサーバログＬ１を、適当なタイミングでログ管理サーバ１３１（ログ管理部１３１ａ）に転送する（Ｓ１１４）。サーバログＬ１の転送は、サーバログＬ１の記録とは非同期に実行されてもよい。ログ管理サーバ１３１は、サーバログＬ１を含み、サーバログＬ１の保存要求を示すメッセージｍ３を、ログ記憶サーバ１４１宛に送信する（Ｓ１１５）。
【００７４】
なお、メッセージｍ３は、サーバログＬ１自体の記述及びサーバログＬ１の保存要求を示す記述の他に、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールド、Ｘ−ＲＩＤフィールド、Ｕｓｅｒ−Ａｇｅｎｔフィールド、及びユーザ情報等を含む。メッセージｍ３におけるこれらのフィールドの値は、メッセージｍ２−１における同名のフィールドの値と同じである。また、メッセージｍ３におけるユーザ情報の内容は、メッセージｍ２−１におけるユーザ情報と同じである。
【００７５】
セグメントｇ４に属するログ記憶サーバ１４１宛のメッセージｍ３は、まず、データベース用ゲートウェイ１４３によって受信される。データベース用ゲートウェイ１４３は、セグメントｇ４に属するサーバ宛のメッセージごとの識別情報であるＵＩＤを生成し、生成されたＵＩＤをメッセージｍ３に対して付与する（Ｓ１１６）。すなわち、データベース用ゲートウェイ１４３において、セグメントｇ４の外部からのメッセージ（処理要求）が受信されるたびに、新たなＵＩＤが生成され、当該メッセージに対して当該ＵＩＤを値とするＸ−ＵＩＤフィールドが追加される。
【００７６】
続いて、データベース用ゲートウェイ１４３は、メッセージｍ３に対してＵＩＤが付与されたメッセージｍ３−１を、その宛先であるログ記憶サーバ１４１へ転送する（Ｓ１１７）。ログ記憶サーバ１４１は、メッセージｍ３−１に含まれている、認証処理に関するサーバログＬ１を、例えば、ログ記憶サーバ１４１の補助記憶装置１０２に記憶する。
【００７７】
続いて、認証サーバ１３２からの応答が受信されたアプリケーションサーバ１２１のプリントアプリ１２０ｃの処理の過程において、コンテンツ処理サーバ１３３に対してコンテンツ処理に関する処理要求（以下、「コンテンツ処理要求」という。）を行う必要が生じたとする。この場合、プリントアプリ１２０ｃは、コンテンツ処理要求を含むメッセージｍ４を、コンテンツ処理サーバ１３３宛に送信する（Ｓ１２１）。なお、メッセージｍ４には、コンテンツ処理要求を示す記述の他に、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールド、Ｘ−ＲＩＤフィールド、Ｕｓｅｒ−Ａｇｅｎｔフィールド、及びユーザ情報等を含む。メッセージｍ４におけるこれらのフィールドの値は、メッセージｍ１−２における同名のフィールドの値と同じである。また、メッセージｍ４におけるユーザ情報の内容は、メッセージｍ１−２におけるユーザ情報（記述ｄ３）と同じである。一方、メッセージｍ４には、メッセージｍ１−２に含まれていたＵＩＤは含まれない。
【００７８】
セグメントｇ３に属するコンテンツ処理サーバ１３３宛のメッセージｍ４は、まず、共通サービス用ゲートウェイ１３４によって受信される。共通サービス用ゲートウェイ１３４は、セグメントｇ３に属するサーバ宛のメッセージごとの識別情報であるＵＩＤを生成し、生成されたＵＩＤをメッセージｍ４に対して付与する（Ｓ１２２）。なお、メッセージｍ４に付与されるＵＩＤは、ステップＳ１０５において、アプリケーションサーバ１２１宛のメッセージｍ１−２に付与されるＵＩＤや、ステップＳ１０７において、認証サーバ１３２宛のメッセージｍ２に付与されるＵＩＤとは異なる。ＵＩＤは、クラウドサービスシステム１内におけるサーバ間のそれぞれの処理要求を識別するためのものだからである。
【００７９】
このように、画像形成装置２０ａからの同一のリクエストに応じて行われる処理又は処理要求ごとに、異なる値のＵＩＤが割り当てられるのが望ましい。ＵＩＤは、各処理又は処理要求を識別又は区別するための識別情報だからである。
【００８０】
しかし、ステップＳ１０５においてメッセージｍ１−２にＵＩＤを付与するのはアプリ用ゲートウェイ１２２であるところ、ステップＳ１０５又はＳ１２２においてメッセージｍ２又はメッセージｍ４に対してＵＩＤを付与するのは共通サービス用ゲートウェイ１３４である。すなわち、画像形成装置２０ａからの同一のリクエストに応じて行われる処理又は処理要求に関して、ＵＩＤを付与する主体は複数存在する。そうすると、ＵＩＤの付与主体ごと（ゲートウェイごと）にＵＩＤの一意性が保証されていたとしても、複数のゲートウェイを跨いで、同一のＲＩＤに属する各ＵＩＤの一意性が保証されるとは限らない。
【００８１】
そこで、例えば、ＵＩＤは、乱数等を用いてランダムに生成されるようにしてもよい。または、各ゲートウェイのタイマを同期させておき、タイマによって計測される時刻情報をＵＩＤに含めるようにしてもよい。または、各ゲートウェイが相互に通信を行い、割当済みのＵＩＤの値を交換するようにしてもよい。または、一つのゲートウェイ（例えば、インターネット用ゲートウェイ１１１）が、ＲＩＤごとに、割当済みのＵＩＤを一元的に管理し、ＵＩＤを割り当てる他のゲートウェイは、インターネット用ゲートウェイ１１１に割当済みのＵＩＤを問い合わせるようにしてもよい。当該他のゲートウェイは、割り当てられていないＵＩＤを割り当てた後、当該ＵＩＤをインターネット用ゲートウェイ１１１に通知するようにしてもよい。
【００８２】
以上のいずれかの機構を設けることにより、同一のＲＩＤに属する各ＵＩＤが重複する可能性を低減させることができる。また、他の方法を用いて、ＵＩＤの重複が回避されてもよい。
【００８３】
続いて、共通サービス用ゲートウェイ１３４は、メッセージｍ４に対してＵＩＤが付与されたメッセージｍ４−１を、その宛先であるコンテンツ処理サーバ１３３へ転送する（Ｓ１２３）。
【００８４】
コンテンツ処理サーバ１３３は、メッセージｍ４−１を受信すると、メッセージｍ４−１に含まれているコンテンツ処理要求に応じたコンテンツ処理を実行する（Ｓ１２４）。続いて、コンテンツ処理サーバ１３３は、コンテンツ処理サーバ１３３内の補助記憶装置１０２に、コンテンツ処理に関するサーバログを記録する（Ｓ１２５）。
【００８５】
図１１は、コンテンツ処理に関するサーバログの一例を示す図である。図１１に示されるように、コンテンツ処理に関するサーバログＬ２は、認証処理に関するサーバログＬ１と同じフィールドを含む。このように、クラウドサービスシステム１内の各サーバによって生成されるサーバログを構成するフィールドは共通する。但し、各サーバにおいて生成されるサーバログには、サーバごとに固有のフィールドが含まれてもよい。また、各フィールドの値は、サーバごとに異なりうる。また、Ｘ−ＲＩＤフィールド、Ｘ−ＵＩＤフィールド、ＸＤｅｖｉｃｅフィールド、ＵｓｅｒＡｇｅｎｔフィールド、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールド、及びｕｓｅｒ＿ｉｄフィールドのそれぞれには、メッセージｍ４−１に含まれている同名のフィールドの値が転記される。すなわち、画像形成装置２０ａからの同一のリクエストに基づいて実行される各サーバによる処理に関するサーバログのＸ−ＲＩＤフィールド、ＸＤｅｖｉｃｅフィールド、ＵｓｅｒＡｇｅｎｔフィールド、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールド、及びｕｓｅｒ＿ｉｄフィールドの値は共通する。したがって、Ｘ−ＲＩＤフィールドの値の共通性に基づいて、各サーバログが、機器２０からの同じリクエストに基づいて実行された処理に関するサーバログであるか否かを判定することができる。一方、Ｘ−ＵＩＤフィールドの値は、サーバ間の処理要求ごとに異なる。具体的には、サーバログＬ１とサーバログＬ２とでは、Ｘ−ＵＩＤフィールドの値は異なる。したがって、Ｘ−ＵＩＤフィールドの値に基づいて、各サーバログが、サーバ間の同一の処理要求に関するサーバログであるか否かを判定することができる。
【００８６】
続いて、コンテンツ処理サーバ１３３は、メッセージｍ４−１に対する応答を返信する（Ｓ１２６）。当該応答には、例えば、要求されたコンテンツ処理の成否を示す情報等が含まれる。当該応答は、共通サービス用ゲートウェイ１３４を経由して、アプリケーションサーバ１２１に返信される（Ｓ１２７）。厳密には、当該応答は、アプリ用ゲートウェイ１２２も経由する。
【００８７】
また、コンテンツ処理サーバ１３３は、ステップＳ１２５において記録したサーバログＬ２を、適当なタイミングでログ管理サーバ１３１（ログ管理部１３１ａ）に転送する（Ｓ１２８）。サーバログＬ２の転送は、サーバログＬ２の記録とは非同期に実行されてもよい。ログ管理サーバ１３１は、サーバログＬ２を含み、サーバログＬ２の保存要求を示すメッセージｍ５を、ログ記憶サーバ１４１宛に送信する（Ｓ１２９）。
【００８８】
なお、メッセージｍ５には、サーバログＬ２自体の記述及びサーバログＬ２の保存要求を示す記述の他に、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールド、Ｘ−ＲＩＤフィールド、Ｕｓｅｒ−Ａｇｅｎｔフィールド、及びユーザ情報等を含む。メッセージｍ５におけるこれらのフィールドの値は、メッセージｍ４−１における同名のフィールドの値と同じである。また、メッセージｍ５におけるユーザ情報の内容は、メッセージｍ４−１におけるユーザ情報と同じである。
【００８９】
続いて、メッセージｍ５に関して、メッセージｍ３に関する処理（Ｓ１１６及びＳ１１７）と同様の処理が実行される（Ｓ１３０及びＳ１３１）。その結果、サーバログＬ２が、ログ記憶サーバ１４１の補助記憶装置１０２に記憶される。
【００９０】
一方、アプリケーションサーバ１２１において、コンテンツ処理サーバ１３３からの応答が受信され、更に、画像形成装置２０ａからのリクエストに応じた全ての処理が完了すると、プリントアプリ１２０ｃは、当該処理に関するサーバログを記録する（Ｓ１４１）。当該サーバログは、例えば、アプリケーションサーバ１２１内の補助記憶装置１０２に記録される。
【００９１】
図１２は、プリントアプリによる処理に関するサーバログの一例を示す図である。図１２では、サーバログＬ３−１及びサーバログＬ３−２の二つのサーバログが示されている。サーバログＬ３−１は、画像形成装置２０ａからのリクエストに応じた処理が正常に終了した場合に記録されるサーバログの例である。サーバログＬ３−２は、画像形成装置２０ａからのリクエストに応じた処理において異常が発生した場合に記録されるサーバログの例である。したがって、サーバログＬ３−２のｌｅｖｅｌフィールドの値は、ＥＲＲＯＲとなっている。以下、サーバログＬ３−１とサーバログＬ３−２とを区別しない場合、「サーバログＬ３」という。
【００９２】
サーバログＬ３は、サーバログＬ１やサーバログＬ２が含むフィールドに加え、Ｘ−ＣＵＩＤフィールドを含む。図１２の例では、Ｘ−ＣＵＩＤフィールドは、サーバログＬ３の最後のフィールドとされている。Ｘ−ＣＵＩＤフィールドの値は、画像形成装置２０ａからのリクエストを含むメッセージｍ１−２（図９）に含まれていたＣＵＩＤである。
【００９３】
このように、画像形成装置２０ａ等の機器２０からのリクエストに応じた処理全体を制御するアプリケーションサーバ１２１において記録されるサーバログには、当該リクエストに対応するＲＩＤに加えＣＵＩＤが含まれる。したがって、アプリケーションサーバ１２１のサーバログによって、ＲＩＤとＣＵＩＤとの関連付け又は対応付けが確保される。
【００９４】
なお、サーバログＬ３のＸ−ＲＩＤフィールド、Ｘ−ＵＩＤフィールド、ＸＤｅｖｉｃｅフィールド、ＵｓｅｒＡｇｅｎｔフィールド、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールド、及びｕｓｅｒ＿ｉｄフィールドのそれぞれには、メッセージｍ１−２に含まれている同名のフィールドの値が転記される。
【００９５】
続いて、プリントアプリ１２０ｃ（アプリケーションサーバ１２１）は、メッセージｍ１−２に対する応答を返信する（Ｓ１４２）。当該応答には、メッセージｍ１−２に含まれているリクエストに応じた処理の成否を示す情報等が含まれる。当該応答は、アプリ用ゲートウェイ１２２及びインターネット用ゲートウェイ１１１を経由して、画像形成装置２０ａに返信される（Ｓ１４３、Ｓ１４４）。
【００９６】
画像形成装置２０ａにおいて、当該応答が受信されると、アプリケーションプラットフォーム２２は、当該応答に基づいて、ステップＳ１０１における操作に応じて実行された処理に関する機器ログを機器ログ記憶部２４に記録する（Ｓ１４５）。
【００９７】
図１３は、機器ログ記憶部の構成例を示す図である。図１３に示されるように、機器ログ記憶部２４は、機器ログを時系列（生成順）に記憶する。各機器ログは、Ｌｅｖｅｌフィールド、Ｔｉｍｅｓｔａｍｐフィールド、ＣＵＩＤフィールド、ａｃｔｉｏｎフィールド、Ｌｏｃａｔｉｏｎフィールド、及びＲｅｓｕｌｔフィールド等を含む。各フィールドは、「＜フィールド名＞＝＜値＞」の形式を有し、フィールド間は、カンマ（，）によって区切られている。Ｌｅｖｅｌフィールドの値は、機器ログのレベル（種別）を示す。当該フィールドの値の候補には、ＩＮＦＯ及びＥＲＲＯＲ等が有る。ＩＮＦＯは、実行された処理に関するログであることを示す。ＥＲＲＯＲは、異常の発生に関するログであることを示す。
【００９８】
Ｔｉｍｅｓｔａｍｐフィールドの値は、機器ログの生成日時を示す。ＣＵＩＤの値は、当該機器ログの原因となったユーザ操作に対するＣＵＩＤである。すなわち、ステップＳ１４５において記録される機器ログのＣＵＩＤフィールドには、ステップＳ１０１の操作に対して割り当てられたＣＵＩＤが記録される。図１３では、１行目の機器ログのＣＵＩＤが、メッセージｍ１（図７）のＣＵＩＤと一致する。したがって、ステップＳ１４５において記録されるのは、１行目の機器ログであることが分かる。
【００９９】
ａｃｔｉｏｎフィールドの値は、クラウドサービスシステム１へのリクエストの内容を示す。Ｌｏｃａｔｉｏｎフィールドの値は、ａｃｉｔｏｎフィールドの値が示すリクエストにおいて処理対象とされるデータの識別情報を示す。Ｒｅｓｕｌｔフィールドの値は、ステップＳ１０１の操作に応じて実行された処理の成否を示す。なお、２行目の機器ログのように、Ｒｅｓｕｌｔフィールドの値が、ｅｒｒｏｒである機器ログには、ｅｒｒｏｒ＿ｃｏｄｅフィールドが追加される。ｅｒｒｏｒ＿ｃｏｄｅフィールドの値は、エラーの内容を示す数値（エラーコード）である。
【０１００】
なお、機器ログの各フィールドの形式と、クラウドサービスシステム１の各サーバによって記録されるログの各フィールドの形式とは同じであってもよい。
【０１０１】
ステップＳ１４５に続いて、操作対象とされているクライアントアプリ２１は、操作に応じて実行された処理の結果等を示すメッセージを、画像形成装置２０ａの操作パネルに表示させる（Ｓ１４６）。
【０１０２】
一方、アプリケーションサーバ１２１は、ステップＳ１４１において記録したサーバログＬ３を、適当なタイミングでログ管理サーバ１３１（ログ管理部１３１ａ）に転送する（Ｓ１５１）。サーバログＬ３の転送は、サーバログＬ３の記録とは非同期に実行されてもよい。ログ管理サーバ１３１は、サーバログＬ３を含み、サーバログＬ３の保存要求を示すメッセージｍ６を、ログ記憶サーバ１４１宛に送信する（Ｓ１５２）。
【０１０３】
続いて、メッセージｍ５に関して、メッセージｍ３に関する処理（Ｓ１１６及びＳ１１７）と同様の処理が実行される（Ｓ１５３及びＳ１５４）。その結果、サーバログＬ３が、ログ記憶サーバ１４１の補助記憶装置１０２に記憶される。
【０１０４】
次に、画像形成装置２０ａにおいて記憶されている機器ログについて、ログ記憶サーバ１４１へのアップロード処理について説明する。
【０１０５】
図１４は、機器ログのアップロード処理の処理手順の一例を説明するためのシーケンス図である。
【０１０６】
ステップＳ２０１において、画像形成装置２０ａのアップロード部２３は、機器ログ記憶部２４に記憶されている機器ログのアップロード要求を含むメッセージｍ１１を送信する。
【０１０７】
図１５は、機器ログのアップロード要求を含むメッセージの一例を示す図である。メッセージｍ１１において、記述ｄ５は、リクエストの内容（機器ログのアップロード要求）を示す。記述ｄ６には、Ｘ−ＣＵＩＤフィールド、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールド、及びＵｓｅｒ−Ａｇｅｎｔフィールド等が含まれている。Ｘ−ＣＵＩＤフィールドの値は、機器ログのアップロード要求に対して新たに割り当てられたＣＵＩＤである。すなわち、ＣＵＩＤは、ユーザによる操作に応じた処理のみならず、機器ログのアップロードのように、自動的に開始される処理に対しても割り当てられる。Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールドは、機器ログのアップロード要求元の画像形成装置２０ａの機体番号である。
【０１０８】
記述ｄ７には、アップロード対象の機器ログが含まれている。図１５では、一つの機器ログが含まれている例が示されているが、一つのメッセージに対して複数の機器ログが含まれてもよい。
【０１０９】
ステップＳ２０１は、機器ログの記録処理（図６：Ｓ１４５）と同期的に実行されてもよいし、非同期に実行されてもよい。非同期に実行される場合、ステップＳ２０１は、定期的若しくは所定の時刻に実行されてもよいし、例えば、機器ログが所定量蓄積されたタイミング等に実行されてもよい。
【０１１０】
クラウドサービスシステム１に対する全てのメッセージは、まず、インターネット用ゲートウェイ１１１によって受信される。したがって、メッセージｍ１１についても、インターネット用ゲートウェイ１１１によって受信される。インターネット用ゲートウェイ１１１は、メッセージｍ１１を受信すると、メッセージｍ１１に含まれているリクエストに対するＲＩＤを生成し、生成されたＲＩＤをメッセージｍ１１に対して付与する（Ｓ２０２）。例えば、メッセージｍ１１の記述ｍｄ６に対して、当該ＲＩＤを値とするＸ−ＲＩＤフィールドが追加される。
【０１１１】
続いて、インターネット用ゲートウェイ１１１は、メッセージｍ１１に対してＲＩＤが付与されたメッセージｍ１１−１を、その宛先であるログ管理サーバ１３１宛に転送する（Ｓ２０３）。
【０１１２】
セグメントｇ３に属するログ管理サーバ１３１宛のメッセージｍ１１−１は、まず、共通サービス用ゲートウェイ１３４によって受信される。共通サービス用ゲートウェイ１３４は、メッセージｍ１１−１に対するＵＩＤを生成し、生成されたＵＩＤをメッセージｍ１１−１に対して付与する（Ｓ２０４）。例えば、メッセージｍ１１の記述ｍｄ６に対して、当該ＵＩＤを値とするＸ−ＵＩＤフィールドが追加される。
【０１１３】
続いて、共通サービス用ゲートウェイ１３４は、メッセージｍ１１−１に対してＵＩＤが付与されたメッセージｍ１１−２を、その宛先であるログ管理サーバ１３１へ転送する（Ｓ２０５）。
【０１１４】
メッセージｍ１１−２がログ管理サーバ１３１によって受信された以降の処理手順について、図１４では、２つのケースが記載されている。ケース１は、メッセージｍ１１−２とは非同期に機器ログが転送されるケースであり、ステップＳ２１１〜Ｓ２１４を含む。ケース２は、メッセージｍ１１−２に対して同期的に機器ログが転送されるケースであり、ステップＳ２２１〜Ｓ２２３を含む。ケース１及びケース２のいずれが採用されてもよい。
【０１１５】
ケース１が採用される場合、ログ管理サーバ１３１は、受信されたメッセージｍ１１−２の記述ｄ７に含まれている機器ログを、ログ管理サーバ１３１の補助記憶装置１０２に記録する（Ｓ２１１）。続いて、ログ管理サーバ１３１は、メッセージｍ１１−２に対する応答を返信する（Ｓ２４１）。
【０１１６】
その後、適当なタイミングで、ログ管理サーバ１３１は、ステップＳ２１１において記録された機器ログを含み、当該機器ログの保存要求を示すメッセージｍ１２を、ログ記憶サーバ１４１宛に送信する（Ｓ２１２）。
【０１１７】
なお、メッセージｍ１２には、機器ログの保存要求を示す記述の他に、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールド、Ｘ−ＲＩＤフィールド、及びＵｓｅｒ−Ａｇｅｎｔフィールド等を含む。メッセージｍ１２におけるこれらのフィールドの値は、メッセージｍ１１−２における同名のフィールドの値と同じである。
【０１１８】
セグメントｇ４に属するログ記憶サーバ１４１宛のメッセージｍ１２は、まず、データベース用ゲートウェイ１４３によって受信される。データベース用ゲートウェイ１４３は、メッセージｍ１２に対するＵＩＤを生成し、生成されたＵＩＤをメッセージｍ１２に対して付与する（Ｓ２１３）。
【０１１９】
続いて、データベース用ゲートウェイ１４３は、メッセージｍ１２に対してＵＩＤが付与されたメッセージｍ１２−１を、その宛先であるログ記憶サーバ１４１へ転送する（Ｓ２１４）。ログ記憶サーバ１４１は、メッセージｍ１２−１に含まれている機器ログを、例えば、ログ記憶サーバ１４１の補助記憶装置１０２に記憶する。なお、機器ログは、サーバログとは区別されて記憶されるのが望ましい。
【０１２０】
一方、ケース２が採用される場合、ログ管理サーバ１３１は、受信されたメッセージｍ１１−２の記述ｄ７より機器ログを取り出すと共に、当該機器ログを含み、当該機器ログの保存要求を示すメッセージｍ１２を、ログ記憶サーバ１４１宛に送信する（Ｓ２２１）。続いて、ステップＳ２１３及びＳ２１４と同様の処理が実行される（Ｓ２２２、Ｓ２２３）。その結果、メッセージｍ１２−１に含まれている機器ログが、ログ記憶サーバ１４１の補助記憶装置１０２に記憶される。続いて、ログ管理サーバ１３１は、メッセージｍ１１−２に対する応答を返信する（Ｓ２４１）。
【０１２１】
なお、ケース１及びケース２の双方の場合について、ステップＳ２４１において返信された応答は、共通サービス用ゲートウェイ１３４及びインターネット用ゲートウェイ１１１を経由して、画像形成装置２０ａに転送される（Ｓ２４２、Ｓ２４３）。
【０１２２】
なお、ログ管理サーバ１３１からの応答を受信した画像形成装置２０ａにおいて、ログのアップロード処理に関する機器ログが記憶されてもよい。当該機器ログに含まれるＣＵＩＤは、メッセージｍ１１に含まれているＣＵＩＤである。
【０１２３】
次に、図６及び図１４の処理によってログ記憶サーバ１４１に記憶されたサーバログ及び機器ログ等のログの閲覧について説明する。ログの閲覧は、例えば、クラウドサービスシステム１の開発者や管理者等によって、非図示のコンピュータ等（以下、「ログ閲覧端末」という。）を用いて行われる。
【０１２４】
例えば、ログ閲覧端末には、図１６に示されるようなログ閲覧画面が表示される。図１６は、ログ閲覧画面の表示例を示す図である。図１６に示されるログ閲覧画面５００は、検索条件入力領域５１０及びログ表示領域５２０等を含む。
【０１２５】
検索条件入力領域５１０では、サーバログを構成するフィールドの値又は値の範囲が検索条件として入力可能とされている。具体的には、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールドの値、ｕｓｅｒ＿ｉｄフィールドの値、ｔｉｍｅフィールドの値の範囲、ｉｎｑｕｉｒｙ＿ｃｏｄｅフィールドの値、及びａｐｐ＿ｎａｍｅフィールドの値等を、検索条件を構成する項目として入力可能な例が示されている。他のフィールドの値の指定が可能とされてもよい。
【０１２６】
いずれかの項目に対して検索条件が入力され、検索ボタン５１１が押下されると、ログ閲覧端末は、ログ管理サーバ１３１に対して、サーバログの検索要求を送信する。当該検索要求には、検索条件入力領域５１０に入力された検索条件が指定される。ログ管理サーバ１３１は、サーバログの検索要求に応じ、検索条件に合致するサーバログを、ログ記憶サーバ１４１に記憶されているサーバログの中から検索する。ログ管理サーバ１３１は、検索されたサーバログの一覧をログ閲覧端末に返信する。
【０１２７】
ログ閲覧端末は、検索されたサーバログの一覧を、ログ表示領域５２０に表示させる。ログ表示領域５２０には、検索されたサーバログごとに、各フィールドの値が表示される。ここで、ログ表示領域５２０に表示されているいずれかのサーバログのいずれかのフィールドの値がダブルクリック等された場合に、ログ閲覧端末が、当該フィールドの値を絞り込み条件とした検索要求をログ管理サーバ１３１に送信するようにしてもよい。当該検索要求に応じて、ログ管理サーバ１３１によって、検索対象が絞り込まれてもよい。例えば、Ｘ−ＲＩＤフィールドの値がダブルクリックされた場合、当該値をＲＩＤとして含むサーバログのみが、表示対象とされてもよい。また、当該ＲＩＤに対応付いているＣＵＩＤを含む機器ログが、検索されてもよい。その結果、閲覧者は、ネットワークを跨いで実行される、機器２０側の処理とサーバ側の処理との対応関係を容易に把握することができる。
【０１２８】
なお、図１６に示される閲覧形態は、一例に過ぎない。ログの閲覧形態については、ログの用途等に応じて適宜変更されてもよい。
【０１２９】
上述したように、第一の実施の形態によれば、機器２０側の所定の処理単位ごとに割り当てられ、機器ログに含められて記録されるＣＵＩＤと、機器２０からのリクエストごとにサーバ側で割り当てられ、当該リクエストに応じてサーバ側で実行される各処理に関するサーバログに含められて記録されるＲＩＤとが対応付けられて記録される。したがって、機器２０側の操作及び処理とサーバ側の処理との対応関係を正確に把握することができる。また、サーバ間において行われる処理要求には、それぞれに固有のＵＩＤが割り当てられ、ＲＩＤに対応付けられてサーバログに含められる。したがって、機器２０側の操作及び処理と、サーバ間の処理要求との対応関係についても正確に把握することができる。その結果、例えば、サーバ側において異常が発生した場合に、機器２０側におけるどのような操作が、当該異常の契機となったのか等を迅速に把握することが可能となる。また、機器２０によるサーバ側の機能等の利用状況を把握することにより、マーケティングに役立つ有用な資料の導出も期待できる。
【０１３０】
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でもよい。
【０１３１】
第二の実施の形態では、画像形成装置２０ａのアプリケーションプラットフォーム２２によって、ＲＩＤが割り当てられる。すなわち、アプリケーションプラットフォーム２２は、クラウドサービスシステム１に対して送信されるメッセージに対して、ＲＩＤを割り当て、当該ＲＩＤを、当該メッセージに含めてクラウドサービスシステム１に送信する。ＣＵＩＤは、割り当てられなくてもよい。したがって、例えば、図６のステップＳ１０２においては、図８に示されるメッセージｍ１−１からＸ−ＣＵＩＤフィールドが除去された状態のメッセージが送信される。
【０１３２】
なお、ＲＩＤには、例えば、各画像形成装置２０ａの機体番号と、当該画像形成装置２０ａ内において、メッセージごとの識別情報とが含まれるようにしてもよい。そうすることにより、複数の画像形成装置２０ａ等によって個別にＲＩＤが割り当てられることによる、ＲＩＤの重複が回避される可能性を高めることができる。
【０１３３】
一方、クラウドサービスシステム１において、インターネット用ゲートウェイ１１１、アプリ用ゲートウェイ１２２、共通サービス用ゲートウェイ１３４、及びデータベース用ゲートウェイ１４３等（以下、それぞれを区別しない場合、単に、「ゲートウェイ」という。）は、メッセージの受信に応じて、図１７に示される処理を実行する。
【０１３４】
図１７は、第二の実施の形態において各ゲートウェイがメッセージの受信時に実行する処理手順の一例を説明するためのフローチャートである。
【０１３５】
ゲートウェイは、メッセージを受信すると、当該メッセージにＲＩＤが含まれているか否かを判定する（Ｓ３０１）。当該メッセージにＲＩＤが含まれていない場合（Ｓ３０１でＮｏ）、ゲートウェイは、ＲＩＤを生成し、当該ＲＩＤを当該メッセージに付与する（含める）（Ｓ３０２）。
【０１３６】
続いて、ゲートウェイは、当該メッセージに、ＵＩＤが含まれているか否かを判定する（Ｓ３０３）。当該メッセージにＵＩＤが含まれていない場合（Ｓ３０１でＮｏ）、ゲートウェイは、ＵＩＤを生成し、当該ＵＩＤを当該メッセージに付与する（含める）（Ｓ３０４）。
【０１３７】
図１７より明らかなように、各ゲートウェイは、ＲＩＤを含むメッセージを受信した場合、ＲＩＤの生成を行わない。すなわち、第二の実施の形態においては、画像形成装置２０ａにおいてＲＩＤがメッセージに付与されるため、インターネット用ゲートウェイ１１１によるＲＩＤの付与は、基本的には行われない。したがって、画像形成装置２０ａにおいて生成されたＲＩＤが、クラウドサービスシステム１内のメッセージにおいて引き回され、クラウドサービスシステム１内において生成されるＵＩＤに対応付けられてサーバログに記憶される。
【０１３８】
なお、ＲＩＤが含まれないメッセージの一例として、クラウドサービスシステム１内において発生したメッセージが挙げられる。
【０１３９】
また、クラウドサービスシステム１において、ゲートウェイを除く各サーバは、メッセージの受信に応じて、図１８に示される処理を実行する。
【０１４０】
図１８は、第二の実施の形態において各サーバがメッセージの受信時に実行する処理手順の一例を説明するためのフローチャートである。
【０１４１】
サーバは、メッセージを受信すると、当該メッセージにＲＩＤが含まれているか否かを判定する（Ｓ３１１）。当該メッセージにＲＩＤが含まれていない場合（Ｓ３１１でＮｏ）、サーバは、ＲＩＤを生成し、当該ＲＩＤを当該メッセージに付与する（含める）（Ｓ３１２）。
【０１４２】
続いて、サーバは、当該メッセージに、ＵＩＤが含まれているか否かを判定する（Ｓ３１３）。当該メッセージにＵＩＤが含まれていない場合（Ｓ３１１でＮｏ）、サーバは、ＵＩＤを生成し、当該ＵＩＤを当該メッセージに付与する（含める）（Ｓ３１４）。当該メッセージにＵＩＤが含まれている場合（Ｓ３１１でＹｅｓ）、サーバは、新たなＵＩＤを生成し、当該ＵＩＤによって、メッセージに含まれているＵＩＤを置換する（Ｓ３１５）。
【０１４３】
図１８及び図１７の処理手順によれば、第二の実施の形態において、ＵＩＤは、基本的にゲートウェイではなく、各サーバによって付与される。したがって、他のサーバへの要求元のサーバの追跡の容易性を高めることができる。斯かる容易性は、ＵＩＤ内に、各サーバの識別情報を含めることによって、より高められてもよい。
【０１４４】
次に、第三の実施の形態について説明する。第三の実施の形態では第二の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第二の実施の形態と同様でもよい。但し、第三の実施の形態は、第一の実施の形態と組み合わされてもよい。
【０１４５】
図１９は、第三の実施の形態におけるクラウドサービスシステムの機能構成例を示す図である。図１９において、共通サービス層１３０は、更に、非同期処理部１３３ｂ及びメール送信部１３５ａを含む。非同期処理部１３３ｂは、要求に対して非同期に処理を実行する。メール送信部１３５ａは、メールの送信処理を実行する。第三の実施の形態では、要求に対して非同期に実行される処理についても、元の要求、又はＲＩＤとの対応付け（紐付け）を確保するための仕組みの一例を説明する。
【０１４６】
図２０は、第三の実施の形態におけるクラウドサービスシステムのネットワーク構成例を示す図である。図２０において、セグメントｇ３には、更に、メールサーバ１３５が接続されている。メールサーバ１３５は、メール送信部１３５ａとして機能するコンピュータである。なお、第三の実施の形態において、コンテンツ処理サーバ１３３は、非同期処理部１３３ｂとしても機能する。
【０１４７】
図２１は、第三の実施の形態において非同期処理に関して実行される処理手順の一例を説明するためのシーケンス図である。図２１中、図６と同一ステップには同一ステップ番号が付されている。第三の実施の形態では、図６のステップＳ１２３において共通サービス用ゲートウェイ１３４から送信されるメッセージｍ４−１に応じて、例えば、図２１に示される処理手順が実行される。
【０１４８】
メッセージｍ４−１に応じて、コンテンツ処理部１３３ａは、図１８において説明した処理を実行する。続いて、コンテンツ処理部１３３ａは、メッセージｍ４−１において要求されたジョブに関する情報（以下、「ジョブ情報」という。）を、ジョブキューに登録する（Ｓ１２４）。すなわち、第三の実施の形態において、コンテンツ処理部１３３ａによるコンテンツ処理は、ジョブキューへのジョブの登録に相当する。ジョブ情報には、処理対象とされるデータや、ＲＩＤ及びＵＩＤ等が含まれる。当該ＲＩＤは、メッセージｍ４−１に含まれているＲＩＤである。当該ＵＩＤは、メッセージｍ４−１の受信に応じて実行される図１８において説明した処理による置換後のＵＩＤである。なお、ジョブキューとは、コンテンツ処理サーバ１３３の補助記憶装置１０２又はメモリ装置１０３等を用いて実現される、例えば、ＦＩＦＯ（First-In First-Out）型の記憶領域である。
【０１４９】
続いて、コンテンツ処理部１３３ａは、コンテンツ処理サーバ１３３内の補助記憶装置１０２に、コンテンツ処理に関するサーバログを記録する（Ｓ１２５）。
【０１５０】
図２２は、第三の実施の形態において記録されるサーバログの一例を示す図である。図２２において、サーバログＬ４が、ステップＳ１２５において記録されるログの一例である。サーバログＬ４の構成は、図１１におけるサーバログＬ２と同様である。但し、サーバログＬ４では、ｐａｔｈフィールドの値が、図１１と異なる。すなわち、サーバログＬ４において、ｐａｔｈフィールドの値は、ファイル群のメールでの送信要求を示す「／ｓａｍｐｌｅ／ｅｍａｉｌ／ｆｉｌｅｓ」とされている。ステップＳ１２４では、当該値に基づいて、ファイル群のメールでの送信要求を示すジョブ情報が、ジョブキューに登録される。
【０１５１】
続いて、コンテンツ処理部１３３ａは、メッセージｍ４−１に対する応答を返信する（Ｓ１２６）。
【０１５２】
一方、非同期処理部１３３ｂは、定期的にジョブキューを監視している。ジョブキューの監視に際し、非同期処理部１３３ｂは、非同期処理部１３３ｂが実行するジョブごとの識別情報であるＪＩＤを生成する（Ｓ４０１）。続いて、非同期処理部１３３ｂは、ジョブキューからジョブ情報を取得する（Ｓ４０２）。この際、生成されたＪＩＤが、ジョブキューに対してジョブ情報に関連付けられて記憶されてもよい。そうすることにより、ジョブ情報の登録側（ここでは、コンテンツ処理部１３３ａ）が、ジョブに対するＪＩＤを知ることができる。当該ＪＩＤを利用して、ジョブの実行状態の確認行われてもよい。なお、ステップＳ４０２では、必ずしも、ジョブ情報が取得されるとは限らない。ジョブキューが空の場合も有るからである。この場合、次回の監視時では、前回の監視時に生成されたＪＩＤが利用されてもよい。
【０１５３】
ジョブ情報が取得されると、非同期処理部１３３ｂは、当該ジョブ情報において要求されている処理の実行を、当該処理を実行可能なサーバに要求する。ここでは、ファイル群のメール送信が要求されている。したがって、メールサーバ１３５に対して、ファイル群のメール送信が要求される（Ｓ４０３）。
【０１５４】
続いて、非同期処理部１３３ｂは、コンテンツ処理サーバ１３３内の補助記憶装置１０２に、非同期処理に関するサーバログを記録する（Ｓ４０４）。図２２におけるサーバログＬ５が、非同期処理に関するサーバログの一例に相当する。サーバログＬ５の基本的な構成は、他のサーバログと同様である。サーバログＬ５において注目すべき点は、Ｘ−ＪＩＤフィールドを含む点である。Ｘ−ＪＩＤフィールドの値は、ステップＳ４０１において生成されたＪＩＤである。したがって、サーバログＬ５によって、ＲＩＤ、ＵＩＤ、及びＪＩＤの対応付けが確保される。
【０１５５】
一方、メールサーバ１３５は、ファイル群のメールでの送信要求に応じ、ファイル群をメール送信する（Ｓ４０５）。続いて、メールサーバ１３５は、メールサーバ１３５の補助記憶装置１０２に、メール送信処理に関するサーバログを記録する（Ｓ４０６）。図２２におけるサーバログＬ６が、メール送信処理に関するサーバログの一例に相当する。サーバログＬ６は、便宜上、他のサーバログと異なる構成を有する。但し、サーバログＬ６も、他のサーバログと同様の構成を有していてもよい。
【０１５６】
サーバログＬ６において注目すべき点は、ＲＩＤ及びＪＩＤの対応付けが確保されている点である。すなわち、サーバログＬ６において、ｍｅｓｓａｇｅ−ｉｄフィールドの値は、ＲＩＤ及びＪＩＤを接続したものとなっている。その結果、ＲＩＤとＪＩＤとの対応付けが確保されている。
【０１５７】
なお、ジョブ情報に基づいて実行されるジョブは、１つのジョブ情報に対して１回でなくてもよい。ジョブ情報に基づいて実行されるジョブが、非同期処理部１３３ｂによって複数に分割されて実行されてもよい。この場合、分割された単位ごとに、異なるＪＩＤが生成され、非同期処理に関するサーバログが記録されてもよい。
【０１５８】
上述したように、第三の実施の形態によれば、ＲＩＤに係るリクエストとは非同期に実行される処理（ジョブ）に対してＪＩＤが割り当てられ、ＪＩＤがＲＩＤに対応付けられてサーバログに記録される。したがって、機器２０からのリクエストに関して実行される各非同期処理に関しても、機器２０側の操作及び処理との対応関係の把握を可能とすることができる。
【０１５９】
次に、第四の実施の形態について説明する。第四の実施の形態では第二又は第三の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第二又は第三の実施の形態と同様でもよい。但し、第四の実施の形態は、第一の実施の形態と組み合わされてもよい。
【０１６０】
図２３は、第四の実施の形態におけるクラウドサービスシステムの機能構成例を示す図である。図２３において、共通サービス層１３０は、更に、ログ活用部１３１ｂ、ログ解析部１３１ｃ、及びアプリ管理部１３６ａ等を含む。
【０１６１】
ログ活用部１３１ｂは、ログ記憶部１４１ａ（ログ記憶サーバ１４１）に記憶されているログを活用させるためのＡＰＩを、プラットフォームＡＰＩ１５０の一部として提供する。ログ解析部１３１ｃは、ログ記憶部１４１ａに記憶されるログに関する解析又は集計等を行う。アプリ管理部１３６ａは、アプリケーション層１２０に実装されるサーバアプリの管理に関する処理を実行する。
【０１６２】
図２４は、第四の実施の形態におけるクラウドサービスシステムのネットワーク構成例を示す図である。図２４において、セグメントｇ３には、更に、アプリ管理サーバ１３６が接続されている。アプリ管理サーバ１３６は、アプリ管理部１３６ａとして機能するコンピュータである。なお、第三の実施の形態において、ログ管理サーバ１３１は、ログ活用部１３１ｂ及びログ解析部１３１ｃとしても機能する。
【０１６３】
第四の実施の形態では、ログ活用部１３１ｂによって提供されるＡＰＩ（以下、「ログ活用ＡＰＩ」という。）の一例について説明する。
【０１６４】
図２５は、ログ活用ＡＰＩの呼び出しに応じて実行される処理手順の一例を説明するためのシーケンス図である。図２５では、ステップＳ５０１〜Ｓ５０４が実行されるケースＡと、ステップＳ５１１〜Ｓ５１６が実行されるケースＢとの二つのケースが示されている。すなわち、ステップＳ５１１〜Ｓ５１６は、ステップＳ５０１〜Ｓ５０４に続いて必ず実行されるわけではない。また、図２５において、「クライアント」は、ログ活用ＡＰＩの呼び出し元を示す。例えば、ログ活用ＡＰＩの利用者として、サーバアプリの開発者又は販売者等が想定される。したがって、これらの利用者のＰＣ（Personal Computer）、フィーチャーフォン、スマートフォン、又はタブレット型端末等が、クライアントの一例として挙げられる。
【０１６５】
まず、ケースＡについて説明する。ステップＳ５０１において、ケースＡに該当するいずれかのログ活用ＡＰＩが、クライアントから呼び出される。ログ活用部１３１ｂは、呼び出されたログ活用ＡＰＩに指定された引数に基づいて、ログ記憶部１４１ａからログを検索する（Ｓ５０２、Ｓ５０３）。なお、各ログ活用ＡＰＩが、ケースＡ及びＢのいずれに該当するのかについては、各ログ活用ＡＰＩの実装に組み込まれていてもよい。続いて、ログ活用部１３１ｂは、検索されたログに基づいて、戻り値を生成し、当該戻り値をクライアントに返信する（Ｓ５０４）。戻り値は、ＣＳＶ（Comma Separated Values）又はＸＭＬ（eXtensible Markup Language）形式等のテキストデータであってもよいし、ＨＴＭＬ（HyperText Markup Language）等の表示用データであってもよい。
【０１６６】
続いて、ケースＢについて説明する。ステップＳ５１１において、ケースＢに該当するいずれかのログ活用ＡＰＩが、クライアントから呼び出される。ログ活用部１３１ｂは、呼び出されたログ活用ＡＰＩに指定された引数に基づいて特定される情報の取得を、ログ解析部１３１ｃに要求する（Ｓ５１２）。ログ解析部１３１ｃは、当該情報を生成するために必要なログを、ログ記憶部１４１ａから検索する（Ｓ５１３、Ｓ５１４）。続いて、ログ解析部１３１ｃは、検索されたログを解析又は集計等して、要求された情報を生成し、当該情報をログ活用部１３１ｂに返却する（Ｓ５１５）。ログ活用部１３１ｂは、当該情報に基づいて戻り値を生成し、当該戻り値をクライアントに返信する（Ｓ５１６）。
【０１６７】
続いて、ログ活用ＡＰＩの具体例について説明する。ログ活用ＡＰＩの第一の具体例は、ｇｅｔＬｏｇＡｌｌメソッドである。ｇｅｔＬｏｇＡｌｌメソッドのインタフェース仕様は、以下の通りである。
【０１６８】
ｇｅｔＬｏｇＡｌｌ（アプリＩＤ、開始日時、終了日時、（テナントＩＤ）、（デバイスＩＤ）、（デバイス種別））
ｇｅｔＬｏｇＡｌｌメソッドは、アプリＩＤ、開始日時、及び終了日時を必須の引数として有し、テナントＩＤ、デバイスＩＤ、及びデバイス種別を任意の引数として有する。すなわち、括弧で囲まれた引数（ここでは、テナントＩＤ、デバイスＩＤ、デバイス種別）の指定は任意であり、斯かる表記法は、以降のログ活用ＡＰＩのインタフェース仕様についても同様である。ｇｅｔＬｏｇＡｌｌメソッドは、引数に指定されたパラメータによって特定されるログの一覧を戻り値とする。
【０１６９】
アプリＩＤは、ログのａｐｐ＿ｉｄフィールドに対応する引数である。開始日時及び終了日時は、ログのｔｉｍｅフィールドに対応する引数である。テナントＩＤは、ログのｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールドに対応する引数である。デバイスＩＤは、ログのＸ−Ｄｅｖｉｃｅ−ＩＤフィールドに対応する引数である。デバイス種別は、例えば、デバイスＩＤに関連付けられて機器情報記憶部１４２ｂに記憶されている、機能及び用途等に基づいて分類される機器２０の種別に対応する引数である。機器２０の種別の値の一例としては、「ＭＦＰ」、「プロジェクタ」、「ＴＶ会議」等が有る。「ＭＦＰ」は、画像形成装置２０ａに対する種別である。「プロジェクタ」は、プロジェクタ２０ｂに対する種別である。「ＴＶ会議」は、ＴＶ会議用機器２０ｃに対する種別である。
【０１７０】
ログ活用部１３１ｂは、ｇｅｔＬｏｇＡｌｌメソッドの呼び出しに応じ、ログ記憶部１４１ａに記憶されているログの中から、ａｐｐ＿ｉｄフィールドの値が、引数のアプリＩＤに一致し、ｔｉｍｅフィールドの値が、引数の開始日時及び終了日時の期間に含まれるログを検索する。テナントＩＤが引数に指定されている場合、ｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールドの値が、引数のテナントＩＤに一致するログに、検索範囲が絞り込まれる。デバイスＩＤが引数に指定されている場合、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールドの値が、引数のデバイスＩＤに一致するログに、検索範囲が絞り込まれる。また、デバイス種別が引数に指定されている場合、Ｘ−Ｄｅｖｉｃｅ−ＩＤフィールドの値に対応付けられて機器情報記憶部１４２ｂに記憶されている種別が、引数のデバイス種別に一致するログに、検索範囲が絞り込まれる。
【０１７１】
なお、デバイス種別がログに含まれるようにしてもよい。図２６は、デバイス種別を含むサーバログの一例を示す図である。図２６に示されるサーバログＬ７の末尾には、ｄｅｖｉｃｅ＿ｃａｔフィールドが含まれている。ｄｅｖｉｃｅ＿ｃａｔフィールドの値は、デバイス種別を示す。
【０１７２】
サーバログのｄｅｖｉｃｅ＿ｃａｔフィールドの値は、当該サーバログのＸ−Ｄｅｖｉｃｅ−ＩＤフィールドの値の値に基づいて機器情報記憶部１４２ｂから取得されてもよいし、機器ログから取得されてもよい。機器ログから取得される場合、機器ログには、デバイス種別が含まれるようにすればよい。
【０１７３】
ログ活用ＡＰＩの第二の具体例は、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドである。ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドのインタフェース仕様は、以下の通りである。
【０１７４】
ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔ（アプリＩＤ、開始日時、終了日時、（デバイスＩＤ）、（デバイス種別）、（詳細情報フラグ））
ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドは、アプリＩＤ、開始日時、及び終了日時を必須の引数として有し、デバイスＩＤ、デバイス種別、及び詳細情報フラグを任意の引数として有する。ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドは、アプリＩＤに係るサーバアプリに関して、クラウドサービスシステム１と連携する機器２０の種別ごとに、開始日時から終了日時までの期間における単位期間（例えば、１ヶ月）ごとの利用者数を戻り値とする。引数のアプリＩＤ、開始日時、終了日時、デバイスＩＤ、デバイス種別のそれぞれの意味は、ｇｅｔＬｏｇＡｌｌにおける同名の引数の意味と同じである。任意の引数である詳細情報フラグは、「ｔｒｕｅ」又は「ｆａｌｓｅ」の値を有する引数である。詳細情報フラグの意味については後述される。
【０１７５】
ログ活用部１３１ｂは、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドの呼び出しに応じ、アプリＩＤに係るサーバアプリの開始日時から終了日時までの期間における単位期間ごとの、機器２０の種別ごとの利用者数を示す情報の取得を、ログ解析部１３１ｃに要求する。
【０１７６】
ログ解析部１３１ｃは、ログ記憶部１４１ａに記憶されているログの中から、ａｐｐ＿ｉｄフィールドの値が、引数のアプリＩＤに一致し、ｔｉｍｅフィールドの値が、引数の開始日時及び終了日時の期間に含まれるログであって、ｐａｔｈフィールドの値が、認証を示すログを検索する。すなわち、利用者数は、ログイン時に行われる認証の回数によってカウントされる。デバイスＩＤ及びデバイス種別の少なくともいずれか一方が指定されている場合、ｇｅｔＬｏｇＡｌｌメソッドと同様に検索範囲が絞り込まれる。
【０１７７】
続いて、ログ解析部１３１ｃは、検索されたログを、デバイス種別ごとに分類し、更に、デバイス種別ごとのログの集合について、ｔｉｍｅフィールドの値に基づいて単位期間ごとの数をカウントする。ログ解析部１３１ｃは、斯かる集計結果を示す情報を、ログ活用部１３１ｂに返信する。ログ活用部１３１ｂは、返信された情報に基づいて戻り値を生成し、クライアントに返信する。
【０１７８】
戻り値は、例えば、図２７に示されるような表又はグラフを表示させるＨＴＭＬデータ等であってもよい。
【０１７９】
図２７は、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。図２７には、機器２０の種別ごとに、毎月の利用者数が示されている。なお、図２７の表及びグラフにおいて、「ＭＦＰ」、「ＬＰ」、「ＤｅｖｉｃｅＡ」、「ＤｅｖｉｃｅＢ」、及び「ＤｅｖｉｃｅＣ」は、機器２０の種別（デバイス種別）を示す。図２７に示されるような表又はグラフによれば、例えば、サーバアプリの開発者は、特定のサーバアプリに関して、各種別の機器２０からの利用者数の推移等を容易に知ることができる。
【０１８０】
なお、図２７に示される戻り値は、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドの引数に、アプリＩＤ、開始日時（２０１３／０４）、及び終了日時（２０１３／０８）が指定された場合に得られる戻り値である。この場合、ログ解析部１３１ｃによって生成され、ログ活用部１３１ｂに返信される情報は、例えば、図２８に示されるような情報であってもよい。
【０１８１】
図２８は、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドに関して検索されるログの集計結果を示す情報の第一の例を示す図である。図２８では、ＪＳＯＮ（Java（登録商標）Script Object Notation）形式で、機器２０の種別ごとの毎月の利用者数が示されている。
【０１８２】
なお、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドに対して、デバイスＩＤが引数に指定された場合、当該デバイスＩＤに係る一つの機器２０について、毎月の利用者数を示す戻り値が得られる。また、デバイス種別が引数として指定された場合、図２７に示される表又はグラフにおいて、当該デバイス種別に対応する行又はグラフを示す戻り値が得られる。更に、デバイス種別が引数として指定され、値が「ｔｒｕｅ」である詳細情報フラグが引数として指定された場合、図２９に示されるような戻り値が返信される。
【０１８３】
図２９は、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。図２９では、引数に指定されたデバイス種別に属する機器２０のモデル別に、毎月の利用者数が示されている。すなわち、詳細情報フラグは、各機器２０をモデル別に分類するか否かを指定させるための引数である。
【０１８４】
図２９に示されるような戻り値が返信される場合、ログ解析部１３１ｃによって生成され、ログ活用部１３１ｂに返信される情報は、例えば、図２８に示されるような情報であってもよい。
【０１８５】
図３０は、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドに関して検索されるログの集計結果を示す情報の第二の例を示す図である。図３０では、ＪＳＯＮ形式で、「ＭＦＰ」の種別に属する機器２０のモデルごとの、毎月の利用者数が示されている。
【０１８６】
なお、上記では、利用者数の集計単位が１ヶ月である例を示したが、集計単位は、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドの開始日時又は終了日時の指定形式に基づいて変えられてもよい。例えば、月までが指定されている場合は、１ヶ月単位、日までが指定されている場合は、１日単位、時間までが指定されている場合は、１時間単位、といったように、開始日時又は終了日時において指定されている最小の時間単位に基づいて、集計単位が決定されてもよい。
【０１８７】
ログ活用ＡＰＩの第三の具体例は、ｇｅｔＪｏｂＲｅｐｏｒｔメソッドである。ｇｅｔＪｏｂＲｅｐｏｒｔメソッドのインタフェース仕様は、以下の通りである。
【０１８８】
ｇｅｔＪｏｂＲｅｐｏｒｔ（アプリＩＤ、開始日時、終了日時、（配信先）、（コンテンツ形式））
ｇｅｔＪｏｂＲｅｐｏｒｔメソッドは、アプリＩＤ、開始日時、及び終了日時を必須の引数として有し、配信先及びコンテンツ形式を任意の引数として有する。ｇｅｔＪｏｂＲｅｐｏｒｔメソッドは、アプリＩＤに指定されたサーバアプリに関して、開始日時から終了日時までの期間における単位期間ごとのクラウドスキャンサービスのジョブの実行回数を戻り値とする。引数のアプリＩＤ、開始日時、及び終了日時のそれぞれの意味は、ｇｅｔＬｏｇＡｌｌにおける同名の引数の意味と同じである。配信先は、「ｔｒｕｅ」又は「ｆａｌｓｅ」の値をとる。「ｔｒｕｅ」は、配信先別にジョブの実行数を集計することを示す。コンテンツ形式は、「ｔｒｕｅ」又は「ｆａｌｓｅ」の値をとる。「ｔｒｕｅ」は、配信先されたコンテンツの形式別にジョブの実行数を集計することを示す。
【０１８９】
ログ活用部１３１ｂは、ｇｅｔＪｏｂＲｅｐｏｒｔメソッドの呼び出しに応じ、アプリＩＤに係るサーバアプリによる開始日時から終了日時までの期間における単位期間ごとのスキャンクラウドサービスのジョブの実行回数を示す情報の取得を、ログ解析部１３１ｃに要求する。
【０１９０】
ログ解析部１３１ｃは、ログ記憶部１４１ａに記憶されているログの中から、ａｐｐ＿ｉｄフィールドの値が、引数のアプリＩＤに一致し、ｔｉｍｅフィールドの値が、引数の開始日時及び終了日時の期間に含まれるログであって、ｐａｔｈフィールドの値が、配信を示すログを検索する。
【０１９１】
続いて、ログ解析部１３１ｃは、検索されたログについて、ｔｉｍｅフィールドの値に基づいて単位期間ごとの数をカウントする。この際、引数の配信先の値が「ｔｒｕｅ」である場合、配信先別にログのカウントが行われる。また、引数のコンテンツ形式の値が「ｔｒｕｅ」である場合、配信されたコンテンツの形式別にログのカウントが行われる。ログ解析部１３１ｃは、斯かる集計結果を示す情報を、ログ活用部１３１ｂに返信する。ログ活用部１３１ｂは、返信された情報に基づいて戻り値を生成し、クライアントに返信する。
【０１９２】
戻り値は、例えば、図３１又は図３２に示されるような表又はグラフを表示させるＨＴＭＬデータ等であってもよい。
【０１９３】
図３１は、ｇｅｔＪｏｂＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。図３１には、配信先別に、毎月のジョブの実行数が示されている。すなわち、図３１は、引数の配信先に「ｔｒｕｅ」が指定された場合に得られる戻り値の一例である。なお、図３１において、「ＡＡＡＡ」、「ＢＢＢＢ」、「ＣＣＣＣ」、及び「ＤＤＤＤ」は、便宜上、配信先の識別情報を示す。図３１に示されるような表又はグラフによれば、例えば、サーバアプリの開発者は、特定のサーバアプリに関して、配信先別のジョブの実行数の推移等を容易に知ることができる。
【０１９４】
また、図３２は、ｇｅｔＪｏｂＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。図３２には、コンテンツ形式別に、毎月のジョブの実行数が示されている。すなわち、図３２は、引数のコンテンツ形式に「ｔｒｕｅ」が指定された場合に得られる戻り値の一例である。
【０１９５】
単位期間については、ｇｅｔＣｌｉｅｎｔＲｅｐｏｒｔメソッドと同様に、開始日時又は終了日時の指定形式に応じて変更可能であってもよい。
【０１９６】
なお、配信先別又はコンテンツ形式別の集計を可能とするために、サーバログは、図３３に示されるような構成を有していてもよい。
【０１９７】
図３３は、配信先及びコンテンツ形式を含むサーバログの一例を示す図である。図３３に示されるサーバログＬ８は、末尾に、ｃｏｎｔｅｎｔフィールド及びｅｘｔ＿ｄｅｓｔフィールドを含む。ｃｏｎｔｅｎｔフィールドの値は、配信されたコンテンツのデータ形式（すなわち、コンテンツ形式）である。ｅｘｔ＿ｄｅｓｔフィールドの値は、配信先の識別情報である。なお、サーバログＬ８は、例えば、スキャンアプリ１２０ｂによって記録される。
【０１９８】
ログ活用ＡＰＩの第四の具体例は、ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドである。ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドのインタフェース仕様は、以下の通りである。
【０１９９】
ｇｅｔＥｒｒｏｒＲｅｐｏｒｔ（アプリＩＤ、開始日時、終了日時、（エラー箇所））
ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドは、アプリＩＤ、開始日時、及び終了日時を必須の引数として有し、エラー箇所を任意の引数として有する。ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドは、アプリＩＤに係るサーバアプリの処理に関して、開始日時から終了日時までの期間における単位期間ごとのエラー発生数を示す情報を戻り値とする。引数のアプリＩＤ、開始日時、及び終了日時のそれぞれの意味は、ｇｅｔＬｏｇＡｌｌにおける同名の引数の意味と同じである。任意の引数であるエラー箇所は、エラーの発生箇所を限定するための引数である。ここでいう発生箇所は、例えば、サーバ別であってもよい。
【０２００】
ログ活用部１３１ｂは、ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドの呼び出しに応じ、アプリＩＤに係るサーバアプリの開始日時から終了日時までの単位期間ごとのエラーの発生数を示す情報の取得を、ログ解析部１３１ｃに要求する。
【０２０１】
ログ解析部１３１ｃは、ログ記憶部１４１ａに記憶されているログの中から、ａｐｐ＿ｉｄフィールドの値が、引数のアプリＩＤに一致し、ｔｉｍｅフィールドの値が、引数の開始日時及び終了日時の期間に含まれるログであって、ｌｅｖｅｌフィールドの値が、「ＥＲＲＯＲ」であるログを検索する。
【０２０２】
続いて、ログ解析部１３１ｃは、検索されたログを、エラー種別ごとに分類する。エラー種別は、ｒｅｓｕｌｔフィールドの値に基づいて特定される。例えば、ｒｅｓｕｌｔフィールドの値が「４０１」であれば、認証エラーとして分類される。更に、エラー種別ごとの分類結果が、ｉｎｑｕｉｒｙ＿ｃｏｄｅフィールドの値（すなわち、エラーコード）ごとに分類されてもよい。ログ解析部１３１ｃは、エラー種別ごと、かつ、エラーコードごとのログについて、ｔｉｍｅフィールドの値に基づいて単位期間ごとの数をカウントする。ログ解析部１３１ｃは、斯かる集計結果を示す情報を、ログ活用部１３１ｂに返信する。ログ活用部１３１ｂは、返信された情報に基づいて戻り値を生成し、クライアントに返信する。
【０２０３】
戻り値は、例えば、図３４に示されるような表又はグラフを表示させるＨＴＭＬデータ等であってもよい。
【０２０４】
図３４は、ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。図３４には、エラー種別（認証エラー、データエラー、配信先未応答、サーバエラー等）ごと、かつ、エラーコードごとに、毎月の発生数が示されている。なお、エラー種別に続く括弧内の数値が、エラーコードの一例である。
【０２０５】
なお、ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドの任意の引数のエラー箇所に対して、例えば、「認証」が指定されると、図３５に示されるような戻り値が返信される。
【０２０６】
図３５は、ｇｅｔＥｒｒｏｒＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。図３５には、認証エラーの内訳が、月別に示されている。内訳は、エラーコードに基づいて分類されてもよいし、サーバログであるか機器ログであるかに基づいて分類されてもよい。
【０２０７】
引数のエラー箇所には、「認証」以外に、例えば、「自アプリ」又は「コンテンツ」等の指定が可能とされてもよい。「自アプリ」が指定された場合、引数のアプリＩＤに係るサーバアプリが実装されているアプリケーションサーバ１２１において発生したエラーの内訳が戻り値とされてもよい。「コンテンツ」が指定された場合、コンテンツ処理サーバ１３３において発生したエラーの内訳が戻り値とされてもよい。
【０２０８】
ログ活用ＡＰＩの第五の具体例は、ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドである。ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドのインタフェース仕様は、以下の通りである。
【０２０９】
ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔ（アプリＩＤ、開始日時、終了日時、区分）
ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドは、アプリＩＤ、開始日時、終了日時、及び区分を必須の引数として有する。ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドは、アプリＩＤに係るサーバアプリの開始日時から終了日時までの期間における単位期間ごとの利用者数について、区分によって指定された属性別に示す情報を戻り値とする。引数のアプリＩＤ、開始日時、及び終了日時のそれぞれの意味は、ｇｅｔＬｏｇＡｌｌにおける同名の引数の意味と同じである。区分は、利用者を分類する属性が指定される引数である。区分の値の一例として、「業種」、「就業員数」等が挙げられる。
【０２１０】
図３６は、ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドの呼び出しに応じて実行される処理手順の一例を説明するためのシーケンス図である。
【０２１１】
ログ活用部１３１ｂは、ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドの呼び出しに応じ（Ｓ６０１）、アプリＩＤに係るサーバアプリの開始日時から終了日時までの期間における単位期間ごとの利用者数について、区分によって指定された属性別に示す情報の取得を、ログ解析部１３１ｃに要求する（Ｓ６０２）。
【０２１２】
ログ解析部１３１ｃは、ログ記憶部１４１ａに記憶されているログの中から、ａｐｐ＿ｉｄフィールドの値が、引数のアプリＩＤに一致し、ｔｉｍｅフィールドの値が、引数の開始日時及び終了日時の期間に含まれるログであって、ｐａｔｈフィールドの値が、認証を示すログを検索する（Ｓ６０３、Ｓ６０４）。続いて、ログ解析部１３１ｃは、検索されたログに含まれているｏｒｇａｎｉｚａｔｉｏｎ＿ｉｄフィールドの値（すなわち、組織ＩＤ）ごとに、当該組織ＩＤに対応付けられてユーザ情報記憶部１４２ａに記憶されている、引数の区分に指定された属性の値を取得する（Ｓ６０５、Ｓ６０６）。例えば、業種名又は従業員数等が取得される。
【０２１３】
続いて、ログ解析部１３１ｃは、検索されたログを、取得された属性の値に基づいて分類し、分類されたグループごとに、当該グループに属するログについて、ｔｉｍｅフィールドの値に基づいて単位期間ごとの数をカウントする（Ｓ６０７）。
【０２１４】
続いて、ログ解析部１３１ｃは、集計結果を示す情報を、ログ活用部１３１ｂに返信する（Ｓ６０８）。ログ活用部１３１ｂは、返信された情報に基づいて戻り値を生成し、クライアントに返信する（Ｓ６０９）。
【０２１５】
戻り値は、例えば、図３７又は図３８に示されるような表又はグラフを表示させるＨＴＭＬデータ等であってもよい。
【０２１６】
図３７は、ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドの戻り値の第一の例を示す図である。図３７には、業種別に、１ヶ月分の利用者数が示されている。すなわち、図３７は、開始日時及び終了日時に「２０１３／０４」が指定され、区分に「業種」が指定された場合の戻り値の例である。
【０２１７】
図３８は、ｇｅｔＣｕｓｔｏｍｅｒＲｅｐｏｒｔメソッドの戻り値の第二の例を示す図である。図３８には、従業員数別に、毎月の利用者数が示されている。すなわち、図３８は、開始日時に「２０１３／０４」が指定され、終了日時に「２０１３／０８」が指定され、区分に「従業員数」が指定された場合の戻り値の例である。
【０２１８】
ところで、上記の各種ＡＰＩの引数としても利用されるアプリＩＤは、各サーバアプリに対して固定的、かつ、静的に割り当てられてもよいし。図３９に示されるように、流動的、かつ、動的に割り当てられてもよい。
【０２１９】
図３９は、アプリＩＤの割り当て処理の処理手順の一例を説明するためのシーケンス図である。
【０２２０】
サーバアプリは、アプリケーションサーバ１２１における起動処理（Ｓ７０１）の過程において、以下の処理を実行する。
【０２２１】
まず、サーバアプリは、当該サーバアプリに関するアプリ名及びベンダ名等、当該サーバアプリの属性情報を指定して、サーバアプリの登録要求をアプリ管理部１３６ａに送信する（Ｓ７０２）。ベンダ名とは、当該サーバアプリを開発したソフトウェアベンダの識別名である。アプリ名の一意性は、少なくともソフトウェアベンダ内において確保されているため、アプリ名とベンダ名との組み合わせで、各サーバアプリを識別することができる。なお、登録要求には、サーバアプリに関する他の情報が追加されてもよい。
【０２２２】
アプリ管理部１３６ａは、当該登録要求に応じ、サーバアプリごとの識別情報であるアプリＩＤを生成し、当該アプリＩＤを、登録要求元のサーバアプリに返信する（Ｓ７０３）。なお、アプリ管理部１３６ａは、当該アプリＩＤと、当該登録要求に指定された、サーバアプリの属性情報等を関連付けて、例えば、アプリ情報記憶部１４２ｃに記憶する。
【０２２３】
起動処理が完了すると、サーバアプリは、返信されたアプリＩＤを指定して、起動の完了通知をアプリ管理部１３６ａに送信する（Ｓ７０４）。アプリ管理部１３６ａは、当該通知に応じ、例えば、アプリ管理情報記憶部１４２ｃにおいて、当該アプリＩＤに対応するレコードに、当該アプリＩＤに係るサーバアプリが起動中であることを示す情報を記憶してもよい。
【０２２４】
なお、アプリＩＤが、動的に割り当てられる場合、ログ活用ＡＰＩの引数であるアプリＩＤの値を、クライアント側が知るのが困難となる。そこで、ログ活用ＡＰＩの引数であるアプリＩＤは、アプリ名、又はアプリ名とベンダ名との組み合わせによって置き換えられてもよい。この場合、例えば、ログ活用部１３１ｂが、アプリ管理情報記憶部１４２ｃを参照して、アプリ名、又はアプリ名とベンダ名との組み合わせを、アプリＩＤに置換したのちに、呼び出されたＡＰＩに応じた処理を実行してもよい。
【０２２５】
または、プラットフォームＡＰＩ１５０の一つとして、或るアプリ名に対応するアプリＩＤを返信するＡＰＩが設けられてもよい。
【０２２６】
また、上記したログ活用ＡＰＩのインタフェース仕様は、適宜変更されてもよい。他のログ活用ＡＰＩが適宜追加されてもよい。
【０２２７】
なお、上記各実施の形態において、クラウドサービスシステム１は、情報処理システムの一例である。インターネット用ゲートウェイ１１１は、第一の割当部及び受信部の一例である。ログ記憶サーバ１４１は、記憶部の一例である。アプリ用ゲートウェイ１２２、共通サービス用ゲートウェイ１３４、及びデータベース用ゲートウェイ１４３は、第二の割当部の一例である。アプリケーションサーバ１２１、ログ管理サーバ１３１、認証サーバ１３２、及びコンテンツ処理サーバ１３３は、処理部の一例である。
【０２２８】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０２２９】
１            クラウドサービスシステム
２            機器利用環境
２０          機器
２０ａ        画像形成装置
２０ｂ        プロジェクタ
２０ｃ        ＴＶ会議用機器
２１          クライアントアプリ
２２          アプリケーションプラットフォーム
２３          アップロード部
２４          機器ログ記憶部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１１１        インターネット用ゲートウェイ
１２０        アプリケーション層
１２０ａ      ポータルアプリ
１２０ｂ      スキャンアプリ
１２０ｃ      プリントアプリ
１２１        アプリケーションサーバ
１２２        アプリ用ゲートウェイ
１３０        共通サービス層
１３１        ログ管理サーバ
１３１ａ      ログ管理部
１３１ｂ      ログ活用部
１３１ｃ      ログ解析部
１３２        認証サーバ
１３２ａ      認証部
１３３        コンテンツ処理サーバ
１３３ａ      コンテンツ処理部
１３３ｂ      非同期処理部
１３４        共通サービス用ゲートウェイ
１３５        メールサーバ
１３５ａ      メール送信部
１３６        アプリ管理サーバ
１３６ａ      アプリ管理部
１４０        データベース層
１４１        ログ記憶サーバ
１４１ａ      ログ記憶部
１４２        ユーザ情報記憶サーバ
１４２ａ      ユーザ情報記憶部
１４２ｂ      機器情報記憶部
１４２ｃ      アプリ情報記憶部
１４３        データベース用ゲートウェイ
１５０        プラットフォームＡＰＩ
Ｂ            バス
ｇ１、ｇ２、ｇ３、ｇ４  セグメント
Ｎ１          ネットワーク
【先行技術文献】
【特許文献】
【０２３０】
【特許文献１】特開２０１０−１６１７１４号公報
【特許文献２】特開２００８−１２９９５５号公報
【特許文献３】特開２０１２−０８４０４１号公報
【図１】
2014160451.tif 000003
【図２】
2014160451.tif 000004
【図３】
2014160451.tif 000005
【図４】
2014160451.tif 000006
【図５】
2014160451.tif 000007
【図６】
2014160451.tif 000008
【図７】
2014160451.tif 000009
【図８】
2014160451.tif 000010
【図９】
2014160451.tif 000011
【図１０】
2014160451.tif 000012
【図１１】
2014160451.tif 000013
【図１２】
2014160451.tif 000014
【図１３】
2014160451.tif 000015
【図１４】
2014160451.tif 000016
【図１５】
2014160451.tif 000017
【図１６】
2014160451.tif 000018
【図１７】
2014160451.tif 000019
【図１８】
2014160451.tif 000020
【図１９】
2014160451.tif 000021
【図２０】
2014160451.tif 000022
【図２１】
2014160451.tif 000023
【図２２】
2014160451.tif 000024
【図２３】
2014160451.tif 000025
【図２４】
2014160451.tif 000026
【図２５】
2014160451.tif 000027
【図２６】
2014160451.tif 000028
【図２７】
2014160451.tif 000029
【図２８】
2014160451.tif 000030
【図２９】
2014160451.tif 000031
【図３０】
2014160451.tif 000032
【図３１】
2014160451.tif 000033
【図３２】
2014160451.tif 000034
【図３３】
2014160451.tif 000035
【図３４】
2014160451.tif 000036
【図３５】
2014160451.tif 000037
【図３６】
2014160451.tif 000038
【図３７】
2014160451.tif 000039
【図３８】
2014160451.tif 000040
【図３９】
2014160451.tif 000041