JP5174320B2 - トポロジメタデータおよびナビゲーションパスを用いる規定ナビゲーション - Google Patents

トポロジメタデータおよびナビゲーションパスを用いる規定ナビゲーション Download PDF

Info

Publication number
JP5174320B2
JP5174320B2 JP2005351274A JP2005351274A JP5174320B2 JP 5174320 B2 JP5174320 B2 JP 5174320B2 JP 2005351274 A JP2005351274 A JP 2005351274A JP 2005351274 A JP2005351274 A JP 2005351274A JP 5174320 B2 JP5174320 B2 JP 5174320B2
Authority
JP
Japan
Prior art keywords
navigation
topology
navigation path
application
node
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 - Fee Related
Application number
JP2005351274A
Other languages
English (en)
Other versions
JP2006190261A (ja
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006190261A publication Critical patent/JP2006190261A/ja
Application granted granted Critical
Publication of JP5174320B2 publication Critical patent/JP5174320B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、一般的にコンピュータプログラミングに関し、特に、アプリケーション開発を容易にするシステムおよび方法に関する。
ビジネス上の手続きおよび/または予測を能率化するため、ビジネスアプリケーションプログラムを複数の産業に提供する傾向が続いている。ビジネスアプリケーションソフトウエアは、陽におよび/または暗に関連付けられる多様なビジネスデータにわたって、ナビゲートおよび/または探索を提供する。ビジネスアプリケーションは典型的に、圧倒的な量の情報と関連しており、本質的に無限量のこの情報は相互関係を含む。例えば、典型的な中規模マーケットアプリケーションは、伝票、表、在庫品、チャート、グラフなどを含み、大多数のデータは明白にも暗黙にも相互に絡み合っている。具体的には、データ(例えば、請求伝票、従業員名簿、注文伝票など)は、例えば、給与支払申請、売上高解析、出荷申請、賞与報告、原価解析などを含むビジネスアプリケーションとの関連で使用することができる。
一般的に、ビジネスアプリケーション内の膨大な量の情報を発見および/または探索するには、ハイパーメディアシステムを利用する。このようなハイパーメディアシステムは、その中で従来のコンテキストクエリでなくナビゲーションを通じてアクセスと探索を完遂する情報システムである。さらに、このようなシステムは、アプリケーションの内部または外部のアプリケーションおよびリソースに対してリンクを作成して維持する。これらのリンクにより、ユーザはクエリ結果に関連する追加情報を取り出すことができる。例えば、消費者名のリストに関するクエリは、特定顧客に関する注文のリストを取り出す別のクエリに対するリンクも提供する。
ハイパーメディアシステムに伴う一つの利点は、複合的で相互参照される情報の本体を、ノードとリンクのネットワーク(例えば、レコードを互いにツリー構造でリンクする階層データベースモデル)として格納する能力である。ナビゲーションの範囲内でクエリを発行することは、データアクセスに関するクエリおよび相互関係に関するクエリと定義することができる。例えば、データアクセスに関するクエリを、リソースがデータである特定の型のノードに対するデータアクセスを提供するために利用することができる。これに対し、相互関係に関するクエリは、例えば、メタデータおよび/またはキーワードに基づいてデータの相互関係を提供する。言い換えると、用語「クエリ」は、データ(例えば、プロジェクトデータ)を入手することを指すが、これに対し用語「ナビゲーション」は、関連データ(例えば、プロジェクトの関係およびデータ)を入手することを指す。データ間の関係をナビゲーション投影して把握することは、データの「非線形」探索と呼ばれる。
ハイパーメディアシステム内でデータを非線形探索する間、ユーザは概して、膨大な認識オーバーヘッドにより迷ったり方向感覚を失ったりすることがある。本質的にユーザは、ナビゲーションデータ探索の間に発見される膨大な量の関連リンクに圧倒されてしまう。その上、ハイパーメディアシステム内でのナビゲーションは、従来ランタイム間に行われて来た。コードの大部分は必須であって、単一用途のモジュールをもたらし、転じてこれらはランタイムの間に、極めて効率が悪く遅いアプリケーションを生じる結果となっている。
以下では、本発明のいくつかの態様を基本的に理解するため、本発明の簡単な要約を提示する。この要約は、本発明の広範な概観ではない。本発明のキーまたは重要な要素を確認するものでも、本発明の範囲を線引きするものでもない。この唯一の目的は、本発明のいくつかの概念を簡単な形で、後に提示するより詳細な記述に対する準備として、提示することである。
本発明は、規定ナビゲーションを利用することによりアプリケーションの開発を容易にするためのシステムおよび/または方法に関する。規定ナビゲーションは、受信するメタデータに基づくトポロジを利用する。この場合、トポロジのサブグラフを表すのにナビゲーションパスを採用する。規定コンポーネントは、設計を行う間にデータを受信することができる。この場合、このようなデータはメタデータ(例えば、ビジネスフレームワークに関するメタデータ)であることができる。アプリケーションの設計を行う間に、規定コンポーネントは、受信するデータに基づいて、関連ナビゲーションパス有するトポロジを作成することができる。このトポロジおよびナビゲーションパス(例えば、NPath)は、アプリケーション開発を効率化する規定ナビゲーションを、設計を行う間に使用できる。その上、規定コンポーネントは、線形、星形および/またはツリーのようなナビゲーションを提供することができる。
本発明の一態様によると、規定コンポーネントは、ナビゲーションパスプロバイダインフラストラクチャを利用する。このインフラストラクチャは、アプリケーションおよび/またはナビゲーションパスクライアントに対しサービスを提供するナビゲーションパスプロバイダを、少なくとも1つ含む。言い換えると、ナビゲーションパスプロバイダインフラストラクチャは、クライアントアプリケーションと各種ナビゲーションパスプロバイダとの間の通信を管理する。その上、ナビゲーションパスプロバイダ(単数または複数)は、変換および/または情報抽出機構の何れかを通じてコンテキストノードにアクセスする各種のリソースプロバイダであることができる。
本発明のさらに別の態様によると、特定のトポロジは、自動、手動、またはそれらの組合せにより作成することができる。規定コンポーネントは、トポロジ作成において自動的に利用されるデータ(例えば、エンティティグラフ、ビジネスインテリジェンスメタデータ、およびビジネスインテリジェンスジャーナル、…)を受信する。その上、トポロジは、2つのエンティティ間の論理関係を表すリンクを追加するユーザインターフェースツールを用いることにより、手動で作成することができる。さらに、トポロジは、自動技術と手動技術の組合せを用いて作成することもできる。
本発明のさらに別の態様によると、トポロジに基づいてオブジェクトモデルであるナビゲーションパス式を作成することができる。ナビゲーションパス式には要素と、様々なサブツリーを削除または含む機能を提供するフィルタを追加することができる。さらに、ナビゲーションパス式を要素に追加して、ナビゲーションパスをプログラム的に取り除くことができる。さらに、ナビゲーションパスを、ナビゲーションルート(単数または複数)を記述するメタデータの集合として永続させるようなコードを生成できる。メタデータの集合は、コードの作成に利用することができる。この場合、ナビゲーションパス式は、強い型付き方法で組み立てることができる。
本発明のさらに別の態様によると、規定コンポーネントは、コンピュータソフトウェア間通信を提供するナビゲーションパスクライアントのアプリケーションプログラムインターフェース(API)と相互作用をする。このナビゲーションパスAPIは、ユーザインターフェース(UI)バインディングを利用できる。このUIバインディングは、NPath要素、または呼び出されるノードと、ユーザインターフェースコンポーネントとの間のバインディングを可能にし、メタデータにより管理される。さらに、ナビゲーションパスクライアントAPIは、アプリケーションに関するナビゲーションの履歴を記録するジャーナルを利用することができる。ジャーナルは、利用されるナビゲーションパスに無関係にナビゲーションの履歴を記録する。したがって、トポロジ内の複雑なナビゲーション履歴は、アプリケーション内のデータの様々な詳細およびデータのナビゲーション(例えば、発見すること)に対する様々な洞察を提供する。ジャーナルは、アプリケーションに規定ナビゲーションを提供する、トポロジの基盤として利用することができる。
以下の記述および添付図面は、本発明のある例証的な側面を詳細に記述する。これらの側面は、しかしながら、本発明の原理が採用される方法を少数だけ表示するのみで、本発明は、これら側面およびそれらの等価物のすべてを含むことを目的とする。本発明のその他の利点および新規の特徴は、図面との関係で考察するとき、以下の詳細説明により明らかになるであろう。
本出願書において使用するとき、用語「コンポーネント」、「システム」等は、ハードウエア、(例えば、実行中の)ソフトウエアおよび/またはファームウエア何れかのコンピュータ関連実体を指すことを意味する。例えば、コンポーネントは、プロセッサ上で実行しているプロセス、プロセッサ、オブジェクト、実行可能体、プログラムおよび/またはコンピュータであることができる。例として、サーバ上で実行しているアプリケーションおよびサーバは、コンポーネントであることができる。1つまたは複数のコンポーネントは、プロセス内に存在することが出来、コンポーネントは、1つのコンピュータ上に局在するかおよび/または2つ以上のコンピュータの間に分散させることができる。
本発明を、図面を参照して記述する。ここで、全体にわたって、同じ参照番号は同じ要素を指す。以下の記述において、説明上の目的で、本発明を徹底的に理解するために多数の特別な詳細項目が提供されている。しかしながら、本発明は、これらと区別な詳細項目無しで実用されうることは明白である。別の例においては、公知の構造および装置が、本発明の記述を容易にするため、ブロック図の形で示される。
図1に、規定ナビゲーションを用いることにより設計を行う間のアプリケーション開発を容易にするシステム100を示す。規定コンポーネント102は、設計を行う間にメタデータ(例えば、ビジネスコンポーネントに関するメタデータ)でありうるデータを受信することができる。アプリケーション(単数または複数)104の設計の間に、規定コンポーネント102は、受信するデータに基づいて、関連ナビゲーションパス有するトポロジを作成することができる。このトポロジおよびナビゲーションパス(例えば、Npath)は、アプリケーション開発を能率化する規定ナビゲーションを設計時において使用できる。トポロジは、例えば、一意の名前を持つリンクコレクションの、メタデータインスタンスであることができる。ここで、このリンクコレクションは、ノードとリンクオブジェクトのネットワークであり、このネットワークは、メタデータモデルにおけるパス内のトラバース可能オブジェクトのサブセットを表す。このようなノードまたはリンクは、戻って元のメタデータを参照することができる。
規定コンポーネント102によりトポロジが作成されると、ナビゲーションパスが使用される。このナビゲーションパスは、特定のアプリケーション(単数または複数)104の情報トポロジをナビゲートする作用の集合である。このナビゲーションパスはトポロジ上のリンクの逐次的リストであって、受信するデータから作成される一般トポロジのサブグラフを表す。ナビゲーションパスのコンテンツがグラフを定義する一方で、リスト内のリンクオブジェクトの物理的順序は、線形ナビゲーションパスを表す。アプリケーション104は、式を用いてトポロジ内のノードをフィルタすることにより、ナビゲーションパスを用いことができることは理解される筈である。さらに、このようなナビゲーションパスは概して、ルートノード、次の機能(例えば、ナビゲーションパス内の次のノードの探索)をサポートする順序、ユーザインターフェース(UI)プレゼンテーションバインディング、およびナビゲーション型(例えば、線形,星形、またはツリー)の概念を含む。
ナビゲーションパス有するトポロジは、関連リンクを伴う各種のノードを含む。ノードは、ナビゲーションの状態を表すオブジェクトで、ナビゲーション時の他のノードへのリンクおよびデータコンテンツのリストを含む。トポロジ内のノードとナビゲーションパスは、これらに限定されないが、コンテンツが提供されるEntityまたはEntityCube(後述)のようなモデル要素と関連させることができることは理解される筈である。各ノードは、特定のノードに結合されるデータであるノードコンテンツを含む。さらに、ノードに結合するデータは特定のノードに限定されないことは理解される筈である。例えば、データ「A」は、ノード「A」およびノード「B」に結合することができる。その上、ノードコンテンツは、エンティティ,EntityCube、および/またはアクセスに際してデータのコレクションまたは単にリソースを返すクエリであることができる。これらのノードコンテンツは、値と型の情報をさらに提供し、型コンテンツは、ノード値を抽出するとき、実行時に動的に割り当てられる。ノード間のリンクは、互いに相互関連する。リンクは、統一リソース識別子(URI)およびソースと相手先ノードに対するリファレンスを収容することができる。リンクオブジェクトは、関連したエンドノードと同様に、インスタンス化される。
データに基づいて作成されるトポロジおよびナビゲーションパスは、アプリケーション(単数または複数)104内で規定ナビゲーションの使用を容易にする。規定ナビゲーションは、設計を行う間に、発見プロセスを実行時から設計時に移動する。受信するデータとナビゲーションパスに基づくトポロジを使用することにより、アプリケーション開発者はナビゲーションパスをエンドユーザのために規定して、エンドユーザがアプリケーション(単数または複数)104のコンテンツを通してナビゲートするようにすることができる。したがって、規定コンポーネント102により作成されるトポロジおよびナビゲーションパスは、ユーザにあてどなくパス上をたどらせるのではなく、特定のパス内でデータの探索/発見/検索を規定することで、アプリケーション(単数または複数)104の開発を容易にする。アプリケーション104は、これらに限定されないが、ビジネスアプリケーション、コンピュータ読取可能媒体上のアプリケーション、ビジネスフレームワーク内のアプリケーションなどであることができることは理解される筈である。
図2は、規定ナビゲーションおよび/または関連データ範囲内のデータ探索を用いてアプリケーションの開発を容易にするシステム200を示す。規定コンポーネント202は、アプリケーションの規定ナビゲーションを作成することを容易にするメタデータ(例えば、アプリケーション関連のメタデータ、ビジネスフレームワーク関連のメタデータ)のようなデータを受信することができる。設計時のメタデータに基づいた規定ナビゲーションにより、アプリケーション開発者はナビゲーションビューを用いた能率的な開発を行うことができる。さらに、トポロジ内の規定ナビゲーションパスを利用することにより、複数のアプリケーションのためのモジュール再利用性が提供される。規定コンポーネント202は、データ間の関係の発見およびそのようなデータポイントをトラバースすることが設計時に行われるように、トポロジおよびナビゲーションパスを作成する。従来のナビゲーション技術は、そのような関係を実行時に発見すること、およびそのようなデータポイントを実行時にトラバースすることを提供する。従って、規定ナビゲーションがアプリケーション開発を容易にするようなアーキテクチャをアプリケーション開発者に提供することが本発明の新規性である。
規定コンポーネント202は、アプリケーションに関連するメタデータのようなデータに基づいてトポロジを作成するトポロジコンポーネント204をさらに含む。トポロジは、一意にラベルされたリンクコレクション上のメタデータインスタンスであって、少なくとも1つのノードと少なくとも1つとリンクオブジェクトのネットワークである。トポロジコンポーネント204は、ノードとリンクオブジェクトのネットワークが、トラバース可能オブジェクトとトラバース可能パスのサブセットを表すように、トポロジを作成する。作成されるトポロジは、特定のアプリケーションコンポーネントに関する概念モデルの反映であることは理解される筈である。
作成に当たって、トポロジは再使用することができる。例えば、トポロジコンポーネント204は、データに基づいてトポロジを作成することができる。この場合、このようなトポロジは、1つのアプリケーションおよび/または複数のアプリケーションが再利用することができる。さらに、トポロジは、(例えば、アプリケーションにおいてナビゲーション論理に対して異なるパスを利用することで)アプリケーションの各種部分および/またはコンポーネントにより再利用されうる。一例において、トポロジコンポーネント204は、アプリケーション「俸給」とアプリケーション「ボーナス報告」が実質的に同一トポロジを利用するように、トポロジを作成することができる。
トポロジは、ノードおよび関連リンクを含む。ノードはナビゲーションの状態を表すオブジェクトで、少なくとも別のノードに対するリンクリストをデータコンテンツと共に含む。例えば、ノードは、エンティティ、エンティティキューブ、クエリ、タスクおよび別のリソースであることができる。リンクは、ソースおよび相手先ノードに照会する統一リソース識別子(URI)を含む。トポロジコンポーネント204は、トポロジを手動でおよび/または自動的に作成することができることは理解されるであろう。したがって、トポロジコンポーネントは、ユーザインターフェース(UI)に基づいて(例えば、手動で)またはプロバイダ(単数または複数)に基づいて(例えば、自動的に)またはそれらの組合せで、作成することができる。
トポロジコンポーネント204は、トポロジを作成して、アプリケーションのため規定ナビゲーションを提供するナビゲーションパスをその上に作ることができるようにする。ナビゲーションパスは、nパスコンポーネント206により作成される。この場合、ナビゲーションパスは、(例えば、トポロジコンポーネント204が作成する)トポロジ上の逐次的なリストで、このようなトポロジのサブグラフを表す。例えば、トポロジは複数のノードおよびリンクから構成することができる。この場合、リンクを介して一連の関連ノードを通る探索は、ナビゲーションパスであることができる。ナビゲーションパスのコンテンツはサブグラフを定義する一方で、リスト内のリンクオブジェクトの物理的順序は、線形ナビゲーションパスを表す。
以下の例は、説明目的のためであって、本発明への制限であるとは解釈しない。トポロジは、トポロジが停留所(例えば、ノード)および接続する道路/街道(例えば、リンク)を含む輸送網であるとして、作成することができる。トポロジ内のナビゲーションパスは、地点「A」から地点「B」迄の具体的な経路であることができる。このような規定ナビゲーションを作成することで、人々が一地点から別の地点に移動するのを容易にする輸送網の「ガイド付き旅行」が提供される。
nパスコンポーネント206は、トポロジのサブセットが利用されるように、ナビゲーションパスを作成する。トポロジのサブセットは規定されるけれども、このサブセットはトポロジ全体を含むことができることは理解されるであろう。その上、nパスコンポーネント206は、構成が少なくとも1つのリンクと少なくとも1つのノードであるように、ナビゲーションパスを作成する。ナビゲーションパスは、ルートノード、次をサポートする順序、ユーザインターフェース(UI)プレゼンテーションバインディング、およびユーザインターフェース(UI)バインディングメタデータ(例えば、ソーストポロジから継承するが、上書きすることができる)も含む。さらに、ナビゲーションパスは、複数のナビゲーションおよび/または探索の型(例えば、線形、星形、ツリートラバースなど)をサポートする。各種のナビゲーション型は、実行時にアプリケーションに対して、ナビゲーションパスのアプリケーションプログラムインターフェース(API)の動作を駆動する。
例えば、線形ナビゲーションは、ノードに対するリンクが線形パスにおいて逐次的である場合に、利用することができる。別の例においては、星形ナビゲーション型を利用することができる。星形ナビゲーションは、ハブアンドスポークとも呼ばれ、中心ノードから外向きに突き出る多数のリンクから構成される。流通経路は、別のノードに対するリンクを介して最終相手先に到達する前に中央ノード(例えば、ハブ)を経由して経路指定される。ナビゲーションパスがサポートする別のナビゲーション型は、例えば、ツリートラバースである。ツリートラバースは、ツリーデータ構造体における各ノードを巡回するプロセスであって、そこでは各ノードに対して逐次的に前進できる。トラバースは、ノードを巡回する順序により特徴付けることができることは理解される筈である。
なおも図2を参照すると、nパスコンポーネント206は、設計を行う間に、トポロジ内に規定ナビゲーションを準備してナビゲーションパスを作成する。設計を行う間に、nパスコンポーネントを利用して、ルートノードを識別しおよび関連グラフ(例えば、リンクおよび/またはノード)を取り除く(例えば、削除する)ことにより、トポロジからナビゲーションパスを作成することができる。さらに、ランタイムの間、アプリケーションは追加のナビゲーションパス(単数または複数)を作成することおよび/または設計時に作成されたナビゲーションパスを利用することができる。アプリケーションがランタイムの間にナビゲーションパスを作成するときは、フィルタを利用して、ランタイム生成ナビゲーションパスを生じるノード(単数または複数)をフィルタする。
規定コンポーネント202は、アプリケーション開発を容易にするトポロジとナビゲーションパスを利用して、規定ナビゲーションを提供する。このナビゲーションパス(例えば、トポロジのサブグラフ)を、Nが整数であるN番目のプロバイダまでの少なくとも1つのプロバイダを含むナビゲーションパス(例えば、nパス)プロバイダインフラストラクチャ208により追加することができる(例えば、ノードおよび/またはリンクを追加する)。ナビゲーションパスプロバイダは、例えば、変換および/または情報抽出機構(例えば、エンティティに対するメタモデルプロバイダ、ビジネスインテリジェンス(BI)のための上下左右への掘り進み、タスクオペレーションまたはワークフローなど)を介して、コンテキストノードにアクセスするリソースプロバイダであることができる。
ナビゲーションパスプロバイダ(例えば、プロバイダからプロバイダ)は、適切な機能をナビゲーションパスプロバイダインフラストラクチャ208全体に提供する基本能力を有する。ナビゲーションパスプロバイダは、データコンテキストを提供するノード(単数または複数)を伴うリクエストに対し、データ(例えば、追加されたメタデータ)をもって応答する。ナビゲーションパスプロバイダはまた、返値型の集合(例えば、データセット、オブジェクト、XMLなど)によって応答する能力も実装する。さらに、(例えば、プロバイダがコンテキストを用いてリンクを作成する)リンクコンテキストおよび(例えば、特定の型のプロバイダに対し独自性を与えている)リンク型のようなリンク作成能力も提供される。
ナビゲーションプロバイダ(例えば、プロバイダからプロバイダ)は、例えば、セキュリティトークンおよび/またはフィルタ(後述)のような追加の能力を備えることができることは理解される筈である。与えられたセキュリティトークンは、ナビゲーションパスプロバイダを検証および/または認証するため、ナビゲーションパスプロバイダインフラストラクチャ208内で採用することができる。例えば、ナビゲーションパスがトポロジのサブセットを代表するものであるとき、トポロジはメタデータに基づいて作成することができる。(例えば、メタデータを含む)ノードに対するデータコンテキストを作成するため、ナビゲーションパスプロバイダは、変換および/または情報抽出機構を用いて、コンテキストノードにアクセスすることができる。しかしながら、セキュリテイ、信憑性、および/または立証を提供するため、ナビゲーションパスプロバイダはセキュリティトークンを利用することができる。
ナビゲーションパスプロバイダインフラストラクチャ208は、少なくとも1つのナビゲーションパスプロバイダを含むことができる。この場合、インフラストラクチャ208は、クライアントアプリケーションと少なくとも1つのナビゲーションパスプロバイダとの間の通信を管理する。ナビゲーションパスプロバイダインフラストラクチャ208は、複数のクライアントアプリケーションと複数のナビゲーションパスプロバイダとの間の通信を管理することは理解される筈である。ナビゲーションパスプロバイダインフラストラクチャ208は、プラグ機能、拡張性、および/または型情報が提供されるときナビゲーションリクエストをプロバイダの特定の集合に委譲する委譲能力を備える。しかしながら、型情報が提供されないとき、インフラストラクチャ208は、プロバイダ乃至プロバイダに対してリクエストをブロードキャストすることにより、応答を要求する。その上、ナビゲーションパスプロバイダインフラストラクチャ208は、トポロジおよびナビゲーションパスをインスタンス化できる。トポロジをインスタンス化することは、ナビゲーションパス式の解決のためであって、ナビゲーションパスは、ランタイムに存在することは理解される筈である。さらにナビゲーションパスを、ナビゲーションルート(単数または複数)を記述するメタデータの集合として永続させるように、コードを生成できることは理解される筈である。このメタデータの集合は、コードの作成に利用することができる。この場合、ナビゲーションパス式は、強く型付けする方法で組み立てることができる。
ここで図3を参照すると、規定ナビゲーションを用いることによって設計を行う間にアプリケーションを開発することを容易にするアーキテクチャ300が示されている。受信するメタデータに基づいてトポロジおよびナビゲーションパス(例えば、トポロジのサブセット)を作成することにより、能率化されたアプリケーション開発を可能にする規定ナビゲーションを実装することができる。アーキテクチャ300は、設計ポイントを確立して、これらには限らないが、高度のプラグ機能と拡張性を可能にし、開発者とアプリケーションの必要性と、アプリケーションプログラムインターフェース(API)の長期安定性に重点を置き、ビジネスフレームワークナビゲーションのための高水準の規定性(prescriptive−ness)を提供し、およびビジネスインテリジェンス(BI)およびエンティティメタデータの価値を最大にする。
アーキテクチャ300は、作業領域層302およびサービス層304を含む。サービス層304内には、nパスコア306が含まれ、これはアプリケーションのための規定ナビゲーションの作成を容易にする。nパスコア306は、トポロジ308、セッション310、およびインスタンス化312をさらに含む。nパスコア306は、受信するデータに基づいてトポロジ308をインスタンス化する。例えば、トポロジ308は、メタデータストア(図示せず)に含まれるメタデータに基づいて作成することができる。後に詳細を説明するように、トポロジ308は、手動でまたは自動的に若しくはそれらの組合せでも作成することができる。トポロジ308をインスタンス化すると、nパスコア306は、ナビゲーションパス314(例えば、NPathとも呼ぶ)をトポロジインスタンスからインスタンス化312を用いることによりインスタンス化する。すなわち、インスタンス化312は、トポロジ308および/またはナビゲーションパス314(例えば、NPathとも呼ぶ)をインスタンス化することができる。一例において、ナビゲーションパスを、トポロジインスタンスから、NPath式とも呼ぶナビゲーションパス式を用いて、インスタンス化することができる。さらに別の例においては、ナビゲーションパスを、ナビゲーションルート(単数または複数)を記述するメタデータの集合として永続させるように、コードを生成できる。このメタデータの集合を、コードの作成に利用することができ、ナビゲーションパス式は、強く型付けする方法で組み立てることができる。また、作成されるナビゲーションパスは、クライアント側とサービス側を有し、この中で、ナビゲーションパス314はクライアント側を表し、サービス側に存在する(図示せず)ことは理解される筈である。
さらに、nパスコア306は、作業領域層内の規定ナビゲーションを考慮して、nパスクライアント用のサービスセッションを作成することができる。nパスコア306は、プロバイダインフラストラクチャ324へ要求を委譲するための、nパスクライアントに対するサービス層を表すことは理解される筈である。プロバイダインフラストラクチャ324は、前述のようにクライアントアプリケーションとナビゲーションパスとの間の通信(例えば、リクエスト/応答、委譲/ブロードキャスト、登録など)を管理するサービス層であることは理解される筈である。
nパス314は、作業領域層に常駐し、NPath314(例えば、ナビゲーションパス314)は、ジャーナル316,パス318、式320、およびユーザインターフェース(UI)バインディング322を利用することができる。ナビゲーションパスクライアント側314は、クライアントアプリケーションのための機能を備える。その機能は、例えば、サービス時のトポロジインスタンスからパスのインスタンスを作成するため、NPath式を構成する強く型付けする式を式320が含む;メタデータの一部として存続するUIバインディング322により、ノードとUIコンポーネントとの間のナビゲーションコンテキストセンシティブなバインディングを可能にする;パス318は、ナビゲーションパス内のリンク上でのナビゲーションを可能にするプログラミングモデルを含む;およびジャーナル316は、ユーザナビゲーションおよび/またはそれに関連する履歴を追跡するジャーナル作成機能を提供する;などの機能である。
一実施例において、ジャーナル316は、アプリケーション内のユーザナビゲーションを追跡するログおよび/または記録を提供する。アプリケーション内のナビゲーションを規定すること、およびナビゲーション付きトポロジの開発を容易にして、関係の発見とデータポイントのトラバースをより良いものにするために、ジャーナル316を利用することができる。例えば、アプリケーション開発を容易にするログおよび/またはレコードが生成されるセッション内に、トポロジ内あるいはトポロジ外から特定のユーザのナビゲーションを、ジャーナル316は実行時のアドホックな探索により追跡できる。
図4は、トポロジおよびナビゲーションパスを含む規定ナビゲーションを用いることによりアプリケーションの開発を容易にするシステム400を示す。トポロジコンポーネント402は、自動コンポーネント404かまたは手動コンポーネント406若しくはそれらの組合せを利用するかの何れかによりトポロジを作成する。自動コンポーネント404はデータを受信し、トポロジを作成することができる。リンクおよびノードの形状およびコレクションを、単一のプロバイダおよび/または複数のプロバイダにより判定することができる。例えば、トポロジはエンティティグラフ(例えば、メタデータから直接生成されるトポロジ)から作成することができる。情報管理システム(IMS)内でエンティティメタデータを検査することにより、トポロジをエンティティモデルから作成することができる。エンティティ型はノードであり、この場合、関連付けと構成がこのようなノードの間のリンクを形成することは理解される筈である。ビジネスエンティティプロバイダは、これらのノードおよびリンクに対し責任を有する。
別の例において、トポロジはビジネスインテリジェンス(BI)データから自動的に作成することができる。したがって、キューブ、次元、および尺度はノードであり、さらにビジネス基準インスタンス(例えば、多次元式(MDX)ステートメント)もノードある。上述のノードの間のリンクは、例えば、上下左右の掘り進みであることができ、それらは少なくとも1つのビジネスインテリジェンス(BI)プロバイダにより実装される。自動的に作成されるトポロジも、ビジネスインテリジェンス(BI)メタデータとエンティティメタデータとの間の関係を包含することは理解される筈である。さらに、異なる例において、自動コンポーネント404は、ビジネスインテリジェンス(BI)ジャーナルに基づいて、トポロジを作成することができる。このジャーナルは、これに限定されないが、重複エントリを除去してジャーナルを変換することによりトポロジが作成されるような、ナビゲーションサービスに対し提供されうる。
手動コンポーネント406は、ユーザインターフェースツールを介してユーザ入力を受信して、トポロジを手動で作成および/または変更することができる。例えば、次のコードを用いて、2つのエンティティ間の論理的関連付けを表すリンクを追加することができる。
Topology myTopology = new Topology("myTopologyName", typeof(Order));
//OrderとCustomerとの間にリンクカテゴリ「Entity」でリンクを追加
myTopology.AddLink(typeof(Order), typeof(Customer), "Entity");
//OrderとOrderLineとの間にリンクカテゴリ「Entity」でリンクを追加
myTopology.AddLink(typeof(Order), typeof(OrderLine), "Entity");
//OrderLineとProductとの間にリンクカテゴリ「Entity」でリンクを追加
myTopology.AddLink(typeof(OrderLine), typeof(Product), "Entity");
//OrderとSalesEntityCubeとの間にリンクカテゴリ「DrillUp」でリンクを追加
myTopology.AddLink(typeof(Order), typeof(SalesEntityCube), "DrillUp");
//SalesEntityCubeとProductEntityCubeとの間にリンクカテゴリ「DrillAcross」でリンクを追加
myTopology.AddLink(typeof(SalesEntityCube), typeof(ProductEntityCube), "DrillAcross");

//トポロジをサーバ側に保存
myTopology.Save();
上のコードは、Order型のルートノード有する「myTopologyName」の名のトポロジを作成する。コード全体を通じて、ノード間に各種のリンクが追加され、次いでトポロジがサーバ側に保存される。上のコードは注釈付きで、そのような注釈は先頭に「//」があることは理解される筈である。
手動コンポーネント406および自動コンポーネント404は、トポロジを作成するため連携して利用することができることは理解される筈である。例えば、トポロジを上述の技術に基づいて自動的に作成することができるけれども、ユーザはユーザインターフェースを利用して自動的に作成されたトポロジを編集することができる。こうして、個人に対し特別に合わせるよう、トポロジのカスタマイズが可能であり、かつ利用できる。
作成されるトポロジは、次いで、nパスコンポーネント408を用いてナビゲーションパスを作成することに利用される。作成されるナビゲーションパスは、トポロジ上のリンクの逐次的リストで、(例えば、自動コンポーネント404により自動的に作成される、手動コンポーネント406により手動で作成される、またはそれらの組合せで作成される)トポロジのサブグラフを表す。ナビゲーションパスを、存続するジャーナルを利用して作成することができること、このときジャーナルは自動的におよび/または手動で利用されることは理解される筈である。nパスのコンテンツがグラフを定義する一方で、リスト内のリンクオブジェクトの物理的順序は、線形ナビゲーションパスを表す。さらに、ナビゲーションパスおよびトポロジパスは、アプリケーション内で規定ナビゲーションを利用することで、アプリケーション開発を容易にする。
図5は、アプリケーション内でナビゲーションを規定することを容易にするシステム500を示す。nパスサービス502は、規定ナビゲーションパスが判定されている場合に、ナビゲーションパス(単数または複数)有するトポロジ504を含むことができる。しかしながら、初期化の前には、ナビゲーションパスは(例えば、トポロジがベースとする)メタデータのみを含み、データは含まない。ノードのルートは、トラバースされるために、データのインスタンスを有しなければならない。アプリケーションは、nパスクライアントのアプリケーションプログラムインターフェース(API)506を利用してデータのインスタンスを入手しなければならない。この場合、アプリケーションは、コンテキストを作成して、そのコンテキストをnパスサービス502に送信する。nパスサービス502は、ルートノードデータ値を、その値をアプリケーションに提供するnパスクライアントAPI506に対し提供することができる。ルートノード値は、ナビゲーションパスがナビゲートされるための初期コンテキストであることは理解される筈である。アプリケーションが初期コンテキストを設定すると、nパスプロバイダ508は、型付けされたコンテキストを入手することができる。各種技術におけるデータビューで、ルートノードを初期化することができる。例えば、以下のコードで示すように、ルートノードに対してリンクを注入することで、初期コンテキストが生成される。
Figure 0005174320
リンクを注入するという概念は、アプリケーション内でコンテキストノードのビューが動的に変化しているとき有益であることは理解される筈である。さらに、リンクは、同一コンテキストノードを用いて、ビューを一方から他方に変更することができる。
nパスクライアントAPI506は、アプリケーション内でのナビゲーションを規定することを容易にするため、システム500に対して多様な機能を提供する。nパスクライアントAPI506は、複数のナビゲーションを提供するナビゲート510を含む。ナビゲート510は、nバス逐次的ナビゲーションを提供することができる。この場合、nバス逐次的ナビゲーションによりアプリケーションは最小のパス発見を用いてナビゲーションパスを逐次的に下ることができる。nパスサービス502との相互作用は、TraverseLink()を呼出すことによりノードコンテンツを取得することであることは理解される筈である。例えば、クライアントがnパスサービス502に接続できるようにする接続を確立することができる。ナビゲーションパスは、トポロジ名、開始ノード、nパス式、およびナビゲーションパスのインスタンスを入手するための探索計画を用いてnパスサービス502を呼出すことによりインスタンス化されて、ナビゲーションパスのインスタンスを取得する。次いで、アプリケーションは、開始ノードからナビゲーションパス上を「Next」を用いてナビゲートすることができる。以下のサンプルコードは、アプリケーションの典型的な例である。
NPath myPath = new NPath("myTopologyName", myExpression);
//Nextボタンクリックハンドラ
…NextButtonOnClick(...)

//次のリンクを検査
myPath.Next().Traverse(dataContext);
さらに、ナビゲート510は、nパスサブツリーナビゲーションを提供することができる。この場合、アプリケーションは、所与のnパスコンテキストノード内での直接の子のリンク内をナビゲートする。パス発見が無く、nバスサービス502との相互作用によりノードコンテンツを受信ができることは理解される筈である。クライアントはnパスサービス502に接続する。この中で、ナビゲーションを許可するnパスは、アプリケーションがTraverse()を呼出すときにインスタンス化される。さらに、典型的な例は、表示されるデータおよび/またはボタンコントロール上にホットリンクを有するフォームを基礎とするアプリケーションであることは理解される筈である。ホットリンクは、例えば、開始ノードからリンク相手先ノードまでパスが存在するとき動的に作動する。
簡単に図6を参照すると、オンライン注文アプリケーションは、フォーム、すなわち顧客、売上報告、注文、注文行、および製品を含むことができる。アプリケーションに関するナビゲーションパスは、[<顧客、報告>、<顧客、注文>、<注文、注文行>、<注文行、製品>]であることができる。図6に、そのフォームを含むナビゲーションパスを描写する。nパスサービス502は、アプリケーションが指定するトポロジおよび式に基づいて、ナビゲーションパスを返すことができる。
別の例において、アプリケーションは、接続していないユーザインターフェース(UI)エレメント(例えば、Winform)を顧客側で利用することができる。この場合、エレメントはナビゲーションパス内の少なくとも1つのノードに対し個別にバインドされる。簡単に図7を参照すると、ユーザインターフェース(UI)エレメント700は、顧客注文フォームの設計時の図702、および顧客注文フォームの実行時の図704であることができる。例えば、顧客フォームUIは、特定のアプリケーションには無関係であるが、データソース型、ナビゲーションリンク型、または任意のユーザ入力のようなナビゲーションコンテキストに特有の、ナビゲーションパス内の顧客ノードにバインドされうる。この顧客フォームの例の内部では、メタデータ内のnパスに基づいて、UIコントロールがダイナミックに生成される。この例において、顧客注文フォーム内にある2つのナビゲーションパスのボタンコントロールを、報告チャート、注文フォーム、注文行データグリッドなどのようなUIコントロールにノードデータをバインドするよう規定することができる。ランタイムの間、顧客ノードをトラバースすることにより、所与のナビゲーションコンテキストに合致するフォームが起動する。このとき、ノードデータが提示され、ソースからトラバース可能なリンクがナビゲーションコントロールエリア706に追加される。
前記の例に続いて、報告ボタン708は、アプリケーション開発者によりおよび/またはnパスクライアントAPIにより自動的に作成されうる。報告ボタン708を作動させるとき、リンク<顧客、報告>リンクがトラバースされる。次いでnパスは報告データをロードして報告チャートユーザインターフェース(UI)を表示することができる。報告チャートは、例えば、モーダルダイアログボックス、モードレスフォーム、および/またはインプレースの連結コントロールであることができる。さらに、注文フォームは、各種のコントロールを有して注文ディテールコレクション(例えば、データグリッドコントロールの派生)を表示することができる。注文書をトラバースするとき、自動的にリンク<注文、注文行>をトラバースするように、注文ディテールコントロールは注文フォームの子となることができる。リンク<注文行、製品>の存在により、注文行の製品列上のハイパーテキストリンクを可能にする。上述のことは、以下のコードにより実証することができる。
NPath myPath = new NPath("my TopologyName", myExpression);
//NPath内のルートからアウトバウンドリンクをすべて入手
List<Link> outBoundLinks = myPath.Root.OutBoundLinks;
//5番目のリンクを検討
outBoundLinks[4].Traverse(dataContext);
図5に戻って参照すると、ナビゲート510は、トポロジナビゲーションを提供することができる。この場合、アプリケーションは、所与のトポロジ内ではなくて、ナビゲーションパスの外でリンクの発見を明白に要求する。ナビゲート510は、既知のノード上でGetPath()を利用することができる。アプリケーションは、ノード上でGetPath()を呼出して、nパスプロバイダ508にアクセスすることなく、トポロジの範囲内にあるリンクを入手することができる。返されるリンクは、新らたなnパスインスタンスの形である。アプリケーションは、返されるリンクをジャーナル512内に選択的に追加することができる(後述)ことは理解される筈である。上述のことは以下のコードのサンプルにより実証することができる。
NPath myPath = new NPath("myTopologyName", myExpression);
//NPath内のルートからアウトバウンドリンクをすべて入手
List<Link> outBoundLinks = myPath. myPath.Root.OutBoundLinks;
//アウトバウンドリンクから5番目のリンクをトラバース
outBoundLinks[4].Traverse(dataContext);
//アドホックが現在のトポロジからリンクを得る
NPath adhocPath = outBoundLinks[4].Destination.GetPath(someExpression, SearchScope.CurrentTopoloy);
//第1アドホックリンクをトラバースして、このリンクナビゲーション情報をジャーナルに保存
adhocPath.Links[0].Traverse(newDataContext);
アドホックナビゲーションは、トポロジナビゲーションと実質的には類似しているが、発見範囲は依然としてnパスプロバイダのレベルに止まる。アドホックナビゲーションは、下記のコードサンプルを用いてナビゲート510によって実装される。
NPath myPath = new NPath("myTopologyName", myExpression);
//NPath内のルートからアウトバウンドリンクをすべて入手
List<Link> outBoundLinks = myPath. myPath.Root.OutBoundLinks;
//アウトバウンドリンクから5番目のリンクをトラバース
outBoundLinks[4].Traverse(dataContext);
//アドホックが現在のトポロジからリンクを得る
NPathadhocPath = outBoundsLinks[4],Destination.GetPath(someExpression, SearchScope.UniversalTopology);
//第1アドホックリンクをトラバースして、このリンクナビゲーション情報をジャーナルに保存
adhocPath.Links[0].Traverse(newDataContext);
nパスクライアントAPI506は、ナビゲーションの履歴を記録することのできるジャーナル512をさらに含むことができる。ジャーナル512は、使用されるナビゲーションパスに関係なくナビゲーションの履歴を記録することができる。ジャーナル512は、ジャーナル512が閉じられるまで続くナビゲーションの記録を可能にするために開かれる。ジャーナル512は、例えば、閉じる際にローカルファイル内に保存することができる。一例において、アプリケーションは起動に際して、ジャーナル履歴をロードするため、構成ファイル内にジャーナルファイルを置くか否かを判定することができる。これらのアプリケーションが停止するとき、ジャーナル512を、ほぼ同様のファイルに保存することができる。
さらに、ジャーナル512のコンテンツを、トポロジにおいてアップロードされることができる。この場合、このようなジャーナルのコンテンツは、そのトポロジを、追加、置換、または上書きする。この関係はメタデータに書き込む権利を持ちうることは理解される筈である。例えば、ジャーナル512は、ユーザのためナビゲーションの履歴を作成することができる。この場合、そのような履歴は、規定のナビゲーションがアプリケーションを容易に開発できるようなトポロジおよびナビゲーションパスの作成の基礎となることができる。ジャーナル512は、起動時のナビゲーションアクティビティによって更新される。したがってナビゲーションアクティビティが記録される。ジャーナル512に関する主な機能は、「Back」と「Forward」である。
簡単に図8を参照すると、ジャーナルに関する概略図が示されており、ここで、ジャーナルオブジェクトモデル800は、ユーザがナビゲートし/訪問したページをカプセル化する。ジャーナルオブジェクトモデル800は、ジャーナルオブジェクトを含み、これが多様な属性および動作を提供する。back属性は、ユーザが後方にナビゲートできるリンクを提供し、柔軟性のためスタックよりむしろ配列として実装される。forward属性は、ユーザがリンクを前方にナビゲートすることを可能にし、これも柔軟性のためスタックの代わりに配列として実装することができる。別の属性、currentは、現在訪問しているリンクまたはページ(例えば、これはforward用またはback用のいずれのリンクリストにも属さない)を提供する。ジャーナルオブジェクトは、例えば、journal(例えば、ジャーナルオブジェクトの構築)、journal(例えば、コピーコンストラクタ)、traverse(例えば、新規のリンクまたはページにナビゲートし、その際、現在のページは後進用スタックにプッシュされ、現在のページが新規ページに設定される)、back(例えば、1ページ戻る)、back(例えば、指定のページ数戻る)、forward(例えば、1ページ進む)、forward(例えば、指定のページ数進む)、serialize(例えば、ジャーナルをXMLストリーム内に保存する)、deserialize(例えば、ジャーナルをXMLストリームからロードする)、backstack(例えば、back用配列内の、現在のページを含まないページ配列を返す)、およびfowardstack(例えば、forward用配列内の、現在のページを含まないページ配列を返す)のような動作をさらに提供する。さらに、ジャーナルオブジェクトモデル800は、ユーザが訪問したページを作成し直すのに必要な情報をカプセル化するJournalLinkオブジェクトを含む。例えば、JournalLinkオブジェクトは、name(例えば、ジャーナルノードをユーザに表示するのに使用することのできるページの名称)およびURI属性(例えば、このページに至るのにユーザがトラバースしたリンクを記述するURLで、このURLはコンテキストデータを含む)を含む。JournalLinkオブジェクトは、例えば、name(例えば、ページの名称を返す)およびURI(例えば、ページを作成したURIを返す。この際、URIページ型がURIと共にページを再作成する)のようなオペレーションを提供する。
nパスクライアントAPI506は、UIバインディング514をさらに含むことができる。グラフィックユーザインターフェース(GUI)アプリケーションは、実証されたナビゲーションパスに基づくことができる。けれども、ナビゲーションに際しノードに関するユーザインターフェース(UI)を表示することは、nパスクライアントAPI506を用いて行われる。例えば、開発者は、ユーザインターフェースコントロール(例えば、ページ)をnパスクライアントAPI506にわたるクライアントコンポーネント内に書き込むことができ、このnパスクライアントAPI506は、ユーザインターフェースコントロールをビジネスフレームワークメタデータに記述される型にバインドする。このページは、nパスクライアントAPI506に対し通信するインターフェースを実装することができる。ナビゲーションパスのトラバーサルは、ルートノードのデータインスタンスから生じることは理解される筈である。それでも、アプリケーション(単数または複数)は、コンテキストデータを提供する必要がある。これは、ナビゲーションパスにより規定される型の構築データ検索基準を用いておこなわれる。
ページがUIバインディング514を介してトポロジ内のノードに結び付くとき、ノードコンテンツのビューが判定される。さらに、バインディングは、起動の方法や表示における他のコントロールとの関連などの指定のページの実行時の動作を判定する。例えば、バインディングは、ユーザインターフェース(UI)コントロールがモーダルまたはモードレスか、もしくはインプレースのコントロールであるか否かを判定する。ページは別のインプレースのページを子ページ(例えば、子ページのノードが親ページノードから到達することができることを条件に)として有することができることは理解される筈である。トラバーサルは親ページがロードされたとき開始される。
UIバインディング514は、ページの登録(例:例えば、ナビゲーションマネージャを用いる登録)、デフォルトのUIバインディング(例えば、プロパティページに類似した単一データインスタンスのためのデフォルトUIバインディングおよびデータグリッドであるコレクションのためのデフォルトUIバインディング)、型ベースのUIバインディング(例えば、デフォルトのバインディングをオーバーライドするバインディングに基づく型としてページを登録すること)、ノードベースのUIバインディング(例えば、1ページ以上を利用することができるとき、型とノードidとが一致するページ)、リンクベースのUIバインディング(例えば、複数のページを利用することができるとき、型、ノードid、およびリンクが一致するページ)、バインディングコンテキスト(例えば、ページの登録、および1つの型、または1つのノードに対して複数のページが登録できるバインディングコンテキストの提供)を提供する。
nパスクライアントAPI506は、ナビゲーションサービスを容易にするナビゲーションセッションマネージャ516を含むことができる。ナビゲーションセッションマネージャ516は、ナビゲーションパス(単数または複数)、ジャーナル512、ページ、およびUIバインディング514を、プレゼンテーション層において管理することができるnパスクライアントAPI506内のシングルトンオブジェクトである。アプリケーションの初期化に際して、nパスクライアントAPI506は、アプリケーションのためのナビゲーションサービス(図示せず)に対し接続することができる。この場合、接続は、例えば、ビジネスフレームワークアカウント名、パスワードなどのような、入力パラメータを必要とする。サービス側によりユーザの認証が与えられると、セッションのための接続ハンドル/オブジェクトが返される。この認証はビジネスフレームワークにより提供することができることは理解される筈である。
ナビゲーションセッションマネージャ516は、nパスサービス502を呼出して、返されるナビゲーションパスインスタンスを入手することができる。ナビゲーションパスをインスタンス化するため、アプリケーションプロバイダは、例えば、以下のパラメータを提供する。すなわち、トポロジ名、開始ノードインスタンス、ナビゲーション計画、および式の文字列またはオブジェクトモデル(OM)である。トポロジ名は、トポロジの一意の名称である。名称のないトポロジは、発見の結果として開始ノードおよび第1レベル子ノードのみを含む単なる返されたナビゲーションパスである。開始ノードのインスタンスは、ノードの開始点を提供する。基準がルートからの絶対パスの開始ノードを一意に識別することができるときは、開始ノードのインスタンスは必要でない。しかしながら、ノードを最初に確認することのできるアプリケーションは、トポロジに関する情報もノードに対する絶対パスも含まないことがある。ナビゲーション計画は、ナビゲーションにおいて利用される技術である。リンクリストを用いて、グラフの接続が固定されるが、開始ノードからのトラバースは異なる。すなわち、2つ以上のナビゲーションパスは、実質的に同様のリンクを利用するが、アプリケーションによって提供される異なるナビゲーションシーケンスを利用する。例えば、可能なシーケンスは、深さ優先(順に接続されるリンクでは線形)、幅優先、または星形(例えば、シーケンスでなく接続を使用)である。式の文字列またはオブジェクトモデル(OM)は、トポロジ上でパスを識別するのを支援するオブジェクトモデルを有するXパス類似式である。
図9は、規定ナビゲーションの使用によりアプリケーションの開発を容易にするオブジェクトモデル900を示す。このオブジェクトモデルは、XMLに対するシリアライゼーションをサポートするISerializableインターフェースを実装するNpathExpressionクラスを含む。NpathExpressionクラスは、各種の属性およびオペレーションを有するエレメントオブジェクトのチェーンまたはツリーを含む。例えば、NpathExpressionに関連づけられた属性は、name(例えば、一意であるパス名)、start(例えば、エレメントプロパティに依存する相対パスまたは絶対パスを参照することができるパスの第1エレメント)である。NpathExpressionは、これらに限定されないが、NpathExpression(例えば、コンストラクタ)、start(例えば、プロパティ、パスの第1エレメントを設定するかまたは返す)、およびToString(例えば、NpathExpressionのXパス類似式の表示を返す)のようなオペレーションを利用することができる。
オブジェクトモデル900は、ISerializableインターフェースを実装してXMLに対するシリアライゼーションをサポートするエレメントクラスをさらに含む。さらに、エレメントクラスは、Xパスのエレメントをカプセル化して、別のエレメントオブジェクトのフィルタおよびチェーンまたはツリーを含む。エレメントは、これらに限定されないが、entity(例えば、ビジネスインテリジェンスエンティティ、この場合、ヌルおよびパス内の第1エレメントであるときは相対パス、ヌルおよびエレメントが第1ノードでないときは親ノード)、children(例えば、パス内の次のエレメント)、parent(例えば、このエレメントに対する親)、およびfilter(例えば、次のサブツリーをフィルタするフィルタ式)のような属性を含む。このエレメントクラスは、例えば、element(例えば、コンストラクタ)、filter(例えば、フィルタを返す)、add(例えば、パスにエレメントを追加する、この場合、エレメントはカレントエレメントのchildren属性に追加される)、add(例えば、パスにエレメントの配列を追加して、サブツリーのユニオンを作成する)、include(例えば、パスにエレメントとそのサブツリーを含むヘルプ機能)、exclude(例えば、パスにエレメントとそのサブツリーを排除するヘルプ機能)、children(例えば、子配列を返す読取専用プロパティ)、parent(例えば、エレメントの親を返す読取専用プロパティ)、およびToString(例えば、エレメントのXパス類似式の表示を返し、NpathExpressionにより再帰的に呼出すことができる)のようなオペレーションを提供することができる。
その上、オブジェクトモデル900は、ISerializableインターフェースを実装してXMLに対するシリアライゼーションをサポートするフィルタクラスを含む。フィルタは、フィルタ式を作る項、演算子および関数のスタックを含む。フィルタ呼出は、フィルタ式のポストフィックスのオーダーに代表されるスタックを提供するstack属性を含むことができる。フィルタクラスは、例えば、filter(例えば、コンストラクタ)、equalsto(例えば、ヘルパーメソッド)、notequalsto(例えば、ヘルパーメソッド)、push(例えば、項または演算子をポストフィックススタックにプッシュする内部使用)、pop(例えば、トップタームまたは演算子をポストフィックススタックから移動する内部使用)、isempty(例えば、スタックが空のときtrueを返す)、およびtostring(例えば、このフィルタのXパス類似式の表示を返し、エレメントが再帰的に呼出すことができる)のオペレーションも提供する。
図10および図11は、トポロジ生成サービスを利用し、規定ナビゲーションの使用によりアプリケーションの開発を容易にするオブジェクトモデル1000および1100を示す。オブジェクトモデル1000および1100は、一部がサーバ上に存在するトポロジおよびクライアントとリファレンスと間のアクセス可能性に基づくMarshalByRefObjectから派生されるトポロジクラスを含む。ナビゲーションパスは、ISerializableから派生され、このとき値は順に回される。ナビゲーションパスがサーバ上に存在するときは、ナビゲーションパスのMoveNext()ファンクション呼出はリモートなので、複数の発行を生じる能力に欠けていることは理解される筈である。
オブジェクトモデル1000および1100を利用して、トポロジを、エンティティキューブウィザードから、作成することができる。トポロジはクライアントが作成し、格納し、次いでロードすることができる。以下のコードは、クライアントによる作成、格納およびロードを示す。
Figure 0005174320
ナビゲーションパスは、作成することができ、この場合、例えば、モデルビューワから、ナビゲーションインスタンスを作成することができる。トポロジを作成し、ルートノードを位置指定し、およびナビゲーションパス式をナビゲーションパスとナビゲーション型を用いて作成することができる。作成に当たって、ナビゲーションパスを入手し、ストアに保存することができる。ナビゲーションパスがナビゲーションルート(単数または複数)を記述するメタデータの集合として存続するようにコードが生成されることは理解される筈である。このメタデータの集合は、ナビゲーションパス式を強く型付けされる方法で組み立てることができるとき、コードの生成に利用することができる。ナビゲーションパスは、クライアントがロードすることができる。上述のことは、以下のコードにより示すことができる。
Figure 0005174320
図12−14は、本発明にかかる方法を示す。説明を簡単にするため、方法を一連の動作として描写し、記述する。本発明は示される動作によりおよび/または動作のシーケンスにより限定されるものではないこと、例えば動作は各種のシーケンスおよび/または同時に、およびここに提示しないおよび記述しない動作とともに生じることがあること、は理解され認識される筈である。さらに、示される動作すべてが、本発明による方法の実行に必要というわけではないこともある。さらに、当業者は、この方法は、代わりに状態ダイアグラムまたは状態イベントを介して相互関係のある一連の状態として表現されることを理解し認識するであろう。
図12は、トポロジおよびナビゲーションパスを利用することによりナビゲーションの規定を容易にする方法1000を示す。1202において設計時にメタデータが受信され、それから1204においてトポロジを作成される。このトポロジは、一意に命名されるリンクのコレクション(例えば、ノードおよびリンクのオブジェクトのネットワーク)のメタデータインスタンスである。例えば、トポロジは(例えば、エンティティグラフ、ビジネスインテリジェンスメタデータ、ビジネスインテリジェンスジャーナルなどから)自動的に、または(例えば、ユーザインターフェースツール、などを使用して)手動で、またはそれらの組合せで作成することができる。次に、1206において、トポロジ内部にナビゲーションパスを確立する。ナビゲーションパスは、1204において作成されたトポロジ上の逐次的なリンクリストであって、そのトポロジのサブグラフを表す。ナビゲーションパスのコンテンツがグラフを定義する一方で、リスト内のリンクオブジェクトのシーケンスは線形ナビゲーションパスを表す。
1208において、ナビゲーションパスおよびトポロジを、アプリケーションのための規定ナビゲーションに利用する。ナビゲーションパスおよびトポロジは、例えば、プロバイダインフラストラクチャをさらに含むナビゲーションパスプロバイダを含むナビゲーションパスサービスによって利用されることができる。ナビゲーションパスは、ナビゲーションサービスがデータインスタンスを追加するルートノードを含む。追加させると、アプリケーションは、ナビゲーションパスおよびトポロジをナビゲーション(例えば、この場合ナビゲーションは規定のナビゲーションに基づく)のため利用することができる。このようなナビゲーションは、例えば、逐次的ナビゲーション、ナビゲーションサブツリーナビゲーション、アドホックナビゲーション、トポロジナビゲーション、ジャーナルナビゲーションなどであることができる。さらに、ナビゲーションパスおよびトポロジは、ナビゲーションパス式(例えば、設計を行う間に作成されるオブジェクトモデル)と共に利用することができる。ナビゲーションパス式は、エレメントとフィルタを含み、この場合、サブツリーは追加されるか、またはパスから除外されることができる。パスをプログラム的に取り除くための各エレメントを式に追加できることは理解される筈である。さらに、コードは、ナビゲーションパスがナビゲーションルート(単数または複数)を記述するメタデータのセットとして存続するように生成することができる。このメタデータのセットは、コードの作成に利用することができる。この場合、ナビゲーションパス式は強く型付けされる方法で組み立てられる。
図13は、トポロジおよびナビゲーションパスを利用することによりナビゲーションの規定を容易にする方法1300を示す。1302において、例えば、設計を行う間にメタデータを受信する。1304において、入手したメタデータ少なくとも1つに基づいてトポロジを作成する。このトポロジは、一意に命名されるリンクのコレクション(例えば、ノードおよびリンクオブジェクトのネットワーク)のメタデータインスタンスである。一例において、トポロジは自動的に(例えば、エンティティグラフ、ビジネスインテリジェンスメタデータ、ビジネスインテリジェンスジャーナルなどから)、または手動で(例えば、ユーザインターフェースツールなどを使用して)、またはそれらの組合せで作成することができる。次に、1306において、トポロジ内部にナビゲーションパスを確立する。ナビゲーションパスは、1304において作成されるトポロジ上の逐次的なリンクリストであって、当該トポロジのサブグラフを表す。ナビゲーションパスのコンテンツがグラフを定義する一方で、リスト内のリンクオブジェクトのシーケンスは線形ナビゲーションパスを表す。
1308において、ナビゲーションパスサービス(例えば、ナビゲーションパスプロバイダ・インフラストラクチャを有するナビゲーションパスプロバイダ)への接続が提供され、ここで、多様なサービスをアプリケーションに提供することができる。例えば、アプリケーションは、検証するナビゲーションパスサービスに接続することができるので、コンテキストデータをナビゲーションパスおよびトポロジに提供する(例えば、ナビゲーションサービスによりルートノードがデータインスタンスと共に追加される)。ナビゲーションパスプロバイダおよび/またはナビゲーションサービスに対して接続および/または検証されると、ナビゲーションサービスおよび/またはトポロジは、1310において、アプリケーションのための規定ナビゲーションとして利用される。このようなナビゲーションは、例えば、逐次的ナビゲーション、ナビゲーションサブツリーナビゲーション、アドホックナビゲーション、トポロジナビゲーション、ジャーナルナビゲーションなどであることができる。さらに、ナビゲーションパスおよびトポロジは、ナビゲーションパス式(例えば、設計を行う間に作成されるオブジェクトモデル)と共に利用することができる。ナビゲーションパス式は、エレメントとフィルタを含み、この場合、サブツリーは追加されるかまたはパスから除外されることができる。パスをプログラム的に取り除くための各エレメントを式に追加できることは理解される筈である。さらに、コードは、ナビゲーションパスがナビゲーションルート(単数または複数)を記述するメタデータの集合として存続するように作成することができる。このメタデータの集合は、コードの生成に利用することができる。この場合、ナビゲーションパス式は強く型付けされる方法で組み立てることができる。
図14は、トポロジおよびナビゲーションパスを利用することによりナビゲーションの規定を容易にする方法1400を示す。1402において、メタデータが取得され、この場合、トポロジを基礎とすることができる。1404において、トポロジを自動的に作成するか否かを判断する。トポロジを自動作成すると判断すると、この方法は1406に進み、そこで機密保護機能のあるプロバイダからトポロジを入手する。トポロジを自動作成しないと判断するときは、1408においてトポロジを手動で作成する。この方法は、手動で作成されるトポロジと自動的に作成されるトポロジとの組合せを設けることができることは理解される筈である。
1410において、(例えば、自動的に、手動で、またはそれらの組合せで)作成されるトポロジ内部にナビゲーションパスを確立する。確立されると、ナビゲーションパスプロバイダ(例えば、ナビゲーションパスサービス)は、1412において保護され、および/または認証され、1414において、ナビゲーションパスおよびトポロジの追加を行う。接続し、および/または検証し、および/または追加させると、ナビゲーションパスおよびトポロジは、1416において、アプリケーションのための規定ナビゲーションとして利用される。このようなナビゲーションは、例えば、逐次的ナビゲーション、ナビゲーションサブツリーナビゲーション、アドホックナビゲーション、トポロジナビゲーション、ジャーナルナビゲーションなどであることができる。さらに、ナビゲーションパスおよびトポロジは、ナビゲーションパス式(例えば、設計を行う間に作成されるオブジェクトモデル)と共に利用することができる。さらに、コードは、ナビゲーションパスがナビゲーションルート(単数または複数)を記述するメタデータの集合として存続するように作成することができる。このメタデータの集合は、コードの生成に利用することができる。この場合、ナビゲーションパス式は強く型付けされる方法で組み立てることができる。このナビゲーションパス式は、エレメントとフィルタを含み、この場合、サブツリーは追加されるかまたはパスから除外されることができる。パスをプログラム的に取り除くための各エレメントを式に追加できることは理解される筈である。
本発明の各種態様を実装するための追加のコンテキストを提供するために、図15−16および以下の説明は、本発明の各種態様を実装するのに適するコンピューティング環境の簡単で一般的な記述を提供することを目的とする。本発明は、ローカルコンピュータおよび/またはリモートコンピュータ上で稼動するコンピュータプログラムのコンピュータ実行可能命令に関する一般的な文脈においてこれまで述べてきたが、当業者は、本発明は別のプログラムモジュールとの組合せにおいても実装されることを理解するであろう。一般的に、プログラムモジュールは、特定のタスクを実行するおよび/または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。
さらに、本発明の方法は、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、と同時に個人用コンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサに基づくおよび/またはプログラム可能な家電製品などを含み、それらの各々が動作可能に1つまたは複数の関連装置と通信する別のコンピュータシステム構成を用いても実施されるであろうことを、当業者は理解するであろう。本発明の説明する態様は、通信ネットワークを通じて連結されるリモート処理装置により一定のタスクが実行される分散コンピューティング環境においてもまた実施される。しかしながら、本発明の、全部ではないにしてもいくつかの態様は、独立型のコンピュータ上で実施されることがある。分散コンピューティング環境において、プログラムモジュールは、ローカルおよび/またはリモートのメモリ記憶装置に置かれる。
図15は、本発明が相互に作用することのできるサンプルコンピューティング環境1500の概略ブロック図である。システム1500は、1つまたは複数のクライアント1510を含む。クライアント(単数または複数)1510は、ハードウエアおよび/またはソフトウエア(例えば、スレッド、プロセス、コンピューティング装置)であることができる。システム1500は、1つまたは複数のサーバ1520も含む。サーバ(単数または複数)1520は、ハードウエアおよび/またはソフトウエア(例えば、スレッド、プロセス、コンピューティング装置)であることができる。サーバ1520は、スレッドを収容し、例えば、本発明を採用することにより変換を行う。
クライアント1510とサーバ1520との間の1つの可能な通信は、2つ以上のコンピュータプロセスの間で送信するのに適応するデータパケットの形であることができる。システム1500は、クライアント(単数または複数)1510とサーバ(単数または複数)1520との間の通信を容易にするのに採用することのできる通信フレームワーク1540を含む。クライアント(単数または複数)1510は、クライアント(単数または複数)1510のローカルにある情報を格納するのに採用することのできるクライアントデータストア(単数または複数)1550に動作可能に接続される。同様に、サーバ(単数または複数)1520は、サーバ1540のローカルにある情報を格納するのに採用することのできるサーバデータストア(単数または複数)1530に動作可能に接続される。
図16を参照すると、本発明の各種態様を実装するための例示的な環境1600は、コンピュータ1612を含む。コンピュータ1612は、処理装置1614、システムメモリ1616、およびシステムバス1618を含む。システムバス1618は、これらに限定されないが、システムメモリ1616を含むシステムコンポーネントを処理装置1614に対し結合する。処理装置1614は、利用可能な各種プロセッサのうち何でも差し支えない。デュアルマイクロプロセッサおよび別のマルチプロセッサアーキテクチャも処理装置1614として採用することができる。
システムバス1618は、メモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および/または、これらに限定されないが、業界標準アーキテクチャ(ISA)、マイクロチャンネルアーキテクチャ(MCA)、拡張ISA(EISA)、インテリジェントドライブエレクトロニクス(IDE)、VESAローカルバス(VLB)、周辺コンポーネント相互接続(PCI)、カードバス、ユニバーサルシリアルバス(USB)、アドバンスドグラフィックポート(AGP)、パーソナルコンピュータメモリカードインターナショナルアソシエーションバス(PCMCIA)、ファイヤワイヤ(IEEE 1394)、および小型コンピュータシステムインターフェース(SCSI)を含む利用可能な各種のバスアーキテクチャを用いるローカルバスを含む数個の型のバス構造体(単数または複数)のうち何れにもすることができる。
システムメモリ1616は、揮発性メモリ1620および不揮発性メモリ1622を含む。スタートアップの間などに、コンピュータ1612内部のエレメント間で情報を転送する基本ルーチンを収容する基本入出力システム(BIOS)は、不揮発性メモリ1622内に格納される。例として、限定としてではなく、不揮発性メモリは、読取専用メモリ(ROM)、プログラマブルROM(PROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)またはフラッシュメモリを含むことができる。揮発性メモリ1620は、外部キャッシュメモリとして働くランダムアクセスメモリ(RAM)を含む。例として、限定としてではなく、RAMは、スタティックRAM(SRAM)、ダイナミックRAM、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、エンハンストSDRAM(ESDRAM)、SynchlinkDRAM(SLDRAM)およびダイレクトRambusRAM(DDRAM)のような多数の形で入手することができる。
コンピュータ1612は、取り外し可能/固定の、揮発性/不揮発性コンピュータ記憶媒体も含む。図16は、ディスク記憶装置1624を示す。ディスク記憶装置1624は、これらに限定されないが、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックのような装置を含む。さらに、ディスク記憶装置1624は、個別に、または限定されないが、コンパクトディスクROM装置(CD−ROM)、CD記録可能ドライブ(CD−Rドライブ)CD書直し可能ドライブ(CD−RWドライブ)またはデジタル揮発性ディスクROMドライブ(DVD−ROM)のような光ディスクドライブを含む別の記憶媒体と組合せて含むことができる。ディスク記憶装置1624のシステムバス1618に対する接続を容易にするには、インターフェース1626取り外し可能または固定のインターフェースが典型的に利用される。
図16は、ユーザと基本的コンピュータリソースとの間で媒介として働く適切な動作環境1600内で記述されるソフトウエアを記述することは理解される筈である。このようなソフトウエアは、オペレーティングシステム1628を含む。オペレーティングシステム1628は、ディスク記憶装置1624に格納されることが出来て、コンピュータシステム1612のリソースをコントロールし割当てる働きをする。システムアプリケーション1630は、オペレーティングシステム1628によるリソースの管理を、システムメモリ1616内またはディスク記憶装置1624上の何れかに格納されるプログラムモジュール1632およびプログラムデータ1634を通じて、巧みに利用する。本発明は、各種オペレーティングシステムまたはオペレーティングシステムの組合せを用いて実装されることは理解される筈である。
ユーザは、入力装置(単数または複数)1636を通して、コマンドまたは情報をコンピュータ1612に入力する。入力装置1636は、これらに限定されないが、マウス、トラックボール、電子ペン、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送アンテナ、スキャナ、TVチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどのようなポインティングデバイスを含む。これらおよびその他の入力装置は、システムバス1618を通じインターフェースポート(単数または複数)1638を介して、処理装置1614に接続する。インターフェースポート(単数または複数)1638は、例えば、シリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルポート(USB)を含む。出力装置(単数または複数)1640は、入力装置(単数または複数)1636と同一型のいくつかのポートを使用する。したがって、例えば、USBポートは、コンピュータ1612に対し入力を提供し、コンピュータ1612から出力装置1640へ情報を出力することに使用される。出力アダプタ1642は、その他の出力装置1640内でもモニタ、スピーカ、およびプリンタのように特殊なアダプタを必要とするいくつかの出力装置があることを示すため提供される。出力アダプタ1642は、例としてであって限定ではなく、出力装置42とシステムバス1618との間の接続手段を提供するビデオおよびサウンドカードを含む。リモートコンピュータ(単数または複数)1644のような別の装置および/または装置のシステムは、入力および出力両方の能力を備えることに注意しなければならない。
コンピュータ1612は、リモートコンピュータ(単数または複数)1644のような、1つまたは複数のリモートコンピュータに対し論理接続を用いるネットワーク環境内で起動することができる。リモートコンピュータ(単数または複数)1644は、電気製品、ピア装置、またはその他の共通ネットワークノードなどに基づくパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサであることができ、コンピュータ1612に関連して記述したエレメントの多くまたは全部を典型的に含む。簡潔にする目的で、リモートコンピュータ(単数または複数)1644と共にメモリ記憶装置16461つのみを示す。リモートコンピュータ(単数または複数)1644は、コンピュータ1612に対し、ネットワークインターフェース1648を通じて論理的に接続され、次いで通信接続1650を介して物理的に接続される。ネットワークインターフェース1648は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)のような有線および/または無線の通信ネットワークを包含する。LAN技術は、Fiver Destributed Data Interface(FDDI)、Copper Distributed Data Interface(CDDI)、イーサネット(登録商標)、トークンリングなどを含む。WAN技術は、これらに限定されないが、ポイントツーポイントリンク、総合デジタル通信網(ISDN)とその変形のような回線切り替えネットワーク、パケット切り替えネットワーク、およびデジタル加入者回線(DSL)を含む。
通信接続(単数または複数)1650は、ネットワークインターフェース1648をバス1618に対し接続することに採用されるハードウエア/ソフトウエアを指す。通信接続1650は、説明を明確にするためコンピュータ1612の内部に示したけれども、コンピュータ1612に外付けとすることもできる。ネットワークインターフェース1648に対する接続のため必要なハードウエア/ソフトウエアは、例示的な目的のみで、一般回線用モデムを含むモデムのような内蔵および外付け技術、ケーブルモデムおよびDSLモデム、ISDNアダプタ、およびイーサネット(登録商標)カードを含む。
上述の事項は、本発明の例を含む。勿論、本発明を記述する目的のため、コンポーネントまたは方法の考えられるあらゆる組合せを記述することは不可能であるが、当業者は、本発明の多数の追加の組合せおよび置換えが可能であることを理解するであろう。依って、本発明は、付属請求項の精神と範囲内に該当するこのような代替案、変更、および変形全部を包容することを目的とする。
上述のコンポーネント、装置、回路、システムなどが行う各種機能に対し格別におよびそれに関連して、このようなコンポーネントを記述することに使用された用語は(「手段」に対する言及を含めて)、別途に示さない限り、開示する構造体に対し構造的に同等でなくとも、記述するコンポーネントの規定の機能を行う任意のコンポーネント(例えば、機能的同等物)であって、本発明のここに示す例示的態様における機能を行うコンポーネントに相当することを意味する。この関連で、本発明はシステムと同時に本発明の各種方法の動作および/またはイベントを行うためのコンピュータ実行可能命令を有するコンピュータ読取可能媒体をも含むことは理解される筈である。
さらに、本発明の特定の特徴を、いくつかの実施態様のうちの1つのみに関して開示したけれども、このような特徴は、所与のまたは特定の用途のため望まれ且つ利点があるとき、別の実施態様の別の特徴のうちの1つまたは複数と組み合わされることがある。さらに、用語「含む」および「含んでいる」並びにそれらの変形が詳細な記述または請求項のいずれかにおいて使用される範囲において、これらの用語は「包含している」と同様の方法で包括的であることを意味する。
規定ナビゲーションを用いてアプリケーションの開発を容易にする例示的システムのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にする例示的システムのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にする例示的アーキテクチャのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にする例示的システムのブロック図である。 アプリケーション内でナビゲーションの規定を容易にする例示的システムのブロック図である。 出発ノードおよび関連リンクを含む図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にするノードを有するカスタマフォームのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にするオブジェクトモデルのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にするオブジェクトモデルのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にするオブジェクトモデルのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にするオブジェクトモデルのブロック図である。 規定ナビゲーションを用いてアプリケーションの開発を容易にする例示的方法のフローチャートである。 規定ナビゲーションを用いてアプリケーションの開発を容易にする例示的方法のフローチャートである。 規定ナビゲーションを用いてアプリケーションの開発を容易にする例示的方法のフローチャートである。 本発明の新規側面を採用することのできる例示的ネットワーク環境を示す図である。 本発明の新規側面を採用することのできる例示的動作環境を示す図である。

Claims (14)

  1. メモリに接続されたプロセッサと、
    アプリケーションの設計を行う間に、規定ナビゲーションを提供してハイパーメディアシステムにおけるアプリケーションの開発を容易にする規定コンポーネントであって、前記規定ナビゲーションは、トポロジおよび少なくとも1つのナビゲーションパスを含み、前記規定コンポーネントは、
    ノードオブジェクトがリンクオブジェクトと相互接続されるように、ビジネスフレームワークに関連する受信したメタデータに基づいて、ノードオブジェクトおよびリンクオブジェクトのネットワークを含むトポロジを、アプリケーションの設計を行う間に作成するトポロジコンポーネントであって、前記ノードオブジェクトはインスタンスを表し、前記リンクオブジェクトは前記インスタンス間のトラバース可能な関係を表す、トポロジコンポーネントと、
    前記トポロジに含まれるリンクオブジェクトの逐次的リストおよびルートノードオブジェクトを含むナビゲーションパスを、アプリケーションの設計を行う間に作成するナビゲーションコンポーネントであって、前記リンクオブジェクトは前記トポロジの他のノードにリンクしており、前記ナビゲーションパスは、ナビゲーションルートを記述するメタデータの集合として維持され、前記メタデータの集合は、強く型付けする方法で構成されたナビゲーション式を含むコードを生成するために利用される、ナビゲーションコンポーネントと、
    前記ナビゲーションパスのノードにコンテキストを提供するナビゲーションパスプロバイダ前記生成されたトポロジおよびナビゲーションパスを含むナビゲーションパスサービスと、
    ランタイムの間、前記ナビゲーションパスサービスと通信して前記ナビゲーションパスに対応する一連のユーザインターフェースを表示し、前記トポロジのノードをフィルタリングすることにより前記ナビゲーションパスを識別するナビゲーション式を提供するアプリケーションであって、前記ナビゲーション式は、前記ナビゲーションパスサービスが開始ノードにコンテキストをバインドし、前記開始ノードのユーザインターフェースを前記アプリケーションに返すことにより、前記ナビゲーションパスをインスタンス化するように、前記トポロジおよび関連コードに基づき、アプリケーションの設計を行う間に作成されたオブジェクトモデルであり、前記ユーザインターフェースは、少なくとも1つのユーザインターフェースオブジェクトが前記ユーザインターフェース内で選択されたとき、第2のユーザインターフェースが生成されて前記アプリケーションに返さえるように、前記トポロジの前記開始ノードと他のノードをリンクするリンクオブジェクトを表す少なくとも1つのユーザインターフェースオブジェクトを含み、前記第2のユーザインターフェースは、前記ナビゲーションパスサービスによって提供されたコンテキストにバインドされた他のノードを表す、アプリケーションと、
    ユーザインターフェースが前記アプリケーションに返される前記一連のノードが保持されたジャーナルであって、前記規定コンポーネントは前記ジャーナルを使用して前記アプリケーションによってトラバースされた前記一連のノードに対応する新しいナビゲーションパスを生成する、ジャーナルと、
    ナビゲーションパス式で前記トポロジ内のノードをフィルタリングすることによりナビゲーションパスを作成するフィルタと
    を含む、規定コンポーネントと、
    を備えたことを特徴とするアプリケーションの開発を容易にするためのシステム。
  2. 前記トポロジおよびナビゲーションパスは、アプリケーションの設計を行う間にメタデータを用いて作成されることを特徴とする請求項1に記載のシステム。
  3. 前記ノードオブジェクトは、別のノードに対するリンクリストおよび関連データコンテンツを含むビゲーションの状態を表すことを特徴とする請求項1に記載のシステム。
  4. 前記ノードオブジェクトは、少なくとも次のうちの1つ、すなわちエンティティ、クエリ、タスク、およびプロバイダからクエリ可能な情報源のうちの1つであることを特徴とする請求項1に記載のシステム。
  5. 前記リンクオブジェクトは、次のうちの1つ、すなわちソースおよび相手先ノードへの参照、ならびに相手先ノードに対するアクセスを提供するプロバイダへの要求のうちの1つを行うことを特徴とする請求項1に記載のシステム。
  6. ルートノードを識別し、サブグラフを削減することにより前記トポロジから前記ナビゲーションパスを作成するモデルエディタをさらに備えることを特徴とする請求項1に記載のシステム。
  7. 前記トポロジを手動作成するユーザインターフェースツールをさらに備えたことを特徴とする請求項1に記載のシステム。
  8. エンティティグラフ、ビジネスインテリジェンスメタデータ、およびビジネスインテリジェンスジャーナルのうちの少なくとも1つを利用して、自動的に前記トポロジを作成する自動コンポーネントをさらに備えたことを特徴とする請求項1に記載のシステム。
  9. クライアントアプリケーションと少なくとも1つのナビゲーションパスプロバイダとの間の通信を管理して、設計時において前記トポロジメタデータの作成を可能にするナビゲーションパスプロバイダインフラストラクチャをさらに備えたことを特徴とする請求項1に記載のシステム。
  10. 前記ナビゲーションパスプロバイダインフラストラクチャは、ナビゲーションパスサービスを提供し、変換および/または情報抽出機構を通して、コンテキストノードにアクセスするナビゲーションパスプロバイダを含むことを特徴とする請求項9に記載のシステム。
  11. 前記情報抽出機構は、次のうちの少なくとも1つ、すなわち操作のためのタスク、およびナビゲーションパスプロバイダからクエリ可能である情報のうちの少なくとも1つを含むことを特徴とする請求項10に記載のシステム。
  12. 次のうちの1つ、すなわちナビゲーションの履歴を記録するジャーナル、およびメタデータにより駆動されるユーザインターフェースに対するバインディングを可能にするユーザインターフェースバインディングのうちの1つをさらに備えることを特徴とする請求項1に記載のシステム。
  13. アプリケーション内でナビゲーションを規定することを容易にするコンピュータ実装方法であって、
    プロセッサ、トポロジおよび少なくとも1つのナビゲーションパスを含む規定ナビゲーションを生成するステップであって、
    アプリケーションの設計を行う間に、ビジネスワークフレームワークに関連するメタデータを受信するステップと、
    前記メタデータに基づきアプリケーションの設計を行う間にトポロジを作成するステップであって、前記トポロジは、ノードオブジェクトがリンクオブジェクトと相互接続されるように、受信したメタデータに基づくノードオブジェクトおよびリンクオブジェクトのネットワークを含み、前記ノードオブジェクトはインスタンスを表し、前記リンクオブジェクトは前記インスタンス間のトラバース可能な関係を表す、ステップと、
    アプリケーションの設計を行う間に、前記トポロジのサブグラフとしてナビゲーションパスを確立するステップであって、前記ナビゲーションパスは、前記トポロジに含まれたリンクオブジェクトの逐次的リストに関連付けられたルートノードを含み、前記ナビゲーションパスは、ナビゲーションルートを記述するメタデータの集合として維持され、前記メタデータの集合は、強く型付けする方法で構成されたナビゲーション式を含むコードを生成するために利用される、ステップと、
    実行中のアプリケーションからの要求を、前記ナビゲーションパスのノードにコンテキストを提供するナビゲーションパスプロバイダ、前記生成されたトポロジおよびナビゲーションパスを含むナビゲーションパスサービスにおいて受信して前記ナビゲーションパスに対応する一連のユーザインターフェースを表示するステップであって、前記アプリケーションは、前記トポロジのノードをフィルタリングすることにより前記ナビゲーションパスを識別し、前記ナビゲーション式は、前記トポロジおよび関連コードに基づき、アプリケーションの設計を行う間に作成されたオブジェクトモデルである、ステップと、
    前記ナビゲーションパスサービスが開始ノードにコンテキストをバインドし、前記開始ノードのユーザインターフェースを前記アプリケーションに返すことにより、前記ナビゲーションパスをインスタンス化するステップであって、前記ユーザインターフェースは、前記トポロジの前記開始ノードと他のノードをリンクするリンクオブジェクトを表す少なくとも1つのユーザインターフェースオブジェクトを含む、ステップと、
    前記少なくとも1つのユーザインターフェースオブジェクトの選択に関する前記アプリケーションからの要求を受信するステップと、
    第2のユーザインターフェースを作製して前記アプリケーションに返すステップであって、前記第2のユーザインターフェースは、前記ナビゲーションパスサービスによって提供されたコンテキストにバインドされた他のノードを表す、ステップと、
    ユーザインターフェースが前記アプリケーションに返される前記一連のノードが保持されたジャーナルを格納するステップであって、前記規定コンポーネントが前記ジャーナルを使用して前記アプリケーションによってトラバースされた前記一連のノードに対応する新しいナビゲーションパスを生成するステップと
    を含む、規定ナビゲーションを生成するステップを備えたことを特徴とするコンピュータ実装方法。
  14. 前記トポロジは、トラバース可能なオブジェクトとパスのサブセットを表すノードオブジェクトとリンクオブジェクトのネットワークであり、前記ナビゲーションパスは、トポロジにわたるリンクの逐次的リストであることを特徴とする請求項13に記載の方法。
JP2005351274A 2005-01-05 2005-12-05 トポロジメタデータおよびナビゲーションパスを用いる規定ナビゲーション Expired - Fee Related JP5174320B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/029,953 US7650349B2 (en) 2005-01-05 2005-01-05 Prescribed navigation using topology metadata and navigation path
US11/029,953 2005-01-05

Publications (2)

Publication Number Publication Date
JP2006190261A JP2006190261A (ja) 2006-07-20
JP5174320B2 true JP5174320B2 (ja) 2013-04-03

Family

ID=35852135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005351274A Expired - Fee Related JP5174320B2 (ja) 2005-01-05 2005-12-05 トポロジメタデータおよびナビゲーションパスを用いる規定ナビゲーション

Country Status (5)

Country Link
US (1) US7650349B2 (ja)
EP (1) EP1679588B1 (ja)
JP (1) JP5174320B2 (ja)
KR (1) KR101169091B1 (ja)
CN (1) CN1801150B (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7492716B1 (en) * 2005-10-26 2009-02-17 Sanmina-Sci Method for efficiently retrieving topology-specific data for point-to-point networks
FR2906382B1 (fr) * 2006-09-25 2008-11-14 Canon Kk Procedes et dispositifs pour optimiser le traitement xml
US20090319955A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Techniques for a navigation based design tool
US8565075B2 (en) * 2008-10-30 2013-10-22 Verizon Patent And Licensing Inc. Method and system for determining alternate paths
CA2744240C (en) 2008-12-02 2019-06-18 Ab Initio Technology Llc Visualizing relationships between data elements and graphical representations of data element attributes
US8384776B2 (en) * 2009-04-22 2013-02-26 Toyota Motor Engineering And Manufacturing North America, Inc. Detection of topological structure from sensor data with application to autonomous driving in semi-structured environments
KR101615707B1 (ko) * 2009-09-17 2016-04-26 삼성전자주식회사 데이터 처리 장치 및 방법
US20120030612A1 (en) * 2010-07-30 2012-02-02 Sap Ag Dynamic property attributes
US8307277B2 (en) * 2010-09-10 2012-11-06 Facebook, Inc. Efficient event delegation in browser scripts
WO2012103665A1 (en) 2011-01-31 2012-08-09 Hewlett-Packard Development Company, L.P. Methods and systems to generate reports including report references for navigation
US9189220B2 (en) * 2012-07-02 2015-11-17 Amazon Technologies, Inc. Evaluating application compatibility
EP2951667A4 (en) * 2013-01-31 2016-12-14 Hewlett Packard Entpr Dev Lp DEFINITION OF A DESIGN PLAN
US10331686B2 (en) * 2013-03-14 2019-06-25 Microsoft Corporation Conducting search sessions utilizing navigation patterns
US9558047B1 (en) * 2013-09-19 2017-01-31 EMC IP Holding Company LLC Navigation payload detection
US9626471B2 (en) * 2014-02-21 2017-04-18 Dassault Systemes Americas Corp. Methods and systems for filtering components in hierarchically-referenced data
US9846703B2 (en) * 2014-09-30 2017-12-19 Vivint, Inc. Page-based metadata system for distributed filesystem
WO2018102691A1 (en) * 2016-12-01 2018-06-07 Ab Initio Technology Llc Generating, accessing, and displaying lineage metadata
US11693832B2 (en) * 2018-03-15 2023-07-04 Vmware, Inc. Flattening of hierarchical data into a relational schema in a computing system
CN110347752B (zh) * 2018-04-11 2023-07-11 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读存储介质和计算机设备
JP7487494B2 (ja) * 2020-03-02 2024-05-21 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
CN111581444A (zh) * 2020-04-29 2020-08-25 北京同创永益科技发展有限公司 一种编辑和展示拓扑图的方法及装置
US11212336B2 (en) 2020-04-30 2021-12-28 Software Ag Systems and/or methods for dynamically configuring and evaluating rules with dynamic and/or user inputs at runtime
US10992540B1 (en) 2020-05-19 2021-04-27 Cisco Technology, Inc. Determining formal models using weighting factors for computing elements in multi-cloud environments
US11283688B2 (en) 2020-05-19 2022-03-22 Cisco Technology, Inc. Delayed recomputation of formal network topology models based on modifications to deployed network topologies
US11424989B2 (en) 2020-06-15 2022-08-23 Cisco Technology, Inc. Machine-learning infused network topology generation and deployment
US11398948B2 (en) * 2020-06-29 2022-07-26 Cisco Technology, Inc. Generation and deployment of inherited network topology models

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236907B1 (en) * 1995-05-30 2001-05-22 Ag-Chem Equipment Co., Inc. System and method for creating agricultural decision and application maps for automated agricultural machines
US5878431A (en) * 1996-10-04 1999-03-02 Hewlett-Packard Company Method and apparatus for providing topology based enterprise management services
US6131098A (en) * 1997-03-04 2000-10-10 Zellweger; Paul Method and apparatus for a database management system content menu
US5835905A (en) * 1997-04-09 1998-11-10 Xerox Corporation System for predicting documents relevant to focus documents by spreading activation through network representations of a linked collection of documents
US6393386B1 (en) * 1998-03-26 2002-05-21 Visual Networks Technologies, Inc. Dynamic modeling of complex networks and prediction of impacts of faults therein
US6633878B1 (en) * 1999-07-30 2003-10-14 Accenture Llp Initializing an ecommerce database framework
US6718535B1 (en) * 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US20020198994A1 (en) * 2001-05-15 2002-12-26 Charles Patton Method and system for enabling and controlling communication topology, access to resources, and document flow in a distributed networking environment
US7099885B2 (en) * 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
GB2376094A (en) 2001-05-30 2002-12-04 Ibm Flexible navigation of a workflow graph in a data processing system
US20030009552A1 (en) * 2001-06-29 2003-01-09 International Business Machines Corporation Method and system for network management with topology system providing historical topological views
US8413205B2 (en) * 2001-09-19 2013-04-02 Tvworks, Llc System and method for construction, delivery and display of iTV content
US20030131097A1 (en) 2002-01-09 2003-07-10 Stephane Kasriel Interactive path analysis
US7512932B2 (en) * 2002-03-22 2009-03-31 Sun Microsystems, Inc. Language and object model for describing MIDlets
US20030225778A1 (en) * 2002-05-28 2003-12-04 Craig Fisher System and methods for generating a customer specific catalog from a base catalog
US7319906B2 (en) * 2002-09-19 2008-01-15 Advanced Bionics Corporation Cochlear implant electrode and method of making same
US7739223B2 (en) * 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
US7454701B2 (en) * 2003-10-30 2008-11-18 Sap Ag Systems and methods for implementing formulas
US7313565B2 (en) * 2004-02-19 2007-12-25 Microsoft Corporation Data overlay, self-organized metadata overlay, and associated methods
EP1577776B1 (en) * 2004-03-18 2007-05-02 Alcatel Lucent Method and apparatus for data synchronization in a distributed data base system

Also Published As

Publication number Publication date
KR101169091B1 (ko) 2012-07-26
US7650349B2 (en) 2010-01-19
EP1679588B1 (en) 2013-05-22
CN1801150A (zh) 2006-07-12
EP1679588A3 (en) 2008-01-23
JP2006190261A (ja) 2006-07-20
KR20060080527A (ko) 2006-07-10
US20060149782A1 (en) 2006-07-06
EP1679588A2 (en) 2006-07-12
CN1801150B (zh) 2011-05-18

Similar Documents

Publication Publication Date Title
JP5174320B2 (ja) トポロジメタデータおよびナビゲーションパスを用いる規定ナビゲーション
US10355941B2 (en) Sensor data handling for cloud-platform infrastructure layouts
US7673340B1 (en) System and method for analyzing system user behavior
US11409904B2 (en) User interface for building a data privacy pipeline and contractual agreement to share data
US20180173606A1 (en) Hybrid testing automation engine
US8489474B2 (en) Systems and/or methods for managing transformations in enterprise application integration and/or business processing management environments
US7421699B2 (en) Service meta model for an enterprise service architecture
US20050262119A1 (en) Data processing systems and methods
Fill SeMFIS: a flexible engineering platform for semantic annotations of conceptual models
CN115017182A (zh) 一种可视化的数据分析方法及设备
CA2902128C (en) System architecture for cloud-platform infrastructure layouts
Annighoefer et al. EOQ: An open source interface for a more DAMMMMN domain-specific model utilization
Valderas et al. Introducing requirements traceability support in model-driven development of web applications
Bibartiu et al. Clams: a cloud application modeling solution
Reynolds et al. Oracle SOA Suite 11g R1 Developer's Guide
Biehl GraphQL API Design
US20080071840A1 (en) Introducing Multi-Level Nested Kits Into Existing E-Commerce Systems
Subramanian et al. MongoDB
Abdalimov Pokročilý Firemní Issue Tracker
Jarmolinski Configuration management database integration with IPAM database for cloud computing company
Challita Inferring Models from Cloud APIs and Reasoning over Them: A Tooled and Formal Approach
GB2414572A (en) Aggregating access to disparate data and service systems
Salman Design and prototypical implementation of a web application: network log correlation system
Salfischberger Design Patterns for Runtime Variability of Business Software as a Service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120803

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121228

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees