JP2003535383A - レガシーデータストラクチャ用オブジェクト特性メタモデルエミュレータ - Google Patents
レガシーデータストラクチャ用オブジェクト特性メタモデルエミュレータInfo
- Publication number
- JP2003535383A JP2003535383A JP2001513035A JP2001513035A JP2003535383A JP 2003535383 A JP2003535383 A JP 2003535383A JP 2001513035 A JP2001513035 A JP 2001513035A JP 2001513035 A JP2001513035 A JP 2001513035A JP 2003535383 A JP2003535383 A JP 2003535383A
- Authority
- JP
- Japan
- Prior art keywords
- property
- wrapper
- class
- data structure
- legacy
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 238000005266 casting Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001035 drying Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
レガシーデータストラクチャ(50)をラップする方法であって、該方法は、データストラクチャをオブジェクト指向プログラムと共に使用することを可能にし、かつ、単一オブジェクトが、マルチプルレガシーデータストラクチャ(40)内の関係属性にアクセスすることを可能にする。一実施形態においては、インタフェースクラスが、表されるべき各擬似特性について、定義される。C++ラッパーが、アブストラクト擬似特性クラスで定義されたインタフェースをインプリメントする各レガシーデータストラクチャ(50)の周りに作成される。
Description
【0001】
<関連アプリケーションに対するクロスレファレンス>
本出願書は、1998年7月24日に出願されたU.S. Provisional Applicati
on No. 60/094,107の利益を主張する。
on No. 60/094,107の利益を主張する。
【0002】
<発明の属する技術分野>
本発明は、コンピュータソフトウェアプログラムに向けられている。より詳し
くは、本発明は、オブジェクト指向ソフトウェアプログラムと非 オブジェクト
指向ソフトウェアプログラムとの間のインタフェースに向けられている。
くは、本発明は、オブジェクト指向ソフトウェアプログラムと非 オブジェクト
指向ソフトウェアプログラムとの間のインタフェースに向けられている。
【0003】
<従来の技術>
オブジェクト指向プログラミングは、コンピュータソフトウェアを書くための
、ますます一般的なモデルになって来ている。「オブジェクト」には、コード(
命令のシーケンス)とデータ(命令がそれを基に動作する情報)の両方を含んで
いる。オブジェクトの使用は、ソフトウェアのメンテナンス、再使用性、および
修正性を向上させ得る。オブジェクト指向プログラミング言語の例としては、C
++、Smalltalk、およびJava(登録商標)などがある。
、ますます一般的なモデルになって来ている。「オブジェクト」には、コード(
命令のシーケンス)とデータ(命令がそれを基に動作する情報)の両方を含んで
いる。オブジェクトの使用は、ソフトウェアのメンテナンス、再使用性、および
修正性を向上させ得る。オブジェクト指向プログラミング言語の例としては、C
++、Smalltalk、およびJava(登録商標)などがある。
【0004】
しかしながら、多くのソフトウェアプログラムは、非オブジェクト指向言語で
書かれている。これらプログラムは、「レガシー」プログラムと呼ぶことができ
、Fortran、Basic、およびCなどの言語で書くことができる。これらレガシープ
ログラムの多くは、より新しいオブジェクト指向の言語と共に使用する必要があ
るデータストラクチャおよびコードストラクチャを含んでいる。これらデータス
トラクチャをそれらがオブジェクト指向の言語とコンパチブルであるように再作
成するのは、時間を喰い、かつ、高価である。したがって、これらレガシーデー
タストラクチャとより新しいオブジェクト指向コードとのインタフェースを取る
手立てを有することが望ましい。
書かれている。これらプログラムは、「レガシー」プログラムと呼ぶことができ
、Fortran、Basic、およびCなどの言語で書くことができる。これらレガシープ
ログラムの多くは、より新しいオブジェクト指向の言語と共に使用する必要があ
るデータストラクチャおよびコードストラクチャを含んでいる。これらデータス
トラクチャをそれらがオブジェクト指向の言語とコンパチブルであるように再作
成するのは、時間を喰い、かつ、高価である。したがって、これらレガシーデー
タストラクチャとより新しいオブジェクト指向コードとのインタフェースを取る
手立てを有することが望ましい。
【0005】
したがって、レガシーソフトウェアアプリケーションとオブジェクト指向ソフ
トウェアアプリケーションとのインタフェースを取るための方法およびシステム
が必要である。
トウェアアプリケーションとのインタフェースを取るための方法およびシステム
が必要である。
【0006】
<発明の要約>
本発明の一実施形態は、オブジェクト指向プログラムが、それらのフィールド
を、あたかもそれらが特性であるかのように操作できるようにレガシーデータス
トラクチャをラッピングする方法である。一つの実施形態においては、操作され
るべき各擬似特性について、インタフェースクラスが定義される。C++ラッパ
ーが、アブストラクト擬似特性クラスで定義されたインタフェースをインプリメ
ントする各レガシーデータストラクチャの周りに作成される。
を、あたかもそれらが特性であるかのように操作できるようにレガシーデータス
トラクチャをラッピングする方法である。一つの実施形態においては、操作され
るべき各擬似特性について、インタフェースクラスが定義される。C++ラッパ
ーが、アブストラクト擬似特性クラスで定義されたインタフェースをインプリメ
ントする各レガシーデータストラクチャの周りに作成される。
【0007】
<詳細な説明>
本発明の一実施形態は、レガシーデータストラクチャをラップして、該データ
ストラクチャを、オブジェクト指向のプログラムと共に使用できるようにし、か
つ、単一の属性ページで、全ての適用可能なデータストラクチャに含まれるデー
タを操作できるようにする方法である。一実施形態では、操作されるべき各擬似
特性に対して、インタフェースクラスが、定義される。C++ラッパーが、アブ
ストラクト擬似特性クラスで定義されたインタフェースをインプリメントする各
レガシーデータストラクチャの周りに作成される。
ストラクチャを、オブジェクト指向のプログラムと共に使用できるようにし、か
つ、単一の属性ページで、全ての適用可能なデータストラクチャに含まれるデー
タを操作できるようにする方法である。一実施形態では、操作されるべき各擬似
特性に対して、インタフェースクラスが、定義される。C++ラッパーが、アブ
ストラクト擬似特性クラスで定義されたインタフェースをインプリメントする各
レガシーデータストラクチャの周りに作成される。
【0008】
図1は、データストラクチャを有する「レガシー」アプリケーションプログラ
ムの出力例を図解するグラフ表示である。本特許の目的のためのレガシーアプリ
ケーションプログラムは、フォートラン、ベーシック、あるいはCなど非オブジ
ェクト指向のソフトウェアプログラミング言語で書かれたアプリケーションプロ
グラムである。 図1のレガシープログラムは、グラフィックインタフェース1
0を含むビジネスプロセスアプリケーションプログラムである。レガシープログ
ラムは、ビジネスプロセスを図解し、ビジネスプロセスの各ファセットに対して
、データおよびデータストラクチャを記憶する。
ムの出力例を図解するグラフ表示である。本特許の目的のためのレガシーアプリ
ケーションプログラムは、フォートラン、ベーシック、あるいはCなど非オブジ
ェクト指向のソフトウェアプログラミング言語で書かれたアプリケーションプロ
グラムである。 図1のレガシープログラムは、グラフィックインタフェース1
0を含むビジネスプロセスアプリケーションプログラムである。レガシープログ
ラムは、ビジネスプロセスを図解し、ビジネスプロセスの各ファセットに対して
、データおよびデータストラクチャを記憶する。
【0009】
図1に示した例では、「犬を清掃する」プロセスが図解されている。インタフ
ェース10は、異なるコンポーネントを含んでいる。例えば、インタフェース1
0は、それぞれ活動を表すボックス12〜14を含んでいる。ボックス12は、
犬を洗う活動を表し、ボックス13は、犬をリンスする活動を表し、ボックス1
4は、犬を乾かす活動を表す。
ェース10は、異なるコンポーネントを含んでいる。例えば、インタフェース1
0は、それぞれ活動を表すボックス12〜14を含んでいる。ボックス12は、
犬を洗う活動を表し、ボックス13は、犬をリンスする活動を表し、ボックス1
4は、犬を乾かす活動を表す。
【0010】
インタフェース10は、矢印20〜23を含んでいる。各矢印は、入力および
出力情報を含む活動間の関係を表す。矢印20は、汚い犬を示し、活動12に入
力され、矢印21は、石鹸だらけの犬を示し、活動12から出力され、かつ、活
動13に入力される。さらに、矢印22は、濡れた犬を示し、活動13から出力
され、かつ、活動14に入力され、矢印23は、きれいな犬を示し、活動14か
ら出力される。
出力情報を含む活動間の関係を表す。矢印20は、汚い犬を示し、活動12に入
力され、矢印21は、石鹸だらけの犬を示し、活動12から出力され、かつ、活
動13に入力される。さらに、矢印22は、濡れた犬を示し、活動13から出力
され、かつ、活動14に入力され、矢印23は、きれいな犬を示し、活動14か
ら出力される。
【0011】
インタフェース10はまた、活動12および13で桶が使用されることを示す
属性30を含んでいる。インタフェース10はまた、エンティティーコンポーネ
ント、および図1に示してない多くの他の種類のコンポーネントを含むこともで
きる。
属性30を含んでいる。インタフェース10はまた、エンティティーコンポーネ
ント、および図1に示してない多くの他の種類のコンポーネントを含むこともで
きる。
【0012】
インタフェース10に見える各コンポーネントは、ユーザが選択し、編集する
ことができる。例えば、活動13または矢印20でクリックすることができる。
インタフェース10に関連したプログラムが、C++などのオブジェクト指向の
言語で書かれている場合は、コンポーネントは、それぞれ「クラス」と見なされ
るであろう。しかしながら、Cなどの非オブジェクト指向の言語では、それらは
、データストラクチャと見なされる。あるコンポーネントが選択されて、編集リ
ードされる場合は、各コンポーネントについて別個のダイアログが現れる。
ことができる。例えば、活動13または矢印20でクリックすることができる。
インタフェース10に関連したプログラムが、C++などのオブジェクト指向の
言語で書かれている場合は、コンポーネントは、それぞれ「クラス」と見なされ
るであろう。しかしながら、Cなどの非オブジェクト指向の言語では、それらは
、データストラクチャと見なされる。あるコンポーネントが選択されて、編集リ
ードされる場合は、各コンポーネントについて別個のダイアログが現れる。
【0013】
インタフェース10の各コンポーネントは、それに関連した1個またはそれ以
上の属性または特性を有している。 属性は、データストラクチャに含まれてい
る。属性の例は、ユーザが、各コンポーネントに、コンポーネントのネーム、コ
ンポーネントの定義、コンポーネントに対する活動の持続時間などを付与できる
ノートを含んでいる。
上の属性または特性を有している。 属性は、データストラクチャに含まれてい
る。属性の例は、ユーザが、各コンポーネントに、コンポーネントのネーム、コ
ンポーネントの定義、コンポーネントに対する活動の持続時間などを付与できる
ノートを含んでいる。
【0014】
一般に、属性または特性は、インタフェース10のコンポーネントあるいはイ
ンタフェース10に関連した辞書内のエントリ、あるいは任意のデータストラク
チャ内のリストまたはフィールド内のエントリに関連した任意の値である。オブ
ジェクト指向のソフトウェアの場合は、オブジェクトに関連した属性および特性
を具体化するコンセプトは、周知であり、「オブジェクト属性メタモデル」と呼
ばれている。
ンタフェース10に関連した辞書内のエントリ、あるいは任意のデータストラク
チャ内のリストまたはフィールド内のエントリに関連した任意の値である。オブ
ジェクト指向のソフトウェアの場合は、オブジェクトに関連した属性および特性
を具体化するコンセプトは、周知であり、「オブジェクト属性メタモデル」と呼
ばれている。
【0015】
インタフェース10およびそれに関連したレガシープログラムの一つの問題は
、各コンポーネント(例えば、矢印、活動など)は、レガシーコードでは、本質
的に異なるやり方で表されることである。例えば、各コンポーネントは、上記の
ように、ノート属性を有し得る。プログラムによりモデリングを行っているユー
ザは、活動、矢印、データストアなどを注解して、後の参考のため、ノートを作
ることができる。しかしながら、レガシーコードは、各コンポーネントについて
、別個のダイアログルーチンを含んでいる。したがって、レガシーコードは、矢
印にデータを添える最初のダイアログ、活動にデータを添える二番目のダイアロ
グ、データストアにデータを添える三番目のダイアログ、などの書込みを必要と
する。別個のダイアログをコード化して各コンポーネントを編集するのは、時間
を喰い、かつ高価な作業である。
、各コンポーネント(例えば、矢印、活動など)は、レガシーコードでは、本質
的に異なるやり方で表されることである。例えば、各コンポーネントは、上記の
ように、ノート属性を有し得る。プログラムによりモデリングを行っているユー
ザは、活動、矢印、データストアなどを注解して、後の参考のため、ノートを作
ることができる。しかしながら、レガシーコードは、各コンポーネントについて
、別個のダイアログルーチンを含んでいる。したがって、レガシーコードは、矢
印にデータを添える最初のダイアログ、活動にデータを添える二番目のダイアロ
グ、データストアにデータを添える三番目のダイアログ、などの書込みを必要と
する。別個のダイアログをコード化して各コンポーネントを編集するのは、時間
を喰い、かつ高価な作業である。
【0016】
本発明の一実施形態は、ユーザが、任意のコンポーネントにノートを添える単
一の特性ページを開発し、次いで、それから活動、データストア、エンティティ
ー、属性などに拡がることを可能にする。例えば、特性ページは、ユーザが、任
意のコンポーネントにノートおよび定義の特性を設定することを可能にする。こ
れは、共通の特性ページを再使用して、特性をサポートする任意のコンポーネン
トについて、それらを設定することを可能にする。一実施形態では、これは、C
++における継承およびダイナミックなキャスティングを用いて達成する。
一の特性ページを開発し、次いで、それから活動、データストア、エンティティ
ー、属性などに拡がることを可能にする。例えば、特性ページは、ユーザが、任
意のコンポーネントにノートおよび定義の特性を設定することを可能にする。こ
れは、共通の特性ページを再使用して、特性をサポートする任意のコンポーネン
トについて、それらを設定することを可能にする。一実施形態では、これは、C
++における継承およびダイナミックなキャスティングを用いて達成する。
【0017】
図2は、Cで書かれた図1のプログラムなどのレガシープログラムとのインタ
フェースを取った本発明の構築図である。レガシープログラム40は、場当たり
方式でばら撒かれたマルチプルデータストラクチャ41〜45を含んでいる。各
データストラクチャは、ネーム、説明などの共通の特性を有している。しかしな
がら、Cなどのレガシープログラミング言語では、データストラクチャ内の共通
の特性を互いに他にリンクするいかなる手立てもない。本発明は、これらの共通
の特性を互いに他に結合することを可能にする。
フェースを取った本発明の構築図である。レガシープログラム40は、場当たり
方式でばら撒かれたマルチプルデータストラクチャ41〜45を含んでいる。各
データストラクチャは、ネーム、説明などの共通の特性を有している。しかしな
がら、Cなどのレガシープログラミング言語では、データストラクチャ内の共通
の特性を互いに他にリンクするいかなる手立てもない。本発明は、これらの共通
の特性を互いに他に結合することを可能にする。
【0018】
レガシープログラム40には、ラッパーモジュール50が結合されている。ラ
ッパーモジュール50は、C++などのオブジェクト指向言語で書かれたラッパ
ーオブジェクトである。ラッパーオブジェクトには、ネームオブジェクト51、
説明オブジェクト52およびコストオブジェクト53などの各特性についてのオ
ブジェクト51〜53が関連している。ラッパーオブジェクト50および特性ペ
ージ60は、協動してランタイムタイプアイデンティフィケーションコマンドを
用いて、レガシープログラム40のデータストラクチャに命令を加える。
ッパーモジュール50は、C++などのオブジェクト指向言語で書かれたラッパ
ーオブジェクトである。ラッパーオブジェクトには、ネームオブジェクト51、
説明オブジェクト52およびコストオブジェクト53などの各特性についてのオ
ブジェクト51〜53が関連している。ラッパーオブジェクト50および特性ペ
ージ60は、協動してランタイムタイプアイデンティフィケーションコマンドを
用いて、レガシープログラム40のデータストラクチャに命令を加える。
【0019】
ラッパーオブジェクト50には、特性ページまたはページ(複数)60が結合
されている。特性ページ60は、C++などのオブジェクト指向言語で書かれて
いる。
されている。特性ページ60は、C++などのオブジェクト指向言語で書かれて
いる。
【0020】
インタフェースモジュール70は、本発明の残余の機能を含んでいる。インタ
フェースモジュール70は、コンポーネントが、プログラム40のインタフェー
ス10で選択された場合に行われるステップを実行するヒットハンドラーである
。
フェースモジュール70は、コンポーネントが、プログラム40のインタフェー
ス10で選択された場合に行われるステップを実行するヒットハンドラーである
。
【0021】
一般に、本発明は、値の固定セットを操作するための単一の特性ページを組み
込んでおり、これらの値が生じた場合にはいつでも、その単一の特性ページを用
いて、それらを操作する。したがって、例えば、定義特性およびノート特性を操
作する特性ページは、この特性を有するいかなるオブジェクトにも使用されよう
。
込んでおり、これらの値が生じた場合にはいつでも、その単一の特性ページを用
いて、それらを操作する。したがって、例えば、定義特性およびノート特性を操
作する特性ページは、この特性を有するいかなるオブジェクトにも使用されよう
。
【0022】
要するに、本発明は、オブジェクト/特性メタモデルをエミュレートする。こ
の技法は、特性値を含むオブジェクトからそれらを分離する。「ネーム」特性を
有するオブジェクトは、ネーム値を含む代わりに、「ネーム」特性クラスのイン
スタンスに関連しよう。システムが、オブジェクトのネームを必要とする場合は
、システムは、オブジェクトにその「ネーム」特性の値を訊く。オブジェクトは
、その特性リストをスキャンして、「ネーム」特性のインスタンスを探し、見つ
かった場合は、その値を戻す。見つからない場合は、失敗表示を戻す。この手続
きは、いかなるベーシックタイプのいかなる特性にも一般化されている。
の技法は、特性値を含むオブジェクトからそれらを分離する。「ネーム」特性を
有するオブジェクトは、ネーム値を含む代わりに、「ネーム」特性クラスのイン
スタンスに関連しよう。システムが、オブジェクトのネームを必要とする場合は
、システムは、オブジェクトにその「ネーム」特性の値を訊く。オブジェクトは
、その特性リストをスキャンして、「ネーム」特性のインスタンスを探し、見つ
かった場合は、その値を戻す。見つからない場合は、失敗表示を戻す。この手続
きは、いかなるベーシックタイプのいかなる特性にも一般化されている。
【0023】
本発明は、ベースラッパークラスを定義する。新しい特性ページは、ベースラ
ッパーから下降するクラスを通して、レガシーデータストラクチャと対話する。
これは、レガシーデータストラクチャのデテールから特性ページのインプリメン
テーションを分離することを可能にし、擬似特性の操作に共通のインタフェース
を与える。
ッパーから下降するクラスを通して、レガシーデータストラクチャと対話する。
これは、レガシーデータストラクチャのデテールから特性ページのインプリメン
テーションを分離することを可能にし、擬似特性の操作に共通のインタフェース
を与える。
【0024】
本発明は、さらに、システム内の各特性について、ポリシークラス(ベース特
性クラス)を定義する。これらクラスは、特性の値を操作する方法を定義はする
が、インプリメントはしない。ベース特性クラスは、「ノート」のような簡単な
特性については、特性の値を得て設定する方法を指定する。特性値によっては、
確認を必要とするものもあり、そのような特性のポリシークラスは、確認の方法
を公表しなければならない。ベース特性クラスは、リスト特性については、特性
値をトラバースし、かつ、操作するイテレータにアクセスする方法を定義する。
これらイテレータは、それら自体、最高の柔軟性を目的としたポリシークラスと
して、指定される。
性クラス)を定義する。これらクラスは、特性の値を操作する方法を定義はする
が、インプリメントはしない。ベース特性クラスは、「ノート」のような簡単な
特性については、特性の値を得て設定する方法を指定する。特性値によっては、
確認を必要とするものもあり、そのような特性のポリシークラスは、確認の方法
を公表しなければならない。ベース特性クラスは、リスト特性については、特性
値をトラバースし、かつ、操作するイテレータにアクセスする方法を定義する。
これらイテレータは、それら自体、最高の柔軟性を目的としたポリシークラスと
して、指定される。
【0025】
プログラマーが、本発明を用いて、図1のインタフェース10のコンポーネン
トに関連した特性を操作することを望む場合は、プログラマーは、以下のことを
行う。
トに関連した特性を操作することを望む場合は、プログラマーは、以下のことを
行う。
【0026】
1.操作によってどのレガシーデータストラクチャ(複数も可)が影響される
を判定する。場合によっては、画面上のコンポーネントを、マルチプルデータス
トラクチャで表す。
を判定する。場合によっては、画面上のコンポーネントを、マルチプルデータス
トラクチャで表す。
【0027】
2.どの特性が操作すべきダイヤグラムコンポーネントに関連したかを判定し
、不可欠な擬似特性ポリシーインタフェースクラスを組み立てあるいは作成する
。
、不可欠な擬似特性ポリシーインタフェースクラスを組み立てあるいは作成する
。
【0028】
3.コンポーネントラッパークラスを定義する。このクラスは、(特性ページ
フレームワークにアクセスできるよう)ベースラッパークラスから、また、操作
を必要とする各特性に関連したポリシークラスから引き継がれる。
フレームワークにアクセスできるよう)ベースラッパークラスから、また、操作
を必要とする各特性に関連したポリシークラスから引き継がれる。
【0029】
4.前のステップで定義されたコンポーネントラッパークラスをインプリメン
トする。インプリメンテーションのデテールは、内在するレガシーデータストラ
クチャの種類に依存する。
トする。インプリメンテーションのデテールは、内在するレガシーデータストラ
クチャの種類に依存する。
【0030】
5.所望の特性を操作する特性ページを組み立てる(あるいは、必要なら、イ
ンプリメントする)。
ンプリメントする)。
【0031】
特性ページは、下記のように、ラップされたレガシーデータストラクチャ(複
数も可)を操作する。 ・特性値を抽出し表示する; ・ユーザ編集(すなわち新しいあるいは変更された特性値)を確認する;かつ、
・新しい特性値をラップされたレガシーデータストラクチャ(複数も可)にポス
トする。
数も可)を操作する。 ・特性値を抽出し表示する; ・ユーザ編集(すなわち新しいあるいは変更された特性値)を確認する;かつ、
・新しい特性値をラップされたレガシーデータストラクチャ(複数も可)にポス
トする。
【0032】
本発明の一実施形態を用いるプログラマーは、これを成し遂げるため、特性ペ
ージ内の下記の方法をインプリメントする。
ージ内の下記の方法をインプリメントする。
【0033】
方法のそれぞれは、ベースラッパーオブジェクトに対するポインタを受け取り
、このポインタを通して、操作された特性値を抽出しなければならない。それら
は、ダイナミックキャストを用いて、ベースラッパーポインタを所望の特性のポ
リシークラスに対するポインタに変換することにより、これを成し遂げる。キャ
ストが成功する(すなわち、ノンナル結果を戻す)場合は、特性ページは、その
所望の特性へのアクセスを確保する。キャストが失敗する場合は、特性ページは
、適当な処置を取る。
、このポインタを通して、操作された特性値を抽出しなければならない。それら
は、ダイナミックキャストを用いて、ベースラッパーポインタを所望の特性のポ
リシークラスに対するポインタに変換することにより、これを成し遂げる。キャ
ストが成功する(すなわち、ノンナル結果を戻す)場合は、特性ページは、その
所望の特性へのアクセスを確保する。キャストが失敗する場合は、特性ページは
、適当な処置を取る。
【0034】
本発明は、このC++ダイナミックキャストステートメントを用いて、擬似特
性が有るかどうか、ラッパーに質問する。これは、レガシー「C」データストラ
クチャを操作する際、オブジェクト/特性メタモデル(特性値はそれらの所有す
るオブジェクトとは別個にストアされている)をシミュレートするための新規な
やり方である。この技法は、ランタイムタイプアイデンティフィケーション(例
えば、SMALLTALK, Java(登録商標), EIFFELなど)をサポートするいかなるオ
ブジェクト指向の言語でもインプリメント可能である。
性が有るかどうか、ラッパーに質問する。これは、レガシー「C」データストラ
クチャを操作する際、オブジェクト/特性メタモデル(特性値はそれらの所有す
るオブジェクトとは別個にストアされている)をシミュレートするための新規な
やり方である。この技法は、ランタイムタイプアイデンティフィケーション(例
えば、SMALLTALK, Java(登録商標), EIFFELなど)をサポートするいかなるオ
ブジェクト指向の言語でもインプリメント可能である。
【0035】
下記のフローチャートは、ラッパーモジュール50、特性ページ60およびイ
ンタフェースモジュール70の複合機能を説明する。
ンタフェースモジュール70の複合機能を説明する。
【0036】
図3は、ユーザが、本発明の一実施形態による図1のインタフェース10によ
り表示されたコンポーネントの一つを選択する場合に実行されるステップのフロ
ーチャートである。
り表示されたコンポーネントの一つを選択する場合に実行されるステップのフロ
ーチャートである。
【0037】
ステップ100では、選択されたコンポーネントの種類(例えば、矢印、活動
など)が判定される。インタフェース10により、マルチプルタイプのダイヤグ
ラムが表示できる場合は、選択されたダイヤグラムの種類も、ステップ100で
判定される。一実施形態では、インタフェース10は、三つのダイヤグラムの種
類のうちの一つを表示できる。
など)が判定される。インタフェース10により、マルチプルタイプのダイヤグ
ラムが表示できる場合は、選択されたダイヤグラムの種類も、ステップ100で
判定される。一実施形態では、インタフェース10は、三つのダイヤグラムの種
類のうちの一つを表示できる。
【0038】
ステップ110では、ステップ100で判定された情報が、メソドロジー登録
オブジェクトにパスされる。登録オブジェクトは、異なるコンポーネントおよび
ダイヤグラムの種類を処理する仕方を知っているコードのセットである。このク
ラスは、システム内に正確に一つのインスタンスを有している。
オブジェクトにパスされる。登録オブジェクトは、異なるコンポーネントおよび
ダイヤグラムの種類を処理する仕方を知っているコードのセットである。このク
ラスは、システム内に正確に一つのインスタンスを有している。
【0039】
ステップ120では、メソドロジー登録オブジェクトは、適当なメソドロジー
ユーザインタフェース(「UI」)ベースのハンドラーオブジェクトを見出し、イ
ベントについて処理する。各ダイヤグラムの種類には、特有のハンドラーオブジ
ェクトが有る。
ユーザインタフェース(「UI」)ベースのハンドラーオブジェクトを見出し、イ
ベントについて処理する。各ダイヤグラムの種類には、特有のハンドラーオブジ
ェクトが有る。
【0040】
ステップ130では、適当なヒットハンドラーが見出される。ユーザがダイヤ
グラムで選択可能なコンポーネントまたはオブジェクトの各種類につき、一つの
ヒットハンドラーが存在する。コンポーネントの例は、活動、縦および横の線分
などに関連したボックスを含んでいる。
グラムで選択可能なコンポーネントまたはオブジェクトの各種類につき、一つの
ヒットハンドラーが存在する。コンポーネントの例は、活動、縦および横の線分
などに関連したボックスを含んでいる。
【0041】
ステップ140では、ステップ130で見出されたヒットハンドラーにイベン
トデータが送られる。コンポーネントの種類は、ヒットハンドラーが、既にコン
ポーネントの種類を知っているため、イベントデータから剥奪される。ヒットハ
ンドラーは、ユーザが選択したコンポーネント用に特殊化されている。
トデータが送られる。コンポーネントの種類は、ヒットハンドラーが、既にコン
ポーネントの種類を知っているため、イベントデータから剥奪される。ヒットハ
ンドラーは、ユーザが選択したコンポーネント用に特殊化されている。
【0042】
ステップ150では、ヒットにより影響されるレガシープログラム40のデー
タストラクチャを整理する。これは、処理されるコンポーネントの種類により異
なる。
タストラクチャを整理する。これは、処理されるコンポーネントの種類により異
なる。
【0043】
ステップ160では、ヒットハンドラーは、整理されたデータストラクチャの
周りにラッパーを作成する。ユーザがヒットまたは選択する可能性のある各オブ
ジェクトおよび各種類のダイヤグラムに対して、一つの特定のラッパークラスが
存在する。したがって、例えば、プロセスダイヤグラム内のボックスは、データ
フローダイヤグラム内のボックスとは異なるラッパーストラクチャを有している
。
周りにラッパーを作成する。ユーザがヒットまたは選択する可能性のある各オブ
ジェクトおよび各種類のダイヤグラムに対して、一つの特定のラッパークラスが
存在する。したがって、例えば、プロセスダイヤグラム内のボックスは、データ
フローダイヤグラム内のボックスとは異なるラッパーストラクチャを有している
。
【0044】
ステップ170では、ヒットハンドラーは、アクティブなコンポーネントに適
用される特性ページを作成する。特性ページは、一般に、全体的な特性シートの
図形「タブ」として、表示される。
用される特性ページを作成する。特性ページは、一般に、全体的な特性シートの
図形「タブ」として、表示される。
【0045】
ステップ180では、ヒットハンドラーは、特性ページを含む特性シートを作
成する。特性シート構造は、シートをラッパーストラクチャに結合する。 ステップ190では、ヒットハンドラーは、特性ページを特性シートに結合する
。結合の順序は、表示のタブの順序を決定する。
成する。特性シート構造は、シートをラッパーストラクチャに結合する。 ステップ190では、ヒットハンドラーは、特性ページを特性シートに結合する
。結合の順序は、表示のタブの順序を決定する。
【0046】
ステップ200では、ヒットハンドラーは、特性シートに命令して、「更新を
表示および実行する」方法を呼び出すことにより、更新を実行する。このステッ
プは、特性ページとインタフェース10との間の対話が行われる場所である。
表示および実行する」方法を呼び出すことにより、更新を実行する。このステッ
プは、特性ページとインタフェース10との間の対話が行われる場所である。
【0047】
最後に、ステップ210では、ヒットハンドラーは、いかなる必要なポスト処
理も行う。ヒットハンドラーはまた、全ての特性ページおよび選択されたコンポ
ーネントを処理するのに使用された特性シートおよびラッパーストラクチャを破
棄する。
理も行う。ヒットハンドラーはまた、全ての特性ページおよび選択されたコンポ
ーネントを処理するのに使用された特性シートおよびラッパーストラクチャを破
棄する。
【0048】
下記のフローチャートは、特性ページが、ラッパーモジュール50に対して、
いかにGO動作するかについてのデテールを与える。各特性ページロジックは、標
準のウィンドウズ(登録商標)イベントの外でドライブされる。処理される主な
イベントは、下記の通りである。 1) OnInit Dialog―特性ページの表示をセットアップする; 2) OnApply―データを確認し、セーブする;および 3) OnCancel―編集をキャンセルする。
いかにGO動作するかについてのデテールを与える。各特性ページロジックは、標
準のウィンドウズ(登録商標)イベントの外でドライブされる。処理される主な
イベントは、下記の通りである。 1) OnInit Dialog―特性ページの表示をセットアップする; 2) OnApply―データを確認し、セーブする;および 3) OnCancel―編集をキャンセルする。
【0049】
他のイベントは、ヘルプ表示を管理し、状態(外観)を表示する。
【0050】
特性ページは、初期化されること無しにスタートする。それらは、ユーザがそ
れらを表示する時に初期化される。フレームワークは、初期化されていないペー
ジを無視する。
れらを表示する時に初期化される。フレームワークは、初期化されていないペー
ジを無視する。
【0051】
図4は、OnInitDataイベントに対して実行されるステップのフローチャートで
ある。ステップ300は、コンポーネントが、図1のインタフェース10で選択
される時、あるいは特性シートのタブが選択される時、実行される。OnInitData
イベントは、特性ページに、それが、最初に表示されようとしていること、およ
び、それが、セットアップを行うべきことを告げる。
ある。ステップ300は、コンポーネントが、図1のインタフェース10で選択
される時、あるいは特性シートのタブが選択される時、実行される。OnInitData
イベントは、特性ページに、それが、最初に表示されようとしていること、およ
び、それが、セットアップを行うべきことを告げる。
【0052】
ステップ310では、特性ページのフレームワークは、初期化を実行し、特殊
化されたLoadFrom法を呼び出す。この方法は、特性ページごとに異なる。
化されたLoadFrom法を呼び出す。この方法は、特性ページごとに異なる。
【0053】
ステップ320では、表示すべき各特性に対して、ランタイムタイプアイデン
ティフィケーションが、実行される。一実施形態では、これは、所望の特性の種
類に対するラッパーポインタをキャストすることにより、C++でインプリメン
トされる。ラッパーポインタは、LoadFromコールにパスされる。
ティフィケーションが、実行される。一実施形態では、これは、所望の特性の種
類に対するラッパーポインタをキャストすることにより、C++でインプリメン
トされる。ラッパーポインタは、LoadFromコールにパスされる。
【0054】
キャストは、ダイナミックなキャスト動作を通して行われ、所望の擬似特性が
、ラッパーに属していない場合は、失敗する。所属化は、マルチプルインタフェ
ースを通して行われる。
、ラッパーに属していない場合は、失敗する。所属化は、マルチプルインタフェ
ースを通して行われる。
【0055】
ステップ330では、キャストが成功したどうかが判定される。キャストが成
功する場合は、ステップ340で、特性値(例えば、ネーム、ノート、定義など
)が実行され、表示のための特性ページにポストされる。
功する場合は、ステップ340で、特性値(例えば、ネーム、ノート、定義など
)が実行され、表示のための特性ページにポストされる。
【0056】
ステップ330で、キャストが失敗した場合は、ステップ350で、必要なら
、修正処置が取られる。
、修正処置が取られる。
【0057】
図5は、Applyメッセージが受け取られ、データがセーブされる場合に実行さ
れるステップのフローチャートである。Applyメッセージは、システムが、任意
の変更された値を取り、それを内在のシステムに適用(すなわち、データをセー
ブ)すべきことを示す。
れるステップのフローチャートである。Applyメッセージは、システムが、任意
の変更された値を取り、それを内在のシステムに適用(すなわち、データをセー
ブ)すべきことを示す。
【0058】
ステップ400では、ユーザが、特性シート上でOK またはApplyを押したため
、Applyメッセージが受け取られる。
、Applyメッセージが受け取られる。
【0059】
ステップ410では、受取り特性ページが、処理のため含有特性シートにイベ
ントをパスする。
ントをパスする。
【0060】
ステップ420では、特性シート内の各特性ページについて、そのページがア
クティブかどうか判定される。アクティブの場合、そのページは、ステップ43
0で、その編集の全てを確認するよう求められる。
クティブかどうか判定される。アクティブの場合、そのページは、ステップ43
0で、その編集の全てを確認するよう求められる。
【0061】
ステップ450では、エラーが発生したかどうかが判定される。エラーが発生
した場合は、ステップ460で、エラーを有するページが、タブ付きダイアログ
の前に持って来られる。
した場合は、ステップ460で、エラーを有するページが、タブ付きダイアログ
の前に持って来られる。
【0062】
ステップ450で、いかなるエラーも発生しなかった場合は、編集が行われた
システム内の各初期化表示について、ユーザが変更した特性がセーブされる。
システム内の各初期化表示について、ユーザが変更した特性がセーブされる。
【0063】
図6は、データが、本発明の一実施形態により確認される時に実行されるステ
ップのフローチャートである。先ず、ベースラッパーに対するポインタがコール
にパスされる。
ップのフローチャートである。先ず、ベースラッパーに対するポインタがコール
にパスされる。
【0064】
ステップ500では、確認を必要とする特性ページに関連した各特性に対して
、ダイナミックキャストを用いて、特性に対するポインタを抽出する。
、ダイナミックキャストを用いて、特性に対するポインタを抽出する。
【0065】
ステップ510では、キャストが成功したかどうかが判定される。もし成功し
なかった場合は、ステップ520で、エラー処理が実行され、成功した場合は、
特性ページの確認方法が、ステップ530で呼び出される。最後に、ステップ5
40で、オペレーションステイタスが戻される。
なかった場合は、ステップ520で、エラー処理が実行され、成功した場合は、
特性ページの確認方法が、ステップ530で呼び出される。最後に、ステップ5
40で、オペレーションステイタスが戻される。
【0066】
図7は、特性ページがセーブされる時に実行されるステップのフローチャート
である。ステップ710では、ページが操作する各特性(例えば、ネーム、定義
など)につき、ポインタが、ランタイムタイプアイデンティフィケーション(す
なわち、ダイナミックキャスト)を通して、抽出される。
である。ステップ710では、ページが操作する各特性(例えば、ネーム、定義
など)につき、ポインタが、ランタイムタイプアイデンティフィケーション(す
なわち、ダイナミックキャスト)を通して、抽出される。
【0067】
ステップ730では、キャストが成功したかどうかが判定される。もし成功し
なかった場合は、ステップ740で、エラー処理が実行される。成功した場合は
、新しい特性値が、ステップ750で、特性クラスにおける適当な方法を呼び出
すことにより、セーブされる。
なかった場合は、ステップ740で、エラー処理が実行される。成功した場合は
、新しい特性値が、ステップ750で、特性クラスにおける適当な方法を呼び出
すことにより、セーブされる。
【0068】
上述のように、本発明は、レガシーデータストラクチャをオブジェクト指向の
プログラムと共に使用することを可能にする方法を提供する。したがって、例え
ば、単一の特性ページは、レガシーデータストラクチャの全てにおける当該属性
にアクセス可能である。これは、より旧いレガシーコードが、オブジェクト指向
のコードの利点のうちのいくつかを有することを可能にする。
プログラムと共に使用することを可能にする方法を提供する。したがって、例え
ば、単一の特性ページは、レガシーデータストラクチャの全てにおける当該属性
にアクセス可能である。これは、より旧いレガシーコードが、オブジェクト指向
のコードの利点のうちのいくつかを有することを可能にする。
【0069】
以上、本発明のいくつかの実施形態を詳しく図解し、かつ(あるいは)説明し
た。しかしながら、本発明修正および変形が、上記の教示により、かつ、添付の
クレームの範囲内で、発明の主旨および意図された範囲を逸脱することなしに、
カバーされることが理解されよう。
た。しかしながら、本発明修正および変形が、上記の教示により、かつ、添付の
クレームの範囲内で、発明の主旨および意図された範囲を逸脱することなしに、
カバーされることが理解されよう。
【図1】
データストラクチャを有する「レガシー」アプリケーションプログラムの出力
例を図解するグラフ表示である。
例を図解するグラフ表示である。
【図2】
Cで書かれた図1のプログラムなどのレガシープログラムとのインタフェース
を取った本発明の構築図である。
を取った本発明の構築図である。
【図3】
ユーザが、本発明の一実施形態による図1のインタフェースにより表示された
コンポーネントの一つを選択する場合に実行されるステップのフローチャートで
ある。
コンポーネントの一つを選択する場合に実行されるステップのフローチャートで
ある。
【図4】
本発明の一実施形態によるOnInitDataイベントに対して実行されるステップの
フローチャートである。
フローチャートである。
【図5】
本発明の一実施形態により、Applyメッセージが受け取られ、データがセーブ
される場合に実行されるステップのフローチャートである。
される場合に実行されるステップのフローチャートである。
【図6】
データが、本発明の一実施形態により確認される時に実行されるステップのフ
ローチャートである。
ローチャートである。
【図7】
本発明の一実施形態により、特性値がセーブされる時に実行されるステップの
フローチャートである。
フローチャートである。
─────────────────────────────────────────────────────
フロントページの続き
(81)指定国 EP(AT,BE,CH,CY,
DE,DK,ES,FI,FR,GB,GR,IE,I
T,LU,MC,NL,PT,SE),OA(BF,BJ
,CF,CG,CI,CM,GA,GN,GW,ML,
MR,NE,SN,TD,TG),AP(GH,GM,K
E,LS,MW,MZ,SD,SL,SZ,TZ,UG
,ZW),EA(AM,AZ,BY,KG,KZ,MD,
RU,TJ,TM),AE,AG,AL,AM,AT,
AU,AZ,BA,BB,BG,BR,BY,BZ,C
A,CH,CN,CR,CU,CZ,DE,DK,DM
,DZ,EE,ES,FI,GB,GD,GE,GH,
GM,HR,HU,ID,IL,IN,IS,JP,K
E,KG,KP,KR,KZ,LC,LK,LR,LS
,LT,LU,LV,MA,MD,MG,MK,MN,
MW,MX,MZ,NO,NZ,PL,PT,RO,R
U,SD,SE,SG,SI,SK,SL,TJ,TM
,TR,TT,TZ,UA,UG,UZ,VN,YU,
ZA,ZW
Claims (8)
- 【請求項1】 レガシーデータストラクチャの属性を操作する方法であって
、前記方法は、 (a) 該レガシーデータストラクチャに結合されたラッパーオブジェクトに
対するポインタを受け取る工程と、 (b) コンポーネントラッパークラスを定義する工程と、 (d) 擬似特性の存在についてラッパークラスに問い合わせる工程と、 (e) 該擬似特性へのアクセスを有するオブジェクトを作成する工程と、 を含むことを特徴とする方法。 - 【請求項2】 ステップ(c)は、ランタイムタイプアイデンティフィケー
ションを実行する工程を含むこととする請求項1に記載の方法。 - 【請求項3】 ステップ(c)は、ダイナミックキャストを実行する工程を
含むこととする請求項1に記載の方法。 - 【請求項4】 データストラクチャは、Cで書かれていることとする請求項
1に記載の方法。 - 【請求項5】 前記オブジェクトは、C++で書かれていることとする請求
項1に記載の方法。 - 【請求項6】 前記オブジェクトは、Java(登録商標)で書かれていること
とする請求項1に記載の方法。 - 【請求項7】 前記オブジェクトは、特性ページであることとする請求項1
に記載の方法。 - 【請求項8】 レガシーデータストラクチャの属性を操作する方法であって
、前記方法は、 (a) ベースラッパークラスを定義する工程と、 (b) 操作されている各属性の種類について擬似特性ポリシークラスを定義
する工程と、 (c) 操作されるべきレガシーデータストラクチャの各別個のセットについ
て、一つまたはそれ以上のラッパークラスを定義する工程と、 (d) ラッパークラスのそれぞれの基礎をベースラッパークラスに置く工程
と、 (e) ラッパークラスのそれぞれの基礎を擬似特性ポリシークラスに置く工
程と、 (f) 擬似特性ポリシークラスを再使用して、個別データストラクチャ内の
関係属性を表す工程と、 (g) ベースラッパークラスを操作するオブジェクトを作成する工程と、 (h) 擬似特性の存在について、ラッパークラスに問い合わせる工程と、 (i) ラッパーオブジェクト内にインプリメントされた擬似特性を通してデ
ータストラクチャ内の属性を操作する工程と、 を含むことを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/359,038 US6305007B1 (en) | 1998-07-24 | 1999-07-23 | Object property meta model emulator for legacy data structures |
US09/359,038 | 1999-07-23 | ||
PCT/US2000/019836 WO2001008008A1 (en) | 1999-07-23 | 2000-07-21 | Object property meta model emulator for legacy data structures |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003535383A true JP2003535383A (ja) | 2003-11-25 |
Family
ID=23412054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001513035A Pending JP2003535383A (ja) | 1999-07-23 | 2000-07-21 | レガシーデータストラクチャ用オブジェクト特性メタモデルエミュレータ |
Country Status (12)
Country | Link |
---|---|
US (1) | US6305007B1 (ja) |
EP (1) | EP1236102B1 (ja) |
JP (1) | JP2003535383A (ja) |
KR (1) | KR20020035567A (ja) |
CN (1) | CN1371499A (ja) |
AU (1) | AU779588B2 (ja) |
BR (1) | BR0012715A (ja) |
CA (1) | CA2380256A1 (ja) |
HK (1) | HK1050936A1 (ja) |
IL (1) | IL147775A0 (ja) |
WO (1) | WO2001008008A1 (ja) |
ZA (1) | ZA200200613B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110615B2 (en) | 2011-08-03 | 2015-08-18 | Seiko Epson Corporation | Point of sale control device, control method, and storage medium storing a program for a point of sale device |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183306B2 (en) | 1998-12-18 | 2015-11-10 | Microsoft Technology Licensing, Llc | Automated selection of appropriate information based on a computer user's context |
US8181113B2 (en) | 1998-12-18 | 2012-05-15 | Microsoft Corporation | Mediating conflicts in computer users context data |
US6791580B1 (en) | 1998-12-18 | 2004-09-14 | Tangis Corporation | Supplying notifications related to supply and consumption of user context data |
US7231439B1 (en) | 2000-04-02 | 2007-06-12 | Tangis Corporation | Dynamically swapping modules for determining a computer user's context |
US6920616B1 (en) | 1998-12-18 | 2005-07-19 | Tangis Corporation | Interface for exchanging context data |
US7225229B1 (en) | 1998-12-18 | 2007-05-29 | Tangis Corporation | Automated pushing of computer user's context data to clients |
US7046263B1 (en) | 1998-12-18 | 2006-05-16 | Tangis Corporation | Requesting computer user's context data |
US6513046B1 (en) | 1999-12-15 | 2003-01-28 | Tangis Corporation | Storing and recalling information to augment human memories |
US7779015B2 (en) | 1998-12-18 | 2010-08-17 | Microsoft Corporation | Logging and analyzing context attributes |
US8225214B2 (en) | 1998-12-18 | 2012-07-17 | Microsoft Corporation | Supplying enhanced computer user's context data |
US6801223B1 (en) | 1998-12-18 | 2004-10-05 | Tangis Corporation | Managing interactions between computer users' context models |
US6842877B2 (en) | 1998-12-18 | 2005-01-11 | Tangis Corporation | Contextual responses based on automated learning techniques |
US6578195B1 (en) * | 1999-12-29 | 2003-06-10 | Lucent Technologies Inc. | Process for data encapsulation in large scale legacy software |
AU2001249768A1 (en) | 2000-04-02 | 2001-10-15 | Tangis Corporation | Soliciting information based on a computer user's context |
US7464153B1 (en) | 2000-04-02 | 2008-12-09 | Microsoft Corporation | Generating and supplying user context data |
US20020054130A1 (en) | 2000-10-16 | 2002-05-09 | Abbott Kenneth H. | Dynamically displaying current status of tasks |
US20100223295A1 (en) * | 2000-12-06 | 2010-09-02 | Io Informatics, Inc. | Applied Semantic Knowledgebases and Applications Thereof |
US6988109B2 (en) * | 2000-12-06 | 2006-01-17 | Io Informatics, Inc. | System, method, software architecture, and business model for an intelligent object based information technology platform |
WO2002054171A2 (en) * | 2000-12-06 | 2002-07-11 | Biosentients, Inc. | System, method, software architecture and business model for an intelligent object based information technology platform |
US20020116700A1 (en) * | 2001-02-12 | 2002-08-22 | Clemente Izurieta | Method for linking non-object oriented data models to object oriented data models using a technique to achieve zero-size object mapping |
US20020147962A1 (en) * | 2001-02-12 | 2002-10-10 | International Business Machines Corporation | Method and system for incorporating legacy applications into a distributed data processing environment |
US7493391B2 (en) * | 2001-02-12 | 2009-02-17 | International Business Machines Corporation | System for automated session resource clean-up by determining whether server resources have been held by client longer than preset thresholds |
US6842905B2 (en) * | 2001-03-29 | 2005-01-11 | International Business Machines Corporation | Method and system for implementing collection program interface for accessing a collection of data associated with a legacy enumeration application interface |
US7107595B2 (en) * | 2001-04-05 | 2006-09-12 | Hewlett-Packard Development Company, L.P. | Mechanism for mapping Java objects onto an LDAP repository |
WO2003036464A2 (en) * | 2001-10-22 | 2003-05-01 | Sun Microsystems, Inc. | Inter-process communication using different programming languages |
KR100456023B1 (ko) * | 2001-12-19 | 2004-11-08 | 한국전자통신연구원 | 절차 지향 프로그램을 컴포넌트 기반의 시스템으로래핑하기 위한 방법 및 그 장치 |
US7089529B2 (en) * | 2002-08-26 | 2006-08-08 | International Business Machines Corporation | System and method for creating reusable management instrumentation for IT resources |
CA2400590A1 (en) * | 2002-08-29 | 2004-02-29 | Ibm Canada Limited-Ibm Canada Limitee | Method and apparatus for converting legacy programming language data structures to schema definitions |
US7298836B2 (en) * | 2002-09-24 | 2007-11-20 | At&T Bls Intellectual Property, Inc. | Network-based healthcare information systems |
US7224698B2 (en) * | 2002-11-27 | 2007-05-29 | Bellsouth Intellectual Property Corporation | Edge side assembler |
US7379464B2 (en) * | 2002-11-27 | 2008-05-27 | At&T Bls Intellectual Property, Inc. | Personal digital gateway |
US7263102B2 (en) * | 2002-11-27 | 2007-08-28 | At&T Intellectual Property, Inc. | Multi-path gateway communications device |
US7620170B2 (en) * | 2002-12-31 | 2009-11-17 | At&T Intellectual Property I, L.P. | Computer telephony integration (CTI) complete customer contact center |
US7356139B2 (en) * | 2002-12-31 | 2008-04-08 | At&T Delaware Intellectual Property, Inc. | Computer telephony integration (CTI) complete hospitality contact center |
CN1306430C (zh) * | 2002-12-31 | 2007-03-21 | 上海科泰世纪科技有限公司 | 基于构件的用户自定义事件方法 |
US7573999B2 (en) * | 2002-12-31 | 2009-08-11 | At&T Intellectual Property I, L.P. | Computer telephony integration (CTI) complete healthcare contact center |
US7440567B2 (en) | 2003-01-27 | 2008-10-21 | At&T Intellectual Property I, L.P. | Healthcare virtual private network methods and systems |
US8149823B2 (en) * | 2003-01-27 | 2012-04-03 | At&T Intellectual Property I, L.P. | Computer telephony integration (CTI) systems and methods for enhancing school safety |
US7248688B2 (en) | 2003-01-27 | 2007-07-24 | Bellsouth Intellectual Property Corporation | Virtual physician office systems and methods |
US7308679B2 (en) * | 2003-09-26 | 2007-12-11 | International Business Machines Corporation | Method and computer program product for providing a meta-data programming language level interface |
US7739164B1 (en) | 2003-10-07 | 2010-06-15 | Trading Technologies International, Inc. | System and method for displaying risk data in an electronic trading environment |
US7752118B1 (en) * | 2003-10-07 | 2010-07-06 | Trading Technologies International, Inc. | System and method for risk grid display in an electronic trading environment |
US20050235266A1 (en) * | 2004-04-20 | 2005-10-20 | Relativity Technologies, Inc. | System and method for business rule identification and classification |
US20050234976A1 (en) * | 2004-04-20 | 2005-10-20 | Relativity Technologies, Inc. | System and method for deriving an object oriented design from the business rules of a legacy application |
US20050273709A1 (en) * | 2004-06-04 | 2005-12-08 | Ira Lough | System and method for conversion of legacy language conforming data entries to industry-standard language conforming data entries |
US20080163159A1 (en) * | 2007-01-03 | 2008-07-03 | Relativity Technologies, Inc. | System and method for extracting UML models from legacy applications |
CN104484518A (zh) * | 2014-12-03 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种需求模型到仿真模型的模型转换方法 |
WO2018089800A1 (en) | 2016-11-10 | 2018-05-17 | Ronald Scott Visscher | System with a unique and versatile evaluation method |
CN111859695B (zh) * | 2020-07-28 | 2021-07-02 | 中国科学技术大学 | 基于高分五号卫星紫外可见高光谱的大气污染成分反演方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995003586A1 (en) * | 1993-07-21 | 1995-02-02 | Persistence Software, Inc. | Method and apparatus for generation of code for mapping relational data to objects |
US5764973A (en) | 1994-02-08 | 1998-06-09 | Enterworks.Com, Inc. | System for generating structured query language statements and integrating legacy systems |
US6016392A (en) | 1995-11-03 | 2000-01-18 | Intergraph Corporation | Method for object-oriented programming using dynamic interfaces |
US5960200A (en) * | 1996-05-03 | 1999-09-28 | I-Cube | System to transition an enterprise to a distributed infrastructure |
US5924074A (en) * | 1996-09-27 | 1999-07-13 | Azron Incorporated | Electronic medical records system |
US5809509A (en) * | 1996-10-25 | 1998-09-15 | International Business Machines Corporation | Method for using a non-object-oriented datastore as a generic persistent datastore for persistent objects |
US6161219A (en) * | 1997-07-03 | 2000-12-12 | The University Of Iowa Research Foundation | System and method for providing checkpointing with precompile directives and supporting software to produce checkpoints, independent of environment constraints |
US6016495A (en) * | 1997-09-19 | 2000-01-18 | International Business Machines Corporation | Object-oriented framework mechanism for providing persistent storage |
US6073129A (en) * | 1997-12-29 | 2000-06-06 | Bull Hn Information Systems Inc. | Method and apparatus for improving the performance of a database management system through a central cache mechanism |
US6202069B1 (en) * | 1998-04-30 | 2001-03-13 | International Business Machines Corporation | Execution paradigm for accessing hierarchical data using an object framework |
US6192369B1 (en) * | 1998-06-15 | 2001-02-20 | International Business Machines Corporation | Object-oriented paradigm for accessing transactional requests by modeling I/O message queues into an object framework |
-
1999
- 1999-07-23 US US09/359,038 patent/US6305007B1/en not_active Expired - Lifetime
-
2000
- 2000-07-21 IL IL14777500A patent/IL147775A0/xx unknown
- 2000-07-21 BR BR0012715-9A patent/BR0012715A/pt not_active IP Right Cessation
- 2000-07-21 JP JP2001513035A patent/JP2003535383A/ja active Pending
- 2000-07-21 KR KR1020027000990A patent/KR20020035567A/ko not_active Application Discontinuation
- 2000-07-21 CN CN00812267A patent/CN1371499A/zh active Pending
- 2000-07-21 WO PCT/US2000/019836 patent/WO2001008008A1/en not_active Application Discontinuation
- 2000-07-21 AU AU63587/00A patent/AU779588B2/en not_active Ceased
- 2000-07-21 EP EP00950488.7A patent/EP1236102B1/en not_active Expired - Lifetime
- 2000-07-21 CA CA002380256A patent/CA2380256A1/en not_active Abandoned
-
2002
- 2002-01-23 ZA ZA200200613A patent/ZA200200613B/xx unknown
-
2003
- 2003-02-18 HK HK03101245.8A patent/HK1050936A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110615B2 (en) | 2011-08-03 | 2015-08-18 | Seiko Epson Corporation | Point of sale control device, control method, and storage medium storing a program for a point of sale device |
Also Published As
Publication number | Publication date |
---|---|
EP1236102B1 (en) | 2016-03-30 |
WO2001008008A1 (en) | 2001-02-01 |
EP1236102A1 (en) | 2002-09-04 |
BR0012715A (pt) | 2003-07-15 |
AU779588B2 (en) | 2005-02-03 |
IL147775A0 (en) | 2002-08-14 |
CN1371499A (zh) | 2002-09-25 |
AU6358700A (en) | 2001-02-13 |
US6305007B1 (en) | 2001-10-16 |
EP1236102A4 (en) | 2003-07-16 |
KR20020035567A (ko) | 2002-05-11 |
ZA200200613B (en) | 2003-04-30 |
HK1050936A1 (zh) | 2003-07-11 |
CA2380256A1 (en) | 2001-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003535383A (ja) | レガシーデータストラクチャ用オブジェクト特性メタモデルエミュレータ | |
US6263498B1 (en) | Method and apparatus for enabling server side distributed object modification | |
US7627865B2 (en) | Method and apparatus for accessing instrumentation data from within a managed code environment | |
US6064382A (en) | Object oriented apparatus and method for providing a graphical user interface for host-based software applications | |
US6349404B1 (en) | Object-oriented repository, a system and method for reusing existing host-based application assets for the development of business-centric applications | |
US5956506A (en) | System and method for functionally enhancing procedural software using objects | |
CA2304608C (en) | A method for extending the hypertext markup language (html) to support enterprise application data binding | |
US8108834B2 (en) | Defining and executing processes using declarative programming language constructs | |
US20030200532A1 (en) | System and method for sharing reusable code base | |
EP2284698B1 (en) | Compositional modeling of integrated systems using event-based legacy applications | |
Becht et al. | ROPE: Role oriented programming environment for multiagent systems | |
US20040225995A1 (en) | Reusable software controls | |
US20060074732A1 (en) | Componentized and extensible workflow model | |
US6330711B1 (en) | Method and apparatus for dynamic application and maintenance of programs | |
KR20060087999A (ko) | 확장가능 워크플로 모델에 관한 선언적 표현 | |
JP2000504868A (ja) | 管理インターワーキング・ユニットおよびかかるユニットの形成方法 | |
US6138169A (en) | System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions | |
US20030018627A1 (en) | Apparatus and method for workflow | |
US6378002B1 (en) | Object oriented server process framework with implicit data handling registry for remote method invocations | |
US20070006121A1 (en) | Development activity recipe | |
Gschwind | Adaptation and composition techniques for component-based software engineering | |
US7802239B2 (en) | Supporting method references in the JAVA language | |
US20030117417A1 (en) | Generic application flow management system and method | |
Hammouda et al. | Generating a pattern-based application development environment for enterprise javabeans | |
US20060195434A1 (en) | Multiple Invocation Style Integration Framework |