JP2015130075A - Information processing apparatus, information processing method, and program - Google Patents
Information processing apparatus, information processing method, and program Download PDFInfo
- Publication number
- JP2015130075A JP2015130075A JP2014001264A JP2014001264A JP2015130075A JP 2015130075 A JP2015130075 A JP 2015130075A JP 2014001264 A JP2014001264 A JP 2014001264A JP 2014001264 A JP2014001264 A JP 2014001264A JP 2015130075 A JP2015130075 A JP 2015130075A
- Authority
- JP
- Japan
- Prior art keywords
- filter
- filters
- mode
- processing
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、データを変換する情報処理装置、情報処理方法、およびプログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and a program for converting data.
特許文献1は、「モノクロプリンタ」、「解像度300dpi以下」といった複数のフィルタを用いて画像データを変換する技術を開示する。
特許文献1に示すフィルタやフィルタに投入される画像データによっては、フィルタで正常に処理が完了しない可能性がある。正常に処理が完了しなかった場合に管理者や開発者は原因を特定する必要がある。よって、何らかの問題(データ変換の失敗等)が発生する場合に備えて、ログデータ(以下、単にログと呼ぶ)を残す方法について検討する。ログを残す場合にフィルタを実行するシステムが処理するすべてのジョブに対してログを出力する方法では、大量のジョブを処理すると処理速度を低下させてしまうという問題がある。即ち、ログ出力量と処理速度とはトレードオフの関係にある。
Depending on the filter shown in
さらにシステムの高速化を実現するために、システムの複数のフィルタを一つのプロセス(シングルプロセス)で動作させる方法と、マルチプロセスで動作させる方法について検討する。シングルプロセスによる処理は、マルチプロセスによる処理よりも高いパフォーマンスを得ることが期待できる。その理由は、マルチプロセスの場合、プロセス間でデータをやり取りする場合にプロセス間通信が必要となるのに対し、シングルプロセスの場合には、コンポーネント間の関数呼び出しやメモリのやり取りで済むため、処理が高速となるからである。
しかし、シングルプロセスでは、いずれかのコンポーネントがクラッシュや無限ループに陥った場合に、システム全体のクラッシュまたは無限ループが問題となる。その場合、前述のようにログを残す構成にしたとしても、正常にログが出力されない可能性がある。これにより、正常にログが取得できずシステムの障害解析が困難になる可能性がある。
Furthermore, in order to realize a high-speed system, a method of operating a plurality of system filters in one process (single process) and a method of operating in multiple processes will be studied. Processing by a single process can be expected to obtain higher performance than processing by a multi-process. The reason for this is that multi-process communication requires inter-process communication when data is exchanged between processes, whereas single process requires only function calls and memory exchanges between components. This is because of high speed.
However, in a single process, if any component crashes or goes into an infinite loop, the entire system crashes or goes into an infinite loop. In that case, even if it is configured to leave a log as described above, the log may not be output normally. As a result, the log cannot be acquired normally, and the failure analysis of the system may be difficult.
このようにシングルプロセスによる処理は高速であるがクラッシュ時にログが取れない可能性がある。他方、マルチプロセスによる処理はシングルプロセスに比較して低速であるが、可用性が高いため正常にログを取得できる可能性が高い。 In this way, processing by a single process is fast, but there is a possibility that a log cannot be taken at the time of a crash. On the other hand, multi-process processing is slower than single-process, but there is a high possibility that logs can be acquired normally because of high availability.
よって本発明は、複数のフィルタを用いて処理を実行する情報処理装置において、ログを安定的に取得しつつ、処理を高速に行うことを目的とする。 Therefore, an object of the present invention is to perform processing at high speed while stably acquiring logs in an information processing apparatus that performs processing using a plurality of filters.
上記課題を解決するために、本発明に係る装置は、機能に応じた複数のフィルタを実行することにより処理を行う情報処理装置であって、前記複数のフィルタを同一のプロセスで、かつログデータを出力しない第1モードで実行する実行手段と、前記第1モードにて前記複数のフィルタを用いた処理が正常に終了しなかった場合、前記複数のフィルタを複数のプロセスで、かつログデータを出力する第2モードで再実行する再実行手段と、を有する。 In order to solve the above-described problem, an apparatus according to the present invention is an information processing apparatus that performs processing by executing a plurality of filters according to a function, and the plurality of filters are processed in the same process and log data. If the processing using the plurality of filters in the first mode does not end normally in the first mode, the plurality of filters are processed in a plurality of processes and log data is output. Re-execution means for re-execution in the output second mode.
本発明によれば、複数のフィルタを用いて処理を実行する情報処理装置において、ログを安定的に取得しつつ、処理を高速に行うことができる。 ADVANTAGE OF THE INVENTION According to this invention, in the information processing apparatus which performs a process using a some filter, a process can be performed at high speed, acquiring a log stably.
以下、本発明の実施形態について、添付図面を参照して説明する。
図1は本実施形態に係るクラウドプリントサービスのシステム構成図である。
依頼者101は印刷データの変換を依頼する際、PC(パーソナルコンピュータ)102、タブレット103や携帯端末104等の機器を利用する。これらの機器は、依頼者101からの操作を受け付け、ネットワーク105上に存在する印刷データ変換サービスに対して印刷データの変換を依頼する。印刷データ変換サービスはサーバ106上で既知のURL(Uniform Resource Locator)を公開している、いわゆるWebサービスとして動作しているプログラムである。サーバ106上では前記URLに対する依頼を印刷データ変換サービスに転送するWebサーバが動作している。この依頼が多数である場合、単一のサーバ106が処理せず、複数のサーバ106を備えるサーバシステムが処理する構成となる。従って、複数のサーバ106の前段にロードバランサ107が設置され、各サーバ106に転送される依頼が均一に配分されるように構成される。
Embodiments of the present invention will be described below with reference to the accompanying drawings.
FIG. 1 is a system configuration diagram of a cloud print service according to the present embodiment.
When requesting conversion of print data, the
印刷データ変換サービスが提供するサービスは、依頼者101から受け付けたデータをプリンタ108で印刷できる形式に変換することである。依頼者101から受け付けるデータにはドキュメント、画像ファイル等、各種のアプリケーションプログラムで作成されたフォーマットが存在する。一方、プリンタ108が印刷データとして受け付けるデータは前述のフォーマットとは異なり、PDL(Page Description Language)で記述されたデータや、印刷部数等の印刷を制御するためのデータである。
The service provided by the print data conversion service is to convert the data received from the
このように、依頼者101とプリンタ108との間には扱うデータ形式に差異があるため、データ変換処理により差異をなくすプログラムが必要とされる。通常、このデータ変換処理を行うのがプリンタドライバと称するプログラムである。プリンタドライバは、依頼者101が操作するアプリケーションプログラムが動作しているPC上で動作する。しかし、プリンタドライバの処理は、CPU(中央演算処理装置)やメモリ等のリソースを必要とする、比較的に処理負担の大きい処理である。このため、依頼者101の操作するPCのリソースが十分でない場合には、印刷処理に時間がかかってしまう。タブレット103や携帯端末104といった、比較的リソースの少ない端末からの印刷の需要が高まるのに伴い、プリンタドライバの処理をインターネット上のサービスで行わせることの重要性が増している。PC102、タブレット103、携帯端末104は、依頼者101からの指示を受け付け、前述のURLに対して印刷データをプリンタ108で印刷できる形式に変換するように依頼する。依頼に応じてサーバ106上で動作している印刷データ変換サービスが生成した、変換後のデータは、依頼元の端末装置に対して返信される。依頼者101から受け付ける指示によっては、変換後のデータは印刷データ変換サービスがアクセス可能なファイルサーバ106で保管する場合もある。
Thus, since there is a difference in the data format handled between the
次に、本実施形態に係るサーバのハードウェア構成を説明する。図2は印刷データ変換サービスのソフトウェア群が動作するサーバ106のハードウェア構成図である。図2は情報処理装置の基本的な構成だけを例示しており、機能に応じて各種デバイスが追加される。
印刷データ変換サービスはオペレーティングシステム(以下、OSという)上で動作するアプリケーションプログラムであり、HDD(ハードディスクドライブ装置)202またはROM(リード・オンリ・メモリ)203に格納されている。CPU205は、OSとアプリケーションプログラムをHDD202またはROM203から読み出し、RAM204にロードして実行する。これにより、各種処理が進行し、印刷データ変換サービスの機能が実現される。処理結果は、ファイルとしてHDD202に格納されるか、またはデータとしてRAM(ランダム・アクセス・メモリ)204に記憶される。アプリケーションプログラムは、コンピュータに接続されている入力装置207から使用者の入力操作信号や各種センサの読み取り値を取得する。アプリケーションプログラムはさらに、出力装置206に対して情報を出力し、処理結果を表示デバイスに表示する。さらに、通信装置208を介してネットワークに接続された他のコンピュータや装置との間で通信処理が行われる。これらのハードウェア構成部はバス201で互いに接続されており、アプリケーションプログラムから操作可能である。
Next, the hardware configuration of the server according to the present embodiment will be described. FIG. 2 is a hardware configuration diagram of the
The print data conversion service is an application program that operates on an operating system (hereinafter referred to as OS), and is stored in an HDD (Hard Disk Drive Device) 202 or a ROM (Read Only Memory) 203. The
次に、図3を参照してソフトウェア構成を説明する。図3は、印刷データ変換サービス301を含むソフトウェア群がサーバ106上で動作する場合の構成例を示すブロック図である。
Webサーバ302は依頼者101が操作したPC102上のアプリケーションから、HTTP(Hypertext Transfer Protocol)プロトコルで送信されたリクエストを受け取る。ロードバランサ107はWebサーバ302の前段に位置しており、複数のサーバ106上で動作しているWebサーバ302にリクエストを振り分ける。この振り分け方式の詳細は本発明に関係がないため、説明を省略する。
Next, the software configuration will be described with reference to FIG. FIG. 3 is a block diagram illustrating a configuration example when a software group including the print
The
本実施形態において、サーバ106は必ずしも物理的な一台のマシンを意味しないことに注意を要する。単一のコンピュータ上に複数の仮想的なコンピュータを出現させる仮想化技術が一般的となっている。ソフトウェアからみた場合、自身が動作しているOSが仮想的に作り出されたものか否かは判別がつかないか、または判別の必要がない。従って、本実施形態のサーバ106は「仮想化されたコンピュータ」を意味する場合もある。これ以降、「コンピュータ」は、広義には物理的なマシンとしてのコンピュータ、および仮想化されたコンピュータの両方を意味するものとして扱う。
アプリケーションサーバ303は、要求の送付先として指定されたURLを解析し、関連付けられている印刷データ変換サービス301を決定する。通常、Webサーバ302とアプリケーションサーバ303は複数種類のサービスを扱うことが可能であり、URLから対応するサービスを特定して要求を振り分けることができる。本実施形態では複数種類のサービスの一つを、印刷データ変換サービス301と想定する。このサービスの他にもサービスが稼働しているが、本発明に直接関係ないので説明を省略する。
Note that in this embodiment, the
The
印刷データ変換サービス301はプロセスとして動作する。アプリケーションサーバ303は複数の要求を並列して実行させるために、複数の印刷データ変換サービス301を起動させ、各々に要求を振り分ける。アプリケーションサーバ303はさらに、印刷データ変換サービス301が動作する際、依頼者101からの一連の要求を特定する為のセッションを管理する。具体的には、同一の依頼者101からの要求については、同一の印刷データ変換サービス301に転送するセッション・アフィニティを実現している。
図4を参照して印刷データ変換サービス301について説明する。図4は、印刷データ変換サービス301が、依頼された印刷データを変換する際に利用するソフトウェアコンポーネント群の関連を説明する図である。なお、以下では、プロセスとして起動したコンポーネントを、「コンポーネントプロセス」という。
The print
The print
印刷データ変換サービス301はプロセスとして動作しており、変換処理をジョブ制御部402に委譲している。印刷データ変換サービス301は、ジョブ制御部402の代理としてのジョブ処理受け付け部401をロードしている。さらにジョブ処理受け付け部401がApplication Programming Interface(API)で提供している関数群を呼び出すことで変換処理の実行を依頼し、さらに結果を受領する。印刷データ変換処理の実行の際、印刷データ変換サービス301は、ジョブ処理受け付け部401に対して処理対象のデータ一式を渡す。この処理対象のデータ一式をジョブと呼ぶ。ジョブは、変換対象データと、変換処理用の設定値等をまとまりのある形式に束ねた「チケット」と呼ばれるデータ構造を有する。
ジョブ制御部402もまたプロセスとして動作しており、変換処理の受け付けの為の通信インターフェイスを保持している。通信インターフェイスへのジョブの依頼はHTTPプロトコルではなく、専用のプロトコルが用いられる。ジョブ処理受け付け部401のAPIを呼び出す処理は、ジョブ制御部402が用意している変換処理受付用通信インターフェイスへのプロセス間通信として行われる。すなわち、印刷データ変換サービス301にとって変換処理はジョブ処理受け付け部401によって実行されているように見える。しかし実際には、ジョブ制御部402および後述する複数のフィルタ群、並びにフィルタ群が利用するいくつかのコンポーネントの相互作用によって実現されている。
The print
The
以下では、図4に示す各コンポーネントの機能について説明し、図6を参照してデータ変換処理の概要を説明する。先ず、プロセス情報管理部403を説明する。
プロセス情報管理部403は、アプリケーションサーバ303が起動した時点で唯一起動している特殊なプロセスである。アプリケーションサーバ303上で動作しているOSを設定し、OSの起動時に自動的にプロセス情報管理部403のプロセスを起動させる処理が実行される。
In the following, the function of each component shown in FIG. 4 will be described, and the outline of the data conversion process will be described with reference to FIG. First, the process
The process
プロセス情報管理部403はコンポーネントをプロセスとして起動する役割を担い、他のコンポーネントからの要求に応じて別のコンポーネントのエンドポイントを返す機能を提供する。エンドポイントとはTCP/IP(Transmission Control Protocol/Internet Protocol)のリスンポートを指す。あるコンポーネントは別のコンポーネントが公開しているエンドポイントを取得し、そのエンドポイントにアクセスすることでそのコンポーネントが提供する機能を利用する。あるコンポーネントが他のコンポーネントのエンドポイントをプロセス情報管理部403に対して問い合わせる動作を「クエリ」と呼ぶこととする。
The process
印刷データ変換サービス301を構成するコンポーネントのうち、ジョブ処理受け付け部401、ジョブ制御部402、フィルタ制御部404は、ログ出力部408が提供しているログデータをログファイルとして記録するサービスを利用できる。例えば管理者や開発者はこうしたログファイルの解析結果により、何が発生したかを把握して対策を講じることができる。そのため、これらはプロセス情報管理部403に対してログ出力部408のエンドポイントを得る目的でクエリを行っている。同様にジョブ処理受け付け部401はジョブ制御部402をクエリし、ジョブ制御部402は、例えば第1フィルタ(フィルタA)405、第2フィルタ(フィルタB)406、第3フィルタ(フィルタC)407のクエリを行う。クエリの処理の流れについては図8および図11を用いて後述する。
Among the components constituting the print
コンポーネントが提供しているサービスは、ネットワークからアクセスできるエンドポイントとして他のコンポーネントに公開される。具体的にはTCP/IPのアドレスとポート番号の組が公開される。コンポーネントは他のコンポーネントの提供するサービスI/F(インターフェイス)を取得して利用する。複数種類のコンポーネントがプロセスとして複数存在し、かつ同一コンポーネントも同一PC上に複数存在する。従って、各コンポーネントが公開するサービスI/Fのポート番号は固定値にすることができず、自ずと動的に生成せざるを得なくなる。動的に生成されたエンドポイントは、何らかの管理機構が無くては他から参照することはできない。この管理を担当するのがプロセス情報管理部403である。さらに、コンポーネントは、他のコンポーネントが動的に生成したエンドポイントを取得する手段が必要である。この手段がクエリである。プロセス情報管理部403は、他のコンポーネントからのクエリに対して、要求されたコンポーネントのエンドポイントを回答する。ジョブ処理受け付け部401を介してジョブ実行を依頼されたジョブ制御部402は、ジョブに含まれている「ジョブ種別情報」をもとに、変換に必要なフィルタを選定する。必要なフィルタの組み合わせとその並び順については、例えば設定ファイルとしてジョブ制御部402が保持する。
Services provided by components are disclosed to other components as endpoints accessible from the network. Specifically, a set of TCP / IP address and port number is disclosed. A component acquires and uses a service I / F (interface) provided by another component. There are a plurality of types of components as processes, and a plurality of the same components exist on the same PC. Therefore, the port number of the service I / F disclosed by each component cannot be set to a fixed value, and must be dynamically generated. Dynamically generated endpoints cannot be referenced from others without some sort of management mechanism. The process
図5は、必要なフィルタの組み合わせ、およびその並び順を記述するための設定ファイルを例示する。ジョブ種別情報を記載するための要素501を示す。
id属性でジョブ種別情報が指定される。要素群502はフィルタの組み合わせと並び順を記述するための要素である。name属性によりフィルタの種類が記述され、version属性により特定されるバージョンのフィルタを使うことが記述される。要素群502は、要素の記述順でフィルタの並び順を規定する。図5に例示する要素群502の場合、Filter A、Filter B、Filter Cの順で処理が行われる。ジョブ制御部402は、ジョブに含まれているジョブ種別情報と一致する要素501を検索し、一致する要素501の下に記述されているフィルタの組み合わせと並び順を採用する。
なお、必要なフィルタの組み合わせおよびその並び順については、ジョブ種別情報の代わりに、印刷データを解析して決定してもよい。その場合、印刷データの先頭から既定のサイズを読出し、その中に含まれている特徴的な内容から印刷データの種類を判定する処理が実行される。例えば、JPEG(Joint Photographic Experts Group)形式や、PDF(Portable Document Format)形式のデータ等が入力データとして与えられる。次に、ジョブに含まれている変換先の印刷データ形式を取得し、変換元の印刷データ形式と変換先の印刷データ形式の両者が確定した時点で、この変換に必要なフィルタ群を選定する処理が行われる。
FIG. 5 illustrates a setting file for describing a necessary combination of filters and their arrangement order. An
Job type information is specified in the id attribute. An
Note that the necessary combination of filters and their arrangement order may be determined by analyzing print data instead of job type information. In this case, a predetermined size is read from the top of the print data, and a process for determining the type of the print data from the characteristic content included therein is executed. For example, data in JPEG (Joint Photographic Experts Group) format, PDF (Portable Document Format) format, or the like is given as input data. Next, the conversion destination print data format included in the job is acquired, and when both the conversion source print data format and the conversion destination print data format are determined, a filter group necessary for this conversion is selected. Processing is performed.
図4(A)では、必要な複数のフィルタが選定された後、各フィルタがフィルタ制御部404にそれぞれロードされている状態を示す。図4(A)の例では、変換に必要なフィルタとして、フィルタA405、フィルタB406、フィルタC407を例示する。各フィルタはそれぞれフィルタ制御部404にロードされている。
ジョブ制御部402はフィルタA405、フィルタB406、フィルタC407との間で、パイプライン409と呼ばれるデータ転送チャネルを生成する。プロトコルとしては、例えばTCP/IPを用いる。パイプライン409は基本的に一方向にのみデータを転送する。ジョブ制御部402、フィルタA405、フィルタB406、フィルタC407、ジョブ制御部402と、一巡するようにパイプライン409が構成される。また、ジョブ制御部402はジョブ処理受け付け部401との間にもパイプライン409を生成する。このようにパイプライン409の生成によってジョブ処理受け付け部401からの印刷データは複数のコンポーネントを還流し、最後に変換が終了した上で再びジョブ処理受け付け部401に戻ってくる。
FIG. 4A shows a state in which each filter is loaded in the
The
また、ジョブ制御部402は、「複数のフィルタをロードしたフィルタ制御部404」をプロセス情報管理部403に対してクエリ可能である。図4(B)は、フィルタA405、フィルタB406、フィルタC407がすべて同じフィルタ制御部404内にロードされている例を示す。この場合、フィルタ制御部404は、図4(B)で示すようにローカルログ出力部411を保持することも可能である。各フィルタ(405、406,407)は、このローカルログ出力部411を介してログデータ(ロギングデータ)を出力可能である。
Further, the
フィルタはデータ変換処理のみを実装したライブラリモジュールの形式で用意されている。フィルタ制御部404はプロセスとして存在し、実行時に指定されたフィルタをロードする。フィルタ制御部404はコントロールバス410への接続とメッセージ送受信、ジョブ制御部402との通信や、フィルタのログ出力をログ出力部408へ転送する処理等を担当する。
ローカルログ出力部411は、フィルタ制御部404のプロセス内にて動作可能である。各フィルタは、ログデータをローカルログ出力部411に対して、APIを介して受け渡す。ローカルログ出力部411は一定量のログデータが蓄積した時点でログファイルに出力する。ログデータを蓄積せずに逐次ログファイルに出力してもよい。ログファイルの出力パス等の設定については、ローカルログ出力部411が起動される際に渡されるコンフィギュレーションファイルで指定される。
The filter is prepared in the form of a library module that implements only data conversion processing. The
The local
ログ出力部408は、プロセスとしてコントロールバス410上に最低一つは存在する。各コンポーネントはログデータをログ出力部408に対して、ネットワークを介して送信する。ログ出力部408は一定量のログデータが蓄積した時点でログファイルに出力する。ログデータを蓄積せずに逐次ログファイルに出力してもよい。ログファイルの出力パス等の設定については、ログ出力部408が起動される際に渡されるコンフィギュレーションファイルで指定される。
コントロールバス410上のコンポーネントはジョブの実行中にログ出力を行う。ローカルログ出力部411が個別に出力を行ったのでは、ログファイルがフィルタ制御部404毎ごとに分かれてしまい、ログ解析が困難となってしまう。そこで、本実施形態では、ログ出力部408が一括してログファイルへの出力を行えるように構成されている。
At least one
The component on the
次に、図6および図7を参照して、データ変換処理の概要を説明する。
図6は、ジョブ処理受け付け部401が印刷データ変換サービス301からジョブ処理を受け付けた後の、データ変換処理例を示す。
S601は、ジョブ処理受け付け部401がジョブ制御部402のクエリ要求を行う処理である。ジョブ処理受け付け部401は、プロセス情報管理部403にクエリ要求を行い、ジョブ制御部402のエンドポイントを取得する。S602は、ジョブ処理受け付け部401がジョブ制御部402に対してジョブ処理依頼を行う処理である。ここで、ジョブのデータが、ジョブ処理受け付け部401からジョブ制御部402に渡される。その際には、ジョブのデータのパスで渡すようにしてもよいし、メモリやプロセス間通信で渡してもよい。
Next, the outline of the data conversion process will be described with reference to FIGS.
FIG. 6 shows an example of data conversion processing after the job
In step S <b> 601, the job
S603は、ジョブ制御部402が、ジョブの内容に基づいて、フィルタの種類と並び順(図5参照)を決定し、それらフィルタのクエリ要求を行う処理である。ジョブ制御部402は、プロセス情報管理部403に対して、各フィルタに対応するフィルタ制御部404のクエリ要求を行い、それぞれのエンドポイントを取得する。ここでは、フィルタA405、フィルタB406、フィルタC407の順に処理を行うものとして説明する。
S604は、パイプラインを生成する処理である。ジョブ制御部402は、各フィルタ制御部404に対してパイプラインの生成を指示する。各フィルタ制御部404は、それぞれ隣り合うコンポーネントプロセスとのパイプラインを生成する。各フィルタ制御部404の入力パイプラインからジョブが流れてくるのを待機し、各フィルタ制御部404はジョブ制御部402にパイプラインの生成処理の完了を通知する。ジョブ制御部402は、各フィルタ制御部404に対してパイプラインの生成を指示する際、ジョブ制御部402のサービスI/Fのエンドポイントを各フィルタ制御部404に通知する。フィルタ制御部404はエラーが発生した際に、ジョブ制御部402のサービスI/Fを通じて、ジョブ制御部402にエラーを通知する。
In step S <b> 603, the
S604 is processing for generating a pipeline. The
S605はデータ変換処理である。ジョブ制御部402は、初段のフィルタ制御部404に接続されているパイプラインにデータを渡す。フィルタA405は、フィルタ制御部404を通じてデータを受け取り、データ変換処理を行う。次に、フィルタA405は、フィルタ制御部404を通じて、フィルタB406と接続されているパイプラインにデータを渡す。フィルタB406、フィルタC407でも同様にデータ変換処理が順次行われる。最終的に、フィルタC407から、フィルタ制御部404を通じて、ジョブ制御部402に変換後のデータが送信される。S606は、ジョブ制御部402が、ジョブ処理受け付け部401に対して変換後のデータを返信する処理である。
図6では、各フィルタをそれぞれフィルタ制御部404にロードする場合を例示している。
S605 is a data conversion process. The
FIG. 6 illustrates a case where each filter is loaded into the
次に、図7を参照して、複数のフィルタを同一のフィルタ制御部404にロードする例を説明する。図6との相違点は、S603およびS604の各処理の内容である。S603−01においてジョブ制御部402は、ジョブの内容をもとに、フィルタの種類および並び順を決定する。そして、ジョブ制御部402は、プロセス情報管理部403に対して、複数のフィルタをロードした1つのフィルタ制御部404のクエリ要求を行い、エンドポイントを取得する。これにより、フィルタA405、フィルタB406、フィルタC407をロードした1つのフィルタ制御部404を獲得することができる。
Next, an example of loading a plurality of filters to the same
S604−01は、パイプラインを生成する処理である。ジョブ制御部402は、1つのフィルタ制御部404に対してパイプラインの生成を指示する。図6のS604では、上述ように各フィルタ制御部404は、それぞれ隣り合うコンポーネントプロセスとのパイプラインを生成した。これに対して図7の、S604−01にて、フィルタ制御部404はフィルタA405、フィルタB406、フィルタC407について、同一プロセス内でパイプラインを生成する。
S604-01 is processing for generating a pipeline. The
次に、コンポーネントの生成について説明する。図8はコンポーネントをプロセスとして生成するシーケンスを説明した図である。
図8(A)はプロセス情報管理部403のみが存在する状況を示す。この状況は、図3においてサーバ106が起動した直後の状態に相当する。この時点では、まだ印刷データ変換サービス301は起動していない。プロセス情報管理部403は単独でコントロールバス410に繋がっている状態である。
プロセス情報管理部403はサービスカタログ701を保持している。サービスカタログ701は、例えば、サーバ106のHDD202にファイルとして保存され、プロセス情報管理部403によって読み込まれる。図9にサービスカタログの概念図を示す。サービスカタログ701は、サーバ106上にインストールされているコンポーネントのリストから構成されている。
Next, component generation will be described. FIG. 8 is a diagram illustrating a sequence for generating a component as a process.
FIG. 8A shows a situation where only the process
The process
図9(A)および(B)において、エントリ801は、サービスカタログのエントリであり、コンポーネントごとに存在する。コンポーネント名802は当該エントリのコンポーネント名である。サービスのバージョン803は、コンポーネントのバージョンを示す。同一の名称を持つコンポーネントであっても、そのバージョンが異なる場合がある。この場合、異なる機能を提供するためにサービスカタログ701上では異なるエントリとして扱われる。
ホスティングプロセスパス804は、コンポーネントのホスティングプロセスパスを示す。実行ファイルパス805は、ホスティングプロセスパス804がロードする実行ファイルパスを示す。コンフィギュレーションファイルパス806は、コンポーネントをプロセスとして起動したときに、プロセス情報管理部403からそのコンポーネントに渡されるコンフィギュレーションファイルのパスである。起動モード807は、コンポーネントプロセスが、オンデマンド(Ondemand)で起動するか、またはホットスタンバイ(HotStandby)させておくかを示す。起動モードがオンデマンドの場合、そのコンポーネントを指定したコンポーネントのクエリがあったときに当該コンポーネントプロセスが起動する。また、ホットスタンバイの場合、プロセス情報管理部403が起動する際に当該コンポーネントプロセスを起動させる。
9A and 9B, an
A hosting
図9(A)は、「フィルタA405」をロードするフィルタ制御部404、即ち、図4(A)で説明したフィルタA405をロードしたフィルタ制御部404のカタログを示す。一方、図9(B)は、フィルタA405、フィルタB406、フィルタC407を同一のプロセス上にロードするフィルタ制御部404のカタログを示す。即ち、図4(B)で説明したフィルタA405、フィルタB406、C407をロードした1つのフィルタ制御部404のサービスカタログである。
FIG. 9A shows a catalog of the
図8(B)は、あるコンポーネントA702の起動モードがホットスタンバイに指定されているとした場合を例示する。プロセス情報管理部403は自身が起動すると、サービスカタログ701を参照し、起動モードがホットスタンバイに指定されているコンポーネントA702を検索する。次にプロセス情報管理部403は、サービスカタログ701からコンフィギュレーションファイルパス806を、起動引数に与えてコンポーネントA702をプロセスとして起動させる。コンポーネントA702が起動し、コントロールバス410に接続する時点でユニークなID(識別情報)を与えられる。このIDとしては、例えばGUID(Globally Unique Identifier)を用いる。コンポーネントA702はコンフィギュレーションファイルパス806からコンフィギュレーションファイル703を参照して必要な初期値等を取得し、初期値を使って自身を初期化する。
FIG. 8B illustrates a case where the startup mode of a
図8(C)にて、コンポーネントA702がサービスを提供する為に、TCP/IPのポートを取得しサービスI/F704の待ち受けを開始した状態を示す。コンポーネントA702は、他のコンポーネントへのサービスの提供の準備ができたため、コントロールバス410に自身のアドバタイズメッセージ705を作成して送信する。アドバタイズメッセージ705には、コンポーネントA702の名称、ID、バージョン、サービスI/F704のエンドポイント(アドレス、ポート番号)が記載されている。このメッセージがプロセス情報管理部403宛てに送信される。アドバタイズメッセージ705の送信は、コンポーネントが自身の起動完了とサービス提供開始を宣言するために行われる。アドバタイズメッセージ705を受信したプロセス情報管理部403は、コンポーネントA702の起動を確認し、かつサービスI/F704のエンドポイントを取得することができる。
FIG. 8C shows a state in which the
図8(D)は、プロセス情報管理部403がコンポーネントA702からのアドバタイズメッセージ705を受信し、以降の管理の為に管理テーブルであるサービスインベントリ706に登録を行った様子を表している。
図10(A)および(B)は、サービスインベントリ706の内容を模式的に表した図である。図10(A)は、図9(A)で説明したフィルタ制御部404のサービスインベントリ706を示す。図10(B)は、図9(B)で説明したフィルタ制御部404のサービスインベントリ706を示す。エントリ901はサービスインベントリ706のエントリである。コンポーネントプロセスごとにエントリ901が存在する。プロセス情報管理部403は、アドバタイズメッセージ705を受け取った時点で、サービスインベントリ706内にそのメッセージの送信元であるコンポーネントプロセスのエントリを作成する。そして、プロセス情報管理部403はエントリ901内にメッセージの内容を記載する。具体的には、ID902、名称903、バージョン904、エンドポイント905(アドレスおよびポート番号)が記載される。状態906には、プロセス情報管理部403が、後述するステートチェンジメッセージを受け取った際にコンポーネントプロセスの状態を記録する。状態906は「アイドリング」または「ビジー」という値をとり得る。「アイドリング」は、当該コンポーネントプロセスが処理受け付け可能な状態である。「ビジー」は、当該コンポーネントプロセスが処理受け付け不可能な状態である。各コンポーネントプロセスが起動する際には「アイドリング」状態で起動する。「ビジー」状態に関しては図8(G)を参照して後述する。
FIG. 8D shows a state in which the process
FIGS. 10A and 10B are diagrams schematically showing the contents of the
図8(E)は、コンポーネントA702がコンポーネントB709を利用しようとして、プロセス情報管理部403に対してクエリメッセージ708を送信した状態を示す。クエリメッセージ708には、コンポーネントB709の名称と利用したいバージョンが記載されている。あるコンポーネントは複数のバージョンが作成され得る。同一の名称のコンポーネントが機能の違いにより、複数作成されて異なるバージョンとして市場にリリースされる。従ってコンポーネントA702はバージョン“2.0.0.1”のように、自身が利用したいコンポーネントB709のバージョンを指定してクエリ要求を行うことができる。特定バージョンを利用する必要が無い場合には、バージョン欄は空欄で指定される。図8(E)に示す時点でコンポーネントB709はまだ生成されていない為、プロセス情報管理部403はコンポーネントB709を新たに生成する。図8(B)〜(D)で示したコンポーネントA702の生成手順と同様に、コンポーネントB709が生成される。プロセス情報管理部403におけるクエリの処理の詳細については、図11を用いて後述する。
FIG. 8E shows a state in which the
図8(F)は、プロセス情報管理部403がクエリに対するレスポンスをコンポーネントA702にクエリレスポンスメッセージ710として返信する状態を示す。クエリレスポンスメッセージ710には、コンポーネントB709の名称、バージョン、サービスI/Fを示すエンドポイントが含まれている。
図8(G)は、クエリレスポンスメッセージ710を受け取ったコンポーネントA702が取得したコンポーネントB709のサービスI/F711を利用する状態を示す。コンポーネントによっては、サービスI/Fにアクセスして来る他のサービスからのサービス要求を同時に扱えるものと、そうでないものが存在する。例えば、ログ出力部408は複数のサービスからのログデータを同時並行的に受け取ってログファイルに記録していく能力を有する。一方、パイプラインを構成してジョブを変換するフィルタは同時並行処理の能力をもたない。従って、コンポーネントB709が同時並行処理の能力を持たないコンポーネントである場合、コンポーネントA702がアクセスしてきた時点で他のコンポーネントからの要求を受け付けられないビジー状態に遷移する。
FIG. 8F shows a state in which the process
FIG. 8G shows a state in which the service I /
ビジー状態は、コンポーネントA702が明示的なアクセス終了を、サービスI/Fを通じてコンポーネントB709に宣言するまで継続する。コンポーネントB709はビジー状態に遷移したら、自身をクエリで検出されないようにする必要がある。図8(H)に示すように、コンポーネントB709はステートチェンジメッセージ712をプロセス情報管理部403に対して送信する。ステートチェンジメッセージ712には、コンポーネントB709がビジー状態に遷移したことが記載されている。ステートチェンジメッセージ712を受け取ったプロセス情報管理部403は、サービスインベントリ706のコンポーネントB709のエントリを検索し、その状態906を「ビジー」状態に変更する。コンポーネントB709の状態906が「ビジー」状態に変更されると、プロセス情報管理部403は以降、名称を指定したクエリを受け取ったとしても、そのコンポーネントB709のプロセスを選定することはなくなる。ただし、サービスインベントリ706には、他のコンポーネントBのプロセスが複数存在している可能性がある。それらのいずれかがビジー状態でなければ「利用可能なコンポーネントB」としてクエリの発行元のコンポーネントに返信される。複数の同一名称およびバージョンを持ったコンポーネントプロセス群から、どのプロセスをクエリの結果として選択するのかに関しては、例えば最初に発見されたプロセスを返信する方法がある。または、コンポーネントプロセスごとに、クエリ発行元のコンポーネントに返信された回数をカウントしておき、最もカウント値の低いプロセスを返信する方法を採用してもよい。
The busy state continues until the
次に、図11のフローチャートを参照して、クエリ処理の詳細を説明する。
S1001でプロセス情報管理部403は、他のコンポーネントからクエリ要求を受け付ける。クエリには、コンポーネントの名称と、利用したいバージョンが含まれている。S1002でプロセス情報管理部403は、サービスカタログ701を探索し、S1001で受け付けたコンポーネント名とバージョンに対応するエントリ801が存在するか否かを判定する。当該エントリ801がサービスカタログ701に存在すると判定された場合、S1003に処理を進めるが、存在しなければS1007に移行する。
Next, the details of the query processing will be described with reference to the flowchart of FIG.
In step S1001, the process
S1003でプロセス情報管理部403はジョブ受け付け可能なコンポーネントプロセスが存在するか否かを判定する。プロセス情報管理部403は、サービスインベントリ706を探索し、S1001で受け付けたコンポーネント名とバージョンに対応するエントリ901を探索する。そして、状態906が「アイドリング」であるコンポーネントプロセスが1つ以上存在するか否かを判定する処理が実行される。状態906が「アイドリング」であるコンポーネントプロセスが存在する場合には、S1004に処理を進め、存在しなければS1005に移行する。
In step S1003, the process
S1004でプロセス情報管理部403は、クエリ要求元に対して、要求のあったコンポーネントプロセスのエンドポイントを通知する。S1004にて、検出されたコンポーネントプロセスのうちの1つについてクエリ要求元にエンドポイントを通知する処理が実行される。その際、最初に検出されたコンポーネントプロセスを返すように構成してもよい。または、コンポーネントプロセスごとに、何回クエリ要求元にエンドポイントを返したかを、サービスインベントリ706に記憶しておき、最も回数の少ないコンポーネントプロセスを返すように構成してもよい。
In step S1004, the process
S1005でプロセス情報管理部403は、クエリ要求のあったコンポーネントをプロセスとして起動する。次のS1006でプロセス情報管理部403は、S1005で起動したコンポーネントプロセスからアドバタイズメッセージ705を受け付ける。この処理後にS1004に進み、S1005で起動したコンポーネントプロセスをクエリの要求元に通知する。なお、図11には記載していないが、アドバタイズメッセージ705が規定時間内にプロセス情報管理部403に到着しない場合、エラーと判別し、S1007に進んでもよい。S1007にて、プロセス情報管理部403はクエリ要求元に対してエラーを通知する。
In step S <b> 1005, the process
以上に説明した、データ変換サービスの処理の基本的な流れを踏まえて、ジョブを実行する処理について、図12のフローチャートを参照して説明する。
まず、ジョブ処理受け付け部401は入力データを受け付け、入力データをジョブ制御部402に送信する(S1101)。ジョブ制御部402は処理に必要なフィルタを特定する。本実施形態では、プロセス情報管理部403が起動させるプロセスを、フィルタA405、フィルタB406、フィルタC407、として説明する。ジョブ制御部402は、上記3つのフィルタを同一のプロセスで動作させたフィルタ制御部404に関し、プロセス情報管理部403に対してクエリを行う。クエリを受け付けたプロセス情報管理部403は、要求されたフィルタを起動させ、ジョブ制御部402はパイプラインを生成する(S1102)。これは図4(B)、図7で説明したパイプラインである。
Based on the basic flow of data conversion service processing described above, processing for executing a job will be described with reference to the flowchart of FIG.
First, the job
次に、ジョブ制御部402は構築したパイプラインを用いて、「ログ出力なし」として、ジョブの実行をフィルタ制御部404に指示する。指示の方法としては、チケット(変換処理用の設定値等をまとまりのある形式に束ねた構造をもつデータ群)内に記述する方法等があるが、通知の方法は特に問わない。ジョブ制御部402は各フィルタを用いて、ログ出力なしでジョブを実行する(S1103)。
ジョブ制御部402は、ジョブが正常に実行されたかどうかを判断し(S1104)、判断結果に応じて3つに分岐して処理を切り替える。ジョブが正常に終了した場合、S1109へ移行し、クラッシュが発生した場合、S1107へ移行し、クラッシュ以外のエラーが発生した場合にはS1105へ移行する。
S1105でジョブ制御部402は、エラーが発生したフィルタを特定する。エラーが発生した場合、各フィルタがジョブ制御部402へエラーが発生したことを通知することで、ジョブ制御部402はエラーが発生したフィルタを特定できる。
Next, using the constructed pipeline, the
The
In step S1105, the
次に、ジョブ制御部402はS1105で特定したフィルタに対してのみ、「ローカルログ出力あり(ローカルログ出力部411にてログを出力させるための指示)」として、ジョブの実行を指示する。この指示については、チケット内に記述する等の方法をとる(S1106)。その後、S1109に処理を進める。
S1104にてクラッシュが発生したと判断する方法は、各コンポーネント間(各プロセス間)において互いにパイプラインの切断を検知することにより問題の起きたコンポーネントを特定することで実現することができる。具体的には、プロセス間、例えばジョブ制御部402とフィルタ制御部404との間で定期的に生存確認のためのパケットを送り合う。パケットが途絶えたことをタイムアウトにより検知し、クラッシュが発生したことを把握できる。例えば、フィルタ制御部404からのパケットが途絶えた場合、ジョブ制御部402はフィルタ制御部がクラッシュしたと判断することができる。この場合、ジョブ制御部402は、複数のフィルタ(本例では3つのフィルタ)に対応する各フィルタ制御部404に関し、それぞれプロセス情報管理部403に対してクエリを行う。そして、クエリを受け付けたプロセス情報管理部403は、要求されたフィルタを起動させ、ジョブ制御部402はパイプラインを生成する(S1107)。これは図4(A)、図6で説明したパイプラインである。
Next, the
The method of determining that a crash has occurred in S1104 can be realized by identifying a component in which a problem has occurred by detecting pipeline disconnection between components (between processes). Specifically, packets for survival confirmation are periodically sent between processes, for example, between the
S1108にてジョブ制御部402は、S1105で特定したフィルタに対してのみ、「ログ出力あり(ログ出力部408にてログを出力させるための指示)」として、ジョブ実行を指示する。この指示については、チケット内に記述する等の方法をとる。その後、S1109に処理を進める。
S1109にて、ジョブ制御部402は後処理を実行して処理を終了する。後処理とは、具体的には、パイプラインの破棄や、プロセス情報管理部403に「アイドリング」状態への変更通知を行う処理である。プロセス情報管理部403は「アイドリング」状態への変更通知を受け取り、サービスインベントリ706において当該コンポーネントプロセスの状態906を「アイドリング」に変更する。
In step S <b> 1108, the
In step S1109, the
本実施形態に係る情報処理装置は、複数のフィルタを動作させてパイプライン処理を行う場合に、少なくとも第1モードおよび第2モードを有する。つまり、第1モードは、複数のフィルタを同一のプロセスで動作させ、かつログデータを出力しないモードである。第2モードは、第1モードで複数のフィルタを用いた処理が正常に終了しなかった場合、複数のフィルタを複数のプロセスで動作させ、かつログデータを出力するモードである。第1モードで複数のフィルタを実行する実行手段と、第2モードで複数のフィルタを再実行する再実行手段については同一の手段でもよいし、または異なる手段でもよい。
このように第1モードではログデータを出力しないが、同一のプロセス内でフィルタを動作させることにより、処理の高速性を維持できる。また、エラー発生時には、第2モードにてジョブを再実行してログデータを出力させることが可能となる。クラッシュ時にはフィルタを別プロセスで動作させ、かつ、別プロセスで動作するログ出力機構を用いることで、再実行時に安定してログデータを取得することができる。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
The information processing apparatus according to the present embodiment has at least a first mode and a second mode when pipeline processing is performed by operating a plurality of filters. That is, the first mode is a mode in which a plurality of filters are operated in the same process and log data is not output. The second mode is a mode in which a plurality of filters are operated by a plurality of processes and log data is output when processing using the plurality of filters is not normally completed in the first mode. The execution means for executing a plurality of filters in the first mode and the re-execution means for re-execution of the plurality of filters in the second mode may be the same means or different means.
As described above, the log data is not output in the first mode, but the processing speed can be maintained by operating the filter in the same process. When an error occurs, the job can be re-executed in the second mode to output log data. Log data can be stably acquired at the time of re-execution by using a log output mechanism that operates in a separate process and operates in a separate process at the time of a crash.
(Other embodiments)
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.
402 ジョブ制御部
403 プロセス情報管理部
404 フィルタ制御部
405,406,407 フィルタ
409 ローカルログ出力部
402
Claims (11)
前記複数のフィルタを同一のプロセスで、かつログデータを出力しない第1モードで実行する実行手段と、
前記第1モードにて前記複数のフィルタを用いた処理が正常に終了しなかった場合、前記複数のフィルタを複数のプロセスで、かつログデータを出力する第2モードで再実行する再実行手段と、を有することを特徴とする情報処理装置。 An information processing apparatus that performs processing by executing a plurality of filters according to functions,
Execution means for executing the plurality of filters in the same process and in a first mode that does not output log data;
Re-execution means for re-executing the plurality of filters in a plurality of processes and in a second mode for outputting log data when the processing using the plurality of filters in the first mode is not normally completed; And an information processing apparatus.
前記コンピュータに、
前記複数のフィルタを同一のプロセスで、かつログデータを出力しない第1モードで実行する実行工程と、
前記第1モードにて前記複数のフィルタを用いた処理が正常に終了しなかった場合、前記複数のフィルタを複数のプロセスで、かつログデータを出力する第2モードで再実行する再実行工程と、を実行させることを特徴とするプログラム。 A program executed in a computer that performs processing by executing a plurality of filters according to functions,
In the computer,
An execution step of executing the plurality of filters in the same process and in a first mode that does not output log data;
A re-execution step of re-executing the plurality of filters in a plurality of processes and in a second mode for outputting log data when processing using the plurality of filters in the first mode is not normally completed; , A program characterized by being executed.
前記実行工程では、前記第1モードにて前記複数のフィルタによるパイプライン処理を実行させ、前記第1モードでのパイプライン処理が正常に終了しなかった場合、前記再実行工程では前記第2モードで前記パイプライン処理を再実行させ、ログデータが出力されることを特徴とする請求項6に記載のプログラム。 In the computer,
In the execution step, pipeline processing by the plurality of filters is executed in the first mode, and when the pipeline processing in the first mode does not end normally, in the re-execution step, the second mode The program according to claim 6, wherein the pipeline processing is re-executed and log data is output.
前記第1モードでのパイプライン処理が正常に終了しなかった場合、前記複数のフィルタのうち、どのフィルタでエラーが発生したかを特定する特定工程を実行させることを特徴とする請求項7に記載のプログラム。 In the computer,
8. The method according to claim 7, wherein when the pipeline processing in the first mode does not end normally, a specific step of specifying which filter among the plurality of filters has caused an error is executed. The listed program.
前記再実行工程にて、前記特定工程で特定した前記フィルタに対して、ログデータを出力させる処理を実行させることを特徴とする請求項8に記載のプログラム。 In the computer,
The program according to claim 8, wherein in the re-execution step, a process of outputting log data to the filter specified in the specification step is executed.
前記フィルタから取得したログデータをログファイルに出力するローカルログ出力工程を実行させることを特徴とする請求項6乃至9のいずれか1項に記載のプログラム。 In the computer,
The program according to any one of claims 6 to 9, wherein a local log output step of outputting log data acquired from the filter to a log file is executed.
前記情報処理装置により、
前記複数のフィルタを同一のプロセスで、かつログデータを出力しない第1モードで実行する実行工程と、
前記第1モードにて前記複数のフィルタを用いた処理が正常に終了しなかった場合、前記複数のフィルタを複数のプロセスで、かつログデータを出力する第2モードで再実行する再実行工程と、を有することを特徴とする制御方法。 A method of controlling an information processing apparatus that performs processing by executing a plurality of filters according to a function,
By the information processing apparatus,
An execution step of executing the plurality of filters in the same process and in a first mode that does not output log data;
A re-execution step of re-executing the plurality of filters in a plurality of processes and in a second mode for outputting log data when processing using the plurality of filters in the first mode is not normally completed; The control method characterized by having.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014001264A JP2015130075A (en) | 2014-01-07 | 2014-01-07 | Information processing apparatus, information processing method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2014001264A JP2015130075A (en) | 2014-01-07 | 2014-01-07 | Information processing apparatus, information processing method, and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2015130075A true JP2015130075A (en) | 2015-07-16 |
Family
ID=53760747
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2014001264A Pending JP2015130075A (en) | 2014-01-07 | 2014-01-07 | Information processing apparatus, information processing method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2015130075A (en) |
-
2014
- 2014-01-07 JP JP2014001264A patent/JP2015130075A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8736882B2 (en) | Printing system, service processing method, and storage medium | |
| JP5586985B2 (en) | Network system, network system control method, and program | |
| US8836974B2 (en) | Image processing system and control method for managing a job related to image processing in a distributed environment | |
| US9524133B2 (en) | Printing server group including a print service of transferring a print job to a printer via a network | |
| JP5639441B2 (en) | Information processing apparatus, printing apparatus, print data processing method, and program | |
| JP2011192250A (en) | Cloud computing system, and control method therefor | |
| JP2011248683A (en) | Cloud computing system, server computer, method for connecting device and program | |
| JP5602592B2 (en) | Network system, server, log registration method, and program | |
| JP2013073314A (en) | Print relay system, printing system, control method and computer program | |
| CN111381812B (en) | Program issuing method, calling method, device, storage medium and computer equipment | |
| CN106557288B (en) | A method and device for obtaining print data | |
| US20110222105A1 (en) | Printing internet inaccessible web content via remote printing service | |
| CN115150464A (en) | Application proxy method, device, equipment and medium | |
| JP5854667B2 (en) | Job processing apparatus, control method and program for job processing apparatus | |
| JP5711518B2 (en) | Information processing apparatus, control method thereof, and program | |
| TWI344090B (en) | Management of a scalable computer system | |
| JP2015225456A (en) | Information processor, system, information processing method, and program | |
| JP6335527B2 (en) | System, system control method, and computer program | |
| US9753682B2 (en) | Information processing apparatus, information processing method, and computer-readable storage medium | |
| CN110381143B (en) | Job submission and execution methods, devices, equipment and computer storage media | |
| JP2015005082A (en) | Image forming apparatus, image forming apparatus control method, and program | |
| US20160019105A1 (en) | Computer embedded apparatus, recording medium and computer embedded apparatus test system | |
| JP2015130075A (en) | Information processing apparatus, information processing method, and program | |
| JP2016042338A (en) | Information processing system, information processing apparatus, information processing apparatus control method, and program | |
| JP2015028792A (en) | Push notification system |