ドキュメント変換装置、情報処理方法及びプログラム
【課題】アプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることを目的とする。
【解決手段】アプリケーション制御手段は、Pageモードに対応するPageモードタイマ時間内に、アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Pageモードタイマ時間内に、アプリケーションから変換が完了したことを示す応答がなかった場合、アプリケーションのプロセスを強制終了させることによって課題を解決する。
【解決手段】アプリケーション制御手段は、Pageモードに対応するPageモードタイマ時間内に、アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Pageモードタイマ時間内に、アプリケーションから変換が完了したことを示す応答がなかった場合、アプリケーションのプロセスを強制終了させることによって課題を解決する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ドキュメント変換装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
着脱可能、かつ、複数のモジュールを連結する処理方法として、モジュールをフィルタとして扱い、パイプラインでつないだフィルタパイプラインシステムが従来からある。フィルタ間のデータの受け渡し方法は、ストリームで順次データを送る方法や、電子ファイルとしてまとめて送る方法等、様々な方法がある。データの受け渡し方法として共通している点は、「あるフィルタの出力データが次のフィルタの入力データである」という点である。
フィルタパイプラインシステムの従来の例として Microsoft XPSフィルタパイプラインがある(非特許文献1)。Microsoft XPS フィルタパイプラインは、例えば、入力フォーマットであるXPS(XML Paper Specification)ファイルのレイアウトを変換し、レイアウト変換済みXPSファイルを出力するXPSレイアウトフィルタを含む。また、Microsoft XPS フィルタパイプラインは、例えば、レイアウトされたXPSファイルを印刷装置が認識可能な制御コマンドであるPDL(Page Description Language)ファイルに変換するXPS印刷フィルタを含む。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】"XPSDrv_FilterPipe.xps"、[online],2008年2月7日、インターネット<http://msdn.microsoft.com/ja−jp/windows/hardware/gg463364.aspx>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、フィルタパイプラインシステムは、アプリケーションに指示したフォーマット変換の応答が一定時間発生しなかった場合、変換処理自体が重いのか、アプリケーションが変換中、不測の事態に陥っているのか判断できない。
入力ドキュメントのページ数が多いといった要因で変換処理自体が重いのであれば、更に一定時間応答を待つのが適切である。しかし不測の事態に陥っている場合は更に待機すると、一定時間分フィルタパイプラインシステムが動作出来ないことを意味する。
不測の事態に陥っているのであればアプリケーションプロセスを落として、該当変換処理のエラー処理を行うことが適切である。しかし単に変換処理自体が重いだけであった場合、その入力ドキュメントは決して出力ドキュメントに変換出来ないことを意味する。
【0005】
本発明はこのような問題点に鑑みなされたもので、アプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることを目的とする。
【課題を解決するための手段】
【0006】
そこで、本発明は、ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段を有するドキュメント変換装置であって、前記ドキュメント変換処理手段は、アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御手段と、前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、を有し、前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させる。
【発明の効果】
【0007】
本発明によれば、アプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることができる。
【図面の簡単な説明】
【0008】
【図1A】ドキュメント変換フィルタがアプリケーションを活用してドキュメント変換を行う一例を示す図である。
【図1B】ドキュメント変換フィルがPDF生成ドライバを活用してドキュメント変換を行う一例を示す図である。
【図2】フォーマット変換装置が適用されるコンピュータの構成の一例を示す図である。
【図3】ドキュメント変換指示を受けて印刷が実行されるまでの概念図である。
【図4】フォーマット変換部のソフトウェア構成等の一例を示す図である。
【図5】ドキュメント変換フィルタ15の構成の一例を示す図である。
【図6A】ドキュメント変換Jobモード指示部の変換方法であるJobモードの一例を示す図である。
【図6B】ドキュメント変換Pageモード指示部の変換方法であるPageモードの一例を示す図である。
【図6C】Jobモードの出力結果の一例を示す図である。
【図6D】関連付けドキュメントの一例を示した図である。
【図7A】アプリケーション制御部が常にアプリケーションへの指示に対して応答時間を監視していることを示す図である。
【図7B】JobモードタイマとPageモードタイマとの一例を示す図である。
【図8】実施形態1のJobモード時の処理の一例を示すフローチャートである。
【図9】実施形態1のPageモード時の処理の一例を示すフローチャートである。
【図10】図8と図9との一連のフローチャートを簡略化して一つの情報処理の流れを表したフローチャートである。
【図11】複数のドキュメント変換フィルタから同一プロセスで動作する変換アプリケーションを制御する一例を示す図である。
【図12A】共有情報の一例を示す図である。
【図12B】JobモードタイマとPageモードタイマとの一例を示す図である。
【図12C】JobモードとPageモードとの変移の条件の一例を示す図である。
【図13】実施形態2のJobモード時の処理の一例を示すフローチャートである。
【図14】実施形態2のPageモード時の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面に基づいて説明する。
【0010】
フィルタパイプラインシステムでは入力フォーマットを固定している訳ではなく、例えばPDFだったり、Microsoft Office(登録商標)といったアプリケーションで活用されるOOXMLだったり、任意のフォーマットに対応することができる。PDFは、Portable Document Formatの略である。また、OOXMLは、Office Open XMLの略である。
フィルタパイプラインシステムで多種多様なフォーマットに対応する場合は、フィルタから該当フォーマットを解釈出来る市販アプリケーション等を活用して、次のフィルタが解釈出来るフォーマットに変換することが可能である。フィルタパイプラインシステムの入力がOOXMLで出力がPDLというユースケースにおいて、PDFをPDLに変換するPDF印刷フィルタが予め存在しているとする。その場合、OOXML−PDF変換フィルタとPDF印刷フィルタとを連結する。
図1Aに示すように、OOXML−PDF変換フィルタは、OOXMLを入力とし、Microsoft Officeアプリケーション(以下、単に所定アプリケーションという)のプロセスを立ち上げ、PDF変換への指示を行う。そして、OOXML−PDF変換フィルタは、出来あがったPDFをOOXML−PDF変換フィルタの出力とする。或いは、アプリケーションが直接PDF変換する機能を有さない場合でも、印刷機能さえ持っていれば同様の機能が実現出来る。図1Bに示すように、プリンタドライバの代わりに、PDFを出力するPDF生成ドライバを用意し、アプリケーションにはPDF生成ドライバへの印刷指示し、PDF生成ドライバの出力としてPDFを取得する。
このようにドキュメント変換フィルタを、アプリケーションを活用した形態で構築し、入力フォーマットに対応したフィルタを組み合わせることで、フィルタパイプラインシステムは多種多様なフォーマットに対応することが出来る。
【0011】
フィルタパイプラインシステムでは、入力フォーマットがOOXMLであり、OOXML−PDF変換フィルタを活用することでPDFに変換可能であることは判断出来る。しかしながら、上述したように、OOXML−PDF変換フィルタがプロセスを立ち上げる所定アプリケーションが正常にOOXML−PDF変換を行っているかを逐次監視できない。
【0012】
<実施形態1>
フィルタパイプラインシステムにおいて、特にクライアントPC内にフォーマット変換装置を適合させた場合の実施形態である。実施形態1では、フォーマットして様々な入力ドキュメントを取り扱っており、入力ドキュメントのフォーマットに従ってフィルタパイプラインシステムが構築するフィルタを切り替えている。
フィルタは、任意の入力ドキュメントのフォーマットに対し、該当フォーマットを解釈出来るアプリケーションを活用しPDFに変換する。また後段のフィルタが、そのPDFを印刷データであるPDLファイルへ変換する。
このようにフィルタパイプラインシステムではフィルタ制御部が複数のフィルタを組み合わせて、所望の処理を実現する。
ここで、アプリケーションを活用して変換するフォーマットはPDFに限定されるものではなく、後段のフィルタが解釈出来るフォーマットであれば同様に成立する。また、後段のフィルタが出力するものはPDLである必要もなく、印刷システムに限定されるわけではない。最終的に何らかのドキュメントを出力するユースケースであれば同様に成立する。またこのフォーマット変換装置は、Webサービスのサーバやクラウドサービスとしてサービスを提供する際にも適用可能である。
【0013】
図2は、フォーマット変換装置が適用されるコンピュータの構成の一例を示す図である。
中央処理装置1は、プログラム及び関連データが記憶されているFD、CD−ROM、ICメモリカード等の記憶媒体に記憶されているデータ等をシステムに接続された媒体読取装置6から読み込む。その後、中央処理装置1は、補助記憶装置3から主記憶装置2にロードされたシステムプログラム、アプリケーションプログラム等によって入力装置4から入力される情報を処理して、出力装置5や印刷装置7に出力する。なお、本実施形態では出力装置5は、ディスプレイ等の表示装置とし、本来出力装置に含まれる印刷装置7と区別する。また、入力装置4は、キーボード、ポインティングデバイス等で構成されているものとする。更に補助記憶装置3は、ハードディスク、光磁気ディスクで構成されるものであってもいいし、これらの組み合わせで構成されるものであってもよい。また、それぞれの装置がネットワークを介して接続されていてもよい。
【0014】
図3は、媒体読取装置6に格納されていたプログラムと関連するデータが中央処理装置1に読み込まれ、入力装置4からフォーマット変換指示がフォーマット変換部10に入力されて、印刷装置7へPDLデータを送り印刷するまでの概念図である。アプリケーション11及びドキュメント生成ドライバ12はフォーマット変換部10から活用され、OS(オペレーティングシステム)9の制御下で機能する。
なお、図3のフォーマット変換部10、アプリケーション11、ドキュメント生成ドライバ12はプログラムである。上述したように、これらのプログラムを中央処理装置1が実行することによって、ソフトウェアとしてのフォーマット変換部10、アプリケーション11、ドキュメント生成ドライバ12等として機能させる。
【0015】
図4は、フォーマット変換部10のソフトウェア構成等の一例を示す図である。OS(オペレーティングシステム)9は、フォーマット変換部10、所定アプリケーション11Aや、入力ドキュメントを解釈し、印刷出来る任意ドキュメント用アプリケーション11B、ドキュメント生成ドライバ12を制御している。
ユーザーインターフェース部13は、ユーザがフォーマット変換部10に対して変換元ドキュメントの指定や各種設定を入力したり、変換開始指示をしたりする。
フィルタ制御部14は、ユーザからの指示に従い、様々なフィルタの処理順序を構築したり入出力等を制御したりする。
ドキュメント変換フィルタ15は、フィルタの中でも特にドキュメント変換機能を有するドキュメント変換フィルタ群を示す。本実施形態では、ドキュメント変換フィルタ15そのものが存在している訳ではなく、入力ドキュメントを別のドキュメントに変換するフィルタを総称している。例えばドキュメント変換フィルタ15の一例であるOOXML−PDF変換フィルタ16は、OOXMLファイルを取得し、所定アプリケーション11Aのプロセスを立ち上げ、取得したOOXMLファイルを読み込ませ、PDF変換指示を出す。所定アプリケーション11Aが作成したPDFをOOXML−PDF変換フィルタ16の出力とする。
また、別のドキュメント変換フィルタ15の一例としては、任意ドキュメントPDF変換フィルタ17があげられる。ここで任意のドキュメントとは、XPS、ODF(OpenDocument Format)といった標準フォーマット、或いは特定のアプリケーションのみで活用するドキュメントフォーマットでも成立する。この任意ドキュメントを処理するアプリケーションは一つではなく、任意ドキュメント用アプリケーション11Bとは、複数の様々なアプリケーションの総称とする。本実施形態においてはOSが提供するファイル拡張子とアプリケーションとの関連付け機構を活用しているため、ドキュメント変換フィルタ15自体は、立ち上げるアプリケーションが何かを特に意識する必要はない。
【0016】
任意ドキュメントPDF変換フィルタ17は、入力ドキュメントファイルを取得し、任意ドキュメント用アプリケーション11Bのプロセスを立上げ、取得した入力ドキュメントを読み込ませる。そして、任意ドキュメントPDF変換フィルタ17は、PDFを生成するドキュメント生成ドライバ12を指定して印刷指示を出す。ドキュメント生成ドライバ12が作成したPDFを任意ドキュメントPDF変換フィルタ17の出力とする。
印刷フィルタ18は、ドキュメント変換フィルタ15が各種ドキュメントファイルから作成したPDFを基に、印刷用のPDLデータを生成する。ここで作成されたPDLデータは印刷装置7に投げられる等により紙への印刷が実現される。
本実施形態においては、常に印刷フィルタはPDFをPDLに変換するものとしているが、入力はPDFに限定されたものではく、XPS印刷フィルタとしてXPSをPDLに変換するものといった別フォーマットに対しても成立できる。その際、ドキュメント変換フィルタ15の出力は、印刷フィルタ18の入力フォーマットである必要がある。
【0017】
図5は、ドキュメント変換フィルタ15の構成の一例を示す図である。ドキュメント変換フィルタ15は、入出力管理部19、アプリケーション制御部20、ドキュメント変換Jobモード指示部21、ドキュメント変換Pageモード指示部22から構成される。
入出力管理部19は、ドキュメント変換フィルタ15に入ってきた入力ドキュメントをドキュメント変換Jobモード指示部21或いはドキュメント変換Pageモード指示部22に渡す。そして、入出力管理部19は、変換された出力ドキュメントを取得し、ドキュメント変換フィルタ15の出力として入出力を管理する。
アプリケーション制御部20は、入力ドキュメントを解釈できるアプリケーションを起動し、処理が終わるとアプリケーションのプロセスを落とす。また、アプリケーションからの応答を監視し、ある期間応答がない場合には、アプリケーションが不測の事態に陥っていると判断し、適切な対処を行う。この適切な対処とは、本実施形態に係わるものであり、後述する。
ドキュメント変換Jobモード指示部21は、アプリケーションを活用して入力ドキュメントをそのまま出力ドキュメントに変換を行なう(つまり、入力ドキュメント全体を一度に変換する)。ドキュメント変換Pageモード指示部22は、入力ドキュメントをページ数分の各ドキュメント1ページ分の出力ドキュメントに変換を行う。この変換に関しては、図6で後述する。
【0018】
図6Aは、ドキュメント変換Jobモード指示部21の変換方法であるJobモードの一例を示す図である。
Jobモードの場合、ドキュメント変換Jobモード指示部21は、アプリケーションに対して入力ドキュメント全体を出力ドキュメントへの変換指示を行う。つまり、1つの入力ドキュメントが1つの出力ドキュメントに変換される。
図6Bは、ドキュメント変換Pageモード指示部22の変換方法であるPageモードの一例を示す図である。Pageモードの場合、ドキュメント変換Pageモード指示部22は、アプリケーションに対して変換するページを指定し、出力ドキュメントの変換指示を行う。ページ指定は、1ページから順に入力ドキュメントのページ数分、指定ページを一ずつ更新しながら行われる。各1ページ分の出力ドキュメントは、図6Cに示すように入力ドキュメントのページ数分作成され、それらの出力ドキュメントを関連付けるドキュメントにて、どこのページに相当するかが指定される。
図6Dは、関連付けドキュメントの一例を示した図である。本実施形態においては、XML形式でファイルをPageファイルとして指定している。
【0019】
図7Aは、アプリケーション制御部20が常にアプリケーションへの指示に対して応答時間を監視していることを示す図である。図7Bに示すように、タイマは2種類予め用意されている。アプリケーション制御部20は、JobモードのときはJobモードタイマでアプリケーションの応答を監視し、Jobモードタイマ以上応答がなければ、Jobモードをエラーとする。すると変換はPageモードに移行する。
アプリケーション制御部20Pageモードのとき、Pageモードタイマでアプリケーションの応答を監視し、Pageモードタイマ以上応答がなければ、Pageモードをエラーとする。その場合は、本変換処理事態がエラーとなる。
【0020】
次に、図8のフローチャートを用いて、実施形態1に係わるドキュメント変換フィルタ15の処理の内、主にJobモードに関して説明する。ドキュメント変換フィルタ15が入力ドキュメント及び出力変換指示を受けたところから本フローは始まる。
最初は図6で説明したJobモードからスタートする。
ドキュメント変換フィルタ15の入出力管理部19が入力ドキュメント及び出力変換指示を取得する(S801)。すると、アプリケーション制御部20が入力ドキュメントを出力ドキュメントに変換できるアプリケーションを起動する(S802)。このとき変換するアプリケーションとは、市販されているようなアプリケーションでもよく、出力変換指示の出力ドキュメントに変換できる機能、或いは出力ドキュメントを生成するプリンタドライバを活用した印刷処理を実施出来るものである必要がある。
更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S803)。
次に、現時点ではJobモードが指定されているため、ドキュメント変換Jobモード指示部21が、アプリケーションに対して直接出力ドキュメント変換する、或いは出力ドキュメント生成プリンタドライバに対する印刷指示をする(S804)。このとき、ドキュメント変換Jobモード指示部21は、入力ドキュメント全体を1つの出力ドキュメントに変換するように指示する。
【0021】
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がJobモードであるため、図7Bで登録されたJobモードタイマ時間内にアプリケーションからの応答があるかを監視する。
Jobモードタイマ時間内にアプリケーションからの完了通知が発生すると(S805)、それはアプリケーションによる出力ドキュメント変換処理が正常に完了したことになる。その場合、アプリケーション制御部20は、S802で起動させた変換アプリケーションのプロセスを完了させる(S806)。入出力管理部19は、変換アプリケーション或いは変換アプリケーションとドキュメント生成ドライバ12とが生成した出力ドキュメントをドキュメント変換フィルタ15の出力とする(S807)。そして、入出力管理部19は、フィルタパイプラインシステムを構成する次のフィルタに出力ドキュメントを渡すことで完了する。
Jobモードタイマ時間内にアプリケーションからの完了通知が発生しない場合(S805)とは、以下の何れかである。即ち、入力ドキュメントが大きすぎて、Jobモードタイマ指定の短い時間では処理しきれない、或いは入力ドキュメントが不適切だった等の要因でアプリケーションが不測の事態に陥っている状態の何れかである。前者の状況であった場合は、もう少し待つのが適切であり、後者の状況であった場合は、例え待っても変換処理を完了させられない可能性が高い。しかしながら、市販アプリケーションといった内部処理が不明なコンポーネントを活用して変換処理を行う場合、どちらの状態であるかはドキュメント変換フィルタ15では判断できない。そこで、アプリケーション制御部20は、変換アプリケーションのプロセスを強制終了させ(S808)、JobモードからPageモードに移行させる(S809)。
【0022】
次に図9のフローチャートを用いて、図8のフローチャートでJobモードからPageモードに移行した後のPageモードに関して説明する。
ここでは図6で説明したPageモードが指定されている。また、入力ドキュメント及び出力変換指示は、図8のS801で入出力管理部19が取得した物をそのまま活用する。
まず、アプリケーション制御部20が入力ドキュメントを変換できるアプリケーションを起動する(S901)。この変換するアプリケーションとは、図8のS802と同じ物である。更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S902)。
次に、現時点ではPageモードが指定されているため、ドキュメント変換Pageモード指示部22が、アプリケーションに対して直接出力ドキュメント変換する、或いは出力ドキュメント生成プリンタドライバに対する印刷指示をする(S903)。このとき、ドキュメント変換Pageモード指示部22は、入力ドキュメントの1ページを1つの出力ドキュメントに変換するように指示する(S903)。
【0023】
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がPageモードであるため、図7Bで登録されたPageモードタイマ時間以内にアプリケーションからの応答があるかを監視する。
Pageモードタイマ時間以内にアプリケーションからの完了通知が発生すると(S904)、それはアプリケーションによる特定ページの出力ドキュメント変換処理が正常に完了したことになる。ドキュメント変換Pageモード指示部22は、特定ページの出力ドキュメントをファイル化し(S905)、入力ドキュメントの全てのページ処理を行ったかを判断する(S906)。入力ドキュメント全てのページの出力ドキュメント変換処理が完了していなければ、ドキュメント変換Pageモード指示部22は、変換ページを次のページ指定に変更し、再度特定ページの出力ドキュメント変換処理指示を行う(S903)。その都度、アプリケーション制御部20によるPageモードタイマとの比較(S904)、正常に特定ページ変換処理が完了した場合のファイル化(S905)を行い、入力データ全ページの変換処理が完了するまで繰り返す(S906)。
全ての特定ページの出力ドキュメント変換がPageモードタイマ時間内に完了すると、それは入力ドキュメントが正常に出力ドキュメントに変換されたことを意味する。
そして、アプリケーション制御部20は、S901で起動させた変換アプリケーションのプロセスを完了させる(S907)。入出力管理部19は、変換アプリケーション或いは変換アプリケーションと出力ドキュメント生成プリンタドライバとが生成した入力ドキュメントページ数分の特定ページ出力ドキュメントを図6C、図6Dで示したように関連付け、ドキュメントを生成する(S908)。
【0024】
ある特定ページのドキュメント変換処理が、Pageモードタイマ時間以内にアプリケーションからの完了通知が発生しない場合(S904)、以下の様な状態を意味する。それは、ある特定のページの入力ドキュメントが不適切だった等の要因で、アプリケーションが不測の事態に陥っている状態を意味する。この場合は、入力ドキュメントを出力ドキュメントに変換出来ないことを意味する。
そこで、アプリケーション制御部20は、変換アプリケーションのプロセスを強制終了させる(S909)。そして、入出力管理部19は、ドキュメント変換フィルタ15に指示された変換が失敗した旨の処理エラー報告を行う(S910)。
なお、このとき、特定のページの変換処理は失敗したが、それ以前のページの変換処理は成功している。そのため、処理エラー報告では変換に成功したページと失敗したページとを報告することで、ユーザに対して特定ページの修正を促す、特定ページの処理をSkipする指示を促す等が可能である。またそのとき、既に正常に処理を完了しているページ群に対しては、それを活用して効率よく再変換を実現することも可能である。
【0025】
図10は、図8と図9との一連のフローチャートを簡略化して一つの情報処理の流れを表したフローチャートである。
ドキュメント変換フィルタ15が入力ドキュメント及びそれを出力ドキュメントに変化する指示を受けると(S1001)、ドキュメント変換フィルタ15は、Jobモードで変換処理を行なう(S1002)。Jobモード処理中に予め設定したタイマ時間以内で全ての処理が完了すればドキュメント変換処理が正常に完了したことを意味し、そのまま正常終了する(S1003)。
Jobモード処理中に予め設定したタイマ時間以内で完了しない処理があった場合(S1003)、ドキュメント変換フィルタ15は、Pageモードで変換処理を行う(S1004)。Pageモード処理中に予め設定したタイマ時間以内で全ての処理が完了すればドキュメント変換処理が正常に完了したことを意味し、ドキュメント変換フィルタ15は、そのまま正常終了する(S1005)。
Pageモード処理中に予め設定したタイマ時間以内で完了しない処理があった場合(S1003)、ドキュメント変換フィルタ15は、S1001にて指示を受けたドキュメント変換処理に失敗したことを意味する。
【0026】
<実施形態2>
実施形態1においては、一つのドキュメント変換フィルタ15が一つの変換アプリケーションのプロセス起動、終了を制御している。同じOS9上で複数のフィルタパイプラインシステムが並列的に動作する場合、複数のドキュメント変換フィルタが同時に一つの変換アプリケーションを活用する場合がありうる。
図11は、複数のドキュメント変換フィルタから同一プロセスで動作する変換アプリケーションを制御する一例を示す図である。
ここでは3つのドキュメント変換フィルタがそれぞれ別の入力ドキュメントを出力ドキュメントに変換するため、それぞれがアプリケーションの起動、終了、変換指示を行う。ドキュメント変換フィルタがプロセス起動を指定しても、実際にアプリケーションが複数立ち上がるわけではなく、2回目以降の起動指示に対してアプリケーションはスレッドを分けて並列処理を行う物がある。一方、あるドキュメント変換フィルタがプロセスを強制終了させると、他のドキュメント変換フィルタがまだ変換指示を出している状況であっても、アプリケーションプロセスは強制終了してしまう。他のドキュメント変換フィルタからは突然変換処理指示を出しているはずのアプリケーションが存在しなくなったことになる。
【0027】
ドキュメント変換フィルタのアプリケーション制御部20は、複数のアプリケーション制御部20間で図12AのようにJobモード及びPageモードの起動数とタイムアウト数とを記録する共有情報を持つ。この共有情報は、ある事前に定められた場所にファイルとして格納してもよいし、OS9が提供するレジストリ等といった場所や複数のアプリケーション制御部20の共有の記憶領域である共有メモリに格納してもよい。この共有情報は、アプリケーションプロセス毎に持つ。また実施形態2においては共有情報が存在しない場合、最初にプロセスを立ち上げるドキュメント変換フィルタのアプリケーション制御部20が共有情報を作成する。
ドキュメント変換フィルタが変換アプリケーションのプロセスを立ち上げる際、図6Aで示したJobモードの場合は、Jobモード起動数のカウントを1追加し、正常に変換処理が完了すると、Jobモード起動数のカウントを1減らす。ここでカウントを1減らした結果、Jobモード起動数が0になった場合、他のドキュメント変換フィルタが変換アプリケーションのプロセスを立ち上げていないことを意味する。そのため、Jobモードの起動数が0になった時点でアプリケーション制御部20は、アプリケーションプロセスを落とす。
図6BのPageモードの場合も同様でアプリケーション制御部20は、起動する際にPageモード起動数のカウントを1追加し、正常終了した際にはカウントを1減らす。そしてPageモード起動数が0になった時点でアプリケーション制御部20は、アプリケーションプロセスを落とす。
アプリケーションからの応答が図12Bにて指定されたJobモードタイマ時間以上或いはPageモードタイマ時間以上無かった場合、アプリケーション制御部20は、Jobモードタイムアウト数、Pageモードタイムアウト数のカウントを1追加する。
起動数よりタイムアウト数の方が小さければ、他のドキュメント変換フィルタが変換アプリケーションに変換指示を出していることになる。そのため、応答が無く、タイムアウトが発生していても、アプリケーション制御部20は、他のドキュメント変換フィルタがタイムアウトになるまで待機する。
【0028】
図12Cにておいて、JobモードとPageモードとの変移を示す。
Jobモードで動作しているとき、Jobモード起動数とJobモードタイムアウト数とが一致すると、最後にJobモードタイムアウト数を更新したアプリケーション制御部20は、アプリケーションを強制終了させ、Pageモードに移行する。同様にそれ以外のドキュメント変換フィルタのアプリケーション制御部20もPageモードに移行する。
Pageモードでは各アプリケーション制御部20がそれぞれ変換アプリケーションを起動する度にPageモード起動数を1追加し、正常終了する度に1減らす。ここでPageモード起動数が0になった場合は、アプリケーション制御部20がアプリケーションプロセスを落とす。それ以降の処理は初期状態に戻っているため、Jobモードで動作する。
なお、図12AのPageモードタイムアウト数がPageモード起動数に一致した場合は、全てのアプリケーション制御部20が、Pageモードで不測の事態に陥ったことを意味する。よって最後に一致させたアプリケーション制御部20が変換アプリケーションを強制終了させると共に、全てのドキュメント変換フィルタが、該当処理をエラーとする。
【0029】
図13のフローチャートを用いて、実施形態2に係わるドキュメント変換フィルタの処理の内、主にJobモードに関して説明する。ドキュメント変換フィルタが入力ドキュメント及び出力変換指示を受けたところから本フローは始まる。
最初は図6で説明したJobモードからスタートする。
ドキュメント変換フィルタの入出力管理部19が入力ドキュメント及び出力変換指示を取得する(S1301)。すると、アプリケーション制御部20が入力ドキュメントを変換できるアプリケーションの起動処理を行う(S1302)。実施形態2における起動処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、アプリケーションのプロセスIDを取り出す。
・アプリケーション制御部20は、それを基に図12Aで示した共有情報にアクセスする。アプリケーション制御部20は、共有情報が存在しなければ新規に作成する。
・Jobモード起動数が0だった場合は、アプリケーション制御部20は、該当アプリケーションのプロセスを立ち上げる。
・アプリケーション制御部20は、Jobモード起動数を1つ追加する。
更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S1303)。
【0030】
次に、現時点ではJobモードが指定されているため、ドキュメント変換Jobモード指示部21が、アプリケーションに対して直接出力ドキュメント変換する(S1304)。このとき、入力ドキュメント全体を1つの出力ドキュメントに変換するように指示する。
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がJobモードであるため、図12Bで登録されたJobモードタイマ時間内にアプリケーションからの応答があるかを監視する。
Jobモードタイマ時間内にアプリケーションからの完了通知が発生すると(S1305)、それはアプリケーションによる出力ドキュメント変換処理が正常に完了したことになる。その場合、アプリケーション制御部20は、S1302で起動させた変換アプリケーションのプロセス正常終了処理を行う(S1306)。実施形態2におけるプロセス正常終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20がJobモード起動数を1減らす。
・減らした結果Jobモード起動数が0になった場合はアプリケーション制御部20が該当アプリケーションのプロセスを正常終了させる。
入出力管理部19は、変換アプリケーション或いは変換アプリケーションと出力ドキュメント生成プリンタドライバとが生成した出力ドキュメントをドキュメント変換フィルタの出力とする(S1307)。そして、入出力管理部19は、フィルタパイプラインシステムを構成する次のフィルタに出力ドキュメントを渡すことで処理を完了する。
【0031】
Jobモードタイマ時間内にアプリケーションからの完了通知が発生しない場合(S1305)、それは以下の何れかである。つまり、入力ドキュメントが大きすぎて、Jobモードタイマ指定の短い時間では処理しきれない、或いは入力ドキュメントが不適切だった等の要因で、アプリケーションが不測の事態に陥っている状態の何れかである。そこで、アプリケーション制御部20は、変換アプリケーションのプロセスの強制終了処理を行う(S1308)。実施形態2におけるプロセス強制終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、図12Aに示したJobモードタイムアウト数のカウントを1追加する。
・Jobモードタイムアウト数がJobモード起動数と一致していない場合、・アプリケーション制御部20は、Jobモードタイムアウト数がJobモード起動数に一致するまで、スリープ等を行い待機する。
・Jobモードタイムアウト数のカウントを1追加した結果、Jobモード起動数と一致した場合、・アプリケーション制御部20は、該当アプリケーションのプロセスを強制終了する。
そしてアプリケーション制御部20は、JobモードからPageモードに移行させる(S1309)。
【0032】
次に図14のフローチャートを用いて、図13のフローチャートでJobモードからPageモードに移行した後のPageモードに関して説明する。
ここでは図6で説明したPageモードが指定されている。また、入力ドキュメント及び出力変換指示は、図13のS1301で入出力管理部19が取得した物をそのまま活用する。
まず、アプリケーション制御部20が入力ドキュメントを変換できるアプリケーションの起動処理を行う(S1401)。実施形態2における起動処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、アプリケーションのプロセスIDを取り出す。
・アプリケーション制御部20が、それを基に図12Aで示した共有情報にアクセスする。Pageモード起動数が0だった場合は、該当アプリケーションのプロセスを立ち上げる。
・アプリケーション制御部20が、Pageモード起動数を1つ追加する。
この変換するアプリケーションとは、図13のS1302と同じ物である。更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S1402)。
【0033】
次に、現時点ではPageモードが指定されているため、ドキュメント変換Pageモード指示部22が、アプリケーションに対して直接出力ドキュメント変換する、或いは出力ドキュメント生成プリンタドライバに対する印刷指示をする。このとき、ドキュメント変換Pageモード指示部22は、入力ドキュメントの1ページを1つの出力ドキュメントに変換するように指示する(S1403)。
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がPageモードであるため、図12Bで登録されたPageモードタイマ時間以内にアプリケーションからの応答があるかを監視する。
Pageモードタイマ時間以内にアプリケーションからの完了通知が発生すると(S1404)、それはアプリケーションによる特定ページの出力ドキュメント変換処理が正常に完了したことになる。したがって、ドキュメント変換Pageモード指示部22は、特定ページの出力ドキュメントをファイル化し(S1405)、入力ドキュメントの全てのページ処理を行ったかを判断する(S1406)。入力ドキュメント全てのページの出力ドキュメント変換処理が完了していなければ、ドキュメント変換Pageモード指示部22は、変換ページを増加させて、再度特定ページの出力ドキュメント変換処理指示を行う(S1403)。その都度、アプリケーション制御部20によるPageタイマとの比較(S1404)、ドキュメント変換Pageモード指示部22による正常に特定ページ変換処理が完了した場合のファイル化(S1405)が行われる。そして、ドキュメント変換Pageモード指示部22は、入力データ全ページの変換処理が完了するまで繰り返す(S1406)。
【0034】
全ての特定ページの出力ドキュメント変換がPageタイマ時間内に完了すると、それは入力ドキュメントが正常に出力ドキュメントに変換されたことを意味する。
そして、アプリケーション制御部20は、S901で起動させた変換アプリケーションのプロセスの正常終了処理を行う(S1407)。実施形態2におけるプロセス正常終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20がPageモード起動数を1減らす。
・減らした結果Pageモード起動数が0になった場合はアプリケーション制御部20が該当アプリケーションのプロセスを正常終了させる。
入出力管理部19は、変換アプリケーション或いは変換アプリケーションと出力ドキュメント生成プリンタドライバとが生成した入力ドキュメントページ数分の特定ページ出力ドキュメントを図6Cにて説明したように関連付け、ドキュメントを生成する(S1408)。
【0035】
ある特定ページのドキュメント変換処理が、Pageモードタイマ時間以内にアプリケーションからの完了通知が発生しない場合(S1404)、以下の状態を意味する。それは、ある特定のページの入力ドキュメントが不適切だった等の要因で、アプリケーションが不測の事態に陥っている状態を意味する。この場合は、入力ドキュメントを出力ドキュメントに変換出来ないことを意味する。
そこで、アプリケーション制御部20は、変換アプリケーションのプロセスの強制終了処理を行う(S1409)。実施形態2におけるプロセス強制終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、図12Aに示したPageモードタイムアウト数のカウントを1追加する。
・Pageモードタイムアウト数がPageモード起動数と一致していない場合、アプリケーション制御部20は、Pageモードタイムアウト数がPageモード起動数に一致するまで、スリープ等を行い待機する。
・Pageモードタイムアウト数のカウントを1追加した結果、Pageモード起動数と一致した場合、アプリケーション制御部20は、該当アプリケーションのプロセスを強制終了する。
入出力管理部19は、ドキュメント変換フィルタに指示された変換が失敗した旨の処理エラー報告を行う(S1410)。
このようにして、複数のドキュメント変換処理部が並列的に同一の変換アプリケーションを活用する場合も、同様に高速にエラー判断出来るようになる。
【0036】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0037】
以上、上述した各実施形態によれば、アプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることができる。
つまり、ページ数が多い等によって変換処理に時間がかかる入力ドキュメントに関しては正常に処理でき、同時にアプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることができる。
【0038】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【技術分野】
【0001】
本発明は、ドキュメント変換装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
着脱可能、かつ、複数のモジュールを連結する処理方法として、モジュールをフィルタとして扱い、パイプラインでつないだフィルタパイプラインシステムが従来からある。フィルタ間のデータの受け渡し方法は、ストリームで順次データを送る方法や、電子ファイルとしてまとめて送る方法等、様々な方法がある。データの受け渡し方法として共通している点は、「あるフィルタの出力データが次のフィルタの入力データである」という点である。
フィルタパイプラインシステムの従来の例として Microsoft XPSフィルタパイプラインがある(非特許文献1)。Microsoft XPS フィルタパイプラインは、例えば、入力フォーマットであるXPS(XML Paper Specification)ファイルのレイアウトを変換し、レイアウト変換済みXPSファイルを出力するXPSレイアウトフィルタを含む。また、Microsoft XPS フィルタパイプラインは、例えば、レイアウトされたXPSファイルを印刷装置が認識可能な制御コマンドであるPDL(Page Description Language)ファイルに変換するXPS印刷フィルタを含む。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】"XPSDrv_FilterPipe.xps"、[online],2008年2月7日、インターネット<http://msdn.microsoft.com/ja−jp/windows/hardware/gg463364.aspx>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、フィルタパイプラインシステムは、アプリケーションに指示したフォーマット変換の応答が一定時間発生しなかった場合、変換処理自体が重いのか、アプリケーションが変換中、不測の事態に陥っているのか判断できない。
入力ドキュメントのページ数が多いといった要因で変換処理自体が重いのであれば、更に一定時間応答を待つのが適切である。しかし不測の事態に陥っている場合は更に待機すると、一定時間分フィルタパイプラインシステムが動作出来ないことを意味する。
不測の事態に陥っているのであればアプリケーションプロセスを落として、該当変換処理のエラー処理を行うことが適切である。しかし単に変換処理自体が重いだけであった場合、その入力ドキュメントは決して出力ドキュメントに変換出来ないことを意味する。
【0005】
本発明はこのような問題点に鑑みなされたもので、アプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることを目的とする。
【課題を解決するための手段】
【0006】
そこで、本発明は、ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段を有するドキュメント変換装置であって、前記ドキュメント変換処理手段は、アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御手段と、前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、を有し、前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させる。
【発明の効果】
【0007】
本発明によれば、アプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることができる。
【図面の簡単な説明】
【0008】
【図1A】ドキュメント変換フィルタがアプリケーションを活用してドキュメント変換を行う一例を示す図である。
【図1B】ドキュメント変換フィルがPDF生成ドライバを活用してドキュメント変換を行う一例を示す図である。
【図2】フォーマット変換装置が適用されるコンピュータの構成の一例を示す図である。
【図3】ドキュメント変換指示を受けて印刷が実行されるまでの概念図である。
【図4】フォーマット変換部のソフトウェア構成等の一例を示す図である。
【図5】ドキュメント変換フィルタ15の構成の一例を示す図である。
【図6A】ドキュメント変換Jobモード指示部の変換方法であるJobモードの一例を示す図である。
【図6B】ドキュメント変換Pageモード指示部の変換方法であるPageモードの一例を示す図である。
【図6C】Jobモードの出力結果の一例を示す図である。
【図6D】関連付けドキュメントの一例を示した図である。
【図7A】アプリケーション制御部が常にアプリケーションへの指示に対して応答時間を監視していることを示す図である。
【図7B】JobモードタイマとPageモードタイマとの一例を示す図である。
【図8】実施形態1のJobモード時の処理の一例を示すフローチャートである。
【図9】実施形態1のPageモード時の処理の一例を示すフローチャートである。
【図10】図8と図9との一連のフローチャートを簡略化して一つの情報処理の流れを表したフローチャートである。
【図11】複数のドキュメント変換フィルタから同一プロセスで動作する変換アプリケーションを制御する一例を示す図である。
【図12A】共有情報の一例を示す図である。
【図12B】JobモードタイマとPageモードタイマとの一例を示す図である。
【図12C】JobモードとPageモードとの変移の条件の一例を示す図である。
【図13】実施形態2のJobモード時の処理の一例を示すフローチャートである。
【図14】実施形態2のPageモード時の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面に基づいて説明する。
【0010】
フィルタパイプラインシステムでは入力フォーマットを固定している訳ではなく、例えばPDFだったり、Microsoft Office(登録商標)といったアプリケーションで活用されるOOXMLだったり、任意のフォーマットに対応することができる。PDFは、Portable Document Formatの略である。また、OOXMLは、Office Open XMLの略である。
フィルタパイプラインシステムで多種多様なフォーマットに対応する場合は、フィルタから該当フォーマットを解釈出来る市販アプリケーション等を活用して、次のフィルタが解釈出来るフォーマットに変換することが可能である。フィルタパイプラインシステムの入力がOOXMLで出力がPDLというユースケースにおいて、PDFをPDLに変換するPDF印刷フィルタが予め存在しているとする。その場合、OOXML−PDF変換フィルタとPDF印刷フィルタとを連結する。
図1Aに示すように、OOXML−PDF変換フィルタは、OOXMLを入力とし、Microsoft Officeアプリケーション(以下、単に所定アプリケーションという)のプロセスを立ち上げ、PDF変換への指示を行う。そして、OOXML−PDF変換フィルタは、出来あがったPDFをOOXML−PDF変換フィルタの出力とする。或いは、アプリケーションが直接PDF変換する機能を有さない場合でも、印刷機能さえ持っていれば同様の機能が実現出来る。図1Bに示すように、プリンタドライバの代わりに、PDFを出力するPDF生成ドライバを用意し、アプリケーションにはPDF生成ドライバへの印刷指示し、PDF生成ドライバの出力としてPDFを取得する。
このようにドキュメント変換フィルタを、アプリケーションを活用した形態で構築し、入力フォーマットに対応したフィルタを組み合わせることで、フィルタパイプラインシステムは多種多様なフォーマットに対応することが出来る。
【0011】
フィルタパイプラインシステムでは、入力フォーマットがOOXMLであり、OOXML−PDF変換フィルタを活用することでPDFに変換可能であることは判断出来る。しかしながら、上述したように、OOXML−PDF変換フィルタがプロセスを立ち上げる所定アプリケーションが正常にOOXML−PDF変換を行っているかを逐次監視できない。
【0012】
<実施形態1>
フィルタパイプラインシステムにおいて、特にクライアントPC内にフォーマット変換装置を適合させた場合の実施形態である。実施形態1では、フォーマットして様々な入力ドキュメントを取り扱っており、入力ドキュメントのフォーマットに従ってフィルタパイプラインシステムが構築するフィルタを切り替えている。
フィルタは、任意の入力ドキュメントのフォーマットに対し、該当フォーマットを解釈出来るアプリケーションを活用しPDFに変換する。また後段のフィルタが、そのPDFを印刷データであるPDLファイルへ変換する。
このようにフィルタパイプラインシステムではフィルタ制御部が複数のフィルタを組み合わせて、所望の処理を実現する。
ここで、アプリケーションを活用して変換するフォーマットはPDFに限定されるものではなく、後段のフィルタが解釈出来るフォーマットであれば同様に成立する。また、後段のフィルタが出力するものはPDLである必要もなく、印刷システムに限定されるわけではない。最終的に何らかのドキュメントを出力するユースケースであれば同様に成立する。またこのフォーマット変換装置は、Webサービスのサーバやクラウドサービスとしてサービスを提供する際にも適用可能である。
【0013】
図2は、フォーマット変換装置が適用されるコンピュータの構成の一例を示す図である。
中央処理装置1は、プログラム及び関連データが記憶されているFD、CD−ROM、ICメモリカード等の記憶媒体に記憶されているデータ等をシステムに接続された媒体読取装置6から読み込む。その後、中央処理装置1は、補助記憶装置3から主記憶装置2にロードされたシステムプログラム、アプリケーションプログラム等によって入力装置4から入力される情報を処理して、出力装置5や印刷装置7に出力する。なお、本実施形態では出力装置5は、ディスプレイ等の表示装置とし、本来出力装置に含まれる印刷装置7と区別する。また、入力装置4は、キーボード、ポインティングデバイス等で構成されているものとする。更に補助記憶装置3は、ハードディスク、光磁気ディスクで構成されるものであってもいいし、これらの組み合わせで構成されるものであってもよい。また、それぞれの装置がネットワークを介して接続されていてもよい。
【0014】
図3は、媒体読取装置6に格納されていたプログラムと関連するデータが中央処理装置1に読み込まれ、入力装置4からフォーマット変換指示がフォーマット変換部10に入力されて、印刷装置7へPDLデータを送り印刷するまでの概念図である。アプリケーション11及びドキュメント生成ドライバ12はフォーマット変換部10から活用され、OS(オペレーティングシステム)9の制御下で機能する。
なお、図3のフォーマット変換部10、アプリケーション11、ドキュメント生成ドライバ12はプログラムである。上述したように、これらのプログラムを中央処理装置1が実行することによって、ソフトウェアとしてのフォーマット変換部10、アプリケーション11、ドキュメント生成ドライバ12等として機能させる。
【0015】
図4は、フォーマット変換部10のソフトウェア構成等の一例を示す図である。OS(オペレーティングシステム)9は、フォーマット変換部10、所定アプリケーション11Aや、入力ドキュメントを解釈し、印刷出来る任意ドキュメント用アプリケーション11B、ドキュメント生成ドライバ12を制御している。
ユーザーインターフェース部13は、ユーザがフォーマット変換部10に対して変換元ドキュメントの指定や各種設定を入力したり、変換開始指示をしたりする。
フィルタ制御部14は、ユーザからの指示に従い、様々なフィルタの処理順序を構築したり入出力等を制御したりする。
ドキュメント変換フィルタ15は、フィルタの中でも特にドキュメント変換機能を有するドキュメント変換フィルタ群を示す。本実施形態では、ドキュメント変換フィルタ15そのものが存在している訳ではなく、入力ドキュメントを別のドキュメントに変換するフィルタを総称している。例えばドキュメント変換フィルタ15の一例であるOOXML−PDF変換フィルタ16は、OOXMLファイルを取得し、所定アプリケーション11Aのプロセスを立ち上げ、取得したOOXMLファイルを読み込ませ、PDF変換指示を出す。所定アプリケーション11Aが作成したPDFをOOXML−PDF変換フィルタ16の出力とする。
また、別のドキュメント変換フィルタ15の一例としては、任意ドキュメントPDF変換フィルタ17があげられる。ここで任意のドキュメントとは、XPS、ODF(OpenDocument Format)といった標準フォーマット、或いは特定のアプリケーションのみで活用するドキュメントフォーマットでも成立する。この任意ドキュメントを処理するアプリケーションは一つではなく、任意ドキュメント用アプリケーション11Bとは、複数の様々なアプリケーションの総称とする。本実施形態においてはOSが提供するファイル拡張子とアプリケーションとの関連付け機構を活用しているため、ドキュメント変換フィルタ15自体は、立ち上げるアプリケーションが何かを特に意識する必要はない。
【0016】
任意ドキュメントPDF変換フィルタ17は、入力ドキュメントファイルを取得し、任意ドキュメント用アプリケーション11Bのプロセスを立上げ、取得した入力ドキュメントを読み込ませる。そして、任意ドキュメントPDF変換フィルタ17は、PDFを生成するドキュメント生成ドライバ12を指定して印刷指示を出す。ドキュメント生成ドライバ12が作成したPDFを任意ドキュメントPDF変換フィルタ17の出力とする。
印刷フィルタ18は、ドキュメント変換フィルタ15が各種ドキュメントファイルから作成したPDFを基に、印刷用のPDLデータを生成する。ここで作成されたPDLデータは印刷装置7に投げられる等により紙への印刷が実現される。
本実施形態においては、常に印刷フィルタはPDFをPDLに変換するものとしているが、入力はPDFに限定されたものではく、XPS印刷フィルタとしてXPSをPDLに変換するものといった別フォーマットに対しても成立できる。その際、ドキュメント変換フィルタ15の出力は、印刷フィルタ18の入力フォーマットである必要がある。
【0017】
図5は、ドキュメント変換フィルタ15の構成の一例を示す図である。ドキュメント変換フィルタ15は、入出力管理部19、アプリケーション制御部20、ドキュメント変換Jobモード指示部21、ドキュメント変換Pageモード指示部22から構成される。
入出力管理部19は、ドキュメント変換フィルタ15に入ってきた入力ドキュメントをドキュメント変換Jobモード指示部21或いはドキュメント変換Pageモード指示部22に渡す。そして、入出力管理部19は、変換された出力ドキュメントを取得し、ドキュメント変換フィルタ15の出力として入出力を管理する。
アプリケーション制御部20は、入力ドキュメントを解釈できるアプリケーションを起動し、処理が終わるとアプリケーションのプロセスを落とす。また、アプリケーションからの応答を監視し、ある期間応答がない場合には、アプリケーションが不測の事態に陥っていると判断し、適切な対処を行う。この適切な対処とは、本実施形態に係わるものであり、後述する。
ドキュメント変換Jobモード指示部21は、アプリケーションを活用して入力ドキュメントをそのまま出力ドキュメントに変換を行なう(つまり、入力ドキュメント全体を一度に変換する)。ドキュメント変換Pageモード指示部22は、入力ドキュメントをページ数分の各ドキュメント1ページ分の出力ドキュメントに変換を行う。この変換に関しては、図6で後述する。
【0018】
図6Aは、ドキュメント変換Jobモード指示部21の変換方法であるJobモードの一例を示す図である。
Jobモードの場合、ドキュメント変換Jobモード指示部21は、アプリケーションに対して入力ドキュメント全体を出力ドキュメントへの変換指示を行う。つまり、1つの入力ドキュメントが1つの出力ドキュメントに変換される。
図6Bは、ドキュメント変換Pageモード指示部22の変換方法であるPageモードの一例を示す図である。Pageモードの場合、ドキュメント変換Pageモード指示部22は、アプリケーションに対して変換するページを指定し、出力ドキュメントの変換指示を行う。ページ指定は、1ページから順に入力ドキュメントのページ数分、指定ページを一ずつ更新しながら行われる。各1ページ分の出力ドキュメントは、図6Cに示すように入力ドキュメントのページ数分作成され、それらの出力ドキュメントを関連付けるドキュメントにて、どこのページに相当するかが指定される。
図6Dは、関連付けドキュメントの一例を示した図である。本実施形態においては、XML形式でファイルをPageファイルとして指定している。
【0019】
図7Aは、アプリケーション制御部20が常にアプリケーションへの指示に対して応答時間を監視していることを示す図である。図7Bに示すように、タイマは2種類予め用意されている。アプリケーション制御部20は、JobモードのときはJobモードタイマでアプリケーションの応答を監視し、Jobモードタイマ以上応答がなければ、Jobモードをエラーとする。すると変換はPageモードに移行する。
アプリケーション制御部20Pageモードのとき、Pageモードタイマでアプリケーションの応答を監視し、Pageモードタイマ以上応答がなければ、Pageモードをエラーとする。その場合は、本変換処理事態がエラーとなる。
【0020】
次に、図8のフローチャートを用いて、実施形態1に係わるドキュメント変換フィルタ15の処理の内、主にJobモードに関して説明する。ドキュメント変換フィルタ15が入力ドキュメント及び出力変換指示を受けたところから本フローは始まる。
最初は図6で説明したJobモードからスタートする。
ドキュメント変換フィルタ15の入出力管理部19が入力ドキュメント及び出力変換指示を取得する(S801)。すると、アプリケーション制御部20が入力ドキュメントを出力ドキュメントに変換できるアプリケーションを起動する(S802)。このとき変換するアプリケーションとは、市販されているようなアプリケーションでもよく、出力変換指示の出力ドキュメントに変換できる機能、或いは出力ドキュメントを生成するプリンタドライバを活用した印刷処理を実施出来るものである必要がある。
更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S803)。
次に、現時点ではJobモードが指定されているため、ドキュメント変換Jobモード指示部21が、アプリケーションに対して直接出力ドキュメント変換する、或いは出力ドキュメント生成プリンタドライバに対する印刷指示をする(S804)。このとき、ドキュメント変換Jobモード指示部21は、入力ドキュメント全体を1つの出力ドキュメントに変換するように指示する。
【0021】
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がJobモードであるため、図7Bで登録されたJobモードタイマ時間内にアプリケーションからの応答があるかを監視する。
Jobモードタイマ時間内にアプリケーションからの完了通知が発生すると(S805)、それはアプリケーションによる出力ドキュメント変換処理が正常に完了したことになる。その場合、アプリケーション制御部20は、S802で起動させた変換アプリケーションのプロセスを完了させる(S806)。入出力管理部19は、変換アプリケーション或いは変換アプリケーションとドキュメント生成ドライバ12とが生成した出力ドキュメントをドキュメント変換フィルタ15の出力とする(S807)。そして、入出力管理部19は、フィルタパイプラインシステムを構成する次のフィルタに出力ドキュメントを渡すことで完了する。
Jobモードタイマ時間内にアプリケーションからの完了通知が発生しない場合(S805)とは、以下の何れかである。即ち、入力ドキュメントが大きすぎて、Jobモードタイマ指定の短い時間では処理しきれない、或いは入力ドキュメントが不適切だった等の要因でアプリケーションが不測の事態に陥っている状態の何れかである。前者の状況であった場合は、もう少し待つのが適切であり、後者の状況であった場合は、例え待っても変換処理を完了させられない可能性が高い。しかしながら、市販アプリケーションといった内部処理が不明なコンポーネントを活用して変換処理を行う場合、どちらの状態であるかはドキュメント変換フィルタ15では判断できない。そこで、アプリケーション制御部20は、変換アプリケーションのプロセスを強制終了させ(S808)、JobモードからPageモードに移行させる(S809)。
【0022】
次に図9のフローチャートを用いて、図8のフローチャートでJobモードからPageモードに移行した後のPageモードに関して説明する。
ここでは図6で説明したPageモードが指定されている。また、入力ドキュメント及び出力変換指示は、図8のS801で入出力管理部19が取得した物をそのまま活用する。
まず、アプリケーション制御部20が入力ドキュメントを変換できるアプリケーションを起動する(S901)。この変換するアプリケーションとは、図8のS802と同じ物である。更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S902)。
次に、現時点ではPageモードが指定されているため、ドキュメント変換Pageモード指示部22が、アプリケーションに対して直接出力ドキュメント変換する、或いは出力ドキュメント生成プリンタドライバに対する印刷指示をする(S903)。このとき、ドキュメント変換Pageモード指示部22は、入力ドキュメントの1ページを1つの出力ドキュメントに変換するように指示する(S903)。
【0023】
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がPageモードであるため、図7Bで登録されたPageモードタイマ時間以内にアプリケーションからの応答があるかを監視する。
Pageモードタイマ時間以内にアプリケーションからの完了通知が発生すると(S904)、それはアプリケーションによる特定ページの出力ドキュメント変換処理が正常に完了したことになる。ドキュメント変換Pageモード指示部22は、特定ページの出力ドキュメントをファイル化し(S905)、入力ドキュメントの全てのページ処理を行ったかを判断する(S906)。入力ドキュメント全てのページの出力ドキュメント変換処理が完了していなければ、ドキュメント変換Pageモード指示部22は、変換ページを次のページ指定に変更し、再度特定ページの出力ドキュメント変換処理指示を行う(S903)。その都度、アプリケーション制御部20によるPageモードタイマとの比較(S904)、正常に特定ページ変換処理が完了した場合のファイル化(S905)を行い、入力データ全ページの変換処理が完了するまで繰り返す(S906)。
全ての特定ページの出力ドキュメント変換がPageモードタイマ時間内に完了すると、それは入力ドキュメントが正常に出力ドキュメントに変換されたことを意味する。
そして、アプリケーション制御部20は、S901で起動させた変換アプリケーションのプロセスを完了させる(S907)。入出力管理部19は、変換アプリケーション或いは変換アプリケーションと出力ドキュメント生成プリンタドライバとが生成した入力ドキュメントページ数分の特定ページ出力ドキュメントを図6C、図6Dで示したように関連付け、ドキュメントを生成する(S908)。
【0024】
ある特定ページのドキュメント変換処理が、Pageモードタイマ時間以内にアプリケーションからの完了通知が発生しない場合(S904)、以下の様な状態を意味する。それは、ある特定のページの入力ドキュメントが不適切だった等の要因で、アプリケーションが不測の事態に陥っている状態を意味する。この場合は、入力ドキュメントを出力ドキュメントに変換出来ないことを意味する。
そこで、アプリケーション制御部20は、変換アプリケーションのプロセスを強制終了させる(S909)。そして、入出力管理部19は、ドキュメント変換フィルタ15に指示された変換が失敗した旨の処理エラー報告を行う(S910)。
なお、このとき、特定のページの変換処理は失敗したが、それ以前のページの変換処理は成功している。そのため、処理エラー報告では変換に成功したページと失敗したページとを報告することで、ユーザに対して特定ページの修正を促す、特定ページの処理をSkipする指示を促す等が可能である。またそのとき、既に正常に処理を完了しているページ群に対しては、それを活用して効率よく再変換を実現することも可能である。
【0025】
図10は、図8と図9との一連のフローチャートを簡略化して一つの情報処理の流れを表したフローチャートである。
ドキュメント変換フィルタ15が入力ドキュメント及びそれを出力ドキュメントに変化する指示を受けると(S1001)、ドキュメント変換フィルタ15は、Jobモードで変換処理を行なう(S1002)。Jobモード処理中に予め設定したタイマ時間以内で全ての処理が完了すればドキュメント変換処理が正常に完了したことを意味し、そのまま正常終了する(S1003)。
Jobモード処理中に予め設定したタイマ時間以内で完了しない処理があった場合(S1003)、ドキュメント変換フィルタ15は、Pageモードで変換処理を行う(S1004)。Pageモード処理中に予め設定したタイマ時間以内で全ての処理が完了すればドキュメント変換処理が正常に完了したことを意味し、ドキュメント変換フィルタ15は、そのまま正常終了する(S1005)。
Pageモード処理中に予め設定したタイマ時間以内で完了しない処理があった場合(S1003)、ドキュメント変換フィルタ15は、S1001にて指示を受けたドキュメント変換処理に失敗したことを意味する。
【0026】
<実施形態2>
実施形態1においては、一つのドキュメント変換フィルタ15が一つの変換アプリケーションのプロセス起動、終了を制御している。同じOS9上で複数のフィルタパイプラインシステムが並列的に動作する場合、複数のドキュメント変換フィルタが同時に一つの変換アプリケーションを活用する場合がありうる。
図11は、複数のドキュメント変換フィルタから同一プロセスで動作する変換アプリケーションを制御する一例を示す図である。
ここでは3つのドキュメント変換フィルタがそれぞれ別の入力ドキュメントを出力ドキュメントに変換するため、それぞれがアプリケーションの起動、終了、変換指示を行う。ドキュメント変換フィルタがプロセス起動を指定しても、実際にアプリケーションが複数立ち上がるわけではなく、2回目以降の起動指示に対してアプリケーションはスレッドを分けて並列処理を行う物がある。一方、あるドキュメント変換フィルタがプロセスを強制終了させると、他のドキュメント変換フィルタがまだ変換指示を出している状況であっても、アプリケーションプロセスは強制終了してしまう。他のドキュメント変換フィルタからは突然変換処理指示を出しているはずのアプリケーションが存在しなくなったことになる。
【0027】
ドキュメント変換フィルタのアプリケーション制御部20は、複数のアプリケーション制御部20間で図12AのようにJobモード及びPageモードの起動数とタイムアウト数とを記録する共有情報を持つ。この共有情報は、ある事前に定められた場所にファイルとして格納してもよいし、OS9が提供するレジストリ等といった場所や複数のアプリケーション制御部20の共有の記憶領域である共有メモリに格納してもよい。この共有情報は、アプリケーションプロセス毎に持つ。また実施形態2においては共有情報が存在しない場合、最初にプロセスを立ち上げるドキュメント変換フィルタのアプリケーション制御部20が共有情報を作成する。
ドキュメント変換フィルタが変換アプリケーションのプロセスを立ち上げる際、図6Aで示したJobモードの場合は、Jobモード起動数のカウントを1追加し、正常に変換処理が完了すると、Jobモード起動数のカウントを1減らす。ここでカウントを1減らした結果、Jobモード起動数が0になった場合、他のドキュメント変換フィルタが変換アプリケーションのプロセスを立ち上げていないことを意味する。そのため、Jobモードの起動数が0になった時点でアプリケーション制御部20は、アプリケーションプロセスを落とす。
図6BのPageモードの場合も同様でアプリケーション制御部20は、起動する際にPageモード起動数のカウントを1追加し、正常終了した際にはカウントを1減らす。そしてPageモード起動数が0になった時点でアプリケーション制御部20は、アプリケーションプロセスを落とす。
アプリケーションからの応答が図12Bにて指定されたJobモードタイマ時間以上或いはPageモードタイマ時間以上無かった場合、アプリケーション制御部20は、Jobモードタイムアウト数、Pageモードタイムアウト数のカウントを1追加する。
起動数よりタイムアウト数の方が小さければ、他のドキュメント変換フィルタが変換アプリケーションに変換指示を出していることになる。そのため、応答が無く、タイムアウトが発生していても、アプリケーション制御部20は、他のドキュメント変換フィルタがタイムアウトになるまで待機する。
【0028】
図12Cにておいて、JobモードとPageモードとの変移を示す。
Jobモードで動作しているとき、Jobモード起動数とJobモードタイムアウト数とが一致すると、最後にJobモードタイムアウト数を更新したアプリケーション制御部20は、アプリケーションを強制終了させ、Pageモードに移行する。同様にそれ以外のドキュメント変換フィルタのアプリケーション制御部20もPageモードに移行する。
Pageモードでは各アプリケーション制御部20がそれぞれ変換アプリケーションを起動する度にPageモード起動数を1追加し、正常終了する度に1減らす。ここでPageモード起動数が0になった場合は、アプリケーション制御部20がアプリケーションプロセスを落とす。それ以降の処理は初期状態に戻っているため、Jobモードで動作する。
なお、図12AのPageモードタイムアウト数がPageモード起動数に一致した場合は、全てのアプリケーション制御部20が、Pageモードで不測の事態に陥ったことを意味する。よって最後に一致させたアプリケーション制御部20が変換アプリケーションを強制終了させると共に、全てのドキュメント変換フィルタが、該当処理をエラーとする。
【0029】
図13のフローチャートを用いて、実施形態2に係わるドキュメント変換フィルタの処理の内、主にJobモードに関して説明する。ドキュメント変換フィルタが入力ドキュメント及び出力変換指示を受けたところから本フローは始まる。
最初は図6で説明したJobモードからスタートする。
ドキュメント変換フィルタの入出力管理部19が入力ドキュメント及び出力変換指示を取得する(S1301)。すると、アプリケーション制御部20が入力ドキュメントを変換できるアプリケーションの起動処理を行う(S1302)。実施形態2における起動処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、アプリケーションのプロセスIDを取り出す。
・アプリケーション制御部20は、それを基に図12Aで示した共有情報にアクセスする。アプリケーション制御部20は、共有情報が存在しなければ新規に作成する。
・Jobモード起動数が0だった場合は、アプリケーション制御部20は、該当アプリケーションのプロセスを立ち上げる。
・アプリケーション制御部20は、Jobモード起動数を1つ追加する。
更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S1303)。
【0030】
次に、現時点ではJobモードが指定されているため、ドキュメント変換Jobモード指示部21が、アプリケーションに対して直接出力ドキュメント変換する(S1304)。このとき、入力ドキュメント全体を1つの出力ドキュメントに変換するように指示する。
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がJobモードであるため、図12Bで登録されたJobモードタイマ時間内にアプリケーションからの応答があるかを監視する。
Jobモードタイマ時間内にアプリケーションからの完了通知が発生すると(S1305)、それはアプリケーションによる出力ドキュメント変換処理が正常に完了したことになる。その場合、アプリケーション制御部20は、S1302で起動させた変換アプリケーションのプロセス正常終了処理を行う(S1306)。実施形態2におけるプロセス正常終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20がJobモード起動数を1減らす。
・減らした結果Jobモード起動数が0になった場合はアプリケーション制御部20が該当アプリケーションのプロセスを正常終了させる。
入出力管理部19は、変換アプリケーション或いは変換アプリケーションと出力ドキュメント生成プリンタドライバとが生成した出力ドキュメントをドキュメント変換フィルタの出力とする(S1307)。そして、入出力管理部19は、フィルタパイプラインシステムを構成する次のフィルタに出力ドキュメントを渡すことで処理を完了する。
【0031】
Jobモードタイマ時間内にアプリケーションからの完了通知が発生しない場合(S1305)、それは以下の何れかである。つまり、入力ドキュメントが大きすぎて、Jobモードタイマ指定の短い時間では処理しきれない、或いは入力ドキュメントが不適切だった等の要因で、アプリケーションが不測の事態に陥っている状態の何れかである。そこで、アプリケーション制御部20は、変換アプリケーションのプロセスの強制終了処理を行う(S1308)。実施形態2におけるプロセス強制終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、図12Aに示したJobモードタイムアウト数のカウントを1追加する。
・Jobモードタイムアウト数がJobモード起動数と一致していない場合、・アプリケーション制御部20は、Jobモードタイムアウト数がJobモード起動数に一致するまで、スリープ等を行い待機する。
・Jobモードタイムアウト数のカウントを1追加した結果、Jobモード起動数と一致した場合、・アプリケーション制御部20は、該当アプリケーションのプロセスを強制終了する。
そしてアプリケーション制御部20は、JobモードからPageモードに移行させる(S1309)。
【0032】
次に図14のフローチャートを用いて、図13のフローチャートでJobモードからPageモードに移行した後のPageモードに関して説明する。
ここでは図6で説明したPageモードが指定されている。また、入力ドキュメント及び出力変換指示は、図13のS1301で入出力管理部19が取得した物をそのまま活用する。
まず、アプリケーション制御部20が入力ドキュメントを変換できるアプリケーションの起動処理を行う(S1401)。実施形態2における起動処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、アプリケーションのプロセスIDを取り出す。
・アプリケーション制御部20が、それを基に図12Aで示した共有情報にアクセスする。Pageモード起動数が0だった場合は、該当アプリケーションのプロセスを立ち上げる。
・アプリケーション制御部20が、Pageモード起動数を1つ追加する。
この変換するアプリケーションとは、図13のS1302と同じ物である。更に、アプリケーション制御部20は、起動させたアプリケーションに入力ドキュメントを読み込ませる(S1402)。
【0033】
次に、現時点ではPageモードが指定されているため、ドキュメント変換Pageモード指示部22が、アプリケーションに対して直接出力ドキュメント変換する、或いは出力ドキュメント生成プリンタドライバに対する印刷指示をする。このとき、ドキュメント変換Pageモード指示部22は、入力ドキュメントの1ページを1つの出力ドキュメントに変換するように指示する(S1403)。
アプリケーションからの処理完了の応答計測はアプリケーション制御部20が行う。アプリケーション制御部20は、現時点がPageモードであるため、図12Bで登録されたPageモードタイマ時間以内にアプリケーションからの応答があるかを監視する。
Pageモードタイマ時間以内にアプリケーションからの完了通知が発生すると(S1404)、それはアプリケーションによる特定ページの出力ドキュメント変換処理が正常に完了したことになる。したがって、ドキュメント変換Pageモード指示部22は、特定ページの出力ドキュメントをファイル化し(S1405)、入力ドキュメントの全てのページ処理を行ったかを判断する(S1406)。入力ドキュメント全てのページの出力ドキュメント変換処理が完了していなければ、ドキュメント変換Pageモード指示部22は、変換ページを増加させて、再度特定ページの出力ドキュメント変換処理指示を行う(S1403)。その都度、アプリケーション制御部20によるPageタイマとの比較(S1404)、ドキュメント変換Pageモード指示部22による正常に特定ページ変換処理が完了した場合のファイル化(S1405)が行われる。そして、ドキュメント変換Pageモード指示部22は、入力データ全ページの変換処理が完了するまで繰り返す(S1406)。
【0034】
全ての特定ページの出力ドキュメント変換がPageタイマ時間内に完了すると、それは入力ドキュメントが正常に出力ドキュメントに変換されたことを意味する。
そして、アプリケーション制御部20は、S901で起動させた変換アプリケーションのプロセスの正常終了処理を行う(S1407)。実施形態2におけるプロセス正常終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20がPageモード起動数を1減らす。
・減らした結果Pageモード起動数が0になった場合はアプリケーション制御部20が該当アプリケーションのプロセスを正常終了させる。
入出力管理部19は、変換アプリケーション或いは変換アプリケーションと出力ドキュメント生成プリンタドライバとが生成した入力ドキュメントページ数分の特定ページ出力ドキュメントを図6Cにて説明したように関連付け、ドキュメントを生成する(S1408)。
【0035】
ある特定ページのドキュメント変換処理が、Pageモードタイマ時間以内にアプリケーションからの完了通知が発生しない場合(S1404)、以下の状態を意味する。それは、ある特定のページの入力ドキュメントが不適切だった等の要因で、アプリケーションが不測の事態に陥っている状態を意味する。この場合は、入力ドキュメントを出力ドキュメントに変換出来ないことを意味する。
そこで、アプリケーション制御部20は、変換アプリケーションのプロセスの強制終了処理を行う(S1409)。実施形態2におけるプロセス強制終了処理とは、図12で説明した以下の一連の処理の総称である。
・アプリケーション制御部20が、図12Aに示したPageモードタイムアウト数のカウントを1追加する。
・Pageモードタイムアウト数がPageモード起動数と一致していない場合、アプリケーション制御部20は、Pageモードタイムアウト数がPageモード起動数に一致するまで、スリープ等を行い待機する。
・Pageモードタイムアウト数のカウントを1追加した結果、Pageモード起動数と一致した場合、アプリケーション制御部20は、該当アプリケーションのプロセスを強制終了する。
入出力管理部19は、ドキュメント変換フィルタに指示された変換が失敗した旨の処理エラー報告を行う(S1410)。
このようにして、複数のドキュメント変換処理部が並列的に同一の変換アプリケーションを活用する場合も、同様に高速にエラー判断出来るようになる。
【0036】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0037】
以上、上述した各実施形態によれば、アプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることができる。
つまり、ページ数が多い等によって変換処理に時間がかかる入力ドキュメントに関しては正常に処理でき、同時にアプリケーションが不測の事態に陥って応答が無くなった場合でも、短い時間で処理の失敗及びエラー処理を行うことが出来るようにすることができる。
【0038】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【特許請求の範囲】
【請求項1】
ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段を有するドキュメント変換装置であって、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させるドキュメント変換装置。
【請求項2】
前記ドキュメント変換処理手段は、前記アプリケーション制御手段で前記アプリケーションのプロセスを強制終了された場合、ドキュメントの変換を失敗したことを報告するエラー報告手段を更に有する請求項1記載のドキュメント変換装置。
【請求項3】
前記エラー報告手段は、前記ドキュメントの変換に失敗したことと共に、変換に成功したページと変換に失敗したページの情報とを出力する請求項2記載のドキュメント変換装置。
【請求項4】
前記ドキュメント変換処理手段は、前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったと判断された場合、前記アプリケーションで変換されたドキュメントを出力する出力手段を更に有する請求項1乃至3何れか1項記載のドキュメント変換装置。
【請求項5】
前記Pageモード指示手段は、前記アプリケーション制御手段で前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったと判断された場合、変換されたドキュメントをファイル化し、
前記出力手段は、全てのページの変換が終了したと判断された場合、前記ファイル化されたドキュメントを出力する請求項4記載のドキュメント変換装置。
【請求項6】
ドキュメントの変換を行うアプリケーションを制御する複数のドキュメント変換処理手段を有するドキュメント変換装置であって、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断した場合、前記複数のドキュメント変換処理手段の共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントを1追加するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断され、かつ、前記共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントが、Jobモード起動数のカウントと一致した場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記共有の記憶領域に記憶されているタイムアウトしたPageモード起動数のカウントを1追加し、追加した結果、タイムアウトしたPageモード起動数のカウントが、Pageモード起動数のカウントと一致した場合、前記アプリケーションのプロセスを強制終了させるドキュメント変換装置。
【請求項7】
前記アプリケーション制御手段は、前記Jobモード指示手段でJobモードでの変換が指示された場合、Jobモード起動数のカウントを1追加し、前記Pageモード指示手段でPageモードでの変換での変換が指示された場合、Pageモード起動数のカウントを1追加する請求項6記載のドキュメント変換装置。
【請求項8】
ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段を有するドキュメント変換装置における情報処理方法であって、
前記ドキュメント変換処理手段が、アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示ステップと、
前記ドキュメント変換処理手段が、アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御ステップと、
前記ドキュメント変換処理手段が、前記アプリケーション制御ステップで前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示ステップと、
を含み、
前記アプリケーション制御ステップでは、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させる情報処理方法。
【請求項9】
ドキュメントの変換を行うアプリケーションを制御する複数のドキュメント変換処理手段を有するドキュメント変換装置における情報処理方法であって、
前記ドキュメント変換処理手段が、アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示ステップと、
前記ドキュメント変換処理手段が、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断した場合、前記複数のドキュメント変換処理手段の共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントを1追加するアプリケーション制御ステップと、
前記ドキュメント変換処理手段が、前記アプリケーション制御ステップで前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断され、かつ、前記共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントが、Jobモード起動数のカウントと一致した場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示ステップと、
を含み、
前記アプリケーション制御ステップでは、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記共有の記憶領域に記憶されているタイムアウトしたPageモード起動数のカウントを1追加し、追加した結果、タイムアウトしたPageモード起動数のカウントが、Pageモード起動数のカウントと一致した場合、前記アプリケーションのプロセスを強制終了させる情報処理方法。
【請求項10】
コンピュータを、
ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段として機能させ、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させるプログラム。
【請求項11】
コンピュータを、
ドキュメントの変換を行うアプリケーションを制御する複数のドキュメント変換処理手段として機能させ、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断した場合、前記複数のドキュメント変換処理手段の共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントを1追加するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断され、かつ、前記共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントが、Jobモード起動数のカウントと一致した場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記共有の記憶領域に記憶されているタイムアウトしたPageモード起動数のカウントを1追加し、追加した結果、タイムアウトしたPageモード起動数のカウントが、Pageモード起動数のカウントと一致した場合、前記アプリケーションのプロセスを強制終了させるプログラム。
【請求項1】
ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段を有するドキュメント変換装置であって、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させるドキュメント変換装置。
【請求項2】
前記ドキュメント変換処理手段は、前記アプリケーション制御手段で前記アプリケーションのプロセスを強制終了された場合、ドキュメントの変換を失敗したことを報告するエラー報告手段を更に有する請求項1記載のドキュメント変換装置。
【請求項3】
前記エラー報告手段は、前記ドキュメントの変換に失敗したことと共に、変換に成功したページと変換に失敗したページの情報とを出力する請求項2記載のドキュメント変換装置。
【請求項4】
前記ドキュメント変換処理手段は、前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったと判断された場合、前記アプリケーションで変換されたドキュメントを出力する出力手段を更に有する請求項1乃至3何れか1項記載のドキュメント変換装置。
【請求項5】
前記Pageモード指示手段は、前記アプリケーション制御手段で前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったと判断された場合、変換されたドキュメントをファイル化し、
前記出力手段は、全てのページの変換が終了したと判断された場合、前記ファイル化されたドキュメントを出力する請求項4記載のドキュメント変換装置。
【請求項6】
ドキュメントの変換を行うアプリケーションを制御する複数のドキュメント変換処理手段を有するドキュメント変換装置であって、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断した場合、前記複数のドキュメント変換処理手段の共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントを1追加するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断され、かつ、前記共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントが、Jobモード起動数のカウントと一致した場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記共有の記憶領域に記憶されているタイムアウトしたPageモード起動数のカウントを1追加し、追加した結果、タイムアウトしたPageモード起動数のカウントが、Pageモード起動数のカウントと一致した場合、前記アプリケーションのプロセスを強制終了させるドキュメント変換装置。
【請求項7】
前記アプリケーション制御手段は、前記Jobモード指示手段でJobモードでの変換が指示された場合、Jobモード起動数のカウントを1追加し、前記Pageモード指示手段でPageモードでの変換での変換が指示された場合、Pageモード起動数のカウントを1追加する請求項6記載のドキュメント変換装置。
【請求項8】
ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段を有するドキュメント変換装置における情報処理方法であって、
前記ドキュメント変換処理手段が、アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示ステップと、
前記ドキュメント変換処理手段が、アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御ステップと、
前記ドキュメント変換処理手段が、前記アプリケーション制御ステップで前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示ステップと、
を含み、
前記アプリケーション制御ステップでは、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させる情報処理方法。
【請求項9】
ドキュメントの変換を行うアプリケーションを制御する複数のドキュメント変換処理手段を有するドキュメント変換装置における情報処理方法であって、
前記ドキュメント変換処理手段が、アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示ステップと、
前記ドキュメント変換処理手段が、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断した場合、前記複数のドキュメント変換処理手段の共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントを1追加するアプリケーション制御ステップと、
前記ドキュメント変換処理手段が、前記アプリケーション制御ステップで前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断され、かつ、前記共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントが、Jobモード起動数のカウントと一致した場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示ステップと、
を含み、
前記アプリケーション制御ステップでは、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記共有の記憶領域に記憶されているタイムアウトしたPageモード起動数のカウントを1追加し、追加した結果、タイムアウトしたPageモード起動数のカウントが、Pageモード起動数のカウントと一致した場合、前記アプリケーションのプロセスを強制終了させる情報処理方法。
【請求項10】
コンピュータを、
ドキュメントの変換を行うアプリケーションを制御するドキュメント変換処理手段として機能させ、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
アプリケーションのプロセスを起動し、前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断された場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記アプリケーションのプロセスを強制終了させるプログラム。
【請求項11】
コンピュータを、
ドキュメントの変換を行うアプリケーションを制御する複数のドキュメント変換処理手段として機能させ、
前記ドキュメント変換処理手段は、
アプリケーションに対して、ドキュメント全体を一度に変換するJobモードでの変換を指示するJobモード指示手段と、
前記Jobモードに対応するJobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断した場合、前記複数のドキュメント変換処理手段の共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントを1追加するアプリケーション制御手段と、
前記アプリケーション制御手段で前記Jobモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかったと判断され、かつ、前記共有の記憶領域に記憶されているタイムアウトしたJobモード起動数のカウントが、Jobモード起動数のカウントと一致した場合、前記アプリケーションに対して、ドキュメント全体を1ページずつページ数分のドキュメントに変換するPageモードでの変換を指示するPageモード指示手段と、
を有し、
前記アプリケーション制御手段は、更に、前記Pageモードに対応するPageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答があったか否かを判断し、前記Pageモードタイマ時間内に、前記アプリケーションから変換が完了したことを示す応答がなかった場合、前記共有の記憶領域に記憶されているタイムアウトしたPageモード起動数のカウントを1追加し、追加した結果、タイムアウトしたPageモード起動数のカウントが、Pageモード起動数のカウントと一致した場合、前記アプリケーションのプロセスを強制終了させるプログラム。
【図1A】
【図1B】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12A】
【図12B】
【図12C】
【図13】
【図14】
【図1B】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12A】
【図12B】
【図12C】
【図13】
【図14】
【公開番号】特開2012−242895(P2012−242895A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−109515(P2011−109515)
【出願日】平成23年5月16日(2011.5.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願日】平成23年5月16日(2011.5.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]