(57)【要約】【課題】  サーバにてプリンタドライバでデータ変換を行う場合、印刷に利用する各種プリンタに対応したプリンタドライバをサーバにインストールしなければならず、インストールやアップデートの管理に手間がかかっていた。また、クラウドプリントでは取り扱うデータの種類が次々増えていくことが想定され、データ変換モジュールとしても入力データを増やしていく必要があるが、そのたびにプリンタドライバの修正が必要となる。また、各種のプリンタドライバで異なる印刷設定フォーマットが存在するため、各種プリンタドライバに固有の印刷設定をする必要があった。【解決手段】  データ変換を行うためにプリンタドライバを使う代わりに、複数のデータ変換モジュールの処理順を変えることで、様々なデータ変換機能を提供する。【選択図】  図４
2014215880.tif 000002
【特許請求の範囲】
【請求項１】
データと、当該データを処理するための設定情報とを含むジョブを処理するためのデータ処理装置であって、
前記ジョブを処理するための複数の処理手段と、
前記複数の処理手段の間の接続を規定する構成情報を複数保持する保持手段と、
処理対象のジョブを受信し、当該ジョブに含まれる設定情報に基づいて、当該ジョブを処理するための構成情報を前記保持手段から取得する受信手段と、
前記受信手段が取得した構成情報に基づいて、前記複数の処理手段の間の接続を設定する接続手段と
を有することを特徴とするデータ処理装置。
【請求項２】
前記接続手段は、前記複数の処理手段ごとに、各処理手段に入力する入力データを保持する入力データ保持領域と、各処理手段で処理した出力データを保持する出力データ保持領域と、をメモリに割り当て、さらに、着目処理手段の出力データ保持領域を、当該着目処理手段が出力する出力データを入力データとして処理する処理手段の入力データ保持領域として割り当てることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記接続手段は、前記複数の処理手段ごとに、各処理手段に入力する入力データを処理するための設定情報を保持する入力設定領域と、各処理手段で処理した出力データに関する設定情報を保持する出力設定領域と、をメモリに割り当て、さらに、着目処理手段の出力設定領域を、当該着目処理手段の出力データを入力データとして処理する処理手段の入力設定領域として割り当てることを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記設定情報はＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述されていることを特徴とする請求項１乃至３のいずれか１項に記載のデータ処理装置。
【請求項５】
前記複数の処理手段の少なくとも１つは、前記ジョブに含まれるデータを前記設定情報に基づいてＰＤＬ形式に変換することを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理装置。
【請求項６】
前記設定情報は、前記ジョブに基づいて印刷を実行するプリンタを示す指定情報を含み、前記複数の処理手段の少なくとも１つは、当該指定情報の示すプリンタに対応する印刷データに変換することを特徴とする請求項１乃至５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記複数の処理手段の少なくとも１つは、前記ジョブに含まれるデータを前記設定情報に基づいてＰＤＦ形式に変換することを特徴とする請求項１乃至６のいずれか１項に記載のデータ処理装置。
【請求項８】
前記接続手段は、前記複数の処理手段ごとに、各処理手段に入力する入力データを処理するための設定情報を保持する入力設定領域と、各処理手段で処理した出力データに関する設定情報を保持する出力設定領域と、をメモリに割り当て、着目処理手段の出力設定領域を、当該着目処理手段の出力データを処理する第１処理手段の入力設定領域として割り当てる際に、当該第１処理手段が前記設定情報を参照しない場合に、前記着目処理手段の出力設定領域を、前記第１処理手段の出力データを処理する第２処理手段の入力設定領域として割り当てることを特徴とする請求項１に記載のデータ処理装置。
【請求項９】
前記接続手段は、前記複数の処理手段ごとに、各処理手段に入力する入力データを処理するための設定情報を保持する入力設定領域と、各処理手段で処理した出力データに関する設定情報を保持する出力設定領域と、をメモリに割り当て、着目処理手段の出力設定領域を、当該着目処理手段の出力データを処理する処理手段の入力設定領域として割り当てる際に、前記接続手段による接続順で最初に前記ジョブに含まれる設定情報を変更する処理手段までの少なくとも１つ以上の入力設定領域に、前記受信手段で受信したジョブに含まれる設定情報をコピーすることを特徴とする請求項１に記載のデータ処理装置。
【請求項１０】
印刷指示としてのジョブを送信するクライアントと、前記印刷指示に基づいた印刷を実施するプリンタと、前記クライアントの送信したジョブに基づいてデータ変換要求を発行するプリントサービスサーバと、前記データ変換要求に基づいて前記ジョブを前記プリンタに適する印刷データに変換するデータ変換サービスサーバと、を有するプリントシステムであって、
前記データ変換サービスサーバが、
前記ジョブを処理するための複数の処理手段と、
前記複数の処理手段の間の接続を規定する構成情報を複数保持する保持手段と、
処理対象のジョブを受信し、当該ジョブに含まれる設定情報が示す種類に基づいて、当該ジョブを処理するための構成情報を前記保持手段から取得する受信手段と、
前記受信手段が取得した構成情報に基づいて、前記複数の処理手段の間の接続を設定する接続手段とを備えることを特徴とするプリントシステム。
【請求項１１】
データ変換装置であって、
入力データと、設定情報とを有するジョブを受け付ける受け付け手段と、
前記入力データに対して、前記設定情報に基づいたデータ変換処理を行う複数のデータ変換手段と、
前記設定情報に基づいて、前記複数のデータ変換手段の構成を決定する決定手段と、
前記データ変換手段を管理する制御手段と、
前記データ変換手段ごとのデータを保持する複数の領域を備える記憶手段と、
前記決定手段で決定された構成に従って、前記複数の領域と前記複数のデータ変換手段との対応づけを実施する制御手段とを有することを特徴とするデータ変換装置。
【請求項１２】
データと当該データを処理するための設定情報とを含むジョブを処理するための複数の処理手段と、前記複数の処理手段の間の接続を規定する構成情報を複数保持する保持手段とを備えるデータ処理装置の制御方法であって、
処理対象のジョブを受信し、当該ジョブに含まれる設定情報が示す種類に基づいて、当該ジョブを処理するための構成情報を前記保持手段から取得する受信工程と、
前記受信工程で取得した構成情報に基づいて、前記複数の処理手段の間の接続を設定する接続工程とを有することを特徴とするデータ処理装置の制御方法。
【請求項１３】
コンピュータを、
データと、当該データを処理するための設定情報とを含むジョブを処理するためのデータ処理装置であって、
前記ジョブを処理するための複数の処理手段と、
ジョブを処理するための構成情報を複数保持する保持手段と、
処理対象のジョブを受信し、当該ジョブに含まれる設定情報が示す種類に基づいて、当該ジョブを処理するための構成情報を前記保持手段から取得する受信手段と、
前記受信手段が取得した構成情報に基づいて、前記複数の処理手段の間の接続を設定する接続手段と
を有することを特徴とするデータ処理装置として機能させることを特徴とするコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理するためのデータ処理装置、データ処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングの普及に伴い、ソフトウェアをサービスとして公開するＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）と呼ばれるサービスが広がりを見せている。このＳａａＳの一つとして、クラウド上のサーバに保存されている文書をネットワークに接続されたプリンタにてリモートで印刷する「クラウドプリントサービス」と呼ばれるサービスも登場しつつある。
【０００３】
クラウドプリントサービスでは、クラウド上に保存されている多様な文書フォーマットを、多種多様なプリンタが解釈できるデータに変換する必要がある。
【０００４】
従来、プリンタに送信する印刷データを生成するために、サーバ上に、利用しようとするプリンタを制御するためのデバイスドライバプログラム（以降、単にプリンタドライバと称す）をインストールしておき、プリンタドライバでデータ変換を行っていた。
【０００５】
例えば、特許文献１によれば、サーバ装置において、受信した入力ファイルと出力ファイルのフォーマット形式を示す情報とに基づいて、搭載された複数のフォーマット変換モジュールから好適なプリンタドライバを選択する。そして、選択されたプリンタドライバにより入力ファイルをフォーマット変換する方法を実現している。
【０００６】
また、特許文献２によれば、サーバ上に汎用ドライバと機種ごとのプリンタドライバを用意しておき、「印刷データ生成指示」の段階で、共通の印刷設定を行ってプリンタ非依存データ（中間データ）に変換する。そして、「印刷開始指示」の段階で機種ごとのドライバを用いてプリンタ非依存データに対してＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ）を行うことで、機種に合った印刷データに変換する方法を実現している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１３３８７７号公報
【特許文献２】特開２０１２−２１６０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１や特許文献２のようにサーバでプリンタドライバによってデータ変換を行う場合、印刷に利用する各種プリンタに対応したプリンタドライバをサーバにインストールしなければならない。そのため、インストールやアップデートの管理に手間がかかっていた。
【０００９】
また、クラウドプリントでは取り扱うデータの種類が増えていくことが想定され、データ変換可能なデータを拡張する必要があるが、そのたびにサーバにインストールしている各プリンタドライバを総当たりで修正していく必要があり煩雑である。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明に係るデータ処理装置は、データと、当該データを処理するための設定情報とを含むジョブを処理するためのデータ処理装置であって、前記ジョブを処理するための複数の処理手段と、ジョブを処理するための構成情報を複数保持する保持手段と、処理対象のジョブを受信し、当該ジョブに含まれる設定情報が示す種類に基づいて、当該ジョブを処理するための構成情報を前記保持手段から取得する受信手段と、前記受信手段が取得した構成情報に基づいて、前記複数の処理手段間の接続を設定する接続手段とを有することを特徴とする。
【発明の効果】
【００１１】
各種プリンタに対応したプリンタドライバを用いる必要がなくなるため、クラウドプリントサービスにおけるサーバの保守が容易となる。
【図面の簡単な説明】
【００１２】
【図１】印刷システムの構成例を示す模式図である。
【図２】コンピュータ装置の構成を示す概略図である。
【図３】データ変換アプリケーションの構成例を示す模式図である。
【図４】ジョブ初期化処理を表すフローチャートである。
【図５】ジョブ定義情報の一例を示す記述である。
【図６】対応情報が記述されているファイルの一例を示す。
【図７】フィルタの構成情報の一例を示す。
【図８】ストリームの初期化処理を表すフローチャートである。
【図９】ジョブ実行処理を表すフローチャートである。
【図１０】ストリームの初期化処理を表すフローチャートである。
【図１１】フィルタの構成情報の一例である。
【図１２】チケットストリームの初期化処理を表すフローチャートである。
【図１３】ジョブ初期化処理を表すフローチャートである。
【図１４】フィルタの構成情報の一例である。
【図１５】ジョブ実行処理を表すフローチャートである。
【図１６】チケットの自動コピー処理を表すフローチャートである。
【図１７】チケットの自動コピーを行った場合のデータ変換アプリケーションの概念図である。
【図１８】データ変換処理におけるジョブ処理の概略を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１４】
＜実施形態１＞
図１は、本実施形態に係る印刷システムの構成例を示す模式図である。
【００１５】
この印刷システムは、クライアントＰＣ１０２、プリントサービスサーバ１０３、データ変換サービスサーバ１０４、プリンタ１０５を有し、それらがネットワーク１０１を介して接続されている。
【００１６】
クライアントＰＣ１０２は、Ｗｅｂブラウザを用いてプリントサービスサーバ１０３にアクセスし、プリントサービスサーバ１０３に格納されているドキュメントの印刷指示を送信する。印刷指示の際に、印刷対象のドキュメントファイルと、チケットと、印刷に使用するプリンタとを指定する。ここでチケットとは、印刷対象ドキュメントを印刷データに変換する際の設定が記述されているファイルである。
【００１７】
プリントサービスサーバ１０３ではＷｅｂアプリケーションが動作しており、クライアントＰＣ１０２の印刷要求（ドキュメントファイルを識別する情報と、チケットと、ジョブに基づいて印刷を実行するプリンタを示す指定情報とを含む）に応じて、データ変換サービスサーバ１０４にデータ変換を依頼（データ変換要求を発行）する。なお、データ変換要求は変換対象のドキュメントファイルとチケットとプリンタの指定とを含む。また、データ変換サービスサーバ１０４からデータ変換後の印刷データ（ＰＤＬとプリンタ制御情報）を受信し、プリンタ１０５に印刷を指示する。なお、ＰＤＬとはｐａｇｅ−ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅの略であるが、本明細書ではＰＤＬ形式で記述されているファイルを呼称するものとする。
【００１８】
データ変換サービスサーバ１０４は、データ変換アプリケーションが動作するサーバである。プリントサービスサーバ１０３からのデータ変換要求を受信し、このデータ変換要求に含まれる変換対象のドキュメントファイルを、指定されているプリンタに適する印刷データへ変換する。そして、プリントサービスサーバ１０３に変換した印刷データとチケット（変換結果の要約なども含む）とを返却する。
【００１９】
プリンタ１０５はプリントサービスサーバ１０３からの印刷指示（データ変換後の印刷データの格納場所示す情報を含む）を受信する。印刷指示に応じて、印刷データをプリントサービスサーバ１０３から取得し、印刷を行う。
【００２０】
以上が図１に示す構成例に基づいた本印刷システムの概略であるが、本発明は図１の構成に限らず適用できる。例えば、クライアントＰＣ１０２、プリントサービスサーバ１０３、データ変換サービスサーバ１０４は同一コンピュータであっても良いし、プリントサービスサーバ１０３とデータ変換サービスサーバ１０４が同一のコンピュータであってもよい。
【００２１】
次に本発明の実施の形態に係るコンピュータ装置の構成を説明する。図２は、本実施形態におけるクライアントＰＣ１０２、プリントサービスサーバ１０３、データ変換サービスサーバ１０４の構成の一例を示すブロック図である。なお、クライアントＰＣ１０２、プリントサービスサーバ１０３、データ変換サービスサーバ１０４は必ずしも同一の構成である必要はない。
【００２２】
ＣＰＵ２０１はＲＡＭ２０２に格納されている制御プログラムに従って本装置全体の制御を行うＣＰＵである。ＲＡＭ２０２はＣＰＵ２０１が実行するプログラムや、文書画像等のデータを格納する主記憶装置であり、揮発性のメモリである。ネットワークインタフェース２０３はＣＰＵ２０１の制御の下にネットワークとの接続を行なってデータ等を送受信するネットワークインタフェースである。外部記憶装置２０４は処理対象のデータやＲＡＭ２０２に展開するためのプログラムを保存する磁気ディスクやフラッシュメモリ等の外部記憶装置であり、不揮発性のメモリである。ディスプレイ２０５に表示する内容について、ユーザはキーボード２０６や、マウス等を含むポインティングデバイス２０７を用いて操作できる。なお、プリントサービスサーバ１０３やデータ変換サービスサーバ１０４については、ネットワーク１０１を介して操作したり、表示を確認できたりするのであればディスプレイ２０５やキーボード２０６やマウス２０７は不要である。
【００２３】
ＲＡＭ２０２に格納されているプログラムを実行するＣＰＵ２０１は、ＲＡＭ２０２に格納されているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能の一部を必要に応じて呼び出して使用する。また、ＲＡＭ２０２に格納されているプログラムに基づいて、ＣＰＵ２０１は、ＲＡＭ２０２に一時記憶するデータの内容の読み書きを行なったり、外部記憶装置２０４に対するデータの読み書きを行なったり、ネットワークインタフェース２０３を通じて他の装置とデータの送受信を行なったりする。また、ＲＡＭ２０２に格納されているプログラムに基づいて、ＣＰＵ２０１は、キーボード２０６やポインティングデバイス２０７からの入力を受け取ったり、ディスプレイ２０５に表示を行なったりする。
【００２４】
図３は本実施形態に係るデータ変換アプリケーション３１２の構成を示す概念図である。データ変換サービスシステム３１０およびデータ変換アプリケーション３１２の各構成はデータ変換サービスサーバ１０４のＣＰＵ２０１がＲＡＭ２０２のプログラムコードを実行することによって実現される。データ変換アプリケーション３１２は、データ変換サービスサーバ１０４で動作するデータ変換サービスシステム３１０によって利用される。データ変換アプリケーション３１２では、データ変換を行うために、プリンタドライバを使う代わりに、１つ以上のデータ変換モジュールを印刷させようとするプリンタに対応する印刷データに変換するために適した順序で使用する。複数のデータ変換モジュールをデータ処理順に「ストリーム」で接続し、複数のデータ変換モジュールを通す構成とすることで、様々なデータ変換機能を提供する。以降の説明では、データ変換モジュール（データ変換部、データ処理部）のことを、フィルタと呼称する。なお、ストリームとはデータ変換アプリケーション３１２がフィルタ３０８毎に確保しているアドレス領域（ＲＡＭ２０２または外部記憶装置２０４の領域の少なくとも一部）ともいえる。また、ストリームで接続するとは、複数のフィルタでストリームを共有することで、複数のフィルタからストリームに対してアクセスが可能な状態にすることである。ここで、本発明で提供するフィルタは、例えばＪＰＥＧ形式の画像データをＰＤＦ形式（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）のデータに変換するフィルタや、ＰＤＦ形式のデータを印刷データに変換するフィルタである。
【００２５】
ジョブ管理部３０１はデータ変換サービスシステム３１０からデータ変換アプリケーション３１２に入力されたジョブを解析し、ジョブに対応する入出力の情報と、ジョブの種類に対応するフィルタ構成（１つ以上のフィルタをどのように構成するか）とを構成保持部３０９から取得する。ここでジョブとは、ドキュメント、チケット等の情報を含む。
【００２６】
フィルタ制御部３０２は、フィルタ保持部３１１から必要なフィルタに対応するプログラムコードを取得し、構成保持部３０９に基づいてデータ変換サービスシステム３１０からのジョブを処理するため必要なフィルタ構成（フィルタ入出力管理部３０３やフィルタ３０８）を生成する。また、フィルタ制御部３０２は各フィルタ３０８に対する初期化や処理実行の指示等の制御と、フィルタ３０８に対応するフィルタ入出力管理部３０３の管理を行う。フィルタ制御部３０２の処理の詳細は後述する。なお、構成保持部３０９とフィルタ保持部３１１は、データ変換サービスサーバ１０４の外部記憶装置２０４やＲＡＭ２０２に設けられていればよい。
【００２７】
フィルタ入出力管理部３０３は、フィルタ３０８と１：１で対応し、フィルタ３０８と対応する入力ドキュメントストリーム（入力データ保持領域）３０４、出力ドキュメントストリーム（出力データ保持領域）３０５、入力チケットストリーム（入力設定領域）３０６、出力チケットストリーム（出力設定領域）３０７を管理する。入力ドキュメントストリーム３０４はフィルタ３０８が変換しようとするドキュメントファイルを格納し、入力チケットストリーム３０６はフィルタ３０８が変換に用いる設定を有するチケットを格納する。一方で、出力ドキュメントストリーム３０５はフィルタ３０８が変換したドキュメントファイルを格納し、出力チケットストリーム３０６はフィルタ３０８が変換に用いた設定（ログなども含む）を有するチケットを格納する。また、フィルタ入出力管理部３０３は対応するフィルタ３０８からの要求に応じて、入力ドキュメントストリーム３０４や入力チケットストリーム３０６に保持している内容をフィルタ３０８に供給する。  次に、本実施形態におけるデータ変換アプリケーションによるジョブの処理について説明する。図１８は、データ変換アプリケーション３１２の各構成を実現するＣＰＵ２０１が、データ変換サービスシステム３１０からのジョブを処理する手順を示すフローチャートである。ステップＳ１８０１で、ジョブに含まれる情報に基づいてフィルタやストリームを構成する（ジョブ初期化と呼称する）。そして、ステップＳ１８０２において、ステップ１８０１構成したフィルタやストリームに沿ってジョブを実行する。
【００２８】
図４は、図１８のステップＳ１８０１で示したジョブ初期化処理の詳細を表すフローチャートである。なお、図４のフローチャートで示す手順を実行するプログラムはデータ変換サービスサーバ１０４のＲＡＭ２０２や外部記憶装置２０４などを含む記憶部のいずれかに記憶され、ＣＰＵ２０１により実行される。
【００２９】
ステップＳ４０１はジョブ管理部３０１が、データ変換サービスシステム３１０から設定情報としてのジョブ定義ファイル（以降の説明では単にジョブ定義情報と称する）を受け付ける処理である。ジョブ定義情報は各ジョブの概略を示し、処理内容を示す情報やチケットや処理対象のデータ（ドキュメント）の入出力に関する情報を含む。ジョブ定義情報の詳細については後述する。ジョブ定義情報は各ジョブの先頭に配置してもよいし、ジョブの末尾など所定の位置に配置してもよいし、ジョブに先立って独立してデータ変換サービスシステム３１０が発行してもよい。
【００３０】
ステップＳ４０２はジョブ管理部３０１が、ステップＳ４０１で受け付けたジョブ定義情報から、入力ドキュメントと各種チケットの入力パス情報（入力元を示す情報）を取得する処理である。（ここで、入力パス情報とは、図５において、「ＩｎｐｕｔＰａｔｈ」と「ＴｉｃｋｅｔＰａｔｈ」に記述されている情報であり、詳細は後述する。）ジョブ管理部３０１は取得した入力パス情報の示す記憶領域（プリントサービスサーバ１０３やデータ変換サービスサーバ１０４）から入力ドキュメントと各種チケットを取得する。
【００３１】
ステップＳ４０３はジョブ管理部３０１が、ステップＳ４０１で受け付けたジョブ定義情報から、処理後のデータを出力する出力パス情報（出力先を示す情報）を取得する処理である。（ここで、出力パス情報とは、図５において、「ＯｕｔｐｕｔＰａｔｈ」に記述されている情報。）
ステップＳ４０４はジョブ管理部３０１が、ステップＳ４０１で受け付けたジョブ定義情報から、ジョブの種類を取得する処理である。（ここで、ジョブの種類とは、図５において「Ａｐｐｌｉｃａｔｉｏｎ」に記述されている情報。）
ステップＳ４０５はジョブ管理部３０１が、ステップＳ４０４で取得したジョブの種類に基づいてジョブの種類に対応するフィルタの構成情報を取得する処理である。ステップＳ４０５の処理の詳細については図６を用いて後述する。
【００３２】
ステップＳ４０６はジョブ管理部３０１が、ステップＳ４０５で取得したフィルタの構成情報を解析して、フィルタを構成するためのモジュールに関する情報を取得する処理である。ステップＳ４０６の処理について図７を用いて詳細は後述する。
【００３３】
ステップＳ４０７はフィルタ制御部３０２が、入力ドキュメントを引数として、サブルーチンとしての「ストリームの初期化」を呼び出す処理である。サブルーチンとしての「ストリームの初期化」の詳細な説明は図８を用いて後述する。
【００３４】
ステップＳ４０８はフィルタ制御部３０２が、全ての入力チケットに対して、ステップＳ４０９の処理を繰り返し行う処理である（Ｓ４０８とＳ４１０でループ処理を示す）。
【００３５】
ステップＳ４０９はフィルタ制御部３０２が、入力チケットを引数として、サブルーチンとしての「ストリームの初期化」を呼び出す処理である。サブルーチンとしての「ストリームの初期化」の詳細な説明は図８を用いて後述する。
【００３６】
ステップＳ４１０はフィルタ制御部３０２が、全ての入力チケットに対して、ステップＳ４０９の処理を完了した際に「ジョブ初期化」の終了処理に進む処理である。
【００３７】
＜ジョブ定義情報＞
図５はジョブ定義情報の一例である。図５に示すジョブ定義情報はＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述されている。ルート要素（ツリー構造で最上位の要素）は「ＪｏｂＤｅｆｉｎｉｔｉｏｎ」要素である。また、ジョブ定義情報は、図１に示したプリントシステムで利用可能な複数のプリンタの其々に対応している。
【００３８】
「ＪｏｂＤｅｆｉｎｉｔｉｏｎ」要素の子要素には、「Ａｐｐｌｉｃａｔｉｏｎ」要素、「ＩｎｐｕｔＰａｔｈ」要素、「ＯｕｔｐｕｔＰａｔｈ」要素、「ＴｉｃｋｅｔＰａｔｈ」要素がある。「ＴｉｃｋｅｔＰａｔｈ」要素は入力チケットの数だけ存在する。「Ａｐｐｌｉｃａｔｉｏｎ」要素には、データ変換サービスシステム３１０がデータ変換アプリケーションを利用して実現する機能に関する情報が記述されている。「Ａｐｐｌｉｃａｔｉｏｎ」要素の「ｉｄ」属性には当該機能の名前が記述されている。
【００３９】
「ＩｎｐｕｔＰａｔｈ」要素には、入力ドキュメントの情報が記述されている。「ＩｎｐｕｔＰａｔｈ」要素の「ｖａｌｕｅ」属性には入力ドキュメントのパスが記述されている。「ＯｕｔｐｕｔＰａｔｈ」要素には、処理後のデータの出力に関する情報が記述されている。「ＯｕｔｐｕｔＰａｔｈ」要素の「ｖａｌｕｅ」属性には処理後のデータを出力するパスが記述されている。「ＴｉｃｋｅｔＰａｔｈ」要素には、入力チケットの情報が記述されている。「ＴｉｃｋｅｔＰａｔｈ」要素の「ｔｙｐｅ」属性には入力チケットの種類を示す識別子が記述されている。「ＴｉｃｋｅｔＰａｔｈ」要素の「ｖａｌｕｅ」属性には入力チケットのパスが記述されている。
【００４０】
＜対応情報＞
図６は、ジョブの種類とフィルタの構成情報との対応関係を示す対応情報の一例である。対応情報は構成保持部３０９に格納されている。図６に示す対応情報はＸＭＬ形式で記述されている。ルート要素は「Ａｐｐｌｉｃａｔｉｏｎｓ」要素である。「Ａｐｐｌｉｃａｔｉｏｎｓ」要素の子要素には、「Ａｐｐｌｉｃａｔｉｏｎ」要素がある。「Ａｐｐｌｉｃａｔｉｏｎ」要素には、ジョブの種類（「ｉｄ」属性）と、ジョブの種類に対応するフィルタの構成情報（「ＦｉｌｔｅｒＣｏｎｆｉｇ」要素の「ｐａｔｈ」属性）が記述されている。
【００４１】
図５のステップＳ４０５では、ジョブ管理部３０１が、ステップＳ４０４で取得したジョブの種類に基づいて、図６の対応情報の「Ａｐｐｌｉｃａｔｉｏｎ」要素について「ｉｄ」属性を検索する。一致したら、ジョブ管理部３０１が、「Ａｐｐｌｉｃａｔｉｏｎ」要素の子要素である「ＦｉｌｔｅｒＣｏｎｆｉｇ」要素の「ｐａｔｈ」属性から、フィルタの構成情報を取得する。図６の例において、ジョブ管理部３０１はステップＳ４０４で取得した“ＰｒｉｎｔＳｅｒｖｉｃｅ１”に基づいて、対応情報の「Ａｐｐｌｉｃａｔｉｏｎ」要素の「ｉｄ」属性（６０１）を検索する。その後、ジョブ管理部３０１が「Ａｐｐｌｉｃａｔｉｏｎ」要素の子要素である「ＦｉｌｔｅｒＣｏｎｆｉｇ」要素の「ｐａｔｈ」属性から、ジョブを処理するためのフィルタ構成情報の記憶領域を示す情報として、“．￥ＰｒｉｎｔＳｅｒｖｉｃｅ１＿ＦｉｌｔｅｒＣｏｎｆｉｇ．ｘｍｌ”を取得する。
【００４２】
＜フィルタ構成情報＞
図７はフィルタの接続順を規定するフィルタ構成情報（以下、単に構成情報と称す）の一例である。フィルタ構成情報は構成保持部３０９に複数保持されている。図７に示す構成情報はＸＭＬ形式で記述されている例である。ルート要素である「Ｆｉｌｔｅｒｓ」要素の子要素として、「Ｆｉｌｔｅｒ」要素が複数記載されている。「Ｆｉｌｔｅｒｓ」要素の子要素には、「Ｍｏｄｕｌｅ」要素が存在する。「Ｍｏｄｕｌｅ」要素にはフィルタのモジュールのパス（ここでは、フィルタの各モジュールの記憶領域を示す情報）が記載されている。ステップＳ４０６では、ジョブ管理部３０１が、「Ｆｉｌｔｅｒ」要素の記載順にＦｉｌｔｅｒの順序構成を取得する。図７の例では、ＦｉｌｔｅｒＡ、ＦｉｌｔｅｒＢ、ＦｉｌｔｒｅＣの順番で記述されており、この順番がジョブの処理順序に相当する。
【００４３】
ここで、ステップＳ４０４からステップＳ４０６において、ジョブ定義情報に記載されているジョブの種類を基に、構成保持部３０９からフィルタ構成情報を取得して、フィルタ構成を決定する手法を示した。但し、本発明ではこの手法に限定されるものではなく、ジョブ定義情報にフィルタ構成情報に関する情報を含め、フィルタ構成情報に基づき、フィルタ構成を決定してもよい。
【００４４】
図８は、図４のステップＳ４０７やＳ４０９に示したストリームの初期化処理の詳細を表すフローチャートである。各ステップは図４と同様に、ＣＰＵ２０１によって実行される。なお、ストリームの初期化によって、図３に示す各ストリーム（入力ドキュメントストリーム３０４、出力ドキュメントストリーム３０５、入力チケットストリーム３０６、出力チケットストリーム３０７）を初期化（又は生成）することができる。
【００４５】
ステップＳ８０１はフィルタ制御部３０２が、処理対象フィルタ（ストリームの初期化処理の対象となるフィルタ）を、初段フィルタとして設定する処理である。
【００４６】
ステップＳ８０２は、処理対象フィルタが初段フィルタか否かをフィルタ制御部３０２が判断する処理である。処理対象フィルタが初段フィルタである場合にはステップＳ８０３に進む。処理対象フィルタが初段フィルタではない場合にはステップＳ８０６に進む。
【００４７】
ステップＳ８０３はフィルタ制御部３０２が、処理対象ファイルの入力ストリームを作成する処理である。
【００４８】
ステップＳ８０４はフィルタ制御部３０２が、ステップＳ４０２で取得した処理対象ファイルの入力データを、ステップＳ８０３で作成した入力ストリームに書き込む処理である。
【００４９】
ステップＳ８０５はフィルタ制御部３０２が、ステップＳ８０３で作成した入力ストリームを、処理対象フィルタ用のフィルタ入出力管理部３０３にセットする処理である。
【００５０】
ステップＳ８０６はフィルタ制御部３０２が、処理対象フィルタの前段フィルタの処理において、ステップＳ８０７で作成した出力ストリームを、現在の処理対象フィルタのフィルタ入出力管理部３０３に入力ストリームをしてセットする処理である。本ステップの処理によって、処理対象フィルタの前段フィルタの出力ストリームと、処理対象フィルタの入力ストリームは同じストリームとなる。
【００５１】
ステップＳ８０７はフィルタ制御部３０２が、処理対象ファイルの出力ストリームを作成する処理である。その後、出力ストリームを前回作成時の出力ストリームをして保存する。
【００５２】
ステップＳ８０８はフィルタ制御部３０２が、ステップＳ８０７で作成した出力ストリームを、処理対象フィルタ用のフィルタ入出力管理部３０３にセットする処理である。  
【００５３】
ステップＳ８０９は、処理対象フィルタが最終フィルタか否かをフィルタ制御部３０２が判断する処理である。最終フィルタである場合は終了処理に進む。最終フィルタでない場合はステップＳ８１０に進む。
【００５４】
ステップＳ８１０はフィルタ制御部３０２が、処理対象フィルタを、現在の処理対象フィルタの次のフィルタと設定する処理である。
【００５５】
ステップＳ８０１、ステップＳ８０９、及びステップＳ８１０の処理によって、初段フィルタから最終フィルタまでの全てのフィルタに対して、ステップＳ８０２からステップＳ８０８の処理を実行する。
【００５６】
このようにして、複数のフィルタの間の接続を制御する。上述の処理は、フィルタの１つを着目フィルタ（着目処理部）とすると、着目フィルタの次に処理をするフィルタの入力ストリーム（入力ドキュメントストリーム３０４、入力チケットストリーム３０６）として着目フィルタに対応する出力ストリーム（出力ドキュメントストリーム３０５、出力チケットストリーム３０７）を割り当てることに相当する。
【００５７】
次に図９を用いて、図１８のステップＳ１８０２で示した、データ変換アプリケーションにおけるジョブ実行処理の詳細について説明する。なお、ジョブ実行処理は、ジョブ初期化処理が完了した後に開始する。
【００５８】
なお、図９のフローチャートで示す手順はデータ変換サービスサーバ１０４のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
【００５９】
ステップＳ９０１はフィルタ制御部３０２が、全てのフィルタ３０８に対してステップＳ９０２の処理を実行する処理である。
【００６０】
ステップＳ９０２はフィルタ制御部３０２が、フィルタ３０８に対して初期化を指示する処理である。
【００６１】
ステップＳ９０３はフィルタ制御部３０２が、全てのフィルタ３０８に対して、ステップＳ９０２の処理を完了した際にステップＳ９０４に進む処理である。
【００６２】
ステップＳ９０４はフィルタ制御部３０２、及びフィルタ入出力管理部３０３が、全てのフィルタ３０８に対してステップＳ９０５からステップＳ９０７の処理を実行する処理である。なお、ステップＳ９０５からステップＳ９０７の処理はフィルタ毎に並列に実行する。
【００６３】
ステップＳ９０５はフィルタ制御部３０２が、フィルタ３０８に対して処理実行を指示する処理である。フィルタ３０８では処理実行の指示にしたがい処理を進める。
【００６４】
ステップＳ９０６はフィルタ入出力管理部３０３が、処理実行中のフィルタ３０８から各種入力、及び出力ストリームの提供要求を受け付け、フィルタ３０８にストリームを提供する処理である。ここで、ストリームにデータが書き込まれている場合は、フィルタ入出力管理部３０３はストリームをすぐにフィルタ３０８に提供する。ストリームにデータが書き込まれていない場合は、フィルタ入出力管理部３０３がストリームにデータが書き込まれるまで待ってから、ストリームをフィルタ３０８に提供する。フィルタ３０８では、提供された入力ストリームからデータを読み込み、データ変換処理を実行後、出力ストリームに変換後のデータを出力する。
【００６５】
ステップＳ９０７はフィルタ制御部３０２が、フィルタ３０８から処理が完了して、出力ストリームにデータを書き込んだことの通知を受け取る処理である。
【００６６】
ステップＳ９０８はフィルタ制御部３０２、及びフィルタ入出力管理部３０３が、全てのフィルタ３０８に対して、ステップＳ９０５からステップＳ９０７の処理を完了した際にステップＳ９０９に進む処理である。
【００６７】
ステップＳ９０９はフィルタ制御部３０２が、最終フィルタの出力ドキュメントストリームに書き込まれたデータ、即ちデータ変換アプリケーションの出力となるデータを、ステップＳ４０３で取得した出力パスに従って出力する処理である。
【００６８】
ステップＳ９１０はジョブ管理部３０１が、フィルタ３０８の処理結果をデータ変換サービスシステム３１０に通知する処理である。
【００６９】
以上説明したように、本実施形態によればジョブ定義情報に基づいてデータ変換処理やデータ処理、入出力処理を組み立てるので、各種プリンタに対応した複数のプリンタドライバをサーバに用意する必要がなくなる。また、データ変換処理の共通部分を重複して保持することを少なくでき、サーバの保守の利便性を向上させたり、サーバの記憶容量を削減したりできる。
【００７０】
＜実施形態２＞
実施形態１では全てのフィルタに対して、入力ドキュメントと全ての入力チケットのストリームを作成した。しかし、実際には、特定の入力チケットを必要としないフィルタも存在する。例えば、テキストデータをＰＤＦに変換するフィルタの場合には、印刷設定が記述されているチケット（以降、プリントチケットと表記する）は必要がない。実施形態１では、このようなフィルタが存在する場合であっても、全てのフィルタに対してプリントチケットのストリームを作成する。そのため、プリントチケットを必要としないフィルタであっても、プリントチケットを出力ストリームに出力する処理を余分に行うこととなってしまう。そこで実施形態２では、入力チケットに対して読み書きを行わないフィルタとして判定された場合には、そのフィルタを飛ばして、チケットを利用するフィルタのみストリームを作成して接続する。なお、実施形態２の説明では、実施形態１と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。
【００７１】
図１０は実施形態２における、ジョブ初期化処理の詳細を表すフローチャートである。図４からの変更点はステップＳ１００１、ステップＳ１００２が追加されており、ステップＳ４０９の代わりにステップＳ１００２が使用されていることである。なお、図１０のフローチャートで示す手順はデータ変換サービスサーバ１０４のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶部に記憶され、ＣＰＵ２０１により実行される。
【００７２】
ステップＳ１００１はジョブ管理部３０１が、ステップＳ４０５で取得したフィルタの構成情報を解析して、各フィルタが利用するチケット情報を取得する処理である。ステップＳ１００１の処理について図１１を用いて説明する。
【００７３】
図１１は実施形態２におけるフィルタの構成情報の一例である。図７に示したフィルタの構成情報との違いは、「Ｆｉｌｔｅｒ」要素の子要素として「Ｔｉｃｋｅｔｓ」要素（１１０１、１１０２、１１０３）が追加されていることである。「Ｔｉｃｋｅｔｓ」要素には使用するチケットの情報が、子要素である「Ｔｉｃｋｅｔ」要素に記載されている。「Ｔｉｃｋｅｔ」要素の「ｔｙｐｅ」属性にはチケットの種類が記載されている。ステップＳ１００１では、ジョブ管理部３０１が、「Ｔｉｃｋｅｔｓ」要素を読み込んで、子要素である「Ｔｉｃｋｅｔ」要素の情報を、利用するチケットの情報として取得する。図１１の例において、まず「ｎａｍｅ」属性が“ＦｉｌｔｅｒＡ”の「Ｆｉｌｔｅｒ」要素の子要素である「Ｔｉｃｋｅｔｓ」要素を読み込む。「Ｔｉｃｋｅｔｓ」要素には、「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ１”の「Ｔｉｃｋｅｔ」要素と、「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ２”の「Ｔｉｃｋｅｔ」要素が子要素として存在する（１１０１）。そのため、ＦｉｌｔｅｒＡがＴｉｃｋｅｔ１とＴｉｃｋｅｔ２を使用することを取得することが出来る。次に、「ｎａｍｅ」属性が“ＦｉｌｔｅｒＢ”の「Ｆｉｌｔｅｒ」要素の子要素である「Ｔｉｃｋｅｔｓ」要素を読み込む。「Ｔｉｃｋｅｔｓ」要素には、「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ２”の「Ｔｉｃｋｅｔ」要素が子要素として存在する（１１０２）。そのため、ＦｉｌｔｅｒＢがＴｉｃｋｅｔ２を使用することを取得出来る。更に、「ｎａｍｅ」属性が“ＦｉｌｔｅｒＣ”の「Ｆｉｌｔｅｒ」要素の子要素である「Ｔｉｃｋｅｔｓ」要素を読み込む。「Ｔｉｃｋｅｔｓ」要素には、「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ１”の「Ｔｉｃｋｅｔ」要素が子要素として存在する（１１０３）。そのため、ＦｉｌｔｅｒＣがＴｉｃｋｅｔ１を使用することを取得出来る。
【００７４】
図１０に戻り、ステップＳ１００２はフィルタ制御部３０２が、入力チケットを引数として、サブルーチン「チケットストリームの初期化」を呼び出す処理である。サブルーチン「チケットストリームの初期化」の詳細説明は図１２を用いて後述する。
【００７５】
図１２は実施形態２における、チケットストリームを初期化するサブルーチンの処理を表すフローチャートである。実施形態１において同様の処理を行っていた図４からの変更点は、ステップＳ１２０１からステップＳ１２０５が追加されており、ステップＳ１２０３がステップＳ８０２の代わり、ステップＳ１２０５がステップＳ８０６の代わりに使用されることである。
【００７６】
ステップＳ１２０１はフィルタ制御部３０２が、入力ストリーム作成済フラグをＯＦＦと設定する処理である。入力ストリーム作成済フラグはステップＳ１２０３、ステップＳ１２０４で使用される。
【００７７】
ステップＳ１２０２は、処理対象フィルタが処理対象ファイルを利用するか否かをフィルタ制御部３０２が判断する処理である。なお、処理対象フィルタが処理対象ファイルを利用するか否かの情報は、ステップＳ１００１で取得した情報である。処理対象フィルタが、処理対象ファイルを利用する場合はステップＳ１２０３に進む。処理対象フィルタが、処理対象ファイルを利用しないと判定した場合はステップＳ８０９に進む。
【００７８】
ステップＳ１２０３はフィルタ制御部３０２が、入力ストリーム作成済フラグを確認する処理である。入力ストリーム作成済フラグがＯＦＦの場合はステップＳ８０３に進む。入力ストリーム作成済フラグがＯＮの場合はステップＳ１２０５に進む。このフラグを設けることにより、最初にチケットを使うフィルタだけステップＳ８０３〜Ｓ１２０４の処理により入力ストリームが作成される。以降のフィルタはステップＳ１２０５の処理により、前回作成時の出力ストリームが、処理対象フィルタの入力ストリームとしてセットされる
ステップＳ１２０４はフィルタ制御部３０２が、入力ストリーム作成済フラグをＯＮと設定する処理である。ステップＳ１２０１，Ｓ１２０３、Ｓ１２０４の処理により、入力ストリームを作成する処理（ステップＳ８０３からＳ８０５）は最初の一回のみ実行される。
【００７９】
ステップＳ１２０５はフィルタ制御部３０２が、ステップＳ８０７で保存した前回作成時の出力ストリームを、現在の処理対象フィルタのフィルタ入出力管理部３０３に入力ストリームをしてセットする処理である。本ステップの処理によって、前回作成時の出力ストリームと、処理対象フィルタの入力ストリームは同じストリームとなる。
【００８０】
以上の本実施形態によれば、各フィルタは自身で参照する必要がないチケットについての読み書き処理をスキップするため、実施形態１に比べて処理を高速に実行することができる。
【００８１】
＜実施形態３＞
実施形態１では前段フィルタがチケットを書き込むまで、次段フィルタはチケットを読む事が出来ない。前段フィルタの処理の完了を待つ必要があるため、各フィルタは並列に処理が出来ない。実施形態３では、チケットを次に書き込むフィルタまで自動的にコピーする手法を示す。なお、実施形態３の説明では、実施形態１、２と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。
【００８２】
図１３は実施形態３における、ジョブ初期化処理を表すフローチャートである。図４からの変更点はステップＳ１３０１、ステップＳ１３０２が追加されていることである。なお、図１３のフローチャートで示す手順はデータ変換サービスサーバ１０４のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
【００８３】
ステップＳ１３０１はジョブ管理部３０１が、ステップＳ４０５で取得したフィルタの構成情報を解析して、各フィルタが利用するチケットのアクセス権情報（処理属性）を取得する処理である。ステップＳ１３０１の処理について図１４を用いて説明する。
【００８４】
図１４は実施形態３におけるフィルタの構成情報の一例である。図７に示したフィルタの構成情報との違いは、「Ｆｉｌｔｅｒ」要素の子要素として「Ｔｉｃｋｅｔｓ」要素（１４０１、１４０２、１４０３）が追加されていることである。「Ｔｉｃｋｅｔｓ」要素には使用するチケットの情報が、子要素である「Ｔｉｃｋｅｔ」要素に記載されている。「Ｔｉｃｋｅｔ」要素の「ｔｙｐｅ」属性にはチケットの種類が記載されている。「Ｔｉｃｋｅｔ」要素の「ａｃｃｅｓｓ」属性にはチケットのアクセス情報が記載されている。「ａｃｃｅｓｓ」属性には、チケットを読み込む場合には”Ｒ”、チケットを書き込む場合は”Ｗ”を記述する。ステップＳ１３０１では、「Ｔｉｃｋｅｔｓ」要素の子要素である「Ｔｉｃｋｅｔ」要素を読み込んで、「ｔｙｐｅ」属性と「ａｃｃｅｓｓ」属性の情報を取得する。図１４の例において、まず「ｎａｍｅ」属性が“ＦｉｌｔｅｒＡ”の「Ｆｉｌｔｅｒ」要素の子要素である「Ｔｉｃｋｅｔｓ」要素を読み込む。「Ｔｉｃｋｅｔｓ」要素には、子要素として２つの「Ｔｉｃｋｅｔ」要素が存在する。１つは、「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ１”、「ａｃｃｅｓｓ」属性が“Ｒ”の「Ｔｉｃｋｅｔ」要素であり、もう１つは「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ２”、「ａｃｃｅｓｓ」属性が“ＲＷ”の「Ｔｉｃｋｅｔ」要素である（１４０１）。そのため、ＦｉｌｔｅｒＡがＴｉｃｋｅｔ１に対して読み込みのみを行い、Ｔｉｃｋｅｔ２に対して読み込みと書き込みを行うことを取得出来る。次に、「ｎａｍｅ」属性が“ＦｉｌｔｅｒＢ”の「Ｆｉｌｔｅｒ」要素の子要素である「Ｔｉｃｋｅｔｓ」要素を読み込む。「Ｔｉｃｋｅｔｓ」要素には、子要素として２つの「Ｔｉｃｋｅｔ」要素が存在する。１つは、「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ１”、「ａｃｃｅｓｓ」属性が“ＲＷ”の「Ｔｉｃｋｅｔ」要素であり、もう１つは「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ２”、「ａｃｃｅｓｓ」属性が“Ｒ”の「Ｔｉｃｋｅｔ」要素である（１４０２）。そのため、ＦｉｌｔｅｒＢがＴｉｃｋｅｔ１に対して読み込みと書き込みを行い、Ｔｉｃｋｅｔ２に対して読み込みのみを行うことを取得出来る。更に、「ｎａｍｅ」属性が“ＦｉｌｔｅｒＣ”の「Ｆｉｌｔｅｒ」要素の子要素である「Ｔｉｃｋｅｔｓ」要素を読み込む。「Ｔｉｃｋｅｔｓ」要素には、子要素として２つの「Ｔｉｃｋｅｔ」要素が存在する。１つは「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ１”、「ａｃｃｅｓｓ」属性が“Ｒ”の「Ｔｉｃｋｅｔ」要素であり、もう１つは「ｔｙｐｅ」属性が“Ｔｉｃｋｅｔ２”、「ａｃｃｅｓｓ」属性が“Ｒ”の「Ｔｉｃｋｅｔ」要素である（１４０３）。そのため、ＦｉｌｔｅｒＣがＴｉｃｋｅｔ１に対して読み込みのみを行い、Ｔｉｃｋｅｔ２に対して読み込みのみを行うことを取得出来る。
【００８５】
図１３に戻り、ステップＳ１３０２はフィルタ制御部３０２が、初段フィルタと入力チケットを引数として、サブルーチン「チケットの自動コピー」を呼び出す処理である。サブルーチン「チケットの自動コピー」の詳細説明は図１６を用いて後述する。
【００８６】
図１５は実施形態３における、ジョブの実行処理を表すフローチャートである。実施形態１において同様の処理を行っていた図９のフローチャートの代わりに使用される。図４からの変更点はステップＳ１５０１からＳ１５０３が追加されていることである。なお、図１５のフローチャートで示す手順はデータ変換サービスサーバ１０４のＲＡＭ２０２、もしくは外部記憶装置２０４のいずれかの記憶手段に記憶され、ＣＰＵ２０１により実行される。
【００８７】
ステップＳ１５０１はフィルタ制御部３０２が、全ての入力チケットに対して、ステップＳ１５０２の処理を繰り返し行う処理である。ここで入力チケットとは、ジョブ初期化時においてステップＳ４０２で取得したものである。
【００８８】
ステップＳ１５０２はフィルタ制御部３０２が、フィルタと入力チケットを引数として、サブルーチン「チケットの自動コピー」を呼び出す処理である。サブルーチン「チケットの自動コピー」の詳細説明は図１６を用いて後述する。本ステップの処理により、次段フィルタ以降の入力チケットの入力ストリームにデータが書きこまれる。その結果、次段フィルタ以降のステップＳ９０６の処理において、フィルタに入力チケットの入力ストリームを提供することが可能となり、次段以降のフィルタでは入力チケットに関する処理を進めることが可能となる。
【００８９】
ステップＳ４１０はフィルタ制御部３０２が、全ての入力チケットに対して、ステップＳ１５０２の処理を完了した際にステップＳ９０７に進む処理である。
【００９０】
図１６は本実施３における、チケットの自動コピーを行うサブルーチンの処理を表すフローチャートである。
【００９１】
ステップＳ１６０１はフィルタ制御部３０２が、ステップＳ４０６で取得したフィルタの構成に基づき、コピー元フィルタが最終フィルタか否かを判断する処理である。最終フィルタである場合には終了処理に進む。最終フィルタでない場合にはステップＳ１６０２に進む。
【００９２】
ステップＳ１６０２はフィルタ制御部３０２が、コピー先フィルタをコピー元フィルタの次段フィルタと設定する処理である。コピー元フィルタの次段フィルタは、ステップＳ４０６で取得したフィルタの構成から決定する。
【００９３】
ステップＳ１６０３は、コピー元のフィルタが処理対象チケットを書き込むか否かをフィルタ制御部３０２が判断する処理である。コピー元のフィルタが処理対象チケットを書き込むか否かの情報はステップＳ１３０１で取得したものである。コピー元のフィルタが処理対象チケットを書き込む場合は終了処理に進む。コピー元のフィルタが処理対象チケットを書き込まない場合はステップＳ１６０４に進む
ステップＳ１６０４はフィルタ制御部３０２が、コピー元フィルタの処理対象チケットの入力ストリームの内容を、コピー先フィルタの処理対象チケットの入力ストリームにコピーする処理である。
【００９４】
ステップＳ１６０５はフィルタ制御部３０２が、コピー元フィルタを現在のコピー先フィルタと設定する処理である。その後、ステップＳ１６０１に進み、本ステップで設定したコピー元フィルタについて同様にステップＳ１６０１からステップＳ１６０４の処理を実行する。
【００９５】
次に図１６のフローに従ってチケットの自動コピーがどのように行われるか、図１７を用いて説明する。
【００９６】
図１７（ａ）は図１３に示すジョブ初期化処理のフローにおいて、チケットの自動コピーを行った場合（ステップＳ１３０２）のデータ変換アプリケーションの概念図である。なおステップＳ１３０２において、引数の入力チケットはＴｉｃｋｅｔ１であるものとする。図１７（ａ）の例では、フィルタ構成は、フィルタＡ１７０１、フィルタＢ１７０２、フィルタＣ１７０３の順にフィルタが構成されている。また、処理対象チケットであるＴｉｃｋｅｔ１のアクセス情報は、フィルタＡ１７０１は「読み込みのみ（リードオンリー）」、フィルタＢ１７０２は「読み込みと書き込み」、フィルタＣ１７０３は「読み込みのみ」となっている。
【００９７】
ステップＳ１６０１では、コピー元フィルタであるフィルタＡ１７０１は最終フィルタではないため、ステップＳ１６０２に進む。ステップＳ１６０２では、コピー先フィルタは、フィルタＡ１７０１の次段フィルタであるフィルタＢ１７０２と設定される。ステップＳ１６０３では、コピー元フィルタであるフィルタＡ１７０１は、処理対象チケットであるＴｉｃｋｅｔ１を書き込まないため、ステップＳ１６０４に進む。ステップＳ１６０４では、フィルタＡ１７０１のＴｉｃｋｅｔ１の入力用ストリーム１７０４の内容が、フィルタＢ１７０２のＴｉｃｋｅｔ１の入力用ストリーム１７０５にコピーされる。ステップＳ１６０５では、コピー元フィルタはフィルタＡ１７０１の次段であるフィルタＢ１７０２と設定される。
【００９８】
再びステップＳ１６０１では、フィルタＢは最終段フィルタではないため、ステップＳ１６０２に進む。ステップＳ１６０２では、コピー先フィルタは、フィルタＢ１７０２の次段フィルタであるフィルタＣ１７０３と設定される。ステップＳ１６０３では、フィルタＢ１７０２は処理対象チケットであるＴｉｃｋｅｔ１を書き込むと判断する。そのため、フィルタＢ１７０２のＴｉｃｋｅｔ１の入力用ストリーム１７０５の内容が、フィルタＣ１７０３のＴｉｃｋｅｔ１の入力用ストリーム１７０６にコピーされず、チケットの自動コピー処理を終了する。
【００９９】
図１７（ｂ）は図１５に示すジョブ実行処理のフローにおいて、チケットの自動コピーを行った場合（ステップＳ１５０２）のデータ変換アプリケーションの概念図である。なおステップＳ１５０２において、引数のフィルタはフィルタＢ１７０２、入力チケットはＴｉｃｋｅｔ２であるものとする。図１７（ｂ）の例では、フィルタ構成は、フィルタＡ１７０１、フィルタＢ１７０２、フィルタＣ１７０３の順にフィルタが構成されている。また、処理対象チケットであるＴｉｃｋｅｔ２のアクセス情報は、フィルタＡ１７０１は「読み込みと書き込み」、フィルタＢ１７０２は「読み込みのみ」、フィルタＣ１７０３は「読み込みのみ」となっている。
【０１００】
ステップＳ１６０１では、コピー元フィルタであるフィルタＢ１７０２は最終フィルタではないため、ステップＳ１６０２に進む。ステップＳ１６０２では、コピー先フィルタは、フィルタＢ１７０２の次段フィルタであるフィルタＣ１７０３と設定される。ステップＳ１６０３では、コピー元フィルタであるフィルタＢ１７０２は、処理対象チケットであるＴｉｃｋｅｔ２を書き込まないため、ステップＳ１６０４に進む。ステップＳ１６０４では、フィルタＢ１７０２のＴｉｃｋｅｔ２の入力用ストリーム１７０８の内容が、フィルタＣ１７０３のＴｉｃｋｅｔ２の入力用ストリーム１７０９にコピーされる。ステップＳ１６０５では、コピー元フィルタはフィルタＢ１７０２の次段であるフィルタＣ１７０３と設定される。
【０１０１】
再びステップＳ１６０１では、フィルタＣは最終段フィルタであるため、コピー先のフィルタが存在しない、そのため、チケットの自動コピー処理を終了する。
【０１０２】
以上、本実施形態によれば、読み込みのみ（リードオンリー）のチケットについては、処理を開始する際に複数のフィルタのチケット作業領域（入力チケットストリーム）にコピーされ、複数のフィルタで並列にチケットの処理が可能となる。従って、各フィルタによる処理の並列実効性を高めることができる。
【０１０３】
上述の実施形態ではプリントシステムについて説明したが、本発明はプリントシステムに限られない。例えば、閲覧デバイス用のデータに変換するデータ変換システムにおいても本発明を適用することで、各デバイス用に個別にプログラムを用意しなくて済む。
【０１０４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が、コンピュータ読み取り可能なプログラムを読み出して実行する処理である。
【図１】
2014215880.tif 000003
【図２】
2014215880.tif 000004
【図３】
2014215880.tif 000005
【図４】
2014215880.tif 000006
【図５】
2014215880.tif 000007
【図６】
2014215880.tif 000008
【図７】
2014215880.tif 000009
【図８】
2014215880.tif 000010
【図９】
2014215880.tif 000011
【図１０】
2014215880.tif 000012
【図１１】
2014215880.tif 000013
【図１２】
2014215880.tif 000014
【図１３】
2014215880.tif 000015
【図１４】
2014215880.tif 000016
【図１５】
2014215880.tif 000017
【図１６】
2014215880.tif 000018
【図１７】
2014215880.tif 000019
【図１８】
2014215880.tif 000020