JP2005149495A - 非プラットフォーム固有の一意の識別子の生成 - Google Patents

非プラットフォーム固有の一意の識別子の生成 Download PDF

Info

Publication number
JP2005149495A
JP2005149495A JP2004323102A JP2004323102A JP2005149495A JP 2005149495 A JP2005149495 A JP 2005149495A JP 2004323102 A JP2004323102 A JP 2004323102A JP 2004323102 A JP2004323102 A JP 2004323102A JP 2005149495 A JP2005149495 A JP 2005149495A
Authority
JP
Japan
Prior art keywords
operating environment
intermediate operating
computer system
unique identifier
computer
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.)
Withdrawn
Application number
JP2004323102A
Other languages
English (en)
Inventor
William G Brothers
ウィリアム・ジー・ブラザース
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2005149495A publication Critical patent/JP2005149495A/ja
Withdrawn legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 本発明は、プラットフォーム固有ソフトウェアを必要とすることなく一意の識別子を生成する方法を提供する。
【解決手段】 コンピュータシステムにおいて発生するイベントに応じて、コンピュータシステムにおける中間動作環境からイベントタイムスタンプを取り込む。本発明のさらなる実行により、コンピュータシステムにおける中間動作環境からシステム名およびハッシュ値を取り込む。システム名とイベントタイムスタンプとハッシュ値とを結合することにより、プラットフォーム固有ソフトウェアを必要とすることなくコンピュータシステムにおける中間動作環境を一意に識別する一意の識別子を生成する。
【選択図】図3

Description

本発明は、非プラットフォーム固有ソフトウェアにおいて一意の識別子を生成する方法および装置に関する。
コンピュータは、多数のコンポーネント、たとえば実行可能ソフトウェアおよびそのソフトウェアを実行するハードウェアコンポーネントから作製される複雑なシステムである。
実行可能ソフトウェアコンポーネントには、オペレーティングシステム、デバイスドライバおよびソフトウェアアプリケーションがある。
プロトコルは、2つ以上のコンポーネントが通信する方法を指定する。
多数のハードウェアおよびソフトウェアコンポーネントの設計および製造業者が存在するため、多くのコンポーネントに互換性がない。
たとえば、ソフトウェアアプリケーションの大部分は、特定のオペレーティングシステムに固有であり、別のオペレーティングシステムによって実行可能ではない。
基礎にあるソースコードが、異なるオペレーティングシステムに対してコンパイルされるように十分に一般化されている場合であっても、結果としてのソフトウェアアプリケーションを、1つのオペレーティングシステムから別のオペレーティングシステムに、新たなオペレーティングシステムに対するソースコードのコンパイルを必要とせずに移すことはできない。
特定のオペレーティングシステムに対する実行可能なソフトウェアの設計者は、実行可能なソフトウェアアプリケーションを設計し書く時にこの状況を心に留めなければならない。
1つの手法は、特定のハードウェアシステムにおいて、マイクロソフト・コーポレーション(Microsoft Corp)から入手可能なWINDOWS(登録商標) 2000等の単一の特定のオペレーティングシステムによって実行されるソフトウェアアプリケーションを作成することである。
オペレーティングシステムとコンピュータハードウェアとの組合せを、プラットフォームと呼ぶ。
この手法では、ソフトウェアアプリケーションは、他のオペレーティングシステムに移植可能ではなく、たとえば、WINDOWS 2000オペレーティングシステムによって実行されるように設計されたオペレーティングシステム固有のソフトウェアアプリケーションは、アップル・コンピュータ・インコーポレイテッド(Apple Computer, Inc.)から入手可能なMACINTOSH(登録商標)オペレーティングシステムによって実行可能でなく、その逆もまた同様である。
別の手法は、中間実行可能ソフトウェアコンポーネント、すなわち、ソフトウェアアプリケーションとオペレーティングシステムとの間のインタフェースを提供する中間動作環境を利用するようにソフトウェアアプリケーションを設計するというものである。
中間コンポーネントの最も一般的な例は、仮想マシン、たとえば、JAVA(登録商標)仮想マシン(JAVA VMまたはJVM)である。
JAVAは、サン・マイクロシステムズ(Sun Microsystems)から入手可能である。
JAVA VMはオペレーティングシステムに固有に、個々に適合するように書かれなければならないが、JAVA言語ベースのソフトウェアアプリケーションは、基礎にあるオペレーティングシステムとは係りなくいかなるJAVA VMによっても実行可能である。
この手法の不都合は、ソフトウェアアプリケーションは、オペレーティングシステムとインタフェースするためにJVMに依存し、JVMによって提供されない機能にアクセスすることができない、ということである。
たとえば、JVMは、JAVAベースソフトウェアアプリケーションに対し、特定のオペレーティングシステムに対して書かれたソフトウェアアプリケーションがアクセス可能な、オペレーティングシステムによって提供されるいくつかの低レベルネットワーキング機能へのアクセスを提供しない場合がある。
本技術分野において、実行可能なソフトウェアを使用してコンピュータシステムに格納される一意のデータを取得することにより、グローバル一意識別子(global unique identifier)(GUID)および汎用一意識別子(universal unique identifier)(UUID)とも呼ぶ一意識別子(unique identifier)(UID)を生成することが知られている。
しかしながら、本発明者の知るUIDを生成する従来の手法では、UIDを生成するためのプラットフォーム固有情報を使用する必要がある。
ほとんどのコンピュータシステムは、コンピュータシステムからネットワークへのネットワークアクセスを可能にするイーサネット(登録商標)インタフェースカードを有する。
イーサネットカード製造業者間で合意されたラインセンスシステムにより、各イーサネットカードは、イーサネットカードハードウェアの一部として一意の媒体アクセス制御(media access control)(MAC)アドレスを有する。
MACアドレスはイーサネットカード間で一意であるように定義されるため、もっとも頻繁には、MACアドレスまたは生成されたMACアドレス、たとえば擬似MACアドレスが、UIDに対する基礎として使用される。
最小限、既存のUID生成メカニズムは、他のパラメータと組み合わせて入力としてMACアドレスを使用する。
プラットフォーム固有情報を使用してUIDを生成する場合の1つの問題点は、かかるプラットフォーム固有情報にアクセスするために、UID生成メカニズムは、プラットフォーム固有情報を知っており、UIDが生成されるべき各プラットフォームに対する情報にアクセスする方法を有していなければならないということである。
上述したように、1つのプラットフォーム、たとえばMicrosoft Windowsオペレーティングシステムを実行するパーソナルコンピュータに対して開発されたUID生成ソフトウェアは、別のプラットフォーム、たとえばHP−UXオペレーティングシステムを実行しているパーソナルコンピュータで動作することができない。
1つのプラットフォーム、すなわち特定のプロセッサおよびオペレーティングシステム機能に対して書かれた実行可能ソフトウェアは、別のプラットフォームに移すことはできない。
たとえば、Microsoft Windowsベースの実行ファイル(executables)は、HP−UX Unix(登録商標)オペレーティングシステムでは実行しない。
この問題に対する1つの解決法は、Sun MicrosystemsのJava仮想マシン(JVM)および対応するJavaプログラミング言語等の中間動作環境を使用することである。
この手法に基づき、特定のプラットフォームで実行するために中間動作環境を書く。
中間動作環境に対するプログラミングインタフェースは、プラットフォームを越えて標準であるため、1つの所与のプラットフォームにおいて中間動作環境に対して書かれたソフトウェアは、異なるプラットフォームの同じ中間動作環境において変更することなく実行可能である。
JVMは1つのかかる中間動作環境であり、Javaプログラミング言語は、JVMに対して開発されたソフトウェアに対し共通のプログラミングインタフェースを提供する。
JVMおよびJavaプログラミング言語を使用することにより、ソフトウェアを1つのプラットフォームにおいて一度だけ書き、その後、そのソフトウェアは、JVMを有する他のプラットフォームにおいて変更なしに実行可能となり得る。
Javaは、変更なしにすべてのプラットフォームで実行することができるソフトウェアアプリケーションの生成を可能にするように設計されたプログラミング言語である。
Javaは、当初、Sun Microsystems, Inc.により1991年、組込みアプリケーション用の言語として開発された。
Javaは、ソースコードが、バイトコードと呼ばれる中間言語にコンパイルされるインタプリタ型言語である。
バイトコードは、実行時にマシンコードに変換または翻訳される。
このため、Javaプログラムは、いかなる特定のハードウェアにも依存せず、Java仮想マシンを有する任意のコンピュータで実行する。
[ハードウェア概観]
図1は、例示的なコンピュータシステム100を示すブロック図である。
コンピュータシステム100のブロック図はまた、小型メインフレーム、サーバ、ハンドヘルド等にも適用可能である。
コンピュータ100は、バス102または情報を通信する他の通信メカニズムと、情報を処理する、バス102に連結されたプロセッサ104と、を有する。
コンピュータ100はまた、プロセッサ104によって実行される命令を格納する、バス102に連結された、ランダムアクセスメモリ(RAM)または他の動的記憶デバイス等のメインメモリ106も有する。
また、メインメモリ106を、プロセッサ104によって実行される命令の実行中に一時変数または他の中間情報を格納するために使用してもよい。
コンピュータ100はさらに、プロセッサ104のための静的情報および命令を格納する、バス102に連結されたリードオンリメモリ(ROM)108または他の静的記憶デバイスを有する。
命令、一時変数および他の中間情報を格納するために、ハードディスクドライブ等の記憶デバイス110を設け、バス102に連結する。
コンピュータ100を、バス102を介して、ユーザに対しインタフェースを表示するフラットパネルディスプレイ等のディスプレイ112に連結してもよい。
プロセッサ104に対し情報およびコマンド選択を通信する、英数字およびファンクションキーを含むキーボード等の入力デバイス114を、バス102に連結する。
別のタイプのユーザ入力デバイスは、プロセッサ104に方向情報およびコマンド選択を通信し、ディスプレイ112上のカーソルの動きを制御する、スタイラス、ペン、マウス、トラックボールまたはカーソル方向キー等のカーソルコントロール116である。
この入力デバイスは、一般に、2つの軸に2つの自由度を有し、第1の軸(たとえばx)と第2の軸(たとえばy)により、デバイスが平面上の位置を指定することができる。
命令のシーケンスを、記憶デバイス110等の別のコンピュータ読取可能媒体からメインメモリ106に読み込んでもよいが、コンピュータ読取可能媒体は、記憶デバイス110等のデバイスに限定されない。
たとえば、コンピュータ読取可能媒体には、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープまたは他の任意の磁気媒体、コンパクトディスク・リードオンリメモリ(CD−ROM)、他の任意の光媒体、パンチカード、紙テープ、穴のパターンを有する他の任意の物理媒体、ランダムアクセスメモリ(RAM)、プログラマブルリードオンリメモリ(PROM)、消去可能PROM(EPROM)、フラッシュEPROM、他の任意のメモリチップまたはカートリッジ、電気、電磁気、赤外線または光信号に埋め込まれた搬送波、もしくはコンピュータが読み取ることができる他の任意の媒体が含まれてもよい。
メインメモリ106に含まれる命令のシーケンスを実行することにより、プロセッサ104は、プロセスステップを実行する。
代替実施形態では、コンピュータソフトウェア命令の代わりにまたはそれと組み合わせて、ハードワイヤード回路を使用してもよい。
コンピュータ100はまた、バス102に連結された通信インタフェース118も有し、本技術分野では、双方向データ通信を提供することが既知である。
たとえば、通信インタフェース118は、統合サービスデジタル網(integrated services digital network)(ISDN)カード、デジタル加入者線(digital subscriber line)(DSL)カード、または対応するタイプの電話線へのデータ通信接続を提供するモデムであってもよい。
別の例として、通信インタフェース118は、互換性のあるLANへのデータ通信接続を提供するローカルエリアネットワーク(local area network)(LAN)カードであってもよい。
無線リンクを実施してもよい。
いかなるかかる実施態様においても、通信インタフェース118は、さまざまなタイプの情報を表すデジタルデータストリームを搬送する電気、電磁気または光信号を送受信する。
たとえば、2つ以上のコンピュータ100を、各々が通信インタフェース118を使用する従来の方法でともにネットワーク化してもよい。
ネットワークリンク120は、一般に、1つまたは複数のネットワークを介する他のデータ装置に対するデータ通信を提供する。
たとえば、ネットワークリンク120は、ローカルネットワーク122を介しての、ホストコンピュータ124に対するかまたはインターネットサービスプロバイダ(Internet Service Provider)(ISP)126によって操作されるデータ機器に対する接続を提供してもよい。
それによって、ISP126は、今では一般に「インターネット」128と呼ぶ世界的なパケットデータ通信ネットワークを介してデータ通信サービスを提供する。
ローカルネットワーク122とインターネット128とはともに、デジタルデータストリームを搬送する電気、電磁気または光信号を使用する。
コンピュータ100との間でデジタルデータを搬送する、さまざまなネットワークを通る信号ならびにネットワークリンク110上のかつ通信インタフェース118を通る信号は、情報を運ぶ搬送波の例示的な形態である。
コンピュータ100は、ネットワーク、ネットワークリンク120および通信インタフェース118を介して、プログラムコードを含むメッセージを送信しデータを受信することができる。
インターネットの例では、サーバ130は、インターネット128、ISP126、ローカルネットワーク122および通信インタフェース118を介してアプリケーションプログラムに対する要求されたコードを送信してもよい。
受信コードを、プロセッサ104が受け取った時に実行してもよく、かつ/または、後に実行するために記憶デバイス110または他の不揮発性記憶機構に格納してもよい。
このように、コンピュータ100は、搬送波の形態でアプリケーションコードを取得してもよい。
図2は、コンピュータシステムハードウェアおよびソフトウェアアーキテクチャ200の階層化した図を示す高レベルブロック図である。
アーキテクチャ200は、コンピュータハードウェア100(上記図1に関連して説明)と、ROM108、メインメモリ106または記憶デバイス110に格納されたオペレーティングシステム202と、を有する。
プロセッサ104は、メモリ106、ROM108または記憶デバイス110からのオペレーティングシステム202命令を実行する。
本技術分野において既知であるように、プラットフォーム固有実行ファイル204に関する命令は、プロセッサ104によって実行され、オペレーティングシステム202によって提供される機能にアクセスする。
たとえば、プラットフォーム固有実行ファイル204は、ワードプロセッサ、ウェブブラウザ、スプレッドシートプログラム、電子メールプログラムまたは他のソフトウェア実行ファイルであってもよい。
プラットフォーム固有実行ファイル204はまた、ネイティブプログラムと呼ぶ。
オペレーティングシステム202の例は、ヒューレット−パッカード・デベロップメント・カンパニー・エル.ピー.(Hewlett-Packard Development Company, LP)から入手可能なHP−UXである。
中間動作環境、すなわち仮想マシン206の命令は、プロセッサ104によって実行され、プロセッサに対し、オペレーティングシステム202によって提供される機能、たとえば関数呼出しまたはメソッド呼出しにアクセスさせる。
仮想マシン206は、非プラットフォーム固有(non-platform-specific)(NPS)実行ファイル208、すなわち、非ネイティブプログラム、たとえばJavaベースプログラムの、コンピュータ100において追加の機能を提供する命令を実行する。
上述したように、仮想マシン206の例は、Sun Microsystems, Inc.から入手可能なJava仮想マシンである。
本発明の実施形態によれば、仮想マシン206は、特定のハードウェア100とオペレーティングシステム202との各組合せに対してカスタマイズされなければならないソフトウェアアーキテクチャの唯一のコンポーネントである。
すなわち、特定のプロセッサ、グラフィックスインタフェースデバイスまたは他のコンピュータハードウェアに対し、または特定のオペレーティングシステム202バージョンまたは製造業者に対し、NPS実行ファイル208をカスタマイズする必要はない。
対照的に、各プラットフォーム、すなわちオペレーティングシステム202とハードウェア100との組合せは、異なるバージョンのプラットフォーム固有実行ファイル204を必要とする。
NPS実行ファイル208は、当業者には既知の標準仮想マシン言語方法を介して通信する。
本発明のソフトウェアアーキテクチャによって設計されることにより、NPS実行ファイル208は、仮想マシン206を有する別のコンピュータとオペレーティングシステム200とに完全に移植可能である。
上記コンポーネントの各々は、一般に、デスクトップ、ラップトップ、サーバおよびハンドヘルドまたは組込みデバイスを含む、人間の直接の対話が意図された任意のコンピューティングデバイスにおいて標準である。
NPS実行ファイル208は、上述したコンポーネントのいずれの特定のタイプにも係りなく、かかるシステムにおいて実行する。
したがって、本発明の目的は、プラットフォーム固有ソフトウェアを必要とすることなく一意の識別子を生成する方法およびシステムを提供することである。
本発明の別の目的は、複数の異なるプラットフォームにおいて変更することなく実行可能なかかる方法およびシステムを提供することである。
本発明は、プラットフォーム固有ソフトウェアを必要とすることなく一意の識別子を生成する方法を提供する。
コンピュータシステムにおいて発生するイベントに応じて、コンピュータシステムにおける中間動作環境からイベントタイムスタンプを取り込む。
本発明のさらなる実行により、コンピュータシステムにおける中間動作環境からシステム名およびハッシュ値を取り込む。
システム名とイベントタイムスタンプとハッシュ値とを結合することにより、プラットフォーム固有ソフトウェアを必要とすることなくコンピュータシステムにおける中間動作環境を一意に識別する一意の識別子を生成する。
非プラットフォーム固有ソフトウェアにおいて一意の識別子を生成する方法態様は、イベント発生に応じて、コンピュータシステムにおける中間動作環境からイベントタイムスタンプを取り込むことを含む。
中間動作環境から、システム名を取り込む。
中間動作環境から、ハッシュ値を取り込む。
システム名とイベントタイムスタンプとハッシュ値とを結合して、プラットフォーム固有ソフトウェアを必要とすることなくコンピュータシステムにおける中間動作環境を一意に識別する一意の識別子を生成する。
コンピュータ読取可能媒体態様は、プロセッサによって実行され、プロセッサに対し、中間動作環境によって確定されるイベント発生に応じて、中間動作環境からイベントタイムスタンプを取り込ませる命令を含む。
プロセッサは、中間動作環境からシステム名とハッシュ値とを取り込み、システム名、ハッシュ値およびイベントタイムスタンプを結合して一意の識別子を生成する。
本発明のさらに他の目的および利点は、以下の詳細な説明から当業者には容易に明らかとなろう。
以下の詳細な説明では、本発明の好ましい実施形態を、単に、本発明を実施する考慮される最良の形態の例示として示し説明する。
理解されるように、本発明は、他のかつ異なる実施形態が可能であり、そのいくつかの詳細は、すべて本発明から逸脱することなくさまざまな明白な点で変更が可能である。
本発明を、添付図面の各図において限定としてではなく例として示す。
そこでは、同じ参照数字記号は図面を通して同様の要素を表す。
本発明による実施形態は、プラットフォーム固有ソフトウェアを必要とすることなく一意の識別子を生成する。
上述した図1は、本発明の実施形態を実施してもよい、例示的なコンピュータシステム100を示すブロック図である。
本発明は、目下入手可能なコンピュータシステムで使用可能であり、また、小型メインフレーム、サーバ、ハンドヘルド等にも適用可能である。
本発明は、図1の図示したコンピュータ等のコンピュータ100を使用して、そのコンピュータ100に対しプラットフォーム固有ソフトウェアを必要とすることなく一意の識別子を生成させる命令および情報のシーケンスを格納しそれらにアクセスすることに関する。
本発明の一実施形態によれば、プロセッサ104が、入力デバイス114、カーソルコントロール116または通信インタフェース118を介して受け取る入力に応じてメインメモリ106に含まれる命令のシーケンスを実行することに応じて、コンピュータ100によって一意の識別子が生成される。
上述したように、かかる命令を、記憶デバイス110等の別のコンピュータ読取可能媒体からメインメモリ106に読み込んでもよい。
イベントの発生により、本発明のソフトウェアアーキテクチャを使用して設計されたNPS実行ファイル208が実行され、プロセッサ104は、図3のプロセスフロー300に示すステップを実行することにより、図4に示すもの等の一意の識別子を生成する。
ここで、図3について詳細に説明する。
ステップ302におけるイベントの発生により、プロセッサ104によって実行されている仮想マシン206によりNPS実行ファイル208のプロセスフロー300の実行が開始する。
ステップ304において、NPS実行ファイル208の実行により、仮想マシン206がイベントタイムスタンプを生成する。
イベントタムスタンプは、イベント発生の時刻を指定し、特定の実施形態では、同様に発生の日付を含む。
たとえば、図4に示すような「Wed Oct 29 09:46:38 EST 2003」がある。
代替実施形態では、タイムスタンプは、タイムスタンプ情報の詳細を増加または減少させるようにより多くの有効数字を含んでもより少ない有効数字を含んでもよい。
イベントタイムスタンプを、メモリ106に格納する。
プロセスフローはステップ306に進む。
ステップ306において、NPS実行ファイル208を実行している仮想マシン206は、オペレーティングシステム202において指定されるようなシステム名を取り込む。
システム名を、プラットフォーム200のユーザ、たとえば「Zaphod's System」によって指定してもよい。
取込まれたシステム名をメモリ106に格納する。
プロセスフローはステップ308に進む。
ステップ308において、NPS実行ファイル208の実行により、仮想マシン206がハッシュ値を生成する。
ハッシュ値は、仮想マシン206によって提供される参照であり、仮想マシン内の任意のオブジェクトに対して一意である。
たとえば、その値は、所与のオブジェクトを識別する割当てテーブルへのアドレスまたはオフセットである。
1つの特定の実施形態では、ハッシュ値は、UIDの生成をもたらすイベントに応じて作成されるオブジェクトに基づく。
ハッシュ値をメモリ106に格納する。
プロセスフローはステップ310に進む。
ステップ310において、NPS実行ファイル208の実行により、仮想マシン206は、システム名と、イベントタイムスタンプと、ハッシュ値と、を結合する。
結合は、情報の連結であっても、またはその結合から情報の別々の部分を後に検索することを可能にする情報の他の結合方法であってもよい。
代替実施形態は、結合された情報に対して当業者に既知の暗号化および/または圧縮技法を採用してもよい。
情報の結合により、ステップ312において一意の識別子が生成される。
図4は、本発明による実施形態によって生成される一意の識別子の例である。
一意の識別子400は、システム名フィールドラベル401、タイムスタンプフィールドラベル402およびハッシュ値フィールドラベル403と、対応するシステム名値404、タイムスタンプ値405およびハッシュ値406と、を含む。
代替実施形態では、本発明の精神および範囲から逸脱することなくフィールドラベル401、402および403を省略してもよい、ということを理解しなければならない。
さらに、フィールド401〜403および値404〜406の順序を、本発明の動作に影響を与えることなく変更してもよい。
本発明のソフトウェアアーキテクチャによって設計することにより、NPS実行ファイル208は、仮想マシン206を有する別のコンピュータおよびオペレーティングシステム200に完全に移植可能であり、プラットフォーム固有命令を必要とすることなく一意の識別子を生成することができる。
NPS実行ファイル208は、上述したコンポーネントのいずれの特定のタイプにも係りなく、かかるシステムで実行する。
有利には、本発明の実施形態によって生成される一意の識別子は、いかなるプラットフォーム固有命令も必要とせず、互換性のある中間動作環境を有する任意のプラットフォームにおいて実行可能である。
生成された識別子は、非常に高い確率の一意性を有する。
別々のプラットフォーム200で同一の識別子を生成するためには、発生するイベントは、同時に発生しなければならず、システム名は同一でなければならず、ハッシュ値は一致しなければならない。
上記情報、すなわちシステム名、イベントタイムスタンプおよびハッシュ値を結合することにより、異なるプラットフォームで重複した識別子が生成される確率が極めて低くなる。
1つの特定の実施形態では、一意の識別子を使用して、異なるプラットフォームまたは同じプラットフォームによって生成されるサポート要求を区別してもよい。
さらに有利には、プラットフォーム固有UIDソフトウェアが必要でないため、上述したように、サポートされる各プラットフォームに対する異なるバージョンが必要でない。
さらに、開発要件と同様に保守およびサポート要件が低減し、たとえば、複数のバージョンより、単一バージョンを作成し、保守しサポートする方が費用がかからない。
バージョンが追加される毎に、各プラットフォームにおいてそのバージョンに対しインストールプロセスの作成、保守、およびサポート、テスト、確認(validation)ならびに継続した技術サポートが必要となる。
当業者には、Java仮想マシンおよびプログラミング言語は本質的に例示的なものであり、その代りに他のプラットフォーム中立中間動作環境および/または言語が使用可能である、ということが理解されよう。
当業者は、本発明が上述した目的のすべてを果たすということを容易に理解するであろう。
上述した明細書を読んだ後、当業者は、本明細書で広く開示した本発明のさまざまな変更形態、等価物の代用形態、および他のさまざまな態様をもたらすことができるであろう。
したがって、本明細書において認められる保護は、添付の特許請求の範囲とその等価物とに含まれる定義によってのみ限定されることが意図されている。
本発明の実施形態とともに使用可能なコンピュータシステムの高レベルブロック図である。 コンピュータシステムハードウェアおよびソフトウェアアーキテクチャの高レベル形態のブロック図である。 本発明による実施形態のプロセスフローチャートである。 本発明の実施形態によって生成される一意の識別子の例である。
符号の説明
102・・・バス、
104・・・プロセッサ、
106・・・メインメモリ、
110・・・記憶デバイス、
112・・・ディスプレイ、
114・・・入力デバイス、
116・・・カーソルコントロール、
118・・・通信インタフェース、
120・・・ネットワークリンク、
122・・・ローカルネットワーク、
124・・・ホスト、
128・・・インターネット、
130・・・サーバ、
100・・・ハードウェア、
202・・・オペレーティングシステム、
204・・・プラットフォーム固有実行ファイル、
206・・・仮想マシン、
208・・・非プラットフォーム固有実行ファイル、

Claims (10)

  1. 非プラットフォーム固有ソフトウェアにおいて一意の識別子(400)を生成する方法であって、
    コンピュータシステム(100)において発生するイベントに応じて、前記コンピュータシステム(100)における前記中間動作環境(206)からイベントタイムスタンプ(405)を取り込むステップと、
    前記コンピュータシステム(100)における前記中間動作環境(206)からシステム名(404)を取り込むステップと、
    前記コンピュータシステム(100)における前記中間動作環境(206)からハッシュ値(406)を取り込むステップと、
    前記システム名(404)とイベントタイムスタンプ(405)とハッシュ値(406)とを結合するステップであって、それにより、プラットフォーム固有ソフトウェアを必要とすることなく前記コンピュータシステム(100)における前記中間動作環境(206)を一意に識別する一意の識別子(400)を生成するステップと
    を含む方法。
  2. イベント情報を別のコンピュータシステムに送信するステップを
    さらに含む請求項1に記載の方法。
  3. 前記イベント情報は前記一意の識別子(400)
    を含む請求項2に記載の方法。
  4. 前記中間動作環境(206)は、Javaベース環境である
    請求項1に記載の方法。
  5. コンピュータ読取可能媒体であって、
    非プラットフォーム固有ソフトウェアにおいて一意の識別子(400)を生成する中間動作環境命令の少なくとも1つのシーケンスであって、前記中間動作環境(206)によって該命令が実行されることにより、前記環境は、
    前記中間動作環境(206)によって確定されるイベント発生に応じて、前記中間動作環境(206)からイベントタイムスタンプ(405)を取り込み、
    前記中間動作環境(206)からシステム名(404)を取り込み、
    前記中間動作環境(206)からハッシュ値(406)を取り込み、
    前記取り込まれたイベントタイムスタンプ(405)と、システム名(404)と、ハッシュ値(406)と、を結合することにより、プラットフォーム固有ソフトウェアを必要とすることなくコンピュータシステム(100)における前記中間動作環境(206)を一意に識別する一意の識別子(400)を作成する
    中間動作環境命令の少なくとも1つのシーケンス
    を具備するコンピュータ読取可能媒体。
  6. 前記中間動作環境(206)は、JAVA仮想マシンである
    請求項5に記載のコンピュータ読取可能媒体。
  7. 前記中間動作環境(206)によって実行される場合、前記中間動作環境(206)に対し、
    前記一意の識別子(400)を含むイベント情報を別のコンピュータシステムに送信すること
    を実行させる中間動作環境命令のシーケンス
    をさらに具備する請求項5に記載のコンピュータ読取可能媒体。
  8. 非プラットフォーム固有ソフトウェアにおいて一意の識別子(400)を生成するコンピュータシステム(100)であって、
    プロセッサ(104)と、
    前記プロセッサ(104)に連結され、プロセッサ固有オペレーティングシステムと、前記オペレーティングシステムにおいて実行可能な中間動作環境(204)と、非プラットフォーム固有ソフトウェアにおいて一意の識別子(400)を生成する中間動作環境命令のシーケンスであって、前記中間動作環境(206)によって実行される場合に、前記中間動作環境(206)に対し、
    コンピュータシステム(100)において発生するイベントに応じて、コンピュータシステム(100)における前記中間動作環境(206)からイベントタイムスタンプ(405)を取り込むステップと、
    コンピュータシステム(100)における前記中間動作環境(206)からシステム名(404)を取り込むステップと、
    コンピュータシステム(100)における前記中間動作環境(206)からハッシュ値(406)を取り込むステップと、
    前記システム名(404)とイベントタイムスタンプ(405)とハッシュ値(406)とを結合するステップであって、それにより、プラットフォーム固有ソフトウェアを必要とすることなくコンピュータシステム(100)における前記中間動作環境(206)を一意に識別する一意の識別子(400)を生成する、結合するステップと、
    を実行させる中間動作環境命令のシーケンスと
    を格納するメモリと
    を備えるコンピュータシステム。
  9. 前記中間動作環境(206)は、JAVA仮想マシンである
    請求項8に記載のコンピュータシステム。
  10. 前記中間動作環境(206)によって実行される場合、前記中間動作環境(206)に対し、
    前記一意の識別子(400)を含むイベント情報を別のコンピュータシステム(100)に送信するステップ
    を実行させる中間動作環境命令のシーケンス
    をさらに備える請求項8に記載のコンピュータシステム。
JP2004323102A 2003-11-12 2004-11-08 非プラットフォーム固有の一意の識別子の生成 Withdrawn JP2005149495A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/704,592 US7552433B2 (en) 2003-11-12 2003-11-12 Non-platform-specific unique indentifier generation

Publications (1)

Publication Number Publication Date
JP2005149495A true JP2005149495A (ja) 2005-06-09

Family

ID=34552163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004323102A Withdrawn JP2005149495A (ja) 2003-11-12 2004-11-08 非プラットフォーム固有の一意の識別子の生成

Country Status (4)

Country Link
US (1) US7552433B2 (ja)
EP (1) EP1548580B1 (ja)
JP (1) JP2005149495A (ja)
DE (1) DE602004006947T2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904488B2 (en) 2004-07-21 2011-03-08 Rockwell Automation Technologies, Inc. Time stamp methods for unified plant model
US8756521B1 (en) 2004-09-30 2014-06-17 Rockwell Automation Technologies, Inc. Systems and methods for automatic visualization configuration
US7809683B2 (en) * 2005-05-13 2010-10-05 Rockwell Automation Technologies, Inc. Library that includes modifiable industrial automation objects
US7672737B2 (en) 2005-05-13 2010-03-02 Rockwell Automation Technologies, Inc. Hierarchically structured data model for utilization in industrial automation environments
US8799800B2 (en) 2005-05-13 2014-08-05 Rockwell Automation Technologies, Inc. Automatic user interface generation
US7676281B2 (en) 2005-05-13 2010-03-09 Rockwell Automation Technologies, Inc. Distributed database in an industrial automation environment
US7650405B2 (en) * 2005-05-13 2010-01-19 Rockwell Automation Technologies, Inc. Tracking and tracing across process boundaries in an industrial automation environment
US20070067458A1 (en) * 2005-09-20 2007-03-22 Rockwell Software, Inc. Proxy server for integration of industrial automation data over multiple networks
US7548789B2 (en) 2005-09-29 2009-06-16 Rockwell Automation Technologies, Inc. Editing lifecycle and deployment of objects in an industrial automation environment
US7881812B2 (en) * 2005-09-29 2011-02-01 Rockwell Automation Technologies, Inc. Editing and configuring device
US8275680B2 (en) * 2005-09-30 2012-09-25 Rockwell Automation Technologies, Inc. Enabling transactional mechanisms in an automated controller system
US7660638B2 (en) * 2005-09-30 2010-02-09 Rockwell Automation Technologies, Inc. Business process execution engine
US7734590B2 (en) 2005-09-30 2010-06-08 Rockwell Automation Technologies, Inc. Incremental association of metadata to production data
US7526794B2 (en) * 2005-09-30 2009-04-28 Rockwell Automation Technologies, Inc. Data perspectives in controller system and production management systems
US7801628B2 (en) 2005-09-30 2010-09-21 Rockwell Automation Technologies, Inc. Industrial operator interfaces interacting with higher-level business workflow
US8484250B2 (en) * 2005-09-30 2013-07-09 Rockwell Automation Technologies, Inc. Data federation with industrial control systems
US7747024B2 (en) * 2007-02-09 2010-06-29 Lenovo (Singapore) Pte. Ltd. System and method for generalized authentication
US8112753B2 (en) * 2007-02-27 2012-02-07 Red Hat, Inc. Delaying initiation of virtual machine support process by random delay value generated based on unique ID associated with the virtual machine
US9392074B2 (en) 2007-07-07 2016-07-12 Qualcomm Incorporated User profile generation architecture for mobile content-message targeting
US9398113B2 (en) 2007-07-07 2016-07-19 Qualcomm Incorporated Methods and systems for providing targeted information using identity masking in a wireless communications device
US8639949B2 (en) * 2007-07-20 2014-01-28 Nxp B.V. Device with a secure virtual machine
US20090043864A1 (en) * 2007-08-07 2009-02-12 Rohit Shetty Method and System for Generating Globally Unique Identifiers
US9203911B2 (en) 2007-11-14 2015-12-01 Qualcomm Incorporated Method and system for using a cache miss state match indicator to determine user suitability of targeted content messages in a mobile environment
US9391789B2 (en) 2007-12-14 2016-07-12 Qualcomm Incorporated Method and system for multi-level distribution information cache management in a mobile environment
US8868482B2 (en) * 2008-03-20 2014-10-21 Oracle International Corporation Inferring schemas from XML document collections
US20100030727A1 (en) * 2008-07-29 2010-02-04 Sivasankaran Chandrasekar Technique For Using Occurrence Constraints To Optimize XML Index Access
US8650182B2 (en) 2009-02-24 2014-02-11 Oracle International Corporation Mechanism for efficiently searching XML document collections
US8799890B2 (en) * 2009-11-30 2014-08-05 Red Hat, Inc. Generating a version identifier for a computing system based on software packages installed on the computing system
US9392072B2 (en) 2010-04-15 2016-07-12 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8484401B2 (en) 2010-04-15 2013-07-09 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8984533B2 (en) 2010-04-15 2015-03-17 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8972438B2 (en) 2010-12-06 2015-03-03 International Business Machines Corporation Database access for native applications in a virtualized environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9246882B2 (en) * 2011-08-30 2016-01-26 Nokia Technologies Oy Method and apparatus for providing a structured and partially regenerable identifier
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9584367B2 (en) * 2013-11-05 2017-02-28 Solarwinds Worldwide, Llc Node de-duplication in a network monitoring system
US20160371169A1 (en) * 2015-06-17 2016-12-22 Microsoft Technology Licensing, Llc Use case fingerprinting and capture store
WO2017142577A1 (en) * 2016-02-16 2017-08-24 Intel IP Corporation Identity management of virtualized entities
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
CN106502883B (zh) * 2016-10-09 2019-03-15 武汉斗鱼网络科技有限公司 自动化测试时客户端与服务端的数据库同步方法及系统
CN112995355B (zh) * 2021-03-02 2023-04-25 上海星融汽车科技有限公司 设备唯一识别码的生成方法、系统及电子设备
US20230237155A1 (en) * 2022-01-27 2023-07-27 Hewlett Packard Enterprise Development Lp Securing communications with security processors using platform keys

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754395A (en) * 1985-05-06 1988-06-28 Computer X, Inc. Network interface module with minimized data paths
US4949254A (en) * 1988-09-29 1990-08-14 Ibm Corp. Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
US6047332A (en) * 1997-06-30 2000-04-04 Sun Microsystems, Inc. Global file system-based system and method for rendering devices on a cluster globally visible
US6125382A (en) * 1997-07-25 2000-09-26 International Business Machines Corporation Distributed thread mechanism and method
US6553564B1 (en) * 1997-12-12 2003-04-22 International Business Machines Corporation Process and system for merging trace data for primarily interpreted methods
US6453392B1 (en) * 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
US6292904B1 (en) * 1998-12-16 2001-09-18 International Business Machines Corporation Client account generation and authentication system for a network server
US6725252B1 (en) * 1999-06-03 2004-04-20 International Business Machines Corporation Method and apparatus for detecting and processing multiple additional requests from a single user at a server in a distributed data processing system
AU2002254289B2 (en) 2001-03-19 2006-12-07 Qualcomm Incorporated Dynamically downloading and executing system services on a wireless device
WO2002084533A1 (en) * 2001-04-12 2002-10-24 Valaran Corporation Method and service for storing records containing executable objects
US7089561B2 (en) * 2001-06-01 2006-08-08 Microsoft Corporation Methods and systems for creating and communicating with computer processes
US6768947B2 (en) * 2001-09-06 2004-07-27 Landmark Graphics Corporation, A Halliburton Company System and method for accessing and analyzing previous generations of seismic data
AU2003207836A1 (en) * 2002-02-04 2003-09-02 Cataphora, Inc. A method and apparatus for sociological data mining
WO2003073266A1 (en) * 2002-02-21 2003-09-04 Bea Systems, Inc. System and method for object activation
CA2381737A1 (en) * 2002-04-15 2003-10-15 Ibm Canada Limited-Ibm Canada Limitee Framework for managing data that provides correlation information in a distributed computing system
US7246141B2 (en) * 2003-01-02 2007-07-17 Sun Microsystems, Inc. Method and apparatus for skewing a bi-directional object layout to improve cache performance
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
US7457828B2 (en) * 2003-08-29 2008-11-25 Sap Ag System and method for synchronizing distributed buffers when committing data to a database

Also Published As

Publication number Publication date
EP1548580B1 (en) 2007-06-13
EP1548580A2 (en) 2005-06-29
DE602004006947D1 (de) 2007-07-26
EP1548580A3 (en) 2006-08-30
US7552433B2 (en) 2009-06-23
DE602004006947T2 (de) 2008-02-14
US20050102672A1 (en) 2005-05-12

Similar Documents

Publication Publication Date Title
US7552433B2 (en) Non-platform-specific unique indentifier generation
US12008386B2 (en) Conservative class preloading for real time java execution
US7444621B2 (en) Method and system for providing a common operating system
US6944846B2 (en) Algorithm for localization of a JAVA application using reflection API and a custom class loader
US7131122B1 (en) Apparatus, system and method for detecting old version of an applet in a client brower's JVM
US6571388B1 (en) Building a custom software environment including pre-loaded classes
US6212578B1 (en) Method and apparatus for managing dependencies in a distributed computing environment for ensuring the safety of remote procedure calls
US7434215B2 (en) Mechanism for loading plugin classes at an appropriate location in the class loader hierarchy
CN107924326B (zh) 对经更新的类型的迁移方法进行覆盖
US7082600B1 (en) Method and apparatus for integrating a computer application programming language runtime environment with an operating system kernel
US6976059B1 (en) System and method to provide applets using a server based virtual machine
US8418169B2 (en) Management method for managing software module and information processor
JP2003526827A (ja) ソフトウェアコードを圧縮するためのシステムおよび方法
JP2007535761A (ja) 抗タンパーコードを生成するシステム及び方法
US9116770B2 (en) Recipe-based application conversion
US8200938B2 (en) Computer system and method providing a memory buffer for use with native and platform-independent software code
US20070180433A1 (en) Method to enable accurate application packaging and deployment with optimized disk space usage
JP2000200192A (ja) 予期しないプラットフォ―ム・バリアント上の装置をコア・プラットフォ―ム・カ―ネル・ソフトウエアの再リリ―スなしにサポ―トする機構
US5838911A (en) Method and apparatus for obtaining network information by using a dynamic link library
US20080141219A1 (en) Multiple inheritance facility for java script language
US20020087737A1 (en) Computer system and method providing a memory buffer for use with native and platform-independent software code
US7487137B2 (en) Apparatus, system, and method for java bean delta generation
US7254817B2 (en) Apparatus and methods for integrating APIs for program execution management
US7350214B2 (en) Printer driver initialization
US20070260577A1 (en) Providing COM access to an isolated system

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20061027