JP4656897B2 - Stream control program and image forming apparatus - Google Patents
Stream control program and image forming apparatus Download PDFInfo
- 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
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
また、特許文献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.
しかしながら、この特許文献1で開示されている発明は、ハードウェアを制御する処理部分を共通化するものであり、各アプリケーションの内部処理全般を共通化するものではない。このため、複合機上のアプリケーションには、開発効率の向上を図るうえで改善の余地が残されている。
However, the invention disclosed in
たとえば、スキャナデバイスなどの入力デバイスをとおして入力される画像データを、プリンタデバイスなどの出力デバイスに出力する場合において、利用者の指示に応じて入力デバイスおよび出力デバイスの選択をおこない、選択したデバイス間のデータの流れを制御するストリーム制御処理は、複写機上の各アプリケーションに共通して存在する処理であるが、ハードウェアを直接制御する処理ではないため各アプリケーションで別個に実現されており、共通化することが可能である。 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
また、請求項2の発明にかかるストリーム制御プログラムは、請求項1の発明において、前記キャリア手段は、前記入力バッファ手段が保持する前記単位入力データの個数が前記所定数に達したことにより前記荷物手段が生成された旨を通知された場合に、該単位入力データの取得を開始し、取得した該単位入力データの個数が前記所定数に達したならば、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納することを特徴とする。
Further, the stream control program according to the invention of claim 2 is the invention of
また、請求項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
また、請求項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
また、請求項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
図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
たとえば、複合機1は、通常のコピー機能に加えて、クライアントPCからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントPCからのファックス要求により文書データ等をサーバPCに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有するようになった。
For example, in addition to the normal copy function, the
こうして複合化とネットワーク化の進展により必要となった多くの機能を実現するため、複合機1に搭載されるソフトウェアは、規模が大きく、複雑なものとなっている。そして、それにともなって、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。
In this way, in order to realize many functions required by the progress of compounding and networking, the software installed in the
図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
コントローラ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
CPU11は、複合機1の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。
The
NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
The
MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
The MEM-
SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
The
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
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
The MEM-
AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
The
図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
また、かかるハードウェア200に搭載されるソフトウェア100は階層化されており、オペレーティングシステム103の上層にはサービス層102が構築され、このサービス層102の上層にはアプリケーション層103が構築されている。そして、サービス層102は、各ハードウェアリソース(201a〜201e)を制御するドライバーに相当する、スキャナ制御102部a、プロッタ制御部102b、蓄積制御部102c、配信/メール送受信制御部102d、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gを有する。
The
ここで、図3に示したソフトウェア100が、かかる階層構造をとるに至った経緯について、図12および図13を用いて説明する。図12は、複合機1に搭載されるソフトウェア構成の変遷を示す説明図である。図12のサービス層分離前アプリケーション501に示すように、多機能化した複合機1に搭載されるソフトウェアは、コピーアプリケーション、FAXアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図3に示したオペレーティングシステム103上で動作していた。
Here, how the
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー(サービス層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
しかしながら、複合機1のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層101の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部102aや蓄積制御部102cといったドライバーと通信をおこなう処理や、各種機能が取り扱うデータの流れを制御するストリーム制御などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
However, as the networking and multi-functionalization of the
この問題を解決するため、図12の共通ルーチン分離アプリケーション503に示すように、かかる同様な処理(共通処理部分)を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
In order to solve this problem, as shown in the common
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。 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
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。 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
たとえば、コピーアプリケーション120は、コピー機能を実現するために、スキャナ制御部102a、プロッタ制御部102b、蓄積制御部102cおよびその他の制御部102gとデータの送受信をおこなう。また、ファックスアプリケーション140は、ファックス機能を実現するために、プロッタ制御部102b、蓄積制御部102c、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gとデータの送受信をおこなう。このように、アプリケーション層101の各アプリケーションとサービス層102の各ドライバー間の通信は、複雑なものとなっていた。
For example, the
図3の説明に戻ると、上述したオブジェクトモデリングにより、アプリケーション層101に存在した複数のアプリケーションは、統合アプリケーション110に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション110を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層101のアプリケーションと、サービス層102の各ドライバー間の通信は、図13と比較して単純になっている。
Returning to the description of FIG. 3, a plurality of applications existing in the
次に、統合アプリケーション110の内部構成について説明する。図4は、統合アプリケーション110の内部構成を示すブロック図である。同図に示すように、統合アプリケーション110は、操作系サブシステム111と、管理系サブシステム112と、実行系サブシステム113とを有する。
Next, the internal configuration of the
操作系サブシステム111は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム111は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理をおこなう。
The
管理系サブシステム112は、画像形成装置1の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム112は、ハードウェアリソース201およびこのハードウェアリソース201が保持するデータ状態を管理するサービスをおこなう。
The
実行系サブシステム113は、ユーザからの要求の実行を担当するソフトウェア群である。具体的には、この実行系サブシステム113は、コピー要求がなされた場合には、原稿の読み取りから成果物の出力までの処理をおこなう。
The
操作系サブシステム111、管理系サブシステム112および実行系サブシステム113は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション110全体として複合機1に必要とされるサービスの提供をおこなう。
The
そして、実行系サブシステム113は、本実施の形態の特徴部分であるストリーム部113aと実行制御部113bとを有する。このストリーム部113aは、実行制御部113bからデータの流れの制御に関する要求を受付け、入出力デバイス間の処理速度の差異や、取り扱うデータ形式の差異といった各入出力デバイス固有の性質に基づく差異を吸収し、入力デバイスから出力デバイスへのデータの流れを制御する処理(ストリーム制御処理)をおこなう。
The
図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
図5に示したように、統合アプリケーション110は、操作系サブシステム111、管理系サブシステム112および実行系サブシステム113の3つのパッケージを内部に有するパッケージである。さらに、実行系サブシステム113は、本実施の形態の特徴部分であるストリーム部113aと実行制御部113bとを内部に有するパッケージである。そして、操作系サブシステム111、管理系サブシステム112および実行系サブシステム113を相互に結ぶ直線は、各パッケージ間に処理依頼(たとえば、メッセージ送受信)などの関連があることを示している。なお、操作系サブシステム111、管理系サブシステム112および実行系サブシステム113のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すUMLのシンボルである。
As shown in FIG. 5, the
次に、本実施の形態の特徴部分であるストリーム部113aについて詳細に説明する。なお、このストリーム部113aは、オブジェクト指向に基づいて設計するにあたって、既存の処理を単純にオブジェクト化せず、機能追加や改修をより一層容易におこなうことができるようにオブジェクトモデルを構成した。かかるオブジェクトモデルの構成について図6〜図9を用いて説明しておく。
Next, the
図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
たとえば、利用者が、複合機1に紙原稿をセットしてコピーキー402を押下してコピー処理を選択し、スタートキー408を押下したならば、スキャナ201aデバイスからプロッタ201bデバイスへのデータの流れが発生する。この場合、入力デバイスであるスキャナ201aデバイスと、出力デバイスであるプロッタ201bデバイスとは、処理速度、取り扱うデータ単位およびデータ形式が異なる。また、ネットワーク化の進展により、ネットワークを経由した複数の利用者が、複合機1にプリンタ処理やFAX送信などの指示を同時に与える場合には、複合機1内には、複数のデータの流れが存在することになる。これらのことから、かかるデータの流れ(ストリーム)の制御を効率良く、かつ、高い信頼性をもっておこなう必要がある。
For example, if the user sets a paper document in the
図7は、本実施の形態の特徴部分であるストリーム部113aの処理概要を説明するための説明図である。入力デバイスから出力デバイスへのデータの流れを制御する場合においては、入出力デバイス間の処理速度の差異や、取り扱うデータ単位あるいはデータ形式の差異といった各入出力デバイス固有の性質に基づく差異をいかにして吸収するかが問題となる。
FIG. 7 is an explanatory diagram for explaining the processing outline of the
特に、多機能化に伴い多くの入出力デバイスを搭載するに至った複合機1においては、かかる問題は顕著である。すなわち、各入出力デバイスが取り扱うデータ形式やデータ単位はそれぞれ異なり、データ処理速度もそれぞれ異なるため、数多くの入出力デバイスについて、データ形式、データ単位およびデータ処理速度の差異をすべて吸収するようストリーム部113aを設計する必要がある。なお、図7に示す、「○」は、入力デバイスが生成する所定の大きさのデータをあらわし、「◇」は、出力デバイスに渡される(出力デバイスが消費する)所定の大きさのデータをあらわすこととする。
In particular, such a problem is remarkable in the
そこで、本実施の形態の特徴部分であるストリーム部113aは、各入力デバイスにそれぞれ対応する入力バッファと、各出力デバイスにそれぞれ対応する出力バッファを有する構成とするとともに、入力バッファから出力バッファへデータを運搬するキャリアを有する構成とした。入力バッファおよび出力バッファを有する構成とすることにより、入力デバイスと出力デバイスの処理速度が異なる場合であっても、各デバイスが取り扱うデータを一時的に保持することができるので、かかる処理速度の差異を吸収することができる。
Therefore, the
同図では、入力デバイスの処理速度が、出力デバイスの処理速度よりも大きい場合を示しており、入力デバイスが生成したデータは、いったん入力バッファに保持され、適宜、キャリアに載せられて出力バッファに運搬される。すなわち、各入出力デバイスに対応するバッファを設けるとともに、入出力バッファ間を移動するキャリアの移動頻度および積載データ量を制御することとしたので、本実施の形態の特徴部分であるストリーム部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
また、入力バッファから出力バッファへデータを運搬するキャリアは、キャリアに積載するデータのデータ形式の変換をおこなうこととしたので、入出力バッファ間のデータ形式の差異を吸収することができる。さらに、キャリアが一度に運搬するデータの個数を制御することとしたので、入出力バッファ間のデータ単位の差異を吸収することができる。このように、データ形式の差異およびデータ単位の差異をキャリアが吸収することとしたので、本実施の形態の特徴部分であるストリーム部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
本実施の形態の特徴部分であるストリーム部113aは、上述したように、入力バッファ、出力バッファおよびキャリアを有する構成としたうえで、かかるストリーム部113aのオブジェクトモデリングをおこなった。オブジェクトモデリングをおこなうにあたっては、鉄道のモデルの隠喩(メタファ)により、ストリーム部113aをモデリングすることとした。かかるオブジェクトモデリングにより、並行したデータの流れの制御を高い信頼性をもっておこなうことができ、機能追加にも柔軟に対処できるストリーム処理の仕組みの提供が可能となることが予想される。
As described above, the
図8は、ストリーム部113aのオブジェクトモデリングの概要を説明するための説明図である。同図に示すように、鉄道のモデルにおいては、運搬対象となる「人」は、運搬手段である「電車」により、人が乗り物を待つ場所である「駅」から他の駅に運ばれる。そして、駅と駅を結ぶ線路にあたる「区間」には、区間の通行可否を示す「信号」が設けられ、運搬手段である「電車」の運行を制限する。そして、電車の動きを制御する「管制室」により、運搬手段である「電車」の運行がコントロールされ、複数の「電車」を用いて、駅から駅への人の運搬がおこなわれる。
FIG. 8 is an explanatory diagram for explaining an outline of object modeling of the
かかる鉄道のモデルを、ストリーム部113aのモデルにあてはめると以下のようになる。すなわち、運搬対象となる「荷物」は、運搬手段である「キャリア」により、荷物がキャリアを待つ場所である「ステーション」から他のステーションに運ばれる。そして、ステーションとステーションを結ぶ線路にあたる「区間」には、区間の通行可否を示す「区間の状態」が設けられ、運搬手段である「キャリア」の運行を制限する。そして、キャリアの動きを制御する「ストリーム」により、運搬手段である「キャリア」の運行がコントロールされ、複数の「キャリア」を用いて、ステーションからステーションへの荷物の運搬がおこなわれる。
When such a railway model is applied to the model of the
上述した、オブジェクトモデリングにより、本実施の形態の特徴部分であるストリーム部113aは、「荷物クラス」、「キャリアクラス」、「ステーションクラス」、「区間クラス」および「ストリームクラス」を有する構成とした。なお、入力デバイスおよび出力デバイスに対応させるため、「ステーションクラス」のサブクラスとして、「入力ステーションクラス」および「出力ステーションクラス」を設けた。
Through the above-described object modeling, the
次に、ストリーム部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
この組合せの中から入力デバイス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
次に、クラスと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
このように、各クラスは、データ(属性)を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理(操作)を所持するための操作区画とを有している。これらのクラスは、プログラム(統合アプリケーション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
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「+」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「記入する()」のように「()」記号を付することが通例であり、「(引数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 “(
次に、本実施の形態の特徴部分であるストリーム部113aのクラスの概要について説明する。上述したように、ストリーム部113aは、ストリームクラス310、キャリアクラス320、ステーションクラス330、入力ステーションクラス340、出力ステーションクラス350、荷物クラス360および区間クラス370を有する。以下では、まず、これらのクラスの概要について説明する。
Next, an overview of the class of the
ストリームクラス310は、入出力デバイス間のストリーム制御要求を受け付けるとともにデータの流れの状態を管理クラスであり、受け付けたストリーム制御要求に基づいてキャリアクラス320のオブジェクトを生成し、かかるオブジェクトを制御する処理をおこなう。具体的には、このストリームクラス310は、属性として、状態310aおよび同期・並行310bを有し、操作として実行する()310cを有する。なお、かかるストリームクラス310を実体化したストリームオブジェクト310Aが生成されると、状態310aおよび同期・並行310bはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。
The
状態310aは、入力デバイスから出力デバイスへのデータの流れ(ストリーム)の状態を保持する。たとえば、ストリームの状態が実行中状態である場合において、利用者が操作パネル400を操作することにより、いったん指示したコピー処理を一時中断したり、出力先を記録紙からHDD201cに変更したりした場合には、ストリームの状態が休止中状態や変更中状態に遷移する。このように、状態310aは、利用者の指示に起因して変化するストリーム状態をあらわす。
The
同期・並行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
たとえば、スキャナ201aから10枚の紙原稿を読み取り、メール送信する場合には、10枚すべての読み取り完了を待ってメール送信する必要があるので、各キャリアオブジェクト320Aを「同期動作」させることになる。一方、10枚の紙原稿を記録紙にコピーする場合には、10枚すべての読み取り完了を待つ必要はなく、随時、記録紙への印刷処理をおこなえばよいので、各キャリアオブジェクト320Aを「並行動作」させることになる。
For example, when 10 paper originals are read from the
実行する()310cは、実行系サブシステム113からストリーム開始要求を受け付け、キャリアオブジェクト320Aを生成するとともに、生成したキャリアオブジェクト320Aにデータ運搬を指示する処理をおこなう。
The executing () 310c receives a stream start request from the executing
キャリアクラス320は、入出力デバイス間のデータ運搬を担当するクラスである。このキャリアクラス320は、所定の大きさのデータを格納する荷物オブジェクト360Aを、入力ステーションオブジェクト340Aから受け取り、出力ステーションオブジェクト350Aに渡す処理をおこなう。具体的には、このキャリアクラス320は、属性として、状態320aおよび定数320bを有し、操作として、運搬する()320cを有する。なお、かかるキャリアクラス320を実体化したキャリアオブジェクト320Aが生成されると、状態320aおよび定数320bはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。
The
状態320aは、現在のキャリアクラス320の処理状態を保持する。この状態には、たとえば、荷積中、運搬中および荷降中がある。荷積中状態とは、入力ステーションオブジェクト340Aから荷物オブジェクト360Aを受け取る処理中の状態をあらわし、運搬中状態とは、入力ステーションオブジェクト340Aから荷物オブジェクト360Aの受け取りを完了し、出力ステーションオブジェクト350Aへかかる荷物オブジェクト360Aを渡す前の状態をあらわし、荷降中状態とは、出力ステーションオブジェクト350Aへかかる荷物オブジェクト360Aを渡す処理中の状態をあらわす。このような状態を状態320aが保持することにより、キャリアクラス320は、データの運搬状態を一元的に管理することができる。
The
定数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
キャリアオブジェクト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
運搬する()320cは、ストリームオブジェクト310Aから呼び出され、入力ステーションオブジェクト340Aおよび出力ステーションオブジェクト350Aに、データ生成の開始およびデータ受取りの準備を指示する。そして、入力ステーションオブジェクト340Aの指示により生成された荷物オブジェクト360Aの個数が、上述した定数320bに保持される値に達するまでデータの運搬を待ち合わせる。
The carry () 320c is called from the
そして、荷物オブジェクト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
ステーションクラス330は、各入出力デバイスが取り扱うデータを一時的に保持して速度調整をおこなうクラスである。このステーションクラス330は、入力ステーションクラス340および出力ステーションクラス350の上位クラス(スーパークラス)であり、ステーションクラス330自体が実体化されることはないが、ステーションクラス330の属性および操作は、下位クラス(サブクラス)である入力ステーションクラス340および出力ステーションクラス350に継承される。
The
最大格納数330aは、ステーションクラス330が保持可能な荷物オブジェクト360Aの最大数を保持する。荷物オブジェクト360aの個数が、この最大格納数330aが保持する値を上回ると、ステーションクラス330は、実行制御部113bに対してエラー通知をおこなう。なお、上述したように、この属性(最大格納数330a)は、サブクラスである入力ステーションクラス340および出力ステーションクラス350に継承される。
The maximum storage number 330a holds the maximum number of
スタート()330bは、ステーションクラス330が何らかの処理を開始するためのトリガーを与えるための処理をおこなう。このスタート()330bは、サブクラスである入力ステーションクラス340および出力ステーションクラス350に継承され、各サブクラスにおける具体的な処理によりオーバーライド(override)される。なお、かかる具体的な処理の説明については、後述する入力ステーションクラス340および出力ステーションクラス350のクラス説明においておこなう。
The start () 330 b performs processing for giving a trigger for the
入力ステーションクラス340は、ステーションクラス330のサブクラスであり入力デバイスから受け付けたデータを一時的に保持する処理をおこなうクラスである。この入力ステーションクラス340は、キャリアクラス320からの指示に基づき、荷物オブジェクト360Aの生成を開始するとともに、かかる荷物オブジェクト360Aを一時的に保持することにより、異なる処理速度を有する入力デバイスを一律に取り扱うための入力バッファとしての役割を担うクラスである。
The input station class 340 is a subclass of the
具体的には、この入力ステーションクラス340は、属性として、状態340aを有し、操作として、取出す()340bを有するとともに、ステーションクラス330から、属性として、最大格納数330aを継承し、操作として、スタート()330bを継承する。なお、かかる入力ステーションクラス340を実体化した入力ステーションオブジェクト340Aが生成されると、状態340aおよび最大格納数330aはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。
Specifically, this input station class 340 has a
状態340aは、入力ステーションクラス340に対応する入力デバイスの現在の状態を保持する。たとえば、かかる状態には、データ生成中の状態、何もしていない状態、要求を受け付けることができない状態などの状態がある。また、ステーションクラス330から継承した最大格納数330aは、入力ステーションクラス340が保持可能な荷物オブジェクト360Aの最大数を保持する。
The
取出す()340bは、キャリアクラス320から呼び出され、入力ステーションクラス340の指示により生成された荷物オブジェクト360Aを、かかるキャリアクラス320に返す処理をおこなう。また、ステーションクラス330から継承したスタート()330bは、入力ステーションクラス340に、荷物オブジェクト360Aの生成の開始指示をおこなう。
The take-out () 340 b is called from the
出力ステーションクラス350は、ステーションクラス330のサブクラスであり、出力デバイスに送り出すデータを一時的に保持する処理をおこなうクラスである。この出力ステーションクラス350は、キャリアクラス320からの指示に基づき、荷物オブジェクト360Aを受け付ける準備をおこなうとともに、かかる荷物オブジェクト360Aを一時的に保持することにより、異なる処理速度を有する出力デバイスを一律に取り扱うための出力バッファとしての役割を担うクラスである。
The output station class 350 is a subclass of the
具体的には、この出力ステーションクラス350は、属性として、状態350aを有し、操作として、格納する()350bを有するとともに、ステーションクラス330から、属性として、最大格納数330aを継承し、操作として、スタート()330bを継承する。なお、かかる出力ステーションクラス350を実体化した出力ステーションオブジェクト350Aが生成されると、状態350aおよび最大格納数330aはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。
Specifically, the output station class 350 has a
状態350aは、出力ステーションクラス350に対応する出力デバイスの現在の状態を保持する。たとえば、かかる状態には、データ消費中の状態、何もしていない状態、あるいは、要求を受け付けることができない状態などの状態がある。また、ステーションクラス330から継承した最大格納数330aは、出力ステーションクラス350が保持することが可能な荷物オブジェクト360Aの最大数を保持する。ここで、「消費中」とは、出力ステーションクラス350が、出力デバイスに対し荷物オブジェクト360Aを渡す処理中であることをあらわす。
The
格納する()350bは、キャリアクラス320から呼び出され、出力ステーションクラス350が、荷物オブジェクト360Aを消費する処理をおこなう。また、ステーションクラス330から継承したスタート()330bは、出力ステーションクラス350に、荷物オブジェクト360Aの受け入れ準備を開始する指示をおこなう。
Store () 350b is called from the
荷物クラス360は、入力デバイスから出力デバイスへ流れるデータに対応するクラスである。具体的には、この荷物クラス360は、属性として、コンバート360aを有し、操作として、加工する()360bを有する。なお、かかる荷物クラス360を実体化した荷物オブジェクト360Aが生成されると、コンバート360aはRAM12b上に展開されるので、このデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。また、この荷物オブジェクト360Aは、各入力デバイスに対応する入力ステーションオブジェクト340Aの指示により生成され、キャリアオブジェクト320Aにより運搬されて、各出力デバイスに対応する出力ステーションオブジェクト350Aにより消費されることになる。
The
コンバート360aは、入出力デバイス間のデータ単位の差異あるいはデータ形式の差異のために、データ単位あるいはデータ形式の変換処理が必要であるか否かをあらわす情報を保持する。また、加工する()360bは、キャリアオブジェクト320Aから呼び出され、データ単位あるいはデータ形式の変換処理をおこなう。ここで、データ単位の変換処理とは、たとえば、入力原稿1枚に相当する画像データを基本単位とするデータ単位から、かかる画像データを10ブロックに分割した各ブロックを基本単位とするデータ単位への変換処理をさす。また、データ形式の変換処理とは、たとえば、TIFF(Tagged Image File Format)形式の画像フォーマットをPDF(Portable Document Format)形式に変換する処理をさす。
The
なお、キャリアクラス320Aから、加工する()360bが呼び出された場合であっても、コンバート360aが保持する情報が、データ単位およびデータ形式の変換が不要であることを示していれば、かかる変換はおこなわれない。また、コンバート360aが保持する情報にしたがって、データ単位のみの変換またはデータ形式のみの変換がおこなわれる場合もある。
It should be noted that even if () 360b to be processed is called from the
区間クラス370は、入出力デバイス間の区間状態を管理するクラスである。ここで、区間状態とは、各入力デバイスに対応する入力ステーションオブジェクト340Aを始点とし、各出力デバイスに対応する出力ステーションオブジェクト350Aを終点とした場合に、始点および終点の組合せからなる各区間の使用可否をあらわす情報である。すなわち、始点および終点のいずれもが使用可能であれば、かかる区間は使用可能であり、始点あるいは終点のいずれかが使用不可能であれば、かかる区間は使用不可能となる。
The
この区間クラス370は、具体的には、属性として、区間状態370aを有し、操作として、使用する()370bを有する。なお、かかる区間クラス370を実体化した区間オブジェクト370Aが生成されると、区間状態370aはRAM12b上に展開されるので、このデータ(属性)の書き込みおよび読み出しをおこなうことが可能となる。また、区間オブジェクト370bは、上述した始点および終点の組合せの数と同数生成される。
Specifically, the
区間状態370aは、上述した各区間が使用可能であるか否かの情報を保持する。また、使用する()370bは、キャリアオブジェクト320Aから呼び出され、区間状態370aが保持する区間使用可否の情報を、かかるキャリアオブジェクト320Aに報告する処理をおこなう。たとえば、キャリアオブジェクト320Aから呼び出された際に、区間状態370aが保持する情報が「使用可能」であったならば、使用する()370bは、かかる区間が使用可能である旨を報告する。そして、区間状態370aが保持する状態が「使用不可能」に遷移したならば、かかる区間が使用不可能である旨を報告する。
The
次に、図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
まず、ストリームクラス310とキャリアクラス320とのクラス関係について説明する。ストリームクラス310は、複数のキャリアクラス320を管理して、一つのデータの流れを形成する。また、各キャリアクラス320は、データの運搬を実行するとともに運搬状態をストリームクラス310に報告する。したがって、ストリームクラス310とキャリアクラス320とは、「報告先」と「実行者」という関係をなしている。
First, the class relationship between the
ここで、ストリームクラス310側に記された白抜きのひし形は集約関係をあらわしている。集約関係とは、あるクラスが別のクラスの一部として含まれる関係のことである。具体的には、1つのデータの流れ(ストリーム)は、複数のキャリアクラス320から形成され、ストリームクラス310は、1つのストリームを管理するので、1つのストリームを形成するキャリアクラス320は、ストリームクラス310に集約される関係を有する。
Here, the open diamonds written on the
また、ストリームオブジェクト310Aは、実行系サブシステム113からのストリーム開始要求ごとに生成され、1個のストリームオブジェクト310Aは、0個以上複数のキャリアオブジェクト320Aを管理するので、かかるキャリアオブジェクト320Aは、1個のストリームオブジェクト310Aに対して0個以上n個以下の範囲で存在する。
The stream object 310A is generated for each stream start request from the
次に、キャリアクラス320とステーションクラス330とのクラス関係について説明する。キャリアクラス320は、1個の入力ステーションクラス330から1個の出力ステーション340へ荷物を運搬するコンテナの役割を有するため、入力ステーション330とキャリアクラス320とは、「入力元」と「コンテナ」の関係をなしており、キャリアクラス320と出力ステーション350とは、「コンテナ」と「出力先」の関係をなしている。
Next, the class relationship between the
また、1個のキャリアオブジェクト320Aは、1個の入力ステーションオブジェクト340Aおよび1個の出力ステーションオブジェクト350Aと関連づけられるので、入力ステーションオブジェクト340Aとキャリアオブジェクト320Aとは、1対1の関係を有するとともに、キャリアオブジェクト320Aと出力ステーションオブジェクト350Aとの関係も1対1となる。
Since one
次に、キャリアクラス320と荷物クラス360とのクラス関係について説明する。キャリアクラス320は、入力ステーションクラス340に格納された荷物クラス360を受け取って一時的に格納し、格納した荷物クラス360を出力ステーションクラス350へ運搬する。したがって、キャリアクラス320と荷物クラス360とは、「一時的格納先」と「運搬対象」の関係をなしている。また、荷物クラス360は、キャリアクラス320に集約される関係を有する。
Next, the class relationship between the
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
次に、ステーションクラス330と荷物クラス360とのクラス関係について説明する。ステーションクラス330は、運搬対象となる荷物クラス360を格納し、格納した荷物クラス360はキャリアクラス320により運搬される。したがって、ステーションクラス330と荷物クラス360とは、「格納先」と「運搬対象」の関係をなしている。なお、両クラスの多重度関係および集約関係は、上述したキャリアクラス320と荷物クラス360の関係と同様である。
Next, the class relationship between the
次に、ステーションクラス330と入力ステーションクラス340および出力ステーションクラス350とのクラス関係について説明する。ステーションクラス330は、入力ステーションクラス340および出力ステーションクラス350の上位クラス(スーパークラス)であり、入力ステーションクラス340および出力ステーションクラス350は、ステーションクラス330の属性および操作を継承する。
Next, the class relationship among the
最後に、キャリアクラス320と区間クラス370とのクラス関係について説明する。データの運搬を担当するキャリアクラス320は、区間クラス370が管理する各経路(区間)上を移動するので、キャリアクラス320と区間クラス370とは、「移動体」と「経路」の関係をなす。
Finally, the class relationship between the
また、キャリアを同期動作させる場合は、同時に複数のキャリアオブジェクト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
このように、ストリームクラス310、キャリアクラス320、ステーションクラス330、入力ステーションクラス340、出力ステーションクラス350、荷物クラス360および区間クラス370の各オブジェクトは、相互に関連し合い、協調して、ストリーム部113aに必要な機能を実現している。
As described above, the
次に、図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
ここで、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
そして、ストリームオブジェクト310Aは、データを流すことが可能であると判定したならば、キャリアオブジェクト320Aを生成するとともに、このキャリアオブジェクト320Aの運搬する()320cを呼び出して、データの運搬を指示する(ステップS102)。なお、データを流すことが不可能であると判定した場合には、エラー通知をおこなうなどして処理を終了する。
If the
運搬する()320cを呼び出されたキャリアオブジェクト320Aは、入力ステーションオブジェクト340Aのスタート()330bを呼び出すことにより、データ生成の開始指示をおこなうとともに(ステップS103)、出力ステーションオブジェクト350Aのスタート()330bを呼び出して、データ受け入れの準備を開始するよう指示する(ステップS104)。
The
データ生成の開始指示を受け付けた入力ステーションオブジェクト340Aは、対応する入力デバイス固有のデータ生成手順によりデータ生成を開始させる。たとえば、対応する入力デバイスがスキャナ201aであれば、原稿を読み込んでデータを生成する。また、対応する入力デバイスがHDD201cであれば、ファイルをオープンしてファイル中のデータをコピーすることによりデータを生成する。なお、かかるデータの生成は、実際には荷物オブジェクト360Aを生成することによりおこなわれる。
The
生成された各荷物オブジェクト360Aは、所定の条件を満たすとキャリアオブジェクト320Aに対し、荷物オブジェクト360Aが生成された旨の報告をおこなう。かかる所定の条件は、入力ステーションオブジェクト340Aに対応する入力デバイスにより異なるものとすることができる。たとえば、ある入力デバイスでは、かかる条件を「10個の荷物オブジェクト360Aが生成されたこと」とし、かかる入力デバイスの1/10の処理速度の入力デバイスでは、かかる条件を「1個の荷物オブジェクト360Aが生成されたこと」とすれば、キャリアオブジェクト320Aは、入力デバイスの処理速度の影響を受けることなく、荷物生成の報告を受信することができる。このようなバッファリング機能により、ストリーム部113aは、入出力デバイス間の処理速度の差異を吸収する。
Each generated
このようにして、キャリアオブジェクト320Aが、荷物生成の報告を受信したならば(ステップS105)、キャリアオブジェクト320Aは、入力ステーションオブジェクト340Aの取出す()340bを呼び出す(ステップS106)。そして、かかる操作の戻りとして、生成された荷物オブジェクト360Aを受け取る。なお、上述したように、荷物生成の報告のタイミングは入力デバイスの種類に応じて異なるので、キャリアオブジェクト320Aが受け取る荷物オブジェクト360Aの個数も異なることになる。たとえば、5個の荷物オブジェクト360Aが生成された際に、かかる報告を受けた場合には、キャリアオブジェクト320Aは、5個の荷物オブジェクト360Aを受け取ることになる。
In this way, if the
そして、キャリアオブジェクト320Aが受け取った荷物数が、定数320bに保持される値を上回ったならば(ステップS107)、キャリアオブジェクト320Aは、保持しているすべての荷物オブジェクト360Aの加工する()360Aを呼び出すことにより、データ単位あるいはデータ形式の変換処理を指示する(ステップS108)。なお、上述したように、この加工する()360Aは、変換処理が必要でない場合には、変換処理をおこなわない。このように、キャリアオブジェクト320Aは、荷物オブジェクト360Aにデータ単位あるいはデータ形式の変換処理を指示し、指示された各荷物オブジェクト360Aが変換処理を実行することとしたので、ストリーム部113aは、入出力デバイス間で処理対象となるデータの単位や形式が異なる場合であっても、データ単位あるいはデータ形式の差異を吸収することができる。
If the number of packages received by the
つづいて、各荷物オブジェクト360Aのデータ変換処理が完了したならば、キャリアオブジェクト320Aは、出力ステーションオブジェクト350Aの格納する()350bを呼び出して、データ変換処理が完了した荷物オブジェクト360Aを出力ステーションオブジェクト350Aに引き渡す(ステップS109)。そして、出力ステーションオブジェクト350Aは、引き渡された荷物オブジェクト360Aの消費を開始する。
Subsequently, when the data conversion processing of each parcel object 360A is completed, the
上述してきたように、本実施の形態では、入力デバイスから出力デバイスへのデータの流れを制御するストリーム部を構築するにあたり、各入力デバイスに対応する入力バッファと、各出力デバイスに対応する出力バッファと、入力バッファから出力バッファへのデータ運搬をおこなうキャリアとを有する構成としたので、入力デバイスおよび出力デバイスの処理速度の差異、取り扱うデータ形式の差異および取り扱うデータ単位の差異を吸収でき各入出力デバイスを均一に取り扱うストリーム制御処理を提供することができる。さらに、オブジェクト指向設計により、かかるストリーム部の仕組みを構築し、鉄道モデルの隠喩(メタファ)によりオブジェクトモデリングをおこない、ストリームクラス、キャリアクラス、ステーションクラス、入力ステーションクラス、出力ステーションクラス、荷物クラスおよび区間クラスを用いることにより、かかるストリーム部を実現したので、ソフトウェア開発者やソフトウェア保守要員が、ストリーム部の構成と役割を容易に把握することができるとともに、効率的かつ信頼性の高いストリーム制御処理をおこなうことができる。 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
また、ストリーム制御プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかるストリーム制御プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。 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 画像形成装置(複合機)
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
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
320 Carrier class (example of carrier means)
320A carrier object (an example of carrier means)
330 Station class (an example of station means)
330A station object (an example of station means)
330a
340 Input station class (an example of input station means)
340A input station object (an example of input station means)
350 Output station class (an example of output station means)
350A output station object (an example of output station means)
360 luggage class (an example of luggage means)
360A luggage object (an example of luggage means)
370 Section class (an example of section means)
370A Section object (an example of section means)
400
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または複数の前記キャリア手段を生成して管理し、
前記キャリア手段は、前記入力ステーション手段が保持する前記単位入力データを前記単位出力データに変換して前記出力ステーション手段に格納することを特徴とする請求項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.
各入力デバイスに対応し、入力デバイスが出力する所定形式のデータを所定の大きさの単位入力データとして複数個保持可能な入力バッファ手段と、
各出力デバイスに対応し、出力デバイスへ入力する所定形式のデータを所定の大きさの単位出力データとして複数個保持可能な出力バッファ手段と、
前記入力バッファ手段が保持する単位入力データを取得し、該単位入力データを前記単位出力データに変換して前記出力バッファ手段に格納するキャリア手段と、を備え、
前記入力バッファ手段は、前記単位入力データに対応する荷物手段を生成し、
前記荷物手段は、前記入力バッファ手段が保持する前記単位入力データの個数が、前記入力デバイスの処理速度に基づく所定数に達したか否かを判断し、前記単位入力データの個数が前記所定数に達した場合に、前記荷物手段が生成された旨を前記キャリア手段に通知することを特徴とする画像形成装置。 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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4330665B2 (en) * | 1996-10-30 | 2009-09-16 | 株式会社リコー | Client server system and image processing apparatus |
-
2004
- 2004-09-16 JP JP2004270347A patent/JP4656897B2/en not_active Expired - Fee Related
Patent Citations (3)
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 |