JP2007156987A - ソフトウェア部品およびソフトウェア部品管理システム - Google Patents

ソフトウェア部品およびソフトウェア部品管理システム Download PDF

Info

Publication number
JP2007156987A
JP2007156987A JP2005353741A JP2005353741A JP2007156987A JP 2007156987 A JP2007156987 A JP 2007156987A JP 2005353741 A JP2005353741 A JP 2005353741A JP 2005353741 A JP2005353741 A JP 2005353741A JP 2007156987 A JP2007156987 A JP 2007156987A
Authority
JP
Japan
Prior art keywords
component
software
identification information
software component
transmission step
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
JP2005353741A
Other languages
English (en)
Inventor
Nobuyuki Ikeda
信之 池田
Yoshihiro Takahashi
佳宏 高橋
Hirotaka Totani
浩隆 戸谷
Katsumasa Jin
勝雅 神
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2005353741A priority Critical patent/JP2007156987A/ja
Priority to US11/468,129 priority patent/US7934196B2/en
Priority to CNA200610128019XA priority patent/CN1979413A/zh
Publication of JP2007156987A publication Critical patent/JP2007156987A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ソフトウェア部品の管理者側に管理情報や利用情報を確実かつリアルタイムに通知することによって、ソフトウェア開発の効率を向上させることができると供に、不正な使用を排除することができるソフトウェア部品を提供する。
【解決手段】本発明に係るソフトウェア部品は、管理部門から払い出しを受けるソフトウェア部品であり、かつ1以上のソフトウェアモジュールを含むソフトウェア部品において、ソフトウェアモジュールが実行されるときに本ソフトウェア部品を識別する部品識別情報を外部の部品管理サーバに送信する部品識別情報送信ステップと、ソフトウェアモジュールが実行されるときに本ソフトウェア部品が実行されるコンピュータを識別する機器識別情報を部品管理サーバに送信する機器識別情報送信ステップと、をコンピュータに実行させることを特徴とする。
【選択図】 図3

Description

本発明は、ソフトウェア部品およびソフトウェア部品管理システムに係り、特に、各種のアプリケーションソフトウェアに「部品」として使用されるソフトウェア部品、およびソフトウェア部品を管理するソフトウェア部品管理システムに関する。
今日、ソフトウェアの開発形態として、適宜の単位で分割されたソフトウェアを部品として取り扱い(以下、この分割されたソフトウェアをソフトウェア部品という)、開発済みのソフトウェア部品を複数組み合わせることによって、新たなソフトウェアを効率良く開発する形態が多く用いられている。
このような開発形態においては、ソフトウェア部品の正しい利用方法を管理者が利用者に的確に伝えることが必要となる。また、ソフトウェア部品を用いて開発をする際に、発生した不具合等に迅速に対応するためには、ソフトウェア部品の利用状況を利用者が正確に管理者に伝え、管理者が正確に把握することが重要である。
ここで、ソフトウェア部品の「管理者」とは、ソフトウェア部品の払い出し、利用状況の把握、バージョン管理、不具合や拡張についての情報収集とその通知、適用支援といった管理作業を行う作業者のことをいう。
また、ソフトウェア部品の「利用者」とは、ソフトウェア部品を利用してアプリケーションソフトウェアを開発する作業者のことをいう。アプリケーションソフトウェアを利用する立場のエンドユーザも、アプリケーションソフトウェアを利用することで間接的にソフトウェア部品を利用することになるが、ここではエンドユーザはソフトウェア部品の「利用者」には含まれないものとする。
特許文献1には、ソフトウェア部品の利用形態に関連する技術が開示されている。特許文献1が開示する技術は、電子機器が具備するソフトウェア部品に、例えば視覚表示可能な情報を付加し、この情報に基づいて電子機器の動作状況を電子機器自体の表示部や外部のコンピュータでモニタしようとするものである。
特開平11−327962号公報
ソフトウェアを部品化し製品開発で利用する開発形態では、部品の管理者にとって、ソフトウェア部品の払出し管理が重要な課題となっている。即ち、払出し管理では、正しい利用者が正しい開発対象で部品を利用しているかどうか、また、部品の不具合や拡張についての情報を必要なときに通知するためにどの部品をどの利用者が利用しているかを管理者が把握する必要ある。
人間系での払出し管理では、部品を受け渡した後に実際にどのように利用されているかを把握するには限界がある。即ち、例えば利用者が誤って、または故意に本来の適用対象でない開発に適用し、或いは、譲渡するなどしても、管理者がすべての開発のソースコードやリンク情報を検査することはできないため、このような管理者の意に反する利用を確実に発見することは事実上困難である。
特許文献1が開示する技術は、電子機器の動作シーケンスや動作の異常の有無をモニタすることを目的とするものであり、ソフトウェア部品の払い出し管理に適用できる技術ではない。
本発明は、上記事情に鑑みてなされたもので、ソフトウェア部品の払い出し元の管理者側にソフトウェア部品の管理情報や利用情報を確実かつリアルタイムに通知することによって、適切なソフトウェア部品の利用促進を図りソフトウェア開発の効率を向上させることができると供に、ソフトウェア部品の不正な使用を排除することができるソフトウェア部品およびソフトウェア部品管理システムを提供することを目的とする。
上記課題を解決するため、本発明に係るソフトウェア部品は、請求項1に記載したように、管理部門から払い出しを受けるソフトウェア部品であり、かつ1以上のソフトウェアモジュールを含むソフトウェア部品において、前記ソフトウェアモジュールが実行されるときに、本ソフトウェア部品を識別する部品識別情報を外部の部品管理サーバに送信する部品識別情報送信ステップと、前記ソフトウェアモジュールが実行されるときに、本ソフトウェア部品が実行されるコンピュータを識別する機器識別情報を前記部品管理サーバに送信する機器識別情報送信ステップと、をコンピュータに実行させることを特徴とする。
また、上記課題を解決するため、本発明に係るソフトウェア部品管理システムは、請求項10に記載したように、ソフトウェア部品の管理部門から払い出しを受けたソフトウェア部品を組み込んでアプリケーションソフトウェアを開発する、或いは開発した前記アプリケーションソフトウェアを使用する部品利用端末と、前記部品利用端末と電気通信回線を介して接続され、前記部品利用端末から少なくとも前記ソフトウェア部品を識別する部品識別情報と、前記部品利用端末を識別する機器識別情報とを受信する部品管理サーバと、を備え、1以上のソフトウェアモジュールを含む前記ソフトウェア部品は、前記ソフトウェアモジュールが実行されるときに、前記ソフトウェア部品を識別する部品識別情報を前記部品管理サーバに送信する部品識別情報送信ステップと、前記ソフトウェアモジュールが実行されるときに、前記部品利用端末を識別する機器識別情報を前記部品管理サーバに送信する機器識別情報送信ステップと、を前記部品管理端末に実行させることを特徴とする。
本発明に係るソフトウェア部品およびソフトウェア部品管理システムによれば、ソフトウェア部品の払い出し元の管理者側にソフトウェア部品の管理情報や利用情報を確実かつリアルタイムに通知することによって、適切なソフトウェア部品の利用促進を図りソフトウェア開発の効率を向上させることができると供に、ソフトウェア部品の不正な使用を排除することができる。
本発明に係るソフトウェア部品及びソフトウェア部品管理システムの実施形態について添付図面を参照して説明する。
(1)ソフトウェア部品管理システム
図1は、ソフトウェア部品管理システム1の一実施形態のシステム構成例を示す図である。
ソフトウェア部品管理システム1は、部品利用端末2と部品管理サーバ3とを備えて構成され、部品利用端末2と部品管理サーバ3とは相互に電気通信回線4を介して接続されている。
部品管理サーバ3は主にソフトウェア部品30の管理者側に配置されるサーバであり、部品利用端末2は主にソフトウェア部品30の利用者側に配置される端末装置である。
ソフトウェア部品30は、所定の機能単位で分割されたプログラムであり、一般に汎用性を有するプログラムの機能単位のことをいう。装置における部品のように、ソフトウェア部品30を組合せることによって、或いはソフトウェア部品30の組合せにさらに新たなソフトウェアを付加することによって、特定の機能を有する大きなソフトウェア(アプリケーションソフトウェア)を構築することができる。
ソフトウェア部品30は、汎用性を有し部品として利用できる限りにおいては、種類や規模を限定するものではない。例えば、所定のデータ構造を有するデータベースへのアクセスプログラムや、フーリエ解析プログラム等の汎用性を有するプログラムはソフトウェア部品30となりうる。
ソフトウェア部品の管理者は、各種のソフトウェア部品を保有し管理する者であり、ソフトウェア部品の利用者側の要求に応じてソフトウェア部品を払い出す。
ソフトウェア部品30の払い出しに際しては、ソフトウェア部品30の利用者、利用期間、利用する端末等について取り決めを行うことが一般的には行われる(以下、これらの取り決めに関する情報を利用契約情報という)。
また、払い出したソフトウェア部品30の利用状況を把握し、ソフトウェア部品30の不具合情報や拡張性に関する情報を該当するソフトウェア部品30を使用している利用者に迅速に通知する責任を持っている。
さらに、ソフトウェア部品30のバージョン管理を適正に行い、バージョン情報を利用者に通知することも重要な役割である。
他方、ソフトウェア部品30の利用者は、ソフトウェア部品30の管理者からソフトウェア部品30の払い出しを受け、払い出されたソフトウェア部品30を組み込んで新たなアプリケーションソフトウェア10を開発する者である。
アプリケーションソフトウェア10の開発は部品利用端末2を用いて行われる。部品利用端末2は特に限定するものではなく、例えば汎用のパーソナルコンピュータである。
図1には、部品利用端末2で開発されるアプリケーションソフトウェア10の基本構成例も併せて図示している。
アプリケーションソフトウェア10は、管理者から払い出しを受けたソフトウェア部品30、ソフトウェア部品30を利用するためのプログラムである部品利用ソフトウェア20、及び送信モジュール50を備えて構成される。
勿論、この構成以外に、利用者(アプリケーションソフトウェア10の開発者)が独自に開発したソフトウェア部品や、ソフトウェア部品を利用しない形態のソフトウェアを含んだ構成としてもよい。
ソフトウェア部品30は、所定の機能を実現する機能単位であり、例えば解析系のアプリケーションソフトウェア10の場合では、フーリエ変換機能を実現するソフトウェアユニットである。
これに対して、部品利用ソフトウェア20はソフトウェア部品30を利用するソフトウェアユニットである。上記の例で言えば、フーリエ変換機能を実現するソフトウェア部品30に対して時系列データを入力し、フーリエ変換された周波数データをソフトウェア部品30から受け取り、適宜加工、編集等を行うソフトウェアユニットということになる。
本実施形態では、各ソフトウェア部品30が発信コード40を備えており、また、これとは別に送信モジュール50を備えている。これらの点が本発明の特徴であり、また従来技術と異なる点である。
発信コード40は、アプリケーションソフトウェア10の実行時にソフトウェア部品30が呼び出されて起動したときに、起動したソフトウェア部品30に関する部品識別情報や利用契約情報等を部品管理サーバ3に対して自動的に発信するためのコード(プログラム)である。具体的には、これらの情報を一旦送信モジュール50に送り、送信モジュール50から電気通信回線を介して部品管理サーバ3に送信されることになる。
送信モジュール50は、発信コード40から受け取った情報を部品管理サーバ3に送信する他、自ら取得する機器識別情報も部品管理サーバ3に送信するためのプログラムユニットである。
この送信モジュール50も管理者側から払い出しを受けるものである。従って、ソフトウェア部品30を第1のソフトウェア部品とするならば、送信モジュール50は第2のソフトウェア部品ということができる。
機器識別情報は、部品利用端末2を識別する、例えばIPアドレスのような情報であり、ソフトウェア部品30の種類に依存しない共通の情報である。従って共通の情報は共通のソフトウェアユニットである送信モジュール50に情報取得の役目を担わせるという考え方である。
なお、ソフトウェア部品30の発信コード40が、部品識別情報および利用契約情報に加えて機器識別情報も併せて発信する形態としてもよい。この場合には、送信モジュール50は、発信コード40から受け取った情報をそのまま電気通信回線を介して部品管理サーバ3に送信する形態となる。
ソフトウェア部品30、或いは送信モジュール50は、利用者が内部を改変できない形態、即ちブラックボックス部品として提供する形態が好ましい。ソフトウェア部品30や送信モジュール50は、所定の機能を実現するソフトウェアユニットであり、利用者側は基本的にはその外部仕様が明確であれば利用可能なものである。逆に、不用意な改変をされると管理者側としては、払い出したソフトウェア部品30の品質を保証できなくなる。
また、本実施形態では、部品利用端末2から部品管理サーバ3に送られてくる部品識別情報、利用契約情報、および機器識別情報によって、ソフトウェア部品30の不正利用を発見することが可能であり、不正利用の排除は本実施形態の重要な効果の1つである。この観点からも、発信コード40等を故意に削除できないようにブラックボックス部品の形態で利用者に提供する形態が好ましい。
ブラックボックス部品の実現方法としては、例えば、ソフトウェア部品30や送信モジュール50をバイナリデータ形式とし、これを利用者に払いだす形態とすればよい。
他方、部品利用端末2からオンラインで送られてくる部品識別情報、利用契約情報、機器識別情報等の情報は、部品管理サーバ3で受信される。
部品管理サーバ3は、図1に例示したように、受信部31、表示部32、記録部33、指示入力部34等を備えて構成される。受信部31で入力された情報は、表示部32によってオンラインでモニタすることが可能であり、また、一旦記録部33に記録した後に、オフラインでモニタし、或いは分析することもできる。
管理者側では、これらの情報に基づいて、もし利用者が誤った方法でソフトウェア部品30を利用している場合にはタイムリーにそれを発見することが可能となる。この結果、利用者に対して、より適切な使用方法を提供することが可能となり、アプリケーションソフトウェア10の開発効率を向上させることができる。
また、利用者側でソフトウェア部品30の不正使用をしている場合には、利用契約情報や機器識別情報から不正使用事実を容易に発見できる。また、これに伴って不正使用を抑止する効果もある。
(2)ソフトウェア部品の構成及び動作
図2は、ソフトウェア部品30の構成例を示す図である。ソフトウェア部品30は、外部(部品利用ソフトウェア20)からの呼び出しを受けるためのメソッド呼出しインタフェース301と、メソッド呼出しインタフェース301が呼ばれた際に起動されるメソッドの実装コード303と、メソッドの実装コード303が起動する際に発信コード40を起動する発信コード呼出フックポイント302と、発信コード40とを有するグループを1以上備えて構成される。
メソッドの実装コード303は、ソフトウェア部品30が本来実現すべき機能が記述されているソフトウェアモジュールである。サブルーチン、或いは関数と呼ばれるソフトウェアモジュールと類似の概念であり、Java(登録商標)やC++等のオブジェクト指向言語ではメソッドと呼ばれることが多い。以下の記述では、このソフトウェアモジュールをメソッドと呼ぶものとする。
ソフトウェア部品30は通常複数のメソッドから構成されるが、1つのメソッドからなるソフトウェア部品30を排除するものではない。
また、ソフトウェア部品30が複数のメソッドを有する場合、いずれか1つのメソッドを選択し、このメソッドにメソッド呼出しインタフェース301、発信コード呼出フックポイント302、および発信コード40を具備させる形態としても良い。この場合、選択するメソッドとしては、ソフトウェア部品30の実行中に必ず呼び出されるメソッドが好ましい。必ず呼び出されるメッソドの例としては、ソフトウェア部品30の初期化や終了時の後処理のためのメソッドがある。例えば、Java、C++、C#等の言語では、コンストラクタ、デストラクタと呼ばれるメソッドがこれらに該当する。
メソッド呼出しインタフェース301は、外部の部品利用ソフトウェア20から呼出しを受ける際に利用されるインタフェースである。Java、C++、C#等といった言語の“クラス”や“インタフェース”の個々のメソッド定義によって実現されるものである。
発信コード呼出フックポイント302は、メソッドの実装コード303が起動する際に、一旦メソッドの実装コード303の実行を一時中断し、発信コード40を起動させるフック手段の仕組みである。一般にフックとは、入力やメッセージを横取りして独自処理を行うことをいう。本実施形態では、メソッドの実装コード303の処理主導権を発信コード40が一旦横取りして奪い、発信コード40の処理が終了した時点でメソッドの実装コード303を再開する処理形態のものであり、具体的な例は後述する。
上記のように構成されたソフトウェア部品30および送信モジュール50の動作について図3および図4を用いて説明する。
図3は、ソフトウェア部品30および送信モジュール50の構成図上に処理の流れを矢印で示した図である。また、図4は、ソフトウェア部品30および送信モジュール50の処理の流れを示すフローチャートである。
まず、最初に、部品利用ソフトウェア20からメソッド呼出しインタフェース301を介して、ソフトウェア部品30のメソッドの実装コード303が呼び出される(図4のステップST1)。この呼出しによってメソッドの実装コード303は起動される(ステップST2)。
次に、発信コード呼出フックポイント302が有するフック手段によって、メソッドの実装コード303の動作を途中でフック(横取り)し、発信コード40が呼び出され(ステップST3)、この呼出によって発信コード40が起動する(ステップST4)。この際、必要に応じて発信コード呼出フックポイント302は、関数起動の際の引数を発信コード40に引き渡す形態としても良い。
発信コード40は、所定のメモリから、部品識別情報および利用契約情報を読み出し、これらの情報を送信モジュール50に受け渡す(ステップST5)。
図5は、部品識別情報および利用契約情報の具体例を示した図である。部品識別情報は、例えば、ソフトウェア部品30の名称、ソフトウェア部品30の識別番号(ID)、ソフトウェア部品30のバージョン情報等からなる。
また、利用契約情報は、例えば、利用契約者名や契約者番号、ソフトウェア部品30の払い出し日、ソフトウェア部品30の利用期間、利用対象機器情報等からなる。
これらの部品識別情報がソフトウェア部品30の管理者側に送信されることにより、管理者側は、どのバージョンの、どのソフトウェア部品30を、誰が、どこで今現在使用しているかをリアルタイム把握することができる。また、そのソフトウェア部品30が、払い出し時の約束(契約)に則ったものであるか否かも直ちに把握することができる。
一方、送信モジュール50は、自ら機器識別情報を所定のメモリ等から読み出して取得する。図5には、機器識別情報の具体例も示している。機器識別情報は、例えば、使用している機器(部品利用端末2)の名称、IPアドレス、MACアドレス等の情報である。これらの機器識別情報によって、現在実際に使用している部品利用端末2を確実に特定することが可能となる。
送信モジュール50は、自ら取得する機器識別情報と、発信コード40から受け取った部品識別情報および利用契約情報とを併せて、電気通信回線4を介して部品管理サーバ3に送信する(ステップST6)。
部品管理サーバ3への送信後、メソッドの実装コード303の処理に戻り、本来実行すべき処理の実装コードの実行を再開する(ステップST7)。
部品管理サーバ3側では、受信部31で受信した部品識別情報、利用契約情報、および機器識別情報等を記録部33に記録する。また、必要に応じてリアルタイム表示部32にこれらの情報が表示される。
一旦記録部33に記録された情報は、指示入力部34からの指示に基づいて必要な情報が検索され、オフラインでも表示部32に表示することが可能である。
図6は、その他の実施形態(第2の実施形態)に係るソフトウェア部品30および送信モジュール50の処理の流れを示すフローチャートである。
この実施形態では、ソフトウェア部品30が、部品識別情報、利用管理情報、及び機器管理情報を取得し(ステップST50)、送信モジュール50は、ソフトウェア部品30から受け取ったこれらの情報を単に部品管理サーバ3に送信する(ステップST60)機能を有する形態である。他の処理は図4に示したフローチャートと同一であり、図4と同一の符号を付している。
図7ないし図9は、ステップST3におけるフック手段の具体例を説明する図である。
図7は、ハードコーディングによるフック手段(第1の形態)の一例を示す図である。この形態は、発信コード40の呼出しをメソッドの実装コードの中に直接記述する形態である。図7の左図は、発信コード40の呼出しを含まない従来のメソッド(本例ではメソッドA)を示すものであり、実際には2行目(コメント行)の位置にこのソフトウェア部品30が本来実現すべき機能のコードが記述されることになる。
図7の右図は、ハードコーディングによるフック手段の実現例を示す例であり、2行目に記述されたコード(「send_data(data)」)によって発信コード40の呼出を行っている。
この形態は、プログラム以外に特別な知識を必要としないというメリットがある。他方、発信コード40が存在するソフトウェア部品30と発信コード40が存在しないソフトウェア部品30(管理者側で監視を必要としないソフトウェア部品)の両方が存在し、かつこれらを保守する必要がある場合には、メソッドAの実装コードがそれぞれのソフトウェア部品に存在するため、メソッドAの実装コードに変更が発生した場合それら総てに対して変更せねばならず、効率が悪いというデメリットがある。
図8は、クラス継承を利用するフック手段の一例を示す図である。この形態は、オブジェクト指向言語で記述されるソフトウェア部品30のフック手段をクラス継承によって実現するものである。
図8の左図は、ソフトウェア部品30の本来実現すべき機能を実装するクラスを基底クラスとして定義したものである。図8の右図は、発信コード40の埋め込みを実現するクラスを導出クラスとして定義したものである。この場合、発信コード40を埋め込みたいメソッド(本例ではメソッドA)に対して、導出クラス側で同名、同引数のメソッドとして定義して仮想関数化し、この仮想関数の中で基底クラスのメソッドを利用することにより、監視可能なソフトウェア部品30を実現するものである。
この形態では、発信コード40が存在するソフトウェア部品30と発信コード40が存在しないソフトウェア部品30の両方を保守する場合、ソフトウェア部品30の本来実現すべき機能の実装コードは1つのクラス内のみに存在するため、保守が容易となるメリットがある。他方、基底クラス側に発信コード40を埋め込みたいメソッドが複数ある場合、発信コード40を埋め込むか否かの場合分けによって多数のクラスが必要となるというデメリットがある。
図9は、アスペクト指向言語(AOP)を利用するフック手段の一例を示す図である。AspectJやHyper/Jといったアスペクト指向言語を用いてソフトウェア部品30を記述し、発信コード40をアスペクトとして定義し、既存ソフトウェア部品30への埋め込みによって、監視可能なソフトウェア部品を実現するものである。
この形態は、クラス継承を利用する形態と同様に、発信コード40が存在するソフトウェア部品30と発信コード40が存在しないソフトウェア部品30の両方を保守する場合、ソフトウェア部品30の本来実現すべき機能の実装コードは1つのクラス内のみに存在するため、保守が容易となるというメリットがある。さらに、発信コード40の埋め込み場所の指定や変更がアスペクト指向言語の高い記述力を利用することによって少ない作業コストで実現できる。
他方、アスペクト指向言語は、オブジェクト指向言語に比べると普及の範囲が現時点でそれ程広くないため、言語教育等のコストが発生するというデメリットがある。
以上、述べたように、本実施形態に係るソフトウェア部品30、及びソフトウェア部品管理システム1によれば、ソフトウェア部品30の払い出し元の管理者側にソフトウェア部品30の管理情報や利用情報を確実かつリアルタイムに通知することが可能となり、適切なソフトウェア部品の利用促進を図りソフトウェア開発の効率を向上させることができる。
また、ソフトウェア部品の不正な使用を排除し、或いは不正な使用を抑止することができる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
本発明に係るソフトウェア部品管理システムの一実施形態のシステム構成例を示す図。 本発明に係るソフトウェア部品の一実施形態の構成例を示す図。 ソフトウェア部品及び送信モジュールの構成及び処理の流れを示す説明図。 ソフトウェア部品及び送信モジュールの処理の流れを示す第1のフローチャート。 部品識別情報、利用契約情報、及び機器識別情報の具体例を示す図。 ソフトウェア部品及び送信モジュールの処理の流れを示す第2のフローチャート。 ハードコーディングによるフック手段の一例を示す説明図。 クラス継承を利用するフック手段の一例を示す説明図。 アスペクト指向言語を利用するフック手段の一例を示す説明図。
符号の説明
1 ソフトウェア部品管理システム
2 部品利用端末
3 部品管理サーバ
4 電気通信回線
10 アプリケーションソフトウェア
20 部品利用ソフトウェア
30 ソフトウェア部品
40 発信コード
50 送信モジュール
301 メソッド呼出しインタフェース
302 発信コード呼出フックポイント
303 メソッドの実装コード

Claims (18)

  1. 管理部門から払い出しを受けるソフトウェア部品であり、かつ1以上のソフトウェアモジュールを含むソフトウェア部品において、
    前記ソフトウェアモジュールが実行されるときに、本ソフトウェア部品を識別する部品識別情報を外部の部品管理サーバに送信する部品識別情報送信ステップと、
    前記ソフトウェアモジュールが実行されるときに、本ソフトウェア部品が実行されるコンピュータを識別する機器識別情報を前記部品管理サーバに送信する機器識別情報送信ステップと、
    をコンピュータに実行させることを特徴とするソフトウェア部品。
  2. 前記部品識別情報送信ステップをコンピュータに実行させる第1のソフトウェア部品と、
    前記機器識別情報送信ステップをコンピュータに実行させる第2のソフトウェア部品と、
    を備えたことを特徴とする請求項1に記載のソフトウェア部品。
  3. 前記部品識別情報は、本ソフトウェア部品の名称、識別番号、及びバージョン情報の少なくとも1つを含むことを特徴とする請求項1に記載のソフトウェア部品。
  4. 前記部品識別情報は、本ソフトウェア部品の利用契約情報をさらに含むことを特徴とする請求項3に記載のソフトウェア部品。
  5. 前記利用契約情報は、本ソフトウェア部品を利用できる者、利用できる機器、及び利用できる期間の少なくとも1つを含むことを特徴とする請求項4に記載のソフトウェア部品。
  6. 前記機器識別情報は、前記コンピュータのIPアドレス及びMACアドレスの少なくとも1つを含むことを特徴とする請求項1に記載のソフトウェア部品。
  7. 前記部品識別情報送信ステップは、前記部品識別情報を前記機器識別情報送信ステップに送信し、
    前記機器識別情報送信ステップは、受信した前記部品識別情報と供に前記機器識別情報を前記部品管理サーバに送信する、
    ことを特徴とする請求項1に記載のソフトウェア部品。
  8. 前記部品識別情報送信ステップは、前記ソフトウェアモジュールのフック手段によって起動され、前記機器識別情報送信ステップは、前記部品識別情報送信ステップによって起動されることを特徴とする請求項1に記載のソフトウェア部品。
  9. 前記管理部門から払い出しを受ける前記ソフトウェア部品は、バイナリデータの形態であることを特徴とする請求項1に記載のソフトウェア部品。
  10. ソフトウェア部品の管理部門から払い出しを受けたソフトウェア部品を組み込んでアプリケーションソフトウェアを開発する、或いは開発した前記アプリケーションソフトウェアを使用する部品利用端末と、
    前記部品利用端末と電気通信回線を介して接続され、前記部品利用端末から少なくとも前記ソフトウェア部品を識別する部品識別情報と、前記部品利用端末を識別する機器識別情報とを受信する部品管理サーバと、
    を備え、
    1以上のソフトウェアモジュールを含む前記ソフトウェア部品は、
    前記ソフトウェアモジュールが実行されるときに、前記ソフトウェア部品を識別する部品識別情報を前記部品管理サーバに送信する部品識別情報送信ステップと、
    前記ソフトウェアモジュールが実行されるときに、前記部品利用端末を識別する機器識別情報を前記部品管理サーバに送信する機器識別情報送信ステップと、
    を前記部品管理端末に実行させることを特徴とする、
    ソフトウェア部品管理システム。
  11. 前記ソフトウェア部品は、
    前記部品識別情報送信ステップを前記部品管理端末に実行させる第1のソフトウェア部品と、
    前記機器識別情報送信ステップを前記部品管理端末に実行させる第2のソフトウェア部品と、
    を備えたことを特徴とする請求項10に記載のソフトウェア部品管理システム。
  12. 前記部品識別情報は、前記ソフトウェア部品の名称、識別番号、及びバージョン情報の少なくとも1つを含むことを特徴とする請求項11に記載のソフトウェア部品管理システム。
  13. 前記部品識別情報は、前記ソフトウェア部品の利用契約情報をさらに含むことを特徴とする請求項12に記載のソフトウェア部品管理システム。
  14. 前記利用契約情報は、前記ソフトウェア部品を利用できる者、利用できる機器、及び利用できる期間の少なくとも1つを含むことを特徴とする請求項13に記載のソフトウェア部品管理システム。
  15. 前記機器識別情報は、前記部品利用端末のIPアドレス及びMACアドレスの少なくとも1つを含むことを特徴とする請求項10に記載のソフトウェア部品管理システム。
  16. 前記部品識別情報送信ステップは、前記部品識別情報を前記機器識別情報送信ステップに送信し、
    前記機器識別情報送信ステップは、受信した前記部品識別情報と供に前記機器識別情報を前記部品管理サーバに送信する、
    ことを特徴とする請求項10に記載のソフトウェア部品管理システム。
  17. 前記部品識別情報送信ステップは、前記ソフトウェアモジュールが具備するフック手段によって起動され、前記機器識別情報送信ステップは、前記部品識別情報送信ステップによって起動されることを特徴とする請求項10に記載のソフトウェア部品管理システム。
  18. 前記管理部門から払い出しを受ける前記ソフトウェア部品は、バイナリデータの形態であることを特徴とする請求項10に記載のソフトウェア部品管理システム。
JP2005353741A 2005-12-07 2005-12-07 ソフトウェア部品およびソフトウェア部品管理システム Pending JP2007156987A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005353741A JP2007156987A (ja) 2005-12-07 2005-12-07 ソフトウェア部品およびソフトウェア部品管理システム
US11/468,129 US7934196B2 (en) 2005-12-07 2006-08-29 Software component and software component management system
CNA200610128019XA CN1979413A (zh) 2005-12-07 2006-08-31 软件组件和软件组件管理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005353741A JP2007156987A (ja) 2005-12-07 2005-12-07 ソフトウェア部品およびソフトウェア部品管理システム

Publications (1)

Publication Number Publication Date
JP2007156987A true JP2007156987A (ja) 2007-06-21

Family

ID=38120234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005353741A Pending JP2007156987A (ja) 2005-12-07 2005-12-07 ソフトウェア部品およびソフトウェア部品管理システム

Country Status (3)

Country Link
US (1) US7934196B2 (ja)
JP (1) JP2007156987A (ja)
CN (1) CN1979413A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090358A (ja) * 2006-09-29 2008-04-17 Toshiba Corp ソフトウェア部品およびソフトウェア部品管理システム
US11301364B2 (en) 2016-10-25 2022-04-12 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799854B2 (en) * 2007-01-22 2014-08-05 International Business Machines Corporation Reusing software development assets
JP2011170693A (ja) * 2010-02-19 2011-09-01 Telefon Ab L M Ericsson ネットワーク事業者と開発者とを仲介する方法
US20120317538A1 (en) * 2010-02-19 2012-12-13 Calin Curescu Apparatus for Intermediating Network Operators and Developers
WO2011133860A2 (en) 2010-04-23 2011-10-27 Immersion Corporation Systems and methods for providing haptic effects

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736685A (ja) * 1993-07-23 1995-02-07 Kobe Nippon Denki Software Kk 部品処理装置
JP2000035885A (ja) * 1998-05-14 2000-02-02 Sega Enterp Ltd 情報処理装置、情報処理方法及び情報記録媒体並びに情報処理システム
JP2002116837A (ja) * 2000-10-12 2002-04-19 Taketoshi Okamoto 複数のソフトウェアのプロテクトを制御する方法、装置、記録媒体、伝送媒体
JP2004046708A (ja) * 2002-07-15 2004-02-12 Sony Corp ソフトウェア提供システム、ソフトウェア提供サーバ、端末、制御プログラム、ソフトウェア提供方法、ソフトウェア利用方法、ソフトウェア提供プログラム、及びソフトウェア利用プログラム
JP2004062561A (ja) * 2002-07-30 2004-02-26 Dainippon Printing Co Ltd ソフトウェア管理システム、ソフトウェア管理サーバ、クライアント、プログラム、及び、記録媒体。
JP2004070560A (ja) * 2002-08-05 2004-03-04 Bank Of Tokyo-Mitsubishi Ltd ライセンス管理装置及びプログラム
JP2005107737A (ja) * 2003-09-29 2005-04-21 Toshiba Corp 電気機器、電気機器コントローラ及びアプリケーションサーバ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694359B1 (en) * 1991-08-21 2004-02-17 Unova, Inc. Data collection and dissemination system
JPH11327962A (ja) 1998-03-13 1999-11-30 Ricoh Co Ltd 部品化ソフトウェアの動作状態表示方法および画像形成装置における用紙搬送制御のソフトウェア部品
US7062765B1 (en) * 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
DE10053118A1 (de) * 1999-10-29 2001-05-31 Medtronic Inc Apparat und Verfahren zur Selbstidentifizierung aus der Ferne von Komponenten in medizinischen Vorrichtungssystemen
WO2001086461A1 (fr) * 2000-05-08 2001-11-15 Fujitsu Limited Dispositif et procede d'ouverture de connexion de reseau, et support de stockage
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US20020188688A1 (en) * 2001-06-12 2002-12-12 Bice Richard S. Automated message handling system and process
US6813587B2 (en) * 2001-06-22 2004-11-02 Invensys Systems, Inc. Remotely monitoring/diagnosing distributed components of a supervisory process control and manufacturing information application from a central location
US7039671B2 (en) * 2001-11-30 2006-05-02 Sonic Software Corporation Dynamically routing messages between software application programs using named routing nodes and named message queues
US20030229726A1 (en) * 2002-03-18 2003-12-11 Daseke Michael J. Default device configuration system and method for thin devices
US8230456B2 (en) * 2005-01-05 2012-07-24 Yahoo! Inc. Framework for delivering a plurality of content and providing for interaction with the same in a television environment
US7818350B2 (en) * 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US20070168309A1 (en) * 2005-12-01 2007-07-19 Exent Technologies, Ltd. System, method and computer program product for dynamically extracting and sharing event information from an executing software application

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0736685A (ja) * 1993-07-23 1995-02-07 Kobe Nippon Denki Software Kk 部品処理装置
JP2000035885A (ja) * 1998-05-14 2000-02-02 Sega Enterp Ltd 情報処理装置、情報処理方法及び情報記録媒体並びに情報処理システム
JP2002116837A (ja) * 2000-10-12 2002-04-19 Taketoshi Okamoto 複数のソフトウェアのプロテクトを制御する方法、装置、記録媒体、伝送媒体
JP2004046708A (ja) * 2002-07-15 2004-02-12 Sony Corp ソフトウェア提供システム、ソフトウェア提供サーバ、端末、制御プログラム、ソフトウェア提供方法、ソフトウェア利用方法、ソフトウェア提供プログラム、及びソフトウェア利用プログラム
JP2004062561A (ja) * 2002-07-30 2004-02-26 Dainippon Printing Co Ltd ソフトウェア管理システム、ソフトウェア管理サーバ、クライアント、プログラム、及び、記録媒体。
JP2004070560A (ja) * 2002-08-05 2004-03-04 Bank Of Tokyo-Mitsubishi Ltd ライセンス管理装置及びプログラム
JP2005107737A (ja) * 2003-09-29 2005-04-21 Toshiba Corp 電気機器、電気機器コントローラ及びアプリケーションサーバ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090358A (ja) * 2006-09-29 2008-04-17 Toshiba Corp ソフトウェア部品およびソフトウェア部品管理システム
US11301364B2 (en) 2016-10-25 2022-04-12 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting

Also Published As

Publication number Publication date
US7934196B2 (en) 2011-04-26
US20070130562A1 (en) 2007-06-07
CN1979413A (zh) 2007-06-13

Similar Documents

Publication Publication Date Title
CN104508627B (zh) 混合云环境
CN110427252B (zh) 基于任务依赖关系的任务调度方法、装置及存储介质
JP2007156987A (ja) ソフトウェア部品およびソフトウェア部品管理システム
US8943518B2 (en) Managing and optimizing workflows among computer applications
KR101173558B1 (ko) 홈 네트워크 환경에서의 서비스 재구성 방법 및 장치
US20130283296A1 (en) Method and system for generating a service definition based on service activity events
CN107391219B (zh) 函数编译方法和装置
CN110324209B (zh) 微服务系统监控方法、装置、电子设备及计算机可读介质
JP2019056999A (ja) アプリケーションセキュリティ管理システム及びエッジサーバ
US8296723B2 (en) Configurable unified modeling language building blocks
CN102271054B (zh) 用于网络软件部署评估的书签和性能历史
CN110708366A (zh) 一种插件进程的管理方法及相关方法和相关装置
CN110377324B (zh) 一种信息化平台监控系统和构建方法
CN108319869B (zh) 一种自动开标的方法、装置、服务器和存储介质
CN114116400A (zh) 基于日志打印的应用异常处理方法、装置、设备及介质
CN110149267A (zh) 一种监控社交软件的方法、设备及系统
Hannousse Dealing with crosscutting and dynamic features in component software using aspect‐orientation: requirements and experiences
CN113220480B (zh) 分布式的数据任务跨云调度系统及方法
JP2005266919A (ja) システム解析装置及び解析システム
JP2012079203A (ja) 監視制御システム
JP4901403B2 (ja) ソフトウェア部品管理システム
JP6438900B2 (ja) 装置監視制御システム及び装置監視制御方法
JP2008293273A (ja) 情報処理装置および情報処理方法
CN109583192A (zh) 一种基于仿真的移动终端应用固定保全系统及方法
JP3716682B2 (ja) ソフトウェア品質評価システム及びそのプログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111122