(57)【特許請求の範囲】
【請求項１】
拡張性フレームワークを提供するプロセッサにより実行されるコンピュータ実装方法であって、
可視化プラットフォームをインスタンス化するステップと、
前記可視化プラットフォームで少なくとも１つの機能の拡張を登録するステップであって、前記可視化プラットフォームは、前記少なくとも１つの機能の拡張と、少なくとも１つのユーザアプリケーションとの間の中間インターフェースを備える、登録するステップと、
前記少なくとも１つのユーザアプリケーションから少なくとも１つのオブジェクトを作成するための要求を受信するステップと、
前記可視化プラットフォームにより、前記少なくとも１つのオブジェクトを作成するステップと、
前記要求が前記少なくとも１つの機能の拡張に関連付けられていることを判定するステップと、
前記要求が前記少なくとも１つの機能の拡張に関連付けられていることを判定するステップに応答して、
前記少なくとも１つの機能の拡張から少なくとも１つのオブジェクトの変更を受信するステップと、
前記少なくとも１つのオブジェクトの変更が前記少なくとも１つのオブジェクトのタイプと互換性があるかを検証するステップと、
前記少なくとも１つのオブジェクトの変更の互換性に従い前記オブジェクトを変更するステップと、
ディスプレイデバイス上に前記オブジェクトをレンダリングするステップと
を備えることを特徴とする方法。
【請求項２】
前記少なくとも１つのユーザアプリケーションは、前記ディスプレイデバイス上に前記オブジェクトをレンダリングすることを特徴とする請求項１に記載の方法。
【請求項３】
前記少なくとも１つのユーザアプリケーションから少なくとも１つの第２のオブジェクトの変更を受信するステップと、
前記少なくとも１つの第２のオブジェクトの変更に従いオブジェクトを変更するステップと
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記要求を受信するステップは、可視化のタイプ及び少なくとも１つのデータ値を受信するステップを備え、
前記オブジェクトは、前記要求された可視化のタイプの可視化オブジェクトを備え、
前記可視化プラットフォームは、前記可視化タイプ及び前記少なくとも１つのデータ値についての指示を描く少なくとも１つのデフォルトを備える
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記少なくとも１つのユーザアプリケーションは、前記可視化プラットフォームがユーザに前記複数のオブジェクトを作成及び表示するよう作動する前記複数のオブジェクトを判定するよう作動することを特徴とする請求項１に記載の方法。
【請求項６】
前記可視化プラットフォームが作成するよう作動する前記複数のオブジェクトを判定するステップは、前記可視化プラットフォームから前記複数のオブジェクトのリストを取り出すステップを備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記可視化プラットフォームが作成するよう作動する前記複数のオブジェクトを判定するステップは、前記少なくとも１つの機能の拡張についての少なくとも１つの位置を検索するステップを備えることを特徴とする請求項５に記載の方法。
【請求項８】
前記要求が前記少なくとも１つの機能の拡張に関連づけられるか否かを判定するステップは、前記少なくとも１つの機能の拡張が以下の少なくとも１つ、つまり少なくとも１つのデータ値及び少なくとも１つの描く指示、を備えるか否かを判定するステップを備えることを特徴とする請求項１に記載の方法。
【請求項９】
前記少なくとも１つの機能の拡張からの前記少なくとも１つのオブジェクトの変更は、
前記オブジェクトを作成するために前記可視化プラットフォームにより使用される少なくとも１つの描く指示を無効化する描く指示を備えることを特徴とする請求項１に記載の方法。
【請求項１０】
前記少なくとも１つの機能の拡張からの前記少なくとも１つのオブジェクトの変更は、
前記オブジェクトを作成するために前記可視化プラットフォームにより使用される少なくとも１つの描く指示を追加する描く指示を備えることを特徴とする請求項１に記載の方法。
【請求項１１】
前記少なくとも１つの機能の拡張からの前記少なくとも１つのオブジェクトの変更は、
前記オブジェクト上に表示される複数のデータ位置を備えることを特徴とする請求項１に記載の方法。
【請求項１２】
アプリケーションの拡張性を提供するためのシステムであって、
前記システムは、
メモリーストレージと、
前記メモリーストレージに結合される処理ユニットであって、
可視化プラットフォームをインスタンス化し、
前記可視化プラットフォームで使用するために作動する少なくとも１つの機能の拡張を位置付け、前記可視化プラットフォームは、前記少なくとも１つの機能の拡張と、少なくとも１つのユーザアプリケーションとの間の中間インターフェースを備え、
少なくとも１つのユーザアプリケーションから少なくとも１つのオブジェクトを作成する要求を受信し、
前記少なくとも１つのオブジェクトを作成し、
前記要求が前記少なくとも１つの機能の拡張に関連付けられているか否かを判定し、
前記要求が前記少なくとも１つの機能の拡張に関連付けられることの判定に応答して、
前記少なくとも１つの機能の拡張から少なくとも１つのオブジェクトの変更を受信し、
前記少なくとも１つのオブジェクトの変更が少なくとも１つのオブジェクトのタイプと互換性を有するか検証するステップと、
前記少なくとも１つのオブジェクトの変更の互換性に従い前記オブジェクトを変更し、
ディスプレイデバイス上に前記オブジェクトをレンダリングする
よう作動する前記処理ユニットと
を備えることを特徴とするシステム。
【請求項１３】
前記可視化プラットフォームに関連付けられた前記メモリーストレージのメモリ位置に前記オブジェクトを記憶し、
前記アプリケーションと前記機能の拡張により前記メモリ位置へのアクセスを制御することを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記可視化プラットフォームで使用するために作動する少なくとも１つの機能の拡張を位置付けるように作動することは、前記少なくとも１つの機能の拡張のために前記メモリートレージの予め定義されたメモリ位置を検索するように作動することを備えることを特徴とする請求項１２に記載のシステム。
【請求項１５】
複数のソフトウェアオペレーティングシステムの少なくとも１つを実行し、
複数のソフトウェアオペレーティングシステムの少なくとも１つの実行にもかかわらず、前記少なくとも１つの特徴の拡張を利用するように作動することをさらに含むことを特徴とする請求項１２に記載のシステム。
【請求項１６】
前記作成されたオブジェクトは、複数のユーザアプリケーションで共有することを特徴とする請求項１２に記載のシステム。
【請求項１７】
前記可視化プラットフォームが前記少なくとも１つのユーザアプリケーションを作成するために作動するオブジェクトのリストを提供するよう作動することをさらに備え、前記可視化プラットフォームが作成するために作動するオブジェクトのリストが、前記少なくとも１つの機能の拡張から前記少なくとも１つのオブジェクトの変更を要求する少なくとも１つのオブジェクトを備えることを特徴とする請求項１２に記載のシステム。
【請求項１８】
前記少なくとも１つのユーザアプリケーションのために前記可視化のプラットフォームが作成するよう作動するオブジェクトのリストを提供するよう作動することは、前記少なくとも１つのユーザアプリケーションが前記少なくとも１つの機能の拡張と互換性があるか否かを判定するよう作動し、
前記少なくとも１つのユーザアプリケーションが前記少なくとも１つの機能の拡張に互換しないことの判定に応答して、前記可視化プラットフォームが作成するために作動する前記オブジェクトのリストから前記少なくとも１つの機能の拡張に関連付けられた少なくとも１つのオブジェクトを保留する
ことを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記少なくとも１つのオブジェクトの変更に従い前記オブジェクトを変更するように作動することは、描く指示の無効化及び少なくとも１つの追加の描く要素の少なくとも１つを備える、受信するように作動することを含むことを特徴とする請求項１２に記載のシステム。
【請求項２０】
実行されるときアプリケーションの拡張性フレームワークを提供する方法を実施する指示のセットを格納するコンピュータ読み取り可能な記録媒体であって、前記指示のセットにより実行される方法は、
可視化プラットフォームをインスタンス化するステップと、
少なくとも１つの機能の拡張を前記可視化プラットフォームに登録するステップであって、前記可視化プラットフォームは、前記少なくとも１つの機能の拡張と、少なくとも１つのユーザアプリケーションとの間の中間インターフェースを備える、登録するステップと、
前記可視化プラットフォームが少なくとも１つのアプリケーションを作成するよう作動するオブジェクトのリストを提供するステップであって、前記オブジェクトのリストが、可視化プラットフォームが作成するために前記少なくとも１つの機能の拡張を要求する、提供するステップと、
前記少なくとも１つのアプリケーションから少なくとも１つの前記オブジェクトのリストを作成する要求を受信するステップであって、前記要求が前記アプリケーションに提供される前記オブジェクトのリストからのユーザ選択を備える、受信するステップと、
前記可視化プラットフォームにより提供され、要求されたオブジェクトのタイプに関連付けられた少なくとも１つの描く指示に従い少なくとも１つの要求されたオブジェクトを作成するステップと、
前記要求されたオブジェクトは、前記少なくも１つの機能の拡張に関連付けられているかを判定するステップと、
前記要求が少なくとも１つの機能の拡張に関連付けられることを判定するステップに応答して、前記少なくとも１つの機能の拡張が前記少なくとも１つのアプリケーションと互換性があることを判定するステップであって、前記少なくとも１つの機能の拡張が前記少なくとも１つのアプリケーションと互換性があるか否かを判定するステップは、前記少なくとも１つのアプリケーションが互換性のあるリリースバージョンを備えるか否かを判定するステップ、及び前記少なくとも１つのアプリケーションが前記少なくとも１つの機能の拡張を使用するためのライセンスを備えるか否かを判定するステップのうちの少なくとも１つを備える、判定するステップと、
前記少なくとも１つの機能の拡張が前記少なくとも１つのアプリケーションと互換性があるか否かを判定するステップに応答して、
前記少なくとも１つの機能の拡張からの少なくとも１つのオブジェクトの変更を受信するステップであって、前記少なくとも１つのオブジェクトの変更が、描く指示の無効化及び少なくとも１つの追加の描く要素の少なくとも１つを備える、受信するステップと、
前記少なくとも１つのオブジェクトの変更が前記少なくとも１つのオブジェクトのタイプと互換性があることを検証するステップと、
前記少なくとも１つのオブジェクトの変更の互換性に従い前記オブジェクトを変更するステップと、
前記アプリケーションによりディスプレイデバイス上に前記オブジェクトをレンダリングするステップと
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションの拡張性フレームワークを提供する方法、これを提供するシステム、及び、これを実施する指示を格納するコンピュータ可読記録媒体に関する。
【背景技術】
【０００２】
プラットフォームの拡張性は、ソフトウェアアプリケーションと通信するためのプラグイン機能を可能にするフレームワークを提供する。いくつかの状況において、製品のリリースのスケジュールは、新しい機能がアプリケーションに組み込まれるときを定める。例えば、新しいアプリケーションのバージョンが年次でリリースされるが、ユーザは新しい機能をより頻繁に要求する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従って、従来の戦略は、それぞれのスケジュールされたリリースにおいて選択された機能を組み込むことになる。従来の戦略がユーザの要求に常に反応するわけではないので、これが多くの問題を生じさせる。例えば、要求された機能は、アプリケーションのリリースに組み込まれるのに数年かかり、顧客の不満という結果になることがある。
【課題を解決するための手段】
【０００４】
プラットフォームの拡張性フレームワークを提供する。この課題を解決するための手段は、発明を実施するための形態において以下でさらに説明される簡略化された形式で概念の選択を紹介するために提供される。この課題を解決するための手段は、特許請求された主題の重要な特徴又主要な特徴を特定することを意図されない。この課題を解決するための手段は、特許請求された主題の範囲を限定するために使用されることも意図しない。
【０００５】
プラットフォームの拡張性フレームワークを提供する。可視化プラットフォームは、機能の拡張を登録し、オブジェクトを作成するための要求を受信する。可視化プラットフォーム、オブジェクトの作成を要求するアプリケーション及び／又は少なくとも１つの機能の拡張により提供される指示を描くことにより、オブジェクトを作成する。
【０００６】
以上の一般的な説明及び以下の発明を実施するための形態の両方共、例を提供し、説明のためのみである。したがって以上の一般的な説明及び以下の発明を実施するための形態は、限定的であると考慮されるべきではない。さらに、特徴又は変形が、本明細書で説明されるものに加えて提供される。例えば、実施形態は、発明を実施するための形態で説明される様々な機能の組み合わせ、又は、従属した組み合わせを目的とすることができる。
【０００７】
この開示に組み込まれて一部を構成する添付の図面は、本発明の様々な実施形態を示す。
【図面の簡単な説明】
【０００８】
【図１】オペレーティング環境のブロック図を示す図である。
【図２】プラットフォームの拡張性フレームワークを提供するための方法のフローチャートを示す図である。
【図３】コンピューティングデバイスを含むシステムのブロック図を示す図である。
【発明を実施するための形態】
【０００９】
以下の発明を実施するための形態は、添付の図面を参照する。可能な限り図面及び以下の説明において同じ又は同様の要素を参照するために、同じ参照番号が使用される。本発明の実施形態が説明される一方で、変更、適応及び他の実装が可能である。例えば、置き換え、追加、又は、変更を図面において示される要素に成し、そして本明細書で説明される方法は開示の方法に置き換え、順序付け直し、段階を追加することにより変更される。従って以下の発明を実施するための形態は本発明を限定しない。代わりに、本発明の正規の範囲は添付の特許請求の範囲により定義される。
【００１０】
プラットフォームの拡張性フレームワークを提供する。本発明の実施形態に合致して、可視化プラットフォームは、ユーザアプリケーション及び拡張された機能を提供するアドオン間の仲介を提供する。アドオンは第三者により開発され、正式な製品リリースを待つ必要なく可視化プラットフォームについてのサポートを含む任意のアプリケーションにより使用される。
【００１１】
図１は、可視化プラットフォーム１１０を提供するためのオペレーティング環境１００のブロック図である。可視化プラットフォーム１１０は、オブジェクトマネジャ１１５及びレイアウトエンジン１２０を含むことができる。可視化プラットフォーム１１０は、チャート等のデータ可視化の作成を可能にするアーキテクチャを含み、可視化の上での対話型の機能をさらす。このアーキテクチャは、複数のレンダリングプラットフォームとの統合を提供する。ユーザがさらされた機能を選択するとき、アーキテクチャは、共通フォーマットに選択を解釈し、レンダリングプラットフォームと独立しているレイアウトルールに従ってデータ可視化を変更できる。
【００１２】
オペレーティング環境１００は、機能の拡張１３０、レンダリングコンポーネント１４５を含むアプリケーション１４０、及び、出力デバイス１５０をさらに含む。例えば、機能の拡張１３０は、描く指示の無効化、データの追加、及び／又は、追加の描く要素を提供する機能性アドオンを含む。例えば、アプリケーション１４０は、ワード処理アプリケーション、表計算アプリケーション、ウェブブラウザ、電子メールアプリケーション、及び／又は、他のソフトウェアアプリケーション等のユーザアプリケーションを含む。例えば、出力デバイス１５０は、画面、プリンタ、電子ドキュメント、及び／又は、ウェブページを含む。
【００１３】
可視化プラットフォーム１１０は、対話型の可視化を提供するためのソフトウェアのライブラリ及び／又は、ユーティリティを含む共有コアを含む。共有コアは、例えばＣ＋＋又はＣ＃で実装され、独立したプラットフォームであることがある。共有コアは、レイアウト、形、及び／若しくは、配置を提供するための可視化ユーティリティ、行サービス、３次元ユーティリティ、アニメーションフレーム生成、並びに／又は、対話型ホットスポットを含む。可視化プラットフォーム１１０は、アプリケーション１４０、及び／又は、機能の拡張１３０と対話するためのＡＰＩ（application programming interface）をさらに含む。
【００１４】
アプリケーション１４０、及び、機能の拡張１３０は、可視化プラットフォーム１１０とのインターフェースを取り、アプリケーション１４０により出力デバイス１５０にレンダリングされるメモリ内にオブジェクトを作成する。機能の拡張１３０は、アプリケーション１４０と直接よりむしろ、可視プラットフォーム１１０とインターフェースを取ることができる。アプリケーション１４０、及び、機能の拡張１３０は、協働して一緒に及び独立した方式で作成されることを許容される。例えば、アプリケーション１４０は、関連付けられたデータ束でチャートオブジェクトを作成し、機能の拡張は、データオブジェクトの説明文、及び、系列を作成することができる。本発明の実施形態に合致して、機能の拡張１３０は、オブジェクトを作成できるが、アプリケーション１４０にデータを提供したままである。
【００１５】
オペレーティング環境１００と独立したオペレーティングシステムは、可視化プラットフォーム１１０の複数のバージョンによりサポートされる。可視化プラットフォーム１１０は、ワシントン州レドモンド（Ｒｅｄｍｏｎｄ、ＷＡ）のマイクロソフト社（登録商標）により開発された．ＮＥＴプロトコルを使用して実装されるＤＬＬ（dynamically linked library）において等、プラットフォームに依存しないコードを使用して実装される。従って、機能の拡張１３０は、プラットフォームに依存しないコードをサポートする任意のオペレーティングシステム上で作動するアドオンを含むことができる。本発明の実施形態に合致して、アプリケーションは、プラットフォームに依存しないコードをサポートしないが、プラットフォームに依存しない機能の拡張１４０の使用をサポートすることができる。
【００１６】
図２は、プラットフォームの拡張性フレームワークを提供するための本発明の実施形態に合致した方法２００において引き起こされる一般の段階を説明するフローチャートである。方法２００は、図３に関して、以下でより詳細に説明されるように、コンピューティングデバイス３００を使用して実装される。方法２００の段階を実装する方法は、以下でより詳細に説明されることになる。方法２００は、開始ブロック２０５で開始し、コンピューティングデバイス３００が、可視化プラットフォームをインスタント化する段階２１０に進む。例えば、コンピューティングデバイス３００は、複数の環境、及び／又は、オペレーティングシステムにおける実行を作動する単一コードのベースを含む可視化プラットフォーム１１０をインスタンス化できる。
【００１７】
コンピューティングデバイス３００がインスタント化された段階２１０から、方法２００は、コンピューティングデバイス３００が可視化プラットフォームに少なくとも１つの機能の拡張を登録する段階２１５に進む。例えば、コンピューティングデバイス３００は、機能の拡張のために設計された共通のメモリの位置に格納される機能の拡張１３０を位置付け、機能の拡張１３０は、可視化プラットフォーム１１０に利用可能な機能性に関して詳細を提供できる。本発明の実施形態に合致して、可視化プラットフォーム１１０は、可視化プラットフォーム１１０が作成するよう作動するオブジェクトのリストを判定及び提供する。作成可能なオブジェクトのリストは、描く命令が可視化プラットフォーム１１０、機能の拡張１３０、及び／又は、アプリケーション１４０の少なくとも１つから利用可能であるオブジェクトを含む。
【００１８】
一度コンピューティングデバイス３００が２１５において少なくとも１つの機能の拡張を登録すると、方法２００は、コンピューティングデバイス３００がオブジェクトを作成する要求を受信する段階２２０へ続く。例えば、可視化プラットフォーム１１０は、チャート、グラフ、絵（ピクチャ）、及び／又はマルチメディアのオブジェクト等のオブジェクトを作成するために、アプリケーション１４０からの要求を受信する。要求は、オブジェクトのタイプ、データ構造、少なくとも１つの描く命令、データ系列（data series）、及び／または、少なくとも１つのデータ値を含む。
【００１９】
コンピューティングデバイス３００は、段階２２０においてオブジェクトを作成するための要求を受信し、方法２００は、コンピューティングデバイス３００がオブジェクトを作成する段階２２５に進む。例えば、可視化プラットフォーム１１０のオブジェクトマネジャ１１５は、要求されたタイプのオブジェクトについて可視化プラットフォーム１１０に関連付けられた少なくとも１つのデフォルトの描く命令によりオブジェクトを作成する。
【００２０】
段階２２５から、方法２００は、コンピューティングデバイス３００が要求されたオブジェクトが少なくとも１つの機能の拡張に関連付けられているか否かを判定する段階２３０に進む。例えば、コンピューティングデバイス３００は、要求されたオブジェクトの作成、及び／又は、変更が描く命令、データ値、及び／又は、機能の拡張１３０により提供される別の提供された機能性を活用するか否かを判定する。要求されたオブジェクトが少なくとも１つの機能の拡張に関連付けられていないと判定される場合、以下でより詳細に説明されるように、コンピューティングデバイス３００が要求するアプリケーションに対する作成されたオブジェクトへのアクセスを提供する段階２５０に、方法２００は進む。
【００２１】
段階２３０において、コンピューティングデバイス３００が、要求されたオブジェクトが少なくとも１つの機能の拡張に関連付けられると判定される場合、コンピューティングデバイス３００が少なくとも１つの機能の拡張が要求したものと互換しているか否かを判定する段階２３５に、方法２００は進む。例えば、アプリケーション１４０は、機能の拡張１３０により提供されるデータ系列の使用を要求する可視化プラットフォーム１１０によりチャートオブジェクトの作成を要求する。可視化プラットフォーム１１０は、要求されたチャートオブジェクト、及び、要求されたデータ系列の間の互換性を検証する。本発明の実施形態と合致して、検証の互換性は、要求されたデータ系列が要求されたタイプのチャートオブジェクトで使用するために設計されていることを認証することを含む。さらに本発明の実施形態に合致して、可視化プラットフォーム１００は、アプリケーション１４０が機能の拡張１３０、及び／又は、可視化プラットフォーム１１０と互換性のあるバージョンを含むことを検証する。例えば、可視化プラットフォーム１１０は、アプリケーション１４０が設計された値、又は、より高い値のバージョンのリリース番号（例えば２．０）を含み、アプリケーション１４０は特定のリリースの層（tier）（例えば、標準、プロフェッショナル、家庭、ビジネス、及び／又は教育）を含むことを検証する。可視化プラットフォーム１１０は、アプリケーション１４０が機能の拡張１３０を活用するために有効なライセンスを含むか否かの検証もする。
【００２２】
段階２３５において、コンピューティングデバイス３００が、少なくとも１つの機能の拡張が要求するアプリケーションと互換性がないと判定する場合、以下で説明されるように方法２００は、段階２５０に進む。コンピューティングデバイス３００が、少なくとも１つの機能の拡張が要求するアプリケーションと互換性があると判定する場合、コンピューティングデバイス３００が少なくとも１つの機能の拡張から少なくとも１つのオブジェクトの変更を受信する段階２４０に、方法２００は進む。本発明の実施形態に合致して、機能の拡張１３０は、可視化プラットフォーム１１０、及び／又は、要求されたオブジェクトの作成のためのアプリケーション１４０により提供される少なくとも１つの描く指示において、追加、除去、及び／又は、無効化をする。例えば、機能の拡張１３０は、チャートオブジェクトに追加されることになる説明文、背景、並びに／又は、追加のデータ値、及び／若しくは、データ系列を提供する。さらに、本発明の実施形態に合致して、機能の拡張１３０は、アプリケーションにより提供されるように形の配置のための描く指示を無効化するチャートオブジェクト上のデータ地点についての代替の形の配置を含む描く指示を提供する。例えば、機能の拡張１３０は、アプリケーション１４０により提供されるデフォルトの円の形の代わりにチャートオブジェクトの上にデータ地点として使用する八角形の形を含む描く指示を提供する。別の例として、機能の拡張１３０は、線形のスケールよりむしろログスケールとしてチャートを再び描くことにより、及び／又は、分割の軸を使用することにより等、オブジェクトの変更のための描く指示の無効化を提供する。
【００２３】
コンピューティングデバイス３００が少なくとも１つのオブジェクトの変更を受信した段階２４０から、コンピューティングデバイス３００が受信した変更によりオブジェクトを変更する段階２４５に、方法２００は進む。例えば、可視化プラットフォーム１１０は、新しい要素を描くか、又は、作成されたオブジェクトの既に描かれた要素を再び描く。本発明の実施形態に合致して、可視化プラットフォーム１１０は、機能の拡張１３０、及び／又は、アプリケーション１４０から変更を受信し、従ってオブジェクトを変更する。例えば、可視化プラットフォーム１１０は、アプリケーション１４０からの要求により表示されたデータ値でチャートオブジェクトを作成し、機能の拡張１３０から受信した変更によりデータ系列を追加し、アプリケーション１４０から受信した変更によりオブジェクト上に表示されるデータ系列の色を変更する。
【００２４】
段階２４５から、コンピューティングデバイス３００が作成されたオブジェクトへのアクセスを要求するアプリケーションに提供する段階２５０に、方法２００は進む。例えば、可視化プラットフォーム１１０は、可視化プラットフォームに関連付けられたメモリの位置においてオブジェクトを作成し、ＡＰＩ（application programming interface）を使用して機能の拡張１３０、及び／又は、アプリケーション１４０へのメモリの位置へのアクセスを許可する。本発明の実施形態に合致して、可視化プラットフォーム１１０は、可視化プラットフォーム１１０に関連付けられたメモリの位置においてオブジェクトへのアクセスを提供するよりむしろ、要求するものへオブジェクトのコピーを提供する。
【００２５】
段階２５０から、コンピューティングデバイス３００が作成されたオブジェクトを表示する段階２５５に、メモリ２００は進む。例えば、アプリケーション１４０は、作成されたオブジェクトにアクセスし、レンダリングコンポーネント１４５を使用してディスプレイデバイス１５０にそれをレンダリングする。オブジェクトをレンダリングすることは、オブジェクトに関連付けられたモデルから画像を生成することを含む。オブジェクトに関連付けられたモデルは、データ構造における３次元オブジェクトの記述を含み、配置、ビューポイント、テクスチャ、光、及び／又は、影の情報を含む。画像は、デジタルイメージ、又は、ラスターのグラフィックス画像を含む。
【００２６】
一度、コンピューティングデバイス３００が段階２５５において、オブジェクトを表示すると、方法２００はその後、段階２６０で終了する。
【００２７】
方法２００の例として、アプリケーション１４０は、可視化プラットフォーム１１０からチャートオブジェクトを要求する可能性があり、要求は、チャートのタイプ、少なくとも１つのデータ値、及び／又は、データ系列を提供する。可視化プラットフォーム１１０はチャートオブジェクトを作成し、可視化プラットフォーム１１０に関連付けられた命令を描くことにより説明文、及び、タイトルでチャートオブジェクトを存在させる。アプリケーション１４０がチャートオブジェクトをレンダリングする段階２２５において、アプリケーション１４０は、チャートオブジェクトに関連付けられた形を提供することを可視化プラットフォーム１１０に尋ねる。アプリケーション１４０は、形をウォークスルーし、プリンタ、又は、ディスプレイデバイス１５０等の出力デバイスにそれらをレンダリングするために、それぞれについて描く指示を受信する。機能の拡張１３０は、作成されたオブジェクトの全ての種類の可視の要素を無効化、及び／又は、拡張する。別の例について、機能の拡張１３０は、特定の地図の形、説明文、タイトル、説明文の項目、軸、及び／又は、チャート全体を無効化する。
【００２８】
機能の拡張１３０により提供される各要素、及び／又は、機能は、要素の名前で関連付けられ、これらの要素の名前は、可視化プラットフォーム１１０が作成するよう作動するオブジェクトのリストを提供することの一部として提供される。可視化プラットフォーム１１０は、要求されたオブジェクトがオブジェクト作成要求において機能の拡張１３０で関連付けられた要素の名前を含むことにより機能の拡張１３０で関連付けられることを判定する。例えば、アプリケーション１４０は、利用可能なチャートのドロップダウン、及び／又は、ユーザにより選択可能なデータ系列を提供する。ユーザの選択を受信した上で、アプリケーション１４０は、可視化プラットフォーム１１０により作成されることになるオブジェクトを要求し、可視化プラットフォーム１１０は、機能の拡張が指名された要素で関連付けられているか否かを判定するために機能の拡張１３０等の既知の機能の拡張のそれぞれをクエリする。一度可視化プラットフォーム１１０が適用可能な機能の拡張を判定すると、可視化プラットフォーム１１０は、指名された要素を追加、更新、及び／又は変更するために、適用可能な機能の拡張から描く指示を受信する。
【００２９】
本発明に合致した実施形態は、拡張性フレームワークを提供するためのシステムを含む。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを含む。処理ユニットは、可視化プラットフォームをインスタント化し、可視化プラットフォームに少なくとも１つの機能の拡張を登録し、少なくとも１つのアプリケーションから少なくとも１つのオブジェクトを作成する要求を受信し、少なくとも１つのオブジェクトを作成するよう作動する。要求が少なくとも１つの機能の拡張に関連付けられているか否かを判定することと、要求が少なくとも１つの機能の拡張に関連付けられていることを判定することに応答して、少なくとも１つの機能の拡張から少なくとも１つのオブジェクトの変更を受信することと、少なくとも１つのオブジェクトの変更によりオブジェクトを変更することと、ディスプレイデバイス上にオブジェクトをレンダリングすること。
【００３０】
本発明に合致する別の実施形態は、アプリケーションの拡張性を提供するためのシステムを含む。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを含む。処理ユニットは、可視化プラットフォームで使用するために作動する少なくとも１つの機能の拡張を位置付け、少なくとも１つのユーザアプリケーションから少なくとも１つのオブジェクトを作成する要求を受信し、少なくとも１つのオブジェクトを作成するよう作動する。システムは、要求が少なくとも１つの機能の拡張に関連付けられているかを判定し、要求が少なくとも１つの機能の拡張に関連付けられていることの判定に応答して、少なくとも１つの機能の拡張から少なくとも１つのオブジェクトの変更を受信し、少なくとも１つのオブジェクトの変更によりオブジェクトを変更する。システムは、その後ディスプレイデバイス上のオブジェクトをレンダリングする。
【００３１】
まだ本発明に合致する別の実施形態は、アプリケーション拡張性フレームワークを提供するためのシステムを含む。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを含む。処理ユニットは、可視化プラットフォームをインスタンス化し、少なくとも１つの機能の拡張を登録し、可視化プラットフォームがアプリケーションを作成するよう作動するオブジェクトのリストを提供し、アプリケーションから少なくとも１つのオブジェクトのリストを作成するための要求を受信し、可視化プラットフォームにより提供され、要求されたオブジェクトのタイプに関連付けられた少なくとも１つの描く指示により少なくとも１つの要求されたオブジェクトを作成するよう作動する。オブジェクトが機能の拡張に関連付けられ、機能の拡張は少なくとも１つのアプリケーションと互換性がある場合、システムは少なくとも１つの機能の拡張から少なくとも１つのオブジェクトの変更を受信し、少なくとも１つのオブジェクトの変更によりオブジェクトを変更し、ディスプレイデバイス上のオブジェクトをレンダリングするよう作動する。
【００３２】
図３は、コンピューティングデバイス３００を含むシステムのブロック図である。本発明の実施形態に合致して、前述のメモリストレージ、及び、処理ユニットが、図３のコンピューティングデバイス３００等のコンピューティングデバイスに実装される。ハードウェア、ソフトウェア、又は、ファームウェアの人気の適した組み合わせが、メモリストレージ、及び、処理ユニットを実装するために使用される。例えば、メモリストレージ、及び、処理ユニットは、コンピューティングデバイス３００、又は、コンピューティングデバイス３００と組み合わせて任意の他のコンピューティングデバイス３１８で実装される。前述のシステム、デバイス、及び、プロセッサは、例であり、本発明の実施形態に合致して、他のシステム、デバイス及びプロセッサは、前述のメモリストレージ及び処理ユニットを含む。さらに、コンピューティングデバイス３００は、上述のようにシステム１００についてのオペレーティング環境を含む。システム１００は、他の環境において作動するが、コンピューティングデバイス３００に限定されない。
【００３３】
図３を参照して、本発明の実施形態に合致するシステムは、コンピューティングデバイス３００等のコンピューティングデバイスを含む。基本の構成において、コンピューティングデバイス３００は、少なくとも１つの処理ユニット３０２、システムメモリ３０４を含む。コンピューティングデバイスの構成及びタイプに依存して、システムメモリ３０４は、揮発性（例えば、ＲＡＭ（random access memory））、不揮発性（例えばＲＯＭ（read-only memory））、フラッシュメモリ又は任意の組み合わせを限定ではなく含む。システムメモリ３０４は、オペレーティングシステム３０５、１以上のプログラミングモジュール３０６を含み、可視化プラットフォーム１１０、及び／又は、機能の拡張１３０を含む。例えば、オペレーティングシステム３０５は、コンピューティングデバイス３００の作動を制御するのに適している可能性がある。一実施形態において、プログラミングモジュール３０６は、ユーザアプリケーション１４０を含む。さらに、本発明の実施形態は、グラフィックライブラリ、他のオペレーティングシステム、又は、任意の他のアプリケーションプログラムと併せて実施される可能性があり、任意の特定のアプリケーション又は、システムに限定されない。基本の構成は、点線３０８内のコンポーネントにより図３において示される。
【００３４】
コンピューティングデバイス３００は、追加の機能、又は、機能性を有する。例えば、コンピューティングデバイス３００は、例えば、磁気ディスク、光ディスク、又は、テープ等の（リムーバブル、及び／又は、リムーバブルでない）追加のデータストレージデバイスも含む。このような追加のストレージは、リムーバブルストレージ３０９、及び、リムーバブルでないストレージ３１０により、図３において示される。コンピュータストレージメディアは、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は、他のデータ等の情報を格納するための任意の方法、又は、技術において実装される揮発性、及び、不揮発性、リムーバブル、及び、リムーバブルでないメディアを含む。システムメモリ３０４、リムーバブルストレージ３０９、及び、リムーバブルでないストレージ３１０は、全てのコンピュータストレージメディアの例（つまり、メモリストレージ）である。コンピュータストレージメディアは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュメモリ、又は、他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋｓ）若しくは、他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは、他の磁気ストレージデバイス、又は、情報を格納するのに使用でき、コンピューティングデバイス３００により、アクセスできる任意の他のメディアを含む。任意のこのようなコンピュータストレージメディアは、デバイス３００の一部である。コンピューティングデバイス３００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等の入力デバイス３１２も有する。ディスプレイ、スピーカー、プリンタ等の出力デバイス３１４も含まれる。前述のデバイスは、例であり、他のものも使用される。
【００３５】
コンピューティングデバイス３００は、例えば、イントラネット、又は、インターネットの分散コンピューティング環境において、ネットワーク上で等、他のコンピューティングデバイス３１８と通信することをデバイス３００に可能にする通信接続３１６も含む。通信接続３１６は、通信媒体の一例である。通信媒体は、通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール又は搬送波、若しくは、他の転送メカニズム等のモジュール化されたデータ信号における他のデータにより実装される可能性があり、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、１以上の特性セットを有するか、信号に情報をエンコードする方式で変えられた信号を説明する。例としてであり、限定ではなく、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体、及びアコースティック、ＲＦ（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ）、赤外線、及び他の無線媒体等の無線媒体を含む。本明細書で使用されるコンピュータ読み取り可能な媒体という用語は、ストレージ媒体及び通信媒体の両方を含む。
【００３６】
上記のように、多くのプログラムモジュール及びデーターファイルは、オペレーティングシステム３０５を含むシステムメモリ３０４に格納される。処理ユニット３０２上で実行している一方で、プログラミングモジュール３０６（例えば、可視化プラットフォーム１１０及び／又は、機能の拡張１３０）は、例えば、上述の１以上の方法２００の段階を含む処理を実施する。前述の処理は、例であり、処理ユニット３０２は、他の処理を実施する。本発明の実施形態により使用される他のプログラミングモジュールは、電子メール及び連絡先アプリケーション、ワード処理アプリケーション、表計算アプリケーション、データーベースアプリケーション、スライドプレゼンテーションアプリケーション、描く、又は、コンピュータ支援のアプリケーションプログラム等を含む。
【００３７】
一般に、本発明の実施形態に合致して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及び、特定のタスクを実施するか、又は、特定の抽象データタイプを実装する他のタイプの構造を含む。さらに、本発明の実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの、又は、プログラマブル消費家電、ミニコンピュータ、メインフレームコンピュータ、及び、同様のものを含む、他のコンピュータシステム構成で実践される。本発明の実施形態は、タスクが通信ネットワークを通してリンクされるリモートの処理デバイスにより実施される分散コンピューティング環境においても実践される。分散コンピューティング環境において、プログラムモジュールは、ローカル、及び、リモートの両方のメモリストレージデバイスに位置付けられる。
【００３８】
さらに、本発明の実施形態は、分離した電子要素、論理ゲートを含むマイクロプロセッサを含むパッケージ化、若しくは、統合された電子チップ、マイクロプロセッサを利用する集積回路、又は、電子要素、若しくは、マイクロプロセッサを含む単一のチップ上を含む電子回路において、実践される。本発明の実施形態は、機械、光、流体及び量子の技術を含むがこれらに限定されない、例えばＡＮＤ、ＯＲ及びＮＯＴ等の論理操作を実施することができる他の技術を使用しても実践される。さらに、本発明の実施形態は、汎用目的のコンピュータ、又は、任意の他の集積回路、又は、システム内でも実践される。
【００３９】
例えば、本発明の実施形態は、コンピュータ処理（方法）、コンピューティングシステム、又は、コンピュータプログラム製品、又は、コンピュータ読み取り可能な媒体等の製品の品物として実装される。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能で、コンピュータ処理の実行のために指示をコンピュータプログラムにエンコードするコンピューターストレージ媒体である。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能であり、コンピュータ処理の実行のための指示をコンピュータプログラムにエンコードする、搬送波上の伝播された信号でもある。従って本発明は、ハードウェア、及び／又は（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）ソフトウェアにおいて組み込まれる。言い換えると本発明の実施形態は、命令実行システムによる使用のため、又は、関係して媒体に組み込まれるコンピュータ使用可能、又は、コンピュータ読み取り可能なプログラムコードを有するコンピュータ使用可能、又は、コンピュータ読み取り可能ストレージ媒体上のコンピュータプログラム製品の形式を取る。コンピュータ使用可能、又は、コンピュータ読み取り可能な媒体は、命令実行システム、装置、又は、デバイスを使用することにより、又は、関係してプログラムを含むか、格納するか、通信するか、伝播するか、又は、転送できる任意の媒体である。
【００４０】
コンピュータ使用可能、又は、コンピュータ読み取り可能な媒体は、例えば電子、磁気、光、電磁気、赤外線、又は、セミコンダクタシステム、装置、デバイス、若しくは、伝播媒体であるがこれらに限定されない。さらに、詳細なコンピュータ読み取り可能媒体の例（包括的ではないリスト）、コンピュータ読み取り可能な媒体は以下を含む、つまり１以上の有線を有する電気的な接続、ポータブルのコンピュータディスクカセット（ｃｏｍｐｕｔｅｒ  ｄｉｓｋｅｔｔｅ）、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ-ｏｎｌｙ  ｍｅｍｏｒｙ）又は、フラッシュメモリ（Ｆｌａｓｈ  ｍｅｍｏｒｙ）、光ファイバ、ポータブルのＣＤ−ＲＯＭ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）である。コンピュータ使用可能、又は、コンピュータ読み取り可能な媒体は、プログラムが、印字される紙又は別の適した媒体でさえありえて、プログラムは、例えば、紙又は他の媒体の光スキャンを介してプログラムが電気的にキャプチャされ、その後にコンパイルされ、解釈され、さもなければ必要に応じて適した方式で処理され、その後、コンピュータメモリに格納されることが可能であることに留意されたい。
【００４１】
例えば、本発明の実施形態は、ブロック図、及び／又は、本発明の実施形態による方法、システム、及び、コンピュータプログラム製品の操作図を参照して上述される。ブロックに示される機能／動作は、任意のフローチャートに示される順序以外でも起こる。例えば、成功において示される２つのブロックは実際、引き起こされた機能／動作に依存して、実際は平行して実行されるか、又はブロックは時折逆の順番で実行される。
【００４２】
さらに、本発明のある実施形態が説明されてきた一方で、他の実施形態も存在する。さらに本発明の実施形態が、メモリ及び他のストレージ媒体に格納されたデータに関連付けられて説明されてきたが、ハードディスク、フロッピーディスク、若しくは、ＣＤ−ＲＯＭ、インターネットからの搬送波、又は、ＲＡＭ、若しくは、ＲＯＭの他の形式のような、セカンダリストレージ媒体等の他のタイプのコンピュータ読み取り可能な媒体にデータを格納、又は、から読み出すこともできる。さらに開示の方法の段階は、本発明から逸脱することなく段階を再順序付け、及び／又は、段階を挿入、又は、削除することを含む任意の方式で変更される。
【００４３】
本明細書に含まれるコードにおける著作権を含む全ての権利は、出願人に与えられ、出願人の所有権である。出願人は、本明細書に含まれるコードにおける全ての権利を保有及び留保し、取得された特許の複製と関係してのみであり他の目的なく、構成要素を複製するための許諾を付与する。
【００４４】
明細書が例を含む一方で、本発明の範囲は、以下の特許請求の範囲により示される。さらに、明細書が構造的な機能、及び／又は、方法論的な動作に特有の言語で説明されてきたが、特許請求の範囲は上述の機能、又は、動作に限定されない。むしろ、上述の特有の機能、及び動作は、本発明の実施形態のための例として開示される。
【図１】
0005697661.tif 000002
【図２】
0005697661.tif 000003
【図３】
0005697661.tif 000004