JP4656897B2 - Stream control program and image forming apparatus - Google Patents

Stream control program and image forming apparatus Download PDF

Info

Publication number
JP4656897B2
JP4656897B2 JP2004270347A JP2004270347A JP4656897B2 JP 4656897 B2 JP4656897 B2 JP 4656897B2 JP 2004270347 A JP2004270347 A JP 2004270347A JP 2004270347 A JP2004270347 A JP 2004270347A JP 4656897 B2 JP4656897 B2 JP 4656897B2
Authority
JP
Japan
Prior art keywords
data
input
output
unit
class
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.)
Expired - Fee Related
Application number
JP2004270347A
Other languages
Japanese (ja)
Other versions
JP2006085492A (en
Inventor
礼嗣 行本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2004270347A priority Critical patent/JP4656897B2/en
Publication of JP2006085492A publication Critical patent/JP2006085492A/en
Application granted granted Critical
Publication of JP4656897B2 publication Critical patent/JP4656897B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Facsimiles In General (AREA)

Description

本発明は、入力デバイスおよび出力デバイスを有し、入力デバイスから入力したデータを加工して出力デバイスに出力するデータ加工装置に搭載され、利用者により選択された入力デバイスおよび出力デバイス間のデータの流れを制御するストリーム制御プログラムおよび画像形成装置に関するものである。   The present invention includes an input device and an output device, is mounted on a data processing apparatus that processes data input from the input device and outputs the processed data to the output device, and stores data between the input device and the output device selected by the user. The present invention relates to a stream control program for controlling a flow and an image forming apparatus.

従来、プリンタ、コピーおよびスキャナなどの複数の機能を一つの筐体内に収納した複合機が知られている。かかる複合機では、UNIX(登録商標)などの汎用OS上に、プリンタアプリ、コピーアプリおよびスキャナアプリと呼ばれる複数のアプリケーションを搭載し、これらのアプリケーションの実行処理を切替えながら複数の機能を実現していた。   2. Description of the Related Art Conventionally, there has been known a multi-function machine in which a plurality of functions such as a printer, a copy, and a scanner are stored in a single casing. In such a multifunction device, a plurality of applications called a printer application, a copy application, and a scanner application are mounted on a general-purpose OS such as UNIX (registered trademark), and a plurality of functions are realized while switching execution processes of these applications. It was.

ところが、上記プリンタアプリ、コピーアプリおよびスキャナアプリは、それぞれエンジン制御、メモリ制御およびシステム制御などを別個におこなっているので、重複処理という無駄が生じていた。   However, since the printer application, the copy application, and the scanner application perform engine control, memory control, system control, and the like separately, wasteful duplication processing has occurred.

このため、特許文献1では、複合機に搭載される複数のアプリケーションがそれぞれ担っていたエンジン制御、メモリ制御およびシステム制御などの処理を共通処理部分(プラットホーム)として各アプリケーションから括り出すことにより、アプリケーションの開発効率の向上を図っている。   For this reason, in Patent Document 1, the applications such as engine control, memory control, and system control, which have been performed by a plurality of applications installed in the multifunction peripheral, are grouped from each application as a common processing part (platform). The development efficiency is improved.

また、特許文献2では、印刷装置に搭載される印刷制御ソフトウェアを、オブジェクト指向設計による複数のソフトウェア部品から構成し、かかる部品群の協調動作により印刷処理をおこなうこととしている。   Further, in Patent Document 2, print control software installed in a printing apparatus is composed of a plurality of software components based on object-oriented design, and printing processing is performed by cooperative operation of such component groups.

特開2002−084383号公報JP 2002-084383 A 特開平11−327883号公報Japanese Patent Laid-Open No. 11-327883

しかしながら、この特許文献1で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではない。このため、複合機上のアプリケーションには、開発効率の向上を図るうえで改善の余地が残されている。   However, the invention disclosed in Patent Document 1 shares a processing part for controlling hardware, and does not share all internal processes of each application. For this reason, there is still room for improvement in the application on the multifunction peripheral in order to improve the development efficiency.

たとえば、スキャナデバイスなどの入力デバイスをとおして入力される画像データを、プリンタデバイスなどの出力デバイスに出力する場合において、利用者の指示に応じて入力デバイスおよび出力デバイスの選択をおこない、選択したデバイス間のデータの流れを制御するストリーム制御処理は、複写機上の各アプリケーションに共通して存在する処理であるが、ハードウェアを直接制御する処理ではないため各アプリケーションで別個に実現されており、共通化することが可能である。   For example, when outputting image data input through an input device such as a scanner device to an output device such as a printer device, the input device and the output device are selected according to a user instruction, and the selected device is selected. The stream control process that controls the flow of data between them is a process that exists in common with each application on the copier, but is not implemented in each application separately because it is not a process that directly controls the hardware. It can be shared.

また、特許文献2で開示されている発明は、印刷制御ソフトウェアをオブジェクト指向設計による複数のソフトウェア部品から構成したものであり、入力デバイスおよび出力デバイス間のデータの流れを制御するソフトウェア部品を開示したものではない。したがって、多機能化により多くの入出力デバイスを搭載する複合機において、特許文献2で開示されている発明を応用して、各入出力デバイスに対応するソフトウェア部品を作成したとしても、各入出力デバイスの処理速度の差異や、処理対象となるデータ単位やデータ形式の差異のため、各デバイス間のデータの流れを効率よく制御することは容易でない。   The invention disclosed in Patent Document 2 is a print control software composed of a plurality of software components based on object-oriented design, and discloses a software component that controls the flow of data between an input device and an output device. It is not a thing. Therefore, even in the case where a software component corresponding to each input / output device is created by applying the invention disclosed in Patent Document 2 in a multi-function machine equipped with a large number of input / output devices, each input / output device is provided. Due to differences in processing speed of devices and differences in data units and data formats to be processed, it is not easy to efficiently control the data flow between devices.

これらのことから、複合機に搭載されるアプリケーションのストリーム制御処理をいかにして効率よく実現するかが大きな課題となっている。なお、かかる課題は複合機についてのみ生じるものではなく、たとえば、複数の入出力デバイスを有し、各入力デバイスから各出力デバイスへのデータの流れを制御するストリーム制御装置を形成するような場合にも同様に生ずる課題である。   For these reasons, how to efficiently realize the stream control processing of the application installed in the multifunction peripheral has become a big issue. Note that such a problem does not arise only for the multifunction peripheral. For example, when a stream control device that has a plurality of input / output devices and controls the flow of data from each input device to each output device is formed. Is a similar problem.

本発明は、上述した従来技術による問題点を解消するためになされたものであり、ストリーム制御処理を効率よく実現することができるストリーム制御プログラムおよび画像形成装置を提供することを目的とする。   SUMMARY An advantage of some aspects of the invention is that it provides a stream control program and an image forming apparatus capable of efficiently realizing stream control processing.

上述した課題を解決し、目的を達成するために、請求項1の発明にかかるストリーム制御プログラムは、入力デバイスおよび出力デバイスを有し、前記入力デバイスから入力したデータを加工して前記出力デバイスに出力するデータ加工装置に搭載され、利用者により選択された入力デバイスおよび出力デバイス間のデータの流れを制御するストリーム制御プログラムであって、各入力デバイスに対応し、入力デバイスが出力する所定形式のデータを所定の大きさの単位入力データとして複数個保持可能な入力バッファ手段と、各出力デバイスに対応し、出力デバイスへ入力する所定形式のデータを所定の大きさの単位出力データとして複数個保持可能な出力バッファ手段と、前記入力バッファ手段が保持する単位入力データを取得し、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納するキャリア手段と、してコンピュータを機能させ、前記入力バッファ手段は、前記単位入力データに対応する荷物手段を生成し、前記荷物手段は、前記入力バッファ手段が保持する前記単位入力データの個数が、前記入力デバイスの処理速度に基づく所定数に達したか否かを判断し、前記単位入力データの個数が前記所定数に達した場合に、前記荷物手段が生成された旨を前記キャリア手段に通知することを特徴とする。 In order to solve the above-described problems and achieve the object, a stream control program according to the invention of claim 1 includes an input device and an output device, processes data input from the input device, and outputs the processed data to the output device. A stream control program that is mounted on an output data processing apparatus and that controls the flow of data between an input device and an output device selected by a user. The stream control program corresponds to each input device and has a predetermined format output by the input device. Input buffer means capable of holding a plurality of data as unit input data of a predetermined size, and holding a plurality of data of a predetermined format input to the output device corresponding to each output device as unit output data of a predetermined size Possible output buffer means and unit input data held by the input buffer means are obtained, and the unit A carrier means for converting input data into the unit output data and storing it in the output buffer means, causing the computer to function; the input buffer means generates a luggage means corresponding to the unit input data; and The means determines whether the number of unit input data held by the input buffer means has reached a predetermined number based on the processing speed of the input device, and the number of unit input data reaches the predetermined number. In this case, the carrier means is notified that the package means has been generated.

また、請求項2の発明にかかるストリーム制御プログラムは、請求項1の発明において、前記キャリア手段は、前記入力バッファ手段が保持する前記単位入力データの個数が前記所定数に達したことにより前記荷物手段が生成された旨を通知された場合に、該単位入力データの取得を開始し、取得した該単位入力データの個数が前記所定数に達したならば、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納することを特徴とする。 Further, the stream control program according to the invention of claim 2 is the invention of claim 1, wherein the carrier means, the cargo by the number of the unit input data by the input buffer means is held reaches the predetermined number If the unit is notified that are generated, the unit starts the acquisition of input data, acquired the unit if the number of the input data has reached the predetermined number, the unit said input data unit output data And is stored in the output buffer means.

また、請求項3の発明にかかるストリーム制御プログラムは、請求項1または2の発明において、前記データの流れごとに生成されるストリーム手段をさらに備え、前記ストリーム手段は、1または複数の前記キャリア手段を生成して管理し、前記キャリア手段は、前記入力ステーション手段が保持する前記単位入力データを前記単位出力データに変換して前記出力ステーション手段に格納することを特徴とする。   A stream control program according to a third aspect of the present invention is the stream control program according to the first or second aspect, further comprising a stream means generated for each data flow, wherein the stream means includes one or a plurality of the carrier means. The carrier means converts the unit input data held by the input station means into the unit output data and stores it in the output station means.

また、請求項4の発明にかかるストリーム制御プログラムは、請求項3の発明において、前記単位入力データに対応する荷物手段をさらに備え、前記キャリア手段は、前記荷物手段を前記入力ステーション手段から取得し、前記荷物手段は、前記キャリア手段の指示により、前記単位入力データを前記単位出力データに変換し、前記キャリア手段は、変換後の荷物手段を前記出力ステーション手段に格納することを特徴とする。   The stream control program according to a fourth aspect of the present invention is the stream control program according to the third aspect of the present invention, further comprising a package means corresponding to the unit input data, wherein the carrier means acquires the package means from the input station means. The cargo means converts the unit input data into the unit output data in accordance with an instruction from the carrier means, and the carrier means stores the converted luggage means in the output station means.

また、請求項5の発明にかかるストリーム制御プログラムは、請求項4の発明において、前記荷物手段は、前記単位入力データから前記単位出力データへの変換情報を保持し、該変換情報に基づいてデータ変換の必要性を判定したうえで、データ変換が必要であると判定した場合には、データ変換をおこなうことを特徴とする。   The stream control program according to a fifth aspect of the present invention is the stream control program according to the fourth aspect of the present invention, wherein the luggage means holds conversion information from the unit input data to the unit output data, and data based on the conversion information. After determining the necessity of conversion, if it is determined that data conversion is necessary, data conversion is performed.

また、請求項6の発明にかかるストリーム制御プログラムは、請求項3、4または5の発明において、前記ストリーム手段は、前記キャリア手段が前記出力ステーション手段へのデータ格納を完了した後に次のキャリア手段を生成する同期動作と、前記データ格納の完了を待ち合わせることなく次のキャリア手段を生成する並行動作とを切替える動作情報を保持し、該動作情報に基づいて前記キャリア手段の生成をおこなうことを特徴とする。   A stream control program according to a sixth aspect of the present invention is the stream control program according to the third, fourth, or fifth aspect, wherein the stream means is the next carrier means after the carrier means completes data storage in the output station means. Operation information for switching between a synchronous operation for generating data and a parallel operation for generating the next carrier means without waiting for completion of the data storage, and the carrier means is generated based on the operation information. And

また、請求項7の発明にかかるストリーム制御プログラムは、請求項1〜6の発明において、前記入力ステーション手段と前記出力ステーション手段との組合せからなる区間の使用可否状態を保持し、該使用可否状態を前記キャリア手段に通知または応答する区間手段をさらに備えたことを特徴とする。   A stream control program according to a seventh aspect of the present invention is the stream control program according to the first to sixth aspects of the present invention, which holds the availability status of a section formed by a combination of the input station means and the output station means, and the availability status Is further provided with section means for notifying or responding to the carrier means.

また、請求項8の発明にかかる画像形成装置は、利用者により選択された入力デバイスおよび出力デバイス間のデータの流れを制御する画像形成装置であって、各入力デバイスに対応し、入力デバイスが出力する所定形式のデータを所定の大きさの単位入力データとして複数個保持可能な入力バッファ手段と、各出力デバイスに対応し、出力デバイスへ入力する所定形式のデータを所定の大きさの単位出力データとして複数個保持可能な出力バッファ手段と、前記入力バッファ手段が保持する単位入力データを取得し、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納するキャリア手段と、を備え、前記入力バッファ手段は、前記単位入力データに対応する荷物手段を生成し、前記荷物手段は、前記入力バッファ手段が保持する前記単位入力データの個数が、前記入力デバイスの処理速度に基づく所定数に達したか否かを判断し、前記単位入力データの個数が前記所定数に達した場合に、前記荷物手段が生成された旨を前記キャリア手段に通知することを特徴とする。 An image forming apparatus according to an eighth aspect of the present invention is an image forming apparatus that controls a data flow between an input device and an output device selected by a user, and the input device corresponds to each input device. Input buffer means capable of holding a plurality of data of a predetermined format to be output as unit input data of a predetermined size, and unit output of a predetermined size corresponding to each output device and data of a predetermined format input to the output device Output buffer means capable of holding a plurality of data, carrier means for acquiring unit input data held by the input buffer means, converting the unit input data into the unit output data, and storing the unit input data in the output buffer means; wherein the input buffer means generates a load means corresponding to the unit input data, the cargo unit, said input buffer When the number of the unit input data means is held, it is determined whether or not has reached a predetermined number based on the processing speed of the input device, the number of the unit input data has reached the predetermined number, the cargo The carrier means is notified that the means has been generated.

請求項1にかかるストリーム制御プログラムによれば、各入力デバイスに対応し、入力デバイスが出力する所定形式のデータを所定の大きさの単位入力データとして複数個保持可能な入力バッファ手段と、各出力デバイスに対応し、出力デバイスへ入力する所定形式のデータを所定の大きさの単位出力データとして複数個保持可能な出力バッファ手段と、入力バッファ手段が保持する単位入力データを取得し、単位入力データを単位出力データに変換して出力バッファ手段に格納するキャリア手段としてコンピュータを機能させるよう構成したので、入力デバイスおよび出力デバイスの処理速度の差異、取り扱うデータ形式の差異および取り扱うデータ単位の差異を吸収でき各入出力デバイスを均一に取り扱うことにより、効率的かつ信頼性の高いストリーム制御処理を提供することができるという効果を奏する。   According to the stream control program of claim 1, the input buffer means corresponding to each input device and capable of holding a plurality of data of a predetermined format output by the input device as unit input data of a predetermined size, and each output Corresponding to the device, the output buffer means capable of holding a plurality of data in a predetermined format to be input to the output device as unit output data of a predetermined size, and acquiring the unit input data held by the input buffer means to obtain the unit input data Since the computer is made to function as a carrier means for converting data into unit output data and storing it in the output buffer means, it absorbs differences in processing speed of input devices and output devices, differences in data formats handled, and differences in data units handled. Efficient and reliable by handling each input / output device uniformly An effect that it is possible to provide a high stream control process.

また、請求項2にかかるストリーム制御プログラムによれば、キャリア手段は、入力バッファ手段が保持する単位入力データの個数が所定数に達したならば、単位入力データの取得を開始し、取得した単位入力データの個数が所定数に達したならば、単位入力データを単位出力データに変換して出力バッファ手段に格納するよう構成したので、取り扱うデータ形式の差異および取り扱うデータ単位の差異を吸収できるという効果を奏する。   According to the stream control program of claim 2, the carrier means starts acquiring the unit input data when the number of unit input data held by the input buffer means reaches a predetermined number. When the number of input data reaches a predetermined number, the unit input data is converted into unit output data and stored in the output buffer means, so that the difference in the data format handled and the difference in the data unit handled can be absorbed. There is an effect.

また、請求項3にかかるストリーム制御プログラムによれば、データの流れごとに生成されるストリーム手段をさらに備え、ストリーム手段は、1または複数のキャリア手段を生成して管理し、キャリア手段は、入力ステーション手段が保持する単位入力データを単位出力データに変換して出力ステーション手段に格納するよう構成したので、ソフトウェア開発者やソフトウェア保守要員が、ストリーム部の構成と役割を容易に把握することがでるとともに、各入出力デバイスを均一に取り扱うことにより効率的かつ信頼性の高いストリーム制御処理をおこなうことができるという効果を奏する。   The stream control program according to claim 3 further includes stream means generated for each data flow, wherein the stream means generates and manages one or more carrier means, and the carrier means receives the input. Since the unit input data held by the station means is converted into unit output data and stored in the output station means, software developers and software maintenance personnel can easily grasp the structure and role of the stream section. In addition, the stream control process can be performed efficiently and reliably by handling each input / output device uniformly.

また、請求項4にかかるストリーム制御プログラムによれば、単位入力データに対応する荷物手段をさらに備え、キャリア手段は、荷物手段を入力ステーション手段から取得し、荷物手段は、キャリア手段の指示により、単位入力データを単位出力データに変換し、キャリア手段は、変換後の荷物手段を出力ステーション手段に格納するよう構成したので、ソフトウェア開発者やソフトウェア保守要員が、ストリーム部の構成と役割を容易に把握することがでるとともに、取り扱うデータ形式の差異および取り扱うデータ単位の差異を吸収できるという効果を奏する。   Further, according to the stream control program of claim 4, further comprising luggage means corresponding to the unit input data, the carrier means obtains the luggage means from the input station means, and the luggage means is instructed by the carrier means. Unit input data is converted into unit output data, and the carrier means is configured to store the converted luggage means in the output station means, so that software developers and software maintenance personnel can easily configure the stream section and its role. As well as being able to grasp, it is possible to absorb differences in handled data formats and handled data units.

また、請求項5にかかるストリーム制御プログラムによれば、荷物手段は、単位入力データから単位出力データへの変換情報を保持し、変換情報に基づいてデータ変換の必要性を判定したうえで、データ変換が必要であると判定した場合には、データ変換をおこなうよう構成したので、ソフトウェア開発者やソフトウェア保守要員が、ストリーム部の構成と役割を容易に把握することがでるとともに、効率的なストリーム制御処理をおこなうことができるという効果を奏する。   According to the stream control program of the fifth aspect, the parcel means holds the conversion information from the unit input data to the unit output data, and determines the necessity of data conversion based on the conversion information. When it is determined that conversion is necessary, data conversion is performed so that software developers and software maintenance personnel can easily grasp the configuration and role of the stream part, and an efficient stream There exists an effect that control processing can be performed.

また、請求項6にかかるストリーム制御プログラムによれば、ストリーム手段は、キャリア手段が出力ステーション手段へのデータ格納を完了した後に次のキャリア手段を生成する同期動作と、データ格納の完了を待ち合わせることなく次のキャリア手段を生成する並行動作とを切替える動作情報を保持し、動作情報に基づいてキャリア手段の生成をおこなうよう構成したので、ソフトウェア開発者やソフトウェア保守要員が、ストリーム部の構成と役割を容易に把握することがでるとともに、入力デバイスおよび出力デバイスの処理速度の差異を吸収して効率的かつ信頼性の高いストリーム制御処理をおこなうことができるという効果を奏する。   According to the stream control program of claim 6, the stream means waits for the synchronization operation for generating the next carrier means after the carrier means completes the data storage in the output station means and the completion of the data storage. Since the operation information for switching to the parallel operation for generating the next carrier means is held, and the carrier means is generated based on the operation information, the software developer and software maintenance personnel are responsible for the structure and role of the stream section. As a result, it is possible to easily grasp the difference between the processing speeds of the input device and the output device, and to perform efficient and reliable stream control processing.

また、請求項7にかかるストリーム制御プログラムによれば、入力ステーション手段と出力ステーション手段との組合せからなる区間の使用可否状態を保持し、使用可否状態をキャリア手段に通知または応答する区間手段をさらに備えるよう構成したので、ソフトウェア開発者やソフトウェア保守要員が、ストリーム部の構成と役割を容易に把握することがでるとともに、入力デバイスおよび出力デバイスの状態に応じてストリーム制御処理をおこなうことができるという効果を奏する。   According to the stream control program of the seventh aspect of the present invention, there is further provided section means for holding the availability state of the section composed of the combination of the input station means and the output station means and notifying or responding to the carrier means of the availability state The software developer and software maintenance personnel can easily understand the configuration and role of the stream unit, and can perform stream control processing according to the status of the input device and output device. There is an effect.

また、請求項8にかかる画像形成装置によれば、各入力デバイスに対応し、入力デバイスが出力する所定形式のデータを所定の大きさの単位入力データとして複数個保持可能な入力バッファ手段と、各出力デバイスに対応し、出力デバイスへ入力する所定形式のデータを所定の大きさの単位出力データとして複数個保持可能な出力バッファ手段と、入力バッファ手段が保持する単位入力データを取得し、単位入力データを単位出力データに変換して出力バッファ手段に格納するキャリア手段とを備えるよう構成したので、入力デバイスおよび出力デバイスの処理速度の差異、取り扱うデータ形式の差異および取り扱うデータ単位の差異を吸収でき各入出力デバイスを均一に取り扱うことにより、効率的かつ信頼性の高いストリーム制御処理を提供することができるという効果を奏する。   According to the image forming apparatus of the eighth aspect of the present invention, an input buffer unit corresponding to each input device and capable of holding a plurality of data in a predetermined format output by the input device as unit input data of a predetermined size; Corresponding to each output device, output buffer means capable of holding a plurality of data in a predetermined format input to the output device as unit output data of a predetermined size, and acquiring unit input data held by the input buffer means Since it comprises carrier means for converting input data into unit output data and storing it in output buffer means, it absorbs differences in processing speed of input devices and output devices, differences in data formats handled, and differences in data units handled Efficient and reliable stream control processing by handling each input / output device uniformly There is an effect that can be provided.

以下に添付図面を参照して、この発明にかかるストリーム制御プログラム、およびこのプログラムを実行させるためのコンピュータを含んだ画像形成装置の最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、ストリーム制御処理をおこなう各種装置に適用することができる。   Exemplary embodiments of a stream control program according to the present invention and an image forming apparatus including a computer for executing the program will be described below in detail with reference to the accompanying drawings. In the present embodiment, the case where the present invention is applied to an image forming apparatus will be described. However, the present invention is not limited to this, and can be applied to various apparatuses that perform stream control processing.

まず、本実施の形態に係る画像形成装置(以下「複合機」と言う)1の概要について図1、図2、図3、図12および図13を用いて説明する。図1は、本実施の形態に係る複合機1を取り巻くネットワーク環境を説明するためのネットワーク図であり、図2は、図1に示した複合機1のハードウェア構成を示すブロック図であり、図3は、図1に示した複合機1のソフトウェアとハードウェアの関係を説明するための説明図であり、図12は、複合機1に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図13は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。   First, an outline of an image forming apparatus (hereinafter referred to as “multifunction machine”) 1 according to the present embodiment will be described with reference to FIGS. 1, 2, 3, 12, and 13. FIG. FIG. 1 is a network diagram for explaining a network environment surrounding the MFP 1 according to the present embodiment, and FIG. 2 is a block diagram showing a hardware configuration of the MFP 1 shown in FIG. FIG. 3 is an explanatory diagram for explaining the relationship between software and hardware of the multifunction device 1 shown in FIG. 1, and FIG. 12 is an explanation for explaining the transition of the software configuration installed in the multifunction device 1. FIG. 13 is an explanatory diagram for explaining the relationship between software and hardware of a conventional multifunction machine.

図1に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたパーソナルコンピュータ(PC)などの機器は、LAN(Local Area Network)などのネットワークに接続され、相互に通信することが通常となった。たとえば、同図に示したように、かかるネットワークには、クライアントPC、SMTP(Simple Mail Transfer Protocol)サーバ、FTP(File Transfer Protocol)サーバ、サーバPCなどが接続され、電子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。   As shown in FIG. 1, with the recent progress of networking, devices such as personal computers (PCs) provided in offices are connected to a network such as a LAN (Local Area Network) and can communicate with each other. It became normal. For example, as shown in the figure, such a network is connected to a client PC, an SMTP (Simple Mail Transfer Protocol) server, an FTP (File Transfer Protocol) server, a server PC, etc., for sending and receiving e-mails and transferring files. The modem-connected delivery server can communicate with a fax machine outside the office.

このようなネットワーク化の進展に伴い、複合機1もかかるネットワークに接続され、PC等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えることができるようになった。   With the progress of such networking, the multifunction device 1 is also connected to such a network and can communicate with a device such as a PC. By incorporating a storage device such as a hard disk, a so-called network multifunction device can be obtained. It has evolved to meet various user needs.

たとえば、複合機1は、通常のコピー機能に加えて、クライアントPCからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントPCからのファックス要求により文書データ等をサーバPCに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有するようになった。   For example, in addition to the normal copy function, the multi function device 1 has a printer function for printing document data or the like in response to a print request from the client PC, and a modem connected to the server PC for document data or the like in response to a fax request from the client PC. It has a fax function that sends it to fax machines in other offices via the Internet, and a storage function that stores received fax documents and copy documents on a built-in hard disk.

こうして複合化とネットワーク化の進展により必要となった多くの機能を実現するため、複合機1に搭載されるソフトウェアは、規模が大きく、複雑なものとなっている。そして、それにともなって、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。   In this way, in order to realize many functions required by the progress of compounding and networking, the software installed in the compound machine 1 is large and complicated. Along with this, the man-hours for developing and maintaining such software have also increased significantly.

図2は、かかる複合機1のハードウェア構成を示すブロック図である。同図に示すように、この複合機1は、コントローラ10とエンジン部(Engine)60とをPCI(Peripheral Component Interconnect)バスで接続した構成となる。コントローラ10は、複合機1全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部60は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。   FIG. 2 is a block diagram illustrating a hardware configuration of the multifunction machine 1. As shown in the figure, the multifunction machine 1 has a configuration in which a controller 10 and an engine unit (Engine) 60 are connected by a PCI (Peripheral Component Interconnect) bus. The controller 10 is a controller that controls the entire multifunction device 1 and controls drawing, communication, and input from an operation unit (not shown). The engine unit 60 is a printer engine that can be connected to a PCI bus, and is, for example, a monochrome plotter, a one-drum color plotter, a four-drum color plotter, a scanner, or a fax unit. The engine unit 60 includes an image processing part such as error diffusion and gamma conversion in addition to a so-called engine part such as a plotter.

コントローラ10は、CPU11と、ノースブリッジ(NB)13と、システムメモリ(MEM−P)12と、サウスブリッジ(SB)14と、ローカルメモリ(MEM−C)17と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(HDD)18とを有し、ノースブリッジ(NB)13とASIC16との間をAGP(Accelerated Graphics Port)バス15で接続した構成となる。また、MEM−P12は、ROM(Read Only Memory)12aと、RAM(Random Access Memory)12bとをさらに有する。   The controller 10 includes a CPU 11, a north bridge (NB) 13, a system memory (MEM-P) 12, a south bridge (SB) 14, a local memory (MEM-C) 17, and an ASIC (Application Specific Integrated Circuit). 16 and a hard disk drive (HDD) 18, and the north bridge (NB) 13 and the ASIC 16 are connected by an AGP (Accelerated Graphics Port) bus 15. The MEM-P 12 further includes a ROM (Read Only Memory) 12a and a RAM (Random Access Memory) 12b.

CPU11は、複合機1の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。   The CPU 11 performs overall control of the multifunction machine 1 and includes a chip set including the NB 13, the MEM-P 12, and the SB 14, and is connected to other devices via the chip set.

NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。   The NB 13 is a bridge for connecting the CPU 11 to the MEM-P 12, SB 14, and AGP 15, and includes a memory controller that controls reading and writing to the MEM-P 12, a PCI master, and an AGP target.

MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。   The MEM-P 12 is a system memory used as a memory for storing programs and data, a memory for developing programs and data, a memory for drawing a printer, and the like, and includes a ROM 12a and a RAM 12b. The ROM 12a is a read-only memory used as a program / data storage memory, and the RAM 12b is a writable / readable memory used as a program / data development memory, a printer drawing memory, or the like.

SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。   The SB 14 is a bridge for connecting the NB 13 to a PCI device and peripheral devices. The SB 14 is connected to the NB 13 via a PCI bus, and a network interface (I / F) unit and the like are also connected to the PCI bus.

ASIC16は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP15、PCIバス、HDD18およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC16は、PCIターゲットおよびAGPマスタと、ASIC16の中核をなすアービタ(ARB)と、MEM−C17を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部60との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC16には、PCIバスを介してFCU(Fax Control Unit)30、USB(Universal Serial Bus)40、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース50が接続される。   The ASIC 16 is an IC (Integrated Circuit) for image processing applications having hardware elements for image processing, and has a role of a bridge for connecting the AGP 15, PCI bus, HDD 18 and MEM-C 17. The ASIC 16 includes a PCI target and an AGP master, an arbiter (ARB) that forms the core of the ASIC 16, a memory controller that controls the MEM-C 17, a plurality of DMACs (Direct Memory) that perform rotation of image data by hardware logic and the like. Access Controller) and a PCI unit that performs data transfer between the engine unit 60 via the PCI bus. An FCU (Fax Control Unit) 30, a USB (Universal Serial Bus) 40, and an IEEE 1394 (the Institute of Electrical and Electronics Engineers 1394) interface 50 are connected to the ASIC 16 via a PCI bus.

MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。   The MEM-C 17 is a local memory used as an image buffer for copying and a code buffer, and an HDD (Hard Disk Drive) 18 is a storage for storing image data, programs, font data, and forms. It is.

AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。   The AGP 15 is a bus interface for a graphics accelerator card that has been proposed to speed up graphics processing, and speeds up the graphics accelerator card by directly accessing the MEM-P 12 with high throughput. .

図3は、かかる複合機1のハードウェアおよびソフトウェアの構成を示した概念図であり、具体的には、後述する本実施の形態の特徴部分であるストリーム部113aを含む統合アプリケーション110と、ソフトウェア100およびハードウェア200の階層関係を示している。同図に示すように、ハードウェア200は、ハードウェアリソース201を有し、このハードウェアリソース201は、スキャナ201a、プロッタ201b、HDD(Hard Disk Drive)201c、ネットワーク201dおよびその他のリソース201eを有する。なお、その他のリソース201eは、201a〜201d以外のハードウェアリソース201のことであり、たとえば、操作パネルなどの入出力デバイスを示す。   FIG. 3 is a conceptual diagram showing the hardware and software configurations of the multi-function peripheral 1, and specifically, an integrated application 110 including a stream unit 113a which is a characteristic part of the present embodiment to be described later, and software 100 shows a hierarchical relationship between 100 and hardware 200. As shown in the figure, the hardware 200 includes a hardware resource 201. The hardware resource 201 includes a scanner 201a, a plotter 201b, an HDD (Hard Disk Drive) 201c, a network 201d, and other resources 201e. . The other resource 201e is a hardware resource 201 other than 201a to 201d, and indicates an input / output device such as an operation panel, for example.

また、かかるハードウェア200に搭載されるソフトウェア100は階層化されており、オペレーティングシステム103の上層にはサービス層102が構築され、このサービス層102の上層にはアプリケーション層103が構築されている。そして、サービス層102は、各ハードウェアリソース(201a〜201e)を制御するドライバーに相当する、スキャナ制御102部a、プロッタ制御部102b、蓄積制御部102c、配信/メール送受信制御部102d、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gを有する。   The software 100 installed in the hardware 200 is hierarchized, and a service layer 102 is constructed above the operating system 103, and an application layer 103 is constructed above the service layer 102. The service layer 102 corresponds to a driver that controls each hardware resource (201a to 201e). The scanner control unit 102a, plotter control unit 102b, storage control unit 102c, distribution / mail transmission / reception control unit 102d, FAX transmission / reception It has a control unit 102e, a network communication control unit 102f, and another control unit 102g.

ここで、図3に示したソフトウェア100が、かかる階層構造をとるに至った経緯について、図12および図13を用いて説明する。図12は、複合機1に搭載されるソフトウェア構成の変遷を示す説明図である。図12のサービス層分離前アプリケーション501に示すように、多機能化した複合機1に搭載されるソフトウェアは、コピーアプリケーション、FAXアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図3に示したオペレーティングシステム103上で動作していた。   Here, how the software 100 shown in FIG. 3 has taken such a hierarchical structure will be described with reference to FIGS. 12 and 13. FIG. 12 is an explanatory diagram showing the transition of the software configuration installed in the multifunction machine 1. As shown in the pre-service layer separation application 501 in FIG. 12, the software installed in the multifunctional multifunction device 1 is created as an independent application for each function such as a copy application, a FAX application, and a scanner application. It was operating on the operating system 103 shown.

しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー(サービス層102)を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。   However, since these applications include a driver (service layer 102) that controls hardware resources, duplicate processing exists in each application. As a result, the scale of each application has become large.

そこで、図12のサービス層分離後アプリケーション502に示すように、サービス層分離前アプリケーション501のサービス層102相当部分を括りだしサービス層102とするとともに、各アプリケーションは、このサービス層102の上層であるアプリケーション層101に構築する構成とした。かかる階層化構成をとることにより、各アプリケーションはスリム化され開発労力も軽減された。   Therefore, as shown in an application 502 after service layer separation in FIG. 12, a portion corresponding to the service layer 102 of the application 501 before service layer separation is bundled into a service layer 102, and each application is an upper layer of the service layer 102. The application layer 101 is constructed. By adopting such a hierarchical structure, each application has been streamlined and development effort has been reduced.

しかしながら、複合機1のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層101の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部102aや蓄積制御部102cといったドライバーと通信をおこなう処理や、各種機能が取り扱うデータの流れを制御するストリーム制御などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。   However, as the networking and multi-functionalization of the multifunction machine 1 further advance, it has become a problem that a common processing part exists in each application. Specifically, each application of the application layer 101, for example, a copy application or a scanner application, performs processing for communicating with a driver such as the scanner control unit 102a or the accumulation control unit 102c, and the flow of data handled by various functions. Similar processing such as stream control to be controlled was included inside. As described above, when each application has the same processing, the development scale of each application is increased, and the improvement scale of each application with respect to the specification change of the service layer is increased.

この問題を解決するため、図12の共通ルーチン分離アプリケーション503に示すように、かかる同様な処理(共通処理部分)を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。   In order to solve this problem, as shown in the common routine separation application 503 in FIG. 12, it has been considered that such similar processing (common processing portion) is bundled as a common routine. However, since such a common routine is intended to share slightly different processing in each application, the processing inside the common routine becomes complicated. For example, when adding a new application such as a printer application, it is necessary to modify the common routine in order to adapt to the new application.

しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。   However, since the internal processing of the common routine is complicated, it became difficult for repair personnel to grasp the processing, and there were concerns about the increase in the scale of repair and the impact on other applications due to repair mistakes.

そこで、図12のオブジェクト指向アプリケーション504に示すように、オブジェクト指向による設計手法(オブジェクトモデリング)により、かかる複数のアプリケーションを、統合アプリケーション110に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション110を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。   Therefore, as shown in the object-oriented application 504 in FIG. 12, the plurality of applications are integrated into the integrated application 110 by an object-oriented design method (object modeling). Specifically, a common processing part of each application is extracted as an object model, and the integrated application 110 is configured from the collection of object models. The functions such as the conventional copy function and scanner function are realized by the cooperative relationship of the object model.

このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。   By adopting such a configuration, for example, addition of a new function such as a printer function can be dealt with by subclassing a class belonging to the object model. For this reason, a repair part becomes clear and the influence on other functions by repair can be made small. In addition, the object modeling program is easier to grasp the process than the conventional procedural program, so it is easier for the repair staff to grasp the process, reducing the scale of the repair, and other applications due to mistakes in the repair. The influence on can be reduced.

図13は、図12に示したサービス層分離後アプリケーション502の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層102の各ドライバーの関係を示した説明図である。同図に示すように、アプリケーション層101は、コピーアプリケーション120、スキャナアプリケーション130、ファックスアプリケーション140およびプリンタアプリケーション150を有する。   FIG. 13 is an explanatory diagram showing the configuration of a conventional application at the stage of the service layer separated application 502 shown in FIG. 12 and the relationship between the application and each driver of the service layer 102. As shown in the figure, the application layer 101 includes a copy application 120, a scanner application 130, a fax application 140, and a printer application 150.

たとえば、コピーアプリケーション120は、コピー機能を実現するために、スキャナ制御部102a、プロッタ制御部102b、蓄積制御部102cおよびその他の制御部102gとデータの送受信をおこなう。また、ファックスアプリケーション140は、ファックス機能を実現するために、プロッタ制御部102b、蓄積制御部102c、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gとデータの送受信をおこなう。このように、アプリケーション層101の各アプリケーションとサービス層102の各ドライバー間の通信は、複雑なものとなっていた。   For example, the copy application 120 transmits / receives data to / from the scanner control unit 102a, the plotter control unit 102b, the accumulation control unit 102c, and the other control unit 102g in order to realize the copy function. In addition, the fax application 140 performs data transmission / reception with the plotter control unit 102b, the accumulation control unit 102c, the FAX transmission / reception control unit 102e, the network communication control unit 102f, and the other control unit 102g in order to realize the fax function. As described above, communication between each application in the application layer 101 and each driver in the service layer 102 is complicated.

図3の説明に戻ると、上述したオブジェクトモデリングにより、アプリケーション層101に存在した複数のアプリケーションは、統合アプリケーション110に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション110を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層101のアプリケーションと、サービス層102の各ドライバー間の通信は、図13と比較して単純になっている。   Returning to the description of FIG. 3, a plurality of applications existing in the application layer 101 are integrated into the integrated application 110 by the object modeling described above. The communication processing with each driver, which has been performed by each application overlappingly, is configured to be performed by a predetermined object model that configures the integrated application 110, so that the application of the application layer 101 and the service layer 102 of Communication between the drivers is simpler than that shown in FIG.

次に、統合アプリケーション110の内部構成について説明する。図4は、統合アプリケーション110の内部構成を示すブロック図である。同図に示すように、統合アプリケーション110は、操作系サブシステム111と、管理系サブシステム112と、実行系サブシステム113とを有する。   Next, the internal configuration of the integrated application 110 will be described. FIG. 4 is a block diagram showing the internal configuration of the integrated application 110. As shown in the figure, the integrated application 110 includes an operation system subsystem 111, a management system subsystem 112, and an execution system subsystem 113.

操作系サブシステム111は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム111は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理をおこなう。   The operation system subsystem 111 is a software group in charge of man-machine interface. Specifically, the operation subsystem 111 performs a process for accepting a user request, a process for instructing execution of the request, and a process for providing the user with information about the execution status and execution result of the request. .

管理系サブシステム112は、画像形成装置1の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム112は、ハードウェアリソース201およびこのハードウェアリソース201が保持するデータ状態を管理するサービスをおこなう。   The management subsystem 112 is a software group that manages the resources of the image forming apparatus 1. Specifically, the management subsystem 112 performs a service for managing the hardware resource 201 and the data state held by the hardware resource 201.

実行系サブシステム113は、ユーザからの要求の実行を担当するソフトウェア群である。具体的には、この実行系サブシステム113は、コピー要求がなされた場合には、原稿の読み取りから成果物の出力までの処理をおこなう。   The execution subsystem 113 is a software group in charge of executing a request from a user. Specifically, the execution subsystem 113 performs processing from reading a document to outputting a product when a copy request is made.

操作系サブシステム111、管理系サブシステム112および実行系サブシステム113は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション110全体として複合機1に必要とされるサービスの提供をおこなう。   The operation system subsystem 111, the management system subsystem 112, and the execution system subsystem 113 mutually request processing as necessary and send the results. In this way, the subsystems cooperate to provide services required for the multifunction device 1 as the integrated application 110 as a whole.

そして、実行系サブシステム113は、本実施の形態の特徴部分であるストリーム部113aと実行制御部113bとを有する。このストリーム部113aは、実行制御部113bからデータの流れの制御に関する要求を受付け、入出力デバイス間の処理速度の差異や、取り扱うデータ形式の差異といった各入出力デバイス固有の性質に基づく差異を吸収し、入力デバイスから出力デバイスへのデータの流れを制御する処理(ストリーム制御処理)をおこなう。   The execution subsystem 113 includes a stream unit 113a and an execution control unit 113b, which are features of the present embodiment. The stream unit 113a accepts a request for data flow control from the execution control unit 113b, and absorbs differences based on characteristics unique to each input / output device such as a difference in processing speed between input / output devices and a difference in data format to be handled. Then, processing for controlling the flow of data from the input device to the output device (stream control processing) is performed.

図5は、図4に示した各サブシステムを、UML(Unified Modeling Language)のクラス図(UMLクラス図)に置き換えた図である。ここで、UMLとは、OMG(Object Management Group)が仕様を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このUMLは、オブジェクト指向によるソフトウェアの設計において広く用いられている。   FIG. 5 is a diagram in which each subsystem shown in FIG. 4 is replaced with a UML (Unified Modeling Language) class diagram (UML class diagram). Here, UML is a system modeling language for which specifications are formulated by OMG (Object Management Group), and defines a notation for describing the results of modeling. This UML is widely used in the design of object-oriented software.

図5に示すように、統合アプリケーション110は複数のパッケージを有し、また、この統合アプリケーション110自体もひとつのパッケージとなっている。ここで、パッケージとはUMLモデルの各構成要素(シンボル)をグループ化したものであり、左上にタブのついたフォルダの形をしたシンボルで表現される。また、各パッケージを相互に結ぶ直線は、各パッケージ間に処理依頼などの関連があることを示している。   As shown in FIG. 5, the integrated application 110 has a plurality of packages, and the integrated application 110 itself is one package. Here, the package is a group of components (symbols) of the UML model, and is expressed by a symbol in the form of a folder with a tab on the upper left. A straight line connecting the packages indicates that there is a relationship such as a processing request between the packages.

図5に示したように、統合アプリケーション110は、操作系サブシステム111、管理系サブシステム112および実行系サブシステム113の3つのパッケージを内部に有するパッケージである。さらに、実行系サブシステム113は、本実施の形態の特徴部分であるストリーム部113aと実行制御部113bとを内部に有するパッケージである。そして、操作系サブシステム111、管理系サブシステム112および実行系サブシステム113を相互に結ぶ直線は、各パッケージ間に処理依頼(たとえば、メッセージ送受信)などの関連があることを示している。なお、操作系サブシステム111、管理系サブシステム112および実行系サブシステム113のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すUMLのシンボルである。   As shown in FIG. 5, the integrated application 110 is a package having three packages of an operation subsystem 111, a management subsystem 112, and an execution subsystem 113 inside. Further, the execution subsystem 113 is a package having therein a stream unit 113a and an execution control unit 113b, which are characteristic parts of the present embodiment. A straight line connecting the operation subsystem 111, the management subsystem 112, and the execution subsystem 113 indicates that there is a relationship such as a processing request (for example, message transmission / reception) between the packages. A symbol written at the right end of the tabs of the operation subsystem 111, the management subsystem 112, and the execution subsystem 113 is a UML symbol indicating that the package is a subsystem.

次に、本実施の形態の特徴部分であるストリーム部113aについて詳細に説明する。なお、このストリーム部113aは、オブジェクト指向に基づいて設計するにあたって、既存の処理を単純にオブジェクト化せず、機能追加や改修をより一層容易におこなうことができるようにオブジェクトモデルを構成した。かかるオブジェクトモデルの構成について図6〜図9を用いて説明しておく。   Next, the stream unit 113a which is a characteristic part of the present embodiment will be described in detail. In designing the stream unit 113a based on object orientation, an object model is configured so that existing processing is not simply converted into an object and functions can be added or modified more easily. The configuration of the object model will be described with reference to FIGS.

図6は、複合機1の操作パネル400の一例を示した図である。同図に示すように、かかる操作パネル400は、初期設定キー401、コピーキー402、コピーサーバーキー403、プリンタキー404、送信キー405、テンキー406、クリア/ストップキー407、スタートキー408、予熱キー409、リセットキー410および液晶タッチパネル420を有する。   FIG. 6 is a diagram illustrating an example of the operation panel 400 of the multifunction machine 1. As shown in the figure, the operation panel 400 includes an initial setting key 401, a copy key 402, a copy server key 403, a printer key 404, a transmission key 405, a ten key 406, a clear / stop key 407, a start key 408, a preheating key. 409, a reset key 410, and a liquid crystal touch panel 420.

たとえば、利用者が、複合機1に紙原稿をセットしてコピーキー402を押下してコピー処理を選択し、スタートキー408を押下したならば、スキャナ201aデバイスからプロッタ201bデバイスへのデータの流れが発生する。この場合、入力デバイスであるスキャナ201aデバイスと、出力デバイスであるプロッタ201bデバイスとは、処理速度、取り扱うデータ単位およびデータ形式が異なる。また、ネットワーク化の進展により、ネットワークを経由した複数の利用者が、複合機1にプリンタ処理やFAX送信などの指示を同時に与える場合には、複合機1内には、複数のデータの流れが存在することになる。これらのことから、かかるデータの流れ(ストリーム)の制御を効率良く、かつ、高い信頼性をもっておこなう必要がある。   For example, if the user sets a paper document in the multifunction machine 1 and presses the copy key 402 to select copy processing and presses the start key 408, the data flow from the scanner 201a device to the plotter 201b device Occurs. In this case, the scanner 201a device, which is an input device, and the plotter 201b device, which is an output device, differ in processing speed, data unit handled, and data format. In addition, when a plurality of users via the network simultaneously give instructions such as printer processing and FAX transmission to the multifunction device 1 due to progress of networking, a plurality of data flows in the multifunction device 1. Will exist. For these reasons, it is necessary to control such a data flow (stream) efficiently and with high reliability.

図7は、本実施の形態の特徴部分であるストリーム部113aの処理概要を説明するための説明図である。入力デバイスから出力デバイスへのデータの流れを制御する場合においては、入出力デバイス間の処理速度の差異や、取り扱うデータ単位あるいはデータ形式の差異といった各入出力デバイス固有の性質に基づく差異をいかにして吸収するかが問題となる。   FIG. 7 is an explanatory diagram for explaining the processing outline of the stream unit 113a, which is a characteristic part of the present embodiment. When controlling the flow of data from an input device to an output device, how to handle differences based on the unique characteristics of each input / output device, such as differences in processing speed between input / output devices and differences in data units or data formats handled. It becomes a problem whether to absorb it.

特に、多機能化に伴い多くの入出力デバイスを搭載するに至った複合機1においては、かかる問題は顕著である。すなわち、各入出力デバイスが取り扱うデータ形式やデータ単位はそれぞれ異なり、データ処理速度もそれぞれ異なるため、数多くの入出力デバイスについて、データ形式、データ単位およびデータ処理速度の差異をすべて吸収するようストリーム部113aを設計する必要がある。なお、図7に示す、「○」は、入力デバイスが生成する所定の大きさのデータをあらわし、「◇」は、出力デバイスに渡される(出力デバイスが消費する)所定の大きさのデータをあらわすこととする。   In particular, such a problem is remarkable in the multi-function device 1 which has been equipped with many input / output devices due to the increase in functionality. In other words, the data formats and data units handled by each input / output device are different, and the data processing speed is also different, so the stream unit absorbs all the differences in data format, data unit and data processing speed for many input / output devices. It is necessary to design 113a. In FIG. 7, “◯” represents data of a predetermined size generated by the input device, and “◇” represents data of a predetermined size passed to the output device (consumed by the output device). I will express it.

そこで、本実施の形態の特徴部分であるストリーム部113aは、各入力デバイスにそれぞれ対応する入力バッファと、各出力デバイスにそれぞれ対応する出力バッファを有する構成とするとともに、入力バッファから出力バッファへデータを運搬するキャリアを有する構成とした。入力バッファおよび出力バッファを有する構成とすることにより、入力デバイスと出力デバイスの処理速度が異なる場合であっても、各デバイスが取り扱うデータを一時的に保持することができるので、かかる処理速度の差異を吸収することができる。   Therefore, the stream unit 113a, which is a characteristic part of the present embodiment, is configured to have an input buffer corresponding to each input device and an output buffer corresponding to each output device, and data from the input buffer to the output buffer. It was set as the structure which has the carrier which conveys. By adopting a configuration having an input buffer and an output buffer, even if the processing speed of the input device and that of the output device are different, the data handled by each device can be temporarily stored. Can be absorbed.

同図では、入力デバイスの処理速度が、出力デバイスの処理速度よりも大きい場合を示しており、入力デバイスが生成したデータは、いったん入力バッファに保持され、適宜、キャリアに載せられて出力バッファに運搬される。すなわち、各入出力デバイスに対応するバッファを設けるとともに、入出力バッファ間を移動するキャリアの移動頻度および積載データ量を制御することとしたので、本実施の形態の特徴部分であるストリーム部113aは、さまざまな処理速度を有する入出力デバイスを均一に取り扱うことができる。   The figure shows the case where the processing speed of the input device is greater than the processing speed of the output device. The data generated by the input device is temporarily held in the input buffer, and is appropriately placed on the carrier and stored in the output buffer. Transported. That is, since the buffer corresponding to each input / output device is provided and the movement frequency and load data amount of the carrier moving between the input / output buffers are controlled, the stream unit 113a which is a characteristic part of the present embodiment is , Input / output devices having various processing speeds can be handled uniformly.

また、入力バッファから出力バッファへデータを運搬するキャリアは、キャリアに積載するデータのデータ形式の変換をおこなうこととしたので、入出力バッファ間のデータ形式の差異を吸収することができる。さらに、キャリアが一度に運搬するデータの個数を制御することとしたので、入出力バッファ間のデータ単位の差異を吸収することができる。このように、データ形式の差異およびデータ単位の差異をキャリアが吸収することとしたので、本実施の形態の特徴部分であるストリーム部113aは、さまざまなデータ単位およびデータ形式を処理対象とする入出力デバイスを均一に取り扱うことができる。   In addition, since the carrier that carries data from the input buffer to the output buffer performs the conversion of the data format of the data loaded on the carrier, the difference in the data format between the input and output buffers can be absorbed. Furthermore, since the number of data carried by the carrier at a time is controlled, the difference in data units between the input / output buffers can be absorbed. As described above, since the carrier absorbs the difference between the data formats and the difference between the data units, the stream unit 113a, which is a characteristic part of the present embodiment, can input various data units and data formats to be processed. The output device can be handled uniformly.

本実施の形態の特徴部分であるストリーム部113aは、上述したように、入力バッファ、出力バッファおよびキャリアを有する構成としたうえで、かかるストリーム部113aのオブジェクトモデリングをおこなった。オブジェクトモデリングをおこなうにあたっては、鉄道のモデルの隠喩(メタファ)により、ストリーム部113aをモデリングすることとした。かかるオブジェクトモデリングにより、並行したデータの流れの制御を高い信頼性をもっておこなうことができ、機能追加にも柔軟に対処できるストリーム処理の仕組みの提供が可能となることが予想される。   As described above, the stream unit 113a, which is a characteristic part of the present embodiment, has an input buffer, an output buffer, and a carrier, and performs object modeling of the stream unit 113a. In performing object modeling, the stream portion 113a is modeled by a metaphor of a railway model. With such object modeling, it is expected that a parallel data flow control can be performed with high reliability, and it is possible to provide a stream processing mechanism that can flexibly cope with function addition.

図8は、ストリーム部113aのオブジェクトモデリングの概要を説明するための説明図である。同図に示すように、鉄道のモデルにおいては、運搬対象となる「人」は、運搬手段である「電車」により、人が乗り物を待つ場所である「駅」から他の駅に運ばれる。そして、駅と駅を結ぶ線路にあたる「区間」には、区間の通行可否を示す「信号」が設けられ、運搬手段である「電車」の運行を制限する。そして、電車の動きを制御する「管制室」により、運搬手段である「電車」の運行がコントロールされ、複数の「電車」を用いて、駅から駅への人の運搬がおこなわれる。   FIG. 8 is an explanatory diagram for explaining an outline of object modeling of the stream unit 113a. As shown in the figure, in the railway model, a “person” to be transported is transported from a “station” where a person waits for a vehicle to another station by a “train” as a transport means. A “section” corresponding to a railway line connecting stations is provided with a “signal” indicating whether or not the section is allowed to pass, and restricts the operation of the “train” serving as a transportation means. The operation of the “train” as a transportation means is controlled by the “control room” that controls the movement of the train, and a plurality of “trains” are used to transport people from the station to the station.

かかる鉄道のモデルを、ストリーム部113aのモデルにあてはめると以下のようになる。すなわち、運搬対象となる「荷物」は、運搬手段である「キャリア」により、荷物がキャリアを待つ場所である「ステーション」から他のステーションに運ばれる。そして、ステーションとステーションを結ぶ線路にあたる「区間」には、区間の通行可否を示す「区間の状態」が設けられ、運搬手段である「キャリア」の運行を制限する。そして、キャリアの動きを制御する「ストリーム」により、運搬手段である「キャリア」の運行がコントロールされ、複数の「キャリア」を用いて、ステーションからステーションへの荷物の運搬がおこなわれる。   When such a railway model is applied to the model of the stream section 113a, the following is obtained. That is, the “package” to be transported is transported from the “station” where the package waits for the carrier to another station by the “carrier” which is the transport means. A “section” indicating whether or not the section is allowed is provided in the “section” corresponding to the line connecting the stations, and the operation of the “carrier” serving as the transportation means is restricted. Then, the operation of the “carrier” that is the transport means is controlled by the “stream” that controls the movement of the carrier, and the plurality of “carriers” are used to transport the cargo from the station to the station.

上述した、オブジェクトモデリングにより、本実施の形態の特徴部分であるストリーム部113aは、「荷物クラス」、「キャリアクラス」、「ステーションクラス」、「区間クラス」および「ストリームクラス」を有する構成とした。なお、入力デバイスおよび出力デバイスに対応させるため、「ステーションクラス」のサブクラスとして、「入力ステーションクラス」および「出力ステーションクラス」を設けた。   Through the above-described object modeling, the stream unit 113a, which is a characteristic part of the present embodiment, is configured to have “package class”, “carrier class”, “station class”, “section class”, and “stream class”. . In order to correspond to the input device and the output device, “input station class” and “output station class” are provided as subclasses of “station class”.

次に、ストリーム部113aを構成するクラスを実体化したオブジェクトと、入出力デバイスとの対応関係について説明する。図9は、ストリーム部113aのオブジェクト構成の概要を説明するための説明図である。同図に示すように、入力デバイスA〜Cおよび出力デバイスA〜Cがある場合には、入力デバイスと出力デバイスの組合せは、9通り存在することになる。   Next, a description will be given of a correspondence relationship between an object that materializes a class constituting the stream unit 113a and an input / output device. FIG. 9 is an explanatory diagram for explaining an outline of the object configuration of the stream unit 113a. As shown in the figure, when there are input devices A to C and output devices A to C, there are nine combinations of input devices and output devices.

この組合せの中から入力デバイスAおよび出力デバイスCの組合せが選択されると、入力デバイスAに対応する入力ステーションAオブジェクトと、出力デバイスCに対応する出力ステーションCオブジェクトが生成される。そして、入力ステーションAオブジェクトから出力ステーションCオブジェクトへのデータの運搬は、キャリアオブジェクトによりおこなわれる。なお、入力ステーションAと出力ステーションCとの組合せからなる区間ACオブジェクトは、入力ステーションAおよび出力ステーションCの組合せからなる区間の状態を保持することになる。   When a combination of the input device A and the output device C is selected from the combinations, an input station A object corresponding to the input device A and an output station C object corresponding to the output device C are generated. The data is transferred from the input station A object to the output station C object by the carrier object. The section AC object composed of the combination of the input station A and the output station C holds the state of the section composed of the combination of the input station A and the output station C.

図10は、上述したオブジェクトモデリングにより設計した、ストリーム部113aのクラス構成を示すUMLクラス図である。同図に示すように、ストリーム部113aは、入出力デバイス間のストリーム制御要求を受け付けるとともにデータの流れの状態を管理するストリームクラス310、入出力デバイス間のデータ運搬を担当するキャリアクラス320、各入出力デバイスが取り扱うデータを保持して速度調整をおこなうステーションクラス330、ステーションクラス330のサブクラスであり入力デバイスから受け付けたデータを一時的に保持する入力ステーションクラス340、ステーションクラス330のサブクラスであり出力デバイスに送り出すデータを一時的に保持する出力ステーションクラス350、入出力デバイス間のデータに相当する荷物クラス360および入出力デバイス間の区間状態を管理する区間クラス370を有する。   FIG. 10 is a UML class diagram showing the class structure of the stream unit 113a designed by the object modeling described above. As shown in the figure, the stream unit 113a receives a stream control request between input / output devices and manages a data flow state, a carrier class 320 responsible for data transfer between input / output devices, Station class 330 that holds data handled by the input / output device and performs speed adjustment, is a subclass of station class 330, and is a subclass of input station class 340 and station class 330 that temporarily holds data received from the input device, and is output It has an output station class 350 that temporarily holds data to be sent to the device, a package class 360 corresponding to data between input / output devices, and a section class 370 that manages section states between input / output devices.

次に、クラスとUMLクラス図におけるクラスの記述方法について説明しておく。クラスとは、オブジェクト指向システムを構成するオブジェクトの設計図に相当する概念であり、オブジェクト内部に有する属性と処理を定義するとともに、継承関係や集約関係といった、他のクラスとの関係を定義するものである。   Next, a class description method in the class and UML class diagram will be described. A class is a concept that corresponds to a blueprint for the objects that make up an object-oriented system. It defines the attributes and processing that an object has and defines relationships with other classes, such as inheritance and aggregation relationships. It is.

UMLクラス図におけるクラスは、3段の区画を有する矩形として記述される。それぞれの区画は、上から、クラス名を示す名前区画、クラスが有するデータ(属性)を示す属性区画およびクラスが有する処理(操作)を示す操作区画と呼ばれる。たとえば、ストリームクラス310を示す矩形の名前区画は、かかるクラスのクラス名が「ストリーム」であることを示し、属性区画は、かかるクラスが有する属性が、「状態」および「同期・並行」であることを示し、操作区画は、かかるクラスが有する操作が、「実行する()」であることを示している。   The class in the UML class diagram is described as a rectangle having three sections. From the top, each section is called a name section indicating a class name, an attribute section indicating data (attribute) included in the class, and an operation section indicating processing (operation) included in the class. For example, a rectangular name section indicating the stream class 310 indicates that the class name of the class is “stream”, and an attribute section indicates that the attributes of the class are “state” and “synchronous / parallel”. The operation section indicates that the operation of the class is “execute ()”.

このように、各クラスは、データ(属性)を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理(操作)を所持するための操作区画とを有している。これらのクラスは、プログラム(統合アプリケーション110)の一部として含まれるので、あらかじめROM12aに格納されたこのプログラムが実行されると、各クラスはRAM12bの所定領域に実体化され、属性区画に含まれる各データ(属性)がRAM12b上に展開される。したがって、クラスを実体化したオブジェクトは、RAM12b上の各データ(属性)の書き込みおよび読み出しをすることが可能となる。   Thus, each class has an attribute section for possessing data (attribute) and an operation section for possessing processing (operation) for writing and reading such an attribute. Since these classes are included as a part of the program (integrated application 110), when this program stored in the ROM 12a in advance is executed, each class is materialized in a predetermined area of the RAM 12b and included in the attribute section. Each data (attribute) is expanded on the RAM 12b. Therefore, the object in which the class is materialized can write and read each data (attribute) on the RAM 12b.

なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「+」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「記入する()」のように「()」記号を付することが通例であり、「(引数1,引数2)」のように、かかる操作に引き渡す引数を記述する場合もある。   In addition, if a "-" symbol is attached to the left side of a class element such as attribute or operation, this indicates that the element is private to external classes, and if a "+" symbol is attached, this element Indicates that it is open to external classes. Also, for operations, it is customary to add a “()” symbol, such as “Enter ()”, and to describe an argument to be passed to the operation, such as “(Argument 1, Argument 2)” There is also.

次に、本実施の形態の特徴部分であるストリーム部113aのクラスの概要について説明する。上述したように、ストリーム部113aは、ストリームクラス310、キャリアクラス320、ステーションクラス330、入力ステーションクラス340、出力ステーションクラス350、荷物クラス360および区間クラス370を有する。以下では、まず、これらのクラスの概要について説明する。   Next, an overview of the class of the stream unit 113a, which is a characteristic part of the present embodiment, will be described. As described above, the stream unit 113a includes the stream class 310, the carrier class 320, the station class 330, the input station class 340, the output station class 350, the luggage class 360, and the section class 370. Below, the outline | summary of these classes is demonstrated first.

ストリームクラス310は、入出力デバイス間のストリーム制御要求を受け付けるとともにデータの流れの状態を管理クラスであり、受け付けたストリーム制御要求に基づいてキャリアクラス320のオブジェクトを生成し、かかるオブジェクトを制御する処理をおこなう。具体的には、このストリームクラス310は、属性として、状態310aおよび同期・並行310bを有し、操作として実行する()310cを有する。なお、かかるストリームクラス310を実体化したストリームオブジェクト310Aが生成されると、状態310aおよび同期・並行310bはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。   The stream class 310 is a management class that accepts a stream control request between input / output devices and manages the state of data flow, generates a carrier class 320 object based on the accepted stream control request, and controls the object To do. Specifically, this stream class 310 has a state 310a and a synchronization / parallel 310b as attributes, and has () 310c executed as an operation. When the stream object 310A that materializes the stream class 310 is generated, the state 310a and the synchronization / parallel 310b are expanded on the RAM 12b, so that these data (attributes) can be written and read. It becomes.

状態310aは、入力デバイスから出力デバイスへのデータの流れ(ストリーム)の状態を保持する。たとえば、ストリームの状態が実行中状態である場合において、利用者が操作パネル400を操作することにより、いったん指示したコピー処理を一時中断したり、出力先を記録紙からHDD201cに変更したりした場合には、ストリームの状態が休止中状態や変更中状態に遷移する。このように、状態310aは、利用者の指示に起因して変化するストリーム状態をあらわす。   The state 310a holds the state of the data flow (stream) from the input device to the output device. For example, when the stream is in the running state, when the user operates the operation panel 400, the designated copy process is temporarily interrupted, or the output destination is changed from the recording paper to the HDD 201c. The stream state transitions to a dormant state or a changing state. As described above, the state 310a represents a stream state that changes due to a user instruction.

同期・並行310bは、ストリームオブジェクト310Aが複数のキャリアオブジェクト320Aを用いて一つのデータの流れを形成する場合において、各キャリアオブジェクト320Aを同期させて動作させるのか、あるいは並行して動作させるのかの識別情報を保持する。ここで、複数のキャリアオブジェクト320Aを「同期動作」させるとは、一つのキャリアオブジェクト320Aの処理完了を待って、次のキャリアオブジェクト320Aの処理を開始するよう指示することをあらわす。また、「並行動作」させるとは、一つのキャリアオブジェクト320Aの処理完了を待たずして、次のキャリアオブジェクト320Aに処理開始の指示を与えることをあらわす。   Synchronization / parallel 310b identifies whether each carrier object 320A is operated in synchronization or in parallel when the stream object 310A forms a single data flow using a plurality of carrier objects 320A. Keep information. Here, “synchronizing operation” of a plurality of carrier objects 320A means instructing to start processing of the next carrier object 320A after waiting for completion of processing of one carrier object 320A. Also, “in parallel operation” means that the next carrier object 320A is instructed to start processing without waiting for the completion of processing of one carrier object 320A.

たとえば、スキャナ201aから10枚の紙原稿を読み取り、メール送信する場合には、10枚すべての読み取り完了を待ってメール送信する必要があるので、各キャリアオブジェクト320Aを「同期動作」させることになる。一方、10枚の紙原稿を記録紙にコピーする場合には、10枚すべての読み取り完了を待つ必要はなく、随時、記録紙への印刷処理をおこなえばよいので、各キャリアオブジェクト320Aを「並行動作」させることになる。   For example, when 10 paper originals are read from the scanner 201a and sent by e-mail, it is necessary to send the e-mail after waiting for all 10 sheets to be read, so that each carrier object 320A is "synchronized". . On the other hand, when copying 10 paper originals onto recording paper, it is not necessary to wait for all 10 sheets to be read, and printing processing on the recording paper may be performed at any time. Will be "operated".

実行する()310cは、実行系サブシステム113からストリーム開始要求を受け付け、キャリアオブジェクト320Aを生成するとともに、生成したキャリアオブジェクト320Aにデータ運搬を指示する処理をおこなう。   The executing () 310c receives a stream start request from the executing subsystem 113, generates a carrier object 320A, and performs processing for instructing the generated carrier object 320A to carry data.

キャリアクラス320は、入出力デバイス間のデータ運搬を担当するクラスである。このキャリアクラス320は、所定の大きさのデータを格納する荷物オブジェクト360Aを、入力ステーションオブジェクト340Aから受け取り、出力ステーションオブジェクト350Aに渡す処理をおこなう。具体的には、このキャリアクラス320は、属性として、状態320aおよび定数320bを有し、操作として、運搬する()320cを有する。なお、かかるキャリアクラス320を実体化したキャリアオブジェクト320Aが生成されると、状態320aおよび定数320bはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。   The carrier class 320 is a class in charge of data transportation between input / output devices. The carrier class 320 performs processing for receiving a package object 360A storing data of a predetermined size from the input station object 340A and passing it to the output station object 350A. Specifically, this carrier class 320 has a state 320a and a constant 320b as attributes, and has () 320c to carry as an operation. When the carrier object 320A that materializes the carrier class 320 is generated, the state 320a and the constant 320b are expanded on the RAM 12b, so that these data (attributes) can be written and read. .

状態320aは、現在のキャリアクラス320の処理状態を保持する。この状態には、たとえば、荷積中、運搬中および荷降中がある。荷積中状態とは、入力ステーションオブジェクト340Aから荷物オブジェクト360Aを受け取る処理中の状態をあらわし、運搬中状態とは、入力ステーションオブジェクト340Aから荷物オブジェクト360Aの受け取りを完了し、出力ステーションオブジェクト350Aへかかる荷物オブジェクト360Aを渡す前の状態をあらわし、荷降中状態とは、出力ステーションオブジェクト350Aへかかる荷物オブジェクト360Aを渡す処理中の状態をあらわす。このような状態を状態320aが保持することにより、キャリアクラス320は、データの運搬状態を一元的に管理することができる。   The state 320a holds the current processing state of the carrier class 320. This state includes, for example, loading, transportation and unloading. The loading state means a state in which the load object 360A is being received from the input station object 340A, and the carrying state means that the load object 360A has been received from the input station object 340A and is applied to the output station object 350A. The state before the package object 360A is delivered is shown, and the unloading state is a state during the process of delivering the package object 360A to the output station object 350A. By holding such a state in the state 320a, the carrier class 320 can centrally manage the data transport state.

定数320bは、キャリアオブジェクト320Aが、入力ステーションオブジェクト340Aから出力ステーションオブジェクト350Aへのデータ運搬を開始する閾値である「受取荷物の上限数」を保持する。たとえば、4枚の紙原稿を読み込んで、1枚の記録紙に印刷する集約コピーが指示された場合において、1枚の紙原稿の読み取りデータが、1個の荷物オブジェクト360Aに格納されるのであれば、定数320bは、「4」という数値データを保持する。   The constant 320b holds the “upper limit number of received packages” that is a threshold value at which the carrier object 320A starts to carry data from the input station object 340A to the output station object 350A. For example, in the case where an instruction to collect four paper originals and print on one recording paper is given, the read data of one paper original may be stored in one package object 360A. For example, the constant 320b holds numerical data “4”.

キャリアオブジェクト320Aは、運搬する()320cが他のオブジェクトから呼び出され、その後、入力ステーションオブジェクト340Aの指示により生成された荷物オブジェクト360Aを受け取り、受け取った荷物オブジェクト360Aの個数が、この定数320bに保持される値に達した場合に、出力ステーションオブジェクト350Aへのデータ運搬を開始する。すなわち、「運搬する()320cが呼び出されたこと」および「受取った荷物オブジェクト360Aの個数が定数320bの値に達したこと」の2つの条件がそろった場合に、キャリアオブジェクト320Aは、データ運搬を開始する。   The carrier object 320A is transported () 320c is called from another object, and then receives the load object 360A generated by the instruction of the input station object 340A. The number of the received load objects 360A is held in this constant 320b. When the value reached is reached, data transport to the output station object 350A is started. That is, when the two conditions of “transport () 320 c is called” and “the number of received parcel objects 360 A has reached the value of the constant 320 b” are met, the carrier object 320 A is data transport To start.

運搬する()320cは、ストリームオブジェクト310Aから呼び出され、入力ステーションオブジェクト340Aおよび出力ステーションオブジェクト350Aに、データ生成の開始およびデータ受取りの準備を指示する。そして、入力ステーションオブジェクト340Aの指示により生成された荷物オブジェクト360Aの個数が、上述した定数320bに保持される値に達するまでデータの運搬を待ち合わせる。   The carry () 320c is called from the stream object 310A, and instructs the input station object 340A and the output station object 350A to start data generation and prepare to receive data. Then, data transportation is awaited until the number of luggage objects 360A generated by the instruction of the input station object 340A reaches the value held in the above-described constant 320b.

そして、荷物オブジェクト360Aの個数が、かかる値に達したならば、各荷物オブジェクト360Aを出力ステーションオブジェクト350Aに運搬する処理をおこなう。具体的には、各荷物オブジェクト360Aにデータ加工を指示し、データ加工が完了した荷物オブジェクト360Aを出力ステーションオブジェクト350Aに渡す処理をおこなう。   When the number of the luggage objects 360A reaches such a value, a process for transporting each luggage object 360A to the output station object 350A is performed. More specifically, each parcel object 360A is instructed to process data, and the parcel object 360A for which data processing has been completed is transferred to the output station object 350A.

ステーションクラス330は、各入出力デバイスが取り扱うデータを一時的に保持して速度調整をおこなうクラスである。このステーションクラス330は、入力ステーションクラス340および出力ステーションクラス350の上位クラス(スーパークラス)であり、ステーションクラス330自体が実体化されることはないが、ステーションクラス330の属性および操作は、下位クラス(サブクラス)である入力ステーションクラス340および出力ステーションクラス350に継承される。   The station class 330 is a class that temporarily holds data handled by each input / output device and performs speed adjustment. The station class 330 is an upper class (super class) of the input station class 340 and the output station class 350, and the station class 330 itself is not materialized, but the attributes and operations of the station class 330 are lower classes. (Subclass) is inherited by the input station class 340 and the output station class 350.

最大格納数330aは、ステーションクラス330が保持可能な荷物オブジェクト360Aの最大数を保持する。荷物オブジェクト360aの個数が、この最大格納数330aが保持する値を上回ると、ステーションクラス330は、実行制御部113bに対してエラー通知をおこなう。なお、上述したように、この属性(最大格納数330a)は、サブクラスである入力ステーションクラス340および出力ステーションクラス350に継承される。   The maximum storage number 330a holds the maximum number of luggage objects 360A that the station class 330 can hold. When the number of luggage objects 360a exceeds the value stored in the maximum storage number 330a, the station class 330 notifies the execution control unit 113b of an error. As described above, this attribute (maximum storage number 330a) is inherited by the input station class 340 and the output station class 350, which are subclasses.

スタート()330bは、ステーションクラス330が何らかの処理を開始するためのトリガーを与えるための処理をおこなう。このスタート()330bは、サブクラスである入力ステーションクラス340および出力ステーションクラス350に継承され、各サブクラスにおける具体的な処理によりオーバーライド(override)される。なお、かかる具体的な処理の説明については、後述する入力ステーションクラス340および出力ステーションクラス350のクラス説明においておこなう。   The start () 330 b performs processing for giving a trigger for the station class 330 to start some processing. This start () 330 b is inherited by the input station class 340 and the output station class 350, which are subclasses, and is overridden by specific processing in each subclass. Such specific processing will be described in the class description of the input station class 340 and the output station class 350 described later.

入力ステーションクラス340は、ステーションクラス330のサブクラスであり入力デバイスから受け付けたデータを一時的に保持する処理をおこなうクラスである。この入力ステーションクラス340は、キャリアクラス320からの指示に基づき、荷物オブジェクト360Aの生成を開始するとともに、かかる荷物オブジェクト360Aを一時的に保持することにより、異なる処理速度を有する入力デバイスを一律に取り扱うための入力バッファとしての役割を担うクラスである。   The input station class 340 is a subclass of the station class 330 and is a class that performs processing for temporarily holding data received from the input device. The input station class 340 starts the generation of the luggage object 360A based on the instruction from the carrier class 320, and handles the input devices having different processing speeds uniformly by temporarily holding the luggage object 360A. This class plays a role as an input buffer.

具体的には、この入力ステーションクラス340は、属性として、状態340aを有し、操作として、取出す()340bを有するとともに、ステーションクラス330から、属性として、最大格納数330aを継承し、操作として、スタート()330bを継承する。なお、かかる入力ステーションクラス340を実体化した入力ステーションオブジェクト340Aが生成されると、状態340aおよび最大格納数330aはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。   Specifically, this input station class 340 has a state 340a as an attribute, and has () 340b as an operation, and inherits the maximum storage number 330a as an attribute from the station class 330 as an operation. , Inherits the start () 330b. When an input station object 340A that materializes the input station class 340 is generated, the state 340a and the maximum storage number 330a are expanded on the RAM 12b, so that these data (attributes) are written and read. Is possible.

状態340aは、入力ステーションクラス340に対応する入力デバイスの現在の状態を保持する。たとえば、かかる状態には、データ生成中の状態、何もしていない状態、要求を受け付けることができない状態などの状態がある。また、ステーションクラス330から継承した最大格納数330aは、入力ステーションクラス340が保持可能な荷物オブジェクト360Aの最大数を保持する。   The state 340a holds the current state of the input device corresponding to the input station class 340. For example, such states include a state in which data is being generated, a state in which nothing is being performed, and a state in which a request cannot be accepted. The maximum storage number 330 a inherited from the station class 330 holds the maximum number of luggage objects 360 A that can be held by the input station class 340.

取出す()340bは、キャリアクラス320から呼び出され、入力ステーションクラス340の指示により生成された荷物オブジェクト360Aを、かかるキャリアクラス320に返す処理をおこなう。また、ステーションクラス330から継承したスタート()330bは、入力ステーションクラス340に、荷物オブジェクト360Aの生成の開始指示をおこなう。   The take-out () 340 b is called from the carrier class 320 and performs processing for returning the package object 360 A generated by the instruction of the input station class 340 to the carrier class 320. Further, the start () 330 b inherited from the station class 330 instructs the input station class 340 to start generating the luggage object 360 </ b> A.

出力ステーションクラス350は、ステーションクラス330のサブクラスであり、出力デバイスに送り出すデータを一時的に保持する処理をおこなうクラスである。この出力ステーションクラス350は、キャリアクラス320からの指示に基づき、荷物オブジェクト360Aを受け付ける準備をおこなうとともに、かかる荷物オブジェクト360Aを一時的に保持することにより、異なる処理速度を有する出力デバイスを一律に取り扱うための出力バッファとしての役割を担うクラスである。   The output station class 350 is a subclass of the station class 330 and is a class that performs processing for temporarily holding data to be sent to the output device. The output station class 350 prepares to receive the luggage object 360A based on an instruction from the carrier class 320, and uniformly handles output devices having different processing speeds by temporarily holding the luggage object 360A. It is a class that plays a role as an output buffer.

具体的には、この出力ステーションクラス350は、属性として、状態350aを有し、操作として、格納する()350bを有するとともに、ステーションクラス330から、属性として、最大格納数330aを継承し、操作として、スタート()330bを継承する。なお、かかる出力ステーションクラス350を実体化した出力ステーションオブジェクト350Aが生成されると、状態350aおよび最大格納数330aはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。   Specifically, the output station class 350 has a state 350a as an attribute and stores () 350b as an operation, and inherits the maximum storage number 330a as an attribute from the station class 330, And inherits the start () 330b. When the output station object 350A that materializes the output station class 350 is generated, the state 350a and the maximum storage number 330a are expanded on the RAM 12b, so that these data (attributes) are written and read. Is possible.

状態350aは、出力ステーションクラス350に対応する出力デバイスの現在の状態を保持する。たとえば、かかる状態には、データ消費中の状態、何もしていない状態、あるいは、要求を受け付けることができない状態などの状態がある。また、ステーションクラス330から継承した最大格納数330aは、出力ステーションクラス350が保持することが可能な荷物オブジェクト360Aの最大数を保持する。ここで、「消費中」とは、出力ステーションクラス350が、出力デバイスに対し荷物オブジェクト360Aを渡す処理中であることをあらわす。   The state 350a holds the current state of the output device corresponding to the output station class 350. For example, such states include a state in which data is being consumed, a state in which nothing is being performed, and a state in which a request cannot be accepted. The maximum storage number 330 a inherited from the station class 330 holds the maximum number of luggage objects 360 A that can be held by the output station class 350. Here, “consuming” indicates that the output station class 350 is in the process of delivering the package object 360A to the output device.

格納する()350bは、キャリアクラス320から呼び出され、出力ステーションクラス350が、荷物オブジェクト360Aを消費する処理をおこなう。また、ステーションクラス330から継承したスタート()330bは、出力ステーションクラス350に、荷物オブジェクト360Aの受け入れ準備を開始する指示をおこなう。   Store () 350b is called from the carrier class 320, and the output station class 350 performs processing of consuming the package object 360A. Further, the start () 330 b inherited from the station class 330 instructs the output station class 350 to start preparation for receiving the package object 360 </ b> A.

荷物クラス360は、入力デバイスから出力デバイスへ流れるデータに対応するクラスである。具体的には、この荷物クラス360は、属性として、コンバート360aを有し、操作として、加工する()360bを有する。なお、かかる荷物クラス360を実体化した荷物オブジェクト360Aが生成されると、コンバート360aはRAM12b上に展開されるので、このデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。また、この荷物オブジェクト360Aは、各入力デバイスに対応する入力ステーションオブジェクト340Aの指示により生成され、キャリアオブジェクト320Aにより運搬されて、各出力デバイスに対応する出力ステーションオブジェクト350Aにより消費されることになる。   The package class 360 is a class corresponding to data flowing from the input device to the output device. Specifically, the luggage class 360 has a convert 360a as an attribute and a processing () 360b as an operation. When a luggage object 360A that materializes such a luggage class 360 is generated, the convert 360a is expanded on the RAM 12b, so that this data (attribute) can be written and read. The package object 360A is generated by an instruction from the input station object 340A corresponding to each input device, is transported by the carrier object 320A, and is consumed by the output station object 350A corresponding to each output device.

コンバート360aは、入出力デバイス間のデータ単位の差異あるいはデータ形式の差異のために、データ単位あるいはデータ形式の変換処理が必要であるか否かをあらわす情報を保持する。また、加工する()360bは、キャリアオブジェクト320Aから呼び出され、データ単位あるいはデータ形式の変換処理をおこなう。ここで、データ単位の変換処理とは、たとえば、入力原稿1枚に相当する画像データを基本単位とするデータ単位から、かかる画像データを10ブロックに分割した各ブロックを基本単位とするデータ単位への変換処理をさす。また、データ形式の変換処理とは、たとえば、TIFF(Tagged Image File Format)形式の画像フォーマットをPDF(Portable Document Format)形式に変換する処理をさす。   The convert 360a holds information indicating whether or not a data unit or data format conversion process is necessary due to a difference in data unit or data format between input / output devices. Further, the processing () 360b is called from the carrier object 320A, and performs conversion processing of data units or data formats. Here, the data unit conversion processing is, for example, from a data unit having image data corresponding to one input document as a basic unit to a data unit having each block obtained by dividing the image data as 10 blocks as a basic unit. This is the conversion process. The data format conversion process refers to, for example, a process of converting a TIFF (Tagged Image File Format) format image format into a PDF (Portable Document Format) format.

なお、キャリアクラス320Aから、加工する()360bが呼び出された場合であっても、コンバート360aが保持する情報が、データ単位およびデータ形式の変換が不要であることを示していれば、かかる変換はおこなわれない。また、コンバート360aが保持する情報にしたがって、データ単位のみの変換またはデータ形式のみの変換がおこなわれる場合もある。   It should be noted that even if () 360b to be processed is called from the carrier class 320A, if the information held by the convert 360a indicates that conversion of the data unit and data format is not required, such conversion is performed. Is not done. In addition, according to the information held by the convert 360a, only data unit conversion or only data format conversion may be performed.

区間クラス370は、入出力デバイス間の区間状態を管理するクラスである。ここで、区間状態とは、各入力デバイスに対応する入力ステーションオブジェクト340Aを始点とし、各出力デバイスに対応する出力ステーションオブジェクト350Aを終点とした場合に、始点および終点の組合せからなる各区間の使用可否をあらわす情報である。すなわち、始点および終点のいずれもが使用可能であれば、かかる区間は使用可能であり、始点あるいは終点のいずれかが使用不可能であれば、かかる区間は使用不可能となる。   The section class 370 is a class for managing section states between input / output devices. Here, the section state is the use of each section composed of a combination of the start point and the end point when the input station object 340A corresponding to each input device is the start point and the output station object 350A corresponding to each output device is the end point. This information indicates whether or not it is possible. That is, if both the start point and the end point are usable, the section can be used, and if either the start point or the end point cannot be used, the section cannot be used.

この区間クラス370は、具体的には、属性として、区間状態370aを有し、操作として、使用する()370bを有する。なお、かかる区間クラス370を実体化した区間オブジェクト370Aが生成されると、区間状態370aはRAM12b上に展開されるので、このデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。また、区間オブジェクト370bは、上述した始点および終点の組合せの数と同数生成される。   Specifically, the section class 370 has a section state 370a as an attribute and () 370b to be used as an operation. When the section object 370A that materializes the section class 370 is generated, the section state 370a is expanded on the RAM 12b, and thus this data (attribute) can be written and read. In addition, the same number of section objects 370b as the number of combinations of the start point and the end point described above are generated.

区間状態370aは、上述した各区間が使用可能であるか否かの情報を保持する。また、使用する()370bは、キャリアオブジェクト320Aから呼び出され、区間状態370aが保持する区間使用可否の情報を、かかるキャリアオブジェクト320Aに報告する処理をおこなう。たとえば、キャリアオブジェクト320Aから呼び出された際に、区間状態370aが保持する情報が「使用可能」であったならば、使用する()370bは、かかる区間が使用可能である旨を報告する。そして、区間状態370aが保持する状態が「使用不可能」に遷移したならば、かかる区間が使用不可能である旨を報告する。   The section state 370a holds information on whether or not each section described above is usable. In addition, () 370 b to be used is called from the carrier object 320 </ b> A, and performs processing for reporting information on the availability of the section held in the section state 370 a to the carrier object 320 </ b> A. For example, when the information stored in the section state 370a is “available” when called from the carrier object 320A, the use () 370b reports that the section is usable. If the state held by the section state 370a transitions to “unusable”, it reports that the section is unusable.

次に、図10に示した各クラス間の関係について説明する。同図に示したように、UMLクラス図においては、クラス間に何らかの関係がある場合には、それらのクラスを表す矩形の間が直線で結ばれる。この直線の両端付近の文字はクラスのロールを表し、数字はクラスの多重度を表す。ここで、ロールとは、直線で結ばれた他方のクラスに対する当該クラスの役割のことであり、多重度とは、直線で結ばれた他方のクラスのオブジェクトと関連付けられて生成されるオブジェクトの数のことである。   Next, the relationship between the classes shown in FIG. 10 will be described. As shown in the figure, in the UML class diagram, when there is some relationship between classes, rectangles representing those classes are connected by a straight line. The characters near both ends of this line represent the class role, and the numbers represent the multiplicity of the class. Here, the role is the role of the class with respect to the other class connected by a straight line, and the multiplicity is the number of objects generated in association with the object of the other class connected by a straight line. That is.

たとえば、ストリームクラス310からみたキャリアクラス320の役割は「実行者」であり、キャリアクラス320からみたストリームクラス310の役割は「報告先」である。また、ストリームクラス310の多重度は「1」であり、キャリアクラス320の多重度は「0..n」である。ここで、「0..n」は、かかるキャリアクラス320の多重度が、0からnの範囲であることを示している。なお、かかる多重度の上限数はn個としているものの、当然に、ハードウェア仕様などによる制限を受ける。   For example, the role of the carrier class 320 viewed from the stream class 310 is “executor”, and the role of the stream class 310 viewed from the carrier class 320 is “report destination”. The multiplicity of the stream class 310 is “1”, and the multiplicity of the carrier class 320 is “0..n”. Here, “0..n” indicates that the multiplicity of the carrier class 320 is in the range of 0 to n. Although the upper limit of the multiplicity is n, it is naturally limited by hardware specifications.

まず、ストリームクラス310とキャリアクラス320とのクラス関係について説明する。ストリームクラス310は、複数のキャリアクラス320を管理して、一つのデータの流れを形成する。また、各キャリアクラス320は、データの運搬を実行するとともに運搬状態をストリームクラス310に報告する。したがって、ストリームクラス310とキャリアクラス320とは、「報告先」と「実行者」という関係をなしている。   First, the class relationship between the stream class 310 and the carrier class 320 will be described. The stream class 310 manages a plurality of carrier classes 320 to form one data flow. Each carrier class 320 executes data transportation and reports the transportation state to the stream class 310. Therefore, the stream class 310 and the carrier class 320 have a relationship of “report destination” and “executor”.

ここで、ストリームクラス310側に記された白抜きのひし形は集約関係をあらわしている。集約関係とは、あるクラスが別のクラスの一部として含まれる関係のことである。具体的には、1つのデータの流れ(ストリーム)は、複数のキャリアクラス320から形成され、ストリームクラス310は、1つのストリームを管理するので、1つのストリームを形成するキャリアクラス320は、ストリームクラス310に集約される関係を有する。   Here, the open diamonds written on the stream class 310 side represent an aggregation relationship. An aggregate relationship is a relationship in which one class is included as part of another class. Specifically, one data flow (stream) is formed from a plurality of carrier classes 320, and the stream class 310 manages one stream, so the carrier class 320 forming one stream is a stream class. 310 has a relationship aggregated.

また、ストリームオブジェクト310Aは、実行系サブシステム113からのストリーム開始要求ごとに生成され、1個のストリームオブジェクト310Aは、0個以上複数のキャリアオブジェクト320Aを管理するので、かかるキャリアオブジェクト320Aは、1個のストリームオブジェクト310Aに対して0個以上n個以下の範囲で存在する。   The stream object 310A is generated for each stream start request from the execution subsystem 113, and one stream object 310A manages zero or more carrier objects 320A. The number of stream objects 310A exists in the range of 0 to n.

次に、キャリアクラス320とステーションクラス330とのクラス関係について説明する。キャリアクラス320は、1個の入力ステーションクラス330から1個の出力ステーション340へ荷物を運搬するコンテナの役割を有するため、入力ステーション330とキャリアクラス320とは、「入力元」と「コンテナ」の関係をなしており、キャリアクラス320と出力ステーション350とは、「コンテナ」と「出力先」の関係をなしている。   Next, the class relationship between the carrier class 320 and the station class 330 will be described. Since the carrier class 320 has a role of a container for transporting goods from one input station class 330 to one output station 340, the input station 330 and the carrier class 320 are “input source” and “container”. The carrier class 320 and the output station 350 have a relationship of “container” and “output destination”.

また、1個のキャリアオブジェクト320Aは、1個の入力ステーションオブジェクト340Aおよび1個の出力ステーションオブジェクト350Aと関連づけられるので、入力ステーションオブジェクト340Aとキャリアオブジェクト320Aとは、1対1の関係を有するとともに、キャリアオブジェクト320Aと出力ステーションオブジェクト350Aとの関係も1対1となる。   Since one carrier object 320A is associated with one input station object 340A and one output station object 350A, the input station object 340A and the carrier object 320A have a one-to-one relationship, The relationship between the carrier object 320A and the output station object 350A is also 1: 1.

次に、キャリアクラス320と荷物クラス360とのクラス関係について説明する。キャリアクラス320は、入力ステーションクラス340に格納された荷物クラス360を受け取って一時的に格納し、格納した荷物クラス360を出力ステーションクラス350へ運搬する。したがって、キャリアクラス320と荷物クラス360とは、「一時的格納先」と「運搬対象」の関係をなしている。また、荷物クラス360は、キャリアクラス320に集約される関係を有する。   Next, the class relationship between the carrier class 320 and the luggage class 360 will be described. The carrier class 320 receives and temporarily stores the package class 360 stored in the input station class 340 and transports the stored package class 360 to the output station class 350. Therefore, the carrier class 320 and the package class 360 have a relationship between “temporary storage destination” and “transport object”. In addition, the luggage class 360 has a relationship that is aggregated into the carrier class 320.

1個のキャリアオブジェクト320Aは、複数の荷物オブジェクト360Aを格納して運搬する場合があり、また、荷物オブジェクト360Aが未だ生成されていない場合には、格納対象となる荷物オブジェクト360Aは存在しない。したがって、荷物オブジェクト360Aは、キャリアオブジェクト320Aに対して0個以上n個以下の範囲で存在する。また、各荷物オブジェクト360Aには、格納先となるキャリアオブジェクト320Aが必ず1個存在する。   One carrier object 320A may store and carry a plurality of luggage objects 360A. If the luggage object 360A has not yet been generated, there is no luggage object 360A to be stored. Accordingly, the luggage object 360A exists in the range of 0 to n with respect to the carrier object 320A. Each package object 360A always has one carrier object 320A as a storage destination.

次に、ステーションクラス330と荷物クラス360とのクラス関係について説明する。ステーションクラス330は、運搬対象となる荷物クラス360を格納し、格納した荷物クラス360はキャリアクラス320により運搬される。したがって、ステーションクラス330と荷物クラス360とは、「格納先」と「運搬対象」の関係をなしている。なお、両クラスの多重度関係および集約関係は、上述したキャリアクラス320と荷物クラス360の関係と同様である。   Next, the class relationship between the station class 330 and the luggage class 360 will be described. The station class 330 stores a package class 360 to be transported, and the stored package class 360 is transported by the carrier class 320. Therefore, the station class 330 and the luggage class 360 have a relationship of “storage destination” and “transport object”. Note that the multiplicity relationship and the aggregation relationship of both classes are the same as the relationship between the carrier class 320 and the luggage class 360 described above.

次に、ステーションクラス330と入力ステーションクラス340および出力ステーションクラス350とのクラス関係について説明する。ステーションクラス330は、入力ステーションクラス340および出力ステーションクラス350の上位クラス(スーパークラス)であり、入力ステーションクラス340および出力ステーションクラス350は、ステーションクラス330の属性および操作を継承する。   Next, the class relationship among the station class 330, the input station class 340, and the output station class 350 will be described. The station class 330 is an upper class (super class) of the input station class 340 and the output station class 350, and the input station class 340 and the output station class 350 inherit the attributes and operations of the station class 330.

最後に、キャリアクラス320と区間クラス370とのクラス関係について説明する。データの運搬を担当するキャリアクラス320は、区間クラス370が管理する各経路(区間)上を移動するので、キャリアクラス320と区間クラス370とは、「移動体」と「経路」の関係をなす。   Finally, the class relationship between the carrier class 320 and the section class 370 will be described. Since the carrier class 320 in charge of data transportation moves on each route (section) managed by the section class 370, the carrier class 320 and the section class 370 have a relationship of “mobile body” and “path”. .

また、キャリアを同期動作させる場合は、同時に複数のキャリアオブジェクト320Aが存在することはなく、動作中のキャリアオブジェクト320Aが最大で1個のみ存在する。一方、キャリアを並行動作させる場合は、同時に複数のキャリアオブジェクト320Aが存在する。そして、キャリアオブジェクト320Aが未だ生成されていない場合には、かかる経路にはキャリアオブジェクト320Aが存在しない。したがって、キャリアオブジェクト320Aは、区間オブジェクト370Aに対して0個以上n個以下の範囲で存在する。一方、区間オブジェクト370Aは、各キャリアオブジェクト320Aに対し必ず1個存在する。   When the carriers are operated synchronously, a plurality of carrier objects 320A do not exist at the same time, and there is at most one carrier object 320A in operation. On the other hand, when the carriers are operated in parallel, there are a plurality of carrier objects 320A at the same time. If the carrier object 320A has not yet been generated, the carrier object 320A does not exist on this route. Therefore, the carrier object 320A exists in the range of 0 to n with respect to the section object 370A. On the other hand, there is always one section object 370A for each carrier object 320A.

このように、ストリームクラス310、キャリアクラス320、ステーションクラス330、入力ステーションクラス340、出力ステーションクラス350、荷物クラス360および区間クラス370の各オブジェクトは、相互に関連し合い、協調して、ストリーム部113aに必要な機能を実現している。   As described above, the stream class 310, the carrier class 320, the station class 330, the input station class 340, the output station class 350, the luggage class 360, and the section class 370 are related to each other and coordinated with each other. Functions necessary for 113a are realized.

次に、図10に示した各クラスの操作の実行手順について例をあげて説明する。図11は、ストリーム部113aが実行指示を受け付けた際の操作の実行手順を示すUMLシーケンス図である。   Next, the execution procedure of the operation of each class shown in FIG. 10 will be described with an example. FIG. 11 is a UML sequence diagram illustrating an operation execution procedure when the stream unit 113a receives an execution instruction.

ここで、UMLシーケンス図について説明しておく。図11の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線(ライフライン)であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間(活性期間)を示す。   Here, the UML sequence diagram will be described. Each rectangle arranged in the upper part of FIG. 11 indicates a class object. A line extending downward from each object is a line (lifeline) indicating that each object is alive, and time is considered to flow from the top to the bottom. An elongated rectangle present on this line indicates a period during which the object is actually active (active period).

各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれるの操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。また、矢印が自分自身のオブジェクトを指している場合は、オブジェクトが自分に含まれる操作を自身で呼び出すことを意味する。   A horizontal arrow connecting the lifelines indicates execution of an operation included in the object. Specifically, this arrow indicates that the original object of the arrow calls an operation included in the object at the end of the arrow. Further, when the arrow points to its own object, it means that the object calls the operation included in itself.

利用者が複合機1の操作パネル400を操作してコピー機能などの実行を指示すると、図11に示すように、サービス提供者(実行系サブシステム113の実行制御部113b)は、ストリーム開始要求をおこなうために、ストリーム部113aのストリームオブジェクト310Aの実行する()310aを呼び出す(ステップS101)。実行する()310aを呼び出されたストリームオブジェクト310Aは、該当する区間オブジェクト370Aに区間状態を問い合わせるなどして、データを流すことが可能か否かを判定する。   When the user operates the operation panel 400 of the multifunction device 1 to instruct execution of a copy function or the like, as shown in FIG. 11, the service provider (execution control unit 113b of the execution subsystem 113) requests a stream start request. In order to perform this, the execution () 310a of the stream object 310A of the stream unit 113a is called (step S101). The stream object 310A that is called to execute () 310a determines whether or not data can be streamed by inquiring the section object 370A about the section state.

そして、ストリームオブジェクト310Aは、データを流すことが可能であると判定したならば、キャリアオブジェクト320Aを生成するとともに、このキャリアオブジェクト320Aの運搬する()320cを呼び出して、データの運搬を指示する(ステップS102)。なお、データを流すことが不可能であると判定した場合には、エラー通知をおこなうなどして処理を終了する。   If the stream object 310A determines that the data can flow, the stream object 310A generates a carrier object 320A and calls () 320c carried by the carrier object 320A to instruct data conveyance ( Step S102). If it is determined that it is impossible to flow data, an error notification is made and the process is terminated.

運搬する()320cを呼び出されたキャリアオブジェクト320Aは、入力ステーションオブジェクト340Aのスタート()330bを呼び出すことにより、データ生成の開始指示をおこなうとともに(ステップS103)、出力ステーションオブジェクト350Aのスタート()330bを呼び出して、データ受け入れの準備を開始するよう指示する(ステップS104)。   The carrier object 320A that has been called to carry () 320c issues a data generation start instruction by calling the start () 330b of the input station object 340A (step S103), and the start () 330b of the output station object 350A. To instruct to start preparation for data reception (step S104).

データ生成の開始指示を受け付けた入力ステーションオブジェクト340Aは、対応する入力デバイス固有のデータ生成手順によりデータ生成を開始させる。たとえば、対応する入力デバイスがスキャナ201aであれば、原稿を読み込んでデータを生成する。また、対応する入力デバイスがHDD201cであれば、ファイルをオープンしてファイル中のデータをコピーすることによりデータを生成する。なお、かかるデータの生成は、実際には荷物オブジェクト360Aを生成することによりおこなわれる。   The input station object 340A that has received the data generation start instruction starts data generation according to the data generation procedure specific to the corresponding input device. For example, if the corresponding input device is the scanner 201a, the original is read to generate data. If the corresponding input device is the HDD 201c, data is generated by opening the file and copying the data in the file. Note that such data generation is actually performed by generating the package object 360A.

生成された各荷物オブジェクト360Aは、所定の条件を満たすとキャリアオブジェクト320Aに対し、荷物オブジェクト360Aが生成された旨の報告をおこなう。かかる所定の条件は、入力ステーションオブジェクト340Aに対応する入力デバイスにより異なるものとすることができる。たとえば、ある入力デバイスでは、かかる条件を「10個の荷物オブジェクト360Aが生成されたこと」とし、かかる入力デバイスの1/10の処理速度の入力デバイスでは、かかる条件を「1個の荷物オブジェクト360Aが生成されたこと」とすれば、キャリアオブジェクト320Aは、入力デバイスの処理速度の影響を受けることなく、荷物生成の報告を受信することができる。このようなバッファリング機能により、ストリーム部113aは、入出力デバイス間の処理速度の差異を吸収する。   Each generated parcel object 360A reports to the carrier object 320A that the parcel object 360A has been generated when a predetermined condition is satisfied. Such a predetermined condition may differ depending on the input device corresponding to the input station object 340A. For example, in a certain input device, the condition is “10 baggage objects 360A have been generated”, and in an input device having a processing speed of 1/10 of the input device, the condition is “1 baggage object 360A”. The carrier object 320A can receive the report of the package generation without being affected by the processing speed of the input device. With such a buffering function, the stream unit 113a absorbs a difference in processing speed between input / output devices.

このようにして、キャリアオブジェクト320Aが、荷物生成の報告を受信したならば(ステップS105)、キャリアオブジェクト320Aは、入力ステーションオブジェクト340Aの取出す()340bを呼び出す(ステップS106)。そして、かかる操作の戻りとして、生成された荷物オブジェクト360Aを受け取る。なお、上述したように、荷物生成の報告のタイミングは入力デバイスの種類に応じて異なるので、キャリアオブジェクト320Aが受け取る荷物オブジェクト360Aの個数も異なることになる。たとえば、5個の荷物オブジェクト360Aが生成された際に、かかる報告を受けた場合には、キャリアオブジェクト320Aは、5個の荷物オブジェクト360Aを受け取ることになる。   In this way, if the carrier object 320A receives the report of the package generation (step S105), the carrier object 320A calls () 340b to be taken out of the input station object 340A (step S106). Then, as a return of the operation, the generated luggage object 360A is received. As described above, since the report timing of the package generation differs depending on the type of the input device, the number of the package objects 360A received by the carrier object 320A is also different. For example, when such a report is received when five package objects 360A are generated, the carrier object 320A receives five package objects 360A.

そして、キャリアオブジェクト320Aが受け取った荷物数が、定数320bに保持される値を上回ったならば(ステップS107)、キャリアオブジェクト320Aは、保持しているすべての荷物オブジェクト360Aの加工する()360Aを呼び出すことにより、データ単位あるいはデータ形式の変換処理を指示する(ステップS108)。なお、上述したように、この加工する()360Aは、変換処理が必要でない場合には、変換処理をおこなわない。このように、キャリアオブジェクト320Aは、荷物オブジェクト360Aにデータ単位あるいはデータ形式の変換処理を指示し、指示された各荷物オブジェクト360Aが変換処理を実行することとしたので、ストリーム部113aは、入出力デバイス間で処理対象となるデータの単位や形式が異なる場合であっても、データ単位あるいはデータ形式の差異を吸収することができる。   If the number of packages received by the carrier object 320A exceeds the value held in the constant 320b (step S107), the carrier object 320A processes all of the held package objects 360A () 360A. By invoking, a data unit or data format conversion process is instructed (step S108). As described above, this processing () 360A does not perform the conversion process when the conversion process is not necessary. Thus, since the carrier object 320A instructs the parcel object 360A to convert the data unit or data format, and the instructed parcel object 360A executes the conversion process, the stream unit 113a receives the input / output Even when the units and formats of data to be processed differ between devices, differences in data units or data formats can be absorbed.

つづいて、各荷物オブジェクト360Aのデータ変換処理が完了したならば、キャリアオブジェクト320Aは、出力ステーションオブジェクト350Aの格納する()350bを呼び出して、データ変換処理が完了した荷物オブジェクト360Aを出力ステーションオブジェクト350Aに引き渡す(ステップS109)。そして、出力ステーションオブジェクト350Aは、引き渡された荷物オブジェクト360Aの消費を開始する。   Subsequently, when the data conversion processing of each parcel object 360A is completed, the carrier object 320A calls () 350b stored in the output station object 350A, and the parcel object 360A for which the data conversion processing is completed is output to the output station object 350A. (Step S109). Then, the output station object 350A starts consuming the delivered package object 360A.

上述してきたように、本実施の形態では、入力デバイスから出力デバイスへのデータの流れを制御するストリーム部を構築するにあたり、各入力デバイスに対応する入力バッファと、各出力デバイスに対応する出力バッファと、入力バッファから出力バッファへのデータ運搬をおこなうキャリアとを有する構成としたので、入力デバイスおよび出力デバイスの処理速度の差異、取り扱うデータ形式の差異および取り扱うデータ単位の差異を吸収でき各入出力デバイスを均一に取り扱うストリーム制御処理を提供することができる。さらに、オブジェクト指向設計により、かかるストリーム部の仕組みを構築し、鉄道モデルの隠喩(メタファ)によりオブジェクトモデリングをおこない、ストリームクラス、キャリアクラス、ステーションクラス、入力ステーションクラス、出力ステーションクラス、荷物クラスおよび区間クラスを用いることにより、かかるストリーム部を実現したので、ソフトウェア開発者やソフトウェア保守要員が、ストリーム部の構成と役割を容易に把握することができるとともに、効率的かつ信頼性の高いストリーム制御処理をおこなうことができる。   As described above, in this embodiment, in constructing a stream unit that controls the flow of data from an input device to an output device, an input buffer corresponding to each input device and an output buffer corresponding to each output device And a carrier that carries data from the input buffer to the output buffer, it can absorb differences in processing speed of input devices and output devices, differences in data formats handled, and differences in data units handled. A stream control process for uniformly handling devices can be provided. Furthermore, the structure of the stream part is constructed by object-oriented design, and object modeling is performed by a metaphor of the railway model, and the stream class, carrier class, station class, input station class, output station class, luggage class and section By using classes, this stream unit has been realized, so software developers and software maintenance personnel can easily grasp the configuration and role of the stream unit, and perform efficient and reliable stream control processing. Can be done.

なお、本実施の形態の画像形成装置で実行されるストリーム制御プログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD−R(CD Recordable)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、CPU11が上記記憶媒体から、ストリーム制御プログラムを読み出してMEM−P12上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。   The stream control program executed by the image forming apparatus of the present embodiment is a file in an installable format or an executable format, and is a CD-ROM (Compact Disc Read Only Memory), a flexible disc (FD), a CD- You may comprise so that it may record and provide on computer-readable recording media, such as R (CD Recordable) and DVD (Digital Versatile Disk). In this case, the CPU 11 reads out the stream control program from the storage medium and loads it onto the MEM-P 12, thereby causing the image forming apparatus to realize the above-described steps, units, or units.

また、ストリーム制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかるストリーム制御プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。   The stream control program may be provided by being stored on a computer connected to a network such as the Internet and downloaded via the network. Further, such a stream control program may be provided or distributed via a network such as the Internet.

以上のように、本発明にかかるストリーム制御プログラムおよび画像形成装置は、入力デバイスから出力デバイスに流れるデータのストリーム制御処理をおこなう各種装置のストリーム制御に有用であり、特に、画像形成装置のストリーム制御に適している。   As described above, the stream control program and the image forming apparatus according to the present invention are useful for stream control of various apparatuses that perform stream control processing of data flowing from the input device to the output device, and in particular, stream control of the image forming apparatus. Suitable for

複合機をとりまくネットワーク環境を示すネットワーク図である。1 is a network diagram showing a network environment surrounding a multifunction peripheral. 複合機のハードウェアを説明するための説明図である。FIG. 3 is an explanatory diagram for explaining hardware of a multifunction peripheral. 複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。FIG. 3 is an explanatory diagram for explaining a hierarchical structure of hardware and software in a multifunction peripheral. 統合アプリケーションの構成を説明するための説明図である。It is explanatory drawing for demonstrating the structure of an integrated application. 統合アプリケーションの構成を表したUMLクラス図である。It is a UML class diagram showing the configuration of an integrated application. 複合機の操作パネルを説明するための説明図である。FIG. 6 is an explanatory diagram for explaining an operation panel of the multifunction machine. ストリーム部の処理概要を説明するための説明図である。It is explanatory drawing for demonstrating the process outline | summary of a stream part. ストリーム部のオブジェクトモデリングの概要を説明するための説明図である。It is explanatory drawing for demonstrating the outline | summary of the object modeling of a stream part. ストリーム部のオブジェクト構成の概要を説明するための説明図である。It is explanatory drawing for demonstrating the outline | summary of the object structure of a stream part. ストリーム部のクラス構成を示すUMLクラス図である。It is a UML class diagram showing a class configuration of a stream part. ストリーム部が実行指示を受け付けた際の操作の実行手順を示すUMLシーケンス図である。It is a UML sequence diagram which shows the execution procedure of operation when a stream part receives execution instruction. 複合機に搭載されるソフトウェア構成の変遷を示す説明図である。FIG. 6 is an explanatory diagram illustrating a transition of a software configuration installed in a multifunction machine. 従来の複合機におけるハードウェアおよびソフトウェアの階層構造を説明するための説明図である。It is explanatory drawing for demonstrating the hierarchical structure of the hardware and software in the conventional multifunction machine.

符号の説明Explanation of symbols

1 画像形成装置(複合機)
10 コントローラ
11 CPU
12 MEM−P
12a ROM
12b RAM
13 NB
14 SB
15 AGP
16 ASIC
17 MEM−C
18 HDD
20 キーボード(オペレーションパネル)
30 FCU
40 USB
50 IEEE1394
60 エンジン部(Engine)
100 ソフトウェア
101 アプリケーション層
102 サービス層
102a スキャナ制御部
102b プロッタ制御部
102c 蓄積制御部
102d 配信/メール送受信制御部
102e FAX送受信制御部
102f ネットワーク通信制御部
102g その他の制御部
103 オペレーティングシステム
110 統合アプリケーション
111 操作系サブシステム
112 管理系サブシステム
113 実行系サブシステム
113a ストリーム部
113b 実行制御部
120 コピーアプリケーション
130 スキャナアプリケーション
140 ファックスアプリケーション
150 プリンタアプリケーション
200 ハードウェア
201 ハードウェアリソース
201a スキャナ
201b プロッタ
201c HDD
201d ネットワーク
201e その他のリソース
310 ストリームクラス
310A ストリームオブジェクト
310a 状態
310b 同期・並行
310c 実行する()
320 キャリアクラス(キャリア手段の一例)
320A キャリアオブジェクト(キャリア手段の一例)
320a 状態
320b 定数
320c 運搬する()
330 ステーションクラス(ステーション手段の一例)
330A ステーションオブジェクト(ステーション手段の一例)
330a 最大格納数
330b スタート()
340 入力ステーションクラス(入力ステーション手段の一例)
340A 入力ステーションオブジェクト(入力ステーション手段の一例)
340a 状態
340b 取出す()
350 出力ステーションクラス(出力ステーション手段の一例)
350A 出力ステーションオブジェクト(出力ステーション手段の一例)
350a 状態
350b 格納する()
360 荷物クラス(荷物手段の一例)
360A 荷物オブジェクト(荷物手段の一例)
360a コンバート
360b 加工する()
370 区間クラス(区間手段の一例)
370A 区間オブジェクト(区間手段の一例)
370a 区間状態
370b 使用する()
400 操作パネル
401 初期設定キー
402 コピーキー
403 コピーサーバーキー
404 プリンタキー
405 送信キー
406 テンキー
407 クリア/ストップキー
408 スタートキー
409 予熱キー
410 リセットキー
420 液晶タッチパネル
501 サービス層分離前アプリケーション
502 サービス層分離後アプリケーション
503 共通ルーチン分離アプリケーション
504 オブジェクト指向アプリケーション
1 Image forming device (multifunction machine)
10 Controller 11 CPU
12 MEM-P
12a ROM
12b RAM
13 NB
14 SB
15 AGP
16 ASIC
17 MEM-C
18 HDD
20 Keyboard (Operation panel)
30 FCU
40 USB
50 IEEE1394
60 Engine
DESCRIPTION OF SYMBOLS 100 Software 101 Application layer 102 Service layer 102a Scanner control part 102b Plotter control part 102c Accumulation control part 102d Delivery / mail transmission / reception control part 102e FAX transmission / reception control part 102f Network communication control part 102g Other control part 103 Operating system 110 Integrated application 111 Operation System subsystem 112 management system subsystem 113 execution system subsystem 113a stream unit 113b execution control unit 120 copy application 130 scanner application 140 fax application 150 printer application 200 hardware 201 hardware resource 201a scanner 201b plotter 201c HDD
201d network 201e other resources 310 stream class 310A stream object 310a state 310b synchronous / parallel 310c execute ()
320 Carrier class (example of carrier means)
320A carrier object (an example of carrier means)
320a state 320b constant 320c transport ()
330 Station class (an example of station means)
330A station object (an example of station means)
330a Maximum storage number 330b Start ()
340 Input station class (an example of input station means)
340A input station object (an example of input station means)
340a State 340b Take out ()
350 Output station class (an example of output station means)
350A output station object (an example of output station means)
350a state 350b store ()
360 luggage class (an example of luggage means)
360A luggage object (an example of luggage means)
360a Convert 360b Process ()
370 Section class (an example of section means)
370A Section object (an example of section means)
370a Section state 370b Use ()
400 Operation Panel 401 Initial Setting Key 402 Copy Key 403 Copy Server Key 404 Printer Key 405 Transmission Key 406 Ten Key 407 Clear / Stop Key 408 Start Key 409 Preheating Key 410 Reset Key 420 LCD Touch Panel 501 Application Before Service Layer Separation 502 After Service Layer Separation Application 503 Common routine separation application 504 Object-oriented application

Claims (8)

入力デバイスおよび出力デバイスを有し、前記入力デバイスから入力したデータを加工して前記出力デバイスに出力するデータ加工装置に搭載され、利用者により選択された入力デバイスおよび出力デバイス間のデータの流れを制御するストリーム制御プログラムであって、
各入力デバイスに対応し、入力デバイスが出力する所定形式のデータを所定の大きさの単位入力データとして複数個保持可能な入力バッファ手段と、
各出力デバイスに対応し、出力デバイスへ入力する所定形式のデータを所定の大きさの単位出力データとして複数個保持可能な出力バッファ手段と、
前記入力バッファ手段が保持する単位入力データを取得し、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納するキャリア手段と、
してコンピュータを機能させ、
前記入力バッファ手段は、前記単位入力データに対応する荷物手段を生成し、
前記荷物手段は、前記入力バッファ手段が保持する前記単位入力データの個数が、前記入力デバイスの処理速度に基づく所定数に達したか否かを判断し、前記単位入力データの個数が前記所定数に達した場合に、前記荷物手段が生成された旨を前記キャリア手段に通知することを特徴とするストリーム制御プログラム。
A data processing apparatus having an input device and an output device, mounted on a data processing apparatus that processes data input from the input device and outputs the processed data to the output device, and flows data between the input device and the output device selected by the user A stream control program for controlling,
An input buffer means corresponding to each input device and capable of holding a plurality of data in a predetermined format output by the input device as unit input data of a predetermined size;
Output buffer means corresponding to each output device and capable of holding a plurality of data in a predetermined format to be input to the output device as unit output data of a predetermined size;
Carrier means for acquiring unit input data held by the input buffer means, converting the unit input data into the unit output data and storing the unit input data in the output buffer means;
Make your computer work,
The input buffer means generates a luggage means corresponding to the unit input data,
The parcel means determines whether the number of unit input data held by the input buffer means has reached a predetermined number based on the processing speed of the input device, and the number of unit input data is the predetermined number. when it reaches the stream control program and notifies the effect that said package means is generated in the carrier means.
前記キャリア手段は、前記入力バッファ手段が保持する前記単位入力データの個数が前記所定数に達したことにより前記荷物手段が生成された旨を通知された場合に、該単位入力データの取得を開始し、取得した該単位入力データの個数が前記所定数に達したならば、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納することを特徴とする請求項1に記載のストリーム制御プログラム。 Said carrier means, when said input buffer means is notified that said package means has been generated by the number of the unit input data held reaches the predetermined number, start obtaining the unit input data and, if the number of the unit input data acquired reaches a predetermined number, according to claim 1, characterized in that storing said unit input data to said output buffer means is converted into the unit output data Stream control program. 前記データの流れごとに生成されるストリーム手段をさらに備え、
前記ストリーム手段は、1または複数の前記キャリア手段を生成して管理し、
前記キャリア手段は、前記入力ステーション手段が保持する前記単位入力データを前記単位出力データに変換して前記出力ステーション手段に格納することを特徴とする請求項1または2に記載のストリーム制御プログラム。
Further comprising stream means generated for each flow of data,
The stream means generates and manages one or more carrier means;
The stream control program according to claim 1 or 2, wherein the carrier means converts the unit input data held by the input station means into the unit output data and stores the unit output data in the output station means.
前記キャリア手段は、前記荷物手段を前記入力ステーション手段から取得し、
前記荷物手段は、前記キャリア手段の指示により、前記単位入力データを前記単位出力データに変換し、
前記キャリア手段は、変換後の荷物手段を前記出力ステーション手段に格納する
ことを特徴とする請求項3に記載のストリーム制御プログラム。
The carrier means obtains the luggage means from the input station means;
The package means converts the unit input data into the unit output data according to an instruction from the carrier means,
The stream control program according to claim 3, wherein the carrier means stores the converted luggage means in the output station means.
前記荷物手段は、前記単位入力データから前記単位出力データへの変換情報を保持し、該変換情報に基づいてデータ変換の必要性を判定したうえで、データ変換が必要であると判定した場合には、データ変換をおこなうことを特徴とする請求項4に記載のストリーム制御プログラム。   When the baggage means holds conversion information from the unit input data to the unit output data, determines the necessity of data conversion based on the conversion information, and determines that data conversion is necessary 5. The stream control program according to claim 4, wherein data conversion is performed. 前記ストリーム手段は、前記キャリア手段が前記出力ステーション手段へのデータ格納を完了した後に次のキャリア手段を生成する同期動作と、前記データ格納の完了を待ち合わせることなく次のキャリア手段を生成する並行動作とを切替える動作情報を保持し、該動作情報に基づいて前記キャリア手段の生成をおこなうことを特徴とする請求項3、4または5に記載のストリーム制御プログラム。   The stream means generates a next carrier means after the carrier means completes data storage in the output station means, and a parallel operation that generates the next carrier means without waiting for completion of the data storage. 6. The stream control program according to claim 3, wherein the carrier information is generated based on the operation information. 前記入力ステーション手段と前記出力ステーション手段との組合せからなる区間の使用可否状態を保持し、該使用可否状態を前記キャリア手段に通知または応答する区間手段をさらに備えたことを特徴とする請求項1〜6のいずれか一つに記載のストリーム制御プログラム。   2. The apparatus according to claim 1, further comprising section means for holding a use / non-use state of a section formed by a combination of the input station means and the output station means and notifying or responding to the carrier means of the use / non-use state. The stream control program as described in any one of -6. 利用者により選択された入力デバイスおよび出力デバイス間のデータの流れを制御する画像形成装置であって、
各入力デバイスに対応し、入力デバイスが出力する所定形式のデータを所定の大きさの単位入力データとして複数個保持可能な入力バッファ手段と、
各出力デバイスに対応し、出力デバイスへ入力する所定形式のデータを所定の大きさの単位出力データとして複数個保持可能な出力バッファ手段と、
前記入力バッファ手段が保持する単位入力データを取得し、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納するキャリア手段と、を備え、
前記入力バッファ手段は、前記単位入力データに対応する荷物手段を生成し、
前記荷物手段は、前記入力バッファ手段が保持する前記単位入力データの個数が、前記入力デバイスの処理速度に基づく所定数に達したか否かを判断し、前記単位入力データの個数が前記所定数に達した場合に、前記荷物手段が生成された旨を前記キャリア手段に通知することを特徴とする画像形成装置。
An image forming apparatus for controlling a data flow between an input device and an output device selected by a user,
An input buffer means corresponding to each input device and capable of holding a plurality of data in a predetermined format output by the input device as unit input data of a predetermined size;
Output buffer means corresponding to each output device and capable of holding a plurality of data in a predetermined format to be input to the output device as unit output data of a predetermined size;
Carrier means for acquiring unit input data held by the input buffer means, converting the unit input data into the unit output data and storing the unit input data in the output buffer means,
The input buffer means generates a luggage means corresponding to the unit input data,
The parcel means determines whether the number of unit input data held by the input buffer means has reached a predetermined number based on the processing speed of the input device, and the number of unit input data is the predetermined number. The image forming apparatus is configured to notify the carrier means that the package means has been generated when the value reaches the above.
JP2004270347A 2004-09-16 2004-09-16 Stream control program and image forming apparatus Expired - Fee Related JP4656897B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004270347A JP4656897B2 (en) 2004-09-16 2004-09-16 Stream control program and image forming apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004270347A JP4656897B2 (en) 2004-09-16 2004-09-16 Stream control program and image forming apparatus

Publications (2)

Publication Number Publication Date
JP2006085492A JP2006085492A (en) 2006-03-30
JP4656897B2 true JP4656897B2 (en) 2011-03-23

Family

ID=36163940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004270347A Expired - Fee Related JP4656897B2 (en) 2004-09-16 2004-09-16 Stream control program and image forming apparatus

Country Status (1)

Country Link
JP (1) JP4656897B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222335A (en) * 1998-06-30 2000-08-11 Seiko Epson Corp Device control system, its method and record medium for recording program for constructing the same system
JP2001024839A (en) * 1999-07-06 2001-01-26 Canon Inc Composite picture processor, its data processing method, and storing medium storing computer-readable program
JP2004157982A (en) * 2002-09-09 2004-06-03 Canon Inc Printing system, information processor, method for controlling printing, computer program, and computer readable storage medium

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4330665B2 (en) * 1996-10-30 2009-09-16 株式会社リコー Client server system and image processing apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222335A (en) * 1998-06-30 2000-08-11 Seiko Epson Corp Device control system, its method and record medium for recording program for constructing the same system
JP2001024839A (en) * 1999-07-06 2001-01-26 Canon Inc Composite picture processor, its data processing method, and storing medium storing computer-readable program
JP2004157982A (en) * 2002-09-09 2004-06-03 Canon Inc Printing system, information processor, method for controlling printing, computer program, and computer readable storage medium

Also Published As

Publication number Publication date
JP2006085492A (en) 2006-03-30

Similar Documents

Publication Publication Date Title
JP5509754B2 (en) Software management apparatus, software distribution system, installation method and program
CN102147715B (en) Method, system and computing device facilitating non-driven printing
JP4838608B2 (en) Workflow processing apparatus, workflow processing method, and program executed by computer
US7663778B2 (en) Document processor, image forming apparatus, document processing method, and computer program
CN102147717A (en) Printer, method and system facilitating non-driven printing
JP4690355B2 (en) Information processing apparatus and information processing program
JP2010128989A (en) Information processing apparatus, information processing method, information processing program, and information processing system
JP2006115482A (en) Setting management device, setting management program and image forming apparatus
JP4474440B2 (en) Provision of services using multifunction peripherals (MFPs)
JP2006229582A (en) Document processor, image forming apparatus and document processing program
JP4656897B2 (en) Stream control program and image forming apparatus
JP2009301538A (en) Service flow processing apparatus and method
JP2007094674A (en) Apparatus and use restriction program
JP2022032145A (en) Information processing system, processing execution system, processing execution method, and program
JP2007336077A (en) Image forming apparatus, setting change reporting method, and setting change reporting program
JP4450699B2 (en) Request management apparatus, image forming apparatus, job processing instruction method, and job processing instruction program
JP4787614B2 (en) Image forming apparatus and application management program
JP2006221454A (en) Application management device, application management program and image forming apparatus
JP4490852B2 (en) Document processing apparatus, image forming apparatus, and document processing program
JP2007110410A (en) Image forming apparatus and stream control program
JP2006087028A (en) Address book management program and image forming apparatus
JP4538381B2 (en) I / O management device, I / O management method, and I / O management program
JP2007082131A (en) Setting management apparatus, method, and program
JP2006085477A (en) Accounting management program and image formation apparatus
JP2007080209A (en) Charging management apparatus, charging management method and charging management program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100915

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100922

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees