JPH07262141A - ソフトウェア資源利用方法およびそれを用いたシステム - Google Patents

ソフトウェア資源利用方法およびそれを用いたシステム

Info

Publication number
JPH07262141A
JPH07262141A JP6055528A JP5552894A JPH07262141A JP H07262141 A JPH07262141 A JP H07262141A JP 6055528 A JP6055528 A JP 6055528A JP 5552894 A JP5552894 A JP 5552894A JP H07262141 A JPH07262141 A JP H07262141A
Authority
JP
Japan
Prior art keywords
program
software
software resource
storage
resource utilization
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
JP6055528A
Other languages
English (en)
Inventor
Takahiro Kurosawa
貴弘 黒澤
Toshihiko Fukazawa
寿彦 深澤
Masahiko Yoshimoto
雅彦 吉本
Shigeki Shibayama
茂樹 柴山
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP6055528A priority Critical patent/JPH07262141A/ja
Publication of JPH07262141A publication Critical patent/JPH07262141A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【目的】実行するプログラムを必要に合わせて必要なも
のを迅速にロードし、実行するシステムを提供する。 【構成】ソフトウエア管理モジュールは、それと接続さ
れたデバイス制御モジュールで実行するプログラムをデ
ータベース108で管理している。データベース108
への登録は各デバイス制御モジュールから行われる。ソ
フトウエア管理モジュールは、デバイス制御モジュール
からの要求に合わせて、データベースからプログラムを
読出し、デバイス制御モジュールに送りつける。デバイ
ス制御モジュールは、それを実行する。こうして、多く
のデバイス制御モジュールに対して、それらで実行する
プログラムを効率的に管理することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のプログラムが異
機種分散環境で協調して処理を進めて行く処理形態を実
現するソフトウエア資源利用方法およびそれを用いたシ
ステムに関する。
【0002】
【従来の技術】従来、例えばロボット制御などのよう
に、実時間制約の強いソフトウェアが協調動作するよう
な応用の場合、各ノードを構成する制御用プロセッサの
制御ソフトウェアは、比較的単純なプログラムコードで
構成されている。しかも、それらのプログラムコード
は、要求される仕様に応じて柔軟に振舞いを変化させる
ことが求められる。
【0003】一方、これを構成する各ノードの制御に使
われるプロセッサは、各ノードの担当する機能によって
種々多様であり、それらのノード間でプログラムコード
を共有することは困難である。そのため、従来は、この
ような応用に関しては、それぞれのプロセッサに応じて
独立にプログラムを開発し、個々に提供してきていた。
【0004】たとえば、腕のアクチュエータに使われて
いる制御プロセッサと、指のマニピュレーションに使わ
れている制御プロセッサとが異なるアーキテクチャに基
づく命令セットを持つ場合、それらを制御するためのプ
ログラムは、それぞれ独立に開発され、それぞれのプロ
セッサの起動時にロードされ、固定的に利用されるとい
うことが行なわれていた。
【0005】
【発明が解決しようとする課題】しかしながら、近年、
高機能ロボットや大規模FAなど制御される対象の複雑
化に伴って、上記の従来技術では対応し切れない以下の
ような課題の解決が求められている。 ・動作の一貫性保持 対象の複雑化に伴って、制御用ソフトウェアの大規模
化、その処理内容の複雑化が進んでいる。これに対応す
るために個々のプログラムについて独立に開発を進めた
場合、それらのプログラムを統合した場合に、一貫した
動作の保証が難しくなるという問題がある。
【0006】このような制御用ソフトウェアの利用環境
としての異機種分散環境の中では、各機能の高度化に伴
う機能モジュールの専用化が進んでおり、それらの間の
一貫性保持への対応が強く求められている。 ・高速な実行 ロボット制御などリアルタイム応答が重要な要件になる
ようなソフトウェアでは、処理の遅延が、処理の価値を
大きく変化させてしまう。現在使われているソフトウェ
ア構築技術は、このような応答性能の高速化の要求に応
えることが難しい。 ・実行制御の柔軟性 従来、制御プロセッサの振舞いは、ブート時にすべて決
まってしまうという固定的なものであった。しかし、個
々の制御対象およびそれらの間の関係が複雑になるにつ
れて、起動時に与えた固定的な制御プログラムを提供す
るだけでは、十分に対応できない制御機器も登場してき
ている。 ・プログラミングインターフェースの柔軟性 従来の計算機システムの枠組の中では、センサやアクチ
ュエータなどデバイスの制御を入出力あるいは周辺機器
操作として扱っており、オペレーティングシステムの専
用化された機能として抽象化していた。つまり、極めて
固定的なインターフェースを介した扱いしかサポートし
ていなかった。このため、このインターフェースを介し
たソフトウェアの開発も、柔軟性に欠ける発見的な手法
によって対処されてきたという問題がある。
【0007】本発明は上記従来例に鑑みてなされたもの
であって、高速であり、さまざまな条件に応じてプログ
ラムコードの全体あるいは一部を入れ換えることが可能
な柔軟な構造であり、大量のプログラムコードを矛盾な
く利用することができ、また、多様なデバイスをドライ
ブするソフトウェアの管理を簡素化できるソフトウエア
資源利用方法およびそれを用いたシステムを提供するこ
とを目的とする。
【0008】
【課題を解決するための手段】本発明では、このような
問題に対して、実行時においても、個々の制御プロセッ
サに関して、振舞いを変えうる実行可能プログラムコー
ドを追加あるいは置換することを特徴とする。上記目的
を達成するために本発明のソフトウエア資源利用システ
ムは次のような構成から成る。すなわち、通信により接
続された管理装置と複数の処理装置とを含むソフトウエ
ア資源管理システムであって、複数の処理装置で扱われ
るデータを記憶する記憶手段と、該記憶手段により記憶
されたデータから処理装置で使用するデータを選択する
選択手段と、該選択手段により選択されたデータを所望
の処理装置に送りつける手段とを備える管理装置と、前
記管理装置の記憶手段にデータを登録する登録手段と、
前記管理装置より送りつけられたデータを格納する格納
手段と、該格納手段により格納されたデータを処理する
処理手段とを備えた複数の処理装置とを含む。
【0009】また、本発明のソフトウエア資源利用装置
は次のような構成から成る。すなわち、プログラムを記
憶する記憶手段と、該記憶手段により記憶されたプログ
ラムのうちから実行手段で実行するプログラムを選択す
る選択手段と、該選択手段により選択されたプログラム
を所望の実行手段に送りつける送付手段と、前記記憶手
段に、各実行手段で実行するプログラムを登録する登録
手段と、前記送付手段により送りつけられたプログラム
を格納する複数の格納手段と、該格納手段それぞれに格
納されたプログラムを、それぞれ実行する複数の実行手
段とを備える。
【0010】また、本発明のソフトウエア資源利用シス
テムは次のような構成から成る。すなわち、プログラム
をメモリに記憶する記憶工程と、該記憶工程により記憶
されたプログラムのうちから所望のプログラムを選択す
る選択工程と、前記記憶工程により記憶すべく、各実行
手段で実行するプログラムを登録する登録工程と、複数
のプログラムを格納する格納工程と、該格納工程により
格納された各プログラムを、それぞれ独立して実行する
実行工程とを備える。
【0011】
【作用】上記構成により、管理装置は処理装置が処理す
るソフトウエアの管理を行い、その状態に合わせてソフ
トウエアを処理装置に供給する。
【0012】
【第1実施例】まず、本発明の第1の実施例について、
図を用いて説明する。ここでは、ロボット制御など制御
用ソフトウェアを対象としたソフトウェア管理システム
について述べる。ここで述べるソフトウェア管理システ
ムとは、手続きなどひとまとまりのプログラムコード、
ならびに、構造化されたデータなどをデータベース等で
管理し、アプリケーションプログラム自身から切り離す
事により、プログラムコードの共有やプログラムの拡張
・修正を容易にする事を目的としたソフトウェアシステ
ムである。
【0013】これは、生物に例えた場合、脳に相当する
ソフトウェア管理モジュールが、神経系に相当するネッ
トワークあるいは計算機バスを介して、感覚器や手足に
相当するデバイスの制御プロセッサに、反射や条件反射
に相当する振舞いを指定するためのプログラムコードを
供給する事に相当する。このような応用に対しては、各
デバイスを制御する制御プロセッサの種類ごと、ならび
に、目的とする機能ごとのプログラムコードを集中的に
管理するソフトウェア管理システムと、それらのプログ
ラムコードをInjection 機構(以下では、『注入機構』
と呼ぶ)を用いて制御プロセッサへロードするアプロー
チが有効である。
【0014】すなわち、ソフトウェアのユーザ側である
デバイス制御モジュールには、プログラムコードの注入
を受けるだけの機能を用意しておき、制御プロセッサの
本質的な機能を担うプログラムコードは、状況に応じ
て、この注入機構を用いて実行時に供給する。さらにこ
の方法を利用して、デバイス制御モジュールの統計情報
(接続情報,実行累積時間)などのファクターにより、
デバイス制御モジュールに供給するプログラムコード、
すなわち、デバイス制御モジュールの振舞いを切替える
ことも可能である。
【0015】以下、まず本実施例を説明するための装置
の構成について説明し、次に、その動作手順について述
べる。 [1]構成図の説明 図1は本実施例のソフトウエア管理システムの構成図で
ある。また、図2は、図1におけるデバイス制御モジュ
ールを詳細に説明するための構成図である。
【0016】これらの図において、記号をつけた構成要
素の説明は、以下の通りである。図1において、101
は、本実施例上で動作するプログラムの利用者が、コマ
ンドやデータを入力するための入力装置で、キーボー
ド,マウス、あるいは,マイクなどである。102は、
本実施例のソフトウェア管理システムのプログラムを実
行するCPUである。
【0017】ソフトウェア管理を行なうプロセッサ10
2は、ユーザとのインターフェースなど他の処理を行な
う主CPUと同じであっても良いし、専用の装置(モジ
ュール)であっても良い。また、ソフトウェア管理を行
なうプロセッサは、プログラム可能であっても、専用プ
ロセッサであっても良い。103は、本実施例のプログ
ラムの実行結果を表示するための出力装置で、CRTデ
ィスプレイやプリンタ、あるいはスピーカなどである。
【0018】104は、本実施例上で動作するプログラ
ム、および、その処理に必要なデータを記憶するための
記憶装置である。106は、ソフトウェア管理モジュー
ルの構成要素101,102,103,104を結合す
る計算機バスである。107は、プログラムコードの注
入機構のソフトウェア管理モジュール側プログラムであ
る。このプログラムには、クレームにおける通信手段と
組み込み手段の一部とが含まれる。
【0019】108は、実行可能なプログラムコードを
記憶し管理するためのプログラム管理データベースであ
る。ここでは、説明を簡潔にするため、プログラム管理
データベースを1つとしているが、同様なプログラム管
理データベースが同時に複数存在してもよい。109
は、ソフトウェア管理モジュールにおいてデータベース
に蓄積されたデバイス制御プログラム群である。
【0020】110は、ソフトウェア管理モジュールの
プログラムである。このプログラムには、クレームにお
ける登録手段と選択手段とが含まれる。21は、1つ目
のデバイス制御モジュール、22は、2つ目のデバイス
制御モジュールである。図2においては、202は、セ
ンサやアクチュエータを制御するための制御プロセッサ
である。この制御プロセッサ202とCPU102と
は、異なる命令セットを持っている場合を想定してい
る。
【0021】204は、センサやアクチュエータを制御
するための制御プログラム、および、その処理に必要な
データを記憶するための記憶装置である。これらの記憶
装置は、一時的に使われるデータを記憶する主記憶装置
と大量のデータを永続的に保持しておく二次記憶装置と
に分かれていても良い。また、装置の状態に関係なく永
続的なデータを保存するROMなど読み出し専用記憶装
置が含まれていても良い。
【0022】205は、制御プロセッサが制御している
センサあるいはアクチュエータなどのデバイスである。
一つの制御プロセッサが担当するデバイスの数は、2
つ、または、それ以上であっても良い。206は、デバ
イス制御モジュールの構成要素202,204,205
を結合する計算機バスである。
【0023】207は、注入機構のデバイス制御モジュ
ール側プログラム、すなわち、注入機構のインターフェ
ースライブラリである。この機構によって、プログラム
管理データベース中の実行可能なプログラムコードをデ
バイス制御モジュールと共有する。このプログラムに
は、クレームにおける通信手段と組み込み手段の一部と
置換手段と実行手段が含まれる。
【0024】209は、デバイス制御モジュールに供給
されたデバイス制御プログラムである。306は、ソフ
トウェア管理モジュールとデバイス制御モジュールを結
合するネットワークである。データやプログラムコード
の注入、あるいは制御の為の通信などはネットワーク3
06を介して行われる。
【0025】ここでは、説明を簡潔にするため、各モジ
ュール内は、独立な計算機バスで結ばれ、それらをネッ
トワークで結合しているものとする。しかし、それぞれ
の構成要素が同一の計算機バスに結合されていても良
い。本実施例では、説明を簡潔にするために、ソフトウ
ェア管理システムが、一つのデバイス制御モジュールを
相当する例について述べる。しかし、ソフトウェア管理
システムが相当するデバイス制御モジュールの数は、2
つ、または、それ以上であっても良い。
【0026】また、逆に、一つのデバイス制御モジュー
ルが、協調動作する複数のソフトウェア管理システムか
らプログラムコードの供給を受ける環境も考えうる。 [2]動作手順の概要 次に、本実施例における装置の動作手順についての概要
を述べ、次に詳細な動作を説明する。
【0027】まず図3は、上記システム上で動作するデ
バイス制御モジュールおよびソフトウェア管理モジュー
ルの間でおこなわれる処理の手順を表したものである。
各ステップを順に説明する。 (S1001)各デバイス制御モジュールが、制御モジ
ュール登録手段によって、デバイス制御モジュール自身
をソフトウェア管理モジュールに登録する。この際に、
各デバイス制御モジュールは、制御プロセッサの種類,
配置場所、その機能、および、実行時の様々な状況など
から成る付加情報を提供しても良い。
【0028】各デバイス制御モジュールにおける、この
登録手段は、ブート時に実行されるROMなどに記述さ
れても良いし、通常のソフトウェアとしてロードされて
実行されても良い。 (S1002)次に、各制御用プロセッサでは、ソフト
ウェア管理モジュールからのプログラムコードの供給を
受け取り可能な状態にしておく。
【0029】各デバイス制御モジュールにおける、この
プログラムコード受け入れ手段は、ブート時に実行され
るROMなどに記述されても良いし、通常のソフトウェ
アとしてロードされて実行されても良い。 (S1003)一方、ソフトウェア管理モジュールで
は、プログラムコード選択手段によって、各デバイスモ
ジュールの状況(プロセッサの種類,結合トポロジ、お
よび、プロセッサの状態など)を判断して、最適なプロ
グラムコードを選択する。
【0030】(S1004)次に、プログラムコード注
入手段により、選択したプログラムコードを対象となる
デバイス制御モジュールに供給する。 (S1005)デバイス制御モジュールでは、必要に応
じてスケジューリングを行ないながら、ソフトウェア管
理モジュールから供給された実行可能なプログラムコー
ドを実行する。
【0031】ここでは、説明を簡単にするために、注入
機構の実現に、ソフトウェア管理モジュールとデバイス
制御モジュールとの間の共有メモリを用いた例について
説明する。これは、ハードウェアの配線レベルで物理的
に共有されている共有メモリでも良いし、ネットワーク
上に分散した環境下で、ソフトウェアによって実現され
る論理的な共有メモリであっても良い。
【0032】以下では、上記の動作手順の概要で参照し
た各手段(すなわち各ステップ)の動作をフローチャー
トを用いて説明する。 [3]制御モジュール登録手段 図4は、ソフトウェア管理モジュールにおけるデバイス
制御モジュールの登録手段の処理手順を示したものであ
る。
【0033】(S2001)デバイス制御モジュールに
おいて、制御プロセッサの種類,配置場所の識別子,接
続されたデバイス、および、現在の利用状況(status)な
どの情報を収集する。 (S2002)収集した情報を、例えば表1のようなデ
ータ構造にまとめる。ここでは、説明を簡単にするため
に、各デバイス制御モジュールには、識別子が与えられ
ているものとする。
【0034】(S2003)収集した情報のデータ構造
を、ソフトウェア管理モジュールに転送する。 (S2004)ソフトウェア管理モジュールにおいて、
受け取ったデータ構造から必要な情報を取り出し、図9
として示したデバイス制御モジュール管理表120に登
録する。
【0035】管理表120は表1に例として示したデー
タの集まりであり、ソフトウェア管理モジュール内で利
用される。
【0036】
【表1】 [4]プログラムコード選択手段 図5は、ソフトウェア管理モジュールにおけるプログラ
ムコード選択手段の処理手順を示したものである。
【0037】(S3001)ソフトウェア管理モジュー
ルでは、管理表120に登録されたデバイス制御モジュ
ールの中から、指定された条件を満たすモジュールを選
び出す。本実施例では、ネットワーク上で最もソフトウ
ェア管理モジュールに近い熱源センサ用のデバイス制御
モジュールが求められたと想定して、接続されたデバイ
スの機能情報と配置情報を使って該当するモジュールを
選び出す。
【0038】(S3002)該当したデバイス制御モジ
ュールに関する制御プロセッサの種類や接続されたデバ
イスの情報を管理表120から取り出す。 (S3003)取り出した情報に基づいて、プログラム
管理データベース108から、適切なプログラムコード
を選択する。この場合、必要に応じて適切なデータベー
ス問い合わせを合成する。たとえば、制御プロセッサの
種類がR3600であり、かつ、接続されたデバイス
が、3本指型マニピュレータであれば、R3600で実
行可能な3本指型マニピュレータ操作用プログラムコー
ドを選択する。
【0039】[5]プログラムコード注入手段 図6は、ソフトウェア管理モジュールにおけるプログラ
ム注入手段の処理手順を示したものである。 (S4001)ソフトウェア管理モジュールで、デバイ
ス制御モジュールとの間に共有される領域を用意する。
この領域の共有については、物理的な配線レベルでの共
有であっても良いし、オペレーティングシステムあるい
は独自のソフトウェアで提供される論理的なものであっ
ても良い。
【0040】(S4002)ソフトウェア管理モジュー
ルは、選択したプログラムコードを、デバイス制御モジ
ュールとの間に共有される領域に追加する。ここでは、
プログラムコードの注入について述べたが、同様のイン
ターフェースを用いて、データを注入することも容易に
想像できる。 [6]プログラムコード受け入れ手段 図7は、デバイス制御モジュールにおけるプログラムコ
ード受け入れ手段、すなわちデバイス制御モジュール側
のプログラムコード注入手段の受け入れインターフェー
スの処理手順を示したものである。
【0041】(S5001)デバイス制御モジュールで
は、ソフトウェア管理モジュールのプログラムコード注
入手段に対するインターフェースを、予めライブラリと
して組み込んでおく。 (S5002)組み込まれたインターフェースを用い
て、共有される領域におかれたプログラムコードを読み
込む。
【0042】(S5003)必要に応じて、ダイナミッ
クリンキングローディングなどすることにより、供給さ
れたプログラムコードを、デバイス制御モジュール内に
組み込み実行可能な状態にする。また、必要に応じて、
既存のプログラムコードと読み込まれたプログラムコー
ドとを置き換えても良い。
【0043】(S5004)組み込まれたプログラムコ
ードを、プロセスあるいはスレッドなどの単位としてス
ケジューリングの対象にして、後の実行に備える。この
際、与えられたプログラムコードが複数であるならば、
それらを並行制御することになる。以上のように、デバ
イス制御用プロセッサを対象とした注入機構の実現を行
なうことにより、本実施例のシステムでは、以下のよう
な効果を得ることができる。
【0044】すなわち、ソフトウェア管理システムから
提供された最適なプログラムコードをデバイス制御モジ
ュールが選択出来るため、一定時間内に処理の終了を要
求される、使用メモリの大きさが制限されている、ある
いは、エラー時に大がかりな例外処理をおこなう必要が
あるなど、状況によって変化する要求を満たす事が可能
となる。
【0045】しかも、ソフトウェア管理システムがもつ
プログラムコード管理データベースは、デバイス制御モ
ジュールとは、独立に内容を追加更新できるため、デバ
イス制御モジュールを変更することなく、より適切なプ
ログラムコードを利用することが可能である。また、同
様の理由から、デバイス制御用のプログラムは、実行可
能なプログラムコードばかりではなく、プログラムのソ
ースコードを管理する事も考えられる。これによって、
必要時に要求に応じてコンパイルないし解釈実行するこ
とにより、予め想定していないCPUも含めて、さまざ
まなCPUに対応することができる。
【0046】また、従来は、すべての制御プロセッサを
ブート時に初期化していたが、本実施例のシステムによ
る実行時のプログラムコード注入機構を利用することに
より、必ずしも、すべての制御プロセッサを初期化する
必要はないという特徴をもつ。この特徴は、高機能ロボ
ットなどのように膨大な数の制御プロセッサが組み合わ
される場合に有効である。
【0047】本実施例では、各種デバイスを制御する制
御プロセッサに関する実施例について説明したが、ソフ
トウェア管理システムのクライアントになるのは、各種
OA機器や通信機器であっても良い。また、分散環境下
において実時間実行を求められるオンラインシステムへ
の適用も考えられる。本実施例で説明した制御用プログ
ラムでは、一般のプログラム同様プログラムコード内の
条件判定などにより振舞いを切替えることも可能である
が、プログラムコードそのものを入れ替えてしまうこと
で、より高速の振舞いの切り替えが可能になる。
【0048】ここでは、ソフトウェア管理モジュールか
らのプログラムコード注入は、デバイス制御モジュール
側で何のチェックもなしに受け入れる例について説明し
たが、必要に応じて、ライセンス制御機能や認証機構を
導入しても良い。また、注入されている、あるいは実行
されているプログラムはそのプログラムを提供している
側の判断により進行中の処理を中断させることもでき
る。
【0049】
【第2実施例】 <ソフトウェアの実行時配布方法>以下、本発明の第2
の実施例について説明する。本実施例は、実施例1と同
様、複数の異機種プロセッサで構成されるシステムが、
その異機種分散環境で協調して処理を進めて行く処理形
態の実現方法に関する。
【0050】とくに、システムの実行時にソフトウェア
管理システム側の判断で、プログラムやデータなどのソ
フトウェア資源を差し替えたり、追加したりする実行時
ソフトウェア配布方法に関する。 [10]ソフトウェア配布についての従来技術 従来、商用アプリケーションソフトウェアを配布する場
合、計算機のソフトウェアプラットフォームとなるオペ
レーティングシステムやCPUアーキテクチャなどの違
いから、それぞれのプラットフォームに適合したアプリ
ケーションを個別に用意し、ばらばらに配布していた。
【0051】例えば、UNIX環境用に作成されたひと
つのDTPソフトウェアであっても、命令セット(CP
Uアーキテクチャ)が、相異なるアーキテクチャの計算
機においては、それぞれ異なったオブジェクトコードを
用意する必要があった。データベースシステムは、これ
らアーキテクチャの垣根を越えた異機種分散環境下での
データ共有を可能にしたが、実行可能なプログラムコー
ドの共有には、貢献していない。
【0052】一方、このように異なったアーキテクチャ
にソフトウェアをリリースする要求に関して、「fat bi
naries」などの技術が考案されている。これは、個別の
アーキテクチャの各命令セットで記述された複数の実行
可能なプログラムコードを1つのプログラムモジュール
にまとめ、起動時に適宜最適な命令セットで記述された
プログラムコードを選択して、処理を行なう機構であ
る。
【0053】また、同じ機能を持ったプログラムコード
を共有するための機種として、「共有ライブラリ」があ
る。これは、複数のプログラムで共通に使用される可能
性のある機能モジュールを1つないし数個のファイルに
まとめ(これをライブラリと呼ぶ)、各プログラムが実
行時にそのファイル内の手続きを呼び出し、実行するこ
とができるようになっている。この方法を用いること
で、共通に利用されるいくつかのプログラムコードを重
複して保持する必要がなくなるため、ソフトウェアシス
テム全体の肥大化を解消することができる。
【0054】[11]機器制御分野における課題 しかしながら、ロボット制御など実時間制約の強いソフ
トウェアでは、上記例のようなソフトウェア配布方式を
利用することができない。これは、以下の理由による。 ・貧弱なメモリ資源しか持たない制御用ハードウェアで
は、“fat binaries”のように余分なメモリを消費する
手法は、実現上現実的ではない。
【0055】・個々の制御用ソフトウェアは、比較的単
純な機能なのみを実現しているため、「共有ライブラ
リ」が解決の対象としている状況(プログラムコードの
共有により回避可能なソフトウェアシステムの肥大化)
は発生し難い。 ・実時間制約が強いため、CPUサイクルを無駄にでき
ない。このことは、実行オーバヘッドの削除を要する。
つまり、各制御プロセッサに最適な、冗長性のないプロ
グラムコードの利用を必要とする。
【0056】また、ソフトウェア製品を配布する際の要
求として、以下に挙げられる要求や問題点がある。 ・アプリケーションの利用をネットワーク上の特定の計
算機やユーザ、あるいは、特定の状況に限定したような
利用形態の実現、 ・実行時のさまざまな利用状況に応じた課金方式の実現 ・共有ライブラリが提供する機能はプログラムの作成時
に決定可能なプログラムコードの共有をサポートするた
めの機構であり、実行時の状況によって動的に変化する
共有問題に対応することができない。
【0057】これらの問題点は、従来の方法では、ひと
たび配布が行なわれてしまうと、その配布されたソフト
ウェアの振舞いを変更するのが難しかったことに原因が
ある。以下、本実施例では、これらの点を解消する例に
ついて述べる。 [12]実行時ソフトウェア配布方式の実施例 実施例1と同じ構成で、同様の操作を進めるが、単純な
ソフトウェア管理システムと比べて、プログラムコード
選択手段の手順を拡張している。
【0058】つまり、選択手段において、「感覚器とな
るセンサを2つ以上装備し、かつ、充分負荷の軽いデバ
イス制御モジュールからの要求のみが妥当である」と判
断する例について説明する。 [13]認証付プログラムコード選択手段 図8は、実行時ソフトウェア配布方式を実施する場合の
ソフトウェア管理モジュールにおけるプログラムコード
選択手段の処理手順を示したものである。本実施例のシ
ステムでは、図3のフローチャートにおけるステップS
1003を、図8のフローチャートの処理手順に置き換
えて実行するものである。
【0059】(S8001)ソフトウェア管理モジュー
ルでは、管理表120に置かれたデバイス制御モジュー
ルの中から指定された条件を満たすモジュールを取り出
す。例えば、ネットワーク上で最もソフトウェア管理モ
ジュールに近い温度センサ用のデバイス制御モジュール
が求められた場合には、接続されたデバイスの機能情報
と配置情報を使って該当するモジュールを取り出す。
【0060】(S8002)該当したデバイス制御モジ
ュールに関する、制御プロセッサの種類や接続されたデ
バイスの情報を管理表120から取り出す。 (S8003)取り出した情報に基づいて、妥当性テス
ト手段により、プログラムコード注入の正当性を確認す
る。 (S8004)正当な処理でないならば、例外処理を発
生するプログラムコードを選択する。典型的には、例外
シグナルをレイズする命令を先頭に埋めたプログラムコ
ードを選択する。
【0061】(S8005)正当な処理であれば、取り
出した情報に基づいて、プログラム管理データベース1
08から、適切なプログラムコードを選択する。この場
合、必要に応じて適切なデータベース問い合わせを合成
する。ここでは、ソフトウェア管理モジュール側で妥当
性テストを行なう例について述べたが、妥当性テストを
デバイス制御モジュール側で行なうようなプログラムコ
ードを注入用に選択することも容易に想像できる。
【0062】さらに、デバイス制御モジュール側で行な
う妥当性テストの起動タイミングをデバイスからの特定
の信号の入力に同期させるようなプログラムコードを注
入用に選択することも可能である。 [14]妥当性テスト手段 実行の正当性を確認するための妥当性テスト手段は、以
下のように実現される。
【0063】提供されたデバイス制御モジュールの付加
情報から、2つ以上のセンサデバイスをドライブ可能で
あり、かつ、制御プロセッサの実行負荷が規定のスレッ
ショールドtよりも低いようなデバイス制御モジュール
のみの妥当性を認める。この他にも、利用者数や利用デ
バイスの種類,性能などによって仕様制限を設けたり、
対象プロセッサの種類をファクターとして妥当性テスト
行なうなどが考えられる。また、この妥当性テストの判
断基準をソフトウェア管理モジュールの実行内容により
変更することも考えられる。
【0064】また、ここでは妥当性の判断により制約を
加える例について述べたが、同様の手順により課金を行
なうものであっても良い。さらに、本発明は、複数の機
器から構成されるシステムに適用しても、1つの機器か
ら成る装置に適用しても良い。また、本発明はシステム
或は装置にプログラムを供給することによって達成され
る場合にも適用できることは言うまでもない。
【0065】以上のような手順に従って、認証されたプ
ログラムに限って選択することで、次のような効果を得
ることができる。 ・貧弱なメモリ資源しか持たない制御用ハードウェアに
おいても、余分なメモリを消費せずにプログラムを配布
できる。 ・実時間制約が強くとも、実行前に認証することで、そ
れらの制約をクリアしたプログラムコードを実行させる
ことができる。
【0066】・アプリケーションの利用をネットワーク
上の特定の計算機やユーザ、あるいは、特定の状況に限
定したような利用形態を実現することができる。 ・実行時のさまざまな利用状況に応じた課金方式を実現
することができる。 ・実行時の状況によって動的に変化する共有問題に対応
することができる。 なお、本実施例では、制御プロセッサ用ソフトウェアの
配布方式について述べたが、実行時の判断を要する一般
のソフトウェアの配布方式に適用することも容易に想像
できる。
【0067】
【発明の効果】以上説明したように、本発明に係るソフ
トウエア資源利用方法およびそれを用いたシステムは以
下の効果を提供できる。すなわち、 ・高速性 さまざまな条件により、プログラムコードの全体あるい
は一部を入れ換えることが可能なため、不要なプログラ
ムコードを極力排除可能である。これは、実時間制約の
もとでの実行を必要とするロボット制御などデバイス制
御ソフトウェアに、特に効果がある。
【0068】・柔軟性 各種ソフトウェアの利用環境として一般的になりつつあ
る異機種分散環境に対応するために、それぞれのプログ
ラムコードを一貫して管理しているので、大量のプログ
ラムコードを矛盾なく利用することができる。周辺デバ
イスについても一般のプログラムと同様の管理手法を取
ることができる。これは、多様なデバイスをドライブす
るソフトウェアの管理簡素化に有効である。
【0069】・知的な振舞い制御の局所化 1つのデバイス制御モジュールにセンサとアクチュエー
タの両方が、1つまたはそれ以上接続されており、セン
サの入力に応じて適切にアクチュエータを動作させるな
どのように処理が局所化される場合、つまり、デバイス
制御モジュールによる知的な振舞いを要する場合におい
て、その振舞いを状況に応じて様々に変化させるために
有効である。
【図面の簡単な説明】
【図1】本発明における第1の実施例を説明するための
構成図である。
【図2】デバイス制御モジュールを説明するための構成
図である。
【図3】第1実施例の処理の概要を説明するためのフロ
ーチャートである。
【図4】第1実施例の制御モジュール登録処理を説明す
るためのフローチャートである。
【図5】第1実施例のプログラムコード選択処理を説明
するためのフローチャートである。
【図6】第1実施例のプログラムコード注入処理を説明
するためのフローチャートである。
【図7】第1実施例のプログラムコード受け入れ処理を
説明するためのフローチャートである。
【図8】第2実施例の認証付プログラムコード選択処理
を説明するためのフローチャートである。
【図9】デバイス制御モジュール管理表120の一例を
示す図である。
【符号の説明】
101 利用者がコマンドやデータを入力するための入
力装置 102 プログラムを実行するCPU 103 実行結果を表示するための出力装置 104 プログラムおよびデータを記憶するための記憶
装置 106 構成要素101,102,103,104を結
合する計算機バス 306 ネットワーク 21 一つ目のデバイス制御モジュール 22 二つ目のデバイス制御モジュール
───────────────────────────────────────────────────── フロントページの続き (72)発明者 柴山 茂樹 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 通信により接続された管理装置と複数の
    処理装置とを含むソフトウエア資源管理システムであっ
    て、 複数の処理装置で扱われるデータを記憶する記憶手段
    と、 該記憶手段により記憶されたデータから処理装置で使用
    するデータを選択する選択手段と、 該選択手段により選択されたデータを所望の処理装置に
    送りつける手段とを備える管理装置と、 前記管理装置の記憶手段にデータを登録する登録手段
    と、 前記管理装置より送りつけられたデータを格納する格納
    手段と、 該格納手段により格納されたデータを処理する処理手段
    とを備えた複数の処理装置と、を含むことを特徴とする
    ソフトウエア資源利用システム。
  2. 【請求項2】 前記処理装置の格納手段は、既に格納さ
    れているプログラムの一部あるいは全部を、送りつけら
    れたプログラムで置き換えることを特徴とする請求項1
    記載のソフトウェア資源利用システム。
  3. 【請求項3】 前記データは前記処理装置の処理手段に
    より実行されるプログラムコードであることを特徴とす
    る請求項1記載のソフトウェア資源利用システム。
  4. 【請求項4】 前記処理装置は、前記管理装置から送り
    つけられたデータを認証する認証手段を更に備えること
    を特徴とする請求項1ないし3いずれかに記載のソフト
    ウェア資源利用システム。
  5. 【請求項5】 前記選択手段は、前記処理装置の構成に
    応じた選択を行なうことを特徴とする請求項1記載のソ
    フトウェア資源利用システム。
  6. 【請求項6】 前記選択手段は、前記処理手段がプログ
    ラムを実行する際の状態に応じて選択することを特徴と
    する請求項3記載のソフトウェア資源利用システム。
  7. 【請求項7】 前記複数の処理手段は、互いに異なる構
    成であることを特徴とする請求項1または請求項3記載
    のソフトウェア資源利用システム。
  8. 【請求項8】 前記管理装置の記憶手段はデータベース
    であり、該データベースに登録されたデータを管理する
    ためのデータベース管理手段を有することを特徴とする
    請求項1または請求項3記載のソフトウェア資源利用シ
    ステム。
  9. 【請求項9】 前記複数の処理装置の記憶手段は、互い
    に共有するメモリ領域を有することを特徴とする請求項
    1または請求項3ソフトウェア資源利用システム。
  10. 【請求項10】 前記共有するメモリ領域は、仮想的な
    共有領域を提供するソフトウェアにより提供されること
    を特徴とする請求項9記載のソフトウェア資源利用シス
    テム。
  11. 【請求項11】 前記共有するメモリ領域は、ハードウ
    ェアの配線により提供されることを特徴とする請求項9
    記載のソフトウェア資源利用システム。
  12. 【請求項12】 前記処理装置により実行されるプログ
    ラムは、実時間処理されるプログラムであることを特徴
    とする請求項3記載のソフトウェア資源利用システム。
  13. 【請求項13】 前記処理手段は処理装置毎に異なるア
    ーキテクチャのプロセッサであり、前記プログラムは前
    記プロセッサ上で実行されることを特徴とする請求項3
    記載のソフトウェア資源利用システム。
  14. 【請求項14】 前記プログラムは、オンライントラン
    ザクションシステムのクライアントであることを特徴と
    する請求項12記載のソフトウェア資源利用システム。
  15. 【請求項15】 前記プログラムは、OA機器の制御プ
    ログラムであることを特徴とする請求項12記載のソフ
    トウェア資源利用システム。
  16. 【請求項16】 前記プログラムは、商用ソフトウェア
    の配布サーバであることを特徴とする請求項12記載の
    ソフトウェア資源利用システム。
  17. 【請求項17】 プログラムを記憶する記憶手段と、 該記憶手段により記憶されたプログラムのうちから実行
    手段で実行するプログラムを選択する選択手段と、 該選択手段により選択されたプログラムを所望の実行手
    段に送りつける送付手段と、 前記記憶手段に、各実行手段で実行するプログラムを登
    録する登録手段と、 前記送付手段により送りつけられたプログラムを格納す
    る複数の格納手段と、 該格納手段それぞれに格納されたプログラムを、それぞ
    れ実行する複数の実行手段と、を備えることを特徴とす
    るソフトウエア資源利用装置。
  18. 【請求項18】 プログラムをメモリに記憶する記憶工
    程と、 該記憶工程により記憶されたプログラムのうちから所望
    のプログラムを選択する選択工程と、 前記記憶工程により記憶すべく、各実行手段で実行する
    プログラムを登録する登録工程と、 複数のプログラムを格納する格納工程と、 該格納工程により格納された各プログラムを、それぞれ
    独立して実行する実行工程と、を備えることを特徴とす
    るソフトウエア資源利用方法。
JP6055528A 1994-03-25 1994-03-25 ソフトウェア資源利用方法およびそれを用いたシステム Pending JPH07262141A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6055528A JPH07262141A (ja) 1994-03-25 1994-03-25 ソフトウェア資源利用方法およびそれを用いたシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6055528A JPH07262141A (ja) 1994-03-25 1994-03-25 ソフトウェア資源利用方法およびそれを用いたシステム

Publications (1)

Publication Number Publication Date
JPH07262141A true JPH07262141A (ja) 1995-10-13

Family

ID=13001236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6055528A Pending JPH07262141A (ja) 1994-03-25 1994-03-25 ソフトウェア資源利用方法およびそれを用いたシステム

Country Status (1)

Country Link
JP (1) JPH07262141A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8477328B2 (en) 2007-09-26 2013-07-02 Seiko Epson Corporation Function-providing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8477328B2 (en) 2007-09-26 2013-07-02 Seiko Epson Corporation Function-providing system

Similar Documents

Publication Publication Date Title
US6434594B1 (en) Virtual processing network enabler
US5867716A (en) Distributed computer system and method of generating automatic operation schedule for the same
US7933882B2 (en) Dynamic cluster database architecture
Deelman et al. Pegasus: A framework for mapping complex scientific workflows onto distributed systems
US5506999A (en) Event driven blackboard processing system that provides dynamic load balancing and shared data between knowledge source processors
US7506335B1 (en) Method and apparatus for software loading and initialization in a distributed network
CN104615487B (zh) 并行任务优化***和方法
JP5239739B2 (ja) プリント基板配線処理装置、プリント基板配線処理プログラム、プリント基板配線処理方法
JP2008123412A (ja) 計算機システム、システムソフトウェア更新方法及び第1サーバ装置
US5894573A (en) Program controlling method having transfer of code and data among programs and apparatus therefor
JPH07262141A (ja) ソフトウェア資源利用方法およびそれを用いたシステム
Goldenberg et al. TrellisDAG: A system for structured DAG scheduling
US7159012B2 (en) Computational data processing system and computational process implemented by means of such a system
JP2001265726A (ja) コンピュータ作業負荷の高速リカバリおよび再配置を可能にする自動化アプリケーションおよび手順
JP4392490B2 (ja) コンポーネントバスシステム及びコンポーネントバス用プログラム
JP2002244892A (ja) ベンチマーク実施方法
US5812846A (en) Method and apparatus for passing control from a first process to a second process
US20070225963A1 (en) Method to Process Instruction Requests for a Digital Hardware Simulator and Instruction Request Broker
JP2009026292A (ja) データ分配方法、データ分配プログラム、及び並列データベースシステム
JP3083575B2 (ja) マルチタスク制御方法および制御装置
JPH0275052A (ja) アプリケーションプログラム管理方式
JPH01222335A (ja) マルチタスク処理方式
Liu Cloud-bursting and autoscaling for Python-native scientific workflows
Ray Experiences with a script-based software configuration management system
JP3954298B2 (ja) 情報処理装置におけるジョブのライセンス管理方法及びライセンス管理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040528

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040727

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040810

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040903