JPH09114753A - オブジェクト指向通信システムの使用方法 - Google Patents

オブジェクト指向通信システムの使用方法

Info

Publication number
JPH09114753A
JPH09114753A JP8178816A JP17881696A JPH09114753A JP H09114753 A JPH09114753 A JP H09114753A JP 8178816 A JP8178816 A JP 8178816A JP 17881696 A JP17881696 A JP 17881696A JP H09114753 A JPH09114753 A JP H09114753A
Authority
JP
Japan
Prior art keywords
communication system
remote
oriented communication
machine
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8178816A
Other languages
English (en)
Inventor
Aaru Sabitsukii Sutefuen
アール.サビツキー ステフェン
Rosu Risuii
ロス リスイー
Ien Teina
イェン ティナ
Haato Piitaa
ハート ピーター
Goorudeingu Richiyaado
ゴールディング リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JPH09114753A publication Critical patent/JPH09114753A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【課題】 リモート・サービス・アプリケーションにオ
ブジェクト指向を導入することにより,開発サイクル期
間の低減を図り,システムの修正等の柔軟性を高めるこ
とができるオブジェクト指向通信システムの使用方法を
提供する。 【解決手段】 メモリ50を有するコンピュータ・シス
テム1を使用し,複数のマシーン・タイプの複数のリモ
ート・マシーン90と通信する方法において,メモリ5
0内部に,複数のリモート・マシーン90の1つにサー
ビスを記述する第1の複数のソフトウェア・オブジェク
トを構成するステップと,1つのリモート・マシーンと
交信するステップと,第1の複数のソフトウェア・オブ
ジェクトのサービスによって記述された要求に応じて1
つのリモート・マシーンのオペレーションを呼び出すス
テップと,を含んでいる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は,全体としては,リ
モート・マシーンのためのサービス・ツールの領域に関
し,より詳細には,コンピュータ・システムにおけるサ
ービス・アプリケーション・プログラムと,リモート・
マシーンや,ファイル,データベースおよびプログラム
内の外部データ等のリモート装置との間の通信を行うオ
ブジェクト指向通信システムの使用方法。
【0002】
【従来の技術】近年,プログラムの開発・分析や,シス
テムの設計において,オブジェクト指向の考え方が広く
用いられるようになっており,様々なオブジェクト指向
分析およびオブジェクト指向設計の手法が提案されてい
る。
【0003】従来技術または背景技術として,オブジェ
クト指向プログラミングおよびオブジェクト指向アプリ
ケーション・フレームワークを理解することは,本発明
を完全に理解する上で役立つであろう。当業者ならすぐ
分かるように,『オブジェクト』とは,現実世界に存在
するものの抽象であり,データ構造(そのフィールドは
『属性』あるいは『データ・メンバー』と呼ばれる)
と,その上で実行できる一連の操作(『メソッド』また
は『メンバー機能』と呼ばれる)の組み合わせとして実
現(インプリメント)されているものである。
【0004】『クラス』とは,それぞれ同じデータ構造
および同じ操作を有する一連のオブジェクトに関するデ
ータ・タイプである。クラスの1つの『インスタンス』
は,実行中のアプリケーション・プログラムのメモリ内
で実際に具体化されるような,そのデータ・タイプがそ
のクラスであるような1つのオブジェクトである。
【0005】複数のクラスは,『形質』(inheritance)
に基づく1つまたは複数の(コンパイル時間)階層にグ
ループ化され,それによって『サブクラス』のインタフ
ェース(つまり,属性およびメソッドのタイプと名称)
を1つまたは複数の『スーパークラス』との違いで指定
することが可能になる。インスタンスは,『コンテイン
メント』(containment)によって1つまたは複数の(ラ
ン時間)階層にグループ化することができ,複数の他の
オブジェクトを含んでいる1つのオブジェクトは『コン
テナー』または『集合』(collection) と呼ばれる。
【0006】なお,オブジェクト指向プログラミングの
概念に関するさらに詳しい情報は,Margaret
A.EllisおよびBjarne Stroustr
upによるThe Annotated C++ Re
ference Manual,Addison We
sley社,1990に紹介されている。
【0007】『オブジェクト指向アプリケーション・フ
レームワーク』は,アプリケーション・プログラマによ
って拡張,細分化が可能なように設計され,さらにこれ
らのクラスを用い,アプリケーション・プログラマによ
って修正が可能なように設計されたいくつかの実例的な
(illustrative) サンプル・アプリケーションと共にパ
ッケージ化された複数のクラスのライブラリで構成され
ている。
【0008】このサンプル・アプリケーションは,全体
として,それ自体が有益な1つのシステムを構成してい
る。一般的に,フレームワークの基本的な概念は当業者
にはよく知られている。いくつかのサンプル・フレーム
ワークは,X Toolkit,Motif Tool
kit,Smalltalk Model−View−
Controller GUIおよびMacAppを含
んでいる。
【0009】また,『アプリケーション』とは,コンピ
ュータ・ユーザーがあるタスクまたは一連のタスクを達
成することができるようにするプログラム,または一連
の共働プログラムを意味する。
【0010】さらに,リモート・サービス・アプリケー
ションとは,コンピュータ・ユーザーが,そのユーザー
のコンピュータ・システムとは別個の,多くの場合は離
れた場所,つまり,オフサイトのマシーン(リモート・
マシーン)と交信し,その上でサービス(オペレーショ
ン)を実行できるようにするアプリケーションのことで
ある。リモート・マシーンのいくつかの例としては,コ
ピー機,ファクシミリ装置,それに電話機等のオフィス
機器,それにファイル・サーバーやデータベース・サー
バー等一定のリモート・コンピュータ・システムのメモ
リにおけるソフトウェア・エンティティを含んでいる。
【0011】リモート・サービス・アプリケーションで
行われる典型的な操作としては,リモート・マシーンの
問題点のリモート診断,リモート・マシーンの使用のモ
ニタリング,リモート・マシーンの特徴を実行可能にし
たり不可にしたりすること,データ検索,パラメータの
変更等がある。
【0012】なお,以下で『リモート・マシーン』とい
う用語を用いる際,それはユーザー・マシーン内に保存
されているが,リモート・サービス・アプリケーション
によってコントロールされるメモリおよびプロセスに対
しては外部的なものであるプロセスおよびファイル等も
含むという理解に基づいている。
【0013】リモート・マシーンにアクセスするために
は,そのリモート・サービス・アプリケーションは,モ
デム等の特定のインタフェース装置と関連した『装置ド
ライバー』と,そのリモート・マシーンとの間で送受信
されるデータをフォーマットする『プロトコル・ドライ
バー』とを用いる。これらのドライバーはオペレーティ
ング・システムの一部であっても良く,またはアプリケ
ーション・プログラム内のモジュールであっても良い。
【0014】過去において,リモート・サービス・アプ
リケーションは,各タイプのリモート・マシーンに対し
てそれぞれ個別的にカスタマイズされていた。例えば,
第1のリモート・サービス・アプリケーションは特定の
プロトコルを有するマシーンとだけ交信したが,第2の
リモート・サービス・アプリケーションは異なったプロ
トコルを有するマシーンとだけ交信するという具合であ
った。こうしたカスタマイズされた方式の1つの利点
は,リモート・サービス・アプリケーションが対応する
リモート・マシーンのアーキテクチャおよびパラメータ
にしっかりと結びつけられているので,それらが効率的
である点である。
【0015】
【発明が解決しようとする課題】しかしながら,上記従
来の技術である,個別的にカスタマイズされたリモート
・サービス・アプリケーションによれば,以下の不具合
およびそれらの不具合から発生する問題点があった。
【0016】第1に,各ソフトウェア・システムが往々
にして,顧客データベース等の各システムのために一般
的に使われ,あるいは複製された機能やデータを含んで
いるという不具合があった。第2に,新しいタイプのリ
モート・マシーンが製造される度に,新しいソフトウェ
ア・システムがその新しいタイプの独特の能力と取り組
むために新しいソフトウェア・システムが作られる必要
があるという不具合があった。
【0017】これらの不具合が存在することから,従来
の技術では,ソフトウェア・システムがいろいろな断片
からつくられることが多く,したがって,開発サイクル
期間が非常に長くなるという問題点があった。また,そ
れぞれ個別的にカスタマイズされた方式は,往々にして
柔軟性が乏しいという問題点があった。一般的に,ソフ
トウェア・システムが一度オンライン化されると,その
ソフトウェア・システムの他の部分に対して無数の繋が
りがあるので,そのソフトウェア・システムに対する修
正が非常に困難である。
【0018】本発明は上記に鑑みてなされたものであっ
て,リモート・サービス・アプリケーションにオブジェ
クト指向を導入することにより,開発サイクル期間の低
減を図り,システムの修正等の柔軟性を高めることがで
きるオブジェクト指向通信システムの使用方法を提供す
ることを目的とする。
【0019】
【課題を解決するための手段】上記の目的を達成するた
めに,請求項1に係るオブジェクト指向通信システムの
使用方法は,メモリを有するコンピュータ・システムを
使用し,複数のマシーン・タイプの複数のリモート・マ
シーンと通信する方法において,前記メモリ内部に,前
記複数のリモート・マシーンの1つにサービスを記述す
る第1の複数のソフトウェア・オブジェクトを構成する
ステップと,前記1つのリモート・マシーンと交信する
ステップと,前記第1の複数のソフトウェア・オブジェ
クトのサービスによって記述された要求に応じて1つの
リモート・マシーンのオペレーションを呼び出すステッ
プと,を含んでいるものである。
【0020】また,請求項2に係るオブジェクト指向通
信システムの使用方法は,請求項1記載のオブジェクト
指向通信システムの使用方法において,前記1つのリモ
ート・マシーンに対する前記サービスが,前記1つのリ
モート・マシーン上でのオペレーションを含んでいるも
のである。
【0021】また,請求項3に係るオブジェクト指向通
信システムの使用方法は,請求項1記載のオブジェクト
指向通信システムの使用方法において,前記1つのリモ
ート・マシーンに対する前記サービスが,データ・タイ
プ,データ・サイズおよびデータ位置を含む前記1つの
リモート・マシーンに伝送されるべきデータのアイテム
を含んでいるものである。
【0022】また,請求項4に係るオブジェクト指向通
信システムの使用方法は,請求項1記載のオブジェクト
指向通信システムの使用方法において,さらに,前記メ
モリー内に,前記1つのリモート・マシーンに対するア
プリケーション・アイテムを記述する第2の複数のソフ
トウェア・オブジェクトを含んでいるものである。
【0023】また,請求項5に係るオブジェクト指向通
信システムの使用方法は,請求項4記載のオブジェクト
指向通信システムの使用方法において,前記1つのリモ
ート・マシーンに対する前記アプリケーション・アイテ
ムが,前記第1の複数のソフトウェア・オブジェクトに
対するポインタと前記1つのリモート・マシーン内部で
のデータ・アイテムの値に対応したカレント値を含んで
いるものである。
【0024】また,請求項6に係るオブジェクト指向通
信システムの使用方法は,請求項5記載のオブジェクト
指向通信システムの使用方法において,前記1つのリモ
ート・マシーンに対する前記アプリケーション・アイテ
ムが,さらに,読み出しリクエスト・フラッグと前記1
つのリモート・マシーンに送られるべき値に関するペン
ディング・リクエストを記述するための新しい値とを含
み,第2の複数のソフトウェア・オブジェクトを構成す
る前記ステップが,前記第2の複数のソフトウェア・オ
ブジェクトを1つのリモート・マシーンに送られるべき
データに対するリクエストを記録するために用いるステ
ップを含んでいるものである。
【0025】また,請求項7に係るオブジェクト指向通
信システムの使用方法は,請求項1記載のオブジェクト
指向通信システムの使用方法において,さらに,前記メ
モリー内に,それぞれデータベース内の1つのアイテム
を識別および記述するための第2の複数のソフトウェア
・オブジェクトを構成するステップを含んでいるもので
ある。
【0026】また,請求項8に係るオブジェクト指向通
信システムの使用方法は,請求項7記載のオブジェクト
指向通信システムの使用方法において,さらに,前記1
つのリモート・マシーンに対して移されるデータのアイ
テムに応じて,そのデータベースに対する更新をリクエ
ストするステップを含んでいるものである。
【0027】また,請求項9に係るオブジェクト指向通
信システムの使用方法は,請求項1記載のオブジェクト
指向通信システムの使用方法において,前記第1の複数
のソフトウェア・オブジェクトを構成するステップが,
構成されるべき第1の複数のソフトウェア・オブジェク
トの表現を含んでいるデータ・ファイルを読み出すステ
ップを含んでいるものである。
【0028】また,請求項10に係るオブジェクト指向
通信システムの使用方法は,請求項9記載のオブジェク
ト指向通信システムの使用方法において,前記データ・
ファイルが,構成されるべき前記第1の複数のソフトウ
ェア・オブジェクトのテキストによる表現を含んでいる
ものである。
【0029】また,請求項11に係るオブジェクト指向
通信システムの使用方法は,請求項1記載のオブジェク
ト指向通信システムの使用方法において,さらに,グラ
フィック・ユーザー・インターフェースによるユーザー
入力に応えて,複数のリモート・マシーン上でサービス
に対するリクエストを行うステップと,前記複数のリモ
ート・マシーン上でリクエストされたサービスが終了し
た場合に,前記グラフィック・ユーザー・インターフェ
ースを更新するステップと,を含んでいるものである。
【0030】また,請求項12に係るオブジェクト指向
通信システムの使用方法は,請求項11記載のオブジェ
クト指向通信システムの使用方法において,前記複数の
リモート・マシーンに対するサービスが,前記複数のリ
モート・マシーン上でのオペレーションを含んでいるも
のである。
【0031】また,請求項13に係るオブジェクト指向
通信システムの使用方法は,請求項11記載のオブジェ
クト指向通信システムの使用方法において,前記複数の
リモート・マシーンに対する前記サービスが,データ・
タイプ,データ・サイズおよびデータ位置を含む前記複
数のリモート・マシーンに送られるべきデータのアイテ
ムを含んでいるものである。
【0032】また,請求項14に係るオブジェクト指向
通信システムの使用方法は,請求項1記載のオブジェク
ト指向通信システムの使用方法において,さらに,前記
メモリ内に,その他の複数のリモート・マシーンに対す
るサービスを記述する第2の複数のソフトウェア・オブ
ジェクトを構成するステップを含んでいるものである。
【0033】また,請求項15に係るオブジェクト指向
通信システムの使用方法は,請求項14記載のオブジェ
クト指向通信システムの使用方法において,前記第2の
複数のソフトウェア・オブジェクトを構成するステップ
が,構成されるべき前記第2の複数のソフトウェア・オ
ブジェクトの表現を含んでいるデータ・ファイルを読み
出すステップを含んでいるものである。
【0034】
【発明の実施の形態】以下,本発明のオブジェクト指向
通信システムの使用方法について,〔本発明の概要〕,
〔本発明で使用する用語の定義〕,〔命名上の規定〕,
〔実施の形態〕,〔著作権に関する告知〕の順で,図面
を参照して詳細に説明する。
【0035】〔本発明の概要〕本発明の好ましい実施の
形態は,本発明の譲受人(assignee) である株式会社リ
コーによって現在開発中のREST(Rich Electronic
Service Tool) オブジェクト指向アプリケーション・フ
レームワークの一部を示している。オブジェクト指向ア
プリケーション・フレームワーク(以下,『フレームワ
ーク』と記載する)は,複数のクラスのオブジェクトの
デクラレーション(宣言)およびインプリメンテーショ
ン(具体的記述)を含むクラス・ライブラリと,これら
のクラスを用いてかかれたサンプル・アプリケーション
・プログラムとから構成されている。
【0036】フレームワークは,アプリケーション・プ
ログラマがいくつかのアプリケーション領域,例えば
(本発明の場合には)リモート・サービス・アプリケー
ションにおいて新しいアプリケーション・プログラムを
迅速,簡単に書けるようにするシステムである。特に,
アプリケーション・プログラマは通常,新しいアプリケ
ーション・プログラムをつくるために特定のリモート・
マシーンのためにすでに書かれているサンプル・アプリ
ケーション・プログラムの編集を行う。
【0037】本発明の好ましい実施の形態の一部である
フレームワークにおけるオブジェクト・クラスは,コン
ピュータ・システムのメモリ内部のソフトウェア・オブ
ジェクトとして具体化された場合,それらを用いて実現
されたどのアプリケーション・プログラムも,複数の異
なったタイプの複数のリモート・マシーンと交信できる
ようにする1つのメカニズムとそれに関連した方法を構
成している。
【0038】また,サンプル・アプリケーションは,そ
れら自体が一定の組み合わせのタスク,例えば(本発明
の場合には)リモート・サービス・タスクを実行するた
めのシステムを構成している。
【0039】また,本発明は,ファイル等のソフトウェ
ア・エンティティと交信したり,その上でオペレーショ
ンを実行したりするアプリケーション,および同じコン
ピュータ・システム内にアプリケーション・プログラム
として入れられているプロセスをサポートするものであ
る。
【0040】〔本発明で使用する用語の定義〕以下,本
発明で使用する用語の定義について説明する。『コンポ
ーネント』とは,あるリモート・マシーンのサービスお
よび状態を示すソフトウェア・オブジェクトである。1
つのコンポーネントは複数のサブ−コンポーネントを持
っていても良く,例えば,コピー機はそれに取りつけら
れたソーターおよびフィーダーを持っていても良い。
【0041】『装置』(device) とは,その一部でリモ
ート・サービス・アプリケーションが動作しているコン
ピュータ・システムが1つまたは複数のリモート・マシ
ーンとの間で交信できるようにするためのコンピュータ
・システムの周辺機器(peripheral) である。
【0042】『装置ドライバー』とは,リモート・サー
ビス・アプリケーションが1つの装置と交信するための
インタフェースを提供するソフトウェアである。
【0043】『マシーン』とは,その内部でリモート・
サービス・アプリケーションが動作しているコンピュー
タ・システムに対しては外部的なハードウェアまたはソ
フトウェア・エンティティである。例えば,リモート・
オフィス・マシーン,ファイル・サーバーまたはデータ
ベース・サーバーが挙げられる。
【0044】『マシーン・モデル』とは,『モデル・ア
イテム』オブジェクトを内容とする,あるコンポーネン
トによって提供されるサービスを記述するための集合
(collection) オブジェクトである。
【0045】『モデル・アイテム』とは,あるリモート
・マシーンによって提供される個別サービス・アイテム
を記述するオブジェクトである。
【0046】『サービス』とは,そのコンポーネントに
含まれるデータの検索,更新を含む,1つのコンポーネ
ント上で,あるいはそれによって実行される全てのオペ
レーションである。
【0047】『サービス・アイテム』は,1つのサービ
スまたは一組のサービスあるいは1つのサービスに現在
含まれているデータを記述する抽象的なクラスである。
【0048】『マシーン・ステート』とは,『アプリケ
ーション・アイテム』オブジェクトをその内容とする集
合(collection) オジェクトである。
【0049】『アプリケーション・オブジェクト』と
は,そのマシーンにおけるサービスのカレント・ステー
ト(データ)および,そのプログラムのエンド・ユーザ
ーが要求し,まだ実行されていない変更あるいはオペレ
ーションを含む,リモート・マシーンによって提供され
るあるサービスに関してそのリモート・サービス・アプ
リケーションが有する情報を含むオブジェクトである。
【0050】〔命名上の規定〕以下は,本明細書中およ
び添付ソフトウェア付属資料で用いられている命名上の
規定の要約である。クラスの名称は大文字で表記し,内
側の大文字はワードの開始を示している。大域的機能,
変数およびクラスの名称は,1つから3つの接頭辞を有
しており,それらが属する全体的なファミリーを示して
いる。
【0051】例えば,1つのサービス・アイテムを示す
データ構造と,その全てのサブクラスは“SI_”とい
う接頭辞を有している。
【0052】“R_Base”から下のクラスは下線に
よって名称の他の部分から切り離された接頭辞を有して
おり,“R_Base”は集合(collection) に入れら
れ,外部ファイルに書き込まれ,そしてそれらのファイ
ルから読み出されるオブジェクトに関する基本クラスで
ある。
【0053】その名称に下線が含まれていないクラスお
よびデータ・タイプは,通常,変数,機能アーギュメン
トまたはクラス・データ・メンバーとしてのものであ
り,値によってパスされる。また,その名称が下線を含
んでいる名称を含んだクラスは,ほとんど常に1つの塊
として示され,基準あるいはポインタとしてパスされ
る。この規定によって,以下の説明で,オブジェクト指
向プログラミングの当業者がクラスをインスタンスから
簡単に区別し,また,インスタンスを基準やインスタン
スに対するポインタから容易に区別することが可能にな
る。
【0054】また,大域機能,定数,および変数の名称
は小文字の接頭辞を有している。1つのクラスの公的イ
ンタフェースの一部であるメンバー機能およびデータ・
メンバーは小文字から始まる。保護データ・メンバーは
下線で終わる名称を有しており,通常は,そのデータに
アクセスする公的メンバー機能が存在し,その名称は同
じであるが,下線を有していない。すなわち,データ・
メンバーは『属性』(attribute)と呼ばれ,その名称が
“R_ATTR”で始まるマクロを用いて宣言される。
【0055】1つの値を更新するメンバー機能がある場
合,その名称は“Set”でおわり,その更新機能はそ
の属性を宣言する同じマクロで宣言される。
【0056】〔実施の形態〕次に,本発明の好ましい実
施の形態について, 1.システム概要 1.1.システム構成 1.2.フレームワークの説明 1.3.サンプル・アプリケーション・プログラムとフ
ァイルに関する説明 2.マシーン・モデル・モジュール 2.1.概要 2.2.コンポーネントおよび関連オブジェクト 2.2.1.合成データ 2.2.2.リモート・マシーン・ヒストリー 2.2.3.新しいモデル・アイテムの定義 2.2.4.初期化 2.3.典型的なクラス・デスクリプタ 2.3.1.Serviceクラス 2.3.2.SI_ServiceItemクラス 2.3.3.SI_ModelItemクラス 2.3.4.SI_RemoteItemクラス 2.3.5.SI_MemoryItemクラス 2.3.6.SI_BitfieldItemクラス 3.通信モジュール 3.1.概要 3.2.詳細な説明 3.3.新しいセッション・タイプの定義 4.通信装置インタフェース 4.1.概要 4.2.詳細な説明 4.3.新しい装置の追加 5.追記 の順で,図面を参照して詳細に説明する。
【0057】1.システム概要 1.1.システム構成 図1は,本発明の好ましい実施の形態によるコンピュー
タ・システム1の構成図である。コンピュータ・システ
ム1は,表示モニター10,キーボード20,マウス3
0,およびコンピュータ2を含んでいる。
【0058】コンピュータ2は,プロセッサ40,メモ
リ(例えば,半導体RAM)50,大容量記憶装置(例
えば,ディスク・ドライブ)60,通信装置(例えばモ
デム)70,そして上記の構成部材を相互に接続するシ
ステム・バス80を含んでいる。なお,マウス30はグ
ラフィック的入力または出力装置の一例に過ぎない。リ
モート・マシーン90は,通常,モデム等の通信装置7
0経由でシステム1に結合されている。
【0059】好ましい実施の形態においては,システム
1としては,LinuxまたはMicrosoft社か
らのWindows3.1で動作するマシーンに基づく
80486マイクロプロセッサ・クラスで,RESTア
プリケーション・フレームワーク・プログラムを用いて
開発されるリモート・サービス・アプリケーション・プ
ログラムが現在リコー社で開発中である。RESTフレ
ームワークにおけるオブジェクトのクラスの好ましい実
施の形態は,以下に示されるようにC++で書かれてい
る。
【0060】なお,図1は,本発明を具体化するための
1つのタイプのシステムを示している。多くのシステム
・タイプおよび構成を本発明と結びつけて用いることが
できるのは,当業者には容易に分かる。
【0061】1.2.フレームワークの説明 図2は,本発明の好ましい実施の形態で用いられるオブ
ジェクト指向アプリケーション・フレームワークの構成
図である。アプリケーション層140は,エンド・ユー
ザーによって実行されるリモート・セット(Remot
e Setting)100およびカスタマー・データ
ベース・アクセス(CustomerDatabase
Access)130を含むアプリケーション・プロ
グラムと,コール・アウト(Call−out)110
およびコール・イン(Call−in)120等を含む
オペレーティング・システムによって自動的に実行され
るアプリケーション・プログラムによって構成されたシ
ステムの一部である。
【0062】コア層190は,そのフレームワークのア
プリケーション層140内にある全てのリモート・サー
ビス・アプリケーションによって共有される機能を提供
するクラス・デクラレーションおよびインプリメンテー
ションのライブラリで構成されており,グラフィック・
ユーザー・インタフェース機能(GUIインタフェース
機能)150,ジェネラル・プログラミング・システム
機能160,マシーン・モデル・モジュール170,お
よびリモート・マシーンとの通信モジュール(通信機
能)180とを含んでいる。
【0063】インタフェース層260は,モデム等の特
定のローカル通信装置に対するインタフェースを提供す
るクラス(『装置ドライバー』),特定のファミリーの
リモート・マシーン(例えば,コピー機200およびフ
ァクシミリ装置210)と交信し,その上で作動するた
めに必要な通信プロトコルに対するインタフェース,お
よび,リモートまたはローカル・データベース・サーバ
ー220,そして特定のタイプのリモート・マシーンに
よって提供されるサービスの記述を含んでいるファイル
230,240,250(『マシーン記述ファイルおよ
びデータベース記述ファイル』)に対するインタフェー
スを提供するクラスを含んでいる。
【0064】このインタフェース層260におけるクラ
スのアプリケーション・プログラミング・インタフェー
ス(API)は,コア層190における抽象クラスによ
って定義されており,したがって,アプリケーション・
プログラマは特殊なインタフェース装置およびリモート
・マシーンの詳細を知らなくてもよいようになってい
る。
【0065】フレームワークを用いるアプリケーション
・プログラマは,通常は,アプリケーション層140の
1つまたは複数の既存サンプル・プログラムをコピーし
たり修正したりするためのテキスト・エディタを用いる
ことによってリモート・サービス・アプリケーション・
プログラムを実行する。こうした方法で構成されたアプ
リケーションは,共通の十分に実証されたアーキテクチ
ャおよびデザインと,大量の再使用可能コードを共有し
ており,ソフトウェア・ライフサイクルからデザインお
よびデバッギング・フェーズのほとんどを取り除くこと
は,オブジェクト指向アプリケーション・フレームワー
クがリモート・サービス・アプリケーションの開発・実
施(インプリメンテーション)をスピード・アップする
1つの方法である。
【0066】リモート・マシーンと交信するために本発
明を利用するプログラムはほとんどどんなリモート・マ
シーンとでも交信することができる。
【0067】1.3.サンプル・アプリケーション・プ
ログラムとファイルに関する説明 図3は,上記フレームワーク(図2)のアプリケーショ
ン層140におけるサンプル・アプリケーション・プロ
グラムの一部と,それらが情報を交信するために用いる
ファイルを示している。全てのアプリケーション・プロ
グラムおよびファイルは,好ましくはコンピュータ・シ
ステム1の大容量記憶装置60内に存在する。
【0068】ユーザーは,カスタマー・データベース・
アクセス・アプリケーション300,ジョブ・スケジュ
ーラ・アプリケーション370およびリモート・セッテ
ィング・アプリケーション400と直接交信する(他の
多くのインタラクティブ・プログラムが可能であること
は当業者には明らかである。これらは単に説明のための
例にすぎない)。
【0069】カスタマー・データベース・アクセス・ア
プリケーション300を用いることによって,ユーザー
は交信すべきマシーンを選択するためにカスタマー・デ
ータベース310を照会することができる。それはユー
ザーがマシーンのグループ(それぞれマシーン・グルー
プ・ファイル350内に記述されている)およびサービ
ス・アイテムのグループ(それぞれサービス・アイテム
・グループ・ファイル340)を選択して,その上でオ
ペレーションを行うことができる。
【0070】カスタマー・データベース・アクセス・ア
プリケーション300は,それぞれ交信に関与する他の
ファイルのファイル名を含んだジョブ・アイテム・ファ
イル320およびケース・ファイル330を出力する。
【0071】次に,ユーザーは,1つまたは複数のリモ
ート・マシーン90と交信するために,ジョブ・アイテ
ム・ファイル320を読み出して,コール・アウト・ア
プリケーション380およびリモート・セッティング・
アプリケーション400のインスタンスを自動的に実行
させるジョブ・スケジューラ・アプリケーション370
を実行させる。コール・イン・アプリケーション390
はリモート・マシーン90からの入力交信に応えていつ
でも実行することができる。
【0072】コール・イン・アプリケーション390と
コール・アウト・アプリケーション380は,リモート
・マシーン90によってコール・イン・アプリケーショ
ンに送られるか,あるいはコール・アウト・アプリケー
ション380によってリモート・マシーン90から検索
されたコピーを含んでいるデータ・ダンプ・ファイル4
10を書き込む。データ・ダンプ・ファイル410はコ
ール・トランスレータ・アプリケーション440によっ
て,ケース・ファイル420かコンマ・デリミテッド・
ファイル450のいずれかに翻訳されて,アナリシス・
データベース460またはスプレッドシート等の他のア
プリケーション・プログラムにインポートされる。コー
ル・トランスレータ・アプリケーション440は,複数
のマシーン・モデル・ファイル430の1つに含まれて
いるリモート・マシーン90の記述を用いてそのコンバ
ージョン動作を行う。
【0073】リモート・セッティング・アプリケーショ
ン400はユーザーとあるリモート・マシーン90との
間の直接のインタラクション(交信またはデータのやり
取り)のために用いられ,そのリモート・マシーン90
で実行できるオペレーションは複数のマシーン・モデル
・ファイル350aの1つに記述され,リモート・マシ
ーン90とその上で実行されるオペレーションの一部の
アクセス情報(例えば電話番号)をケース・ファイル3
30内で指定したり,ユーザーが直接入力したりするこ
とができる。
【0074】2.マシーン・モデル・モジュール 2.1 概要 図2のマシーン・モデル・モジュール170は,コア層
190内の主要モジュールである。マシーン・モデル・
モジュールの目的は,マシーン・モデルと呼ばれるオブ
ジェクトの構成の形態でリモート・サービス・アプリケ
ーションがリモート・マシーン上で使えるサービスを記
述すること,そして,アプリケーション・プログラムが
そのリモート・マシーンおよび全てのオペレーション,
そしてユーザーによって要求されたデータ伝送の現在の
状態を追跡的に監視するために必要な情報を含み,組織
することである。
【0075】本発明の好ましい実施の形態においては,
このマシーンおよびサービス・クラス階層は以下に示す
ものから成る。ここで,インデントは,上のものに対す
る従属を示す。 Component リモート・マシーンを記述 Service SerivceCollection サービス・アイテムの集合 SC_SericeModel コンポーネントのモデル AC_AppServices コンポーネントのアプリケーション・ アイテム SC_Queue SC_QueueItemの集合 (および他の種々の特殊な目的の集合) SI_ServiceItem リモート・サービスを記述 SI_ModelItem マシーン・モデル−−−記述のみ SI_GuiItem 1つのアイテムを示すGUI要素 SI_AppItem 1つのアイテムに関するアプリケーシ ョン・ステート SI_QueueItem 1つのアイテムに関するキューされた 読み出しおよび書き込み
【0076】2.2.コンポーネントおよび関連オブジ
ェクト 図4は,典型的なComponent700(コンピュ
ータ・システム1のメモリ50内のリモート・マシーン
90を示すオブジェクト・インスタンス),およびそれ
が参照するオブジェクトを示している。これらのオブジ
ェクトには,図示の如く,その『状態』属性600であ
るSC_AppServicesオブジェクト,その
『モデル』属性630であるSC_ServiceMo
delオブジェクト,そのWriteQueueおよび
readQueue属性670である各SC_Queu
eオブジェクト,およびその『セッション』属性710
であるクラスSI_CommunicationSes
sionのサブクラスのインスタンスに対するリファレ
ンスがある。
【0077】SC_ServiceModel630
は,『モデル・アイテム』640,650の集合(coll
ection) であり,各モデル・アイテムはSI_Mode
lItemのサブクラスのインスタンスである。その集
合であるSC_ServiceModel630は,C
omponent700によって示されるリモート・マ
シーン90によって提供されるサービスの記述である。
【0078】SC_AppServices600は,
『アプリケーション・アイテム』610,620の集合
(collection) であり,各アプリケーション・アイテム
はSI_AppItemクラスの1つのインスタンスで
あり,SI_ModelItem640,650および
SI_CallbackList520,530に対す
るリファレンスを持っている。各アプリケーション・ア
イテム610,620はそのリモート・マシーンにおけ
る対応するサービスの現在値(分かれば),および全て
の要求されたオペレーションまたはそのサービスに関連
するデータ伝送に関する情報を含んでいる。
【0079】SC_AppServicesオブジェク
ト600は,クラスComponent700上での
“initServices”オペレーションによって
イニシャライズされ,そのパラメータの1つは,1つの
アプリケーションがマシーン・モデル630からそのア
プリケーションによって実際に使われるサービスだけを
選択できるようにするブール(Boolean:論理演
算)に対するpointer−to−SI_Model
Itemからの機能に対するオプショナル・ポインタで
ある。
【0080】SI_CallbackList520,
530は,SI_GuiItemオブジェクト540,
550,570,580,590の集合(collection)
であり,そのそれぞれが情報を表現するグラフィック・
ユーザー・インタフェース500における『コントロー
ル』を示し,ユーザーが交信する単一のオブジェクト
(GUI500のGUIオブジェクト510)を参照し
たり,それに参照されたりする。SI_GuiItem
の目的はグラフィカル・ユーザー・インタフェースを用
いているユーザーによって行われた変更がアプリケーシ
ョン・ステート600の適切なSI_AppItem6
10,620内で同等の変化を確実に行わせるようにす
ること,さらに,そのプログラムのオペレーションか
ら,特にそのリモート・マシーンとの交信から生じるア
プリケーション・ステート600内のSI_AppIt
em610,620内の変化がグラフィカル・ユーザー
・インタフェースによってユーザーに示される情報内に
同等の変化を起こさせるようにすることである。
【0081】クラスSI_AppItemのオペレーシ
ョン“newValueSet”は,そのサービス内の
状態の変化(書き込み動作)を要求するために用いられ
る。クラスSI_AppItemのオペレーション“r
eadRequest”は読み込み動作を要求するため
に用いられる。読み込みまたは書き込み動作が要求され
る場合,SI_AppItem610,620を参照
し,要求された動作,読み込み・書き込み,および書き
込みの場合はその書き込まれるべきデータを含んだクラ
スSI_QueueItemのオブジェクト680,6
90が構成される。SI_QueueItemは読み出
しキュー670,またはComponent700に付
加されている書き込みキューのいずれかに配置される。
これらのキュー・アイテムは,以下にさらに通信モジュ
ールとの関連で説明されるように,リモート・マシーン
とのバッチ通信セッションをユーザーまたはアプリケー
ションが要求するまで蓄積される。
【0082】バッチ通信セッションが行われる場合,各
SI_AppItemのCurrentValue属性
は,そのリモート・マシーン内に保存されたり,あるい
はそこから検索される値を反映するように更新される。
また,SI_AppItem610,620と関連した
各SI_GuiItem500は,“currentV
alueSet”オペレーションの副次的作用としてそ
の更新が自動的に通知される。
【0083】コンポーネント・オブジェクトは,それ自
体,リモート・マシーンに接続された個別的に制御され
るマシーンに対応した『サブ−コンポーネント』(図示
せず)のためのコンテナーである。例えば,トップ−レ
ベル・コンポーネント・オブジェクト(Compone
nt700)は,それに複数のコピー機が取りつけられ
る,トップ−レベル・コンポーネント(Compone
nt700)の内容によって示されるライン−アダプタ
・マルチプレクサであって良い。
【0084】図5は,マシーン・モデル860(図4の
630),アプリケーション・ステート810(図4で
600),そして,リモート・マシーン90との間の関
係を示している。これを説明するために,その内部でリ
モートからアクセスできるサービスが電子的に消去可能
な読み取り専用メモリ910内に含まれたデータによっ
て示され,それから,データを検索したり,あるいはそ
の内部でファクシミリ装置90にスターティング・アド
レスおよびサイズを含んだ適切にフォーマット化された
リクエスを提示することによって修正することができる
リコー・モデルFAX−60と類似したファクシミリ装
置を用いる。なお,転送されるデータを確認するための
異なった方法およびデータをコード化する異なった方法
を伴う他のプロトコルを用いることが可能であること
は,当業者には明らかである。
【0085】リモート・ファクシミリ装置はメモリにサ
ービス・アイテムを保存するので,マシン・モデル86
0はSI_ServiceItemのサブクラスである
SI_RemoteItemのサブクラスであるクラス
SI_MemoryItemのインスタンスであるオブ
ジェクト870,880を含んでいる。例えば,SI_
MemoryItem870は長さ3のストリングを指
定するその“itemSize”属性内にサイズ3を有
している。SI_MemoryItem870内のデー
タ・タイプ“Chars”は,クラスR_ValueD
scrのサブクラスのインスタンスに対するポインタに
よって“ValueDscr”属性内に示される。
【0086】リモートでアクセスできるデータの一部は
そのメモリのバイト内に保存されているビットフィール
ドで構成されており,図5はリモート・ファクシミリ装
置90のメモリ910のバイト920内に含まれた2つ
のそうしたビットフィールド921,922を示してお
り,それぞれ,いずれもバイト920を示すSI_Me
moryItemオブジェクト880内に含まれるクラ
スSI_BitfieldItemのインスタンス89
0,900によって示されている。
【0087】リモート・サービス・アプリケーション・
プログラムによって操作できる各サービス・アイテム
は,クラスSI_AppItemのインスタンス82
0,830によって示されるアプリケーション・ステー
ト810内にカレント・ステートを有している。
【0088】本発明の好ましい実施の形態においては,
マシーン・モデルは,SI_ModelItemのサブ
クラスのインスタンスで構成されており,以下の階層を
有している。ここで,インデントは,上のものへ対する
従属を示している。 SI_ModelItem マシーン・モデル−−−記述のみ SI_InternalItem アプリケーションに対して内部的 SI_ExternalItem 外部記憶またはサーバー SI_DIrectoryItem ディレクトリ SI_FileItem ファイル SI_TableItem データベース・テーブル SI_QueryItem データベース照会 SI_TupleItem データベース・タップル SI_FieldItem データベース・フィールド SI_RemoteItem リモート・マシーン SI_MemoryItem リモート・メモリに保存 SI_BitfieldItem ワード内のビットフィールド SI_ProgramItem リモート・プログラムによりアクセス
【0089】抽象クラスSI_ModelItemは,
リモート・マシーン内に配置されているサービス・アイ
テムに対するアクセスおよび交信動作を実行するための
抽象的なプログラニング・インタフェースを提供し,S
I_ModelItemの種々のサブクラスは,特定の
マシーンに対する通信プロトコルを用いた特殊なタイプ
のリモート・データを処理するためのこれらのオペレー
ションのインプリメンテーションを可能にするものであ
る。
【0090】サブクラス化することで,SI_Memo
ryItemオブジェクト870,880は,1つのリ
モート・マシーンのメモリに保存されているリモート・
サービス・アイテムに対してそれぞれ個別的に振る舞う
ことができるようになり,SI_BitfieldIt
emオブジェクト890,900は,リモート・マシー
ン・メモリ内に記憶されているワードに含まれているビ
ットフィールドに対して個別的に振る舞うことができる
ようになる。例えば,“packedSize”属性
は,SI_BitfieldItem内では単に“it
emSize”属性の値をリターンし,SI_Memo
ryItemでは,バイト内のビットの数である8を掛
けた“itemSize”属性の値をリターンする機能
で計算される。
【0091】SI_InternalItemおよびS
I_ExternalItemは,SI_ModelI
temの二つの主要なサブクラスである。SI_Int
ernalItemオブジェクトは,そのリモート・マ
シーンに関連し,上記リモート・マシーン・アプリケー
ション(例えば,リモートではアクセスできないが,カ
スタマー・データベースから獲得することができるその
マシーンのシリアル番号)に対しては内部的なデータを
記述する。データがそのリモート・マシーン・アプリケ
ーションに対して外部的な場合は,SI_Extern
alItemサブクラスのサブクラスが用いられる。例
えば,SI_TableItemはリモート・データベ
ース・テーブルにおけるテーブルを記述し,SI_Me
moryItemはリモート・ファクシミリ装置のメモ
リにおけるデータ・アイテムを記述する。
【0092】データ自体,つまり,データ・タイプ(整
数,基数,フロート,ストリング等),サイズ,数値の
範囲およびその他の属性が,『バリュー・デスクリプ
タ』(クラスValueDscr)と呼ばれるデータ・
ストラクチャ内に記述される。これらの数値デスクリプ
タはSmalltalk等の言語で用いられるものと同
様のランタイム・クラス・デスクリプタである。数値デ
スクリプタに対するポインタとそのデータの初期値はS
I_ModelItemオブジェクトの“defaul
tValue”属性であるクラスRvalueのオブジ
ェクト内で結合されている。数値デスクリプタの一部の
属性はSI_ModelItemの対応する属性によっ
てオーバーライドされる場合もある。1つの値があるオ
ブジェクトのインスタンスに対する基準である場合,そ
のクラス名および公的にアクセス可能な属性は上記オブ
ジェクトのインスタンスの仮想機能“dscr”によっ
てリターンされるクラスR_ClassDscrのイン
スタンスによって記述される。
【0093】アプリケーション・ステート810内の各
SI_AppItemオブジェクト820,830,8
40,850は,リモート・マシーンのカレント・ステ
ート,ユーザー・インタフェースの状態,そしてそれら
の間の関係に関してリモート・サービス・アプリケーシ
ョンが持っている情報を記憶する。
【0094】クラスSI_AppItem820,83
0,840,850の各インスタンスは,そのアイテム
の許可可能状態,およびその位置またはそのリモート・
マシーンに対するアクセス情報について記述するクラス
SI_ModelItem870,889,890,9
00の1つのインスタンスに対するレファレンス(参照
情報)を含んだ属性『モデル』を有している。
【0095】また,各SI_AppItemは,そのリ
モート・マシーンにおけるそのサービス・アイテムのカ
レント・ステートに関する情報を含んだ属性“curr
entValue”と,そのリモートの要求された更新
状態を示す属性“newValue”も有している。
【0096】2.2.1.合成データ リモート・マシーン内の1つのサービス・アイテムが配
列や構成等合成データ・ストラクチャでできている場
合,それはその『子:チルドレン』としても知られてい
る1つまたは複数の従属SI_ModelItemオブ
ジェクトの集合(collection) を有するSI_Mode
lItemによって記述される。1つの配列を示すSI
_ModelItemオブジェクトは,アレイ・アイテ
ム・オブジェクトを記述する1つの子(チャイルド)を
有しており,1つのストラクチャを示すSI_Mode
lItemは,各フィールドを記述する別の子(チャイ
ルド)を有している。
【0097】対応するSI_AppItemは,各サブ
−アイテム(ストラクチャ・フィールドの配列要素)の
ためのチャイルドSI_AppItemか,あるいはサ
ブ−アイテム値の配列に対する単一合成値のいずれかを
有している場合もある。1つの配列要素を示す各SI_
ApplItemはその『位置』(“locatio
n”)属性に,その配列の冒頭からの指数(“inde
x”)である値を持っている。
【0098】アプリケーション・プログラマは,与えら
れたいずれかのアプリケーションに対してこれら二つの
表現のうちのどれが最も適切かについて判断する。例え
ば,図5で,SI_AppItemオブジェクト830
とSI_MemoryItemによって記述されるリモ
ート・データ・アイテムは,SI_AppItemオブ
ジェクト840,850とSI_Bitfieldオブ
ジェクト890および900によって記述されるビット
フィールドを含んでいる。
【0099】2.2.2.リモート・マシーン・ヒスト
リー オプションとして,1つのリモート・マシーンの経時デ
ータ(ヒストリー)は,経時データベース(図示せず)
に格納するようにしても良い。経時データのタイプは,
例えば,毎月コピー機で作成されるコピーの枚数,顧客
が購入するオプション等を含んでいる。経時データを追
跡確認するために,SI_AppItemは異なったコ
ンポーネントの別のSI_AppItemを指示する属
性“history”を有している。この異なったコン
ポーネントとは,通常,データベースやファイルを記述
するものである。
【0100】経時データ・アイテムの“current
Value”は,アプリケーションが開始された場合
(例えば,請求アプリケーションにおける前月のコピー
・カウント等),そのアイテムについて知られているこ
とを反映している。システムがそのアイテムに関して知
っていることに変化が生じた場合,“currentV
alueSet”が呼び出されてその変化を反映させ,
そしてその経時データ・アイテムの“newValue
Set”オペレーションが同じ値で呼び出される。いく
つかのアプリケーション(例えば,リモート・セットア
ップ)では,1つのサービス・アイテムの値を,そのア
プリケーションのユーザーによって行われた可能性のあ
る全ての変更を無効にするように,プログラムが開始さ
れた場合に有していた値に戻すことができると非常に有
益であることがある。
【0101】2.2.3.新しいモデル・アイテムの定
義 上の説明で分かるように,アプリケーション・プログラ
マは,いずれのかの新しいリモート・マシーン,データ
ベース,または他の外部リソースによって提供される新
しい種類のサービス・アイテムを記述するために,クラ
スSI_ModelItemに対する新しいサブクラス
を簡単に定義することができる。
【0102】こうしたサブクラスのためのコードを含ん
だライブラリにリンクされた全てのアプリケーション
は,作動中,その新しいサービス・アイテムを用いるこ
とができ,そうしたアプリケーションをリコンパイルす
る必要はなく,再リンクすれば良いだけである。ダイナ
ミック・リンク・ライブラリ(DLL)に新しいクラス
を入れることによって,適切に構成されたアプリケーシ
ョンは,リンクされてユーザーに配分された後でも新し
いサービス・アイテムを利用することができる。
【0103】2.2.4.初期化 アプリケーション・プログラムがあるリモート・マシー
ンと通信するためには,そのメモリ内にコンポーネント
とその関連マシーン・モデルおよびアプリケーション・
ステートとを有していなければならないことは,当業者
にはすぐ分かる。
【0104】本発明の好ましい実施の形態においては,
これはそれらのクラスの名称,その属性の名称と値,そ
して各集合オブジェクトに含まれるオブジェクトのテキ
ストによる表現または二進値による表現を含む,構成さ
れるオブジェクト・インスタンスのテキストまたは二進
値による表現を含んだ1つまたは複数のファイルを文法
的に解析することによって行うことができる。
【0105】そのファイル内に示される種々のクラスに
関するコンストラクタを用いて,パース・ツリーがつく
られ,そのルートは必要なコンポーネント・オブジェク
ト・インスタンス700,800であり,その“mod
el”属性はマシーン・モデル630,860を含んで
おり,その“state”属性はアプリケーション・ス
テート600,810を含んでいる。アプリケーション
・ステートは個別ケース・ファイル330,420を文
法的に解析することによって構成しても良く,マシーン
・モデル・ファイル350,430からの初期値を用い
て構成し,初期化してもよい。
【0106】1つの例として,アプリケーション・プロ
グラムがファクシミリ装置と交信する必要が生じた場
合,そのアプリケーション・プログラムは最初にそのフ
ァクシミリ装置を記述したマシーン・モデル・ファイル
を検索する。そうしたファイルは,例えば,以下に示す
ように記述される(一部)。ただし,明細書における文
字標記の制限から,制限のある文字を代用文字(以下に
$で記載する文字)に代えて記述する。
【0107】 SC_ServiceModel: ($ name=k50 $ SI_MemoryItem: ($ name=R17D4 defaultValue=BCD1:51 description=‘drmk50.dat#R17D4' itemValueList=〔〕 features=S_FeatureSet: (SYSTEM RemoteSetting) readOnly=- msbFirst=+ isremote=+ bitOffset=0 offset=6100 label=‘NCU 13' $) SI_MemoryItem: ($ name=R17D5 defaultValue=BCD1:256 description = ‘drmk50.dat#R17D5' itemValueList=〔〕 features= S_FeatureSet: (SYSTEM RemoteSetting) readOnly=- msbFirst=+ isremote=+ bitOffset=0 offset=6101 label=‘NCU 14' $) SI_MemoryItem: ($ name=R17D6 defaultValue=BCD1:256 description=‘drmk50.dat#R17D6' itemValueList=〔〕 features=S_FeatureSet: SYSTEM RemoteSetting) readOnly=- msbFirst=+ isremote=+ bitOffset=0 offset=6102 label=‘NCU 15' ・・・
【0108】上に示したように,記述ファイルは“K5
0”ファクシミリ装置に関するSC_ServiceM
odel(モデル)のテキストによる表現を含んでい
る。SI_MemoryItemのインスタンスはR1
7D4,R17D6およびR17D6を含んで記述され
ている。適切なインスタンスの内部の仮想機能は特定の
通信プロトコルによって処理するために実行される。
【0109】別の例として,アプリケーション・プログ
ラムはコピー機と交信することが必要な場合,アプリケ
ーション・プログラムは先ずそのコピー機を記述するフ
ァイルを検索する。この場合,例えば,表2に示すよう
に記述される(一部)。
【0110】 SC_ServiceModel: ($ name=FT8780 $ SI_CopierItem: ($ name=LampThermistor writeDCode= ‘1302' features=S_FeatureSet: ( ReadOnly RemoteSetting) msbFirst=- writeInfcode= ‘16040070101' isremote=+ offset=0 label=LampThermistor separator=‘;' IDCode= 〔〕 defaultValue=Nchars2:"00" size_for _specify _data_length=2 description=〔〕 readOnly=- bitOffset=0 readInfCode=‘16040070101' size=2 readDcode=‘1302;' $) SI_CopierItem: ($ name= SC_ChargerLeak writeDCode= ‘1302;' features=S_FeatureSet: ( RemoteSetting ScCall msbFirst=- writeInCode=‘32000930201' isremote=+ offset=0 label=SC_ChargerLeak separator=‘;' IDCode= 〔〕 defaultValue=Nchars1_1:"0" size_for _specify _data_length=2 description=〔〕 readOnly=- bitOffset=0 readInfCode=‘32000930201' size=1 readDCode=‘1302;' $) SI_CopierItem: ($ name=FusingTempADJ writeDCode= ‘1304' features=S_FeatureSet: ( ReadWrite RemoteSetting) msbFirst=- writeInfCode= ‘51011050101' isremote=+ offset=0 label=FusingTempADJ separator=‘;' IDCode= 〔〕 defaultValue=Nchars3s _16:"+00" size_for _specify _data_length=2 description=〔〕 readOnly=- bitOffset=0 readInfCode=‘51011050101' size=1 readDCode=‘1302;' $) ・・・
【0111】上に示した通り,記述ファイルは“FT8
780”コピー機に関するSC_ServiceMod
el(モデル)のテキストによる表現を含んでいる。S
I_CopierItemのインスタンスは,Lamp
Thermitor,SC_ChargerLeakお
よびFusingTempADJを含んで記述されてい
る。
【0112】1つのアプリケーションは複数のコンポー
ネント・オブジェクト700,800および関連するモ
デル630,860,およびアプリケーション・ステー
ト600,810を段階的,あるいは同時並行的にその
メモリ内につくることによって複数のリモート・マシー
ンと交信することができる。
【0113】2.3.典型的なクラス・デスクリプタ 以下のC++コードは,マシーン・モデル・クラスの好
ましい実施の形態の説明的なサブセットに関するクラス
・デクラレーションによって構成されている。
【0114】2.3.1.Serviceクラス サービス・クラスは,サービス・アイテムおよびサービ
ス集合(collection)に関する一般的で抽象的なベース
・クラスである。
【0115】 class Service: public R_Nameable{ Description : R_ABSTRACT(Service, R Nameable); public: Pseudo-Attributes: R_FUNC_RX(Service *, parent); R_CONTAINER _IS(parent); ツリーにおけるこのサービスのペアレント。このサービ スがサービス・ツリーのルートにある場合(つまり,そ のペアレントはコンポーネント)。"parent"はそのサー ビスがつくられた場合にセットされるか,あるいはチャ イルドがそれに付加された場合に,ペアレント自身によ ってセットされる。 R_FUNC_RO_RC(R_Collection, children); R_CONTENTS_IS(children); このサービスのチルドレンを保有するための集合。1つ の場所で初期化,消去できるようにするために,ここに 置かれる。この下側はスペシャライズするためにサブク ラス内で行われるダウンキャスティングが行われねばな らないことを示している。 virtual void setValueAt(Rcad i,Rvalue const &nv); virtual void setValueOf(RKey const&Key, Rvalue const&nv); virtual void append(Rvalue const&nv); parentSet を呼び出すことができるように,チルドレン を付加するオペレーションをオーバーライドする。 virtual Service *getChildByName(R_Symbol *nm) サービス名が与えられたら,それに一致するチャイルド を見つける。ファスト・ルックアップを行うことができ るサブクラス内にオーバーライドしなければならない。 virtual Component *component ( ) const; コンポーネントがあった場合,このサービスが付加され る。この内容のデクラレーションはそれが大文字でタイ プされるまで(strongly typed) 遅らされる。これは, "S_TYPED _CHILDREN(child_type, collection_type )"によって行われる。 #define S_TYPED _CHILDREN(childType, collectionType) \ R_CONTENTS_INIT_NEW(collectionType, children);\ R_CHILDREN_ARE _TYPED(childType,collectionType, parentSet)
【0116】 constructors: Service (R_Symbol &nm, Service *prnt = 0); 規則上,全てのServiceItem コンストラクタはその最初 のアーギュメントとしての名称に関するレファレンスと その最後のアーギュメントしてのペアレントに対するポ インタを含んでいる。
【0117】 usage: "parent ・ append (new Service(name, &parent))" Service (R_Base const &o); そのコピー・インストラクタを用いてサービスを構成す る場合,通常ボトム・アップでツリーを構成するので, ペアレントは分からない。parentSet で行うアペンドに アサインされねばならない。
【0118】 Descructor: 〜Service( ); 代表された集合オペレーション:一つのサービスをペア レント・サービスに対して付加するオペレーションは, 必要な場合,そのチャイルドの"parent"フィールドをセ ットしなければならない。
【0119】2.3.2.SI_ServiceIte
mクラス SI_ServiceItemクラスは,全てのサービ
ス・アイテムに対して同じインタフェースを提供する。
【0120】 class SI_ServiceItem: public Service { public: S_TYPED _CHILDREN (SI_ServiceItem, RT_Table <SI_ServiceItem >); このサービス・アイテムに関する情報をリターンする。 この情報はそのアプリケーション(特徴)およびユーザ ー(ラベル,記述)に対するこのサービス・アイテムを 記述するために用いられる。 R_ATTR_XX_RC(R_String, label); ユーザーに対する表現のために表示し, このServiceItem をラベルするために用いられるストリ ング。これはデフォールト名で,アプリケーションに特 有の名称変更や言語上の翻訳から,その名称と違ってい る場合もある。 R_FUNC_GET (R_String *, description) ; このサービスが何をするのかについての簡単な説明をす るストリング。一般的に,この説明は,それが必要とさ れる前にそのアプリケーションのワーキング・メモリに 保存されるのではなく,データベースまたはファイルで ルック・アップされる。 R_FUNC_GET (S_featureSet *, features); このサービスに関する一定のシンボリックな特徴をリタ ーンする。 R_FUNC_GET(Rcard,offset); そのペアレントに対する本アイテムのアドレスを(バイ トで)リターンする。 R_FUNC_GET(Rcard,bitoffset); それを含んでいるアイテムがある場合,その低オーダー ・ビットに対する本アイテムのビットによるオフセット をリターンする。 R_FUNC_GET(Rcard, index); ペアレントが同じアイテムの列である場合,そのペアレ ントにおけるこのアイテムのインデックス。さもなけれ ばゼロ。 R_FUNC_GET(Rcard, address); 通常それを含んでいるメモリ,ファイル等のスタートに 関連したアイテムの絶対アドレス(バイト)。オフセッ ト,インデックス,およびサイズから計算される。
【0121】 Value Description Information : 以下の機能は,通常,デスクリプタ,特に,default- Value の値デスクリプタによって代表される。サイズや valueList 等の少数の機能が,SI_ModelItem の属性に よってオーバーライドされることができる。 R_FUNC_GET(Rvalue, defaultValue); そのアイテムのデフォールト値。このデフォールト値の R_ValueDscr はこのアイテムの全てのインスタンスに 対して用いられるデスクリプタである。 R_FUNC_GET (R_ValueDscr & ,defaultDscr); デフォールト値デスクリプタ。"defaultValue ( )・dscr ( )," と同じでなければならないが,効率のため(つま り,ユーザーがいくつかのレベルの間接的な方法で値全 体をワインド・アップ・パシングしないようにするため に),遅らされる。 R_FUNC_GET (Rcard, minSize); R_FUNC_GET (Rcard, maxSize); 1つのアイテムの値をホールドするのに必要な,即ち, そのアイテムをリモート・マシーンのメモリに保存し, それをマシーンに送り,あるいはデータベース内に保存 するために必要な最低および最大バイト数。 Rinvalidindex のmaxSize はそのサイズに関して上限の ない可変長オブジェクトを示している。 R_FUNC_GET (Rcard,packedSize); その値のホールドするのに必要なビット数。 R_FUNC_GET (Rcard, minWidth); R_FUNC_GET (Rcard, maxWidth); R_FUNC_GET (Rcard, minHeight); R_FUNC_GET (Rcard, maxHeight); プリントまたはディスプレイのために1つの値をストリ ングとして表現するのに必要な最小,および最大文字お よびライン数。 R_FUNC_GET (Rvalue, minValue); R_FUNC_GET (Rvalue, maxValue); そのアイテムの最小および最大値。ストリング値化され たアイテムのRnullValueをリターン。 R_FUNC_GET (Rvalue, unit); R_FUNC_GET (Rvalue, scaleFactor); アイテム値の後に表示されるべき単位およびスケール・ ファクタ。例えば,電圧の単位とそのスケール・ファク タはキロボルトで表された値の場合,Vと1000であ る。 R_FUNC_GET (R_Base *, valueList) 少数の名称のついた値をもったアイテムに対して用い得 る値。数値でインデックスされ,符号名でキー入力され た集合(collection) でなければならない。 R_FUNC_GET (Rbool, msbFirst); バイト・オーダーリング R_FUNC_GET (Rbool, readOnly); そのリモート・マシーン上でアイテムが修正できない場 合だけ有効。
【0122】2.3.3.SI_ModelItemク
ラス ModelItemは,マシーンの記述の一部,つま
り,そのプログラム上でのマシーンのモデルである。こ
れはそのマシーンのカレント・ステートに関する情報は
含んでおらず,どのようにしてステートを得られるか,
そしでどんな値が使えるかについての情報を含んでいる
だけである。基本的に,ModelItemはリモート
・マシーンを呼び出したり,データベースを調べたりせ
ずに,予め1つのアイテムについて知り得る全ての情報
を含んでいる。
【0123】 Class SI_ModelItem: public SI_ServiceItem { R_ABSTRACT (SI_ModelItem ,SI_ServiceItem); public: R_String *descriptionInit( ); 記述をイニシャライズする。 R_ATTR_RW_RC(S_FeatureSet, features); このアイテムの特徴 R_ATTR_R0 (Rcard,offset); 通常それを含んでいるマシーン・メモリ,ファイル,ま たはプロトコル・バッファのスタートに対するこのアイ テムのアドレス R_ATTR_R0 (Rcard, bitOffset); それを含んでいるアイテムがあった場合,その低オーダ ー・ビットに対するこのアイテムのビット数でのオフセ ット
【0124】 Value Description Information : ほとんどのデクスクリプタ属性は,1つまたはそれ以上 のレベルでValueDescriptor により代表される。必要な 場合,一部はここでオーバーライドされる場合もあ る。 R_ATTR_R0 (Rvalue,defaultValue); そのアイテムのデフォールト値。デフォールト値デスク リプタはこのアイテムの全てのインスタンスに対して用 いられるデスクリプタである。 R_FUNC_GET (R_ValueDscr & ,defaultDscr); デフォールト値のデスクリプタ。 R_ATTR_RW (RBool, msbFirst); バイト・オーダリング R_ATTR_RW_RC(R_Base,itemValueList); R_FUNC_GET (R_Base *,ValueList); デスクリプタの中のローカル値をオーバーライドできる ローカル値リスト R_ATTR_RW (RCard, itemSize); サイズに関するオーバーライド,アイテムがビットフィ ールドかストリングかによって,ビットまたはバイト R_FUNC_GET (RCard, minSize); R_FUNC_GET (RCard, maxSize); R_FUNC_GET (RCard, packedSize);
【0125】 Read and Writing: SI_ RemoteItem はリモート・マシーン上のアイテムを読み出したり,アイテ ムを書き込んだりするためのオペレーションを含んでいるが,しかしながら,こ れらはプロトコル固有サブクラスにオーバーライドされる。これらのオペレーシ ョンはSI_ ModelItemに組み込まれるが,それはこれがSI_AppItem が参照する クラスだからである。SI_AppItem がアイテムとデータベース・アイテムをそれ ぞれ別に取り扱わねばならないかについて特別な理由はなく,例えば,あるマシ ーンはそれ自身のシリアル番号についてレポートし,他のマシーンがネームプレ ート上およびカスタマー・データベース内にだけシリアル番号を保存するように しても差し支えない。 なお,リモート・アクセス・オペレーションはSI_AppItem アーギュメントの 形式をとり,これはそのためにその作業が行われているアプリケーション・アイ テムである。SI_AppItem が"busy"とマークされれば,全てのオペレーションは すぐリターンされ,その作業が実際に行われる場合は,コールバック法が起動さ れる。
【0126】 R_FUNC_GET _IS(RBool, readOnly, rFalse); R_FUNC_GET _IS(RBool, isRemote, rFalse); このサービスが実際にリモート・マシーンに含まれてい る場合は有効。これは,ユーザーに対して,読み出しや 書き込みを行うためには一定の時間がかかることを示唆 するために用いることができる。 Virtual RBool updateParentNewValue(SI_AppItem *, RValue const & ); 必要な場合,AppleItem のペアレントのNewValueを更新 する。 Virtual RBool updateChildrenNewValue(SI_AppItem *, RValue const & ); 必要であれば,AppItem のペアレントのChildrenValue を更新 Virtual RBool updateParentCurrentValue(SI_AppItem *, RValue const & ); 必要であれば,AppItem のペアレントのcurrentValueを 更新 Virtual RBool updateChildrenCurrentValue(SI_AppItem *, RValue const & ); 必要であれば,applItemのチルドレンのcurrentValueを 更新
【0127】 Virtual void readOrEnqueue(SI_ AppItem *app, RBool mayQueue); Virtual void writeOrEnqueue (SI_AppItem *app, RValue const &v, RBool mayQueue); AppItem のカレント値を読み出したり,書き込んだりす る。isRemote( ) およびmayQueueが両方とも有効であれ ば,オペレーションは実際にキューされる。 virtual void readNotify(SI_AppItem *app, RValue const &V, R_Symbol *status) ; Virtual void writeNotify (SI_AppItem *app, RValue const &V, R_Symbol *status) ; 値が適切なステータスで読み出されたり,書き込まれた りしたことをアプリケーション・アイテムに伝える(ゼ ロは全てがうまく行ったことを示す)。 これは,AppItem に値を保存することである。 Virtual void readEnqueue (SI_AppItem *app); Virtual void writeEnqueue(SI_AppItem *app, RValue const &v); キュー入力を行う。 Virtual void readValue (SI_AppItem *app) Virtual void writeValue(SI_AppItem *app, RValue const &v); 実際に読み出し,書き込みを行い,その結果をAppItem 伝える。キュー入力から呼び出される場合もある。デフ ォールトではreadValue がModelItem のdefaultValueを リターンし,writevalueがApplItemにその値が書き込ま れたことを伝える。 virtual RCard readValueFromBuffer(SI_AppItem *app,R_Buffer const &buf, RCard buf_addr=0,RCard hdr_size=0); virtual RCard writeValueIntoBuffer (SI_AppItem *app, RValue const &vR Buffer &buf, RCard buf_addr=0, RCard hdr size=0); バッファー上で読み出しまたは書き込みを行い,AppItem に通知する。 buf_ addr パラメータはそのマシーンのメモリ位置ゼ ロに対する{\em buffer }のスタート・アドレス。 hdr_sizeはバッファー内のいずれかのプロトコル・ヘ ッダー情報以下の buf_addrに対応する位置である。
【0128】 Initalization: virtual void initAppItem (class SI_AppItem *, RValue&) {} AppItem のカレント値が初期化される必要がある場合, Si_AppItem がつくられると呼び出される。このルーチ ンはカレント値に対する任意の直接アクセスである。
【0129】2.3.4.SI_RemoteItem
クラス SI_RemoteItemクラスは,リモート・マシ
ーンによって実際に実行され,あるいは,リモート・マ
シーンに保存されたり,そこから検索されるサービス・
アイテムに対するペアレント・クラスである。このクラ
スはメモリに基づくサービス・アイテムに関する実際の
メモリ位置を示すと同時に,必要であれば,個々のビッ
トに関する情報も含んでいる。リモート・マシーンが内
容を保有している場合,このクラスはコンポーネントに
対して,個々の名称および記述をデータ・ストラクチャ
の形式で提供する。同じアイテムの列は唯1つのアイテ
ムを有しているだけである。
【0130】 class SI_RemoteItem: public SI_ModelItem { R_ABSTRACT (SI_RemoteItem, SI_ModelItem); public: R_ATTR_GET _IS(RBool, isRemote, rTrue); R_ATTR_RW(RBool, readOnly); Constructors: SI_RemoteItem(R_Base const &o); SI_RemoteItem(R_Symbol &nm, RValue const &dflt, Service *prnt0)
【0131】2.3.5.SI_MemoryItem
クラス SI_MemoryItemクラスは,リモート・マシ
ーン上のメモリ内での位置を示すものである。背景の箇
所でも述べたように,一部のリモート・マシーンはリモ
ート・マシーン・メモリに対して直接のアクセスを可能
にしている場合がある。
【0132】 class IS_MemoryItem: public SI_RemoteItem{ R_CONCRETE (SI_MemoryItem, SI_RemoteItem); public: Attributes: R_FUNC_GET _IS(RCard, start, address() ); スタート・アドレス Reading and writing : virtual RBool updateChildrenNewValue(SI_AppItem *, RValue const &); virtual RBool updateChildrenCurrentValue(SI_AppItem *, RValue const &); Constructors: R_COPY_ONSTRUCTOR SI_MemoryItem(R_Base const &o); SI_MemoryItem(R_Symbol &nm,RValue const &dflt,RCard addr=0 Service *prnt=0); SI_MemoryItem(R_Symbol &nm, RValue const &dflt, RCard byteAdd , RCard bitAddr, Service *prnt=0) ;
【0133】2.3.6.SI_BitfieldIt
emクラス SI_BitfieldItemクラスは,それを含む
SI_MemoryItem内のビットフィールドを示
している。このビット数は含んでいるメモリ・アイテム
の低オーダー・ビットに関するものであり,最大32ビ
ット長である。このビットフィールドのサイズ(packed
Size) を指定するのは,デフォールト値のデスクリプタ
にまかせられる。
【0134】 Class SI_BitfieldItem: public SI_ MemoryItem { R_CONCRETE (SI_ BitfieldItem, SI_RemoteItem); public: R_FUNC_GET(RCard, minSize); R_FUNC_GET(RCard, maxSize); R_FUNC_GET(RCard, packedSize); itemSizeがゼロでない場合,サイズを正しく計算するた めに,これらをオーバーライドしなければならない。 virtual void readOrEnqueue (SI_AppItem *app, RBool mayQueue); virtual void writeOrEnqueue (SI_AppItem *app, RValue const &v, RBool mayQueue); virtual void readEnqueue (SI_AppItem *app); virtual void writeEnqueue(SI_AppItem *app, RValue const &v); virtual RBool updateParentNewValue (SI_AppItem *,RValue const &); virtual RBool updateParentCurrentValue (SI_AppItem *,RValue const &);
【0135】3.通信モジュール 3.1.概要 通信モジュール180は,マシーン・モデル・モジュー
ル170を共同して,クラスSI_AppItemのイ
ンスタンスで“readRequest”および“ne
wValueSet”オペレーションを実行することで
行われるリクエストに従って,リモート・マシーン90
上でオペレーションを実行したりデータにアクセスした
りする。
【0136】図2でコア層190に配置されている通信
モジュール170の目的は,リモート・サービス・アプ
リケーション・プログラム(図2のアプリケーション層
140における100,110,120,130等)が
動作しているコンピュータ・システム1とあるリモート
・マシーン10との間で,『通信セッション』と呼ばれ
るインタラクションを実行するためのプログラムミング
・インタフェースを提供することである。このプログラ
ミング・インタフェースのインプリメンテーションは基
本通信クラスのサブクラスに含まれており,これらのサ
ブクラスは図2のインタフェース層260に配置されて
いる。
【0137】本発明の好ましい実施の形態は,全てのタ
イプのリモート・マシーンのために,通信モジュール1
70内で定義される単一のプログラミング・インタフェ
ースを用いる。インタフェース層260内のサブクラス
は特定のタイプのリモート・マシーンとのインタフェー
スを行うのに適したそのプログラミング・インタフェー
スのインプリメンテーションを行う。
【0138】また,本発明の好ましい実施の形態におい
て,セッション・クラス階層は以下のもので構成されて
いる(インデントの部分はインヘリタンスを示す)。
【0139】 SI_DeviceCallBack SI_CommunicationSession SI_BufferedSession バッファーされたセッション SI_MemorySession メモリに基づくセッション SI_256BytesSession コール・セッションあたり 256バイト SI_CopierSession プログラムに基づいたセッション SI_UnbufferedSession バッファーされないセッション SI_DBSession データ・ベース・セッション SI_CustAccessionSession カスタマー・データ・ ベース・アクセス SI_HistorySession 経時データベース TI TaskItem TI_CommunicationItem 通信タスク・アイテム TI_MemoryItem メモリに基づくタスク・アイテム TI_ProgramItem プログラムに基づくタスク・アイテム TI_HistoryItem データ・ベース・タスク・アイテム
【0140】3.2.詳細な説明 SI_DeviceCallBackクラスは,リモー
ト・サービス・アプリケーションと外部プロセス,通信
装置,またはリモート・マシーンとの間の非同期通信の
ための一組の抽象的プログラミング・インタフェースを
含んでいる。こうした非同期入力または出力オペレーシ
ョンはそれを実行するのに一定の時間がかかるので,こ
のアプリケーションは単にリクエストを発行して,ユー
ザー・インタフェース・イベントを処理し続ける。この
オペレーションの実行が完了すると,装置ドライバーは
“connectDone”オペレーションを用いてそ
のアプリケーションを『コール・バック』する。
【0141】“SI_CommunicationSe
ssion”は,全てのセッションのための抽象的基本
クラス,つまり,リモート・マシーンとのインタフェー
スである。バッファーされたものと,バッファーされて
いないものの二つのSI_Communication
Sessionの二つのサブクラスが存在する。
【0142】バッファーされたセッション(SI_Bu
fferedSectionおよびそのサブクラス)
は,多くの場合,プロトコル情報を含んでいるヘッダー
を含むブロックで送受信されることを求めるプロトコル
を用いて通信に対処する。このデータおよびヘッダー
は,次に,送られる前または受信された後でバッファに
保存される。SI_BufferedSession
は,バッファー内のデータのフォーマットおよびその位
置を指定するためにマシーン・モデル630,860内
の情報を用いて,バッファとそのリモート・サービス・
アプリケーションの内部データ・ストラクチャ(アプリ
ケーション・ステート600,810に含まれている)
でデータを移動させるために必要なコードを含んでい
る。
【0143】SI_MemorySession,SI
_256ByteSession,およびSI_Cop
ierSessionは,異なったリモート・マシーン
のための通信固有情報を与えるSI_Communic
ationSessionのサブクラスを示している。
【0144】バッファーされていないセッション(SI
_UnbufferedSessionおよびそのサブ
クラス)は,そのために,リモート・マシーンとアプリ
ケーション・ステート600,810内のデータ間のリ
モート手順呼び出しによる直接のデータ伝送をサポート
する一定のオペレーティング・システムまたはライブラ
リによってアプリケーション・プログラミング・インタ
フェースが提供されるところのデータベース・サーバー
またはファイル・サーバー等のエンティティに対するイ
ンタフェースとして用いられる。
【0145】SI_DBSession,SI_Cus
tAccessSession,およびSI_Hist
orySessionは,種々のリモート・データベー
ス等に通信固有情報を提供するSI_Unbuffer
edSessionのサブクラスを示している。
【0146】TI_TaskItemsは,1つの通信
セッションをいくつか複数のステップに分割するために
用いられる。図6は,コンピュータ・システム1とリモ
ート・マシーン90(ここでは,1110で示す)間の
典型的なセッションを示している。セッション(Ses
sion)1000はローカル読み出しキュー1040
およびローカル書き込みキュー1070,サービス・ア
イテムに関して要求されたオペレーションを実行するた
めの仮想バッチング・オペーレション,およびリモート
・マシーン1110で用いられる外部フォーマットとコ
ンピュータ・システム1との間でデータを翻訳するため
の仮想マッピング・オペーレションを含んでいる。キュ
ー1040および1070はSC_Queueのインス
タンスであり,SI_QueueItemのインスタン
ス1050,1060,1080,1090を含んでい
る。
【0147】各SI_QueueItem1050,1
080等は,読み出しリクエスト1050に対しては有
効(true)で書き込みリクエスト1080に対して
は無効(false)なブール(Boolean:論理
演算)属性“read”と,読み出しリクエスト105
0に対しては未定義で,書き込みリクエスト1080に
対しては書き込まれるべき値を含んでいるRValue
属性“value”,および,その上でオペレートされ
るべきリモート・サービスを示すSI_AppItem
1051,1081に対するリフェレンスを含む属性
“appItem”を含んでいる。SI_AppIte
m1051,1081は,データタイプや,サービスの
一を記述したSI_ModeItemのサブクラスのイ
ンスタンス1052,1082を順番に参照する。
【0148】また,セッション1000は,Ti_Ta
skItemのサブクラスであるインスタンス102
0,1030のリストを参照する属性“callSch
edule”を保有している。用いられるサブクラスは
交信されるリモート・マシーン1110のタイプに固有
である。コール・スケジュール・リストは一回の呼び出
しで行われるべきオペレーションの順番を判定し,ま
た,例えば,1回のコールあたり最大256の連続バイ
トを伝送するファクシミリ装置において,それらにアク
セスするために必要な個別コールの数を最小限におさえ
るためにリモート・ファクシミリ装置のメモリ910内
のアイテム920,930に対するレファレンスの順番
を入れ替えることによって最適化をはかるために用いら
れる場合もある。
【0149】セッション1000が開始されると,それ
は,それによってアプリケーション・プログラムがリモ
ート・マシーン90,1110と交信することができる
通信装置70に対するインタフェースを提供するCM_
CommunicationDeviceのサブクラス
のインスタンス1100に対する装置マネジャーを要求
する。セッション1000によって行われる要求は,リ
モート・マシーン90,1110との通信で用いられる
プロトコルの指定を含んでおり,装置マネジャーは要求
されたプロトコルを用いることができ,まだ使われてい
ない装置70のインスタンス1110をリターンする。
【0150】リモート・サービス・アプリケーションが
通常ユーザーに応えて,キュー・アップされた通信リク
エストの実行を要求すると,セッション1000は,c
allSchedule1010を構成するためにその
読み出しキュー1040および書き込みキュー1070
を繰り返す。必要であれば,そのデータをSI_Que
ueItem内での内部フォーマットからその外部表現
に変換してそれをバッファ内に保存するために,各対応
するSI_ModelItem1082の仮想機能“p
utValueIntoBuffer”を用いてバッフ
ァー内に書き込まれるべきデータを蓄積する。
【0151】これによって,セッション1000は,呼
び出しスケジュールを繰り返し,各タスク・アイテム1
020,1030に対してそのオペレーションを実行す
るように命令する。各タスク・アイテム1020,10
30は,それを受けてセッション1000に対して,リ
モート・マシーン1110上でどのオペレーションを実
行すべきかを順番に知らせる。そしてセッション100
0は装置コントローラ1100(上述)を用いてリモー
ト・マシーン1110との間で低レベル読み出しまたは
書き込みオペレーションを実行する。必要であれば,各
対応するSI_ModelItem1052の仮想機能
“getValueFromBuffer”を用いて,
バッファーからデータを抽出し,それを内部表現から外
部表現に翻訳し,そしてそれをSI_AppItem1
051の“currentValueSet”オペレー
ションを用いてSI_AppItem1051内に保存
する。
【0152】3.3.新しいセッション・タイプの定義 上の説明でわかるように,アプリケーション・プログラ
マは,どのリモート・マシーン,データベース,または
他の外部資源との通信の新しい方法を記述するために,
クラスSI_CommunicationSessio
nに対してサブクラスを簡単に定義することができる。
そうしたサブクラスのためのコードを含んでいるライブ
ラリとリンクされたどのアプリケーションも動作時にそ
の新しいセッション・タイプを用いることができ,こう
したアプリケーションはリコンパイルする必要がなく,
再リンクすれば良いだけである。新しいクラスをダイナ
ミック・リンク・ライブラリ(DLL)内に入れること
により,適切に構成されたアプリケーションは,リンク
されユーザーに提供された後でも新しいセッション・タ
イプを用いることができる。
【0153】4.通信装置インタフェース 4.1.概要 通信装置70は,それを通じてリモート・サービス・ア
プリケーションがリモート・マシーンと交信するため
の,モデム等コンピュータ・システムの周辺装置であ
る。本発明の好ましい実施の形態においては,通信装置
70はクラスCM_CommunicationDev
icのサブクラスのインスタンス1100として,アプ
リケーション・プログラム内に表現される。
【0154】本発明の好ましい実施の形態においては,
装置クラス階層は以下の構成を有している(インデント
はインヘリタンスを示す)。
【0155】 CM_CommunicationDevice CM_Modem モデム CM_CCA FAXのための通信アダプタ CM_USACCA ... 256バイト・プロトコル用のアダプタ CM_LADP ライン・アダプタ/マルチプレクサ CM_DBACESS データベース用の装置 CM_DeviceManager
【0156】4.2.詳細な説明 クラスCM_CommunicationDevice
は,モデム等の物理的な通信装置ばかりでなく,データ
ベースおよびデータベース・サーバー等に対するアプリ
ケーション・プログラミング・インタフェースにも関連
した全ての属性およびオペレーションの全てを内蔵して
いる。CM_CommunicationDevice
のインスタンスはリモート・マシーンの通信アドレス,
そのリモート・マシーンに固有のプロトコル上の制約に
関するリスト,そして,全ての装置に対してプログラミ
ング・インタフェースを提供する仮想機能“initD
evice”,“connect”,“read”,
“write”および“disconnect”を含む
属性を保有している。
【0157】クラスCm_CCAは,リモート・ファク
シミリ装置と交信するために用いられる通信制御装置ア
ダプタに適用できる全ての属性およびオペレーションを
定義するクラスの好ましい実施の形態である。CCA
(通信制御装置アダプタ)はそのリモート・マシーンの
内部メモリをアクセスできる特殊な目的のファックス・
モデムの1つの実施の形態である。CM_USACCA
クラスは256タイプ・プロトコルを用いるファクシミ
リ装置のアクセス・修正をどのように行うかを示す好ま
しい実施の形態を示している。
【0158】クラスCM_LADPは,コピー機の通信
のために用いられるクラスの好ましい実施の形態であ
る。このクラスは通信チャンネルとしてCM_Mode
mのインスタンスを用いる。LADP(ライン・アダプ
ター)は電話回線と最大5台のコピー機との間をつなぐ
モデムとマルチプレクサとの組み合わせの1つの実施の
形態である。
【0159】クラスCM_DBACESSは,リモート
・サービス・アプリケーションがデータベースを1つの
リモート装置のように見ることができるようにするクラ
スの好ましい実施の形態である。このクラスはデータベ
ースを操作する機能を有し,そのデータベース内のデー
タ・アイテムにアクセスし,それを更新するためのデー
タベース・インタフェース・ライブラリによって定義さ
れるオペレーションを用いる。
【0160】クラスCM_DeviceManager
は,コンピュータ・システム1に取りつけられた全ての
通信装置70,そのステータス(アイドル,またはビジ
ー),そしてそれらがサポートするプロトコルをトラッ
キングするための機能である大域オブジェクトのクラス
の好ましい実施の形態である。通信セッション・オブジ
ェクト1000は装置マネジャーから装置オブジェクト
1100を要求し,その装置マネジャーは現在は空いて
いるがリモート・マシーン90,1110によって要求
される通信プロトコルを取り扱うことができる装置に対
するレファレンスをリターンする。
【0161】4.3.新しい装置の追加 上の説明で分かるとおり,アプリケーション・プログラ
マは,どの新しいリモート装置,データベース,あるい
はその他の外部資源に対してそのプロトコルを定義する
ために,クラスCM_CommunicationDe
viceに対するサブクラスを簡単に定義することがで
きる。そうしたサブクラスのためのコードを含んだライ
ブラリにリンクされたどのアプリケーションも動作時に
新しいプロトコルを用いることができ,そうしたアプリ
ケーションはリコンパイルする必要はなく,再リンクす
るだけでよい。新しいクラスをダイナミック・リンク・
ライブラリ(DLL)に入れることによって,適切に構
成されたアプリケーションは,リンクされ,ユーザーに
渡された後でも新しいプロトコルを利用することができ
る。
【0162】5.追記 前述したように本実施の形態では,その1つの具体的な
実施の形態を参照して本発明についての説明を行った。
リモート装置のモデリングを簡単に行うフレームワーク
に対して多くの変更,修正,および機能的拡張は簡単に
想起でき,それらは本発明の他の実施の形態に含まれ
る。したがって,明細書および図面は,本発明を限定す
るものではなく,説明のためのものであるとみなされる
べきである。しかしながら,特許請求の範囲に定義され
るような本発明の精神と範囲を逸脱することなく,種々
の修正,変更を行うことができるのは明らかなことであ
る。
【0163】〔著作権に関する告知〕また,本特許開示
の一部は,著作権保護の対象となる素材を含んでいる。
著作権保有者は,この特許資料または特許開示の一部を
特許商標特許ファイルあるいは記録に記載された通りに
ファクシミリ装置で複製することについては反対はしな
いが,それ以外に関しては著作権が適用される。
【0164】
【発明の効果】以上説明したように,本発明のオブジェ
クト指向通信システムの使用方法(請求項1〜請求項1
5)は,メモリを有するコンピュータ・システムを使用
し,複数のマシーン・タイプの複数のリモート・マシー
ンと通信する方法において,前記メモリ内部に,前記複
数のリモート・マシーンの1つにサービスを記述する第
1の複数のソフトウェア・オブジェクトを構成するステ
ップと,前記1つのリモート・マシーンと交信するステ
ップと,前記第1の複数のソフトウェア・オブジェクト
のサービスによって記述された要求に応じて1つのリモ
ート・マシーンのオペレーションを呼び出すステップ
と,を含んでいるため,リモート・サービス・アプリケ
ーションにオブジェクト指向を導入することにより,開
発サイクル期間の低減を図り,システムの修正等の柔軟
性を高めることができるオブジェクト指向通信システム
の使用方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の好ましい実施の形態によるコンピュー
タ・システム1の構成図である。
【図2】本発明の好ましい実施の形態で用いられるオブ
ジェクト指向アプリケーション・フレームワークの構成
図である。
【図3】サンプル・リモート・サービス・アプリケーシ
ョン・プログラムおよび本発明の好ましい実施の形態で
使うためのフレームワークと共に提供されたデータ・フ
ァイルの構成図である。
【図4】本発明の好ましい実施の形態における,コンポ
ーネント,グラフィック・ユーザー・インタフェース,
アプリケーション・ステート,マシーン・モデル,そし
てリモート・マシーンを記述するキュー・オブジェクト
を示す説明図である。
【図5】本発明の好ましい実施の形態における,リモー
ト・ファクシミリ装置および対応するコンポーネント,
マシーン・モデル,およびアプリケーション・ステート
・オブジェクト,およびそれらの上記リモート・マシー
ン内に含まれたデータに対する関係を示す説明図であ
る。
【図6】好ましい実施の形態における,リモート・マシ
ーンとの交信,およびその上でのオペレーションのため
に必要なオブジェクトを示す説明図である。
【符号の説明】
1 コンピュータ・システム 2 コンピュータ 10 表示モニター 20 キーボード 30 マウス 40 プロセッサ 50 メモリ 60 大容量記憶装置 70 通信装置 80 システム・バス 90 リモート・マシーン 140 アプリケーション層 170 マシーン・モデル・モジュール 180 通信モジュール(通信機能) 190 コア層 230,240 マシーン記述ファイル 260 インタフェース層
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リスイー ロス アメリカ合衆国,カリフォルニア州 94025,メンロー パーク,スウィート 115,サンド ヒル ロード 2882,リコ ー コーポレイション シー・アール・シ ー内 (72)発明者 ティナ イェン アメリカ合衆国,カリフォルニア州 94025,メンロー パーク,スウィート 115,サンド ヒル ロード 2882,リコ ー コーポレイション シー・アール・シ ー内 (72)発明者 ピーター ハート アメリカ合衆国,カリフォルニア州 94025,メンロー パーク,スウィート 115,サンド ヒル ロード 2882,リコ ー コーポレイション シー・アール・シ ー内 (72)発明者 リチャード ゴールディング アメリカ合衆国,カリフォルニア州 94025,メンロー パーク,スウィート 115,サンド ヒル ロード 2882,リコ ー コーポレイション シー・アール・シ ー内

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 メモリを有するコンピュータ・システム
    を使用し,複数のマシーン・タイプの複数のリモート・
    マシーンと通信する方法において,前記メモリ内部に,
    前記複数のリモート・マシーンの1つにサービスを記述
    する第1の複数のソフトウェア・オブジェクトを構成す
    るステップと,前記1つのリモート・マシーンと交信す
    るステップと,前記第1の複数のソフトウェア・オブジ
    ェクトのサービスによって記述された要求に応じて1つ
    のリモート・マシーンのオペレーションを呼び出すステ
    ップと,を含んでいることを特徴とするオブジェクト指
    向通信システムの使用方法。
  2. 【請求項2】 請求項1記載のオブジェクト指向通信シ
    ステムの使用方法において,前記1つのリモート・マシ
    ーンに対する前記サービスが,前記1つのリモート・マ
    シーン上でのオペレーションを含んでいることを特徴と
    するオブジェクト指向通信システムの使用方法。
  3. 【請求項3】 請求項1記載のオブジェクト指向通信シ
    ステムの使用方法において,前記1つのリモート・マシ
    ーンに対する前記サービスが,データ・タイプ,データ
    ・サイズおよびデータ位置を含む前記1つのリモート・
    マシーンに伝送されるべきデータのアイテムを含んでい
    ることを特徴とするオブジェクト指向通信システムの使
    用方法。
  4. 【請求項4】 請求項1記載のオブジェクト指向通信シ
    ステムの使用方法において,さらに,前記メモリー内
    に,前記1つのリモート・マシーンに対するアプリケー
    ション・アイテムを記述する第2の複数のソフトウェア
    ・オブジェクトを含んでいることを特徴とするオブジェ
    クト指向通信システムの使用方法。
  5. 【請求項5】 請求項4記載のオブジェクト指向通信シ
    ステムの使用方法において,前記1つのリモート・マシ
    ーンに対する前記アプリケーション・アイテムが,前記
    第1の複数のソフトウェア・オブジェクトに対するポイ
    ンタと前記1つのリモート・マシーン内部でのデータ・
    アイテムの値に対応したカレント値を含んでいることを
    特徴とするオブジェクト指向通信システムの使用方法。
  6. 【請求項6】 請求項5記載のオブジェクト指向通信シ
    ステムの使用方法において,前記1つのリモート・マシ
    ーンに対する前記アプリケーション・アイテムが,さら
    に,読み出しリクエスト・フラッグと前記1つのリモー
    ト・マシーンに送られるべき値に関するペンディング・
    リクエストを記述するための新しい値とを含み,第2の
    複数のソフトウェア・オブジェクトを構成する前記ステ
    ップが,前記第2の複数のソフトウェア・オブジェクト
    を1つのリモート・マシーンに送られるべきデータに対
    するリクエストを記録するために用いるステップを含ん
    でいることを特徴とするオブジェクト指向通信システム
    の使用方法。
  7. 【請求項7】 請求項1記載のオブジェクト指向通信シ
    ステムの使用方法において,さらに,前記メモリー内
    に,それぞれデータベース内の1つのアイテムを識別お
    よび記述するための第2の複数のソフトウェア・オブジ
    ェクトを構成するステップを含んでいることを特徴とす
    るオブジェクト指向通信システムの使用方法。
  8. 【請求項8】 請求項7記載のオブジェクト指向通信シ
    ステムの使用方法において,さらに,前記1つのリモー
    ト・マシーンに対して移されるデータのアイテムに応じ
    て,そのデータベースに対する更新をリクエストするス
    テップを含んでいることを特徴とするオブジェクト指向
    通信システムの使用方法。
  9. 【請求項9】 請求項1記載のオブジェクト指向通信シ
    ステムの使用方法において,前記第1の複数のソフトウ
    ェア・オブジェクトを構成するステップが,構成される
    べき第1の複数のソフトウェア・オブジェクトの表現を
    含んでいるデータ・ファイルを読み出すステップを含ん
    でいることを特徴とするオブジェクト指向通信システム
    の使用方法。
  10. 【請求項10】 請求項9記載のオブジェクト指向通信
    システムの使用方法において,前記データ・ファイル
    が,構成されるべき前記第1の複数のソフトウェア・オ
    ブジェクトのテキストによる表現を含んでいることを特
    徴とするオブジェクト指向通信システムの使用方法。
  11. 【請求項11】 請求項1記載のオブジェクト指向通信
    システムの使用方法において,さらに,グラフィック・
    ユーザー・インターフェースによるユーザー入力に応え
    て,複数のリモート・マシーン上でサービスに対するリ
    クエストを行うステップと,前記複数のリモート・マシ
    ーン上でリクエストされたサービスが終了した場合に,
    前記グラフィック・ユーザー・インターフェースを更新
    するステップと,を含んでいることを特徴とするオブジ
    ェクト指向通信システムの使用方法。
  12. 【請求項12】 請求項11記載のオブジェクト指向通
    信システムの使用方法において,前記複数のリモート・
    マシーンに対するサービスが,前記複数のリモート・マ
    シーン上でのオペレーションを含んでいることを特徴と
    するオブジェクト指向通信システムの使用方法。
  13. 【請求項13】 請求項11記載のオブジェクト指向通
    信システムの使用方法において,前記複数のリモート・
    マシーンに対する前記サービスが,データ・タイプ,デ
    ータ・サイズおよびデータ位置を含む前記複数のリモー
    ト・マシーンに送られるべきデータのアイテムを含んで
    いることを特徴とするオブジェクト指向通信システムの
    使用方法。
  14. 【請求項14】 請求項1記載のオブジェクト指向通信
    システムの使用方法において,さらに,前記メモリ内
    に,その他の複数のリモート・マシーンに対するサービ
    スを記述する第2の複数のソフトウェア・オブジェクト
    を構成するステップを含んでいることを特徴とするオブ
    ジェクト指向通信システムの使用方法。
  15. 【請求項15】 請求項14記載のオブジェクト指向通
    信システムの使用方法において,前記第2の複数のソフ
    トウェア・オブジェクトを構成するステップが,構成さ
    れるべき前記第2の複数のソフトウェア・オブジェクト
    の表現を含んでいるデータ・ファイルを読み出すステッ
    プを含んでいることを特徴とするオブジェクト指向通信
    システムの使用方法に関するものである。
JP8178816A 1995-07-19 1996-07-09 オブジェクト指向通信システムの使用方法 Pending JPH09114753A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/504,120 US5732261A (en) 1995-07-19 1995-07-19 Method of using an object-oriented communication system with support for multiple remote machine types
US08/504120 1995-07-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006119878A Division JP2006277758A (ja) 1995-07-19 2006-04-24 通信方法

Publications (1)

Publication Number Publication Date
JPH09114753A true JPH09114753A (ja) 1997-05-02

Family

ID=24004927

Family Applications (2)

Application Number Title Priority Date Filing Date
JP8178816A Pending JPH09114753A (ja) 1995-07-19 1996-07-09 オブジェクト指向通信システムの使用方法
JP2006119878A Pending JP2006277758A (ja) 1995-07-19 2006-04-24 通信方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2006119878A Pending JP2006277758A (ja) 1995-07-19 2006-04-24 通信方法

Country Status (4)

Country Link
US (2) US5732261A (ja)
EP (1) EP0755007B1 (ja)
JP (2) JPH09114753A (ja)
DE (1) DE69637852D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215486A (ja) * 2000-08-31 2002-08-02 Schneider Autom Wsdlに基づいたコントローラ装置用通信システム

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691299B1 (en) * 1995-07-19 2004-02-10 Ricoh Company, Ltd. Object-oriented communications framework system with support for multiple remote machine types
US6393497B1 (en) * 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US5974469A (en) * 1996-07-12 1999-10-26 Sofmap Future Design, Inc. System for managing communication between program modules
US5893106A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Object oriented server process framework with interdependent-object creation
US6138122A (en) * 1998-03-02 2000-10-24 Agilent Technologies Modeling of internet services
US6314475B1 (en) 1998-03-04 2001-11-06 Conexant Systems, Inc. Method and apparatus for monitoring, controlling and configuring local communication devices
US6330597B2 (en) 1998-03-04 2001-12-11 Conexant Systems, Inc. Method and apparatus for monitoring, controlling, and configuring remote communication devices
US6427178B2 (en) * 1998-03-04 2002-07-30 Conexant Systems, Inc. Software modem having a multi-task plug-in architecture
US6598093B1 (en) * 1998-05-14 2003-07-22 Sun Microsystems, Inc. Method and apparatus for a core application programming interface
EP1024665A1 (en) * 1999-01-28 2000-08-02 Sony Service Center (Europe) N.V. Class-creation from disk
US6370436B1 (en) 1999-03-26 2002-04-09 Emware, Inc. Distributed objects for a computer system
US6466972B1 (en) * 1999-03-31 2002-10-15 International Business Machines Corporation Server based configuration of network computers via machine classes
US7139693B1 (en) * 1999-12-22 2006-11-21 Intel Corporation Using software objects to communicate with hardware devices
US6971015B1 (en) * 2000-03-29 2005-11-29 Microsoft Corporation Methods and arrangements for limiting access to computer controlled functions and devices
US7703107B2 (en) * 2000-04-06 2010-04-20 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
US8020176B2 (en) 2000-04-06 2011-09-13 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
DE10038402A1 (de) * 2000-08-07 2002-02-28 Software For People Ag Verfahren und Vorrichtung zum Steuern einer technischen Anordnung, Anordnung, Computerlesbares Speichermedium, Computerprogramm-Element
US6996537B2 (en) * 2001-08-13 2006-02-07 Qualcomm Incorporated System and method for providing subscribed applications on wireless devices over a wireless network
CA2381744A1 (en) * 2002-04-15 2003-10-15 Ibm Canada Limited-Ibm Canada Limitee A parsing technique to respect textual language syntax and dialects dynamically
US7761921B2 (en) * 2003-10-31 2010-07-20 Caterpillar Inc Method and system of enabling a software option on a remote machine
JP2005182419A (ja) * 2003-12-18 2005-07-07 Toshiba Solutions Corp コンポーネント処理システム及びコンポーネント処理方法
US8699320B2 (en) * 2004-11-01 2014-04-15 Alcatel Lucent Multi-interface port management
US7478299B2 (en) 2006-08-14 2009-01-13 International Business Machines Corporation Processor fault isolation

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4407016A (en) 1981-02-18 1983-09-27 Intel Corporation Microprocessor providing an interface between a peripheral subsystem and an object-oriented data processor
US5371895A (en) 1985-10-08 1994-12-06 The Foxboro Company Local equipment controller for computerized process control applications utilizing language structure templates in a hierarchical organization and method of operating the same
WO1991011766A2 (en) * 1990-01-30 1991-08-08 Johnson Service Company Networked facilities management system
US5297279A (en) * 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
US5168441A (en) 1990-05-30 1992-12-01 Allen-Bradley Company, Inc. Methods for set up and programming of machine and process controllers
EP0495279B1 (en) * 1991-01-18 1997-07-16 International Business Machines Corporation Object oriented programming platform
CA2079351A1 (en) * 1992-02-19 1993-08-20 Bruce A. Tate Scaled depiction of information from a database
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
US5379432A (en) 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5404529A (en) 1993-07-19 1995-04-04 Taligent, Inc. Object-oriented interprocess communication system interface for a procedural operating system
EP0746816B1 (en) 1993-08-03 2001-10-24 Sun Microsystems, Inc. Flexible multi-platform partitioning for computer applications
US5453933A (en) 1993-09-08 1995-09-26 Hurco Companies, Inc. CNC control system
US5568639A (en) 1993-11-24 1996-10-22 Menai Corporation Method and apparatus for providing an object-oriented file structuring system on a computer
US5548723A (en) * 1993-12-17 1996-08-20 Taligent, Inc. Object-oriented network protocol configuration system utilizing a dynamically configurable protocol stack
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
US5421009A (en) * 1993-12-22 1995-05-30 Hewlett-Packard Company Method of remotely installing software directly from a central computer
US5583983A (en) 1994-11-17 1996-12-10 Objectware, Inc. Multi-platform object-oriented software development and deployment system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215486A (ja) * 2000-08-31 2002-08-02 Schneider Autom Wsdlに基づいたコントローラ装置用通信システム

Also Published As

Publication number Publication date
EP0755007A3 (en) 1997-12-03
EP0755007A2 (en) 1997-01-22
DE69637852D1 (de) 2009-04-16
EP0755007B1 (en) 2009-03-04
JP2006277758A (ja) 2006-10-12
US6260076B1 (en) 2001-07-10
US5732261A (en) 1998-03-24

Similar Documents

Publication Publication Date Title
US6430740B1 (en) Object-oriented communications framework system with support for multiple remote machine types
US6438617B1 (en) Object-oriented communication system with support for multiple remote machine types
JPH09114753A (ja) オブジェクト指向通信システムの使用方法
US6957439B1 (en) Method, system, and program for mapping objects in different language formats
US5745767A (en) Method and system for testing the interoperability of application programs
US7676789B2 (en) Architecture for customizable applications
US6230318B1 (en) Application programs constructed entirely from autonomous component objects
US7269792B2 (en) System and method for generating high-function browser widgets with full addressability
US5515536A (en) Method and system for invoking methods of an object through a dispatching interface
US6854123B1 (en) Method, system, and program for mapping standard application program interfaces (APIs) to user interface APIs
US5848273A (en) Method for generating OLE automation and IDL interfaces from metadata information
US5729739A (en) Persistent object mapping system and method with abstract schema mapper
KR100639167B1 (ko) 프로그램 객체들의 버전-적응가능한 직렬화 및 탈직렬화
US5920868A (en) Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
CA2312814C (en) Apparatus and method for allowing object-oriented programs created with different framework versions to communicate
US5943497A (en) Object-oriented apparatus and method for controlling configuration of object creation
US20020042849A1 (en) CICS BMS (Basic Message Service) meta model
US20050229189A1 (en) Inter-process communication using different programming languages
US6941520B1 (en) Method, system, and program for using a user interface program to generate a user interface for an application program
US7536675B2 (en) Dynamic code generation system
US6691299B1 (en) Object-oriented communications framework system with support for multiple remote machine types
US20040172614A1 (en) Dynamic code generation method
US7681207B2 (en) Methods of factoring operating system functions, methods of converting operating systems, and related apparatus
US6874148B1 (en) System and method for exporting a graphical program to a shared library
US20020054124A1 (en) Hosting objects in a windowed environment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050913

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060424

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060427

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060804