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
Application number
JP2001513035A
Other languages
English (en)
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.)
CA Inc
Original Assignee
Computer Associates Think Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Computer Associates Think Inc filed Critical Computer Associates Think Inc
Publication of JP2003535383A publication Critical patent/JP2003535383A/ja
Pending legal-status Critical Current

Links

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
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • 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/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/99931Database or file accessing
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query 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の利益を主張する。
【0002】 <発明の属する技術分野> 本発明は、コンピュータソフトウェアプログラムに向けられている。より詳し
くは、本発明は、オブジェクト指向ソフトウェアプログラムと非 オブジェクト
指向ソフトウェアプログラムとの間のインタフェースに向けられている。
【0003】 <従来の技術> オブジェクト指向プログラミングは、コンピュータソフトウェアを書くための
、ますます一般的なモデルになって来ている。「オブジェクト」には、コード(
命令のシーケンス)とデータ(命令がそれを基に動作する情報)の両方を含んで
いる。オブジェクトの使用は、ソフトウェアのメンテナンス、再使用性、および
修正性を向上させ得る。オブジェクト指向プログラミング言語の例としては、C
++、Smalltalk、およびJava(登録商標)などがある。
【0004】 しかしながら、多くのソフトウェアプログラムは、非オブジェクト指向言語で
書かれている。これらプログラムは、「レガシー」プログラムと呼ぶことができ
、Fortran、Basic、およびCなどの言語で書くことができる。これらレガシープ
ログラムの多くは、より新しいオブジェクト指向の言語と共に使用する必要があ
るデータストラクチャおよびコードストラクチャを含んでいる。これらデータス
トラクチャをそれらがオブジェクト指向の言語とコンパチブルであるように再作
成するのは、時間を喰い、かつ、高価である。したがって、これらレガシーデー
タストラクチャとより新しいオブジェクト指向コードとのインタフェースを取る
手立てを有することが望ましい。
【0005】 したがって、レガシーソフトウェアアプリケーションとオブジェクト指向ソフ
トウェアアプリケーションとのインタフェースを取るための方法およびシステム
が必要である。
【0006】 <発明の要約> 本発明の一実施形態は、オブジェクト指向プログラムが、それらのフィールド
を、あたかもそれらが特性であるかのように操作できるようにレガシーデータス
トラクチャをラッピングする方法である。一つの実施形態においては、操作され
るべき各擬似特性について、インタフェースクラスが定義される。C++ラッパ
ーが、アブストラクト擬似特性クラスで定義されたインタフェースをインプリメ
ントする各レガシーデータストラクチャの周りに作成される。
【0007】 <詳細な説明> 本発明の一実施形態は、レガシーデータストラクチャをラップして、該データ
ストラクチャを、オブジェクト指向のプログラムと共に使用できるようにし、か
つ、単一の属性ページで、全ての適用可能なデータストラクチャに含まれるデー
タを操作できるようにする方法である。一実施形態では、操作されるべき各擬似
特性に対して、インタフェースクラスが、定義される。C++ラッパーが、アブ
ストラクト擬似特性クラスで定義されたインタフェースをインプリメントする各
レガシーデータストラクチャの周りに作成される。
【0008】 図1は、データストラクチャを有する「レガシー」アプリケーションプログラ
ムの出力例を図解するグラフ表示である。本特許の目的のためのレガシーアプリ
ケーションプログラムは、フォートラン、ベーシック、あるいはCなど非オブジ
ェクト指向のソフトウェアプログラミング言語で書かれたアプリケーションプロ
グラムである。 図1のレガシープログラムは、グラフィックインタフェース1
0を含むビジネスプロセスアプリケーションプログラムである。レガシープログ
ラムは、ビジネスプロセスを図解し、ビジネスプロセスの各ファセットに対して
、データおよびデータストラクチャを記憶する。
【0009】 図1に示した例では、「犬を清掃する」プロセスが図解されている。インタフ
ェース10は、異なるコンポーネントを含んでいる。例えば、インタフェース1
0は、それぞれ活動を表すボックス12〜14を含んでいる。ボックス12は、
犬を洗う活動を表し、ボックス13は、犬をリンスする活動を表し、ボックス1
4は、犬を乾かす活動を表す。
【0010】 インタフェース10は、矢印20〜23を含んでいる。各矢印は、入力および
出力情報を含む活動間の関係を表す。矢印20は、汚い犬を示し、活動12に入
力され、矢印21は、石鹸だらけの犬を示し、活動12から出力され、かつ、活
動13に入力される。さらに、矢印22は、濡れた犬を示し、活動13から出力
され、かつ、活動14に入力され、矢印23は、きれいな犬を示し、活動14か
ら出力される。
【0011】 インタフェース10はまた、活動12および13で桶が使用されることを示す
属性30を含んでいる。インタフェース10はまた、エンティティーコンポーネ
ント、および図1に示してない多くの他の種類のコンポーネントを含むこともで
きる。
【0012】 インタフェース10に見える各コンポーネントは、ユーザが選択し、編集する
ことができる。例えば、活動13または矢印20でクリックすることができる。
インタフェース10に関連したプログラムが、C++などのオブジェクト指向の
言語で書かれている場合は、コンポーネントは、それぞれ「クラス」と見なされ
るであろう。しかしながら、Cなどの非オブジェクト指向の言語では、それらは
、データストラクチャと見なされる。あるコンポーネントが選択されて、編集リ
ードされる場合は、各コンポーネントについて別個のダイアログが現れる。
【0013】 インタフェース10の各コンポーネントは、それに関連した1個またはそれ以
上の属性または特性を有している。 属性は、データストラクチャに含まれてい
る。属性の例は、ユーザが、各コンポーネントに、コンポーネントのネーム、コ
ンポーネントの定義、コンポーネントに対する活動の持続時間などを付与できる
ノートを含んでいる。
【0014】 一般に、属性または特性は、インタフェース10のコンポーネントあるいはイ
ンタフェース10に関連した辞書内のエントリ、あるいは任意のデータストラク
チャ内のリストまたはフィールド内のエントリに関連した任意の値である。オブ
ジェクト指向のソフトウェアの場合は、オブジェクトに関連した属性および特性
を具体化するコンセプトは、周知であり、「オブジェクト属性メタモデル」と呼
ばれている。
【0015】 インタフェース10およびそれに関連したレガシープログラムの一つの問題は
、各コンポーネント(例えば、矢印、活動など)は、レガシーコードでは、本質
的に異なるやり方で表されることである。例えば、各コンポーネントは、上記の
ように、ノート属性を有し得る。プログラムによりモデリングを行っているユー
ザは、活動、矢印、データストアなどを注解して、後の参考のため、ノートを作
ることができる。しかしながら、レガシーコードは、各コンポーネントについて
、別個のダイアログルーチンを含んでいる。したがって、レガシーコードは、矢
印にデータを添える最初のダイアログ、活動にデータを添える二番目のダイアロ
グ、データストアにデータを添える三番目のダイアログ、などの書込みを必要と
する。別個のダイアログをコード化して各コンポーネントを編集するのは、時間
を喰い、かつ高価な作業である。
【0016】 本発明の一実施形態は、ユーザが、任意のコンポーネントにノートを添える単
一の特性ページを開発し、次いで、それから活動、データストア、エンティティ
ー、属性などに拡がることを可能にする。例えば、特性ページは、ユーザが、任
意のコンポーネントにノートおよび定義の特性を設定することを可能にする。こ
れは、共通の特性ページを再使用して、特性をサポートする任意のコンポーネン
トについて、それらを設定することを可能にする。一実施形態では、これは、C
++における継承およびダイナミックなキャスティングを用いて達成する。
【0017】 図2は、Cで書かれた図1のプログラムなどのレガシープログラムとのインタ
フェースを取った本発明の構築図である。レガシープログラム40は、場当たり
方式でばら撒かれたマルチプルデータストラクチャ41〜45を含んでいる。各
データストラクチャは、ネーム、説明などの共通の特性を有している。しかしな
がら、Cなどのレガシープログラミング言語では、データストラクチャ内の共通
の特性を互いに他にリンクするいかなる手立てもない。本発明は、これらの共通
の特性を互いに他に結合することを可能にする。
【0018】 レガシープログラム40には、ラッパーモジュール50が結合されている。ラ
ッパーモジュール50は、C++などのオブジェクト指向言語で書かれたラッパ
ーオブジェクトである。ラッパーオブジェクトには、ネームオブジェクト51、
説明オブジェクト52およびコストオブジェクト53などの各特性についてのオ
ブジェクト51〜53が関連している。ラッパーオブジェクト50および特性ペ
ージ60は、協動してランタイムタイプアイデンティフィケーションコマンドを
用いて、レガシープログラム40のデータストラクチャに命令を加える。
【0019】 ラッパーオブジェクト50には、特性ページまたはページ(複数)60が結合
されている。特性ページ60は、C++などのオブジェクト指向言語で書かれて
いる。
【0020】 インタフェースモジュール70は、本発明の残余の機能を含んでいる。インタ
フェースモジュール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など)をサポートするいかなるオ
ブジェクト指向の言語でもインプリメント可能である。
【0035】 下記のフローチャートは、ラッパーモジュール50、特性ページ60およびイ
ンタフェースモジュール70の複合機能を説明する。
【0036】 図3は、ユーザが、本発明の一実施形態による図1のインタフェース10によ
り表示されたコンポーネントの一つを選択する場合に実行されるステップのフロ
ーチャートである。
【0037】 ステップ100では、選択されたコンポーネントの種類(例えば、矢印、活動
など)が判定される。インタフェース10により、マルチプルタイプのダイヤグ
ラムが表示できる場合は、選択されたダイヤグラムの種類も、ステップ100で
判定される。一実施形態では、インタフェース10は、三つのダイヤグラムの種
類のうちの一つを表示できる。
【0038】 ステップ110では、ステップ100で判定された情報が、メソドロジー登録
オブジェクトにパスされる。登録オブジェクトは、異なるコンポーネントおよび
ダイヤグラムの種類を処理する仕方を知っているコードのセットである。このク
ラスは、システム内に正確に一つのインスタンスを有している。
【0039】 ステップ120では、メソドロジー登録オブジェクトは、適当なメソドロジー
ユーザインタフェース(「UI」)ベースのハンドラーオブジェクトを見出し、イ
ベントについて処理する。各ダイヤグラムの種類には、特有のハンドラーオブジ
ェクトが有る。
【0040】 ステップ130では、適当なヒットハンドラーが見出される。ユーザがダイヤ
グラムで選択可能なコンポーネントまたはオブジェクトの各種類につき、一つの
ヒットハンドラーが存在する。コンポーネントの例は、活動、縦および横の線分
などに関連したボックスを含んでいる。
【0041】 ステップ140では、ステップ130で見出されたヒットハンドラーにイベン
トデータが送られる。コンポーネントの種類は、ヒットハンドラーが、既にコン
ポーネントの種類を知っているため、イベントデータから剥奪される。ヒットハ
ンドラーは、ユーザが選択したコンポーネント用に特殊化されている。
【0042】 ステップ150では、ヒットにより影響されるレガシープログラム40のデー
タストラクチャを整理する。これは、処理されるコンポーネントの種類により異
なる。
【0043】 ステップ160では、ヒットハンドラーは、整理されたデータストラクチャの
周りにラッパーを作成する。ユーザがヒットまたは選択する可能性のある各オブ
ジェクトおよび各種類のダイヤグラムに対して、一つの特定のラッパークラスが
存在する。したがって、例えば、プロセスダイヤグラム内のボックスは、データ
フローダイヤグラム内のボックスとは異なるラッパーストラクチャを有している
【0044】 ステップ170では、ヒットハンドラーは、アクティブなコンポーネントに適
用される特性ページを作成する。特性ページは、一般に、全体的な特性シートの
図形「タブ」として、表示される。
【0045】 ステップ180では、ヒットハンドラーは、特性ページを含む特性シートを作
成する。特性シート構造は、シートをラッパーストラクチャに結合する。 ステップ190では、ヒットハンドラーは、特性ページを特性シートに結合する
。結合の順序は、表示のタブの順序を決定する。
【0046】 ステップ200では、ヒットハンドラーは、特性シートに命令して、「更新を
表示および実行する」方法を呼び出すことにより、更新を実行する。このステッ
プは、特性ページとインタフェース10との間の対話が行われる場所である。
【0047】 最後に、ステップ210では、ヒットハンドラーは、いかなる必要なポスト処
理も行う。ヒットハンドラーはまた、全ての特性ページおよび選択されたコンポ
ーネントを処理するのに使用された特性シートおよびラッパーストラクチャを破
棄する。
【0048】 下記のフローチャートは、特性ページが、ラッパーモジュール50に対して、
いかにGO動作するかについてのデテールを与える。各特性ページロジックは、標
準のウィンドウズ(登録商標)イベントの外でドライブされる。処理される主な
イベントは、下記の通りである。 1) OnInit Dialog―特性ページの表示をセットアップする; 2) OnApply―データを確認し、セーブする;および 3) OnCancel―編集をキャンセルする。
【0049】 他のイベントは、ヘルプ表示を管理し、状態(外観)を表示する。
【0050】 特性ページは、初期化されること無しにスタートする。それらは、ユーザがそ
れらを表示する時に初期化される。フレームワークは、初期化されていないペー
ジを無視する。
【0051】 図4は、OnInitDataイベントに対して実行されるステップのフローチャートで
ある。ステップ300は、コンポーネントが、図1のインタフェース10で選択
される時、あるいは特性シートのタブが選択される時、実行される。OnInitData
イベントは、特性ページに、それが、最初に表示されようとしていること、およ
び、それが、セットアップを行うべきことを告げる。
【0052】 ステップ310では、特性ページのフレームワークは、初期化を実行し、特殊
化されたLoadFrom法を呼び出す。この方法は、特性ページごとに異なる。
【0053】 ステップ320では、表示すべき各特性に対して、ランタイムタイプアイデン
ティフィケーションが、実行される。一実施形態では、これは、所望の特性の種
類に対するラッパーポインタをキャストすることにより、C++でインプリメン
トされる。ラッパーポインタは、LoadFromコールにパスされる。
【0054】 キャストは、ダイナミックなキャスト動作を通して行われ、所望の擬似特性が
、ラッパーに属していない場合は、失敗する。所属化は、マルチプルインタフェ
ースを通して行われる。
【0055】 ステップ330では、キャストが成功したどうかが判定される。キャストが成
功する場合は、ステップ340で、特性値(例えば、ネーム、ノート、定義など
)が実行され、表示のための特性ページにポストされる。
【0056】 ステップ330で、キャストが失敗した場合は、ステップ350で、必要なら
、修正処置が取られる。
【0057】 図5は、Applyメッセージが受け取られ、データがセーブされる場合に実行さ
れるステップのフローチャートである。Applyメッセージは、システムが、任意
の変更された値を取り、それを内在のシステムに適用(すなわち、データをセー
ブ)すべきことを示す。
【0058】 ステップ400では、ユーザが、特性シート上でOK またはApplyを押したため
、Applyメッセージが受け取られる。
【0059】 ステップ410では、受取り特性ページが、処理のため含有特性シートにイベ
ントをパスする。
【0060】 ステップ420では、特性シート内の各特性ページについて、そのページがア
クティブかどうか判定される。アクティブの場合、そのページは、ステップ43
0で、その編集の全てを確認するよう求められる。
【0061】 ステップ450では、エラーが発生したかどうかが判定される。エラーが発生
した場合は、ステップ460で、エラーを有するページが、タブ付きダイアログ
の前に持って来られる。
【0062】 ステップ450で、いかなるエラーも発生しなかった場合は、編集が行われた
システム内の各初期化表示について、ユーザが変更した特性がセーブされる。
【0063】 図6は、データが、本発明の一実施形態により確認される時に実行されるステ
ップのフローチャートである。先ず、ベースラッパーに対するポインタがコール
にパスされる。
【0064】 ステップ500では、確認を必要とする特性ページに関連した各特性に対して
、ダイナミックキャストを用いて、特性に対するポインタを抽出する。
【0065】 ステップ510では、キャストが成功したかどうかが判定される。もし成功し
なかった場合は、ステップ520で、エラー処理が実行され、成功した場合は、
特性ページの確認方法が、ステップ530で呼び出される。最後に、ステップ5
40で、オペレーションステイタスが戻される。
【0066】 図7は、特性ページがセーブされる時に実行されるステップのフローチャート
である。ステップ710では、ページが操作する各特性(例えば、ネーム、定義
など)につき、ポインタが、ランタイムタイプアイデンティフィケーション(す
なわち、ダイナミックキャスト)を通して、抽出される。
【0067】 ステップ730では、キャストが成功したかどうかが判定される。もし成功し
なかった場合は、ステップ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. 【請求項1】 レガシーデータストラクチャの属性を操作する方法であって
    、前記方法は、 (a) 該レガシーデータストラクチャに結合されたラッパーオブジェクトに
    対するポインタを受け取る工程と、 (b) コンポーネントラッパークラスを定義する工程と、 (d) 擬似特性の存在についてラッパークラスに問い合わせる工程と、 (e) 該擬似特性へのアクセスを有するオブジェクトを作成する工程と、 を含むことを特徴とする方法。
  2. 【請求項2】 ステップ(c)は、ランタイムタイプアイデンティフィケー
    ションを実行する工程を含むこととする請求項1に記載の方法。
  3. 【請求項3】 ステップ(c)は、ダイナミックキャストを実行する工程を
    含むこととする請求項1に記載の方法。
  4. 【請求項4】 データストラクチャは、Cで書かれていることとする請求項
    1に記載の方法。
  5. 【請求項5】 前記オブジェクトは、C++で書かれていることとする請求
    項1に記載の方法。
  6. 【請求項6】 前記オブジェクトは、Java(登録商標)で書かれていること
    とする請求項1に記載の方法。
  7. 【請求項7】 前記オブジェクトは、特性ページであることとする請求項1
    に記載の方法。
  8. 【請求項8】 レガシーデータストラクチャの属性を操作する方法であって
    、前記方法は、 (a) ベースラッパークラスを定義する工程と、 (b) 操作されている各属性の種類について擬似特性ポリシークラスを定義
    する工程と、 (c) 操作されるべきレガシーデータストラクチャの各別個のセットについ
    て、一つまたはそれ以上のラッパークラスを定義する工程と、 (d) ラッパークラスのそれぞれの基礎をベースラッパークラスに置く工程
    と、 (e) ラッパークラスのそれぞれの基礎を擬似特性ポリシークラスに置く工
    程と、 (f) 擬似特性ポリシークラスを再使用して、個別データストラクチャ内の
    関係属性を表す工程と、 (g) ベースラッパークラスを操作するオブジェクトを作成する工程と、 (h) 擬似特性の存在について、ラッパークラスに問い合わせる工程と、 (i) ラッパーオブジェクト内にインプリメントされた擬似特性を通してデ
    ータストラクチャ内の属性を操作する工程と、 を含むことを特徴とする方法。
JP2001513035A 1999-07-23 2000-07-21 レガシーデータストラクチャ用オブジェクト特性メタモデルエミュレータ Pending JP2003535383A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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