JP3695758B2 - 多重プロトコル画像形成装置間で画像情報を送受信するためのシステム - Google Patents

多重プロトコル画像形成装置間で画像情報を送受信するためのシステム Download PDF

Info

Publication number
JP3695758B2
JP3695758B2 JP51684396A JP51684396A JP3695758B2 JP 3695758 B2 JP3695758 B2 JP 3695758B2 JP 51684396 A JP51684396 A JP 51684396A JP 51684396 A JP51684396 A JP 51684396A JP 3695758 B2 JP3695758 B2 JP 3695758B2
Authority
JP
Japan
Prior art keywords
output
input
component
interpreter
image forming
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 - Lifetime
Application number
JP51684396A
Other languages
English (en)
Other versions
JPH10509852A (ja
Inventor
シーファート,ケント・ジェイ
Original Assignee
イーストマン コダック カンパニー
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 イーストマン コダック カンパニー filed Critical イーストマン コダック カンパニー
Publication of JPH10509852A publication Critical patent/JPH10509852A/ja
Application granted granted Critical
Publication of JP3695758B2 publication Critical patent/JP3695758B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32502Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
    • H04N1/32507Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices
    • H04N1/32512Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of input devices of different type, e.g. internal and external devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32502Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32502Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices
    • H04N1/32523Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of output devices
    • H04N1/32529Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device in systems having a plurality of input or output devices a plurality of output devices of different type, e.g. internal and external devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32561Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/327Initiating, continuing or ending a single-mode communication; Handshaking therefor
    • H04N1/32797Systems adapted to communicate over more than one channel, e.g. via ISDN

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Image Processing (AREA)
  • Communication Control (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

技術分野
本発明は画像形成システムに関し、特に、画像形成システムの入力画像形成装置と出力画像形成装置との間で画像情報を送受信するのためのシステムに関する。
従来技術の説明
一般に、画像形成システムは、画像情報を生成する入力画像形成装置と画像情報に基づいて画像を可視化する出力画像形成装置とを有する。例えば医療用の画像形成システムでは、磁気共鳴(MR)装置や断層撮影(CT)装置、従来の放射線撮影(X線)装置または超音波装置などの診断装置が入力画像形成装置に含まれる。また、入力画像形成装置には、医療用画像情報を生成することのできるキーパッドやマウス、トラックボールなどのユーザインタフェース装置も含まれる。医療用画像形成システムにおいて一般的に用いられる出力画像形成装置としては、連続階調デジタルレーザ画像生成器が挙げられる。このレーザ画像生成器は、画像情報に応答して画像形成メディアを露光し、可視画像を形成する。
入力画像形成装置によって生成された画像情報には、画像を表すデジタル画像値を持つ画像データと、レーザ画像生成器によって実行されるべき動作を指定する画像形成要求とが含まれる。各デジタル画像値は、原画像に含まれる複数の画素1個1個に対応し、それぞれの画素と関連した光学密度を表している。画像形成要求に応答して、レーザ画像生成器はデジタル画像値を変換し、走査用レーザの強度を調整するのに用いられるレーザ駆動値を生成する。これらのレーザ駆動値は、画像形成メディアへの露光レベルを決定するために算出され、湿式化学処理または乾式化学処理のいずれかによって原画像を現像する際に原画像の画素と関連した光学密度を再生する上で必要なものである。また、入力画像形成装置によって生成される画像形成要求に応答して、レーザ画像生成器をその他様々な形で動作させることもできる。例えばレーザ駆動値の生成前にレーザ画像生成器によって画像データを操作し、異なるフォーマットおよび/または見た目の特徴を様々な形で生成することもできる。
レーザ画像生成器によって処理された画像情報のフォーマットは、個人の入力画像形成装置の入力プロトコルによって決まる。医療用画像形成システムは、多種多様な入力プロトコルに基づいて生成される画像情報に対応できるものであることが好ましい。入力プロトコルは、特定の入力画像形成装置との通信に必要な要件を決定する入力ドライバプロトコルや、入力画像形成装置によって生成された画像情報を解釈するための入力インタプリタプロトコルを含むものとして特徴付けできるものである。異なる入力プロトコルが多数存在する理由の一つには、異なるプロトコルに基づいて画像情報を生成するMR装置やCT装置、X線装置、超音波装置など様々な入力画像形成装置が用いられているということが挙げられる。しかしながら、これらの様々な入力プロトコルの主な原因はモジュール性が異なりすぎていることにある。すなわち、異なる製造業者によってそれぞれ独自の製造業者固有の入力プロトコルを用いた入力画像形成装置が製造されていることが原因なのである。例えば、シーメンスや東芝、GE、Pickerなどの製造業者は、似たような機能を持つCTタイプの入力画像形成装置を製造しているが、これらの画像形成装置から生成される画像情報は、異なる様式に準拠した入力プロトコルに基づくものとなっている。
複数の入力プロトコルに対応できることに加え、医療用画像形成システムは、複数の出力プロトコルに基づく出力画像形成装置に対して画像情報を送信することのできるものであると好ましい。入力プロトコルと同様に、出力プロトコルについても、特定の出力画像形成装置との通信に必要な要件を決定する出力ドライバプロトコルや、画像情報を出力画像形成装置によって解釈できる形式に翻訳するためのフォーマットを決定する出力インタプリタプロトコルを含むものとして特徴付けすることができる。複数の出力プロトコルが存在する背景には、主に機能面で異なるレーザ画像形成出力装置が利用可能であるということが挙げられる。機能面で様々な組み合わせが可能であるがゆえに一層複雑さが増し、出力プロトコルを異なるものとせざるをえなくなるのである。例えば、ミネソタ州St. PaulのMinnesota Mining & Manufacturing Company(3M)では、設定によって特定される出力プロトコルと関連した「831」、「952」および「Super Set」設定値と呼ばれる機能面で異なるレーザ画像生成器を提供している。
既存の医療用画像生成装置は、個々の用途に合わせて複数の入力プロトコルおよび出力プロトコルを用いて動作する。これらのプロトコルは、特定入力プロトコルおよび特定出力プロトコル用のハードウェアおよび/またはソフトウェアのインタフェースを設計する際に定義される。受注製作されたインタフェースを使用することは特に柔軟性を欠くことになる。異なる入力画像形成装置との通信が後になって必要になったような場合、インタフェース全体を再設計して新たな入力プロトコルと旧出力プロトコルとの関係に対応できるようにしなければならない。出力画像形成装置を変更する場合も同様に、新たな出力プロトコルと旧入力プロトコルとの関係に対応できるようにインタフェースを再設計する必要がある。残念なことに、インタフェースの再設計は手間を要する作業であり、ハードウェアおよび/またはソフトウェアの開発に多大なる投資をしなければならないことも多々ある。些細なことのように思える入力画像形成装置または出力画像形成装置の機能変更ですら、費用をかけてインタフェース全体に影響する大幅な設計変更をしなければならないことがある。
しかしながら、複数のプロトコルを利用する様々な入力画像形成装置と出力画像形成装置との間で通信を可能にする柔軟性の高い医療用画像形成システムに対する需要は高まる一方である。このような医療用画像形成システムは、すでにあるプロトコルに対する柔軟性を持つだけでなく、今後定義される可能性のあるプロトコルに対してもコスト効率のいい形で適応できるものであると望ましい。既存の医療用画像形成システムは一般に、こういった重要に応えることができずにある。
発明の開示
既存の医療用画像形成システムの制約を考慮し、本発明は、使用する入力プロトコルの異なる複数種の入力画像形成装置と使用する出力プロトコルの異なる複数種の出力画像形成装置との間で画像情報を送受信するための医療用画像形成システムに関する。
本発明によるシステムは、機能面で独立した複数のコンポーネントを有する再利用可能なソフトウェアアーキテクチャを有効利用する。個々のコンポーネントを、所望のプロトコルに基づいて入力画像形成装置と出力画像形成装置との間で画像情報を送受信するための通信パイプラインとして構成することができる。各コンポーネントを別の形で構成されたコンポーネントと入れ換えてパイプラインの構成を変えて柔軟性を高くし、異なるプロトコルを用いた画像情報の送受信を簡略化することもできる。さらに、通信パイプラインを動的に構成し、既存の環境に適したコンポーネントを利用するようにできるという利点もある。
また、複数のソフトウェアアーキテクチャをそれぞれ所望のプロトコルに基づいて構成し、複数の通信パイプラインを生成するようその規模を変えることもできる。このように、本発明のシステムは、コンポーネントを交換して1本の通信パイプラインを再構成するか、あるいは規模の変更が可能なアーキテクチャにおいて異なる形で構成された複数の通信パイプラインから他のものを選択することによって、異なるプロトコルをサポートすることができる。
さらに、各コンポーネントは別個で機能的に独立しているため、コンポーネントを再設計する必要が生じても、オーバーヘッドをさほど増やすことなく複数のプログラマを割り当てることができるため、時間と費用の節約になる。アーキテクチャのモジュール性自体も、システム全体に対してほとんど影響せずに1個のコンポーネントを変更または修正できるようなものになっている。
本発明の他の特徴および利点につていは以下に述べるが、これらの説明から明らかになるものもあり、本発明を実施する際に分かるものもあると思われる。本発明の利点は、明細書および請求の範囲ならびに添付の図面において示される手段によって特に実現され、達成されるものであろう。
【図面の簡単な説明】
添付の図面は、本発明に対する理解を深めるために提供されているものであり、本願明細書に引用されてその一部を構成するものである。これらの図面は、本発明の一例としての実施例を例示するためのものであり、明細書の記載内容と併せて本発明の原理を説明する上で役立つ。
第1図は、複数のプロトコル画像形成装置間で画像情報を送受信するための、本発明による医療用画像形成システムの機能ブロック図である。
第2図は、本発明による複数の異なるプロトコルと一組のベースクラスプロトコルとの間の関係を示す図である。
第3図は、本発明による医療用画像形成システムに適用可能なクライアント-サーバ関係を示す機能ブロック図である。
好ましい実施例の詳細な説明
第1図は、複数のプロトコル画像形成装置間で画像情報を送受信するための、本発明による医療用画像形成システム10の機能ブロック図である。この医療用画像形成システム10は、複数の入力画像形成装置12と、1個以上の入力インタフェースコンポーネント14と、1個以上の出力インタフェースコンポーネント16と、1個以上の出力画像形成装置18とを含む。各入力インタフェースコンポーネント14は、入力ドライバコンポーネント20と入力インタプリタコンポーネント22とを含む。各出力インタフェースコンポーネント16は、出力インタプリタコンポーネント24と出力ドライバコンポーネント26とを含む。インタフェース監視コンポーネント28は、1個以上(1〜N)の通信パイプライン30を定義する。各通信パイプライン30は、入力画像形成装置12のうちの1つと、入力ドライバコンポーネント20のうちの1つと、入力インタプリタコンポーネント22のうちの1つと、出力インタプリタコンポーネント24のうちの1つと、出力ドライバコンポーネント26のうちの1つと、出力画像形成装置18のうちの1つと、双方向通信可能な形で接続されている。出力画像形成装置18は、互いにシェアする形でパイプライン30のいずれとも通信することができる。あるいは、複数の出力画像形成装置18を設け、各々を特定のパイプライン30に対して相互に通信接続することも可能である。
入力インタフェースコンポーネント14と、出力インタフェースコンポーネント16と、インタフェース監視コンポーネント28は、入力画像形成装置12および出力画像形成装置18との間をインタフェースするソフトウェアシステムとして実現されている。このソフトウェアシステムは、連続階調デジタルレーザ画像生成器などの出力画像形成装置18の一部として、あるいは入力画像形成装置12と出力画像形成装置18との間での画像情報の通信を制御する離散的な装置の一部として実現することもできるものである。入力画像形成装置12によって生成される画像情報には、画像形成動作要求と、出力画像形成装置18によって処理されるべき画像を表すデジタル画像値を有する画像データとを含む。説明しやすくするために、画像を表すデジタル画像値の形の画像情報は別々の通信路で送受信され、パイプライン30では画像要求の形の画像情報を送受信するものとして説明する。しかしながら、画像情報に対する要求とデジタル画像値を有する画像データの両方の画像情報を送受信するようパイプライン30を構成することも可能である。
各入力インタフェースコンポーネント14は、入力ドライバコンポーネント20のうちの1つを介し、複数の異なる入力インタフェースプロトコルのうちの1つを使用して入力画像形成装置12からの画像情報を受信するよう構成されている。各入力インタフェースプロトコルは入力画像形成装置12のうちの1つと特に関連しており、特定の入力画像形成装置と通信するためのモジュール性毎の要件も反映している。各入力インタフェースコンポーネント14も、受信された画像情報の内容に基づいて、入力インタプリタコンポーネント22のうちの1つを介し、入力インタフェースプロトコルのうちの1つを使用して第1の画像形成要求を生成するよう構成されている。第1の画像形成要求は、出力インタフェースコンポーネント16と通信するための入力インタプリタコンポーネント22によって変換されるものと同様に、入力画像形成装置12によって生成される指示を表している。
各出力インタフェースコンポーネント16は、第1の画像形成要求の内容に基づいて、出力インタプリタコンポーネント24のうちの1つを介し、複数の異なる出力プロトコルのうちの1つを使用して第2の画像形成要求を生成するよう構成されている。第2の画像形成要求は、出力画像形成装置18と通信するための出力インタプリタコンポーネント24によって変換されるものと同様に、第1の画像形成要求の内容を表している。各出力インタフェースプロトコルは、出力画像形成装置18の種類に特に関連しており、入力インタフェースプロトコルと同様に特定の出力画像形成装置と通信を行うために必要な要件を反映している。さらに、各出力インタフェースコンポーネント16は、出力インタフェースプロトコルを使用し、出力ドライバコンポーネント26を介して出力画像形成装置との間で第2の画像形成要求を送受信するよう構成されている。
入力インタフェースコンポーネント14および出力インタフェースコンポーネント16のサブコンポーネントすなわち、入力ドライバコンポーネント20、入力インタプリタコンポーネント22、出力インタプリタコンポーネント24および出力ドライバコンポーネント26について、ここでは入力インタフェースコンポーネントならびに出力インタフェースコンポーネントを一体に形成された1個のソフトウェアモジュールとしてみなすことにする。しかしながら、入力インタフェースコンポーネント14を離散的な入力ドライバコンポーネント20および離散的な入力インタプリタコンポーネント22によって実現し、同様に、出力インタフェースコンポーネント16を離散的な出力インタプリタコンポーネント24および離散的な出力ドライバコンポーネント26によって実現することが好ましい。サブコンポーネントを離散的にすることで、各インタフェースコンポーネント14および16の機能をモジュール性の高い小さなパッケージに分割することができる。一例として、モジュール性を高めると、入力画像形成装置12用のハードウェアのインタフェース仕様を変更する際にも、入力インタフェースコンポーネント14全体を構成しなおすのではなく入力ドライバコンポーネント20を再構成するだけですむ。
各入力インタフェースプロトコルには、入力ドライバコンポーネント20に対して適用可能な入力ドライバプロトコルと、入力インタプリタコンポーネント22に対して適用可能な入力インタプリタプロトコルの両方が含まれる。個々の入力画像形成装置12の通信要件に応じて適当な入力ドライバプロトコルを求め、個々の入力画像形成装置の画像情報のフォーマットに応じて適当な入力インタプリタプロトコルを求める。画像情報のフォーマットは、特定の入力画像形成装置12のプロトコルを使用して生成される画像形成要求の種類を表す。入力ドライバプロトコルは、入力ドライバコンポーネント20が入力画像形成装置12からの画像情報をどのように転送すべきかを指定する。入力インタプリタプロトコルは、入力インタプリタコンポーネント22が第1の画像形成要求を生成するための画像情報をどのように解釈すべきかを指定する。入力ドライバプロトコルおよび入力インタプリタプロトコルは、例えばMR、CT、従来のX線、超音波など入力画像形成装置12の種類の違いならびにシーメンスや東芝、GE、Pickerなどの製造業者の違いによって大幅に異なることがある。
各出力インタフェースプロトコルには、出力インタプリタコンポーネント24に対して適用可能な出力インタプリタプロトコルと、出力ドライバコンポーネント26に対して適用可能な出力ドライバプロトコルの両方が含まれている。出力ドライバプロトコルは出力画像形成装置18の通信要件に応じて定められ、出力画像形成装置の画像情報のフォーマットに応じて適当な出力インタプリタプロトコルが決められる。出力インタプリタプロトコルは、出力画像形成装置18が理解できる形で第2の画像形成要求を生成するための第1の画像形成要求を、出力インタプリタコンポーネント24がどのように解釈すべきかを指定する。入力ドライバプロトコルは、出力ドライバコンポーネント20が出力画像形成装置18に対して第2の画像形成要求をどのように転送すべきかを指定する。入力インタフェースプロトコルの場合と同様に、出力インタフェースプロトコルも変化することがある。例えば、出力ドライバプロトコルと出力インタプリタプロトコルはいずれも、3M製レーザ画像生成器の場合で例えば831、952またはSupersetなどの出力画像形成装置18によって得られる機能の種類によって異なることがある。
特定のプロトコルを機能面で特定するにもかかわらず、例えば全てが入力ドライバコンポーネントであるなど、同じような種類のコンポーネント20、22、24、26を構成して複数の共通のタスクを実行する。例えば、入力ドライバコンポーネント20は特定の入力画像形成装置12との通信に必要な一組の共通のタスクをシェアする。入力ドライバコンポーネント20は、特定の入力画像形成装置12との間で画像情報を送受信するのに必要な割込、バッファ、ハンドシェーキングなどのハードウェア仕様に対処するよう構成されている。入力ドライバコンポーネント20を、パケット化や初期化などの入力画像形成装置12の特定の要求に対処するよう構成してもよい。入力ドライバコンポーネント20は、シリアルインタフェース、パラレルインタフェース、ネットワークインタフェースまたはその他の機構を介して通信を実施する知識からパイプライン30の残りを分離して、必要な通信タスクを全て実行する。要約すると、入力ドライバコンポーネント20の責任は2倍である。第1に、入力ドライバコンポーネント20は、入力画像形成装置12から画像情報を受信し、パイプライン30の次段すなわち入力インタプリタコンポーネント22用の画像情報を準備する。第2に、入力ドライバコンポーネント20は、双方向パイプライン30から送出されるあらゆる応答を、後述するように入力画像形成装置12に送信する。
入力インタプリタコンポーネント22すなわちパイプライン30における次のコンポーネントもまた、特定の入力インタプリタプロトコルを考慮することなく他の入力インタプリタコンポーネントと共通の一組のタスクをシェアする。主に、入力ドライバコンポーネント20から画像情報を得た後、入力インタプリタコンポーネント22はその画像情報に含まれている要求を分析し、これらの要求を変換して、出力画像形成装置18によって実行される動作に対応する第1の画像形成要求を生成する。第1の画像形成要求には、出力画像形成装置18によって実行される様々な共通の画像形成処理に対する要求が含まれている。一般的な医療用画像形成システムでは、これらの要求に、例えば出力画像形成装置18によって画像印刷ジョブを開始する要求や、既に開始されている画像印刷ジョブを中止する要求、印刷対象となる画像のフォーマットを定義または修正する要求、既に得られている画像を表す画像データセットを削除する要求、特定の画像位置に画像データを格納するための要求などを含ませることができる。
入力インタプリタコンポーネント22が入力画像形成装置12によって生成された要求をどのように解釈するかについては、特定の入力インタプリタプロトコルによって異なることがある。入力インタプリタコンポーネント22は、特定の入力画像形成装置12によって生成される画像情報に固有の正確なフォーマット、指示およびタイミングに関する制約を理解する。しかしながら、入力インタプリタコンポーネント22は全て第1の画像形成要求を生成する共通かつ基本的な機能を提供する。入力インタプリタコンポーネント22は第1の画像形成要求をパイプライン30に沿って送信する。第1の画像形成要求を双方向パイプライン30の下流にあるコンポーネントによって処理し、応答が受信された後は、入力インタプリタコンポーネント20が入力画像形成装置12用の適当な応答を形成する。入力インタプリタコンポーネント22は、パイプライン30に沿って入力ドライバコンポーネント20を介して上記の応答を入力画像形成装置12まで送信する。入力ドライバコンポーネント20は、応答を入力画像形成装置に送信するのに必要な通信要件に対応している。
出力インタプリタコンポーネント24は、パイプライン30における第3のコンポーネントである。出力画像形成装置18は、3M製のレーザ画像生成器の場合だと831、952またはSupersetなどの多くの異なるプロトコルのうちの1つと会話をすることができる。出力インタプリタコンポーネント24は、パイプライン30を介して、入力インタプリタコンポーネント22によって生成された第1の画像形成要求を受信するとともに、第1の画像形成要求を解釈して第2の画像形成要求を生成し、これによって出力画像形成装置18に必要な特定のプロトコルを確認するよう構成されている。第2の画像形成要求は、実質的には第1の画像形成要求に相当するが、出力画像形成装置18によって理解される出力プロトコルを用いて構成されている。このため、第2の画像形成要求は、第1の画像形成要求によって指定される同一の画像形成処理用の要求として機能する。出力インタプリタコンポーネント24がどのように指示を解釈するかについては、出力画像形成装置18によって示される特定の出力インタプリタプロトコルに基づいて変化させることができるが、出力インタプリタコンポーネント24は全て、出力画像形成装置によって理解されるプロトコルにおける第2の画像形成要求を生成する共通のタスクをシェアする。出力インタプリタコンポーネント24は、第2の画像形成要求をパイプライン30に沿って送信する。出力画像形成装置18が第2の画像形成要求を処理し、パイプライン30を介して受信される応答を公式化すると、出力インタプリタコンポーネント24は出力プロトコルによって特定されるあらゆる情報を除去して入力インタプリタコンポーネント22に適した応答を形成する。
出力ドライバコンポーネント26は、パイプライン30における第4のコンポーネントである。入力ドライバコンポーネント20と同様に、全ての出力ドライバコンポーネント26は共通の一組の通信タスクを実施する。具体的には、出力ドライバコンポーネント26は、特定の出力画像形成装置18との間で画像情報を送受信するのに必要な割込、バッファ、ハンドシェーキングなどのハードウェア仕様に対処するよう構成されている。出力ドライバコンポーネント26は、シリアルインタフェース、パラレルインタフェースまたはデュアルポートRAMなどを介して出力画像形成装置18と通信を行う知識からパイプライン30の残りを分離する。出力ドライバコンポーネント26は、あらゆる通信要件を維持したまま出力インタプリタコンポーネント24によって生成された第2の画像形成要求を出力画像形成装置18に送信する。さらに、出力ドライバコンポーネント26は出力画像形成装置18からの応答を受信し、双方向パイプライン30を介して出力インタプリタコンポーネント24に送信するための応答を生成する。
インタフェース監視コンポーネント28は、パイプライン30の構造を定義するものであり、本ソフトウェアシステムの第5のコンポーネントである。インタフェース監視コンポーネント28は、プロトコルの異なる多数のコンポーネント20、22、24、26と選択的に相互に接続されて通信を行い、大きな柔軟性を提供するよう構成されている。このような柔軟性が得られることで、医療用画像形成システム10は多種多様な入力画像形成装置12と様々な機能を有する1個以上の出力画像形成装置18との間で通信を行うことができるようになる。このように、インタフェース監視コンポーネント28は、機能的に独立した各コンポーネント20、22、24、26を責任が明確に定められインタフェースが定義されたブロックとして処理する。インタフェース監視コンポーネント28は、環境に基づいて適当な一連のブラックボックスを選択し、これらのブラックボックス同士を結合して完全かパイプライン30を形成する。さらに別の利点として、インタフェース監視コンポーネント28はこれらのコンポーネントを動的に結合して既存の画像形成環境に適した通信パイプライン30を形成するよう構成されたものであると好ましい。さらに、インタフェース監視コンポーネントは、異なるプロトコルを仕様して構成された複数(1〜N)の通信パイプライン30を有する、規模の変更が可能なソフトウェアアーキテクチャを生成するよう構成されている。このような規模の変更が可能なアーキテクチャを用いることで、出力画像形成装置18は、各パイプライン30によって提供されるものと同様の必要なプロトコルを用いてシェアする形で複数の入力画像形成装置12と同時に通信することができるようになる。あるいは、複数の出力画像形成装置18を提供し、それぞれ特定のパイプライン30と接続して通信できるようにしておくことも可能である。
インタフェース監視コンポーネント28は、ソフトウェアアーキテクチャの規模を変更して環境要件に合わせ、出力画像形成装置18とのインタフェースを要求している入力画像形成装置12にできるだけ多くのパイプライン30を構築する。インタフェース監視コンポーネント28は、特定の入力画像形成装置12、特定の出力画像形成装置18および所望のハードウェアインタフェースと適合させるのに必要な特定のプロトコルを有する一連のコンポーネント20、22、24、26を選択的に結合する。コンポーネント20、22、24、26の性質上、これらのコンポーネントは、インタフェース監視コンポーネント28によってモジュール的にパイプライン30の内外で選択的に交換される。コンポーネント20、22、24、26は各々、一組のソフトウェアインタフェースによって種類は似ているがプロトコルは異なる同種の他のコンポーネントと交換可能なように作られている。具体的には、各コンポーネントは特定のプロトコルに基づいて構成されているが、プロトコルを同種の各コンポーネント用の汎用ベースクラスプロトコルに変換する「ベースクラス」ソフトウェアインタフェースを含んでいる。パイプラインの他のコンポーネントの構成に影響することなくパイプライン30におけるコンポーネント20、22、24、26のどれでも交換することができるように、ベースクラスインタフェースを各コンポーネントに構成すると好ましい。このように、個々のコンポーネント20、22、24、26を再利用することができ、かつては再設計作業にかかっていたコストが大幅に削減される。
例えば、パイプライン30をシーメンスの入力画像形成装置12と3MのSuperSet機能を用いた出力画像形成装置18との間でシリアルデータ通信できるよう構成すると、インタフェース監視コンポーネント28は、(1)シーメンスの入力画像形成装置と関連したシリアルハードウェアインタフェースを介して画像形成情報を受信するのに適した入力ドライバプロトコルを有する入力ドライバコンポーネント20、(2)シーメンスの入力画像形成装置から受信する画像情報のフォーマットに基づいて第1の画像形成要求を生成するのに適した入力インタプリタプロトコルを有する入力インタプリタコンポーネント22、(2)3MのSuperSet出力画像形成装置によって理解される第2の画像形成要求を生成するのに適した出力インタプリタプロトコルを有する出力インタプリタコンポーネント24および(4)3MのSuperSet出力画像形成装置と関連したシリアルハードウェアインタフェースを介して第2の画像形成要求を送受信するのに適した出力ドライバプロトコルを有する出力ドライバコンポーネント26を通信的に結合する。あるいは、東芝の入力画像形成装置12と3MのSuperSet出力画像形成装置18との間でシリアルデータ通信を行うために上述したパイプライン30に変更を加える場合、入力ドライバコンポーネント20および入力インタプリタコンポーネント22を東芝のモジュール性に適した入力ドライバプロトコルおよび入力インタプリタプロトコルに基づいて構成されたコンポーネントと交換しさえすればよい。出力インタフェースコンポーネント16は、3MのSuperset構成の出力インタプリタコンポーネント24と3MのSupersetシリアル構成の出力ドライバコンポーネント26とを含むものであるが、これはすでに入力画像形成装置12とは無関係に出力画像形成装置18の要件に基づいて構成されているため、変更に影響されることはない。このように、インタフェース監視コンポーネント28は、(1)東芝の入力画像形成装置と関連したシリアルハードウェアインタフェースを介して画像形成情報を受信するのに適した入力ドライバプロトコルを有する入力ドライバコンポーネント20、(2)東芝の入力画像形成装置から受信する画像情報のフォーマットに基づいて第1の画像形成要求を生成するのに適した入力インタプリタプロトコルを有する入力インタプリタコンポーネント22、(2)3MのSuperSet出力画像形成装置によって理解される第2の画像形成要求を生成するのに適した出力インタプリタプロトコルを有する出力インタプリタコンポーネント24および(4)3MのSuperSet出力画像形成装置と関連したシリアルハードウェアインタフェースを介して第2の画像形成要求を送受信するのに適した出力ドライバプロトコルを有する出力ドライバコンポーネント26を通信的に結合する。
もう1つの例として、東芝の入力画像形成装置12と3Mの952出力画像形成装置18との間でシリアルデータ通信を行うために上述したパイプライン30に変更を加える場合、出力インタフェースコンポーネント16に変更を加えるだけでよい。具体的には、インタフェース監視コンポーネント28は、(1)東芝の入力画像形成装置と関連したシリアルハードウェアインタフェースを介して画像形成情報を受信するのに適した入力ドライバプロトコルを有する入力ドライバコンポーネント20、(2)東芝の入力画像形成装置から受信する画像情報のフォーマットに基づいて第1の画像形成要求を生成するのに適した入力インタプリタプロトコルを有する入力インタプリタコンポーネント22、(2)3Mの952出力画像形成装置によって理解される第2の画像形成要求を生成するのに適した出力インタプリタプロトコルを有する出力インタプリタコンポーネント24および(4)3Mの952出力画像形成装置と関連したシリアルハードウェアインタフェースを介して第2の画像形成要求を送受信するのに適した出力ドライバプロトコルを有する出力ドライバコンポーネント26を通信的に結合する。このように、汎用シリアル構成の入力ドライバコンポーネント20と東芝製の入力インタプリタコンポーネント22とを含む入力インタフェースコンポーネント14には、変更による影響が及ぶことはない。
最後に、シリアルハードウェアインタフェースを有する東芝の入力画像形成装置12と3MのデュアルポートRAMを有する952出力画像形成装置18との間でシリアルデータ通信を行うために上述したパイプライン30に変更を加える場合、出力インタフェースコンポーネント16に変更を加えるだけでよい。具体的には、インタフェース監視コンポーネント28は、(1)東芝の入力画像形成装置と関連したシリアルハードウェアインタフェースを介して画像形成情報を受信するのに適した入力ドライバプロトコルを有する入力ドライバコンポーネント20、(2)東芝の入力画像形成装置から受信する画像情報のフォーマットに基づいて第1の画像形成要求を生成するのに適した入力インタプリタプロトコルを有する入力インタプリタコンポーネント22、(2)3Mの952出力画像形成装置によって理解される第2の画像形成要求を生成するのに適した出力インタプリタプロトコルを有する出力インタプリタコンポーネント24および(4)3Mの952出力画像形成装置と関連したデュアルポートRAMハードウェアインタフェースを介して第2の画像形成要求を送受信するのに適した出力ドライバプロトコルを有する出力ドライバコンポーネント26を通信的に結合する。このように、汎用シリアル構成の入力ドライバコンポーネント20と東芝製の入力インタプリタコンポーネント22とを含む入力インタフェースコンポーネント14には、変更による影響が及ぶことはない。
上述したような互換性を高めるために、コンポーネント20、22、24、26間のソフトウェアインタフェースを予め定義し、各種コンポーネントを汎用的なものとしておかなければならない。しかしながら、同時に個々のコンポーネント20、22、24、26を、特定のプロトコルに対して指定された機能を実施できるように構成しなければならない。本発明によれば、これについての解決策は、例えば入力ドライバコンポーネント20などの各種コンポーネント用の汎用ベースクラスプロトコルを開発するのに用いられているオブジェクト指向技術にある。汎用ベースクラスプロトコルは、コンポーネントによって提供される関数およびこのような関数を呼び出すための手順を指定する。特定のプロトコルコンポーネントは各々対応するベースプロトコルから「継承」され、環境に適合するようインタフェースを実施する。本願明細書において、「インヘリタンス(継承)」という用語は、抽象的なデータ型を拡張してクラス/サブクラス関係を実現するためのオブジェクト指向プログラミング概念を意味する。クラスは、共有している特徴を再利用するのではなく、選択されたデータメンバと複数のクラスのメンバ関数とを継承することができる。
クラスを引き継ぐことで、1つのクラスのメンバをあたかも第2のクラスのメンバであるかのようにして使用することができるようになる。他のクラスから継承されたメンバを拡張または交換する操作以外は、サブクラスを利用するのにプログラムを追加する必要はない。オブジェクト指向システムを開発する際、サブクラスは適当な機能が得られるまで既存のクラスから導出される。サブクラスを導出することで、クラス階層が形成される。クラス階層は、ベースクラスと呼ばれる特定の1つのクラスから派生している。ベースクラスは、全てのサブクラスに共通の最低限の動作を含む。本発明によれば、各コンポーネント20、22、24、26は特定のプロトコルに基づいて構成されるが、ベースクラスプロトコルのサブクラスとしても機能する。各コンポーネント20、22、24、26はベースクラスプロトコルを継承し、最低限の関数がベースクラス要件を満たすようこれらの関数を利用するため、各コンポーネントを、同一のベースクラスプロトコルを継承している類似のコンポーネントと直接入れ換えることができる。オブジェクト指向技術によって達成される互換性から、インタフェースを別途開発することなくパイプライン30に各コンポーネントを効率よくプラグインする「ダイレクトコネクト(direct connect)」ソフトウェアアーキテクチャが得られる。
第2図は、コンポーネント20、22、24、26の互換性を高めるオブジェクト指向プロトコル階層の一例である。プロトコル階層は、各々汎用的なベースクラスプロトコルから「継承」される特定のプロトコル用のコンポーネント20、22、24、26を利用することを示している。例えば、入力ドライバのベースプロトコル32は、汎用的なシリアル入力ドライバプロトコル34,SCSI入力ドライバプロトコル36、シーメンスのシリアル入力ドライバプロトコル38またはパラレル入力ドライバプロトコル39などの入力画像形成装置12に関連した異なるハードウェアインタフェース要件に対する「継承」入力ドライバプロトコルを複数個含むことができる。ベースクラスの入力インタプリタプロトコル40は、GEの入力インタプリタプロトコル42、東芝の入力インタプリタプロトコル44、シーメンスの入力インタプリタプロトコル46またはPickerの入力インタプリタプロトコル48などの種類または製造業者の異なる入力画像形成装置12用の継承入力インタプリタプロトコルを複数個含むことができる。第2図に示されるように、ベースクラスの入力インタプリタプロトコル40は、キーパッドプロトコル50などのユーザインタフェース装置用の継承プロトコルを含むこともできる。
同様に、ベースクラスの出力インタプリタプロトコル52は、3MのSuperSet出力インタプリタプロトコル54、3Mの831出力インタプリタプロトコル56または3Mの952出力インタプリタプロトコル58などの種類の異なる出力画像形成装置18用の継承出力インタプリタプロトコルを複数個含むことができる。最後に、ベースクラスの出力ドライバプロトコル60は、デュアルポートRAM出力ドライバプロトコル62、シリアル出力ドライバプロトコル64またはパラレル出力ドライバプロトコル65などの出力画像形成装置18に関連した異なるハードウェアインタフェース要件に対する継承出力ドライバプロトコルを複数個含むことができる。上述した各継承プロトコルには、コンポーネント20、22、24、26によって提供される、プロトコル毎の関数が含まれるが、これらの継承プロトコルは対応するベースクラスプロトコル32、40、52、60から継承される関数を汎用インタフェースを介して利用する。上述したベースクラスプロトコル32、40、52、60の各々について、医療用画像形成システム環境における要件に応じて様々な他の継承プロトコルも利用できる。
第3図に示されるように、インタフェース監視コンポーネント28は、クライアント-サーバアーキテクチャに基づいてパイプライン30を定義するものであると好ましい。第3図において、コンポーネントAからコンポーネントBを指している矢印は、コンポーネントAがサーバコンポーネントBのクライアントコンポーネントであるということを示している。入力ドライバコンポーネント20と入力画像形成装置12との間の両頭矢印および出力ドライバコンポーネント26と出力画像形成装置18との間の両頭矢印は、クライアント-サーバ関係を示すものではなく、医療用画像形成システム10のハードウェア/ソフトウェアインタフェースを示すものである。第3図において矢印で示されるように、インタフェース監視28は、入力インタプリタコンポーネント22が入力ドライバコンポーネント20および出力インタプリタコンポーネント24の両方のクライアントコンポーネントになり、出力インタプリタコンポーネント24が出力ドライバコンポーネント26のクライアントコンポーネントになるようにクライアント-サーバ関係を定義するものであると好ましい。この結果、入力ドライバコンポーネント20および出力インタプリタコンポーネント24が入力インタプリタコンポーネント22のサーバコンポーネントになり、出力ドライバコンポーネント26が出力インタプリタコンポーネント24にとってのサーバコンポーネントになる。インタフェース監視コンポーネント28自体、入力ドライバコンポーネント20と、入力インタプリタコンポーネント22と、出力インタプリタコンポーネント24と、出力ドライバコンポーネント26とのクライアントコンポーネントである。
上述したクライアント-サーバ関係では、入力ドライバコンポーネント20および出力ドライバコンポーネント26はいずれも、それぞれ純粋に入力インタプリタコンポーネント22および出力インタプリタコンポーネント24にとってのサーバコンポーネントである。入力ドライバコンポーネント20および出力ドライバコンポーネント26は、低水準のハードウェア要件に影響し、それぞれ高水準の入力インタプリタコンポーネント22および出力インタプリタコンポーネント24の制御下にある。入力インタプリタコンポーネント22は、出力インタプリタコンポーネント24のクライアントコンポーネントであり、入力インタプリタコンポーネントが出力画像形成装置18を制御するための関数を提供する。出力インタプリタコンポーネント24は、入力インタプリタコンポーネント22との間で通信を開始することはなく、入力インタプリタコンポーネントからの要求時にサービスを提供する。最後に、各コンポーネント20、22、24、26は、インタフェース監視コンポーネント28にとってのサーバコンポーネントになる。このように、インタフェース監視コンポーネント28は最終的にはソフトウェアシステム全体を制御する。
クライアント-サーバ関係にあるコンポーネント20、22、24、26間での通信は、遠隔手続き呼出し(RPC)を行うことによって実施される。遠隔手続き呼出しは、複雑に分散されたソフトウェアシステムにおいて用いられることの多い一般的な通信機構である。クライアントコンポーネントは、対応するサーバコンポーネントに対して遠隔手続き呼出しを行うことによって個々の関数を実行する。遠隔手続き呼出しを使用することで、個々のコンポーネントの詳細および従属性、すなわちプロトコル毎に指定される特徴が隠蔽化される。遠隔手続き呼出しは、コンポーネント内通信に必要な全ての機構に対処する。この結果、通信機構は汎用的なまま維持され、プロトコル毎に指定される機構をコンポーネント毎に設計する必要はなくなる。各コンポーネント20、22、24、26は、クライアントコンポーネントに対してサービスを行うように構成されているが、そのクライアントコンポーネントをどのコンポーネントあるいは何個のコンポーネントがサーバコンポーネントとして実際に利用しているかについては把握していない。コンポーネント20、22、24、26は、プロトコル毎に指定される従属性を呈することなく単純にクライアントコンポーネントの要求を実行しているだけである。
遠隔手続き呼出しを使用して以下のように関数を実行する。まず、クライアントコンポーネントによって実施されるソフトウェアプロセスで個々の関数を実行する必要がある場合、このプロセスは識別子によって関数を呼び出すだけである。一般に「クライアントスタブ」と呼ばれる、クライアントコンポーネント内に常駐しているソフトウェアの層は、関数呼出しをトラップする。クライアントスタブが他のサーバコンポーネント内に実際に存在する関数を呼び出してこれを実施するのに必要なソフトウェアコードを求める場合、このクライアントスタブは、関数呼出しによって実行されるデータならびに必要なパケット化およびアドレス指定を全て含むメッセージを生成する。次に、クライアントスタブはソフトウェアシステム内に存在するリアルタイムオペレーティングシステムを介してサーバコンポーネントにメッセージを送信する。サーバモジュールは、メッセージを受信するサーバスタブとして知られるソフトウェアコードの層を含んでいる。サーバスタブはメッセージを抽出し、実際にメッセージから取り出されたデータを用いて正しいローカル関数を呼び出す。要求された情報を返しながら、あたかも最初に呼び出されたローカルなものであるかのようにローカル関数が実行される。サーバスタブは、返された情報に基づいて応答を生成し、オペレーティングシステムを介してこの応答をクライアントコンポーネントに送信する。応答を受信すると、クライアントスタブは返された情報を取り出し、その関数を最初に呼び出したローカルソフトウェアプロセスにこの情報を送信する。ローカルソフトウェアプロセスは、モジュール内通信が起こっても気づかないままである。
以下のセクションでは、本発明による医療用画像形成システム10の一例としての実施例において各ベースクラスプロトコルを利用する方法について詳細に説明する。特に、セクションA〜Dでは、C++オブジェクト指向プログラム言語における例示の目的で示されるコンポーネント20、22、24、26を用いて得られるサービスの定義および要件の例を述べる。ここで、コメントが適用可能な場合にはコメントも含む形とする。以下、個々のコンポーネントの機能を例示するためにC++コードを使用するが、「ホスト」というラベルについては入力画像形成装置12を表し、「レーザ画像生成器」または「LI」というラベルは出力画像形成装置18を表すものとする。
A. 入力ドライバのベースクラスプロトコル
ここに開示する一例としての実施例において、入力ドライバのベースクラスプロトコルには、入力ドライバコンポーネント20がそのクライアントコンポーネントすなわちインタフェース監視コンポーネント28および入力インタプリタコンポーネント22に提供するのに必要な遠隔手続き呼出しが7回含まれる。遠隔手続き呼出しを利用して、クライアントコンポーネントは入力ドライバコンポーネント20を介して外部の入力画像形成装置12との間を直接インタフェースすることができる。以下、7回の遠隔手続き呼出しについて、処理されるパラメータのタイプおよび実行される関数の点から説明する。
1. xmit_message(送信メッセージ)
パラメータ タイプ
message(メッセージ) char *(文字型)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上述したRPCは、メッセージを入力ドライバコンポーネントに渡し、入力画像形成装置12に送信する。入力画像形成装置12へのメッセージの送信に必要な全ての通信は、入力ドライバコンポーネント20によって処理される。
2. receive_message(受信メッセージ)
パラメータ タイプ
message(メッセージ) char *(文字型)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上述したRPCは、ホストから送信された入力ドライバコンポーネント20からのメッセージを検索する。繰り返すが、入力画像形成装置12へのメッセージの送信に必要な全ての通信は、入力ドライバコンポーネント20によって処理される。
3. set_xmit_timeout(送信タイムアウト設定)
パラメータ タイプ
timeout(タイムアウト) int(整数型)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、入力画像形成装置12にメッセージを送信する際に入力ドライバコンポーネント20によって使用されるタイムアウト値を設定する。
4. set_async_func
パラメータ タイプ
client ptr(クライアントポインタ) FE_CLIENT_PTR
method ptr(メソッドポインタ) FE_METHOD_PTR
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、クライアントコンポーネントに関連した非同期ハンドラに対する処理を入力ドライバコンポーネント20に渡す。上記RPCは、入力ドライバコンポーネント20がクライアントコンポーネントに対して既に起こった非同期イベントを通知するための手段となる。入力ドライバコンポーネント20に対して相対的に起こる唯一の非同期イベントはMSG_PENDINGである。これは、入力画像形成装置12から入力ドライバコンポーネントへのメッセージの送信が完全に終了し、入力インタプリタコンポーネント22への送信の準備ができていることを示す。
5. set_debug_level
パラメータ タイプ
debug level(デバッグレベル) DEBUG_LEVEL
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、クライアントコンポーネントで入力ドライバコンポーネントのデバッグレベルを設定できるようにする。デバッグレベルは、NO_DEBUG、LOW_DEBUG、MEDIUM_DEBUGおよびHIGH_DEBUGである。このパラメータは、デバッグ中に表示される情報に影響する。
6. start_comm(通信開始)
パラメータ タイプ
none(なし)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、入力ドライバコンポーネント20と入力画像形成装置12との間の通信を開始させる。
7. stop_comm(通信終了)
パラメータ タイプ
none(なし)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、入力ドライバコンポーネント20と入力画像形成装置12との間の通信を不能にする。
上述したように、各RPCは、入力ドライバコンポーネント20から3つのドライバリターンコードすなわち(1)RPC_OK、(2)PORT_BUSYおよび(3)NO_MESSAGEのうちの1つを返す。ドライバリターンコードは、C++では以下のように定義される。
Figure 0003695758
入力ドライバコンポーネント20用の実際のベースクラスプロトコルは、C++では以下のように定義される。
Figure 0003695758
B. 入力インタプリタのベースクラスプロトコル
本実施例では、入力インタプリタのベースクラスプロトコルには、入力インタプリタコンポーネント22がそのクライアントコンポーネントすなわちインタフェース監視コンポーネント28に提供するのに必要な遠隔手続き呼出しが4回含まれる。遠隔手続き呼出しを利用して、インタフェース監視コンポーネント28は入力インタプリタコンポーネント22と通信することができる。以下、4回の遠隔手続き呼出しについて、処理されるパラメータのタイプおよび実行される関数の点から説明する。
1. rcvConfiguration(受信コンフィギュレーション)
パラメータ タイプ
pointer to parameters(パラメータへのポインタ) Param_Blk
返り値 タイプ
void(なし) n/a(なし)
上記RPCは、コンポーネントに対するコンフィギュレーションパラメータを指すポインタを入力インタプリタコンポーネント22に渡す。このパラメータは、システム10が最後にパワーダウンシーケンスに入って以来格納されている。このパラメータは、出力画像形成装置18に接続されたメモリの読み出し専用ブロックに格納されている。このように、入力インタプリタコンポーネント22によってなされる変更は、いかなるものであっても次のパワーアップに影響することはない。
2. li_event_handler(レーザ画像生成器のハンドラ)
パラメータ タイプ
laser imager event(レーザ画像生成器のハンドラ) IO_EVENT
返り値 タイプ
void(なし) n/a(なし)
上記RPCは、入力ドライバコンポーネント20から非同期イベントを受信する。非同期イベントは、入力画像形成装置12からのメッセージの受信を含み、入力ドライバコンポーネント20について上述したものである。
3. io_event_handler(入出力イベントのハンドラ)
パラメータ タイプ
io event(入出力イベント) LI_INTERFACE_EVENT
返り値 タイプ
void(なし) n/a(なし)
上記RPCは、出力インタプリタコンポーネント24および出力ドライバコンポーネント26を介して出力画像形成装置18から非同期イベントを受信する。出力画像形成装置18から送信されてくる同期イベントについては、出力インタプリタコンポーネント24を例に挙げて詳細に後述する。
4. set_debug_level(デバッグレベル設定)
パラメータ タイプ
debug level(デバッグレベル) DEBUG_LEVEL
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、入力インタプリタコンポーネント22用のデバッグレベルをクライアントコンポーネントすなわちインタフェース監視コンポーネント28で設定できるようにする。デバッグレベルは、NO_DEBUG、LOW_DEBUG、MEDIUM_DEBUGおよびHIGH_DEBUGである。このパラメータは、デバッグ中に表示される情報に影響する。
上述したように、入力インタプリタコンポーネント22は、出力画像形成装置18から送信されてくる非同期イベントを処理するための機構を提供する。このイベントは、入力インタプリタコンポーネント22に出力画像形成装置18における状態の変化を通知するよう作用する。出力画像形成装置18の状態を示すイベントには様々なものがあり、例えば以下のものが挙げられる。(1)出力画像形成装置に関連しているフィルムプロセッサの状態が変化したことを示すFP_status、(2)出力画像形成装置に関連した画像形成ハードウェアの状態が変化したことを示すPR_status_change、(3)出力画像形成装置内で画像データをフォーマットすることに関与する画像管理システムの状態が変化したことを示すIMS_status_change、(4)画像形成ジョブの状態が変化したことを示すJOB_status_changeおよび(5)画像データのバックグラウンド転送に必要な転送ジョブの状態が変化したことを示すXFR_status_change。上記の状態イベントの機能は、入力インタプリタコンポーネント22が出力画像形成装置18を連続的にポーリングしなくてもよいようにすることである。
実際の入力インタプリタコンポーネント22用のベースクラスプロトコルは、C++では以下のように定義される。
Figure 0003695758
C. 出力インタプリタのベースクラスプロトコル
入力インタプリタコンポーネント22は、一組の画像形成オブジェクトを介して出力インタプリタコンポーネント24との間をインタフェースする。画像形成オブジェクトは、遠隔手続き呼出し用のパラメータとして機能し、出力画像形成装置18および画像形成プロセスの特徴に関して利用できる全ての情報を含んでいる。入力インタプリタコンポーネント22は、情報の任意の部分を利用して残りを無視することができる。ここでは、(1)ボックスオブジェクト、(2)フォーマットオブジェクト、(3)画像オブジェクト、(4)テスト画像オブジェクト、5)ストリングオブジェクトおよび6)様々な汎用画像形成パラメータオブジェクトを含む6個の画像形成オブジェクト定義がある。
フォーマットオブジェクトは、出力画像形成装置18が画像を形成する画像形成メディアのシート全体について記述するために使用される。フォーマットオブジェクトは、フィルムタイプ、フィルムサイズ、ボーダーカラー、ボーダー密度などに関する情報を保持する。フォーマットオブジェクトの特徴は、C++では以下のように定義される。
Figure 0003695758
ボックスは、画像を保持するよう指定されたフィルムシート上の矩形領域である。ボックスは、位置、サイズ、コントラスト、色などの多くの特徴を有する。ボックス定義は個々のフォーマットと関連している。すなわち、個々のフォーマットに関して複数のボックスが使用される。以下のC++コードは、ボックスオブジェクトおよびその特徴を記述したものである。
Figure 0003695758
画像は、デジタル画像値を含む画像データによって表される。画像データは、出力画像形成装置18に接続された画像メモリに格納されている。画像オブジェクトは、特定の特徴と画像とを関連付けるために使用される。上記のコードに示されるように、特徴には、画素長、画素幅、画素深さ、カラーフォーマットなどが含まれる。印刷時、使用するフォーマットについて定義されたボックスを画像で埋める。以下のC++コードは、画像オブジェクトおよびその特徴を記述したものである。
Figure 0003695758
テスト画像オブジェクトは、試験用に用いられる画像をシンボル化するのに用いられる。これらの画像はソフトウェア的に生成され、1枚の画像とは属性が異なる。以下のC++コードは、テストイメージオブジェクトおよびその特徴を記述したものである。
Figure 0003695758
ストリングオブジェクトは、画像メモリ内にASCIIテキストを保持するために使用される。また、ストリングオブジェクトは、長さ、強度、タイプなどのパラメータの使用を可能にする。以下のC++コードは、ストリングオブジェクトおよびその特徴を記述したものである。
Figure 0003695758
汎用パラメータオブジェクトは、全てのプロセスコンフィギュレーションパラメータを保持するのに使用される。このオブジェクトを用いて、レーザ画像生成器のパラメータを設定したり、あるいはパラメータの現在の設定を検索したりすることができる。いくつかのパラメータの例として、デフォルトベータテーブル、デフォルトカラーコントラスト、デフォルト出力先、デフォルトフィルムサイズおよびタイプなどが挙げられる。利用できるメモリ量、現在のソフトウェアリビジョン、全体の印刷待ち数などのいくつかのパラメータは読み出し専用であるため、設定することはできない。以下のC++コードは、汎用パラメータオブジェクトおよびその特徴を記述したものである。
Figure 0003695758
Figure 0003695758
出力インタプリタコンポーネント24の主な役目の1つは、出力画像形成装置18の状態をクライアントコンポーネントすなわち入力インタプリタコンポーネント22に伝達することである。状態伝達プロセスは、2つのステップを含む。出力インタプリタコンポーネント24が出力画像形成装置18における状態の変化を示すと、出力インタプリタコンポーネントによってクライアントコンポーネント中のイベントハンドラが直接呼び出される。イベントハンドラは、状態イベントを送る。繰り返すが、入力インタプリタのベースクラスプロトコルについて上述した考えられる状態イベントには、(1)FP_status_change、(2)PR_status_change、(3)IMS_status_change、(4)JOB_status_changeおよび(5)XFR_status_changeが含まれる。出力インタプリタコンポーネント24は、上述した状態変化をクライアントすなわち入力インタプリタコンポーネント22に通知するため、入力インタプリタコンポーネントはレーザ画像生成器を連続的にポーリングしなくてすむ。
状態変化を無視するか、あるいはさらに情報を要求するのは、クライアントすなわち入力インタプリタコンポーネント22の役目である。全ての状態情報は、5個の状態オブジェクトの中に含まれている。フィルムプロセッサ、プリンタ、画像管理システム、ジョブおよびバックグラウンドジョブ(転送)についての状態オブジェクトが存在する。各状態オブジェクトは、警告やエラーが存在するか否か確認するために容易にチェックすることのできる状態フィールドを有する。警告またはエラーが存在する場合、警告構造またはエラー構造をさらに試験することができる。繰り返すが、クライアントは必要な情報のみを選択して使用することができる。以下のC++コードは、各状態オブジェクトについての定義およびこれらのオブジェクトに含まれる構造を示すものである。
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
一例として挙げる本実施例では、出力インタプリタコンポーネント24は15種類の遠隔手続き呼出しを提供する。上述した画像形成オブジェクトおよび遠隔手続き呼出しを使用して、クライアントは出力画像形成装置18を完全に動作させることができる。上述した画像形成オブジェクトに含まれるパラメータは全て「割り当て前の値」に初期化される。クライアントがパラメータを変更しなければ、出力インタプリタコンポーネント24はこれを無視する。このような特徴があることで、クライアントは必要なパラメータのみを使用することができるようになる。出力インタプリタコンポーネント24によって提供される各遠隔手順呼出しについては後述する。特に明示されなければ、以下の遠隔手順呼出しの各々についての返り値は、本開示において後述するLI_response型のレーザ画像生成器の応答オブジェクトである。
1. メディアプリントRPC
a. print(印刷)
パラメータ タイプ
copies(コピー;省略可) int(整数型)
上記RPCは、出力画像形成装置18として機能しているレーザ画像生成器から汎用的な印刷を開始する。上記RPCは、固定フォーマットで使用されるものとして設計されている。フォーマットは現在選択されている固定フォーマットである。copiesは任意のパラメータであり、生成されるコピーの枚数を示している。最後の印刷後に得られた画像を印刷に使用する。
b. print(印刷)
パラメータ タイプ
format(フォーマット) int(整数型)
image list(画像リスト) LIST
copies(コピー;省略可) int(整数型)
density(密度;省略可) int(整数型)
destination(出力先;省略可) DESTINATION
上記RPCは、レーザ画像生成器から印刷を開始する。フォーマットは、使用するフォーマットIDである。画像リストは、フォーマットを埋めるのにどの画像を使用するかを示す。copiesは任意のパラメータであり、生成されるコピーの枚数を示している。densityは任意の整数であり、密度テストパッチが望ましい場合に用いられる。この整数の値は画像IDに対応している。destinationは任意のパラメータであり、デフォルトではなく出力先を定義している。
c. print_test(印刷テスト)
パラメータ タイプ
format(フォーマット) int(整数型)
image list(画像リスト) LIST
dens_id(密度ID) IMAGE_ID
copies(コピー;省略可) int(整数型)
density(密度;省略可) int(整数型)
destination(出力先;省略可) DESTINATION
上記RPCは、レーザ画像生成器から印刷を開始する。フォーマットは使用するフォーマットIDである。画像リストは、フォーマットを埋めるのにどの画像を使用するかを示す。dens_idは、密度テストパッチの画像IDを表す整数である。copiesは任意のパラメータであり、生成されるコピーの枚数を示している。destinationは任意のパラメータであり、デフォルトではなく出力先を定義している。
d. abort(放棄)
パラメータ タイプ
job ID(ジョブID) JOB_ID
上記RPCは、対応するIDを有するジョブを放棄する。
e. abort(放棄)
パラメータ タイプ
none(なし) n/a(なし)
上記RPCは、既に開始されている全てのジョブを放棄する。
2. RPCのフォーマット
a. define(定義)
パラメータ タイプ
format object FORMAT
(オブジェクトをフォーマット)
上記RPCは、フォーマットオブジェクトにおいて見いだされるものと全く同じパラメータでフォーマットを定義する。NOT_ASSIGNEDに等しいパラメータは全てこの定義には含まれない。
b. define(定義)
パラメータ タイプ
box object BOX
(ボックスオブジェクト)
上記RPCは、ボックスオブジェクトにおいて見いだされるものと全く同じパラメータでフォーマットを定義する。NOT_ASSIGNEDに等しいパラメータは全てこの定義には含まれない。
c. modify(変更)
パラメータ タイプ
box object BOX
(ボックスオブジェクト)
上記RPCは、ボックスオブジェクトにおいて指定されているIDに一致するボックスを変更する。ボックスオブジェクトのNOT_ASSIGNEDに等しいパラメータは全てこの定義には含まれない。
d. modify(変更)
パラメータ タイプ
box object BOX
(ボックスオブジェクト)
x_shift(xシフト) LENGTH
y_shift(yシフト) LENGTH
上記RPCは、ボックスオブジェクトにおいて指定されているIDに一致するボックスを変更する。ボックスの位置は、x_shiftおよびy_shiftによって指定される量だけシフトする。ボックスオブジェクトのNOT_ASSIGNEDに等しいパラメータは全て変更されない。
e. modify(変更)
パラメータ タイプ
format object FORMAT
(フォーマットオブジェクト)
上記RPCは、ボックスオブジェクトにおいて指定されているIDに一致するフォーマットを変更する。フォーマットオブジェクトのNOT_ASSIGNEDに等しいパラメータは全て変更されない。
f. remove(除去)
パラメータ タイプ
none(なし) n/a(なし)
上記RPCは、最後に獲得した画像を削除する。
g. remove(除去)
パラメータ タイプ
box object BOX
def(委譲;省略可) Bool(二値型)
all(全て;省略可) Bool(二値型)
上記RPCは、受信したBOXオブジェクトのIDと同一のIDを使用してボックスを削除する。DEFは、TRUE(真)に設定されると、ジョブを委譲してバックグラウンドで処理させる任意のパラメータである。受信されないときは、DEFはFALSE(偽)に設定される。ALLは、TRUE(真)に設定されると、既に定義されているボックスを全て削除する任意のパラメータである。受信されないときは、ALLはFALSE(偽)に設定される。
h. remove(除去)
パラメータ タイプ
format object FORMAT
def(委譲;省略可) Bool(二値型)
all(全て;省略可) Bool(二値型)
上記RPCは、受信したFORMATオブジェクトのIDと同一のIDを使用してフォーマットを削除する。DEFは、TRUE(真)に設定されると、ジョブを委譲してバックグラウンドで処理させる任意のパラメータである。受信されなければ、DEFはFALSE(偽)に設定される。ALLは、TRUE(真)に設定されると、既に定義されているボックスを全て削除する任意のパラメータである。受信されなければ、ALLはFALSE(偽)に設定される。
j. remove_all(全て除去)
パラメータ タイプ
def(委譲;省略可) Bool(二値型)
上記RPCは、レーザ画像生成器に定義されている画像、ボックス、フォーマットおよびテーブルを全て削除する。DEFは、TRUE(真)に設定されると、ジョブを委譲してバックグラウンドで処理させる任意のパラメータである。受信されなければ、DEFはFALSE(偽)に設定される。
h. remove_fixed_images(固定画像除去)
パラメータ タイプ
none(なし) n/a(なし)
上記RPCは、固定フォーマット格納RPCを介して格納された画像を全て削除する。
3. 画像操作RPC
a. store(格納)
パラメータ タイプ
none(なし) n/a(なし)
この遠隔手順呼出しは、固定フォーマットで厳密に用いられる。この遠隔手順呼出しは、次の画像を次に利用できる固定画像位置に格納する。この位置は、1〜Nまでであり、Nはフォーマット毎に指定されている。
b. store(格納)
パラメータ タイプ
id(ID) FIXED_ID
この遠隔手順呼出しは、固定フォーマットで厳密に用いられる。この遠隔手順呼出しは、次の画像を次に利用できるIDによって指定された位置に格納する。この位置は、1〜Nまでであり、Nはフォーマット毎に指定されている。
c. store(格納)
パラメータ タイプ
image(画像) IMAGE
上記RPCは次の画像を獲得する。画像サイズに関するリターン情報はLI_responseに存在している。
d. store(格納)
パラメータ タイプ
image(画像) TEST_IMAGE
上記RPCは次の画像をテストパターンとして獲得する。画像サイズに関するリターン情報はLI_responseに存在している。
e. store(格納)
パラメータ タイプ
string(ストリング) STRING
上記RPCはテキストおよびIDをSTRINGオブジェクトに格納する。これによって、クライアントコンポーネントはIDによっていつでもテキストを呼び出すことができる。ストリングサイズに関するリターン情報はLI_responseに存在している。
f. transfer(転送)
パラメータ タイプ
image(画像) TEST_IMAGE
上記RPCは、次の画像をバックグラウンドジョブとして転送する。画像サイズに関するリターン情報は、画像転送終了時に利用できるようになる。
g. reserve(保持)
パラメータ タイプ
image(画像) TEST_IMAGE
上記RPCは、IMAGEオブジェクトによって記述された画像を保持するのに十分な画像メモリを割り当てる。
4. プロセスコンフィギュレーション/状態RPC
a. set(設定)
パラメータ タイプ
parameter object PARAMETER
(パラメータオブジェクト)
上記RPCは、レーザ画像生成器用の画像形成パラメータを設定する。NOT_ASSIGNEDに設定されたパラメータは全て変更されることがない。
5. 状態RPC
a. show(表示)
パラメータ タイプ
parameter object *PARAMETER
(パラメータオブジェクト)
上記RPCは、レーザ画像生成器用の画像形成パラメータを検索する。
b. show_fixed(固定表示)
パラメータ タイプ
parameter object *PARAMETER
(パラメータオブジェクト)
上記RPCは、レーザ画像生成器用の固定フォーマットされた画像形成パラメータを検索する。パラメータオブジェクトのその他のメンバは全て変更されることがない。パラメータオブジェクトのその他のメンバは全て変更されることがない。
c. show_mem(メモリ表示)
パラメータ タイプ
parameter object *PARAMETER
(パラメータオブジェクト)
上記RPCは、レーザ画像生成器用のメモリ条件を検索する。
d. show(表示)
パラメータ タイプ
image object *IMAGE
(パラメータオブジェクト)
上記RPCは、画像オブジェクトに与えられたIDと一致するIDを有する画像の長さと幅とを検索する。画像情報はすべて画像オブジェクトに存在している。
e. show(表示)
パラメータ タイプ
printer object *PRINTER
(プリンタオブジェクト)
上記RPCは、プリンタオブジェクトに与えられたIDと一致するIDを有するプリンタの状態を検索する。プリンタ情報はすべてプリンタオブジェクトに存在している。
f. show(表示)
パラメータ タイプ
job object *JOB
(ジョブオブジェクト)
上記RPCは、ジョブオブジェクトに与えられたIDと一致するIDを有するジョブの状態を検索する。ジョブ情報はすべてジョブオブジェクトに存在している。
g. show(表示)
パラメータ タイプ
printer object *XFR
(プリンタオブジェクト)
上記RPCは、転送ジョブオブジェクトに与えられたIDと一致するIDを有する転送ジョブの状態を検索する。転送ジョブ情報はすべて転送ジョブオブジェクトに存在している。
h. show_format(フォーマット表示)
パラメータ タイプ
string(ストリング) *char(文字型)
上記RPCは、定義されたフォーマットのIDのストリングを検索する。
i. show_images(画像表示)
パラメータ タイプ
string(ストリング) *char(文字型)
上記RPCは、獲得された画像のIDのストリングを検索する。
j. show_con_tables(カラーテーブル表示)
パラメータ タイプ
string(ストリング) *char(文字型)
上記RPCは、定義されたコントラストテーブルのストリングを検索する。
k. show_con_tables(カラーテーブル表示)
パラメータ タイプ
string(ストリング) *char(文字型)
上記RPCは、定義されたカラーコントラストテーブルのストリングを検索する。
l. set_debug_level(デバッグレベル設定)
パラメータ タイプ
debug level(デバッグレベル) DEBUG_LEVEL
返り値 タイプ
Driver return code DRIVER_RC
(ドライバリターンコード)
上記RPCは、クライアントコンポーネントで入力インタプリタコンポーネント22のデバッグレベルを設定できるようにする。デバッグレベルは、NO_DEBUG、LOW_DEBUG、MEDIUM_DEBUGおよびHIGH_DEBUGである。このパラメータは、デバッグ中に表示される情報に影響する。
出力インタプリタコンポーネント24に対してインタフェースすることの利点の1つは、各遠隔手続き呼出しが同様のオブジェクトを返すということにある。このオブジェクトは、最も適切には上記において示したようにレーザ画像生成器の応答オブジェクトと呼ばれる。レーザ画像生成器では、応答オブジェクトは極めて多量な遠隔手続き呼出しの結果に関する情報である。しかしながら、クライアントは、必要なものに関する情報のみを選択して検討することもできる。レーザ画像生成器の応答オブジェクトは3つのメインフィールドを有する。1つ目はsuccessというの単純な論理値である。この論理値は、遠隔手続き呼出しに関する要求が終了したか失敗したかという結果を反映している。この情報は、大半のクライアントコンポーネントで必要とされているものを満たすことができる。2番目のフィールドすなわちsuccess_dataは、コマンドが成功した場合にクライアントコンポーネント側で想定する値を返す。通常、成功したコマンドに関する情報はない。しかしながら、成功したコマンドに関して返される情報の一例として、画像格納コマンドが成功した後に返ってくる画像サイズが挙げられる。3つ目のフィールドすなわちerrorsは、遠隔手続き呼出しが何故失敗したかを説明するのに用いられる。このフィールドは、実際にはレーザ画像生成器において発生し得るエラーのコンプリヘンシブビットフィールドである。繰り返すが、このフィールドはsuccessが偽である場合にのみ有効である。
以下に列挙するC++コードは、レーザ画像生成器の応答オブジェクトについて記述したものである。クラスはコマンドの発行後にレーザ画像生成器から送信されてくる応答を定義する。コマンドの実行に成功すると、SUCCESS(成功)フラグがTRUE(真)にセットされる。無事に終了した場合に受信されるデータは全てSuccess_Dataに格納される。コマンドが失敗に終わると、SUCCESS(成功)フラグはFALSE(偽)にセットされる。失敗の芸インはFailure(失敗)構造に格納される。
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
Figure 0003695758
D. 出力ドライバのベースクラスプロトコル
ここに開示する一例としての実施例において、出力ドライバのベースクラスプロトコルは、入力ドライバのベースクラスプロトコルと実質的に同一である。出力ドライバコンポーネント26は、出力インタプリタコンポーネント24用の遠隔手続き呼出しを5回行う。5回の遠隔手続き呼出しを利用して、出力インタプリタコンポーネント24は、レーザ画像生成器などの出力画像形成装置18との間を直接インタフェースすることができる。以下、5回の遠隔手続き呼出しについて説明する。
1. xmit_message(送信メッセージ)
パラメータ タイプ
message(メッセージ) char *(文字型)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上述したRPCは、メッセージを出力ドライバコンポーネント24に渡し、パイプライン30を介して入力画像形成装置12に送信する。出力画像形成装置18との通信に必要な全ての要件は、出力ドライバコンポーネント26によって処理される。
2. receive_message(受信メッセージ)
パラメータ タイプ
message(メッセージ) char *(文字型)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上述したRPCは、出力画像形成装置18から送信された出力ドライバコンポーネント26からのメッセージを検索する。繰り返すが、出力画像形成装置との通信に必要な全ての要件は、出力ドライバコンポーネント26によって処理される。
3. set_xmit_timeout(送信タイムアウト設定)
パラメータ タイプ
timeout(タイムアウト) int(整数型)
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、出力画像形成装置18にメッセージを送信する際に出力ドライバコンポーネント26によって使用されるタイムアウト値を設定する。
4. set_async_func
パラメータ タイプ
client ptr(クライアントポインタ) FE_CLIENT_PTR
method ptr(メソッドポインタ) FE_METHOD_PTR
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、クライアントコンポーネントすなわち出力インタプリタコンポーネント24の非同期ハンドラに対する処理を出力ドライバコンポーネント26に渡す。上記RPCは、クライアントコンポーネントに対して既に起こった非同期イベントを通知するために使用される。唯一の非同期イベントはMSG_PENDINGである。これは、出力画像形成装置18からのメッセージの送信が完全に終了し、出力インタプリタコンポーネント24への送信の準備ができていることを示す。
5. set_debug_level
パラメータ タイプ
debug level(デバッグレベル) DEBUG_LEVEL
返り値 タイプ
Driver return code(ドライバリターンコード) DRIVER_RC
上記RPCは、クライアントコンポーネントで出力ドライバコンポーネントのデバッグレベルを設定できるようにする。デバッグレベルは、NO_DEBUG、LOW_DEBUG、MEDIUM_DEBUGおよびHIGH_DEBUGである。このパラメータは、デバッグ中に表示される情報に影響する。
上述したように、各RPCは3種類のドライバリターンコードすなわち(1)RPC_OK、(2)PORT_BUSYおよび(3)NO_MESSAGEのうち1つを返す。ドライバリターンコードは、C++では以下のように定義される。
Figure 0003695758
以上、本発明の一例としての実施例にいて説明したが、当業者であればここに開示の明細書の内容を検討および本発明を実施することで、さらに他の利点および変更について容易に理解できよう。したがって、明細書および実施例は一例を示すにすぎないものであると解されるべきであり、本発明の真の範囲および趣旨については以下の請求の範囲に示されるものとする。

Claims (8)

  1. 異なる複数の入力画像形成装置と異なる複数の出力画像形成装置の間で画像情報を伝送するためのソフトウェアシステムであって、
    前記ソフトウェアシステムは、複数の入力ドライバコンポーネントと、複数の入力インタプリタコンポーネントと、複数の出力インタプリタコンポーネントと、複数の出力ドライバコンポーネントと、インタフェース監視制御コンポーネントとを備え、
    前記各入力ドライバコンポーネントは、前記入力画像形成装置のうちの1つから画像情報を異なる複数の入力ドライバプロトコルのうちの1つに従って受信するように構成され、前記各入力ドライバプロトコルは、前記入力画像形成装置のうちの特定の1つと関連付けられ、前記各入力ドライバコンポーネントは、前記各入力ドライバコンポーネントにとって汎用的でありかつ前記各入力インタプリタコンポーネントに理解される第1のベースクラスプロトコルに従って、前記画像情報を前記入力インタプリタコンポーネントのうちの1つに伝送する第1のインタフェースを含み、
    前記各入力インタプリタコンポーネントは、前記入力ドライバコンポーネントのうちの1つによって受信された画像情報に基づいて第1の画像形成要求を異なる複数の入力インタプリタプロトコルのうちの1つに従って生成するように構成され、前記各入力インタプリタプロトコルは、前記入力画像形成装置のうちの特定の1つと関連付けられ、前記各入力インタプリタコンポーネントは、前記各入力インタプリタコンポーネントにとって汎用的でありかつ前記各出力インタプリタコンポーネントに理解される第2のベースクラスプロトコルに従って、前記第1の画像形成要求を前記出力インタプリタコンポーネントのうちの1つに伝送する第2のインタフェースを含み、
    前記各出力インタプリタコンポーネントは、前記入力インタプリタコンポーネントのうちの1つによって生成された第1の画像形成要求に基づいて第2の画像形成要求を異なる複数の出力インタプリタプロトコルのうちの1つに従って生成するように構成され、前記各出力インタプリタプロトコルは、前記出力画像形成装置のうちの特定の1つと関連付けられ、前記各出力インタプリタコンポーネントは、前記各出力インタプリタコンポーネントにとって汎用的でありかつ前記各出力ドライバコンポーネントに理解される第3のベースクラスプロトコルに従って、前記第2の画像形成要求を前記出力ドライバコンポーネントのうちの1つに伝送する第3のインタフェースを含み、
    前記各出力ドライバコンポーネントは、前記出力インタプリタコンポーネントのうちの1つによって生成された第2の画像形成要求を、異なる複数の出力ドライバプロトコルのうちの1つに従って前記出力画像形成装置のうちの1つに伝送するように構成され、前記各出力ドライバプロトコルは、前記出力画像形成装置のうちの特定の1つと関連付けられ、前記各出力ドライバコンポーネントは、前記各出力ドライバコンポーネントにとって汎用的でありかつ前記各出力インタプリタコンポーネントに理解される第4のベースクラスプロトコルに従って、前記出力画像形成装置のうちの1つから前記第2の画像形成要求に対する第1の応答を伝送する第4のインタフェースを含み、
    前記インタフェース監視制御コンポーネントは、複数の通信パイプラインを有しかつ規模の変更が可能な通信アーキテクチャを生成するように構成され、前記各通信パイプラインは、前記入力画像形成装置のうちの1つと、前記入力ドライバコンポーネントのうちの1つと、前記入力インタプリタコンポーネントのうちの1つと、前記出力インタプリタコンポーネントのうちの1つと、前記出力ドライバコンポーネントのうちの1つと、前記出力画像形成装置のうちの1つとを通信可能であるように相互接続し、前記規模の変更が可能なソフトウェアアーキテクチャによって、1つの出力画像形成装置は、各通信パイプラインによって提供される必要なプロトコルを用いて、共用して複数の入力画像形成装置と同時に通信する能力を備え、あるいは、複数の出力画像形成装置は、それぞれ特定の通信パイプラインを介して1つの入力画像形成装置と相互接続されて当該入力画像形成装置と通信する能力を備えたことを特徴とするソフトウェアシステム。
  2. 前記第1のベースクラスプロトコル、前記第2のベースクラスプロトコル前記第3のベースクラスプロトコルおよび前記第4のベースクラスプロトコルの各々は、オブジェクト指向階層に従って定義されることを特徴とする請求項1記載のソフトウェアシステム。
  3. 出力インタプリタコンポーネントはさらに、前記出力ドライバコンポーネントのうちの1つによって受信される前記第1の応答に基づいて、前記出力インタプリタプロトコルのうちの1つに従って第2の応答を生成するよう構成され、
    前記入力インタプリタコンポーネントはさらに、前記出力インタプリタコンポーネントのうちの1つによって生成される前記第2の応答に基づいて、前記入力インタプリタプロトコルのうちの1つに従って第3の応答を生成するよう構成され、
    前記出力ドライバコンポーネントはさらに、前記出力インタプリタコンポーネントのうちの1つによって生成される第2の画像形成要求に対する第2の応答を、前記出力ドライバプロトコルのうちの1つに従って生成するよう構成され、前記入力ドライバコンポーネントはさらに、前記入力インタプリタコンポーネントのうちの1つによって生成される前記第3の応答を、前記入力ドライバプロトコルのうちの1つに従って前記入力画像形成装置のうちの1つに伝送するよう構成され、
    前記インタフェース監視制御コンポーネントによって定義された前記各通信パイプラインは、前記入力画像形成装置のうちの1つと、前記入力ドライバコンポーネントのうちの1つと、前記入力インタプリタコンポーネントのうちの1つと、前記出力インタプリタコンポーネントのうちの1つと、前記出力ドライバコンポーネントのうちの1つと、前記出力画像形成装置のうちの1つとを通信可能であるように相互接続し、前記入力画像形成装置のうちの1つと前記出力画像形成装置のうちの1つとの間で双方向通信するための双方向通信パイプラインであることを特徴とする請求項1記載のソフトウェアシステム。
  4. 前記出力インタプリタコンポーネントの第3のインタフェースは、前記出力インタプリタコンポーネントにとって汎用的でありかつ前記入力インタプリタコンポーネントに理解される前記第3のベースクラスプロトコルに従って前記第2の応答を前記入力インタプリタコンポーネントのうちの1つに伝送するよう構成され、
    前記入力インタプリタコンポーネントの第2のインタフェースは、前記入力インタプリタコンポーネントにとって汎用的でありかつ前記入力ドライバコンポーネントに理解される前記第2のベースクラスプロトコルに従って前記第1の応答を前記入力ドライバコンポーネントのうちの1つに伝送するよう構成されていることを特徴とする請求項3記載のソフトウェアシステム。
  5. 前記入力画像形成装置のうちの少なくとも1つは医療用画像形成装置を含み、前記出力画像形成装置のうちの少なくとも1つはレーザ画像生成器を含むことを特徴とする請求項4記載のソフトウェアシステム。
  6. 前記インタフェース監視制御コンポーネントは、前記入力インタプリタコンポーネントが前記入力ドライバコンポーネントのうちの1つのクライアントであり、前記入力インタプリタコンポーネントが前記出力インタプリタコンポーネントのうちの1つのクライアントであり、前記出力インタプリタコンポーネントが前記出力ドライバコンポーネントのうちの1つのクライアントであり、前記インタフェース監視制御コンポーネントが、前記入力ドライバコンポーネントと、前記入力インタプリタコンポーネントと、前記出力インタプリタコンポーネントと、前記出力ドライバコンポーネントとのクライアントであるように、クライアント-サーバ関係に従って前記各通信パイプラインを定義することを特徴とする請求項5記載のソフトウェアシステム。
  7. 前記入力インタプリタコンポーネントと、前記入力ドライバコンポーネントと、前記出力インタプリタコンポーネントとの間の通信は、前記入力インタプリタコンポーネントによって生成されると共に前記入力ドライバコンポーネントおよび前記出力インタプリタコンポーネントによって実行される遠隔手続き呼出しによって達成され、
    前記出力インタプリタコンポーネントと前記出力ドライバコンポーネントとの間の通信は、前記出力インタプリタコンポーネントによって生成されると共に前記出力ドライバコンポーネントによって実行される遠隔手続き呼出しによって達成され、
    前記インタフェース監視制御コンポーネントと、前記入力ドライバコンポーネントと、前記入力インタプリタコンポーネントと、前記出力インタプリタコンポーネントと、前記出力ドライバコンポーネントの間の通信は、前記インタフェース監視制御コンポーネントによって生成されると共に、前記入力ドライバコンポーネントと、前記入力インタプリタコンポーネントと、前記出力インタプリタコンポーネントと、前記出力ドライバコンポーネントとによって実行される遠隔手続き呼出しによって達成されることを特徴とする請求項6記載のソフトウェアシステム。
  8. 前記ソフトウェアシステムは、画像形成システム内に常駐していることを特徴とする請求項1記載のソフトウェアシステム。
JP51684396A 1994-11-22 1995-10-10 多重プロトコル画像形成装置間で画像情報を送受信するためのシステム Expired - Lifetime JP3695758B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/343,184 1994-11-22
US08/343,184 US5630101A (en) 1994-11-22 1994-11-22 System for communication of image information between multiple-protocol imaging devices
PCT/US1995/013436 WO1996016373A1 (en) 1994-11-22 1995-10-10 System for communication of image information between multiple-protocol imaging devices

Publications (2)

Publication Number Publication Date
JPH10509852A JPH10509852A (ja) 1998-09-22
JP3695758B2 true JP3695758B2 (ja) 2005-09-14

Family

ID=23345044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51684396A Expired - Lifetime JP3695758B2 (ja) 1994-11-22 1995-10-10 多重プロトコル画像形成装置間で画像情報を送受信するためのシステム

Country Status (8)

Country Link
US (1) US5630101A (ja)
EP (1) EP0793828B1 (ja)
JP (1) JP3695758B2 (ja)
AT (1) ATE175286T1 (ja)
AU (1) AU3896295A (ja)
CA (1) CA2203898A1 (ja)
DE (1) DE69507051T2 (ja)
WO (1) WO1996016373A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275869B1 (en) * 1994-11-22 2001-08-14 Eastman Kodak Company System for network communication of image information between imaging devices according to multiple protocols
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
JPH09212394A (ja) * 1996-01-31 1997-08-15 Mitsubishi Electric Corp データ処理装置
US5805796A (en) * 1996-03-27 1998-09-08 Dell Usa, Lp System architecture for implementing modular diagnostics
US20020124054A1 (en) * 1996-06-27 2002-09-05 Karlheinz Dorn Medical system architecture based on microsoft OLE/OCX and automation or, respectively, atomic
DE19645419A1 (de) * 1996-11-04 1998-05-07 Siemens Ag Medizinisches Bildsystem mit Speichermitteln
US5883985A (en) * 1996-12-10 1999-03-16 General Electric Company Method for compensating image data to adjust for characteristics of a network output device
US6003093A (en) * 1996-12-19 1999-12-14 Canon Kabushiki Kaisha Architecture for image processing application
US6032203A (en) * 1997-04-07 2000-02-29 General Electric Company System for interfacing between a plurality of processors having different protocols in switchgear and motor control center applications by creating description statements specifying rules
US6070170A (en) * 1997-10-01 2000-05-30 International Business Machines Corporation Non-blocking drain method and apparatus used to reorganize data in a database
US6047081A (en) * 1997-10-24 2000-04-04 Imation Corp. Image processing software system having configurable communication pipelines
US6223110B1 (en) 1997-12-19 2001-04-24 Carnegie Mellon University Software architecture for autonomous earthmoving machinery
FI980778A (fi) * 1998-04-03 1999-10-04 Nokia Networks Oy Menetelmä ja järjestelmä teknisen sovelluksen toteuttamiseksi
US6131186A (en) * 1998-04-20 2000-10-10 Lucent Technologies Inc. Method and apparatus for isolating portions of multi-tasking computer software
US6088043A (en) * 1998-04-30 2000-07-11 3D Labs, Inc. Scalable graphics processor architecture
US6547730B1 (en) 1998-12-31 2003-04-15 U-Systems, Inc. Ultrasound information processing system
US6839762B1 (en) 1998-12-31 2005-01-04 U-Systems, Inc. Ultrasound information processing system and ultrasound information exchange protocol therefor
US6711624B1 (en) * 1999-01-13 2004-03-23 Prodex Technologies Process of dynamically loading driver interface modules for exchanging data between disparate data hosts
JP3472498B2 (ja) * 1999-01-27 2003-12-02 シャープ株式会社 データ転送装置、データ転送方法およびデータ転送プログラムを記録した媒体
US6762791B1 (en) * 1999-02-16 2004-07-13 Robert W. Schuetzle Method for processing digital images
US6185272B1 (en) 1999-03-15 2001-02-06 Analogic Corporation Architecture for CT scanning system
US6772413B2 (en) 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US20020016718A1 (en) * 2000-06-22 2002-02-07 Rothschild Peter A. Medical image management system and method
DE10059948A1 (de) * 2000-12-02 2002-06-20 Conti Temic Microelectronic Schaltkreis für ein Zentralgerät zur Datenübertragung über ein Bussystem
US7149979B2 (en) * 2001-03-08 2006-12-12 Lexmark International, Inc. Data management system and method for peripheral devices
US20030097427A1 (en) * 2001-11-21 2003-05-22 Parry Travis J. Multiple device configuration and upgrade for imaging devices
DE10254285A1 (de) * 2002-11-20 2004-06-03 Robert Bosch Gmbh Gateway-Einheit zur Verbindung von Subnetzen, insbesondere in Fahrzeugen
US20040176981A1 (en) * 2003-01-16 2004-09-09 Martello Edward A. System architectures for computer aided detection (CAD) processor system
US8284208B2 (en) * 2006-05-24 2012-10-09 General Electric Company Processes and apparatus for information transfer
US20070299999A1 (en) * 2006-06-21 2007-12-27 Vicky Duerk Link protocol control for serial protocols
US20080040460A1 (en) * 2006-06-29 2008-02-14 General Electric Company Method and system for communication
US20080021955A1 (en) * 2006-07-24 2008-01-24 Raytheon Company Message oriented middleware server pipeline architecture
US10346422B2 (en) * 2012-10-18 2019-07-09 International Business Machines Corporation Use of proxy objects for integration between a content management system and a case management system
US20140114864A1 (en) * 2012-10-22 2014-04-24 International Business Machines Corporation Case management integration with external content repositories

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4604686A (en) * 1984-01-27 1986-08-05 Martin Marietta Corporation Associative data access method (ADAM) and its means of implementation
US5060140A (en) * 1986-01-16 1991-10-22 Jupiter Technology Inc. Universal programmable data communication connection system
US5329431A (en) * 1986-07-17 1994-07-12 Vari-Lite, Inc. Computer controlled lighting system with modular control resources
US5410675A (en) * 1989-08-21 1995-04-25 Lisa M. Shreve Method of conforming input data to an output data structure and engine for accomplishing same
IL98700A (en) * 1990-07-13 1994-04-12 Minnesota Mining & Mfg A method and device for building a composite figure from several data types
US5432906A (en) * 1990-09-28 1995-07-11 Eastman Kodak Company Color image processing system for preparing a composite image transformation module for performing a plurality of selected image transformations
US5200993A (en) * 1991-05-10 1993-04-06 Bell Atlantic Network Services, Inc. Public telephone network including a distributed imaging system
US5457784A (en) * 1992-03-05 1995-10-10 Metacomp, Inc. Interfacing system using an auto-adapting multi-ported control module between an i/o port and a plurality of peripheral adaptors via bus extending cables
US5339413A (en) * 1992-08-21 1994-08-16 International Business Machines Corporation Data stream protocol for multimedia data streaming data processing system
AU6023894A (en) * 1993-03-25 1994-10-11 Taligent, Inc. Multi-level interrupt system
US5392393A (en) * 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
US5493635A (en) * 1994-06-14 1996-02-20 Xerox Corporation System for combining heterogeneous image processing jobs into a single job

Also Published As

Publication number Publication date
EP0793828B1 (en) 1998-12-30
DE69507051D1 (de) 1999-02-11
AU3896295A (en) 1996-06-17
JPH10509852A (ja) 1998-09-22
US5630101A (en) 1997-05-13
WO1996016373A1 (en) 1996-05-30
DE69507051T2 (de) 1999-05-12
CA2203898A1 (en) 1996-05-30
EP0793828A1 (en) 1997-09-10
ATE175286T1 (de) 1999-01-15

Similar Documents

Publication Publication Date Title
JP3695758B2 (ja) 多重プロトコル画像形成装置間で画像情報を送受信するためのシステム
EP0929961B1 (en) System for network communication of image information between imaging devices according to multiple protocols
JP4330665B2 (ja) クライアントサーバシステムおよび画像処理装置
US7743162B2 (en) Image forming apparatus, with connection request mediation, having web service functions
USRE37258E1 (en) Object oriented printing system
US7318083B2 (en) Information processing system
JPH04229357A (ja) 異種ネットワーク環境における適用業務プログラムの統合システム
US20070174846A1 (en) System and Method for Intercepting, Instrumenting and Characterizing Usage of an Application Programming Interface
US8438567B2 (en) Information processing device and image processing apparatus
CN100368981C (zh) 功能转换装置和功能转换方法
JP4350728B2 (ja) 画像形成装置およびプロセス間通信方法
JP2004005505A (ja) プログラム生成処理をコンピュータに行わせるためのコンピュータ読み取り可能なプログラム
US6678742B1 (en) Object-oriented computer system and computer-readable storage medium which stores program
KR101405920B1 (ko) 잡 컨트롤 장치 및 복합장치 그리고 그들의 동작 방법
JP3977039B2 (ja) 画像情報処理装置用通信プログラム生成方法および画像情報処理装置用通信プログラム生成装置
CN113193981A (zh) 一种配置下发方法及装置、网络系统
JP4500326B2 (ja) プロセス間通信プログラムおよび画像情報処理装置
JP4052902B2 (ja) 画像形成装置およびプロセス間通信方法
JP4324451B2 (ja) 画像形成装置,プログラム起動方法及びプログラム起動プログラム
JP4373692B2 (ja) Webサービス機能を有する画像形成装置
Campagne Clustalnet: the joining of Clustal and CORBA
JPH09330249A (ja) プロセス制御用計算機システムの開発装置
CN114661253A (zh) 一种用微软系统直接驱动的打印系统、装置及方法
Zhao et al. Prototyping distributed applications based on RPC
JP2006042073A (ja) 異常対応プログラム、異常対応方法および画像形成装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041019

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050119

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050414

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: 20050614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 5