JP2006506757A - コード生成 - Google Patents
コード生成 Download PDFInfo
- Publication number
- JP2006506757A JP2006506757A JP2005502080A JP2005502080A JP2006506757A JP 2006506757 A JP2006506757 A JP 2006506757A JP 2005502080 A JP2005502080 A JP 2005502080A JP 2005502080 A JP2005502080 A JP 2005502080A JP 2006506757 A JP2006506757 A JP 2006506757A
- Authority
- JP
- Japan
- Prior art keywords
- component
- agent
- data
- components
- processing system
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
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)
Abstract
Description
本発明は、コンピュータによって実行可能なコードを生成する方法及び装置に関し、特に、データを処理する各サービスに対応する構成要素を使用して、コンピュータによって実行可能なコードの生成に関する。
本明細書におけるいずれの従来技術への参照も、従来技術が通常の一般知識の一環を成すことを認めるものではなく、又は示唆を形成するものでもない。また、そのように解釈されるべきではない。
・最初は、より困難な分散モデルよりも社内開発モデルのほうが好都合であること。このため、限られた資源の一般化が求められる。
・所定の機能を実行する標準ルーチンを確立したライブラリ/リンカの導入。このため、競争及び最適化が低下する。
・ソフトウェア生産の本質そのものについての一般的な見解。それは、プログラマによって課される限界を顧客が許容するように求める。
・バグやミス − 高レベルのソフトウェア欠陥。
・ソフトウェアの肥大化 − 実行可能コードのサイズの大幅な増大。
・複雑性の限界 − 増し続けるソフトウェアの複雑性が、システムの能力を有効に安定状態に保つことを脅かす。
・低い参入障壁。
・予測不能性 − 開発コスト、スケジュール、パフォーマンス、又は資源使用が予測不能である。
・生産性 − 過去10年において開発者の生産性の向上はほとんど見られなかった。
・ソフトウェア開発者に対するIP保護が機能不全であること。
・優れた諸技術がある中でx86アーキテクチャの使用を継続していること。
・ソフトウェアエラー又は瑕疵を顧客が許容すること。
・ソフトウェア危機へ対応を試みる実装複雑性が増大すること(コードライブラリからのコードの再使用、古いオペレーティングシステムの不足分との互換を図ることを含む)。
・プログラマをマシンコードから切り離すことを目指した、第3、第4及び第5世代言語の開発が、初期のいくらかの生産性における成功に貢献した。言語が今日まで、生産性向上を追求するにあたっての核心であり続けているほどに、初期の生産性増大は成功した。
・データを、そのデータの処理に使用されるコードと一緒にカプセル化する新しいタイプの抽象化であるオブジェクト指向プログラミングが、主に制御複雑性を通してある程度の成功を実現した。
・大きなソフトウェアの開発の複雑性の管理を支援することを目指したコンピュータ支援ソフトウェア工学(CASE)。
・以前の知的努力を再使用しようとする取り組みであるコード再使用。
・数学的証明を利用して正確性を検証するとともに、ソフトウェア開発に伴う多数の欠陥及びバグに鋭く取り組む、形式的方法。
・履歴コードから知的内容を抽出するデコンパイラ。
第1の広い形態において、本発明は、構成要素を使用してコードを生成する方法を提供し、各構成要素は各データ処理サービスに対応する。本方法は、
a)コードを定義する構成要素の組み合わせの決定し、及び、
b)定められたデータ処理シーケンスが実行される構成要素の組み合わせの実装。また、それによってコンピュータによって実行可能なコードの生成すること、を含む。
a)複数のデータ部分を含むデータを受け取り、
b)データを、
i)データ部分をシーケンスの所定の位置に追加し、
ii)データ部分をシーケンス中の第1の位置から第2の位置に移動し、
iii)シーケンスからデータ部分を除去し、及び、
iv)シーケンスにおいてデータ部分を変更すること、によって処理する、
構成要素を有することを含む。
a)個人によるデータの手動処理、
b)処理システムにより実行され、それによってデータを自動的に処理するようになされたコンピュータにより実行可能なコード、及び、
c)下位構成要素の組み合わせ、のうちの少なくとも一つを使用して行われてもよい。
a)ユーザから受け取った入力コマンドに応答して、複数の構成要素を選択し、
b)選択された構成要素を使用して構成要素の組み合わせを定義し、及び、
c)定義されたデータ処理シーケンスが行われるように、構成要素の組み合わせを実装させ、ることを含むことが好ましい。
a)選択された各構成要素のポートの指示をユーザに提供させ、及び、
b)ユーザからの入力コマンドに応答して、上記ポートの中から選択されたポートを相互接続し、それによって構成要素の組み合わせを定義すること、を含むことが好ましい。
a)複数の構成要素の詳細を決定させ、
b)第1の処理システムを介して、少なくとも詳細の指示をユーザに提供させること、を含む。
a)ユーザからの入力コマンドに応答して、上記構成要素の中から各構成要素を選択させ、及び、
b)第1の処理システムを介して、選択された構成要素の詳細をユーザに提供させること、を含むことができる。
a)構成要素の仕様を記憶する記憶装置であって、
構成要素仕様は、
i)処理サービスの指示、
ii)構成要素のグラフィック表現、及び、
iii)各ポートに関連するエージェントの動作を定義するポート仕様
のうちの少なくとも一つを含む記憶装置と、
b)プロセッサであって、本方法は通常、このプロセッサに、
i)記憶装置から一つ又は複数の構成要素仕様を取得させ、及び、
ii)第1の処理システムを介して、構成要素仕様をユーザに提供させることを含むプロセッサと、を含む。
a)一つ又は複数の選択された構成要素のグラフィック表現を生成させ、及び、
b)ユーザから受け取った入力コマンドに応答して、グラフィック表現を処理させ、それによって構成要素の組み合わせを定義すること、を含んでもよい。
各構成要素処理システムは、一つ又は複数の各構成要素を実装するように成され、
この場合、本方法は、
a)構成要素の組み合わせ内の各構成要素に対するサービス要求を生成し、及び、
b)通信ネットワークを介して各エンティティにサービス要求を転送し、各エンティティは、サービス要求に応答して、各構成要素によって具現されるデータ処理を実装するように成されること、を含むことが好ましい。
a)構成要素が必要とするあらゆるデータを決定し、及び、
b)このデータをサービス要求の際に提供すること、を含む。
a)受け取ったサービス要求に従って、一つ又は複数の各構成要素インスタンスを実装させ、及び、
b)各構成要素インスタンスに、
i)サービス要求中に定義された相互接続に従って他の構成要素と対話させ、及び、
ii)必要なあらゆるデータ処理を行わせること、を含むことができる。
a)各ポートに関連する各エージェントを実装させ、及び、
b)定義された相互接続に従って各エージェントに別の構成要素のエージェントと協働させ、それによってポート間でデータを転送できるようにすること、を含んでもよい。
a)パフォーマンス情報を決定させ、当該パフォーマンス情報は、構成要素の実装に関連する一つ又は複数の基準を表すこと、
b)パフォーマンス情報をユーザ対して提供させ、ユーザはこのパフォーマンス情報に従って構成要素を選択すること、を含むことが好ましい。
a)構成要素を実装するエンティティの指示、
b)エンティティの地理的場所の指示、
c)構成要素の実装期間の指示、
d)各構成要素を実装に関連する費用の指示、及び、
e)構成要素の出来のよさを示す格付け、のうちの少なくとも一つを含む。
a)同等のサービスを行う複数の異なる構成要素を提供し、これらの異なる構成要素は異なるエンティティによって提供されること、
b)エンティティを競争させ、それによって構成要素の改良を促すこと、を含むことが好ましい。
a)利益の少なくともいくらかを、構成要素を実装する各エンティティに提供し、及び、
b)第2の処理システムの運営者に、利益の少なくともいくらかを保持させること、を含む。
a)実行可能コード及び処理システムのコンテキストを決定させ、及び、
b)当該決定されたコンテキストに従って、実行されるデータ処理がコンテキストに依存するようにデータ処理サービスを実行させること、を含む。
a)レジスタ、スタック及びメモリのうちの少なくとも一つの状態、
b)定義された構成要素の組み合わせ内の他の構成要素、及び、
c)偶発的要因、のうちの少なくとも一つを含む。
a)ディザリング、
b)メッシング、及び、
c)遮蔽、のうちの少なくとも一つを実行することによって、データ処理作をコンテキストに依存させることを含む。
a)データ処理シーケンスに対応する構成要素の組み合わせを定義し、及び、
b)コンピュータにより実行可能なコードが生成されるように、構成要素の組み合わせを実装し、それによって上記定義されたデータ処理シーケンスが行われる、ように成された一つ又は複数の処理システムを含む。
a)各構成要素を実装するようにそれぞれ成された一つ又は複数の構成要素処理システム、及び、
b)第1の処理システムであって、
i)ユーザから受け取った入力コマンドに従って、構成要素の組み合わせを定義し、
ii)各構成要素を実装する構成要素処理システムを決定し、及び、
iii)当該決定された構成要素処理システムのそれぞれにサービス要求を転送する、ように成された第1の処理システム、を備えることが好ましい。
a)サービス要求を受け取り、
b)各構成要素インスタンスを生成し、及び、
c)各構成要素インスタンスを使用してサービスを実行する、ように成ることができる。
a)利用可能な構成要素のうちの一つ又は複数を選択させ、及び、
b)構成要素の組み合わせを定義させ、るように成されてもよい。
a)各エンティティによって実装される各データ処理サービスをそれぞれ表す複数の構成要素の詳細を記憶し、
b)選択された構成要素の詳細をユーザに提供し、それによってユーザに、データを処理するデータ処理サービスシーケンスを定義する構成要素の組み合わせを定義させること、を含む。
a)実行されるデータ処理サービスを決定し、
b)当該データ処理サービスを行う方法を決定し、及び、
c)データ処理サービスを定義する構成要素仕様を生成し、当該構成要素仕様は、データの受け取り又は出力に使用されるポートを表すポート仕様を含むこと、を含む。
a)サービス要求を受け取らせ、
b)当該受け取ったサービス要求に応答して、各構成要素インスタンスを生成させ、
c)処理するデータを受け取らせ、
d)各構成要素インスタンスを使用してデータを処理させ、及び、
e)当該処理されたデータを出力に供給させること、を含む。
a)構成要素の組み合わせから、
i)実装する構成要素と、
ii)各構成要素のポート間の接続と、を決定し、
b)構成要素が必要とするあらゆるデータ、を決定し、
c)各構成要素ごとに、
d)各サービスの提供を要求するサービス要求を生成し、
e)サービス要求を、各構成要素を実装するエンティティに転送し、当該エンティティはサービス要求に応答して各サービスを行い、それによってデータ処理を行えるように転送すること、を含む。
a)組み合わせる一つ又は複数の構成要素を選択し、
b)処理システムに、
i)選択された各構成要素のグラフィック表現をディスプレイ上に生成させ、及び、
ii)グラフィック表現を処理して、構成要素のポート間の接続を定義させること、を含む。
a)所望のデータ処理を行う複数の技法を決定し、
b)当該決定された技法のそれぞれを具現する構成要素を定義し、及び、
c)使用に際して、結果得られる処理済みデータがコンテキストに依存するように、コンテキストに従って上記技法のうちの選択された一つの技術を行うこと、を含む。
a)エージェントの指示を受け取り、
b)エージェントを生成し、及び、
c)エージェントの指示に従って、エージェントに別のエージェントとの接続を確立させること、を含む。
a)実行されるサービスを決定し、
b)当該サービスを実行する少なくとも2つの方法を決定し、
c)受け取ったデータに従って方法の中から一つを選択する方法を決定し、及び、
d)データ処理サービスを実現する構成要素を定義する構成要素の仕様を生成すること、を含む。
a)サービス要求を受け取らせ、
b)当該受け取ったサービス要求に応答して、各構成要素インスタンスを生成させ、
c)処理するデータを受け取らせ、
d)当該受け取ったデータに従ってデータを処理する方法を選択させ、
e)各構成要素インスタンスを使用してデータを処理させ、及び、
f)当該処理されたデータを出力に供給させること、を含む。
a)バンドリング下位構成要素を各構成要素に提供し、
b)接続を定義し、当該接続は、
i)バンドリング下位構成要素の第1のエージェント及び各構成要素の各エージェントと、
ii)各バンドリング下位構成要素の第2のエージェントとの間のものであること、を含む。
a)ルート処理システムに、ペイロードを含むエージェントを生成させ、
b)エージェントをシーケンス内の複数の構成要素に、最後の構成要素から最初の構成要素へと転送し、
c)最初の構成要素をエージェントと対話させ、それによってペイロードにデータを提供し、
d)エージェントを最初の構成要素から次の構成要素へ転送し、
e)次の構成要素をエージェントと対話させ、それによってペイロードにデータを提供し、
f)最後の構成要素がペイロードと対話するまで、ステップ(d)及び(e)を繰り返し、及び、
g)エージェントをルート処理システムに転送し、それによってコードを提供すること、を含む。
a)各エンティティによって実装される各データ処理サービスをそれぞれ表す複数の構成要素の詳細を提供し、
b)ユーザに、データ処理サービスシーケンスを定義する構成要素の組み合わせを定義させ、及び、
c)当該定義された組み合わせに従ってデータ処理サービスを行わせること、を含む。
バイトレベルでコードを構築することができ、形式化されたデータ処理サービスを接続するシステムの複数の例について説明する。
・製造業者ID − サービスを提供するエンティティの識別に使用される
・構成要素ID − 各構成要素の識別に使用される
・ロケーション情報 − 構成要素が実装される場所の識別に使用される
・説明 − 構成要素によって提供されるサービスの指示
1.ツールバー − 構成要素の表示を編集できるようにする
2.構成要素の表示 − 公開されるとフォーラムにおいて利用可能になるもの
3.構成要素の詳細 − エンドユーザが必要とする、構成要素の表示と組み合わせられる追加情報
・製造業者ID
・構成要素ID
・ビルドID − 各ビルドインスタンスの識別に使用される
・制約 − ユーザによる実装に対して課されるあらゆる制約の指示
・必要なエージェント接続の詳細
前述したように、ベースステーション1により、通常は各エンティティステーション5において複数の異なるエンティティによって提供されるサービスに、複数の異なるユーザが一元的にアクセスできることが理解できる。これにより、エンティティによって提供される構成要素を、多くの異なるソフトウェアアプリケーションの作成の際に、複数回再使用することが可能になる。
・各サービスを行うエンティティ
・コスト
・各サービスを行うエンティティの所在
・構成要素の人気
・構成要素から受けとることのできる、又は出力することのできるデータ形式/タイプ
・それまでのユーザ又はフォーラムが構成要素に与える格付け
前述した例では、エージェントは構成要素間の通信の唯一の形態である。エージェントは、構成要素が、具体化するサービスの完了に必要なすべての情報の提供及び収集を担当する。エージェントは一般に、機能の限定された単純な実行可能なコードから形成され、これは、構成要素サーバの一部を成す場合もあれば、構成要素サーバによって実装される場合もある。使用の際に、エージェントは、各ポートを介して他の構成要素のエージェントと通信するようになされる。通常、エージェントはより詳細に以下に説明するようにメッセージを転送することによって通信する。
・ベースステーション識別子 1
・略図識別子 P
・構成要素Xのラベル U1
・エンティティ識別子 IDx
・エンティティ品番 X
・以下を含む構成要素Xのエージェントの接続の詳細
・エンティティ識別子ID y
・エンティティ品番 Y
・構成要素Yのエージェント番号 Y1
・ユーザの識別子 IDp
・略図識別子 P
・Yの構成要素ラベル U2
構成要素サーバは、エンティティステーション5に設けられ、エンティティステーションが構成要素を実装できるようにするソフトウェアアプリケーションである。具体的には、構成要素サーバは、エンドステーション3によって生成された購入注文を受け取り、次いで購入注文を使用して、適当なエージェントと共に、新しい構成要素インスタンスを作成するようになされる。
・図17Bに示すように、購入注文POを、各構成要素A、B及びCに関連するサービスを供給するエンティティに提出し、
・各下位構成要素A、B及びCに必要なデータを提供して、定義されるサービスを各下位構成要素が行えるようにし、
・下位構成要素エージェントアドレスを供給して、これらのエージェントが終了すると、構成要素A、B及びCを組み付けられるようにする
ように動作する。
エージェントが静的に接続することに加えて、エージェント受け渡しメカニズムも存在する。エージェント受け渡しメカニズムによって、エージェントとエージェントとの接続を終了させ、エージェントの一つをさらに別のエージェントに再接続することができる。
前述したように、各エージェントは、通常、別の構成要素に関連する他の一つのエージェントと対話する。一般に、構成要素は多くの入力及び出力を含み、従って多くのエージェントを有し得る。仮に、個人が略図作成時に各構成要素の各エージェント間の接続を定義する必要があるならば、多数の関連接続を行うべき状況での作業は繁雑になる。
多くの場合、構成要素は複数のエージェントが特定のタスクのために情報を解決する必要がある。これらエージェントは時に関連する場合があるため、エージェントをグループ化してバンドルにして複雑性を隠し、そのようにして一つのエージェントのようにバンドルを取り扱うことは理にかなっている。これは略図を大幅に簡易化し、エラーを低減させる。
例えば、典型的には、エージェントバンドルが最大で100を越える多数のエージェントを含むことがある。バンドリング/バンドリング解除プロセスの効率を向上させるために、エージェントバンドルを階層的に配置することはよくある。そして、アクセスされる機会が多いエージェント又はエージェントのバンドルは、より容易にアクセスできるようになる。
前述したように、エージェントの受け渡しは、対話に明示的に関わらないエージェントが責任を他の下位構成要素に渡せるようにするために行われる。
ビルドプロセスの実装においてさらなる有用な技術は、チェーニングとして知られる技術である。
前述した例の全てでは、エージェント間は1対1で対話が行われた。従って、構成要素からの一つの出力は、後続する構成要素の一つの入力に接続され、各エージェントは一つの対応するエージェントと対話するようになされる。
動的な構成要素又は動的な略図の実装を可能にするために、多段階構築を使用することができる。具体的には、通常、多段階構築は、設計者が、困難な構築を制御するために、複数の段階で略図を意図的にレイアウトして、次いでこれを、初期段階の進行を満足したときに実装する状況を指す。しかし、これは構成要素レベルで実装することもできる。
前述した例では、動的な構成要素の場合であっても構成要素は予め定義される。これは、入力及び出力されるデータの性質が予め決定されるためである。これは、ユーザが、フォーラムから構成要素を選択するときに、構成要素の特定の入力及び出力の要件を認識していることを意味する。
前述したように、システムは、構成要素を階層的に組み合わせられるようにして、複雑で連続したデータ処理を行えるようにする。従って、フォーラムを介して提供可能な基礎的な基本構成要素を使用して、複雑な構成要素を構築することができる。
構成要素供給者のサービス実装に保護を提供するため、システムは、コンテキストに依存するコードを生成するように実装することができる。
・開始時の実行可能な既知の状態
・前の命令からのレジスタの既知の状態
・スタック及びメモリの既知の状態
・レジスタ、スタック及びメモリの割り当て
・プロジェクト内のそれ自体(構成要素)の番号
・どの構成要素が自分の構成要素に接続されるか
・コードを置くべき場所
コンテキスト依存コードは、同じタスクを実行する多くの方法があり、方法によってはシステムの他の部分に依存することを利用する。依存するコードを作成することによって、第3者が、あまり書き換えることなくコードの容易な再使用を防止し、又はリバースエンジニアリングを防止する。あるレベルの依存性を越えると、リバースエンジニアリングし書き換えるよりも、構成要素を単に再購入するほうが経済的になる。
例1
留意点:これはx86アセンブリであり、またアセンブリが16進数の代わりに提示される。
mov eax, 1 ;store number 1 in register eax
mov ebx, 0 ;store number 0 in register ebx
int 0x80 ;trap call to Unix OS
1)送るコード量を少なくする。
2)実行時間を短くする。
3)コードをこの特定のコンテキストでしか動作できないようにする。
例2
int 0x80
一例では、前述したプロセスは、構成要素のサプライチェーンを使用し、実行可能アプリケーションのコードを生成する。コード生成構成要素サプライチェーンの根底には、アセンブリ命令に似たものに類似した構成要素がある。これら根底の各構成要素は、通常、1〜3のマシンコード命令を生成し、いくつかの例としては、以下のものがある。
・assign
・add
・multiply
・divide
・subtract
・jump condition
;eax=?, ebx=?, ecx=?, edx=?
mov eax, 1 ;eax=1 ;eax=1, ebx=?, ecx=?, edx=?
mov ebx, 2 ;ebx=2 ;eax=1, ebx=2, ecx=?, edx=?
add eax, exb ;eax=eax+ebx ;eax=3, ebx=2, ecx=?, edx=?
mov ecx, eax ;ecx=eax ;eax=3, ebx=2, ecx=3, edx=?
単一パラメータ依存性とは、生成されたコードが一つのレジスタの状態に依存することである。単一パラメータ依存性は、最小レベルのマシン状態コンテキスト依存性を表す。
アセンブリに近い低レベルにコンテキスト依存性を作り出すことは、実装が最も困難なレベルである。これは、与えられた問題を実装することができる方法の数が限られていることによる。より高いレベルの構成要素がこのようなコンテキストに依存する構成要素を使用するには、固有のコンテキスト依存性が高すぎる。
前述した例では、複数回のコード生成が行われる場合、各回での出力結果は、コンテキストに直接依存するため同じである。
・ランダムコンテキストの導入(ディザリングとして知られる)
・複数の可能な出力からの選択(例えば、表1は所定のコンテキストに可能な8つの結果を示し、これら8つの選択肢の中の一つがランダムに選択されて出力として使用される)
・データ処理の再分配のネゴシエーション(メッシングとして知られる)
この場合、構成要素は、複数の異なる技術を用いてデータ処理を内部で行うようになされる。この場合、技術は異なる結果コードを生成するように構成される。この一例について、これより図29Aに関連して説明する。
メッシングの場合、構成要素は協働して、各構成要素の出力を、各構成要素の各作業に基づいて変更できるようにする。
従って、一例では、前述したシステムは、ユーザが、構成要素の組み合わせを定義することによってデータ処理を実行する、又はコンピュータコードを生成できるようにする。この場合、各構成要素は各データ処理サービスに対応する。これによって、構成要素の組み合わせが実行されると、所望のデータ処理が実行される一連のデータ処理を定義する。又は、所望のコードが生成されることになる一連のデータ処理を定義する。
・競争要素をソフトウェア開発に加える、
・供給者の専門化を可能にする、
・供給者及び顧客両方のIPを保護する、
・クライアントに完全に譲渡可能な所有権を生み出す、
・工業的スタイルのソフトウェアサプライチェーンを作成する。
・構成要素の供給者が直接競争して、各サービスを提供できるようにすることによって、構成要素供給者間の競争を可能にし、
・供給者及びクライアントのIPを均整が取れるように保護し、
・構成要素のサプライチェーンの開発を可能にし、
・完全分散型の構成要素の処理エンジンを提供し、
・完全自動コードの生成をサポートする。
・構成要素デザイナー − 構成要素の視覚的組み立てをサポートするアプリケーション
・構成要素公開及び非公開仕様ファイル − XML等、所定の形式で構成要素の定義のため
・構成要素サーバ − 構成要素公開仕様ファイルに指定のサービス供給をサポートするアプリケーション
・構成要素の提供を調整する、エージェントによって具体化されるサーバ間通信メッセージのセット
処理は、構成要素を個々に識別することができ、設計されたコンテキスト内でしか使用可能な出力を生成することができない固有のメカニズムを提供することによって供給者の知的財産を保護することができる。
これに加えて、前述したモデルは、コンテキスト独立環境に存在する受動的に再使用可能要素からのコードの開発を助長する現在のコーディングの慣行とは対照的に、使用に応じて料金を支払う構成要素の戦略を可能にする。コンテキスト独立構成要素は、ユーザが使用の都度、構成要素を再購入する必要性をなくし、構成要素を元から生成することの経済性を揺るがす。
説明したプロセスは、業界型のサプライチェーンをサポートする。この場合、所定の構成要素に対する購入注文が供給者に届き、構成要素ベンダーサイトに配備された構成要素サーバが必要な下位構成要素に対する購入注文を自動的に生成する。このような自動化により、効率的な「ジャストインタイム」による構成要素のサプライチェーンが生み出される。
プロセスは真の分散型コード構築をサポートする。
このセクションは、通常、実行可能なコードの構築に使用される基本構成要素の例を含む。
前述したように、バンドル構成要素は、複数のエージェント接続を一つのエージェント接続にバンドリングするように動作する。入力及び出力の数の違いを含め、様々な、異なるバンドリング構成要素を提供することができる。
dup構成要素は、例えば、図31Cに示すように、二つ以上の出力エージェントOに接続された入力エージェントIを含む。
この構成要素は、図31Dに示され、エージェントIが受け取ったペイロードを、10進数から16進数に変換して、エージェントOから出力する。これはエージェントPによって与えられる精度で行われる。変換のいずれのエラーもオプションのエージェントEにら出力される。
図31Eに示すH2B構成要素は、エージェントIが受け取ったペイロードを、16進数から2進数に変換して、エージェントOから出力する。これはエージェントPによって与えられる精度で行われる。変換のいずれのエラーもオプションのエージェントEに出力される。
図31Fに示すendian構成要素は、エージェントIがペイロードとして受け取った入力16進数のバイト単位で反転してエージェントOに出力する。例えば、入力が01234567の場合、出力は67452301になる。これはエージェントPによって与えられる精度で行われる。変換のいずれのエラーもオプションのエージェントEに出力される。
図31Gに示すこの構成要素は、エージェントFindに入力される文字列の出現を求めて、エージェントInに入力された文字列をサーチし、各外観をエージェントReplaceに入力された文字列で置き換え、結果をエージェントOutに送る。
図31Hに示すこの構成要素は、Tag Inエージェントに入力されたタグを求めてXML Inエージェントに提示されたXML文書をサーチする。
・Value Outにタグに関連する値、
・XML OutにXML文書の残りの部分、
・Exceptionに発生したいずれの例外、
を出力する。
"<b>
<a>1</a>
</b>
<a>2</a>
<b>
<a>3</a>
</b>"
であり、Tag Inエージェントのペイロードが「a」である場合、Value Outは「2」であり、XML Outは、
"<b>
<a>1</a>
</b>
<b>
<a>3</a>
</b>"
になる。
図31Iに示すadd tag構成要素は、Tag Inエージェントに入力されるペイロードに示されるタグに基づいて、またValue Inエージェントに入力される値に従って、有効なXMLにおいて<Tag In>Value In</Tag In>の形態のXMLデータ(タプル)を作成する。値をBase64数として記憶する必要がある場合にはそうされる。XMLにおいて有効ではないタグである場合、例外が発生し、XML Outエージェントに出力されるペイロードは何も含まない。
図31Jに示すこの構成要素は、エージェント1及び2に入力されるペイロードの文字列を連結し、結果を残りのエージェントに出力する。例えば、文字列1が「バナナ」であり、文字列2が「スムージー」である場合、出力エージェントは「バナナスムージー」を出力する。
図31Kに示すこの構成要素は、エージェントIが受け取った文字列の長さを測定し、長さをエージェントOから出力する。例えば、エージェントIにおける入力文字列が「ABCDEF」である場合、出力は6になる。
図31Lに示すこの構成要素は、ルックアップテーブル」プロトコルに従って、XMLでエージェント「T」に供給されるルックアップテーブルから入力「I」をサーチし、適合する出力をエージェント「O」から出力する。
<protocol>
<protocol_name>lookup table</protocol_name>
<protocol_data>
<entry>
<input>input 1</input>
<output>output 1</output>
</entry>
<entry>
<input>input 1</input>
<output>output 1</output>
</entry>
<entry>
<otherwise>output otherwise</otherwise>
</entry>
</protocol_data>
</protocol>
And
図31Mに示すこの構成要素は、エージェント1及び2に入力されたペイロードに示されるブール文字列の論理和を計算し、結果をエージェントOのペイロードに出力する。入力のいずれかをブール文字列に解析することができない場合、例外が発生し、エージェントOからは何も送られない。例えば、1が「true」であり、2が「false」の場合、Oは「false」になる。
図31N、図31O及び図31Pは、エージェント1、2に入力されたペイロードの除算、加算及び等号判定という数学的関数を行う数学演算子構成要素Div、ADD、EQを示す。この場合、結果は各出力エージェントOに出力され、例外がエージェントEに出力される。
図31Qに示すBuild ASM1構成要素は、コードの断片の収集を担当するデータ構造を表すビルドチェーニングの処理をする、ビルド構成要素のメンバである。
図31Sに示すBuild ASM2構成要素もビルド構成要素のメンバである。
図31Uに示すInit_elf構成要素もビルド構成要素の一つである。
具体例
代替の技術について、以下詳細に記す複数の具体例において概説する。
第1の例では、一つの構成要素を含む略図が構築される。この単純な例は、構築に関わるステップを強調する役割を果たす。
第2の例は、この例では「Add」サービスの提供が、自動化された構成要素「Add2」の使用を通して提供されること以外は、第1の例と実質的に同じである。構成要素「Add2」の構成要素の表示Add2の一例を図33に示す。図に示すように、構成要素の表示Add2は、構成要素の表示Add1と実質的に同じである。
第3の具体例は、add構成要素の複雑性を拡張して、10進数及び16進数等、底の異なる数値の入力を取り扱えるようにする。これは、10進数又は16進数のいずれかとして入力を許容できる加算であり、10進数又は16進数のいずれかを出力することができる。
この具体例は、最も複雑なadd構成要素について考察する。
Validate String構成要素は、入力文字列(In)をLISTエージェントの有効文字列リストと比較することによって機能する。この例では、リストは「Decimal」及び「Hexadecimal」である。入力文字列は、有効な場合、有効であるとして渡され、OUT(checked)エージェントは「true」に戻る。文字列が有効ではなかった場合、OUT(checked)エージェントは「false」に戻る。validate stringのさらなるサービスは、入力文字列を指定された出力形式に再フォーマットすることである。これには、空きスペース(スペース及び復帰改行文字)の除去、文字列の小文字への変換、及び、また文字列長のトリミングが含まれ得る。FORMATエージェントがこの出力形式を指定する。
Or構成要素は、複数のソースからの入力に基づいてイベントをトリガするときに使用される論理演算子である。入力のいずれかがtrueの場合にはtrueを出力するように、すべての入力を組み合わせる。Orを購入した最初のとき、入力エージェントは、それぞれ接続されたばかりであるためすべて未定義である。従ってペイロードを有さない。次いで、Or構成要素は、送るべき出力が何であるかを決定するのに十分な情報を得るまでエージェントペイロードを待つ。Or構成要素は入力エージェントのいずれかが「true」のペイロードを有すると、すぐに「true」を出力し、その他の場合は、すべての入力エージェントが「false」と特定されるまで待ち、すべて「false」と特定されたポイントで「false」を出力する。
エージェントIN1、IN2、OUTが、バンドリングを利用して、一方は数値を表し、一方は数の形式を指定する二つのエージェントを共に組み合わせる。このバンドリングは、数の形式がバンドルの最初の位置にあり、数値が2番目の位置にあるものと想定する。これら二つの特定のエージェントの組み合わせをナンバーバンドリングと呼ぶ。互換性を保証するために、エージェントIN1、IN2は、ナンバーバンドルを生成するエージェントのみに接続しなければならず、OUTエージェントはナンバーバンドルを取り扱うことのできるエージェントにのみ接続されなければならない。バンドリングについてさらに情報を得るには、バンドリング及びバンドリング解除のセクションを参照のこと。
Validate String構成要素は、所定の要件に基づいて入力をチェックしフォーマットできるようにする。
Validate String構成要素のOUT(checked)エージェントA23、A53、A31は、各形式仕様が入力検証に合格したか否かを示す。これらのいずれかが不合格である場合、さらなる機能を手動で実行する必要がある。OUT(checked)エージェントA23、A53、A31は、Or構成要素C8を使用して一つのエージェントA36に組み合わせられ、エージェントA36は、「Add4」によって提供される手動の加算を使用すべきか、又は「Add3」によって提供される自動的な加算を使用すべきかを指定するエージェントペイロードを有する。
addition構成要素C11によって行われる加算の出力は、bundle構成要素C10を使用して複数のバンドルに組み合わせられる。
前述した四つの具体例では、どのようにしてエージェント情報の処理できるかについて示した。前述した各例は、コードの構築を取り扱っているが、代わりにコンピュータプログラムがいくつかのタスク、これら例では加算演算を行っていたことに留意されたい。これから、図1、図3A〜図3B及び図10A〜図10Eのフローチャートに記した例はソフトウェア生成の例であるが、処理動作を直接行うにあたっても使用することが可能なことが理解できる。
最後の具体例は、図36AのPit Pixel構成要素を使用して、図36Cに詳述するスタンドアロンプログラムを作成することを示す。
可変コンテキスト依存性について、内部略図を図37Aに示すassign構成要素の使用に関連してこれより説明する。
マシンの状態は、各レジスタが、構築時に決定することができる値を含むか否か、決定することができる場合には値が何であるかを記録する。レジスタの値は、実行時でしか決定することができない場合には未知になる。以下の例では、マシンの状態は、以下の形式を有するXMLペイロードに対応する。
<ebx>B</ebx>
<ecx>C</ecx>
<edx>D</edx>
<ebx>1</ebx>
<ecx>unknown</ecx>
<edx>10</edx>
build中のすべての構成要素は、Init_elf、int 0×80、Bcat及びAssign構成要素を含め、マシン状態サービスをサポートしなければならない。Init_elf構成要素は、値0を含むレジスタeax、ebx、ecx及びedxに対応するLinuxエグゼキュータブルのスタートアップマシン状態でビルドチェーニングを初期化する。Assign構成要素は、マシン状態における一つのレジスタエントリの値を、割り当てるレジスタ及び値に一致するように設定する。int 0×80構成要素は、この構成要素によって生成されるコードは、レジスタeaxの値を実行時に変更するシステムコールに対応するため、マシン状態におけるeaxエントリを「unknown」に設定する。Bcatはビルドチェーニングの一部を成し、コードチェーニングと並列してマシン状態チェーニングを提供することによってマシン状態をサポートし、これにより、各構成要素がマシン状態をチェーニング内の前の構成要素から受け取り、更新されたマシン状態を次の構成要素に送ることができる。
Add Reg1, K
Add Reg1
<protocol_name>lookup table</protocol_name>
<protocol_data>
<entry>
<input>eaxeax</input>
<output>89C005</output>
</entry>
<entry>
<input>eaxebx</input>
<output>89D805</output>
</entry>
.....
</protocol_data>
</protocol>
この一例について、「hello world」プログラムに関連してこれより説明する。具体的には、構成要素を生成する「アセンブリ的な」コードで書かれた従来の「hello world」プログラムの例を以下に記す。
GLOBAL _start
section .text
_start:
mov ebx, 1 ;standard out
mov eax, 4 ;system write system call
mov ecx, string ;Pointer to string
mov edx, 11 ;Length of string
int 0x80 ;start system call
mov ebx, 0 ;exit error code
mov eax, 1 ;System exit system call
int 0x80 ;start system call
section .data
string db 'hello world'
ld -s hello.o. -o hello
従来のコードとの比較として、前述したassign構成要素を使用して同じプログラムを作成した。これは図38Aに示すルート略図を使用して実現した。
<schematic>
<name>test</name>
<author>none</author>
<description>undescribed</description>
<w>400</w>
<h>460</h>
<agent>
<x>371</x>
<y>412</y>
<agent_id>2147483647<agent_id>
<agent_name>Code Out</agent_name>
<agent_description></agent_description>
<auto_term>manual</auto_term>
<persistance>persistance</persistance>
<payload></payload>
<optional>false</optional>
<auto_payload>false</auto_payload>
<hand_off>true</hand_off>
<sound_file></sound_file>
</agent>
...
<component>
<filename>/dream/asm/techreview/assign.comp</filename>
<schematic_component_id>1</schematic_component_id>
<x>190.0</x>
<y>66.0</y>
</component>
...
<link>
<half_link>
<schematic_component_id>10</schematic_component_id>
<agent_id>3</agent_id>
</half_link>
<half_link>
<schematic_component_id>17</schematic_component_id>
<agent_id>1</agent_id>
<half_link>
<anchor>
<x>190.0</x>
<y>66.0</y>
</anchor>
</link>
...
</schematic>
printf("hello world");
]
gcc -static hello.c -o hello
strip hello
377kBのエグゼキュータブルになる。このプログラムはprintfを使用し、printfは汎用であり、かつコンテキストから独立したものであり、明らかにコードの膨張を際立たせる。
この例は、二つのprint stringのシステムコールを使用して「Hello」を、次いで「world」をプリントする。本発明によりこれを行う略図の一例を図38Bに示し、手動で最適化されたコンテキスト独立コードと結果コードの比較を表9に示す。従来のアセンブリコードは以下の通りである。
GLOBAL _start
section .text
_start:
mov ebx, 1 ;standard out
mov eax, 4 ;system write system call
mov ecx, string1 ;Pointer to string1
mov edx, 6 ;Length of string1
int 0x80 ;start system call
mov ebx, 1 ;standard out
mov eax, 4 ;system write system call
mov ecx, string2 ;Pointer to string2
mov edx, 5 ;Length of string2
int 0x80 ;start system call
mov ebx, 0 ;exit error code
mov eax, 1 ;System exit system call
int 0x80 ;start system call
section .data
string1 db ‘hello ’
string2 db ‘world’
Claims (159)
- 構成要素を使用してコードを生成する方法であって、各構成要素は各データ処理サービスに対応し、前記方法は、
a)コードの必要条件を定義する構成要素の組み合わせを決定し、及び、
b)前記コンピュータコードが生成されるように、前記構成要素の組み合わせを実装し、それによって前記定義されたデータ処理シーケンスが実行されること、を含む方法。 - 前記構成要素の少なくともいくつかは、処理するデータを受け取り及び/又は出力する、一つ又は複数のポートを備える請求項1に記載の方法。
- 各ポートは、前記構成要素への、また前記構成要素からのデータの転送を制御するようになされるエージェントを有する請求項2に記載の方法。
- a)複数のデータ部分を含むデータの受け取る構成要素、及び、
b)データを処理する構成要素であって、
i)データ部分の前記シーケンスの所定の位置への追加、
ii)データ部分の前記シーケンス中の第1の位置から第2の位置への移動、
iii)前記シーケンスからデータ部分の除去、及び、
iv)前記シーケンスにおいてデータ部分の変更、によってデータを処理する構成要素、を備えることを含む請求項2又は3に記載の方法。 - 前記方法の少なくとも一部は、記憶装置を備えた処理システムを使用して実行され、
前記方法は、前記データ部分の一つ又は複数を前記記憶装置に記憶することを含む請求項4に記載の方法。 - 前記構成要素の少なくともいくつかは、複数の組み合わせられた下位構成要素から形成され、前記下位構成要素もまた構成要素である請求項1から5のいずれか一つに記載の方法。
- 前記構成要素の少なくともいくつかは、
a)個人による手動による前記データの処理、
b)処理システムによって実行され、それによって前記データを自動的に処理するように成されたコンピュータコード、及び、
c)下位構成要素の組み合わせ、前記下位構成要素も構成要素である、
の少なくとも一つを使用して形成される請求項1から6のいずれか一つに記載の方法。 - 一つ又は複数の処理システムを使用して行われる請求項1から7のいずれか一つに記載の方法。
- 第1の処理システムに、
a)ユーザから受け取った入力コマンドに応答して、複数の構成要素を選択させ、
b)前記選択された構成要素を使用した前記構成要素の組み合わせを定義させ、及び、
c)前記定義されたデータ処理シーケンスが行われるような、前記構成要素の組み合わせを実装させること、を含む請求項8に記載の方法。 - 前記構成要素の少なくともいくつかは一つ又は複数のポートを備え、
前記方法は、前記処理システムに、
a)選択された各構成要素の前記ポートの指示を前記ユーザに提供させ、及び、
b)前記ユーザからの入力コマンドに応答して、前記ポートの中から選択されたポートを相互接続させ、それによって前記構成要素の組み合わせを定義すること、を含む請求項9に記載の方法。 - 第2の処理システムに、
a)複数の構成要素の詳細を決定させ、及び、
b)前記第1の処理システムを介した、少なくとも前記詳細の指示を前記ユーザに提供させ、ることを含む請求項8から10のいずれか一つに記載の方法。 - 前記処理システムに、
a)前記ユーザからの入力コマンドに応答して、前記構成要素の中から各構成要素を選択させ、及び、
b)前記第1の処理システムを介した、前記選択された構成要素の前記詳細を前記ユーザに提供させることを含む請求項12に記載の方法。 - 前記詳細は構成要素の仕様であり、
前記処理システムは、
a)前記構成要素の仕様を記憶する記憶装置であって、
前記構成要素の仕様は、
i)前記処理サービスの指示、
ii)前記構成要素のグラフィック表現、及び、
iii)各ポートに関連するエージェントの動作を定義するポート仕様、
の少なくとも一つを含む、記憶装置と、
b)プロセッサであって、前記方法は前記プロセッサに、
i)前記記憶装置から一つ又は複数の構成要素の仕様を取得させ、
ii)前記第1の処理システムを介した、前記構成要素の仕様を前記ユーザに提供させ、ることを含む、プロセッサと、を備える請求項12に記載の方法。 - 前記第1の処理システムに、
a)前記一つ又は複数の選択された構成要素のグラフィック表現を生成させ、
b)ユーザから受け取った入力コマンドに応答して、前記グラフィック表現を処理させ、それによって前記構成要素の組み合わせを定義することを含む請求項9から13のいずれか一つに記載の方法。 - 前記第1の処理システムは、通信ネットワークを介して一つ又は複数の構成要素処理システムに接続され、
各構成要素処理システムは、一つ又は複数の各構成要素を実装するように成され、
前記方法は、
a)前記構成要素の組み合わせ内の各構成要素に対するサービス要求を生成し、及び、
b)前記通信ネットワークを介して各エンティティに前記サービス要求を転送し、各エンティティは、前記サービス要求に応答して、前記各構成要素によって実現される前記データ処理を実装するように成されること、を含む請求項9から14のいずれか一つに記載の方法。 - a)前記構成要素が必要とするあらゆるデータを決定し、及び、
b)前記サービス要求の際の前記データを提供すること、を含む請求項15に記載の方法。 - 各サービス要求は、前記各構成要素の前記ポートのそれぞれの相互接続の指示を含む請求項15又は請求項16に記載の方法。
- 各構成要素処理システムに、
a)前記受け取ったサービス要求に従って、一つ又は複数の各構成要素インスタンスを実装させ、及び、
b)各構成要素インスタンスに、
i)前記サービス要求中に定義された前記相互接続に従って他の構成要素と対話させ、及び、
ii)必要なあらゆるデータ処理を行わせること、を含む請求項17に記載の方法。 - 各構成要素処理システムに、
a)各ポートに関連する各エージェントを実装させ、及び、
b)前記定義された相互接続に従って各エージェントに別の構成要素のエージェントと協働させ、それによって前記ポート間でデータを転送できるようにすること、を含む請求項17又は請求項18に記載の方法。 - 前記第2の処理システムに、
a)パフォーマンス情報を決定させ、前記パフォーマンス情報は前記構成要素の前記実装に関連する一つ又は複数の基準を表すものであって、及び、
b)前記パフォーマンス情報をユーザに提供させ、前記ユーザは前記パフォーマンス情報に従って前記構成要素を選択すること、を含む請求項11に記載の方法。 - 前記パフォーマンス情報は、
a)前記構成要素を実装する前記エンティティの指示、
b)前記エンティティの地理的場所の指示、
c)前記構成要素の実装期間の指示、
d)前記各構成要素を実装に関連する費用の指示、及び、
e)前記構成要素の出来のよさを示す格付け、
の少なくとも一つを含む請求項20に記載の方法。 - a)同等のサービスを行う複数の異なる構成要素を提供し、前記異なる構成要素は異なるエンティティによって提供され、及び、
b)前記エンティティを競争させ、それによって前記構成要素の改良を促すこと、を含む請求項20又は請求項21に記載の方法。 - 各構成要素の使用に対して費用を課すことにより利益を生じることを含む請求項20から22のいずれか一つに記載の方法。
- a)前記利益の少なくともいくらかを、前記構成要素を実装する各エンティティに提供し、及び、
b)前記第2の処理システムの運営者に、前記利益の少なくともいくらかを保持させること、を含む請求項23に記載の方法。 - 前記生成されたコードをコンテキストに依存させることを含む請求項1から24のいずれか一つに記載の方法。
- 前記構成要素の少なくともいくつかに、
a)前記コードのコンテキストを決定させ、及び、
b)前記決定されたコンテキストに従った前記データ処理サービスを実行させ、前記実行されるデータ処理が前記コンテキストに依存するように前記データ処理サービスを実行させる請求項25に記載の方法。 - 前記処理システムは、メモリ、スタック及びレジスタを少なくとも備え、前記コンテキストは、
a)前記レジスタ、スタック及びメモリの少なくとも一つの状態、
b)前記定義された構成要素の組み合わせ内の他の構成要素、及び、
c)偶発的要因、
の少なくとも一つを含む請求項26に記載の方法。 - a)ディザリング、
b)メッシング、及び、
c)遮蔽
の少なくとも一つを行うことによって、前記データ処理をコンテキストに依存させることを含む請求項26又は請求項27に記載の方法。 - 構成要素を使用してコンピュータコードを生成する装置であって、各構成要素は所定の様式でデータを処理する各サービスに対応し、前記装置は、
a)データ処理シーケンスに対応する構成要素の組み合わせを定義し、及び、
b)前記コンピュータコードが生成されるように、前記構成要素の組み合わせを実装し、それによって前記定義されたデータ処理シーケンスが実行されるように成された一つ又は複数の処理システムを備える装置。 - a)各構成要素を実装するようにそれぞれ成された一つ又は複数の構成要素処理システム、及び、
b)第1の処理システムであって、
i)ユーザから受け取った入力コマンドに従った、前記構成要素の組み合わせの定義、及び、
ii)前記各構成要素を実装する前記構成要素処理システムの決定、及び、
iii)前記決定された構成要素処理システムのそれぞれにサービス要求の転送、
を行うように成された第1の処理システムと、を備える請求項29に記載の装置。 - 前記構成要素処理システムは、
a)前記サービス要求を受け取り、
b)各構成要素インスタンスを生成し、及び、
c)前記各構成要素インスタンスを使用した前記サービスを実行する、ように成される請求項30に記載の装置。 - 利用可能な構成要素の詳細を記憶するように成された第2の処理システムを備える請求項29から31のいずれか一つに記載の装置。
- 前記第2の処理システムは、各構成要素処理システムから構成要素の前記詳細を取得するように成される請求項32に記載の装置。
- 前記第1の処理システムは、前記第2の処理システムと協働するように成され、それによってユーザに、
a)前記利用可能な構成要素の一つ又は複数を選択させ、及び、
b)前記構成要素の組み合わせを定義させ、る請求項32又は請求項33に記載の装置。 - 請求項1から28のいずれか一つに記載の方法を実行するように成される請求項29から34のいずれか一つに記載の装置。
- 構成要素を使用してコンピュータコードを生成するコンピュータプログラムプロダクトであって、
各構成要素は、所定の様式でデータを処理する各サービスに対応し、
前記コンピュータプログラムプロダクトは、適切な処理システムで実行されると、前記処理システムに請求項1から28のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。 - ユーザにデータを処理させる方法であって、
一つ又は複数の処理システムを使用して、
a)各エンティティによって実装される各データ処理サービスをそれぞれ表す複数の構成要素の詳細を記憶し、及び、
b)選択された構成要素の詳細をユーザに提供し、それによって前記ユーザに、前記データを処理するデータ処理サービスのシーケンスを定義する構成要素の組み合わせを定義させる、ことを含む方法。 - a)各構成要素毎に、各エンティティからの構成要素の仕様を受け取り、及び、
b)前記構成要素の仕様に従って前記詳細を提供すること、を含む請求項37に記載の方法。 - 前記処理システムに、
a)前記構成要素の実装に関連する一つ又は複数の基準を表すパフォーマンス情報を決定させ、及び、
b)前記パフォーマンス情報をユーザに提供させ、それによって前記ユーザは前記パフォーマンス情報に従って前記構成要素を選択すること、を含む請求項38に記載の方法。 - 前記パフォーマンス情報は、
a)前記構成要素を実装する前記エンティティの指示、
b)前記エンティティの地理的場所の指示、
c)前記構成要素の実装期間の指示、
d)前記各構成要素を実装に関連する費用の指示、及び、
e)前記構成要素の出来のよさを示す格付け
の少なくとも一つを含む請求項39に記載の方法。 - a)同等のサービスを行う複数の異なる構成要素の提供であって、前記異なる構成要素は異なるエンティティによって提供され、
b)前記エンティティを競争させ、それによって前記構成要素の改良を促す、ことを含む請求項39又は請求項40に記載の方法。 - 各構成要素の使用に対して費用を課すことにより利益を生じることを含む請求項38から41のいずれか一つに記載の方法。
- 前記料金の少なくとも一部を前記各エンティティに提供することを含む請求項42に記載の方法。
- 通信ネットワークを介して複数のエンドステーションに接続された処理システムを使用することを含み、
ユーザに、前記エンドステーションを使用して構成要素を選択させ、構成要素の組み合わせを定義させることを含む請求項38から43のいずれか一つに記載の方法。 - 前記処理システムは記憶装置及びプロセッサを備え、
前記方法は、
i)構成要素の仕様を前記記憶装置に記憶し、及び、
ii)前記エンドステーションを介して前記構成要素の仕様を前記ユーザに提供し、それによって前記ユーザに、構成要素の組み合わせを定義させ、前記必要なデータ処理サービスを実装させること、を含む請求項44に記載の方法。 - ユーザにデータを処理させる装置であって、
a)各エンティティによって実装される各データ処理サービスをそれぞれ表す複数の構成要素の詳細を記憶し、及び、
b)選択された構成要素の詳細をユーザに提供し、それによって前記ユーザに、前記データを処理するデータ処理サービスのシーケンスを定義する構成要素の組み合わせを定義させる、ように成される一つ又は複数の処理システムを含む装置。 - 請求項38から45のいずれか一つに記載の方法を行うように成される請求項46に記載の装置。
- ユーザにデータを処理させるコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項38から45のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- 処理システムを使用してデータ処理サービスを実現する構成要素を提供する方法であって、
a)実行されるデータ処理サービスを決定し、
b)前記データ処理サービスを行う方法を決定し、及び、
c)前記データ処理サービスを定義する構成要素の仕様を生成し、前記構成要素の仕様は、データの受け取り又は出力に使用されるポートを表すポート仕様を含むこと、を含む方法。 - 前記データ処理サービスを実行する方法を定義する非公開構成要素の仕様をさらに決定することを含む請求項49に記載の方法。
- 前記方法は、前記構成要素の仕様を処理システムへの提供を含み、
前記処理システムは、前記構成要素の詳細をユーザに提供するように適合され、それによって、ユーザにデータ処理サービスに使用する前記構成要素を選択させる請求項49又は請求項50に記載の方法。 - 前記方法は、前記処理システムによって実装される構成要素サーバを定義することを含み、
前記構成要素サーバは、
a)処理される前記データを受け取る構成要素インスタンス、
b)前記データを処理する構成要素インスタンス、及び、
c)前記処理されたデータを出力する構成要素インスタンス、を生成するように成される請求項49から51のいずれか一つに記載の方法。 - 前記方法は、各ポートに対してエージェントを定義することを含み、
前記エージェントは、他の構成要素のエージェントと協働するように成され、それによってデータを前記ポートで受け取り、かつ前記ポートから出力させる請求項52に記載の方法。 - 各エージェントは、前記構成要素サーバによって実行されるように成された各コードから形成される請求項53に記載の方法。
- 前記方法は、前記構成要素を定義することを含み、それによって前記データを、
a)ユーザ入力に従って手動で、及び、
b)前記構成要素サーバによって自動的に、
の少なくとも一つによって処理させる請求項52から54のいずれか一つに記載の方法。 - 前記方法は、
a)前記エージェントの少なくとも一つにコンテキストの指示を決定し、及び、
b)内容に従って前記データを処理することによって、前記データ処理を前記コンテキストに依存させることを含む請求項55に記載の方法。 - a)ディザリング、
b)メッシング、及び
c)遮蔽
の少なくとも一つを行うことによって、前記データ処理を行うことを含む請求項56に記載の方法。 - データ処理シーケンスに対応する他の構成要素の組み合わせの定義によって、前記データ処理サービスの実行方法を決定することを含む請求項49から57のいずれか一つに記載の方法。
- 処理システムを使用して、
a)一つ又は複数の構成要素を選択し、
b)前記構成要素の組み合わせを定義し、及び、
c)前記定義された構成要素の組み合わせに従って前記構成要素の仕様を生成することを含む請求項58に記載の方法。 - 前記構成要素はエンティティによって提供され、その他の構成要素は異なるエンティティによって提供される請求項58又は請求項59に記載の方法。
- データ処理サービスを実現する構成要素を提供する装置であって、
a)ユーザ入力コマンドに従って、
i)実行されるデータ処理サービス、及び、
ii)前記データ処理サービスを行う方法、
を決定し、及び、
b)前記データ処理サービスを定義する構成要素の仕様を生成し、前記構成要素の仕様は、データの受け取り又は出力に使用されるポートを表すポート仕様を含むように成された処理システムを備える装置。 - 請求項55から66のいずれか一つに記載の方法を実行するように成される請求項61に記載の装置。
- データ処理サービスを実現する構成要素を提供するコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項49から60のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- 処理システムを使用して構成要素において実現されるサービスを提供する方法であって、前記処理システムに、
a)サービス要求を受け取らせ、
b)前記受け取ったサービス要求に応答して、各構成要素インスタンスを生成させ、
c)処理されるデータの受け取り、
d)前記各構成要素インスタンスを使用して前記データを処理させ、及び、
e)前記処理されたデータを出力に供給させ、ることを含む方法。 - 前記処理システムに、
a)所定のプロセス、及び、
b)オペレータから受け取る入力コマンド
の少なくとも一つに従って前記データを処理させることを含む請求項64に記載の方法。 - 前記処理システムに、前記構成要素の各入力及び出力に関連するエージェントを生成させることを含み、
前記エージェントは、他の構成要素のエージェントと協働するように成され、それによってデータを前記入力において受け取り及び前記出力から出力させる請求項64又は請求項65に記載の方法。 - a)前記サービス要求から他の構成要素との接続を決定し、及び、
b)前記決定された接続に従って、前記エージェントを他の構成要素のエージェントと協働することを含む請求項66に記載の方法。 - 前記処理システムは、通信ネットワークを介して一つ又は複数の構成要素処理システムに接続され、各構成要素処理システムは各構成要素を実装するように成され、
前記方法は、
a)前記サービス要求から各エージェントの接続アドレスを決定し、前記接続アドレスは、構成要素処理システムに配置されたエージェントのアドレスに対応すること、
b)前記エージェントに、前記決定された接続アドレスに従った他のエージェントと協働させること、を含む請求項67に記載の方法。 - 前記データを処理する方法は、
a)データ処理シーケンスに対応する他の構成要素の組み合わせを定義し、及び、
b)前記構成要素の組み合わせを実装すること、を含む請求項64から68のいずれか一つに記載の方法。 - 前記処理システムは、通信ネットワークを介して一つ又は複数の構成要素処理システムに接続され、
各構成要素処理システムは各構成要素を実装するように成され、
前記方法は、前記処理システムに、
a)前記定義された構成要素の組み合わせに従って一つ又は複数のサービス要求を生成させ、及び、
b)前記通信ネットワークを介した、前記サービス要求を各構成要素処理システムに転送させ、それによって各構成要素を実装させること、を含む請求項69に記載の方法。 - a)前記サービスのパフォーマンスのコンテキストを決定し、及び、
b)内容に従って前記データを処理し、それによって前記データ処理をコンテキストに依存させること、を含む請求項64から70のいずれか一つに記載の方法。 - 前記データ処理はコンピュータコードを生成することを含み、
前記コードは、メモリ、スタック及びレジスタを有する処理システムによって実装されるように成され、
前記コンテキストは、
a)前記レジスタ、スタック及びメモリの少なくとも一つの状態、
b)前記定義された構成要素の組み合わせ内の他の構成要素、及び、
c)偶発的要因
の少なくとも一つを含む請求項71に記載の方法。 - a)ディザリング、
b)メッシング、及び
c)遮蔽
の少なくとも一つを行うことによって、前記データ処理を行うことを含む請求項71又は請求項72に記載の方法。 - 構成要素において実現されるサービスを提供する装置であって、
a)前記サービスの提供に対する要求を受け取り、
b)前記受け取った要求に応答して、各構成要素インスタンスを生成し、
c)処理されるデータを受け取り、
d)前記各構成要素インスタンスを使用して前記データを処理し、及び、
e)前記処理されたデータの出力を供給するように成された処理システムを含む装置。 - 請求項69から73のいずれか一つに記載の方法を行うように成される請求項80に記載の装置。
- 構成要素において実現されるサービスを提供するコンピュータプログラムプロダクトであって、
各構成要素はデータを処理する各サービスに対応し、
前記コンピュータプログラムプロダクトは、適切な処理システムで実行されると、前記処理システムに、請求項64から73のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。 - 定義された構成要素の組み合わせの実装によってデータを処理する方法であって、各構成要素はデータを処理する各サービスに対応し、
前記方法は、
a)前記構成要素の組み合わせから、
i)実装する構成要素、
ii)各構成要素のポート間の接続、
iii)前記構成要素が必要とするあらゆるデータを決定し、
b)各構成要素毎に、
i)前記各サービスの提供を要求するサービス要求を生成し、
ii)前記サービス要求を、前記各構成要素を実装するエンティティに転送し、前記エンティティは、前記サービス要求に応答して前記各サービスを行い、それによって前記データ処理を行えるようにすること、を含む方法。 - 処理システムを使用することを含み、
前記方法は、前記処理システムに、
a)構成要素サーバの生成させ、
b)前記構成要素サーバに、
i)前記定義された構成要素の組み合わせに対応する構成要素インスタンスを実装させ、
ii)前記サービス要求を生成させ、
iii)前記構成要素インスタンスのあらゆるポートに関連するエージェントを生成させ、及び、
iv)前記エージェントが、前記定義された接続に従って他の構成要素のエージェントと協働させ、それによってデータを前記構成要素のポート間で転送できるようにすること、を行わせることを含む請求項77に記載の方法。 - 前記処理システムは、通信ネットワークを介して一つ又は複数の構成要素処理システムに接続され、
各構成要素処理システムは各構成要素を実装するように成され、
前記方法は、
a)前記定義された構成要素の組み合わせに従った、各構成要素の各エージェントの接続アドレスの決定、前記接続アドレスは構成要素処理システムに配置されたエージェントのアドレスに対応すること、
b)前記サービス要求の生成、前記サービス要求は、
i)必要なあらゆるデータ、及び
ii)各エージェントの接続アドレスの指示を含むこと、を含む請求項77又は請求項78に記載の方法。 - 前記処理システムは、構成要素の仕様を記憶する記憶装置を備え、
前記方法は、前記構成要素の仕様に従って前記接続アドレスの決定を含む請求項85に記載の方法。 - 定義された構成要素の組み合わせを実装することによってデータを処理する装置であって、
各構成要素はデータを処理する各サービスに対応し、
前記装置は、
a)前記構成要素の組み合わせから、
i)実装する構成要素、
ii)各構成要素のポート間の接続、
iii)前記構成要素が必要とするあらゆるデータを決定し、
b)各構成要素毎に、
i)前記各サービスの提供を要求するサービス要求を生成し、
ii)前記サービス要求を前記各構成要素を実装するエンティティに転送し、前記エンティティは前記要求に応答して前記各サービスを行い、それによって前記データ処理を実行させるように成された処理システムを含む装置。 - 請求項77から80のいずれか一つに記載の方法を行うように成される請求項81に記載の装置。
- 定義された構成要素の組み合わせを実装することによってデータを処理するコンピュータプログラムプロダクトであって、
各構成要素はデータを処理する各サービスに対応し、
前記コンピュータプログラムプロダクトは、適した処理システムで実行されると、前記処理システムに請求項87から80のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。 - 処理システムを使用して構成要素の組み合わせを定義する方法であって、
各構成要素はデータを処理する各サービスを表し、
前記方法は、
a)組み合わせる一つ又は複数の構成要素の選択、
b)前記処理システムに、
i)選択された各構成要素のグラフィック表現をディスプレイ上に生成させ、及び
ii)前記グラフィック表現を処理させ、それによって、前記構成要素のポート間の接続を定義することを含む方法。 - 前記処理システムに、
a)前記表現内の前記構成要素を表す構成要素データと、
b)前記構成要素間の前記接続を表す接続データと、を生成させることをさらに含む請求項84に記載の方法。 - a)前記処理システムにルート構成要素の表示を生成させ、及び、
b)前記ルート構成要素の任意のポートと前記構成要素のポートとの間の接続を定義すること、を含む請求項84又は請求項85に記載の方法。 - 前記処理システムに、前記グラフィック表現を処理させ、前記ルート構成要素のいずれか一つに関連する下位構成要素を表示させることを含む請求項84から86のいずれか一つに記載の方法。
- 前記処理システムに、ユーザからの入力コマンドに応答して前記グラフィック表現を処理させることを含む請求項84から87のいずれか一つに記載の方法。
- 構成要素を組み合わせる装置であって、各構成要素はデータを処理する各サービスを表し、
前記装置は、
a)組み合わせる一つ又は複数の構成要素を選択し、
b)選択された各構成要素のグラフィック表現をディスプレイ上に生成し、及び、
c)前記グラフィック表現を処理し、それによって前記構成要素のポート間に接続を定義するように成された処理システムを含む装置。 - 請求項84から88のいずれか一つに記載の方法を実行するように成される請求項89に記載の構成要素を組み合わせる装置。
- 処理システムを使用して構成要素を組み合わせるコンピュータプログラムプロダクトであって、
各構成要素はデータを処理する各サービスを表し、
前記コンピュータプログラムプロダクトは、適切な処理システムで実行されると、前記処理システムに請求項84から88のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。 - コンテキストに依存するデータ処理を実行する方法であって、
a)所望のデータ処理を行う複数の技術を決定し、
b)前記決定された技術のそれぞれを実現する構成要素を定義し、及び、
c)使用に際して、結果得られる処理済みデータが前記コンテキストに依存するように、前記コンテキストに従って前記技術のうちの選択された一つの技術を行うこと、を含む方法。 - a)前記コンテキストを決定し、
b)前記コンテキストに従って前記複数の技術の中から一つの技術を選択し、及び、
c)前記データ処理を行うこと、を含む請求項92に記載の方法。 - a)前記構成要素によって実現されるサービスの実装を要求するサービス要求を受け取り、及び、
b)前記サービス要求から前記コンテキストを決定すること、を含む請求項93に記載の方法。 - 前記構成要素は、データ処理シーケンスを定義する構成要素の組み合わせの一部として実装され、
前記方法は、前記構成要素の組み合わせ中の他の構成要素から前記コンテキストを決定することを含む請求項93又は請求項94に記載の方法。 - 前記構成要素の各ポートに関連するエージェントを提供することを含み、
前記エージェントは、前記構成要素の組み合わせにおいて定義される接続に従って他の構成要素のエージェントと協働するように成され、それによってデータを前記構成要素の前記ポート間で転送できるようにし、
前記方法は、前記エージェントの一つに、別の構成要素からコンテキスト指示を受け取らせることを含む請求項95に記載の方法。 - 前記データ処理は、メモリ、スタック及びレジスタを有する処理システムによって実行されるように成されたコンピュータコードを生成するにあたって使用され、
前記コンテキストは、
a)レジスタ、
b)スタック、
c)メモリ、及び、
d)コードの位置
の少なくとも一つの状態を含む請求項92から96のいずれか一つに記載の方法。 - 確率変数を決定し、前記確率変数に従って前記技術の一つを選択することを含む請求項98から103のいずれか一つに記載の方法。
- 前記構成要素は、データ処理シーケンスを定義する構成要素の組み合わせの一部として実装され、前記構成要素は各エンティティによって実装され、
前記データ処理は複数のデータ処理ステップを含み、
前記方法は、一つ又は複数の他のエンティティとネゴシエートすることであって、それによって前記データ処理ステップのうちの一つ又は複数を他のエンティティに行わせることを含む請求項98から104のいずれか一つに記載の方法。 - コンテキストに依存したデータの処理を実行する装置であって、
a)所望のデータ処理を行う複数の技術の決定、
b)前記決定された技術のそれぞれを実現する構成要素の定義、及び、
c)結果得られる処理済みデータが前記コンテキストに依存するように、前記コンテキストに従って前記技術のうちの選択された一つの技術を行うように成された処理システムを含む装置。 - 前記処理システムは請求項92から99のいずれか一つに記載の方法を実行するように成される請求項100に記載の装置。
- 処理システムを使用してコンテキストに依存したデータの処理を実行するコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項92から99のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- 構成要素に基づいたデータ処理において使用するエージェントを実装する方法であって、
a)エージェントの指示を受け取り、
b)エージェントを生成し、及び、
c)前記エージェント指示に従って、前記エージェントに別のエージェントとの接続を確立させること、を含む方法。 - 前記エージェントは前記構成要素のポートに関連付けられ、
前記方法は、
a)前記エージェントを協働させてデータタイプを決定し、及び、
b)前記データを、前記決定されたデータタイプに従って前記ポート間で転送させること、を含む請求項103に記載の方法。 - 各エージェントは、取り扱うことのできる各データタイプを定義した関連するエージェント仕様を有し、
前記方法は、
a)前記エージェント仕様を比較し、及び、
b)比較の成功に応答して前記データタイプを決定すること、を含む請求項104に記載の方法。 - 前記エージェントは、通信ネットワークを介して各構成要素を実装する一つ又は複数の他の構成要素処理システムに接続された各構成要素処理システムによって実装され、前記エージェントの指示はネットワークアドレスの形式である請求項105に記載の方法。
- a)前記エージェントの、第1及び第2の他のエージェントのそれぞれへの接続を要求する第1及び第2のエージェントの指示を受け取り、
b)前記エージェントに、前記第1及び第2のエージェントの指示を前記第1及び第2のエージェントのそれぞれに提供させ、それによって前記第1及び第2の他のエージェントを相互接続させること、を含む請求項105に記載の方法。 - a)前記第1のエージェントの指示を受け取り、
b)前記エージェントを前記第1の他のエージェントに接続し、
c)前記第2のエージェント指示を受け取り、
d)一時的エージェントを生成し、
e)前記一時的エージェントを前記第2の他のエージェントに接続し、
f)前記第1及び第2の他のエージェントを、
i)前記第1のエージェントの指示を前記一時的エージェントから前記第2の他のエージェントに転送し、
ii)前記第2のエージェントの指示を前記エージェントから前記第1の他のエージェントに転送し、及び、
iii)前記エージェント及び前記一時的エージェントを終了すること、
によって接続させること、を含む請求項107に記載の方法。 - 各エージェントには各構成要素が関連付けられ、
前記方法は、構成要素処理システムを使用して前記エージェントを実装することを含む請求項103から108のいずれか一つに記載の方法。 - 前記構成要素処理システムに、
a)各構成要素インスタンスを実装する構成要素サーバを生成させ、及び、
b)前記構成要素サーバに前記エージェントを実装させること、を行わせることを含む請求項109に記載の方法。 - 前記処理システムは、通信ネットワークを介して一つ又は複数の他の処理システムに接続され、
前記方法は、
a)受け取ったサービス要求に従って構成要素インスタンスを生成し、前記サービス要求は、ネットワークアドレスの形態の前記エージェント指示を含むこと、
b)前記構成要素インスタンスに関連する任意のエージェントを生成し、及び、
c)前記エージェントに、前記各ネットワークアドレスに従って他の任意のエージェントに接続させること、を含む請求項110に記載の方法。 - 前記エージェントに、
a)別のエージェントとの前記接続を介してデータを受け取らせ、
b)前記受け取ったデータに従って略図を決定させ、前記略図は前記構成要素を実装するために使用されること、を行わせることを含む請求項103から111のいずれか一つに記載の方法。 - エージェントヘッダ及びエージェントペイロードを生成することを含み、
前記エージェントヘッダは、前記エージェントを別の構成要素に転送させ、それによって接続を確立できるようにするルーティング情報を含み、
前記ペイロードは、転送されるデータを含む請求項103から112のいずれか一つに記載の方法。 - 構成要素に基づいたデータ処理において使用されるエージェントを実装する装置であって、
a)エージェントの指示の受け取り、
b)エージェントを生成し、及び、
c)前記エージェントの指示に従って、前記エージェントに別のエージェントとの接続を確立させること、を行う処理システムを含む装置。 - 前記処理システムは請求項103から113のいずれか一つに記載の方法を実行するように成される請求項114に記載の装置。
- 構成要素に基づいたデータ処理において使用されるエージェントを実装するコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項103から113のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- データ処理サービスを提供する動的な構成要素を提供する方法であって、
a)実行されるサービスを決定し、
b)前記サービスを行う少なくとも二つの方法を決定し、
c)受け取ったデータに従って前記方法の中から一つを選択する方法を決定し、及び、
d)前記データ処理サービスを実現する構成要素を定義する構成要素の仕様を生成すること、を含む方法。 - 前記サービスを行う方法は各構成要素を利用し、
前記方法は、
a)前記所望のサービスを実装する構成要素を選択し、
b)構成要素略図を定義し、前記構成要素略図は、少なくとも、
i)前記サービスを行う各方法の任意の共通部分を表す第1の略図部、
ii)前記サービスを行う各方法の任意の異なる部分を表す少なくとも二つの第2の略図部、
iii)前記第2の略図部分をそれぞれ一つ選択するセレクタエージェント、を含むこと、を含む請求項117に記載の方法。 - 各入力又は出力に関連するエージェントを定義することを含み、前記エージェントは、前記定義された相互接続に従って別の構成要素のエージェントと協働するように成され、それによって前記構成要素のポート間でデータを転送できるようにする請求項118に記載の方法。
- データ処理サービスを提供する動的構成要素を提供する装置であって、
a)実行されるサービスを決定し、
b)前記サービスを行う少なくとも二つの方法を決定し、
c)受け取ったデータに従って前記方法の中から一つを選択する方法を決定し、及び、
d)前記データ処理サービスを実現する構成要素を定義する構成要素の仕様を生成する処理システムを含む装置。 - 前記処理システムは請求項117から119のいずれか一つに記載の方法を行うように成される請求項120に記載の装置。
- データ処理サービスを提供する動的構成要素を提供するコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項117から119のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- 処理システムを使用して動的構成要素において実現されるサービスを提供する方法であって、
前記処理システムに、
a)サービス要求を受け取らせ、
b)前記受け取ったサービス要求に応答して、各構成要素インスタンスを生成させ、
c)処理されるデータを受け取らせ、
d)前記受け取ったデータに従って前記データを処理する方法を選択させ、
e)前記各構成要素インスタンスを使用して前記データを処理させ、及び、
f)前記処理されたデータを出力に供給させること、を含む方法。 - 前記構成要素は複数のエージェントを含み、
前記方法は、前記処理システムに、前記構成要素の各入力及び出力に関連するエージェントを生成させることを含み、
前記エージェントは、他の構成要素のエージェントと協働するように成され、それによって前記入力においてデータを受け取り、かつ前記出力からデータを出力できるようにする請求項123に記載の方法。 - a)前記サービス要求から他の構成要素との接続を決定し、及び、
b)前記決定された接続に従って、前記エージェントに他の構成要素のエージェントと協働させること、を含む請求項124に記載の方法。 - 前記構成要素インスタンスは、少なくとも、
a)前記サービスを行う各方法の任意の共通部分を表す第1の略図部、
b)前記サービスを行う各方法の任意の異なる部分を表す少なくとも二つの第2の略図部、及び、
c)前記第2の略図部分のそれぞれ一つを選択するセレクタエージェント、
を含む構成要素略図によって定義され、
前記方法は、
i)前記第1の略図部分の少なくもいくらかを実装し、
ii)前記セレクタエージェントに前記第2の略図部分のうちの一つを選択させ、及び、
iii)前記略図部分の残りの部分を実装すること、を含む請求項124又は125に記載の方法。 - 前記処理システムは、通信ネットワークを介して一つ又は複数の構成要素処理システムに接続され、
各構成要素処理システムは各構成要素を実装するように成され、
前記方法は、
a)前記定義された構成要素の組み合わせに従って、一つ又は複数のサービス要求を生成し、及び、
b)前記通信ネットワークを介して前記サービス要求を各構成要素処理システムに転送し、それによって各構成要素を実装させること、を含む請求項128に記載の方法。 - 処理システムを使用して動的構成要素において実現されるサービスを提供する装置であって、
前記処理システムは、
a)サービス要求を受け取り、
b)前記受け取ったサービス要求に応答して、各構成要素インスタンスを生成し、
c)処理されるデータを受け取し、
d)前記受け取ったデータに従って前記データを処理する方法を選択し、
e)前記各構成要素インスタンスを使用して前記データを処理し、及び、
f)前記処理されたデータを出力に供給する、ように成される装置。 - 前記処理システムは請求項123から127のいずれか一つに記載の処理システムを使用して動的構成要素において実現されるサービスを提供する方法を実行するように成される請求項128に記載の装置。
- 処理システムを使用して動的構成要素において実現されるサービスを提供するコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項123から127のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- 構成要素に基づいたデータ処理スキームにおいて二つの各構成要素間に複数のエージェントの接続を提供する方法であって、
a)各構成要素にバンドリング下位構成要素を提供し、及び、
b)接続を定義し、前記接続は、
i)前記バンドリング下位構成要素の第1のエージェント及び前記各構成要素の各エージェント、及び、
ii)各バンドリング下位構成要素の第2のエージェントとの間のものであること、を含む方法。 - a)前記定義された接続に従って、前記エージェントに、定義された接続を確立させ、
b)前記第2のエージェントに、前記二つの構成要素の複数のエージェントの詳細を交換させ、及び、
c)前記交換された詳細に従って、前記二つの構成要素のエージェントを相互接続させること、を含む請求項137に記載の方法。 - 各エージェントは各アドレスを有し、
前記方法は、
a)各バンドリング下位構成要素に、前記各構成要素の前記複数のエージェントのアドレス及び他のバンドリング下位構成要素の前記第2のエージェントのアドレスを提供し、
b)前記各エージェントアドレスに従って、各バンドリング下位構成要素の前記第1のエージェントに、前記各構成要素の前記複数のエージェント及び前記他のバンドリング下位構成要素の前記第2のエージェントに接続させ、
c)前記第2のエージェントに前記第1のエージェントのアドレスを交換させ、
d)前記第1のエージェントのそれぞれに関連する第1の一時的エージェントを生成し、
e)前記交換されたアドレスに従って、前記第1の一時的エージェントを相互接続し、
f)前記第1のエージェント及び第1の一時的エージェントに、各構成要素上の前記複数のエージェントのアドレスを交換させ、及び、
g)前記交換されたアドレスに従って、前記複数のエージェントを接続させること、を含む請求項132に記載の方法。 - 前記エージェントをバンドリングする方法は、
前記第1のバンドリング構成要素に、
a)各エージェントからペイロード及びヘッダを含むメッセージを取得させ、
b)各メッセージから前記ペイロードを抽出させ、
c)前記ペイロードを連結させ、及び、
d)前記受け取ったメッセージの前記ヘッダに基づいて、前記連結されたペイロード及びヘッダを含むメッセージを生成させること、を含む請求項132に記載の方法。 - 前記エージェントのバンドリング解除する方法は、
前記第2のバンドリング構成要素に、
a)前記バンドリング構成要素からペイロード及びヘッダを含むメッセージを取得させ、
b)前記メッセージから前記ペイロードを抽出させ、
c)前記ペイロードを複数のペイロードに連結解除させ、及び、
d)前記複数のエージェントのそれぞれに各メッセージを生成させ、各メッセージは、前記受け取ったメッセージの前記ヘッダに基づいて、各ペイロード及びヘッダを含むこと、を含む請求項134に記載の方法。 - バンドリング構成要素をシーケンス内に配置し、それによって階層バンドルを定義することを含む請求項131から135のいずれか一つに記載の方法。
- バンドリング構成要素を直列的に配置し、それによって前記バンドル内に異なるレベルを定義することを含む請求項136に記載の方法。
- バンドリング構成要素を並列的に配置し、それによって階層レベル内にエージェントのグループを定義することを含む請求項136に記載の方法。
- 処理システムを使用して、構成要素に基づいたデータ処理スキームにおいて二つの各構成要素間に複数のエージェントの接続を提供する装置であって、
前記処理システムは、
a)各構成要素にバンドリング下位構成要素を提供し、及び、
b)相互接続し、
i)バンドリング構成要素エージェントを前記各構成要素内の前記複数のエージェントの各エージェントに相互接続し、及び、
ii)各バンドリング下位構成要素の各エージェントを相互接続するように成される装置。 - 前記処理システムは請求項131から138のいずれか一つに記載の方法を実行するように成される請求項149に記載の装置。
- 処理システムを使用して、構成要素に基づいたデータ処理スキームにおいて二つの各構成要素間に複数のエージェントの接続を提供するコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項131から138のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- ルート処理システム及び複数の構成要素処理システムを使用してコードを構築する方法であって、
各構成要素処理システムは、略図に定義された各構成要素を実装するように成され、
前記方法は、
a)前記ルート処理システムに、ペイロードを含むエージェントを生成させ、
b)前記エージェントをシーケンス内の複数の構成要素に、最後の構成要素から最初の構成要素へと転送し、
c)前記最初の構成要素を前記エージェントと対話させ、それによって前記ペイロードにデータを提供し、
d)前記エージェントを前記最初の構成要素から次の構成要素へ転送し、
e)前記次の構成要素を前記エージェントと対話させ、それによって前記ペイロードにデータを提供し、
f)前記最後の構成要素が前記ペイロードと対話するまで、ステップ(d)及び(e)を繰り返し、及び、
g)前記エージェントを前記ルート処理システムに転送し、それによってコードを提供すること、を含む方法。 - 前記構成要素のうちの一つ又は複数と対話して前記構成要素にデータを提供するさらなる構成要素を含む請求項142に記載の方法。
- 前記エージェントはエージェントをバンドリングしたものであり、
前記方法は、
a)バンドリング構成要素を提供し、
b)オプションとして、前記定義された構成要素略図に従って、前記エージェントバンドルを前記バンドリング構成要素に転送し、
c)前記バンドルを選択的にバンドリング解除し、及び、
d)前記エージェントのうちの選択されたエージェントを前記構成要素に転送し、それによって前記構成要素が前記各エージェントと対話できるようにすること、を含む請求項142又は請求項143に記載の方法。 - 前記エージェントバンドルは階層バンドルである請求項144に記載の方法。
- 前記バンドル内の前記エージェントは前記コードの異なる部分を表し、
前記方法は、
a)前記バンドルを前記ルート処理システムにおいて受け取り、及び、
b)前記ペイロードから前記データを抽出し、それによって前記コードを形成すること、を含む請求項144又は請求項145に記載の方法。 - コードを構築する装置であって、ルート処理システム及び複数の構成要素処理システムを備え、
各構成要素処理システムは、略図に定義された各構成要素を実装するように成され、
前記装置は請求項142から146のいずれか一つに記載の方法を実行するように成される装置。 - 処理システムを使用して、略図に従ってコードを構築するコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項142から146のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
- ユーザにデータを処理させる方法であって、
a)各エンティティによって実装される各データ処理サービスをそれぞれ表す複数の構成要素の詳細を提供し、
b)ユーザに、データ処理サービスシーケンスを定義する構成要素の組み合わせを定義させ、及び、
c)前記定義された組み合わせに従って前記データ処理サービスを行わせること、を含む方法。 - a)ユーザに構成要素を選択させ、及び、
b)前記データ処理サービスをそれぞれ定義し、選択された各構成要素の構成要素の仕様及び各ポートにおいて受け取る又は各ポートから出力するデータを定義するポート仕様をユーザに提供すること、とを含む請求項149に記載の方法。 - 各構成要素を実装するエンティティから前記構成要素の前記構成要素の仕様を得ることを含む請求項150に記載の方法。
- 通信ネットワークを介してユーザエンドステーションに接続された一つ又は複数の処理システムを使用して実装され、
a)前記ユーザに前記エンドステーションを使用して前記構成要素を選択させ、及び、
b)前記構成要素の仕様を前記処理システムの一つ又は複数から前記エンドステーションに転送すること、を含む請求項150又は請求項151に記載の方法。 - ユーザに、
a)前記構成要素を実装する前記エンティティの指示、
b)前記エンティティの地理的場所の指示、
c)前記構成要素の実装期間の指示、
d)前記各構成要素を実装に関連する費用の指示、及び、
e)前記構成要素の出来のよさを示す格付け、
の少なくとも一つを含むパフォーマンス情報に従って前記構成要素を選択させることを含む請求項150から請求項152のいずれか一つに記載の方法。 - a)前記エンドステーションに、前記構成要素の組み合わせに従ってサービス要求を生成させ、及び、
b)前記サービス要求をエンティティ処理システムに転送し、それによって前記エンティティ処理システムが、前記構成要素によって定義される前記データ処理を行えるようにすること、を含む請求項150から請求項153のいずれか一つに記載の方法。 - 前記構成要素の組み合わせは前記構成要素間の接続を定義し、
前記サービス要求は、前記エンドステーションが前記構成要素の仕様から決定した接続情報を含む請求項154に記載の方法。 - 前記構成要素処理システムに、
a)前記受け取ったサービス要求に従って、一つ又は複数の構成要素インスタンスを生成させ、
b)各構成要素インスタンスに、
i)他の構成要素と協働させてデータを送らせ、及び/又は、データを受け取らせ、及び、
ii)前記要求されたデータ処理サービスを行わせる、ことを含む請求項155に記載の方法。 - ユーザにデータを処理させる装置であって、
a)各エンティティによって実装される各データ処理サービスをそれぞれ表す複数の構成要素の詳細を提供し、
b)ユーザに、データ処理サービスシーケンスを定義する構成要素の組み合わせを定義させること、及び、
c)前記定義された組み合わせに従って前記データ処理サービスを実行させること、を行うシステムを含む装置。 - 請求項150から156のいずれか一つに記載の方法を実行するように成される請求項157に記載の装置。
- ユーザにデータを処理させるコンピュータプログラムプロダクトであって、適切な処理システムで実行されると、前記処理システムに請求項150から156のいずれか一つに記載の方法を実行させるコンピュータコードを含むコンピュータプログラムプロダクト。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2002952510A AU2002952510A0 (en) | 2002-11-06 | 2002-11-06 | Code genertation |
US42485902P | 2002-11-08 | 2002-11-08 | |
AU2003901926A AU2003901926A0 (en) | 2003-04-22 | 2003-04-22 | Code generation |
PCT/AU2003/001474 WO2004042639A1 (en) | 2002-11-06 | 2003-11-06 | Code generation |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011274319A Division JP5456756B2 (ja) | 2002-11-06 | 2011-12-15 | 構成要素を使用してコンピュータによる実行可能なコードを生成する方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006506757A true JP2006506757A (ja) | 2006-02-23 |
Family
ID=32314656
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005502080A Pending JP2006506757A (ja) | 2002-11-06 | 2003-11-06 | コード生成 |
JP2011274319A Expired - Lifetime JP5456756B2 (ja) | 2002-11-06 | 2011-12-15 | 構成要素を使用してコンピュータによる実行可能なコードを生成する方法及び装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011274319A Expired - Lifetime JP5456756B2 (ja) | 2002-11-06 | 2011-12-15 | 構成要素を使用してコンピュータによる実行可能なコードを生成する方法及び装置 |
Country Status (4)
Country | Link |
---|---|
EP (3) | EP2385463B1 (ja) |
JP (2) | JP2006506757A (ja) |
CA (1) | CA2503629C (ja) |
WO (1) | WO2004042639A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012230710A (ja) * | 2004-05-20 | 2012-11-22 | Cord Bally Corp Pty Ltd | 計算機が実行可能なコードを生成する方法及び計算機が実行可能なコードを生成するために使用されるコンポーネントを提供する方法 |
US9521209B2 (en) | 2002-11-06 | 2016-12-13 | Code Valley Corp Pty Ltd | Code generation |
US10885016B2 (en) | 2016-09-06 | 2021-01-05 | Kabushiki Kaisha Toshiba | System, client device, server device, and program |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832178B2 (en) | 2002-11-06 | 2014-09-09 | Noel William Lovisa | Service implementation |
US8589861B2 (en) | 2002-11-06 | 2013-11-19 | Code Valley Corp Pty Ltd | Code generation |
RU2722239C1 (ru) * | 2019-11-26 | 2020-05-28 | Общество с ограниченной ответственностью «ПИРФ» (ООО «ПИРФ») | Способ создания и использования формата исполняемого файла с динамическим расширяемым заголовком |
US11570099B2 (en) * | 2020-02-04 | 2023-01-31 | Bank Of America Corporation | System and method for autopartitioning and processing electronic resources |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104981A (ja) * | 1993-09-30 | 1995-04-21 | Hitachi Software Eng Co Ltd | オブジェクトリンク情報を用いたプログラム構築装置 |
US5553282A (en) * | 1994-12-09 | 1996-09-03 | Taligent, Inc. | Software project history database and method of operation |
IL124916A (en) * | 1995-12-15 | 2002-02-10 | Object Dynamics Corp | Method and system for constructing software components |
US5920868A (en) * | 1996-07-03 | 1999-07-06 | Sun Microsystems, Inc. | Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system |
US6401114B1 (en) | 1997-05-01 | 2002-06-04 | Stratum Technologies Corporation | Method and apparatus for dynamic programming across a computer network |
US6256771B1 (en) * | 1997-10-16 | 2001-07-03 | At&T Corp. | Method and apparatus for providing a dynamic service composition software architecture |
US6249905B1 (en) * | 1998-01-16 | 2001-06-19 | Kabushiki Kaisha Toshiba | Computerized accounting system implemented in an object-oriented programming environment |
US6484214B1 (en) * | 1998-03-05 | 2002-11-19 | Mcdonnell Douglas Helicopter Company | Method for distributed object communications based on dynamically acquired and assembled software components |
DE19837871C2 (de) | 1998-08-20 | 2000-06-08 | Manfred Broy | Verfahren zum automatischen Erzeugen eines Programms |
US20010051928A1 (en) * | 2000-04-21 | 2001-12-13 | Moshe Brody | Protection of software by personalization, and an arrangement, method, and system therefor |
US7171693B2 (en) * | 2000-05-12 | 2007-01-30 | Xtreamlok Pty Ltd | Information security method and system |
DE10041072A1 (de) * | 2000-08-22 | 2002-03-14 | Siemens Ag | Verfahren zur automatischen Erzeugung von Programmcode |
US20020055956A1 (en) | 2000-09-08 | 2002-05-09 | Krasnoiarov Boris Andreyevich | Method and system for assembling concurrently-generated content |
US7020868B2 (en) * | 2000-11-22 | 2006-03-28 | General Electric Company | Graphic application development system for a medical imaging system |
EP1211598A1 (en) | 2000-11-29 | 2002-06-05 | Texas Instruments Incorporated | Data processing apparatus, system and method |
CA2440031C (en) * | 2001-02-22 | 2013-07-02 | Accenture Global Services Gmbh | Distributed development environment for building internet applications by developers at remote locations |
EP1246054A1 (en) * | 2001-03-30 | 2002-10-02 | BRITISH TELECOMMUNICATIONS public limited company | Creating software programs from software components |
JP2003005977A (ja) * | 2001-06-26 | 2003-01-10 | Ricoh Co Ltd | ソフトウェア供給システム |
JP2003140895A (ja) * | 2001-11-06 | 2003-05-16 | Ricoh Co Ltd | 組み替え可能なソフトウェアを持つ検査システム |
JP3713466B2 (ja) * | 2002-02-18 | 2005-11-09 | 株式会社東芝 | プログラム作成支援方法、プログラム作成支援プログラム及びプログラム作成支援装置 |
-
2003
- 2003-11-06 EP EP11175797.7A patent/EP2385463B1/en not_active Expired - Lifetime
- 2003-11-06 EP EP11175802A patent/EP2390785A3/en not_active Ceased
- 2003-11-06 EP EP03810334.7A patent/EP1565813B1/en not_active Expired - Lifetime
- 2003-11-06 WO PCT/AU2003/001474 patent/WO2004042639A1/en active Application Filing
- 2003-11-06 JP JP2005502080A patent/JP2006506757A/ja active Pending
- 2003-11-06 CA CA2503629A patent/CA2503629C/en not_active Expired - Lifetime
-
2011
- 2011-12-15 JP JP2011274319A patent/JP5456756B2/ja not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9521209B2 (en) | 2002-11-06 | 2016-12-13 | Code Valley Corp Pty Ltd | Code generation |
US10140098B2 (en) | 2002-11-06 | 2018-11-27 | Noel William Lovisa | Code generation |
JP2012230710A (ja) * | 2004-05-20 | 2012-11-22 | Cord Bally Corp Pty Ltd | 計算機が実行可能なコードを生成する方法及び計算機が実行可能なコードを生成するために使用されるコンポーネントを提供する方法 |
JP2014044748A (ja) * | 2004-05-20 | 2014-03-13 | Cord Bally Corp Pty Ltd | 第1のコンポーネントと第2のコンポーネントとの間のネゴシエーションを実行する方法及びネゴシエーションを実行するコンポーネント |
US10885016B2 (en) | 2016-09-06 | 2021-01-05 | Kabushiki Kaisha Toshiba | System, client device, server device, and program |
Also Published As
Publication number | Publication date |
---|---|
EP1565813A4 (en) | 2009-06-10 |
JP2012104134A (ja) | 2012-05-31 |
EP1565813B1 (en) | 2019-01-09 |
EP2385463A2 (en) | 2011-11-09 |
EP2385463B1 (en) | 2020-04-29 |
EP2385463A3 (en) | 2012-04-25 |
WO2004042639A1 (en) | 2004-05-21 |
EP2390785A3 (en) | 2012-10-24 |
JP5456756B2 (ja) | 2014-04-02 |
CA2503629A1 (en) | 2004-05-21 |
CA2503629C (en) | 2014-07-08 |
EP2390785A2 (en) | 2011-11-30 |
EP1565813A1 (en) | 2005-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589861B2 (en) | Code generation | |
Greenfield et al. | Software factories: assembling applications with patterns, models, frameworks and tools | |
JP5456756B2 (ja) | 構成要素を使用してコンピュータによる実行可能なコードを生成する方法及び装置 | |
US10140098B2 (en) | Code generation | |
US7454399B2 (en) | Application integration system and method using intelligent agents for integrating information access over extended networks | |
Perrouin et al. | Reconciling automation and flexibility in product derivation | |
Ziadi et al. | Software product line engineering with the UML: Deriving products | |
Zimmermann et al. | Combining pattern languages and reusable architectural decision models into a comprehensive and comprehensible design method | |
US20040064805A1 (en) | Enterprise scoped software factory | |
Hausmann et al. | Model-based discovery of Web Services | |
US8196089B2 (en) | Pattern-based development of computer system solutions | |
Brown et al. | On components and objects: the foundations of component-based development | |
WO2006122494A1 (fr) | Procede et systeme de description et de mise au point d'un systeme d'application a comportement dynamique | |
Lytra et al. | Supporting consistency between architectural design decisions and component models through reusable architectural knowledge transformations | |
Jézéquel | Model-driven engineering for software product lines | |
Binder et al. | Towards a standards-based domain specific language for industry 4.0 architectures | |
Srinivasan et al. | CODE: a development environment for OWL-S Web services | |
Lytra et al. | Constraint-based consistency checking between design decisions and component models for supporting software architecture evolution | |
Kapova et al. | Application of advanced model-driven techniques in performance engineering | |
US20120278787A1 (en) | Collaborative realtime planning using a model driven architecture and iterative planning tools | |
Eslamichalandar et al. | Service composition adaptation: An overview | |
Zúñiga-Prieto et al. | An incremental and model driven approach for the dynamic reconfiguration of cloud application architectures | |
Bresciani et al. | The Tropos analysis process as graph transformation system | |
Ali et al. | Perspectives to promote modularity, reusability, and consistency in multi-language systems | |
AU2003275766B2 (en) | Code generation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051109 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061017 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091215 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100310 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100317 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100608 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100907 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100914 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110118 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110408 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110415 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110517 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110719 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110719 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110816 Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110816 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20111220 |