JP5956613B2 - 計算機システム、及びプログラム - Google Patents

計算機システム、及びプログラム Download PDF

Info

Publication number
JP5956613B2
JP5956613B2 JP2014557256A JP2014557256A JP5956613B2 JP 5956613 B2 JP5956613 B2 JP 5956613B2 JP 2014557256 A JP2014557256 A JP 2014557256A JP 2014557256 A JP2014557256 A JP 2014557256A JP 5956613 B2 JP5956613 B2 JP 5956613B2
Authority
JP
Japan
Prior art keywords
user
computer
environment
simulation
computer environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014557256A
Other languages
English (en)
Other versions
JPWO2014112089A1 (ja
Inventor
康宏 伊藤
康宏 伊藤
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5956613B2 publication Critical patent/JP5956613B2/ja
Publication of JPWO2014112089A1 publication Critical patent/JPWO2014112089A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/02CAD in a network environment, e.g. collaborative CAD or distributed simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は計算機システム、特に複数のシミュレータが連携するシミュレーションを実行する開発環境で使用されるシステム技術に関わる。
組込みシステムの開発においては、複数のシミュレータが連携する複雑なシミュレーションを実行する開発環境が必要となる。この組込みシステムとは、制御対象を構成するメカと、メカから受け取った物理量を元に制御演算を行い、メカに制御値の出力を行なうハードウェアと、ハードウェア上で動作するソフトウェアから構成されるシステムである。例えば自動車の組込みシステムでは、制御対象であるエンジンとエンジンを制御するマイコン等の電子機器とその上で動作するソフトウェアを指す。組込みシステムに含まれるソフトウェアの挙動は制御対象のメカとハードウェアの構成に強く依存するため、メカ、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。
近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化しており、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加し、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。このような複数拠点での同時開発に関する先行技術文献としては、例えば、本出願人が先に出願した特許文献1がある。
WO2011/016327号
上述した複数拠点での同時開発の問題を解決するため、設計時点でのメカ・ハードウェア・ソフトウェア協調のシミュレーションによる性能評価、検証手法が用いることが考えられる。従来、このような複数シミュレータを相互結合させた協調シミュレーションを行なうには、各個人の計算機上に実行環境を構築する必要があり、以下の5つの問題が存在する。1つ目は、複数拠点での同時開発のため、設計ファイルの共有、 進捗の管理が困難になる事である。2つ目は、異なるシミュレータを接続する必要があるため、個々のシミュレータ及びシミュレータ間の接続のパラメータ調整を人手で行なうコストが増大する事である。3つ目は、複数のシミュレータを使用するため、その導入及び保守のコストが高い事である。4つ目は、複数のシミュレータを動作させるため、計算能力が不足する事である。5つ目は、設計ファイルが個人PC上に格納されているため、情報漏えいのリスクが高まる事である。
これらの課題に対する対処法の一つとして開発環境の一元化が考えられる。この開発環境の一元化を行うための方法として、本件発明者等が先に出願した特許出願が特許文献1である。特許文献1では、単一グループのユーザに対して、一元化された計算機環境上で実行される協調シミュレーションの提供を可能にする。一方で自動車を始めとした、組込みシステムの産業では一製品を構成するコンポーネントを複数の会社が担当し、システムの組立を担当する上位に位置する会社(以下OEMと称する)がそれらの部品を組み合わせるといった、階層的な構造をしている。
これらの階層構造は複雑であり、ある一つの部品供給者(以下サプライヤと称する)が複数の納入先をもつ場合も存在する。このような階層的な部品構造は、その製品の協調シミュレーションにも適用される。しかし、製品を構成するコンポーネントと同様に、そのコンポーネントの動作を模擬するソフトウェア(以下、モデル)をOEMに対し納入する事は、技術的機密の保護、動作環境の整備、更にはコストの観点で実現が難しい。
上記の問題を解決する構成として、サプライヤとOEMがそれぞれの会社内で一元化されたシミュレーション環境を持ち、協調シミュレーションを実行する必要が有る場合のみ相互に結合し、協調シミュレーションの実行に必要なデータのみを交換するという構造が考えられる。しかし、この構造においては、シミュレータ間のデータ交換がインターネットを通じて行われるため、シミュレーションのスループットがインターネットの通信遅延によって律速されてしまうという問題がある。
本発明の目的は、上記の課題を解決し、製品のコンポーネントの動作を模擬するソフトウェアの内部構造、実行環境を利用者から秘匿するという課題と、ネットワーク遅延の解決の両立を可能とする計算機システム、及びプログラムを提供することにある。
本発明においては、上記の目的を達成するため、計算機システムであって、
通信経路を介して接続される、それぞれソフトウェア資産を有するユーザA、及びユーザBの計算機環境を含み、ユーザBの計算機環境が、ユーザBの計算機環境が所有するソフトウェア資産の複製と、ユーザAが要求するシミュレーションモデルとを含む仮想計算機環境を、ユーザAの計算機環境に送信することにより、協調シミュレーションを実現する構成の計算機システムを提供する。
また、本発明においては、上記の目的を達成するため、ネットワークと、ネットワークに接続される、ソフトウェア資産を有するユーザAの計算機環境と、
ネットワークに接続される、ソフトウェア資産を有するユーザBの計算機環境とを備え、ユーザBの計算機環境は、当該ユーザBの計算機環境が所有するソフトウェア資産の複製と、ユーザAがユーザBに要求するシミュレーションモデルとを含む仮想計算機環境を生成する仮想計算機生成部を備え、ユーザAの計算機環境は、ユーザBの計算機環境から受信した仮想計算機環境と、ユーザAのソフトウェア資産を用いて協調シミュレーションを行う構成の計算機システムを提供する。
更に、本発明においては、上記の目的を達成するため、計算機環境で実行されるプログラムであって、ユーザAの計算機環境で、ネットワークを介して、ユーザBのソフトウェア資産の複製と、ユーザAがユーザBに要求するシミュレーションモデルとを含む仮想計算機環境を受信し、仮想計算機環境と、ユーザAのソフトウェア資産とを用いて協調シミュレーションを実行し、ユーザAの計算機環境上で実行される協調シミュレーションの実行状態と、ユーザBのソフトウェア資産の複製の利用状況とを用いて認証キーを生成するプログラム提供する。
本発明によれば、ソフトウェア資産の不正な利用・複製を防止し、シミュレーション速度の低下をきたすことのない協調シミュレーションを提供することが可能となる。
第1の実施例に係る計算機システムの全体構成の一例を示す図である。 協調シミュレーション環境のシミュレーションモデル構成の一例を示す図である。 協調シミュレーション環境のシミュレーション実行に必要な要素の一例を示す図である。 複数の会社をまたいだ協調シミュレーションの構成例を説明する図である。 協調シミュレーション時のシミュレータ内部時間と、実時間の遷移状況の一例を示す図である。 第1の実施例に係る、ソフトウェア資産を集約して実行する会社をまたいだ協調シミュレーションの構成例を示す図である。 第1の実施例に係る、ライセンスサーバ以外のソフトウェア資産を集約する会社をまたいだ協調シミュレーションの構成例を示す図である。 第1の実施例に係る、ソフトウェア資産の集約方法と、協調シミュレーションの実施手順及び、ソフトウェア資産利用権の認証フロー前半を示す図である。 第1の実施例に係る、ソフトウェア資産の集約方法と、協調シミュレーションの実施手順及び、ソフトウェア資産利用権の認証フロー後半を示す図である。 第1の実施例に係る、仮想計算機環境の構成とその接続例を示す図である。 第1の実施例に係る、仮想計算機環境やキー認証プログラムを生成するフローの一例を示す図である。 第1の実施例の計算機システムで管理する、ソフトウェア資産の分類を示す図である。 第1の実施例に係る、認証キーを生成/照合する4つのプログラムを生成するプロセスの一具体例を示す図である。 第1の実施例に係る、認証キーを用いた、OEM側とサプライヤ側間のトランザクションの一例を示す図である。 第1の実施例に係る、計算機システムに用いる計算機ハードウェア構成の一例を示す図である。
本発明を実施するための形態を図面に従い順次説明するが、それに先立ち本発明の前提となる協調シミュレーション環境下の計算機システムの構成を、協調シミュレーション環境のモデル構成の一例を示す図2A、協調シミュレーション環境のシミュレーション実行に必要な要素の一例を示す図2B、協調シミュレーション時のシミュレータ内部時間と、会社をまたいだ協調シミュレーションの構成例を模式的に示す図3を用いて説明する。
図2Aは、協調シミュレーション環境における、ECU(Engine Control Unit)モデル0203、0205、エンジンモデル0204、ブレーキモデル0206など複数のモデルからなる構成例を示す図である。ここでモデルとは、自動車等の製品のコンポーネントの動作を模擬するソフトウェアを意味する。例えば、メカ・ハードウェア・ソフトウェア協調のシミュレーションでは、シミュレーション対象となるエンジンやブレーキ等のメカやハードウェアの構成によって利用できるシミュレータが異なる事と、すでに特定のシミュレータ用に作成されたシミュレーションモデルの蓄積がある事から、異種シミュレータの相互接続による製品全体レベルの協調シミュレーションが図2Aに示すような構成で行なわれる。
このような協調シミュレーションにおいて、外部環境モデル201、通信モデル0202を含んだ複数シミュレータを相互結合させた協調シミュレーションを実現するには、各個人の計算機上に実行環境を構築する必要があり、上述した5つの問題が存在し、それらの課題に対する対処法の一つが、開発環境の一元化である。組込みシステムの産業では一製品を構成するコンポーネントを複数の会社が担当し、OEMがそれらの部品を組み合わせるといった階層的な構造をしているので、階層的な部品構造は、その製品の協調シミュレーションにも適用される。しかし、製品を構成するコンポーネントと同様に、そのコンポーネントの動作を模擬するソフトウェアであるモデルをOEMに対し納入する事は、技術的機密の保護、動作環境の整備の観点で実現が難しいことは上述の通りである。
その理由として、モデルには模擬対象とするコンポーネントの動作を再現させるために、そのコンポーネントの内部構造が実装されていることが多く、納入されたモデルを閲覧することで、サプライヤが秘匿したい情報であってもOEMが知り得る状況となってしまう。また、モデルはそれぞれ特定のシミュレータ上でのみ動作するように実装される場合が多く、OEMがそのモデルを実行するためにはサプライヤと同等のモデル実行環境を必要とする。
図2Bに、シミュレーション実行に必要な要素の一例を示す。サプライヤa、b、cが供給するモデルA、B、Cがそれぞれ連携して動く協調シミュレーションにおいて、モデルAとCがシミュレータX0207、モデルBがシミュレータY0208上で実行されるとき、サプライヤa、cはシミュレータXのライセンスを、サプライヤbはシミュレータYのライセンスを所持している必要がある。また、OEMが協調シミュレーションを実行しようとするときは、ライセンスサーバ0209は、シミュレータXとY両方のライセンスを所持している必要がある。これは多種のモデルを組み合わせる必要があるOEMにとって、協調シミュレーションのための環境構築コストが大きくなることを意味している。
上記の問題を解決する構成として、サプライヤとOEMがそれぞれの会社内で一元化されたシミュレーション環境を持ち、協調シミュレーションを実行する必要が有る場合のみ相互に結合し、協調シミュレーションの実行に必要なデータのみを交換するという構造が考えられる。
図3に、この構造を構築した際のシミュレータと、実行する計算機と、そのネットワークの構成の一例を示す。この構造では、A社、B社、C社それぞれの計算機環境0100、0101、0102中のシミュレータX、Y、W、Z、P、Q間のデータ交換がインターネット等のネットワークである通信経路0107を通じて行われる。これによってシミュレーションのスループットがインターネット等の通信経路0107の通信遅延によって律速されてしまうという問題が発生する。
シミュレータ間の通信はそのシミュレータの動作精度にも依存するが、組込みシステムの動作検証ではだいたいシミュレータの実行時間数ミリ秒毎に1キロバイト程度のデータ交換を行うケースが多い。2つ以上のシミュレータ間で協調するためには、図4で示すように予め定められた期間(同期周期)の分、シミュレーションを行い、その時点での結果を共有することによって進む。したがってこのシミュレータ間のデータ交換はバッファリングしてまとめて送受信することが不可能であり、データの交換期間0401中は次の同期周期分のシミュレーションを続行することは不可能である。
このシミュレータ間同期通信によるデータ交換の期間0401は、図4中の同期周期t0の区間に対応するが、その長さはシミュレータ間のネットワーク遅延に比例する。ネットワーク遅延は、おおよそ接続された2点間の地理的な距離に比例する。地理的に離れた場所の場合そのネットワークは専用線を利用しない限り、インターネットを経由し、その遅延はどれだけ小さくとも数百ミリ秒単位となる。こうなると、数ミリ秒のシミュレーションの実行時間は、シミュレータの実行時間に加え 数百ミリ秒の通信遅延が加算されるため、シミュレーション速度は低下し、いかに高速なシミュレータ環境を用いても限られたテストケースだけ実行可能な状態となってしまう。
以上説明したように、ネットワークの通信遅延を解決するためには、その接続構造を変え、協調シミュレーションを行う計算機同士をネットワーク的に近い位置に配置する必要がある。
そこで、図5Aに示したように、サプライヤ側計算機環境がOEMから要求された協調シミュレーションに必要な計算機環境をB社、C社仮想計算機環境0110、0109として仮想計算機上に構築し、OEM側のA社計算機環境0100へと送付する計算機システムと、OEM側で受信した仮想計算機を実行して、協調シミュレーションを実行する計算機システムを組合せることで、サプライヤ側の一元化された計算機環境をOEM側に送付しつつも、仮想的にサプライヤとOEM間での計算機環境の論理的な分断を保つ手法が考えられる。
これにより図5Aで示す構造では、通信遅延の大きいインターネット経由で行なっていたシミュレータ間の同期通信を、物理的距離が近く、通信遅延の小さなOEM側の内部ネットワーク0115に留めることが可能であるため、非常に高速なシミュレーションを実行することが可能になる。この手法を適用した場合、サプライヤとOEM間でやり取りされる仮想計算機には、要求されたモデルと、モデルの実行に必要なソフトウェア群、さらに前記ソフトウェアの実行に必要なB社ライセンスサーバ0117、C社ライセンスサーバ0116などのライセンス提供ソフトウェア等のソフトウェア資産が含まれている。これらをOEM側計算機環境上で不正に利用される可能性があるため、サプライヤが許可した間に限りこれらのソフトウェア資産が動作するように仮想計算機が設定されている必要がある。
これを防ぐための手法として、図5Bで示すようにサプライヤが持つソフトウェア資産のうち、ソフトウェアのライセンスを提供するライセンスサーバ0116、0117をサプライヤのローカル環境に置く方法が考えられる。しかし、この構成の場合シミュレータからライセンスサーバへの要求がおよそ数秒周期で実行されてしまうことから、これも通信遅延の影響を受ける可能性がある点、ソフトウェア資産を外部からのアクセスに応じて公開する上に、その利用用途に関して検査する手段を備えていないため、これも目的外の利用をOEM側に許してしまうライセンス上の問題が生じる点が懸念される。また副次的に発生する課題として、OEM側に仕様を許可しているソフトウェア資産はサプライヤ側にも残っているため、サプライヤ側が自由に利用可能である点が考えられる。
図9は以上検討してきた計算機システムで管理する、ソフトウェア資産の分類を示す図である。
まず、ある計算機システムには1つ以上のソフトウェア資産900が含まれている。ユーザが協調シミュレーションを実行しようとした時、計算機システムはそのソフトウェア資産を一つ以上一時的に専有して計算を行う。この時、ユーザが協調シミュレーションに使用するソフトウェア資産902と、使用されないソフトウェア資産901にソフトウェア資産900は分割される。
本システムを用いて、サプライヤ側のソフトウェア資産の一部ないし全体の複製を協調シミュレーションの相手、すなわちOEM側に一時的に使用許諾する場合を想定すると、協調シミュレーションに使用するソフトウェア資産902は、サプライヤ側では協調シミュレーションと同時の使用が禁止されるべきソフトウェア資産904であり、協調シミュレーションに使用されないソフトウェア資産901は、OEM側では協調シミュレーションと同時の使用が禁止されるべきソフトウェア資産903となる。
第三者から提供されるソフトウェア資産の利用権限を管理する機構の改造は不可能であるため、その機構の外部から適切に対象ソフトウェア資産を該当協調シミュレーション実行時のみ無効化する必要がある。したがって、ソフトウェア資産904は、サプライヤ側で実行される、以下の実施例で詳述するサプライヤ側の認証クエリ照合部が消費するべきソフトウェア資産906と同じ意味で、ソフトウェア資産903は、以下の実施例で詳述するOEM側で実行される認証クエリ生成部によって消費されるべきソフトウェア資産905と同じ意味となる。以上が、以下に説明する本発明の実施例の計算機システムとなる協調シミュレーション環境を実現する計算機システムである。
本発明の好適な態様にあっては、サプライヤ側であるユーザBの計算機環境は、ユーザAであるOEM側から要求された協調シミュレーションに必要となるソフトウェア資産を仮想計算機環境にまとめて構築し、その仮想計算機環境ファイルをユーザAの計算機環境に送付し、ユーザAの計算機環境は、その仮想計算機環境を受け取って実行する。
また、ソフトウェア資産の複製によって生じる、ユーザB、ユーザAの計算機環境で同時に利用してはいけないソフトウェア資産の組合せ情報と、ユーザAの計算機環境で実行されるソフトウェアの動作情報を元に認証キーを生成し、生成された認証キーをユーザBとユーザAの計算機環境でやり取りすることにより、ソフトウェア資産利用の妥当性を認証し、認証に成功した場合のみ、仮想計算機の実行を継続し、失敗した際に仮想計算機の構成ファイルを、ユーザAの計算機環境から消去する。
更に、ユーザBの計算機環境で、協調シミュレーションと同時の使用が禁止されるべきソフトウェア資産と、ユーザAの計算機環境で、協調シミュレーションと同時の使用が禁止されるべきソフトウェア資産を用いてキー認証させることで、許可された間だけのソフトウェア資産の使用許諾と、ユーザAの計算機環境とユーザBの計算機環境で重複するソフトウェア資産の無効化を実現する。
以下、本発明の実施例を図面に従い説明する。以下の説明において、各計算機環境中の処理部で実行されるソフトウェアを、プログラム、部、或いは機能と呼ぶ。例えば、認証クエリ生成プログラム、認証クエリ生成部、認証クエリ生成機能等である。また、以下の説明においては、連携シミュレーションを実現する計算機システムは、複数の事業者、例えばA社、B社、C社等の計算機環境をインターネット等のネットワークを介して接続することにより実現されるが、便宜上、A社の計算機環境をユーザAの計算機環境と、その他のB社、C社等の計算機環境を、ユーザBの計算機環境と呼ぶ場合がある。
図1に第1の実施例の計算機システムの全体構成の一例を示した。
第1の実施例に係る計算機システムは、インターネットまたは専用線等の通信経路によって接続されている、複数の事業社または、複数の遠隔拠点間で各自の持つソフトウェア資産を利用した協調シミュレーションを実現するための計算機システムである。本実施例は、計算機システムであって、通信経路を介して接続される、それぞれソフトウェア資産を有するユーザA、及びユーザBの計算機環境を含み、ユーザBの計算機環境が、当該ユーザBの計算機環境が所有するソフトウェア資産の複製と、ユーザAが要求するシミュレーションモデルとを含む仮想計算機環境を、ユーザAの計算機環境に送信することにより協調シミュレーションを実現する構成の計算機システムの実施例である。
同図においては、A社がB社、C社のソフトウェア資産を用いて3社の間で協調シミュレーションをする場合の構成例を示している。同図において、0100、0101、0102は、A社、B社、C社それぞれの計算機環境を、0107は通信経路を示している。本システム構成において、B社、C社は、A社に対してソフトウェア資産を提供する側に当たるため、サプライヤと称し、A社は自身とB社、C社のソフトウェア資産をまとめ、協調シミュレーションを実行するため、OEMと呼称する。B社とC社はA社に提供するソフトウェア資産の種類は違うものの、利用する本システムのコンポーネントは同一の物を使う。また、シミュレーションの内容、またはその主体が変わることによってOEM側となるか、サプライヤ側となるかが入れ替わるため、A社と同じシステム構成をB、C社が持つことも可能であり、またその逆も可能である。以下の説明においては、A社を協調シミュレーションの実行主体であるマスターユーザ、B社、C社を協調シミュレーションにおいて従属的立場にあるスレーブユーザとして位置付けて説明する。
なお、このような計算機システムを構成するA社、B社、C社それぞれの計算機環境は、通常の計算機で実現できることは言うまでもない。上述の通り、A社の計算機環境はユーザAの計算機環境、B社、或いはC社の計算機環境は、ユーザBの計算機環境となる。
図12に、そのような計算機環境を実現するコンピュータ構成の一例を示した。同図に示すように、コンピュータ1200内の処理部であるプロセッサ1201、コントローラ1202、データやプログラムを記憶する記憶部であるメモリ1203、アクセラレータ1204等が内部バスによってネットワークインタフェース1205に接続され、ネットワークインタフェース1205から、インターネットなどの通信経路0107に接続される。また、後で説明する各種のデータベース(DB)等を蓄積するための外部記憶装置や、ディスプレイやキーボート等の入出力部を、必要に応じて付加可能であることは、通常のコンピュータと同様である。本明細書にあっては、特に断らない限り、コンピュータ1200のプロセッサ1201は、種々のプログラムを処理することにより、以下で説明するような計算機環境、仮想計算機環境等を実現する。
本実施例の計算機システムは、先に説明したように、サプライヤ側が協調シミュレーションに必要なソフトウェア資産を仮想計算機環境上にまとめ、OEM側に送付し、OEM側計算機環境0101、0102内部で協調シミュレーションを行う。このため、OEM側の計算機環境0100では、自身のソフトウェア資産とサプライヤの仮想計算機環境0109、0110が内部ネットワーク0115を通じて接続されている。各サプライヤの仮想計算機環境0109、0110は、OEM側の計算機環境0100中の仮想環境操作エージェント0108によって、通信回線0107を用いてサプライヤ側の計算機環境0101、0102と接続されている。
図1に明らかなように、サプライヤの仮想計算機環境0109、0110の内部は、OEM側ソフトウェア資産0103と内部ネットワーク0115を通じ接続されているソフトウェア資産複製0111、0112と、サプライヤ側のソフトウェア資産を用いた協調シミュレーションを制御する、言い換えるなら協調シミュレーションの一部を起動するシミュレーション実行エージェント0114と、サプライヤ側とソフトウェア資産利用権限の認証を行う認証クエリ生成部0113によって構成されている。
一方、サプライヤ側の計算機環境0101、0102は、OEM側計算機環境0100に送付する仮想計算機環境を生成する仮想計算機生成部0104とOEM側からのソフトウェア資産利用権限の認証を行う認証クエリ照合部0105と、OEM側に送付する仮想計算機環境0110、0109に複製されるソフトウェア資産の原本となるソフトウェア資産0103b、0103cによって構築される。
続いて、図6A、6Bを用いて、本実施例の計算機システムが管理する協調シミュレーションとキー認証の流れを説明する。
図6A、6Bにおいて、0600から0608、0612から0613、0615から0616、0619から0620にステップはサプライヤ側計算機環境0101、0102で、その他の0601、0609から0611、0614、0617から0618のステップはOEM側計算機環境0100で実行される。なお、図6A、6Bは、図示の都合上、前段と後段に分離して図示したものであり、丸A、B、Cそれぞれにおいて連結する。
まず、ステップ0600に対応する初期状態では、サプライヤ側計算機環境0101、0102はOEM側計算環境0100からの協調シミュレーション実行要求を待ち受ける。なお、本実施例においては、OEMとサプライヤ間で予め協調シミュレーションを行うモデルの組合せは確定しているものとし、ある協調シミュレーションで用いるモデルの組合せに対して一意に決まる識別子が事前に与えられているものとする。
次に、ステップ0610で、OEM側から協調シミュレーション実行要求が、1または複数のサプライヤに対して発行され、それが各サプライヤ側計算機環境0101、0102で受け取られると、サプライヤ側計算機環境0101、0102はステップ0602に進む。サプライヤ側計算機環境は受け取った協調シミュレーション実行要求の内容を解析し、そこに記載される前述の協調シミュレーションで用いるモデルの組合せと対応する識別子を取得する。そして、その識別子を元に協調シミュレーションで用いるモデルの組合せを取得する。その情報を元に以下のステップ603、604、605を処理する。
ステップ603では、協調シミュレーションで用いるソフトウェア資産を全て利用したシミュレーションモデルとして、サプライヤ側計算機環境0101、0102で動作する認証クエリ照合部0105を生成する。次にステップ604では、OEM側が要求するシミュレーションモデルとして、協調シミュレーションで用いないソフトウェア資産、すなわち、OEM側計算機環境0100に導入されたソフトウェア資産と、協調シミュレーションで用いるソフトウェア資産の集合の差分を全て用いるシミュレーションモデルとして、OEM側で動作する認証クエリ生成部0113を生成する。
OEM側計算機環境で動作する認証クエリ生成部は、認証キーを、ユーザAの計算機環境で実行される協調シミュレーションでは用いられていない、ユーザBのソフトウェア資産の複製を利用して生成する。一方、サプライヤ側計算機環境で動作する認証クエリ照合部は、OEM側計算機環境上で実行される協調シミュレーションで用いられている、サプライヤのソフトウェア資産の一部または全体を用いて照合を行う。
ステップ0605では、協調シミュレーションで用いるモデルを全て動作させることができる、ソフトウェア資産を全て導入している仮想計算機環境を生成する。あるいは既に作成されたものがキャッシュされている場合、その仮想計算機環境を用いる。次のステップ606で、先のステップ0605で生成した仮想計算機環境に対して、ステップ604で生成した認証クエリ生成部0113を導入した仮想計算機環境を、OEM側計算機環境0100の仮想計算機環境操作エージェント0108に対して送信する。以上の5ステップの具体的実装例は、後で図10を用いて詳説する。
図6A、6Bにおいて、以降のステップはOEM側での協調シミュレーションの実行と、それと並列して実行される。ステップ0607から0618に対し、具体的な認証キーの実装を用いたフローについて、後に図11を用いて詳説する。ステップ0607において、サプライヤ側計算機環境0101、0102は、ステップ0603で生成した認証クエリ照合部0105を用いてシミュレーションを開始する。そして、OEM側計算機環境0100からの問い合わせクエリの受信を待ち受ける(ステップ0608)。
同時にOEM側計算機環境0100では、ステップ0606でサプライヤ側計算機環境0101から送信された、協調シミュレーションを実行するための仮想計算機環境の受信が終了すると、仮想環境操作エージェント0108は受信した仮想計算機環境0109、0110を実行開始する。仮想計算機環境の開始をトリガとして、シミュレーション実行エージェント0114が起動し協調シミュレーションのサプライヤ側のモデル分が開始され、協調シミュレーションのうちOEM側のモデルは既にステップ0601の段階で起動されて、サプライヤ側のモデルの応答を待機しているため、自動的に協調シミュレーションが開始され、データの記録が始まる(ステップ0609)。
協調シミュレーションの開始と同時に、仮想環境操作エージェント0108は認証クエリ生成部0113を起動する。認証クエリ生成部0113はその生成時に定められた、一定のシミュレーション時間毎にシミュレーションの実行時間や仮想計算機環境の識別子等を元に、ある長さのビット列を生成し、それを問い合わせクエリとしてサプライヤ側計算機環境0101、0102の認証クエリ照合部0105へ送信する(ステップ0610)。
送信が終了すると、認証クエリ生成部0105はOEM側計算機環境0100から認証クエリが送信されてくるのを待ち受け、その間OEM側計算機環境0100での協調シミュレーションは続行される(ステップ0611)。
ステップ0608から問い合わせクエリの待受状態にあったサプライヤ側の認証クエリ照合部0105は、問い合わせクエリを受信すると、そこに含まれるシミュレーション実行時間等を元にある長さのビット列を生成し、それを認証クエリとしてOEM側計算機環境0100の認証クエリ生成部0113に送信する(ステップ0612)。送信後、サプライヤ側の認証クエリ照合部0113は、OEM側計算機環境0100から送信される応答クエリを待受ける(ステップ0613)。
認証クエリを受け取ったOEM側計算機環境0100の認証クエリ生成部0113は、この認証クエリに含まれる情報をもとに、認証クエリ生成部0113を構成するシミュレーションモデルから内部状態を抜き出し、応答クエリとしてサプライヤ側計算機環境の認証クエリ照合部0105まで送信する(ステップ0614)。
サプライヤ側計算機環境0101、0102で、認証クエリ照合部0105が応答クエリを受信すると、認証クエリ照合部0105はクエリに含まれるシミュレーションモデルの内部状態と、認証クエリ照合部0105に含まれるシミュレーションモデルの内部状態を比較し、期待された値であるかどうか判定する。判定結果はOEM側計算環境0100の仮想環境操作エージェント0108へと送信する(ステップ0615及びステップ0616)。
OEM側計算環境0100の仮想環境操作エージェント0108が受け取った判定結果が合格である場合、協調シミュレーションが続行され、ステップ0610に戻り、再度、問い合わせクエリ生成から認証フローが繰り返される。不合格であった場合、ライセンスの不正利用があったと判断し、仮想環境操作エージェント0108は協調シミュレーションを行なっている仮想計算機環境0109、0110を破棄し、協調シミュレーションを強制停止させる。
もしも協調シミュレーションがすでに終了していた場合は、ステップ0610で生成される問い合わせクエリが不変値となるため、認証フローが不合格と判定され、仮想計算機環境を破棄されるため、一度目の協調シミュレーションが終了した時点で、その結果にかかわらずサプライヤ側から送信した仮想計算機環境0109、0110はOEM側計算機環境0100から消去される。仮想計算機環境の破棄手法は、仮想計算機環境の構築に使う、仮想OS(Operating System)マネージャの機能を使う手法のほか、仮想計算機環境内部でファイルシステムを破壊するなどの方法が考えられるが、本システムはいずれの手法も利用可能である。
またサプライヤ側でステップ616のあと、認証フローの結果が合格と判定された場合は、協調シミュレーションが続行し、キー認証フローも継続させる必要があるため、ステップ0608に戻り、再度問い合わせクエリの待受をする。結果が不合格であった場合、サプライヤ側計算機環境で実行中の認証クエリ照合部0105に含まれるシミュレーションを停止させる(ステップ0619)。その後、本協調シミュレーションのために生成された、認証クエリ照合部0105を破棄し、ステップ600に戻りOEM側の協調シミュレーション要求の待ち受け状態に戻る。
図7は、図1に示した本実施例の計算機システムにおける、OEM側計算機環境0100に送付された仮想計算機環境0109、0110の内部構造の一例の詳細と、それらの接続関係を示す図である。
OEM側計算機環境0100にはまず、仮想環境操作エージェント0108が1またはこのOEMと協調シミュレーションを実行するサプライヤの数だけ導入されている。仮想環境操作エージェント0108は以下の4コンポーネントによって構築されている。
すなわち、サプライヤ側から送信される仮想計算機環境を受信する仮想計算機受信部0712と、仮想計算機受信部が受信完了した後に、その仮想計算機環境を起動する仮想計算起動コマンド0713と、サプライヤ側計算機環境とキー認証を行う際にそのキーのやり取りを行う、キー送受信部0715と、キー送受信部0715からの要求を受け、仮想計算機環境内部で実行されているシミュレーションを停止させ、仮想計算機環境を破棄する仮想計算機破棄コマンド0714の4コンポーネントである。
仮想計算機起動コマンド0713と、仮想計算機破棄コマンド0714は、仮想マシンの起動と停止及び仮想計算機を構成するファイルの破棄を行うため、この仮想計算機環境に動作を管理する仮想計算機コントローラ0706と接続されている。なお、この仮想計算機コントローラ706は既存の仮想計算機ソフトウェアの機能をそのまま利用することが可能である。
仮想計算機環境0110内部にはシミュレーション実行エージェント0114と、認証クエリ生成部0113と、サプライヤ側のソフトウェア資産の全体または部分集合の複製0111と、サプライヤ側の協調シミュレーション0700が存在する。
この協調シミュレーション0700はシミュレータ間インターフェイス0704を用いてOEMや他サプライヤ仮想計算機上の協調シミュレーション0701と接続されている。
認証クエリ生成部0113は、問い合わせクエリ生成プログラム0702とクエリ照合プログラム0703によって構成されている。問い合わせクエリ生成プログラム0702は、シミュレーション実行エージェント0114のシミュレーション実行時間取得コマンド0710の出力を受取り、問い合わせクエリを生成し、シミュレーション実行エージェント0114のキー送受信部0711へと送る。また、クエリ照合プログラム0703はキー送受信部0711から送られる認証クエリを受取り、クエリ照合プログラム0703内部の状態を用いて応答クエリを生成して、キー送受信部0711へと送信する。
なお、サプライヤ側の協調シミュレーション0700、及び認証クエリ生成部0113を構成する、問い合わせクエリ生成プログラム0702とクエリ照合プログラム0703のいずれも、サプライヤ側ソフトウェア資産の全体または部分集合の複製を用いて動作するシミュレータプログラムである。特に、認証クエリ生成部0113では、OEM側の計算機環境0100で実行される協調シミュレーションでは用いられていないサプライヤ側ソフトウェア資産の複製を利用することにより、OEM側のユーザがサプライヤ側ソフトウェア資産を不正使用することを禁止可能とできる。
シミュレーション実行エージェント0114は、サプライヤ側協調シミュレーション0700と認証クエリ生成部0113の動作をコントロールするコンポーネントであり、以下の3つのコンポーネントによって構成される。
シミュレーション起動用コマンド0708は仮想環境操作エージェント0108の仮想計算機起動コマンド0713と連動し、この仮想計算機環境の起動をトリガとして実行が開始される。すなわち仮想計算機環境が実行されると自動で協調シミュレーションが実行開始される構造となっている。
シミュレーション停止コマンド0709は、仮想環境操作エージェント0108の仮想計算機破棄コマンド0714と連動しており、この仮想計算機環境0110が破壊される前に協調シミュレーション0700を安全に停止するために実装されている。
シミュレーション実行時間取得コマンド0710は、問い合わせクエリ生成プログラム0702で利用されるシミュレーション実行時間を出力するプログラムであって、サプライヤ側協調シミュレーション0700を実行しているシミュレータのいずれか、または全体、またはそれらを管理しているシミュレータ間インターフェイスで管理されている協調シミュレーションの実行時間を取得することが可能である。
以上がシミュレーション実行エージェント0114を構成するコンポーネントの機能である。
続いて、図8を用いて、図1のサプライヤ側計算機環境0101、0102の具体的構成例を説明する。
図8はサプライヤ側計算機環境0101、0102の認証クエリ照合部0105と仮想計算機生成部0104の詳細な構成の一例と、それらのOEM側計算機環境0100との接続を示す。
図8に明らかなように、これらは協調シミュレーション要求受信部0802と、仮想計算機生成部0104と、認証クエリ照合部0105と、サプライヤ側のソフトウェア資産0805と、仮想計算機テンプレート用データベース(DB)0804、仮想計算機テンプレート導入ソフトDB0803によって構成されている。なお、サプライヤ側ソフトウェア資産0805は、先のソフトウェア資産103b、103cに対応する。
協調シミュレーション要求受信部0802はOEM側の仮想環境操作エージェント0108の協調シミュレーション実行指示送信部0800から送信された協調シミュレーション実行要求を受取り、そのクエリ中に記載された実行したい協調シミュレーションの識別子を抽出し、仮想計算機生成部0104に出力する。
仮想計算機生成部0104はOEM側計算機環境0100の望む協調シミュレーションを実現可能な仮想計算機環境を生成し、さらにソフトウェアの利用権限を認証するプログラムを生成する機能を持ち、2つのDBを含めた10コンポーネントで構成される。
まず、ソフトウェア資産利用ハッシュ生成部0816は、協調シミュレーション要求受信部0802が出力する、OEMが望む協調シミュレーション構成の識別子を受取り、ソフトウェア資産利用ハッシュ値と呼ばれる、ある長さのビット列を生成する。
一方、仮想計算機選択部0817は、OEMが望む協調シミュレーション構成の識別子を元に、協調シミュレーションの実行に必要なソフトウェアの集合を生成する。その集合値を元に、仮想計算機テンプレート導入ソフトDB0803を検索する。そして、仮想計算機テンプレート導入ソフトDB0803が保持する、導入されているソフトウェア群が前記集合知を完全に含むデータを探し、対応する仮想計算機テンプレート名を取得する。
次に仮想計算機選択部0817は、仮想計算機テンプレート用DB0804を上記で取得した仮想計算機テンプレート名で検索し、対応する仮想計算機テンプレートを取得する。もし対応する仮想計算機テンプレートが見つからなかった場合、仮想計算機選択部0817は協調シミュレーションの実行に必要なソフトウェアを全て含む仮想計算機環境を生成し、仮想計算機テンプレート用DBと仮想計算機テンプレート導入ソフトDB0803にデータを追加し、その新しい仮想計算機環境を用いる。
得られた仮想計算機テンプレートは2つにコピーされ、一つは送信用仮想計算機生成部0811に、もうひとつはローカル用仮想計算機生成部0810に出力される。
仮想計算機テンプレート用DB0804は協調シミュレーションやキー認証に用いる仮想計算機のテンプレートとなる仮想計算機を構成するファイルを保存するデータベースである。各仮想計算機のテンプレートは固有の識別子を付与され、仮想計算機構成ファイルの実体またはそのファイルパスとセットされデータベースに格納される。各仮想計算機のテンプレートには1つ以上のソフトウェア資産と、シミュレーション実行エージェントが一つ導入されている。
問い合わせクエリ生成プログラム生成部0812は協調シミュレーション要求と、ソフトウェア資産利用ハッシュ値を用いて問い合わせクエリ生成プログラムを生成し、送信用仮想計算機生成部0811に送信する。
クエリ照合プログラム生成部0813はソフトウェア資産利用ハッシュ値を用いてクエリ照合プログラムを生成し、送信用仮想計算機生成部0811に送信する。
キー認証プログラム生成部0814はソフトウェア資産利用ハッシュ値を用いてキー認証プログラムを生成し、ローカル用仮想計算機生成部0810に送信する。
クエリ応答プログラム生成部0815はソフトウェア資産利用ハッシュ値を用いて問い合わせクエリ応答プログラムを生成し、ローカル用仮想計算機生成部0810に送信する。
上記の4コンポーネントの動作フローは後で図10を用いて詳説する。
送信用仮想計算機生成部0811は問い合わせクエリ生成プログラム、クエリ照合プログラムを仮想計算機生成部0104によって生成された仮想計算機テンプレートの内部に挿入して、認証クエリ生成部を作成し、OEM側計算機環境0100の仮想環境操作エージェント0108中の仮想計算機受信部0800に送信する。
ローカル用仮想計算機生成部0810はキー認証プログラム0819、クエリ応答プログラム0820を仮想計算機生成部0104によって生成された仮想計算機テンプレート内部に挿入して、認証クエリ照合部0105にローカル用仮想計算機0818として送り、実行開始する。
これらのキー認証プログラム0819及びクエリ応答プログラム0820はソフトウェア資産を用いるシミュレーションプログラムとして動作し、キー送信部0821を仲介して、OEM側計算機環境0100との間との認証キーの交換を行う。
図10は、図8で説明した認証フローで用いることが可能な認証キーを生成/照合する4つのプログラムを生成するプロセスの一具体例を示す図である。
本プロセスは5つのコンポーネントに分かれており、4つのプログラムに対し共通な部品を生成するキー生成共通部分であるステップ1000からステップ1008と、問い合わせクエリ生成プログラム生成部0812に対応するステップ1010、ステップ1011、キー認証プログラム生成部0814に対応するステップ1020からステップ1023、クエリ応答プログラム生成部0815に対応するステップ1030からステップ1033、クエリ照合プログラム生成部0813に対応するステップ1040からステップ1042、によって構成される。
なお、本実施例の計算機システムにあっては、図10で示すような認証キー生成等のプログラムの生成プロセスでなくとも、シミュレータ上で実装されたキー生成と照合が可能な4つのプログラムを用いて、何らかの既存の暗号のエンコード・デコード処理を行う構成であればいかなる内部実装、またはフローを利用することが可能である。以下、図10に示す各ステップについて順次説明する。
(ステップ1000)
OEM側での協調シミュレーションに用いる仮想計算機に導入されているソフトウェア資産のリストを仮想計算機テンプレート導入ソフトDB0803から取得する。このリストをLと定義する。
(ステップ1001)
取得したリストLと現在時刻を元に後のステップで共通して利用される乱数シードを複数生成する。
(ステップ1002)
乱数シード値を一つ使い自然数N(128<N<1024)を生成する。サイズN×Nの行列を定義し、行列の要素を0、1、2からランダムに選び初期化する。
(ステップ1003)
サイズN×Nの単位行列を定義する。
(ステップ1004)
ステップ1002とステップ1003で生成した行列の各要素の論理和を取り、一つの行列Rを得る。そして、この行列Rを隣接行列とする頂点数Nの有向グラフGを定義する。
(ステップ1005)
リストLの要素数をKと定義する。
(ステップ1006)
GをK個の部分グラフに分割する。
(ステップ1007)
部分グラフのリストと各部分グラフに含まれる頂点集合を取得し、それぞれSL、VSLと定義する。
(ステップ1008)
ことなる部分グラフに含まれる2つの頂点を接続する枝の集合をカットと定義し、各部分グラフ間のカットのリストをKLと定義する。上記の共通ステップで定義した、 SL、VSL、KL、N、Lを用いて以下のステップで実際にキー生成・照合プログラムを生成する。
(ステップ1010)
問い合わせクエリ生成プログラム生成部0812において、乱数シード値の時間でオーバーフローするカウンタ回路とオーバーフロー時にシミュレーション時間を出力するプログラムを生成。
(ステップ1011)
ステップ1010で生成したプログラムをLに含まれる適当なソフトウェア資産上で実装させたプログラムを問い合わせクエリ生成プログラムとして保存する。
(ステップ1020)
キー認証プログラム生成部0814において、まずリスト中のサプライヤ側で消費するべきソフトウェア資産のリストを取得し、L1と定義する。
(ステップ1021)
SLの要素一つまたは複数に対しL1に含まれるソフトウェア資産を一つ対応させた連想リストを生成しAL0とする。
(ステップ1022)
VSLのそれぞれの要素に含まれる頂点集合をビットとみなし、同一VSLに含まれる頂点同士の有向枝を配線とみなしたバイナリカウンタを構築し、AL0上で対応するソフトウェア資産上で動作するシミュレーションモデルとして生成する。グラフG中のカットの部分、すなわちVSLの各要素をまたぐ有向枝を、シミュレーション間のインターフェイス接続であるとみなして接続する。
(ステップ1023)
ステップ1022で構築した、複数個のシミュレーションモデルがシミュレータ間接続によって接続されたプログラムをキー認証プログラムとして保存する。
(ステップ1030)
クエリ応答プログラム生成部0813において、リスト中のOEM側で消費するべきソフトウェア資産のリストを取得しL2と定義し、その要素数をMと定義する。
(ステップ1031)
シミュレーション時間を入力とし1からM(M−1)/2までの正数をランダムに発生させるプログラムを生成する。
(ステップ1032)
前ステップで生成したプログラムをL2に含まれる適当なソフトウェア資産上で実装させたプログラムを問い合わせクエリ応答プログラムとして保存する。
(ステップ1040)
クエリ照合プログラム生成部0815において、SLの要素からランダムにM個を抽出したものをSSLと定義する。SSLの各要素に対し、L2に含まれるソフトウェア資産一つを対応付けた連想リストAL1を生成する。
(ステップ1041)
SSLのそれぞれの要素に含まれる頂点集合をビットとみなし、同一のSSL要素に含まれる頂点同士の有向枝を配線とみなしたバイナリカウンタを構築し、
AL1上で対応するソフトウェア資産上で動作するシミュレーションモデルとして生成する。グラフG中のカットの部分、すなわちSSLの各要素をまたぐ有向枝を、シミュレーション間のインターフェイス接続であるとみなして接続する。
(ステップ1042)
ステップ1041で構築した、複数個のシミュレーションモデルがシミュレータ間接続によって接続されたプログラムをクエリ照合プログラムとして保存する。
図11では図10で生成される認証キーを用いた、OEM側とサプライヤ側間のトランザクションの一例を示す。
(ステップ1100)
問い合わせクエリ生成プログラムに予め導入されている、 カウンタがオーバーフローした際に実行時間を取得して問い合わせクエリとしてキー送受信部に送信する。オーバーフローしたカウンタは協調シミュレーションが続く限り、引き続きインクリメントし続ける。これによってステップ1100以下の工程は協調シミュレーション実行中に一定周期で実行される。
(ステップ1101)
クエリ応答プログラムが問い合わせクエリを受信すると、クエリ応答プログラムの認証クエリ生成関数がトリガされる。認証クエリ生成関数にはこの関数生成時に定数Mが定義されている。定数Mの値は前述したOEM側で消費されるべきソフトウェア資産の数に相当する。
認証クエリ生成関数は受信した問い合わせクエリのシミュレーション実行時間をシードとして、1とm(m−1)/2の間の範囲の正数一つをランダムに選択し、カット選択値と定義する。またこの乱数値を受信したシミュレーション実行時間に加算した結果を、ターゲットシミュレーション時間と定義する。カット選択値とターゲットシミュレーション時間を組にして認証クエリとして送信する。
下記のステップ1102とステップ1103はそれぞれサプライヤ側、OEM側で並行して実行される。
(ステップ1102)
キー認証プログラムは認証クエリをクエリ応答プログラムと共有している。上記がステップ1101によって認証クエリが更新された場合、キー認証プログラムはこれを用いて、OEM側が返送してくることが期待される、応答クエリの期待値を算出する。キー認証プログラムに組み込まれた、シミュレータをまたぐバイナリカウンタをターゲットシミュレーション時間まで動作させ、停止する。そして、カット選択値に対応するシミュレータ間インターフェイスのその時点でやり取りしている値を取得する。これを応答クエリの期待値として一時保存される。
(ステップ1103)
クエリ照合プログラムが認証クエリを受信すると、クエリ照合プログラムは応答クエリを算出する。クエリ照合プログラムに組み込まれた、シミュレータをまたぐバイナリカウンタをターゲットシミュレーション時間まで動作させ、停止する。そして、カット選択値に対応するシミュレータ間インターフェイスのその時点でやり取りしている値を取得する。これを応答クエリとして送信する。
(ステップ1104)
キー認証プログラムはクエリ照合プログラムから送信された応答クエリを受信すると、ステップ1102で予め計算した応答クエリ期待値と、受信した応答クエリを比較し、その結果をOEM側のキー送受信部に送信する。
(ステップ1105)
キー送受信部が応答クエリの比較結果を受信、一致の場合シミュレーションを続行する、すなわち(ステップ1100)に戻る。不一致または一定期間結果が帰らなかった場合は、仮想環境操作エージェントに実装された仮想計算機破棄コマンドを実行し、シミュレーションを強制的に停止する。
以上詳述してきたように、本発明は複数のソフトウェアが連動して高速に動作する計算機システム、または開発システムのプログラムに適用することができる。そして、例えば、サプライヤ側が予め設定した利用条件下でのみOEM側に送付した仮想計算機が動作し、その条件から外れると共に実行中の仮想計算機が消去される事により、ソフトウェア資産の不正な利用・複製を防止することが可能である。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。また、実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。更に、上述した各構成、機能、処理部等は、それらの一部又は全部を実現するプログラムを作成する例を説明したが、それらの一部又は全部を例えば集積回路で設計する等によりハードウェアで実現しても良いことは言うまでもない。
0100 A社計算機環境
0101 B社計算機環境
0102 C社計算機環境
0103 A社ソフトウェア資産
0103b B社ソフトウェア資産
0103c C社ソフトウェア資産
0104 仮想計算機生成部
0105 認証クエリ照合部
0107 通信経路
0108仮想環境操作エージェント
0110 B社仮想計算機環境
0109 C社仮想計算機環境
0111 B社ソフトウェア資産複製
0112 C社ソフトウェア資産複製
0113 認証クエリ生成部
0114 シミュレーション実行エージェント
0115 内部ネットワーク
0700 サプライヤ側協調シミュレーション
0701 他仮想環境上の協調シミュレーション
0702 問い合わせクエリ生成プログラム
0703 クエリ照合プログラム
0704 シミュレータ間インターフェイス
0706 仮想計算機コントローラ
0708 シミュレーション起動用コマンド
0709 シミュレーション停止コマンド
0710 シミュレーション実行時間取得コマンド
0712 仮想計算機受信部
0713 仮想計算機起動コマンド
0714 仮想計算機破棄コマンド
0715 キー送受信部
0800 協調シミュレーション実行指示送受信部
0802 協調シミュレーション要求受信部
0803 仮想計算機テンプレート導入ソフトDB
0804 仮想計算機テンプレート用DB
0806 仮想計算機テンプレート
0807 キー送受信部
0808 クエリ応答プログラム
0809 キー認証プログラム
0810 ローカル用計算機生成部
0811 送信用仮想計算機生成部
0812 問い合わせクエリ生成プログラム生成部
0813 クエリ照合プログラム生成部
0814 キー認証プログラム生成部
0815 クエリ応答プログラム生成部
0816 ソフトウェア資産利用ハッシュ生成部
0817 仮想計算機選択部
0818 ローカル用仮想計算機
0819 キー認証プログラム
0820 クエリ応答プログラム
0821 キー送受信部
0900 ソフトウェア資産全体
0901 ある協調シミュレーションで利用されないソフトウェア資産
0902 ある協調シミュレーションで利用されるソフトウェア資産
0903 OEM側で本システムが空費するべきソフトウェア資産
0904 サプライヤ側で本システムが空費するべきソフトウェア資産
0905 認証クエリ生成部が消費するソフトウェア資産
0906 認証クエリ照合部が消費するソフトウェア
1200 コンピュータ
1201 プロセッサ
1202 コントローラ
1203 メモリ
1204 アクセラレータ
1205 ネットワークインタフェース

Claims (15)

  1. 計算機システムであって、
    通信経路を介して接続される、それぞれソフトウェア資産を有するユーザA、及びユーザBの計算機環境を含み、
    前記ユーザBの計算機環境が、当該ユーザBの計算機環境が所有する前記ソフトウェア資産の複製と、前記ユーザAが要求するシミュレーションモデルを含む仮想計算機環境を、前記ユーザAの計算機環境に送信することにより、協調シミュレーションを実現する、ことを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記シミュレーションモデルは、
    前記ユーザAの計算機環境上で実行される前記協調シミュレーションの実行状態と、前記ユーザBのソフトウェア資産の複製の利用状況を元に認証キーを生成し、生成した前記認証キーを前記ユーザBに送信する認証クエリ生成部を含み、
    前記ユーザBの計算機環境は、前記ユーザAの前記認証クエリ生成部から送信された前記認証キーを、前記ユーザAに対し許可した前記フトウェア資産の利用状況を元に照合する認証クエリ照合部を備える、
    ことを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記ユーザAの計算機環境は、
    前記ユーザAが、前記ユーザBのソフトウェア資産を不正に利用していると判断された時に、前記仮想計算機環境を破壊し、前記協調シミュレーションを停止して前記ユーザAの計算機環境上からの消去を行う、
    ことを特徴とする計算機システム。
  4. 請求項2に記載の計算機システムであって、
    前記ユーザAの前記認証クエリ生成部は、
    前記認証キーを、前記ユーザAの計算機環境上で実行される前記協調シミュレーションでは用いられていない、前記ユーザBのソフトウェア資産の複製を利用して生成する、
    ことを特徴とする計算機システム。
  5. 請求項2に記載の計算機システムであって、
    前記ユーザBの計算機環境の前記認証クエリ照合部は、
    前記ユーザAの計算機環境上で実行される前記協調シミュレーションで用いられている、前記ユーザBのソフトウェア資産の一部または全体を用いて照合を実行する、
    ことを特徴とする計算機システム。
  6. ネットワークと、
    前記ネットワークに接続される、ソフトウェア資産を有するユーザAの計算機環境と、
    前記ネットワークに接続される、ソフトウェア資産を有するユーザBの計算機環境とを備え、
    前記ユーザBの計算機環境は、
    当該ユーザBの計算機環境が所有する前記ソフトウェア資産の複製と、前記ユーザAが前記ユーザBに要求するシミュレーションモデルとを含む仮想計算機環境を生成する仮想計算機生成部を備え、
    前記ユーザAの計算機環境は、
    前記ユーザBの計算機環境から受信した前記仮想計算機環境と、前記ユーザAの前記ソフトウェア資産を用いて協調シミュレーションを実行する、
    ことを特徴とする計算機システム。
  7. 請求項6に記載の計算機システムであって、
    前記ユーザAの計算機環境は、
    前記ユーザAの計算機環境で実行される前記協調シミュレーションの実行状態と、前記ユーザBのソフトウェア資産の複製の利用状況を元にして認証キーを生成する認証クエリ生成部を、前記シミュレーションモデルとして受信し、
    前記ユーザBの計算機環境は、
    前記ユーザAの計算機環境で動作する前記認証クエリ生成部から送信される前記認証キーを、前記ユーザAに対し許可した前記フトウェア資産の利用状況を用いて照合する認証クエリ照合部を備える、
    ことを特徴とする計算機システム。
  8. 請求項7に記載の計算機システムであって、
    前記ユーザAの計算機環境は、
    前記認証クエリ照合部で、前記ユーザAが前記ユーザBのソフトウェア資産を不正に利用していると判定した場合、前記仮想計算機環境を破壊する破壊コマンドを生成する仮想環境操作エージェントを備え、
    前記仮想環境操作エージェントが前記破壊コマンドを生成した場合、前前記ユーザAの計算機環境から前記協調シミュレーションを消去する、
    ことを特徴とする計算機システム。
  9. 請求項7に記載の計算機システムであって、
    前記ユーザAの計算機環境で動作する前記認証クエリ生成部は、
    前記ユーザAの計算機環境で実行される前記協調シミュレーションでは用いられていない、前記ユーザBのソフトウェア資産の複製を利用して前記認証キーを生成する、
    ことを特徴とする計算機システム。
  10. 請求項7に記載の計算機システムであって、
    前記ユーザBの計算機環境で動作する前記認証クエリ照合部は、
    前記ユーザAの計算機環境上で実行される前記協調シミュレーションで用いられている、前記ユーザBのソフトウェア資産の一部または全体を用いて照合を行う、
    ことを特徴とする計算機システム。
  11. 計算機環境で実行されるプログラムであって、
    ユーザAの計算機環境で、
    ネットワークを介して、ユーザBのソフトウェア資産の複製と、前記ユーザAが前記ユーザBに要求するシミュレーションモデルとを含む仮想計算機環境を受信し、
    前記仮想計算機環境と、前記ユーザAのソフトウェア資産とを用いて協調シミュレーションを実行し、
    前記ユーザAの計算機環境上で実行される前記協調シミュレーションの実行状態と、前記ユーザBのソフトウェア資産の複製の利用状況とを用いて認証キーを生成する、
    ことを特徴とするプログラム。
  12. 請求項11に記載のプログラムであって、
    前記ユーザAの計算機環境で、
    前記ユーザBの計算機環境で、前記ユーザAが前記ユーザBのソフトウェア資産を不正に利用していると判定した場合に、前記仮想計算機環境を破壊する破壊コマンドを生成し、前記破壊コマンドに従い、前記ユーザAの計算機環境から前記協調シミュレーションを消去する、
    ことを特徴とするプログラム。
  13. 請求項11に記載のプログラムであって、
    前記ユーザAの計算機環境で、
    前記認証キーを、前記ユーザAの計算機環境で実行される前記協調シミュレーションでは用いられていない、前記ユーザBのソフトウェア資産の複製を利用して生成する、
    ことを特徴とするプログラム。
  14. 請求項11に記載のプログラムであって、
    前記ユーザBの計算機環境で、
    前記ユーザAの計算機環境から送信される前記認証キーを受信し、前記ユーザAに対し許可した前記フトウェア資産の利用状況を用いて、
    前記認証キーを照合する、ことを特徴とするプログラム。
  15. 請求項14に記載のプログラムであって、
    前記ユーザBの計算機環境で、
    前記ユーザAの計算機環境上で実行される前記協調シミュレーションで用いられている、前記ユーザBのソフトウェア資産の一部または全体を用いて照合を実行する、
    ことを特徴とするプログラム。
JP2014557256A 2013-01-17 2013-01-17 計算機システム、及びプログラム Expired - Fee Related JP5956613B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/050860 WO2014112089A1 (ja) 2013-01-17 2013-01-17 計算機システム、及びプログラム

Publications (2)

Publication Number Publication Date
JP5956613B2 true JP5956613B2 (ja) 2016-07-27
JPWO2014112089A1 JPWO2014112089A1 (ja) 2017-01-19

Family

ID=51209210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014557256A Expired - Fee Related JP5956613B2 (ja) 2013-01-17 2013-01-17 計算機システム、及びプログラム

Country Status (3)

Country Link
US (1) US20150370584A1 (ja)
JP (1) JP5956613B2 (ja)
WO (1) WO2014112089A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223074B2 (en) * 2015-12-11 2019-03-05 International Business Machines Corporation Determining the identity of software in software containers
US11314907B2 (en) * 2016-08-26 2022-04-26 Hitachi, Ltd. Simulation including multiple simulators
IL272846B (en) 2017-08-23 2022-08-01 Hashlit Inc Dba Corsha Authentication is streamed using concatenated identifiers
US11343243B2 (en) 2017-08-23 2022-05-24 Corsha, Inc. Machine-to-machine streaming authentication of network elements
US11080387B1 (en) * 2020-03-16 2021-08-03 Integrity Security Services Llc Validation of software residing on remote computing devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011016327A1 (ja) * 2009-08-07 2011-02-10 株式会社日立製作所 計算機システム、プログラム及びシミュレーションに使用する計算資源を割り当てる方法
JP2011086014A (ja) * 2009-10-14 2011-04-28 Hitachi Ltd 疑似環境提供システム
JP2012118674A (ja) * 2010-11-30 2012-06-21 Internatl Business Mach Corp <Ibm> クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
WO2010097090A2 (en) * 2009-02-25 2010-09-02 Aarhus Universitet Controlled computer environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011016327A1 (ja) * 2009-08-07 2011-02-10 株式会社日立製作所 計算機システム、プログラム及びシミュレーションに使用する計算資源を割り当てる方法
JP2011086014A (ja) * 2009-10-14 2011-04-28 Hitachi Ltd 疑似環境提供システム
JP2012118674A (ja) * 2010-11-30 2012-06-21 Internatl Business Mach Corp <Ibm> クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013005599; 伊藤康宏,外2名: 'Virtual HILS:システム全体仮想化による、組込みソフト検証の高効率化' 情報処理学会研究報告 2011 April[DVD-ROM] , 20110415, 一般社団法人情報処理学会 *

Also Published As

Publication number Publication date
JPWO2014112089A1 (ja) 2017-01-19
WO2014112089A1 (ja) 2014-07-24
US20150370584A1 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
CN109639406B (zh) 基于区块链和ipfs的高效信任解决方法
JP7162677B2 (ja) 特に適合性追跡用の、データを供給するためのコンピュータ実装方法
EP3467650B1 (en) Controlling user creation of data resources on a data processing platform
CN109714348B (zh) 基于区块链实现的权限处理方法、装置、设备和介质
JP5956613B2 (ja) 計算機システム、及びプログラム
KR102618665B1 (ko) 블록체인을 사용한 버전 이력 관리
CN112313908B (zh) 用于控制和/或监控装置的方法和控制系统
CN111651770B (zh) 一种基于云计算的安全仿真计算系统及存储介质
CN103902477A (zh) 3d云锁
CN111492355A (zh) 用于控制和/或监控装置的方法和控制系统
CN114626088A (zh) 基于算法互联的隐私计算平台的任务处理方法及装置
CN113939778B (zh) 控制系统、控制装置以及管理方法
CN115422598A (zh) 一种基于git系统的cad图纸版本管理方法
CN111869165B (zh) 用于控制和/或监控装置的方法和控制系统
CN118484219A (zh) 基板管理控制器集群固件升级方法、产品、设备及介质
CN101208655B (zh) 用于设备认证的硬件功能扫描
JP7445685B2 (ja) オープンインタフェースの管理方法、電子機器、及び記憶媒体
CN114139114A (zh) 一种基于前端低代码开发维护系统及方法
CN117851985A (zh) 一种分布式云原生软件认证系统及其在私有云中的应用
Banoth et al. A survey on decentralized application based on blockchain platform
CN112184225B (zh) 一种基于区块链的云渲染资源兑换方法
Reed et al. Bulwark: A framework to store iot data in user accounts
KR102393537B1 (ko) 신뢰실행환경에 기반한 소프트웨어 라이선스 관리 방법 및 시스템
US11188687B2 (en) Rule compliance checking and design generation with rule access security
JP7477907B2 (ja) 情報提供システム、情報提供方法及び情報提供プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160616

R150 Certificate of patent or registration of utility model

Ref document number: 5956613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees