JP5520446B2 - 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張 - Google Patents

第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張 Download PDF

Info

Publication number
JP5520446B2
JP5520446B2 JP2008010624A JP2008010624A JP5520446B2 JP 5520446 B2 JP5520446 B2 JP 5520446B2 JP 2008010624 A JP2008010624 A JP 2008010624A JP 2008010624 A JP2008010624 A JP 2008010624A JP 5520446 B2 JP5520446 B2 JP 5520446B2
Authority
JP
Japan
Prior art keywords
implementation
application
component
message
class
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2008010624A
Other languages
English (en)
Other versions
JP2008171435A (ja
Inventor
サクシーナ,サンジェイ
ハリソン,クリストファー
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2008171435A publication Critical patent/JP2008171435A/ja
Application granted granted Critical
Publication of JP5520446B2 publication Critical patent/JP5520446B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance

Landscapes

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

Description

この発明は、コンピュータシステムに関し、より具体的には、第4世代プログラミングツールを用いて生成されたアプリケーションの属性を拡張することに関する。
コンピュータ自体は、前もって手動で行なわれた多くのタスクを自動化しているが、コンピュータをプログラムするというタスクがある程度の自動化を達成したのはかなり最近になってからのことである。初期のコンピュータプログラミング言語は、プログラマが、通常テキストファイルでソースコードをタイプすることにより、アプリケーションのコードのすべてを手動で入力することを必要とした。そのような手動のコード入力は面倒で間違えやすいが、それは、結果として得られたアプリケーションの実質的にすべての局面が完全にプログラマの制御下に置かれるという利点を有していた。プログラマは、基礎となるコードを修正するだけで、どんなにふさわしいと考えていても彼らのプログラムを修正することができた。
やがて、アプリケーションの作成を自動化するための技術が開発された。特に、ユーザがアプリケーションを設計し、ユーザインターフェイスコントロールと対話するだけでそれらのアプリケーションを実現するコードを自動的に生成することを可能にするツールが開発された。そのようなツールは、一般的に、第4世代(4GL)プログラミングツールと呼ばれている。
たとえば、4GLプログラミングツールは、生成されるべきアプリケーションがそのユーザに対して表示するインターフェイスを表わすウィンドウをアプリケーション設計者に与える。4GLプログラミングツールは、アプリケーション設計者が標準ユーザインターフェイスコンポーネントをウィンドウの上に視覚的に「ペイント」することを可能にするユーザインターフェイス設計ツールをアプリケーション設計者にさらに与えるかもしれない。たとえば、ユーザインターフェイス設計ツールは、アプリケーション設計者がチェックボックス、メニュー、ダイアログボックス、リストボックスおよびボタンをウィンドウの上に置くことを可能にし、かつアプリケーション設計者が、ユーザがこれらのコンポーネントと対話するとき何が起こるべきかを指定することを可能にするかもしれない。
ユーザは、ユーザがウィンドウ上に置いた各ユーザインターフェイスコンポーネントごとに「プロパティパレット」を見るかもしれない。プロパティパレットは、ユーザによって指定可能であるユーザインターフェイスコンポーネントのプロパティ、およびこれらのプロパティの現在値を列挙する。たとえば、ボタンコンポーネントに対するプロパティは、ラベルプロパティに割当てられた値が、ボタン上に表示されるテキストである、「ラベル」であるかもしれない。
アプリケーション設計者がアプリケーションの設計を終えると、4GLプログラミングツールはアプリケーションのためのコードを自動的に生成する。このように生成されるコードの形は、インプリメンテーションによって異なってよい。たとえば、4GLプログラミングツールは、マシンで実行可能なコード、ソースコードおよび/またはメタデータを生成してもよい。説明のために、「アプリケーションコード」という言葉は、ここでは、そのデータの形にかかわらず、4GLプログラミングツールによって生成され、4GLプログラミングツールを用いて設計されるアプリケーションを指定するデータのことをいうために用いられる。
しばしば、4GLプログラミングツールは、コンピュータによって直接実行可能でないアプリケーションコードを生成するために使用されるが、このアプリケーションコードは、特定の実行時エンジンによって実行されると、4GLプログラミングツールを用いて設計されたアプリケーションを実現する。たとえば、実行時エンジンは、4GLプログラミングツールによって生成されたアプリケーションコードを読出し、アプリケーション設計者によってウィンドウに追加されたユーザインターフェイスコンポーネントのすべてとともに、アプリケーション設計者によって前もって設計されたウィンドウを表示することによりアプリケーションコードを「実行」する。ユーザがこれらのユーザインターフェイスコンポーネントと対話するとき、アプリケーションは、アプリケーションプログラマが4GLプログラミングツールを用いてこれらのコンポーネントに割当てた動作を行なう。
4GLプログラミングツールは、アプリケーションの設計を手動のコーディング技術より遥かに簡単で高速かつ誤りにくくする。しかしながら、4GLプログラミングによって獲得される容易さおよび速度は、その代価を必ず伴う。特に、手動のコーディングによって提供される実質的に無制限の柔軟性および制御が失われる。代わりに、4GLプログラミングツールのユーザには、典型的には、標準のユーザインターフェイスコンポーネントの「決まりきった」セットが与えられる。これらのコンポーネントを実際に実現するコードは、典型的には、4GLプログラミングツールとともに配布されるコンパイルされたライブラリに含まれ、そのため一般的にはユーザにはアクセス可能でない。したがって、ユーザは、(1)4GLプログラミングツールによって与えられるコンポーネントの組、(2)これらのコンポーネントによって与えられるプロパティ、および(3)これらのコンポーネントに対して与えられたメソッドによって行なわれる機能に制限される。長方形のボタンの代わりに楕円形のボタンを提示するなどの、規範からの僅かなずれでさえも、4GLプログラミングツールによって与えられるコンポーネントがずれを可能にするユーザ設定可能なプロパティを有していなければ、可能でない。たとえば、4GLプログラマが楕円形ボタンを使用するためには、4GLプログラミングツールによって与えられるボタンコンポーネントは、「長方形」から「楕円形」に変更可能な「形状」プロパティを提供しなければならないであろう。ボタンコンポーネントが「形状」プロパティを有していないか、または「楕円形」が形状プロパティに対してサポートされる値でなければ、ユーザは、楕円形ボタンを有するアプリケーションを設計することができない。
4GLプログラマがアプリケーションに組込む可能性のあるソフトウェアコンポーネントおよびユーザインターフェイス(UI)の属性および振る舞いは、4GLプログラミングツールとともに提供されるライブラリ内に供給されるオブジェクトクラスにおいて実現される。ライブラリは、典型的には、コンパイルされた形で提供され、そのためそれは編集可能でない。たとえば、ユーザがボタンを使用するアプリケーションを設計するとき、4GLプログラミングツールは、実行時エンジンによって実行されると、4GLプログラミングツールとともに提供されるライブラリ中の「ボタン」クラス内のメソッドに対して呼出がなされることになるコードを生成する。ボタンクラスの「ディスプレイ」メソッドが長方形のボタンを表示するよう設計されているならば、設計者が楕円形のボタンを好んでいたとしても、長方形のボタンが表示される。
前の説明に基づいて、アプリケーションが4GLプログラミングツールを用いて簡単かつ迅速に設計されることを可能にするが、現在の4GLプログラミングツールよりも高い柔軟性を可能にする方法およびシステムを提供することが、明らかに望ましい。特に、4GLプログラミングツールとともに供給されるコンポーネントのインプリメンテーションにのみユーザを制限することのない4GLプログラミングツールを提供することが望まし
い。
この発明のある局面に従えば、アプリケーション設計者が、4GLプログラミングツールを用いて設計するアプリケーションにおいて使用されるコンポーネントのインプリメンテーション・クラスを指定することを可能にする4GLプログラミングツールが提供される。このように指定されたインプリメンテーション・クラスは、4GLプログラミングツールで提供される対応のコンポーネント・インプリメンテーションによってサポートされない属性および振る舞いを定義し得る。実行時に、指定されたインプリメンテーション・クラス中のメソッドが呼出される。ユーザ指定のインプリメンテーション・クラスのメソッドを正しく呼出すために、メソッドのインターフェイスは、呼出を行なうエンティティに知られていなければならない。したがって、好ましくは、4GLプログラミングツールで提供される「標準」のコンポーネント・インプリメンテーションおよびアプリケーション設計者によって指定される「カスタム」コンポーネント・インプリメンテーションの両方を含む、アプリケーションによって使用されるべきすべてのコンポーネント・インプリメンテーションが、共通インターフェイスを実現する。
この発明は、添付の図面の図に制限のためではなく例示のために示され、同様の参照番号は同様の要素を指す。
4GLプログラミングツールを用いて生成されるアプリケーションの属性を拡張するための方法および装置が記載される。以下の説明においては、説明の目的のために、この発明を完全に理解するために多くの具体的な詳細が述べられる。しかしながら、当業者には、この発明がこれらの具体的な詳細なしに実施され得ることが明らかである。他の場合には、この発明を不必要にわかりにくくすることを避けるために、周知の構造および装置がブロック図の形で示される。
機能概要
従来の4GLプログラミングツールと同様に、ユーザがアプリケーションのためのコードを手動でタイプすることなしにアプリケーションを設計することを可能にする4GLプログラミングツールが提供される。ある実施例に従えば、ユーザは、4GLプログラミングツールを用いて、ユーザインターフェイスコンポーネントを選択し、選択されたユーザインターフェイスコンポーネントをウィンドウ内に置き、これらのコンポーネントのためのプロパティ値を指定することにより、視覚的にアプリケーションを設計する。しかしながら、従来の4GLプログラミングツールと異なって、アプリケーション設計者によって制御されるある1つのコンポーネントプロパティは、コンポーネントのインプリメンテーション・クラスである。アプリケーション設計者がコンポーネントのインプリメンテーション・クラス・プロパティに設定する値が、コンポーネントを実現するために実行時に実行されるプロパティおよびメソッドを定義するオブジェクトクラスを決める。たとえば、ボタンのための指定されたインプリメンテーション・クラスは、4GLプログラミングツールによって提供される標準のボタンクラスであっても、または、アプリケーション設計者によってもしくはサードパーティのコンポーネント開発者によって書かれたカスタム設計の楕円形のボタンクラスであってもよい。
実行時に、指定されたインプリメンテーション・クラス中のメソッドが呼出され、コンポーネントのインスタンスを生成し、コンポーネントのプロパティを設定し読出す。これらのメソッドを正しく呼出すために、メソッドのインターフェイスは、呼出を行なうエンティティに知られていなければならない。したがって、この発明のある局面に従えば、4GLプログラミングツールとともに提供されるライブラリ中の「標準」のコンポーネント
・インプリメンテーションおよびアプリケーション設計者によって指定される「カスタム」コンポーネント・インプリメンテーションの両方を含む、アプリケーションによって使用されるべきコンポーネント・インプリメンテーションの各々が、共通のインターフェイスを実現する。
例示の4GLシステム
図1は、この発明の実施例に従う4GLシステム100を示す。4GLシステム100は、アプリケーションプログラムを定義するアプリケーションコード114を生成するためにアプリケーション設計者110が使用する4GLプログラミングツール112を含む。前述のように、アプリケーションコード114は、マシンによって直接実行可能な形であってもよく、仮想マシンによって実行可能な形であってもよく、または単に、アプリケーションを記述するメタデータであってもよい。例示の実施例では、アプリケーションコード114は、この発明を実現するために実行時エンジン116によって使用される形である。
実行時に、アプリケーションコード114は、実行時エンジン116によって「実行」される。アプリケーションコード114の性質に依存して、アプリケーションコード114を実行するプロセスは、たとえば、アプリケーションコード114に含まれる命令を解釈することや、またはアプリケーションコード114に記述されるアプリケーションコンポーネントを実現するルーチンを呼出すことを伴ってもよい。
例示のシステム100では、アプリケーションは、クライアント/サーバモデルにおいて実現され、アプリケーションのある部分はサーバ上で実行し、アプリケーションの他の部分はクライアント上で実行する。典型的には、サーバ側コンポーネントは、クライアント側コンポーネントと異なったマシン上にあり、2組のコンポーネント間の通信はネットワーク接続を介して行なわれる。
アプリケーションのサーバ側コンポーネントは、アプリケーションコード114および実行時エンジン116を含む。アプリケーションのクライアント側コンポーネントは、アプリケーションユーザ124に表示されるアプリケーションのユーザインターフェイスを実現するコンポーネントを含む。これらのコンポーネントは、ディスパッチャ140、メッセージハンドラ、およびビューを含む。例示の実施例は、3つのメッセージハンドラ128、130および132と3つのビュー134、136および138とを備えるものと示される。
アプリケーションのユーザインターフェイスの各コンポーネントは、対応するビューおよびメッセージハンドラを有する。たとえば、アプリケーションのユーザインターフェイスがボタンB1と2つのチェックボックスCB1およびCB2とを含むものとする。ビュー134およびメッセージハンドラ128はボタンB1に対応してもよく、ビュー136およびメッセージハンドラ130は第1のチェックボックスCB1に対応してよく、ビュー138およびハンドラ132は第2のチェックボックスCB2に対応してもよい。
ビューは、コンポーネントのインプリメンテーション・クラスのインスタンスである。したがって、コンポーネントに対応するビューは、そのコンポーネントを実現するコードを含む。たとえば、ビュー134は、ボタンB1を実現するインプリメンテーション・クラスのインスタンスである。同様に、ビュー136および138は、それぞれ、チェックボックスCB1およびCB2を実現するインプリメンテーション・クラスのインスタンスである。チェックボックスCB1およびCB2のためのビュー136および138は、たとえば、CB1がデフォルトのチェックボックス・インプリメンテーション・クラスを用いて実現され、CB2がユーザ指定のチェックボックス・インプリメンテーション・クラ
スを用いて実現されるならば、同じコードを含まない。これらの条件下では、CB1を実現するコードは、典型的には、4GLプログラミングツール112とともに配布される実行時ライブラリに含まれるが、CB2を実現するコードは、別個のファイルにおいて実現されるであろう。
コンポーネントの各タイプは、メッセージハンドラの対応のタイプを有する。所与のコンポーネントタイプに対するメッセージハンドラのタイプは、そのコンポーネントタイプと関連づけられるメッセージのタイプを処理するよう設計される。たとえば、ボタンメッセージハンドラは、ボタンが受取るメッセージのタイプをリッスンし処理し、チェックボックスメッセージハンドラは、チェックボックスが受取るメッセージのタイプをリッスンし処理する。
コンポーネントに対応するメッセージハンドラは、コンポーネントに関わるイベントに関連するメッセージを実行時エンジン116に送りかえす。たとえば、メッセージハンドラ128は、ユーザがボタンB1をクリックしたことを検出するかもしれない。クリックを検出することに応答して、メッセージハンドラ128は、ディスパッチャ140を介して実行時エンジン116にメッセージを送り、実行時エンジン116に、ボタンB1がクリックされたことを気づかせる。
コンポーネントに対応するメッセージハンドラはまた、実行時エンジン116からのメッセージに応答してコンポーネントのビューによって与えられるメソッドを呼出す。たとえば、メッセージハンドラ128は、ボタンB1の色を変える、ビュー134によって与えられるメソッドを呼出すことにより、実行時エンジン116からのメッセージに応答してもよい。
実行時環境の動作
実行時に、実行時エンジン116は、4GLプログラミングツール112によってあらかじめ生成されたアプリケーションコード114を読出し実行する。このアプリケーションコード114は、アプリケーション設計者110がインプリメンテーション・クラスを指定したアプリケーションコンポーネントのインプリメンテーション・クラスを特定するデータを含む。たとえば、ボタンのためのデフォルトのインプリメンテーション・クラスが、DefButton.classであるとする。アプリケーションの設計中、アプリケーション設計者110は、アプリケーションのユーザインターフェイス上に表示されるべきB1ボタンのための異なったインプリメンテーション・クラスを指定してしまっているかもしれない。説明の目的のために、アプリケーション設計者110が、ボタンB1のインプリメンテーション・クラスがMyButton.classであると指定したと仮定する。これらの条件下では、アプリケーションコード114は、B1のインプリメンテーション・クラスがMyButton.classであることを示すデータを含む。
アプリケーションコード114の実行中、実行時エンジン116は、メッセージをディスパッチャ140に送って、アプリケーションコード114に指定されるコンポーネントを生成させる。デフォルトのクラス・インプリメンテーションを使用しない少なくともこれらのコンポーネントについて、実行時エンジン116によって送られたメッセージは、インプリメンテーション・クラスを特定する情報を含む。たとえば、実行時エンジン116は、インプリメンテーション・クラスMyButton.classを用いるボタンB1の生成を要求するメッセージをディスパッチャ140に送ると仮定する。
ディスパッチャ140が実行時エンジン116からメッセージを受取ると、ディスパッチャ140は、そのメッセージを、メッセージ中に特定されるコンポーネントに対応するメッセージハンドラに転送する。メッセージハンドラがメッセージ中に特定されるコンポ
ーネントに対してまだ起動されていなければ、ディスパッチャ140は、コンポーネントの適切なコンポーネントタイプのメッセージハンドラのインスタンスを生成する。たとえば、ディスパッチャ140によって受取られるメッセージがボタン(たとえばボタンB1)の生成を要求し、その特定のボタンに対するメッセージハンドラのインスタンスがまだ生成されていなければ、ディスパッチャ140は、そのボタンのためのボタンタイプメッセージハンドラ(たとえばメッセージハンドラ128)のインスタンスを生成する。適切なメッセージハンドラのインスタンスを生成した後、ディスパッチャ140はメッセージをメッセージハンドラに送る。
メッセージハンドラが、コンポーネントを生成すべきメッセージを受取ると、メッセージハンドラは、メッセージに含まれる情報に基づいて、コンポーネントがデフォルトのクラス・インプリメンテーションを用いて実現されるべきかどうかを決定する。コンポーネントがデフォルトのクラス・インプリメンテーションを用いて実現されるのであれば、メッセージハンドラは、コンポーネントのそのタイプのためのデフォルトのクラス・インプリメンテーションによって与えられるコンポーネントのインスタンスを生成するメソッド(すなわち「コンストラクタ」)を呼出す。これは、典型的には、4GLプログラミングツール112とともに提供される実行時ライブラリ中のメソッドを呼出すことにより行なわれる。コンポーネントがユーザ指定のクラス・インプリメンテーションを用いて実現されるのであれば、メッセージハンドラは、ユーザ指定のクラス・インプリメンテーションによって与えられるコンストラクタを呼出す。
たとえば、ボタンB1のインスタンスの生成を要求するメッセージに応答して、メッセージハンドラ128は、ボタンB1がユーザ指定のインプリメンテーション・クラスMyButton.classを用いて実現されるということを決定する。したがって、メッセージハンドラ128は、ボタンB1のインスタンスを生成するためにMyButton.classインプリメンテーション・クラスによって与えられるコンストラクタを呼出すであろう。ボタンB1のインスタンスの生成は、クラスMyButtonのインスタンスを生成し、これはビュー134として表される。
クライアント側のコンポーネントのインスタンスが生成されると、コンポーネントのプロパティは、アプリケーション設計者110によってコンポーネントに対して指定された値に設定されなければならない。コンポーネントのプロパティに対する値は、4GLプログラミングツール112によって生成されるアプリケーションコード114に反映される。コンポーネントのインスタンス生成をさせた後、実行時エンジン116は、コンポーネントのプロパティの値を示すメッセージをディスパッチャ140に送る。ディスパッチャ140は、これらのメッセージを、コンポーネントに対応するメッセージハンドラに転送し、メッセージハンドラは、コンポーネントのビューの適切なメソッドを呼出して、指定されたプロパティを指定された値に設定する。
たとえば、アプリケーション設計者110が値「OK」をボタンB1の「ラベル」プロパティに割当てたものとする。これらの条件下では、4GLプログラミングツール112によって生成されるアプリケーションコード114は、ボタンB1のラベルプロパティに値「OK」が割当てられたことを示すであろう。実行時に、ボタンB1のインスタンスを生成させた後、実行時エンジン116は、ボタンB1のラベルプロパティが「OK」に設定されるべきであるということを示すメッセージをディスパッチャ140に送る。ディスパッチャ140はこのメッセージをメッセージハンドラ128に転送し、これはビュー134の適切なルーチンを呼出して、ボタンB1のラベルプロパティが「OK」に設定されるようにする。ある実施例に従えば、このプロセスは、設計中に値が指定されたボタンB1の各プロパティごとに繰返される。
重要なことには、プロパティがある値に設定されることに応答してビュー134によって行なわれる実際の動作は、同じプロパティが同じ値に設定されることに応答してデフォルトのボタンクラスのインスタンスによって行なわれる動作と完全に異なっていてもよい。たとえば、デフォルトのボタンクラスDefButtonは、ボタンのラベルプロパティが「OK」に設定されることに応答してテキスト「OK」が長方形のボタンの表面の上にあるようにしてもよい。反対に、ユーザ指定のボタンクラスMyButtonによって実現されるボタンB1は、ラベルプロパティが「OK」に設定されることに応答してボタンが文字「OK」の形になるようにしてもよい。
アプリケーションの実行中、実行時エンジン116は、UIコンポーネントのプロパティの現在値を要求してもよい。値を決定するために、実行時エンジン116は、コンポーネントを特定し実行時エンジン116が現在値を要求するプロパティを指定するメッセージをディスパッチャ140に送る。ディスパッチャ140は、メッセージを適切なメッセージハンドラに転送し、メッセージハンドラは、指定されたコンポーネントに対応するビューの適切なメソッドを呼出して指定されたプロパティの現在値を取出すことにより応答する。メッセージハンドラは、取出された値をディスパッチャ140に戻し、ディスパッチャ140はメッセージ中の値を実行時エンジン116に送りかえす。
共通インターフェイス
4GLプログラミングツールは、典型的には、アプリケーションプログラマに対して利用可能とされるコンポーネントの各タイプごとに、(1)コンポーネントタイプに対するクラス・インプリメンテーションおよび(2)クラス・インプリメンテーションと協働するメッセージハンドラの両方を与える。4GLプログラミングツール制作者は、それらの特定のクラス・インプリメンテーションと協働するようにメッセージハンドラを設計することが可能である、というのも、彼らはこれらのクラス・インプリメンテーションの提供者であり、したがってそれに対するインターフェイスを知っており制御するからである。
前述のように、この発明の実施例は、アプリケーション設計者が、4GLプログラミングツール制作者によって提供されるものと異なるクラス・インプリメンテーションを指定することを可能にする。ある実施例に従えば、ユーザがコンポーネントのための非デフォルトのクラス・インプリメンテーションを指定したときでも、コンポーネントのそのタイプに対して4GLプログラミングツールによって与えられるメッセージハンドラは、指定されたクラス・インプリメンテーションと協働することができる。
ユーザ指定のコンポーネントクラス・インプリメンテーションとともに正しく機能するために、メッセージハンドラは、コンポーネントクラスのクラス・インプリメンテーションを含むクラスファイルだけでなく、コンポーネントクラスによって実現されるメソッドのインターフェイスも知っていなければならない。たとえば、ボタンB1のラベルプロパティを設定するために、メッセージハンドラ128は、ビュー134内の、ラベルプロパティ値を設定するメソッドのインターフェイスを知っていなければならない。
ある実施例に従えば、デフォルトのクラス・インプリメンテーションおよびユーザ指定のクラス・インプリメンテーションの両方を含むすべてのコンポーネントクラス・インプリメンテーションは、ここではIViewインターフェイスと呼ばれる共通インターフェイスを実現するよう設計されるので、メッセージハンドラは、ユーザ指定のコンポーネントクラスによって実現されるメソッドのインターフェイスを知っている。メッセージハンドラは、IViewインターフェイスを介してビューへの呼出を行なうよう設計される。したがって、メッセージハンドラが設計されるとき、メッセージハンドラがどのクラス・インプリメンテーションと協働しなければならないかがわかっていないとしても、メッセージハンドラはなおも、アプリケーション設計者110によって指定されるどのようなクラス・イ
ンプリメンテーションともともに機能することができる。
ある実施例に従えば、すべてのユーザ指定のクラス・インプリメンテーションは、以下のインターフェイス(IView)をサポートするよう設計される:
Figure 0005520446
前述のインターフェイスにおいて、いくつかのメソッドは、タイプIHandlerのパラメータを含む。IHandlerは、特定のメッセージハンドラインスタンスを特定する値を記憶するためのデータ型である。前述のように、IViewインターフェイスにおけるメソッドへの呼出を行なうエンティティは、メッセージハンドラインスタンスである。したがって、IHandlerが入力変数として送られることを要求するメソッドに対して、呼出を行なうメッセージハンドラインスタンスは、典型的には、それ自体を特定するデータを送る。ある実施例に従えば、各コンポーネントごとに、そのコンポーネントのためのクラス・インプリメンテーションによって供給されるIViewインターフェイスのメソッドは、以下のとおりそのコンポーネントのためのメッセージハンドラによって呼出される。
「init」メソッドは、コンポーネントが構築された後すぐに呼出される。「init」メソッドは、コンポーネントにそのメッセージハンドラに対するリファレンスを送り、コンポーネントに、それが要求するいかなる初期化をも行なうための機会を与える。
「destroy」メソッドは、コンポーネントがもはや必要とされなくなったときに呼出される。このメソッドは、コンポーネントに、それが保持するいかなるシステム資源をも使える状態にするための機会を与える。
「getProperty」メソッドは、要求されたプロパティの値を返す。ある実施例に従えば、特定のコンポーネントタイプに対するすべてのコンポーネント・インプリメンテーションは、ある種のプロパティをサポートするよう設計される。指定されたプロパティがコンポーネントによってサポートされていなければ、このgetPropertyメソッドは、Property.NOT_SUPPORTEDを返す。
「setProperty」メソッドは、指定されたプロパティの値を設定する。指定されたプロパティがコンポーネントによってサポートされていなければ、このメソッドは偽を返し、さもなくばそれは真を返す。
「addListener」メソッドは、指定されたタイプのリスナーを追加する。ある実施例に従えば、特定のコンポーネントタイプに対するすべてのコンポーネント・インプリメンテーションは、リスナーのあるタイプをサポートするよう設計される。
「removeListener」メソッドは、指定されたタイプのリスナーを除去する。
「paint」メソッドにおいて、ビューは、パラメータ中に指定されたグラフィックスオブジェクトを用いてそれ自身をペイントしなければならない。ある実施例に従えば、コンポーネントは他のコンポーネントを含んでもよい。他のコンポーネントを含むコンポーネントを「コンテナ」と呼ぶ。コンテナの一部であるコンポーネントについて、「paint」メソッドは、コンポーネントのコンテナによって呼出される。他のコンポーネントについて、「paint」メソッドは、コンポーネントのメッセージハンドラによって呼出される。
「repaint」メソッドにおいて、ビューは、与えられた長方形を無効にする。長方形がヌルであれば、オブジェクト全体が無効とされる。
「add」メソッドは、子コンポーネントを別のコンポーネントに追加する。コンテナについて、子はタイプIViewであり、IViewはすべてのビューが導出されるクラスである。リストについて、子はタイプStringである。インデックスが−1であれば、子がリストの終わりに追加される。インデックスが子の現在の数より大きいかまたは−1より小さければ、メソッドは障害を起こす。
「remove」メソッドは、指定されたIViewから子を取除く。コンテナについて、子はタイプIViewである。リストについて、子はタイプStringである。
「removeAll」メソッドは、指定されたIViewからすべての子を取除く。
アプリケーション設計者がIViewインターフェイスをサポートしないクラスを使用したいとき、アプリケーション設計者は単にそのクラスのサブクラスを定義するだけでよく、サブクラスはIViewインターフェイスをサポートしない。たとえば、アプリケーション設計者がサードパーティによって提供されるCoolButtonクラスのインスタンスとしてボタンB1を実現するアプリケーションを生成したいとする、ただし、CoolButtonクラスはIViewインターフェイスを実現しない。これらの状況下では、アプリケーション設計者は、(1)IViewインターフェイスを実現するCoolButtonのサブクラスを宣言し、かつ(2)IViewインターフェイスのメソッドの各々のインプリメンテーションを指定する。以下は、IViewインターフェイスを実現するサブクラスであるボタンクラスMyButtonがいかにして宣言され得るかの一例である。
Figure 0005520446
「implementations of the IView Methods」は、一般的には、IViewインターフェイスを介してなされる呼出をCoolButtonによってサポートされるインターフェイスを介してなされる呼出に変換する。たとえば、ある実施例では、IViewインターフェイスのメソッドsetProperty(id, value)は、ビューのすべてのプロパティを設定するために使用される。したがって、IViewインターフェイスを介してボタンのラベルを設定するための呼出は、フォームsetProperty(Label, value)を有するであろう。同様に、IViewインターフェイスを介してボタンの色を設定するための呼出は、フォームsetProperty(Color, value)を有するであろう。しかしながら、CoolButtonクラスは、ボタンのラベルを設定するためのメソッド「setText(value)」、およびボタンの色を設定するためのメソッド「setColor(value)」を実現してもよい。これらの条件下では、IViewインターフェイスのsetPropertyメソッドのためのMyButtonクラスによって与えられるインプリメンテーションは、たとえば、以下のとおりであってもよい:
Figure 0005520446
したがって、IViewインターフェイスを介するSetPropertyへの呼出は、setPropertyに送られるid値が「ラベル」であるときSetTextへの呼出に変換され、setPropertyに送られるid値が「色」であるときSetColorへの呼出に変換される。
代替の実施例
説明の目的のために、実施例に特有の詳細が前の説明には含まれた。しかしながら、これらの詳細は、この発明を実施するために必要とされるものでなく、この発明を制限するものと意図されるものでは決してない。たとえば、この発明は、代替の実施例を用いて実施可能であり、そのいくつかをここに記載する。
上述の実施例では、すべてのコンポーネント・インプリメンテーションは、メッセージハンドラに同じインターフェイスを提示する。しかしながら、代替の実施例では、所与のコンポーネントタイプの各々に対するユーザ指定のクラス・インプリメンテーションのすべてが、所与のコンポーネントタイプのデフォルトのクラス・インプリメンテーションと同じインターフェイスをサポートするが、これらのインターフェイスは、コンポーネントの異なったタイプによって異なってもよい。たとえば、ボタンのためのユーザ指定のクラス・インプリメンテーションは、ボタンのためのデフォルトのクラス・インプリメンテーションと同じインターフェイスを実現するであろうし(かつしたがって、ボタンメッセージハンドラとともに正しく機能することができる)、チェックボックスのためのユーザ指定のクラス・インプリメンテーションは、チェックボックスのためのデフォルトクラス・インプリメンテーションと同じインターフェイスを実現するであろう(かつしたがって、チェックボックスメッセージハンドラとともに正しく機能することができる)。しかしながら、ボタンインプリメンテーションのためのインターフェイスは、チェックボックスインプリメンテーションのためのインターフェイスと異なっていることがある。
上述の実施例では、UIコンポーネント(たとえばボタンおよびチェックボックス)は、4GLプログラマに利用可能とされるコンポーネントのタイプの例として与えられ、4GLプログラマはいまや、それに対して非デフォルトのインプリメンテーションを指定することができる。しかしながら、UIコンポーネントは、4GLプログラミングツールによって提供されるコンポーネントの1つのタイプにすぎない。コンポーネントの他のタイプは、たとえば、データソースを表わすコンポーネントを含む。ここに記載される技術を用いて、ユーザが、視覚的にアプリケーションのユーザインターフェイスの一部でないものを含む、アプリケーションコンポーネントのいずれかのタイプに対する非デフォルトのインプリメンテーションを指定することを可能にする4GLプログラミングツールが提供されてもよい。同様に、4GLプログラマが非デフォルトのインプリメンテーション・クラスを指定し得るコンポーネントは、サーバ側で実行するコンポーネントであっても、クライアント側で実行するコンポーネントであってもよい。
ハードウェア概要
図2は、この発明の実施例が実現され得るコンピュータシステム200を示すブロック図である。コンピュータシステム200は、情報をやり取りするためのバス202または他の通信メカニズムと、バス202に結合され情報を処理するためのプロセッサ204とを含む。コンピュータシステム200は、バス202に結合され、プロセッサ204によって実行されるべき命令および情報を記憶するための、ランダムアクセスメモリ(RAM)または他の動的記憶装置などの主メモリ206も含む。主メモリ206は、プロセッサ204によって実行されるべき命令の実行中、一時変数または他の中間情報を記憶するために使用されてもよい。コンピュータシステム200は、バス202に結合され、プロセッサ204のための命令および静的情報を記憶するための、リードオンリメモリ(ROM)208または他の静的記憶装置をさらに含む。磁気ディスクまたは光ディスクなどの記憶装置210が設けられ、バス202に結合され、情報および命令を記憶する。
コンピュータシステム200は、情報をコンピュータユーザに表示するための陰極線管(CRT)などのディスプレイ212にバス202を介して結合されてもよい。アルファベット数字および他のキーを含む入力装置214がバス202に結合され、プロセッサ2
04に対して情報およびコマンド選択を交信する。ユーザ入力装置の別のタイプは、プロセッサ204に対して方向情報およびコマンド選択を交信しかつディスプレイ212上のカーソルの動きを制御するための、マウス、トラックボール、カーソル方向キーなどのカーソル制御216である。この入力装置は、典型的には、装置が平面における位置を指定することを可能にする、第1の軸(たとえばx)および第2の軸(たとえばy)の2つの軸における2自由度を有する。
この発明は、4GLアプリケーションを設計するためのコンピュータシステム200の使用に関する。この発明のある実施例に従えば、プロセッサ204が主メモリ206に含まれる1つ以上の命令の1つ以上のシーケンスを実行することに応答して、アプリケーションプログラマがコンポーネントクラスの非デフォルトのインプリメンテーションを指定することを可能にする4GLプログラミングツールがコンピュータシステム200によって与えられる。そのような命令は、記憶装置210などの別のコンピュータで読出可能な媒体から主メモリ206に読出されてもよい。主メモリ206に含まれる命令のシーケンスの実行により、プロセッサ204は、ここに記載されるプロセスステップを行なうようになる。代替の実施例では、この発明を実現するためにソフトウェア命令と組合されてまたはその代わりにハードワイヤード回路構成が使用されてもよい。したがって、この発明の実施例は、ハードウェア回路構成およびソフトウェアのいかなる特定の組合せにも限られるものでない。
ここに使用される「コンピュータ読出可能媒体」という言葉は、命令をプロセッサ204に与えて実行させることに関与する任意の媒体のことをいう。そのような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含むがこれに限られるものでない多くの形をとり得る。不揮発性媒体は、たとえば、記憶装置210などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、主メモリ206などのダイナミックメモリを含む。伝送媒体は、バス202を含むワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体は、無線および赤外データ通信の際に生成されるものなどの、音波または光波の形をとってもよい。
コンピュータ読出可能媒体のよくある形は、たとえば、フロッピー(R)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD−ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを備える任意の他の物理的媒体、RAM、PROMおよびEPROM、FLASH−EPROM、任意の他のメモリチップもしくはカートリッジ、以下に記載されるような搬送波、またはコンピュータが読出すことのできる任意の他の媒体を含む。
さまざまな形のコンピュータ読出可能媒体が、1つ以上の命令の1つ以上のシーケンスをプロセッサ204に運び実行させるのに必要とされてもよい。たとえば、命令は最初に遠隔コンピュータの磁気ディスク上に担持されていてもよい。遠隔コンピュータは、命令をそのダイナミックメモリにロードし、モデムを用いて電話線を介して命令を送信することができる。コンピュータシステム200にローカルなモデムは、電話線によりデータを受信し、赤外トランスミッタを用いてデータを赤外信号に変換することができる。赤外検出器が、赤外信号で運ばれるデータを受取ることができ、適切な回路構成がデータをバス202に与えることができる。バス202はデータを主メモリ206に運び、プロセッサ204はそこから命令を取出して実行する。主メモリ206によって受取られた命令は、任意選択で、プロセッサ204による実行の前または後のいずれかで記憶装置210に記憶されてもよい。
コンピュータシステム200は、バス202に結合される通信インターフェイス218も含む。通信インターフェイス218は、ローカルネットワーク222に接続されるネッ
トワークリンク220に結合する双方向データ通信を提供する。たとえば、通信インターフェイス218は、統合サービスデジタル網(ISDN)カードまたはモデムであって、データ通信接続を電話線の対応するタイプに与えてもよい。別の例として、通信インターフェイス218は、ローカルエリアネットワーク(LAN)カードであって、データ通信接続を互換性のあるLANに与えてもよい。ワイヤレスリンクが実現されてもよい。いずれかのそのようなインプリメンテーションでは、通信インターフェイス218は、さまざまなタイプの情報を表わすデジタルデータストリームを運ぶ電気信号、電磁信号または光信号を送受信する。
ネットワークリンク220は、典型的には、1つ以上のネットワークを介して他のデータ装置にデータ通信を与える。たとえば、ネットワークリンク220は、ローカルネットワーク222を介してホストコンピュータ224に、またはインターネットサービスプロバイダ(ISP)226によって作動されるデータ機器に接続を与えてもよい。ISP226は、現在普通「インターネット」228と呼ばれているワールドワイドのパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク222およびインターネット228はどちらも、デジタルデータストリームを運ぶ電気信号、電磁信号または光信号を用いる。コンピュータシステム200におよびそれからデジタルデータを運ぶ、さまざまなネットワークを介する信号ならびにネットワークリンク220上のおよび通信インターフェイス218を介する信号は、情報を転送する搬送波の例示の形である。
コンピュータシステム200は、ネットワーク、ネットワークリンク220および通信インターフェイス218を介してプログラムコードを含むデータを受取りメッセージを送ることができる。インターネットの例では、サーバ230が、インターネット228、ISP226、ローカルネットワーク222および通信インターフェイス218を介してアプリケーションプログラムのための要求されたコードを伝送し得る。この発明に従えば、あるそのようなダウンロードされたアプリケーションは、ここに記載される4GLプログラミングツールを与える。
受取られたコードは、受取られたときにプロセッサ204によって実行されてもよく、および/または記憶装置210もしくは他の不揮発性記憶装置に記憶されて後に実行されてもよい。このように、コンピュータシステム200は搬送波の形のアプリケーションコードを獲得し得る。
前の明細書において、この発明は、その具体的な実施例を参照して記載された。しかしながら、この発明のより広い精神および範囲から逸脱することなしにこれにさまざまな変形および変更をなし得ることが明らかである。したがって、この明細書および図面は、限定的な意味ではなく例示的な意味にみなされるべきである。
この発明の実施例に従うユーザ指定のコンポーネント・インプリメンテーションの使用をサポートする4GLアプリケーション開発システムのブロック図である。 この発明の実施例が実現され得るコンピュータシステムを示すブロック図である。

Claims (10)

  1. 第4世代言語プログラミングツールによって設計されるアプリケーションを実行するための方法であって、前記方法は、
    第4世代言語プログラミングツールによって生成されるアプリケーションのコンポーネントのインプリメンテーション・クラスの設定を受け付けるステップを含み、前記インプリメンテーション・クラスは、デフォルトのインプリメンテーション・クラス、または、前記アプリケーションの開発者によって指定される、前記デフォルトのインプリメンテーション・クラスと異なるインプリメンテーション・クラスを含み、
    前記アプリケーションに含まれるアプリケーションコードから、前記アプリケーションコードの部分を読出すステップを含み、前記アプリケーションコードは当該アプリケーションの開発者によって指定されたインプリメンテーション・クラスを特定するデータを含み、前記部分は
    a) 前記アプリケーションのための前記コンポーネントを特定し、当該コンポーネントは前記第4世代言語プログラミングツールとともに配布される実行時ライブラリに含まれる標準インプリメンテーションである第1のインプリメンテーションを用いて実現される特定のコンポーネントタイプであり、前記部分はさらに、
    b) 前記第1のインプリメンテーションと異なり、かつ前記第4世代言語プログラミングツールとともに配布される実行時ライブラリの外部にある、前記コンポーネントのためのカスタムインプリメンテーションである第2のインプリメンテーションを特定し、
    前記方法はさらに
    前記設定されたインプリメンテーション・クラスが前記アプリケーションの開発者によって指定されたインプリメンテーション・クラスである場合に、前記アプリケーション内に前記コンポーネントを作成するために前記第2のインプリメンテーションにおいて実現されるコンストラクタを呼出すことにより前記アプリケーションコードの前記部分を実行するステップを含み、
    第1のインプリメンテーションおよび第2のインプリメンテーションは両方とも共通インターフェイスをサポートし、コンストラクタを呼出すステップは、前記特定のコンポーネントタイプのためのメッセージハンドラによって前記共通インターフェイスを介して行なわれる、方法。
  2. 前記読出すステップは、サーバ上に存在する実行時エンジンによって行なわれ、
    前記コンストラクタを呼出すステップは、前記アプリケーションコードの前記部分を実行することに応答して前記実行時エンジンによって生成されるメッセージのクライアントでの受信に応答して前記クライアント上で行なわれる、請求項1に記載の方法。
  3. 前記実行時エンジンは、メッセージをディスパッチャに送ることにより前記アプリケーションコードの前記部分を実行し、
    前記ディスパッチャは、前記特定のコンポーネントタイプのためのメッセージハンドラのインスタンスを生成することにより前記メッセージに応答し、
    前記メッセージハンドラは前記コンストラクタを呼出す、請求項2に記載の方法。
  4. 前記実行時エンジンはサーバ上にあり、
    前記ディスパッチャはネットワークを介して前記サーバに作動的に結合されるクライアント上にあり、
    前記実行時エンジンは前記ネットワークを介して前記ディスパッチャに前記メッセージを送る、請求項3に記載の方法。
  5. 第4世代言語プログラミングツールによって設計されるアプリケーションを1つ以上のプロセッサが実行するための命令の1つ以上のシーケンスを担持するコンピュータ読出可能記録媒体であって、前記1つ以上のプロセッサが、
    第4世代言語プログラミングツールによって生成されるアプリケーションのコンポーネントのインプリメンテーション・クラスの設定を受け付けるステップを行い、前記インプリメンテーション・クラスは、デフォルトのインプリメンテーション・クラス、または、前記アプリケーションの開発者によって指定される、前記デフォルトのインプリメンテーション・クラスと異なるインプリメンテーション・クラスを含み、
    前記アプリケーションに含まれるアプリケーションコードから、前記アプリケーションコードの部分を読出すステップを行い、前記アプリケーションコードは当該アプリケーションの開発者によって指定されたインプリメンテーション・クラスを特定するデータを含み、前記部分は
    a) 前記アプリケーションのための前記コンポーネントを特定し、当該コンポーネントは前記第4世代言語プログラミングツールとともに配布される実行時ライブラリに含まれる標準インプリメンテーションである第1のインプリメンテーションを用いて実現される特定のコンポーネントタイプであり、前記部分はさらに
    b) 前記第1のインプリメンテーションと異なり、かつ前記第4世代言語プログラミングツールとともに配布される実行時ライブラリの外部にある、前記コンポーネントのためのカスタムインプリメンテーションである第2のインプリメンテーションを特定し、前記1つ以上のプロセッサがさらに
    前記設定されたインプリメンテーション・クラスが前記アプリケーションの開発者によって指定されたインプリメンテーション・クラスである場合に、前記アプリケーション内に前記コンポーネントを作成するために前記第2のインプリメンテーションにおいて実現されるコンストラクタを呼出すことにより前記アプリケーションコードの前記部分を実行するステップを行ない、
    第1のインプリメンテーションおよび第2のインプリメンテーションは両方とも共通インターフェイスをサポートし、コンストラクタを呼出すステップは、前記特定のコンポーネントタイプのためのメッセージハンドラによって前記共通インターフェイスを介して行なわれるように、前記1つ以上のプロセッサにより実行される命令の1つ以上のシーケンスを担持するコンピュータ読出可能記録媒体。
  6. 前記読出すステップは、サーバ上に存在する実行時エンジンによって行なわれ、
    前記コンストラクタを呼出すステップは、前記アプリケーションコードの前記部分を実行することに応答して前記実行時エンジンによって生成されるメッセージのクライアントでの受信に応答して前記クライアント上で行なわれる、請求項5に記載のコンピュータ読出可能記録媒体。
  7. 前記実行時エンジンは、ディスパッチャにメッセージを送ることにより前記アプリケーションコードの前記部分を実行し、
    前記ディスパッチャは、前記特定のコンポーネントタイプのためのメッセージハンドラのインスタンスを生成することにより前記メッセージに応答し、
    前記メッセージハンドラは前記コンストラクタを呼出す、請求項6に記載のコンピュータ読出可能記録媒体。
  8. 前記実行時エンジンはサーバ上にあり、
    前記ディスパッチャは、ネットワークを介して前記サーバに作動的に結合されるクライアント上にあり、
    前記実行時エンジンは前記ネットワークを介して前記ディスパッチャに前記メッセージを送る、請求項7に記載のコンピュータ読出可能記録媒体。
  9. 前記コンポーネントは、ユーザインタフェースコンポーネントである、請求項1に記載の方法。
  10. 前記コンポーネントは、ユーザインタフェースコンポーネントである、請求項5に記載のコンピュータ読出可能記録媒体。
JP2008010624A 1999-05-25 2008-01-21 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張 Expired - Lifetime JP5520446B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/318,518 1999-05-25
US09/318,518 US6560770B1 (en) 1999-05-25 1999-05-25 Extending the attributes of an application generated using a fourth generation programming tool

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000620467A Division JP2003500739A (ja) 1999-05-25 2000-05-25 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012128172A Division JP5820339B2 (ja) 1999-05-25 2012-06-05 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張

Publications (2)

Publication Number Publication Date
JP2008171435A JP2008171435A (ja) 2008-07-24
JP5520446B2 true JP5520446B2 (ja) 2014-06-11

Family

ID=23238510

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2000620467A Withdrawn JP2003500739A (ja) 1999-05-25 2000-05-25 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張
JP2008010624A Expired - Lifetime JP5520446B2 (ja) 1999-05-25 2008-01-21 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張
JP2012128172A Expired - Lifetime JP5820339B2 (ja) 1999-05-25 2012-06-05 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2000620467A Withdrawn JP2003500739A (ja) 1999-05-25 2000-05-25 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012128172A Expired - Lifetime JP5820339B2 (ja) 1999-05-25 2012-06-05 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張

Country Status (9)

Country Link
US (1) US6560770B1 (ja)
EP (1) EP1192532B1 (ja)
JP (3) JP2003500739A (ja)
AT (1) ATE235079T1 (ja)
AU (1) AU777692B2 (ja)
CA (1) CA2365572C (ja)
DE (1) DE60001743T2 (ja)
HK (1) HK1041732B (ja)
WO (1) WO2000072140A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6779177B1 (en) 1999-10-28 2004-08-17 International Business Machines Corporation Mechanism for cross channel multi-server multi-protocol multi-data model thin clients
US7181686B1 (en) 1999-10-29 2007-02-20 International Business Machines Corporation Selecting screens in a GUI using events generated by a set of view controllers
US6862686B1 (en) 1999-10-29 2005-03-01 International Business Machines Corporation Method and apparatus in a data processing system for the separation of role-based permissions specification from its corresponding implementation of its semantic behavior
US6976244B2 (en) 2002-01-09 2005-12-13 International Business Machines Corporation Method, system, and product for storage of attribute data in an object oriented environment
US20030182458A1 (en) * 2002-03-22 2003-09-25 Ali Syed M. Generating a decoupled presentation layer in an application
US7240319B2 (en) * 2003-02-19 2007-07-03 Diversified Systems, Inc. Apparatus, system, method, and program for facilitating the design of bare circuit boards
US7458055B2 (en) * 2003-02-19 2008-11-25 Diversified Systems, Inc. Apparatus, system, method, and program for facilitating the design of electronic assemblies
US7313448B2 (en) * 2005-08-15 2007-12-25 Honeywell International Inc. Method and apparatus for providing a standard control system with custom application capability
US8312420B1 (en) 2005-11-18 2012-11-13 The Mathworks, Inc. System and method for performing structural templatization
US20070168926A1 (en) * 2005-12-16 2007-07-19 Raghuram Rajah Software customization framework
US8019844B2 (en) * 2005-12-20 2011-09-13 Level 3 Communications, Llc System and method for monitoring data in a telecommunications network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517645A (en) * 1993-11-05 1996-05-14 Microsoft Corporation Method and system for interfacing components via aggregate components formed by aggregating the components each with an instance of a component manager
US5875331A (en) * 1994-09-30 1999-02-23 International Business Machines Corp. System and method for generating target language code utilizing an object oriented code generator
US5617568A (en) * 1994-12-14 1997-04-01 International Business Machines Corporation System and method for supporting file attributes on a distributed file system without native support therefor
US5911070A (en) * 1995-08-07 1999-06-08 Inprise Corporation Development system with methods for bi-directional application program code generation
DE19535519C2 (de) * 1995-09-25 1999-03-04 Ibm Verfahren zur Reduzierung des Umfanges von Computerprogrammen
US5721929A (en) * 1995-10-06 1998-02-24 Electronic Data Systems Corporation Method for extending a fourth generation programming language
US5960200A (en) * 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
US5887134A (en) * 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
US6167563A (en) * 1998-09-17 2000-12-26 Unisys Corporation Method and system for building components in a framework useful in developing integrated business-centric applications

Also Published As

Publication number Publication date
CA2365572A1 (en) 2000-11-30
JP2003500739A (ja) 2003-01-07
WO2000072140A3 (en) 2001-02-15
JP2008171435A (ja) 2008-07-24
HK1041732B (zh) 2003-06-06
AU777692B2 (en) 2004-10-28
CA2365572C (en) 2004-07-20
ATE235079T1 (de) 2003-04-15
HK1041732A1 (en) 2002-07-19
DE60001743T2 (de) 2004-02-05
WO2000072140A2 (en) 2000-11-30
AU5167500A (en) 2000-12-12
EP1192532A2 (en) 2002-04-03
JP2012212449A (ja) 2012-11-01
US6560770B1 (en) 2003-05-06
DE60001743D1 (de) 2003-04-24
EP1192532B1 (en) 2003-03-19
JP5820339B2 (ja) 2015-11-24

Similar Documents

Publication Publication Date Title
JP5520446B2 (ja) 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張
US6810522B2 (en) Method and system for associating parameters of containers and contained objects
US7269792B2 (en) System and method for generating high-function browser widgets with full addressability
US6064382A (en) Object oriented apparatus and method for providing a graphical user interface for host-based software applications
US6101510A (en) Web browser control for incorporating web browser functionality into application programs
US5546583A (en) Method and system for providing a client/server interface in a programming language
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
US5551037A (en) Apparatus and methods for visualizing operation of a system of processes
US5933139A (en) Method and apparatus for creating help functions
US5991535A (en) Visual composition tool for constructing application programs using distributed objects on a distributed object network
US5896532A (en) Objects with run-time classes and methods of making them
US11947443B2 (en) Robotic process automation (RPA) debugging systems and methods
US11886895B2 (en) Enhanced target selection for robotic process automation
US7484202B2 (en) Method, system and program product for retrofitting collaborative components into existing software applications
WO1999027445A1 (en) Mechanism for automatically establishing connections between executable components of a hypertext-based application
US5995100A (en) Method of automatically generating custom controls for selected modules in a library
WO1999040512A9 (en) Method and system for user defined interactions between plurality of active software applications
EP1785852A2 (en) Supporting method references in the java language
Pavlidis Fundamentals of X programming: graphical user interfaces and beyond
CN117519848A (zh) 一种函数调用方法、装置、设备及存储介质
Moldaschl ooRexxTry Reengineering
Utsumi et al. Code optimization technique for general-purpose-DSP compiler
Ki-Chang Park et al. Digital Contents Cooperative Research Center, DongShin University, Korea
WO2002021271A2 (en) System, method and medium for defining palettes to transform an application program interface for a service

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140407

R150 Certificate of patent or registration of utility model

Ref document number: 5520446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term