特許第5697661号(P5697661)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト コーポレーションの特許一覧

特許5697661プラットフォームの拡張性フレームワーク
<>
  • 特許5697661-プラットフォームの拡張性フレームワーク 図000002
  • 特許5697661-プラットフォームの拡張性フレームワーク 図000003
  • 特許5697661-プラットフォームの拡張性フレームワーク 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5697661
(24)【登録日】2015年2月20日
(45)【発行日】2015年4月8日
(54)【発明の名称】プラットフォームの拡張性フレームワーク
(51)【国際特許分類】
   G06F 9/445 20060101AFI20150319BHJP
【FI】
   G06F9/06 650D
【請求項の数】20
【全頁数】15
(21)【出願番号】特願2012-508555(P2012-508555)
(86)(22)【出願日】2010年4月23日
(65)【公表番号】特表2012-525639(P2012-525639A)
(43)【公表日】2012年10月22日
(86)【国際出願番号】US2010032308
(87)【国際公開番号】WO2010126803
(87)【国際公開日】20101104
【審査請求日】2013年3月19日
(31)【優先権主張番号】12/433,327
(32)【優先日】2009年4月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】500046438
【氏名又は名称】マイクロソフト コーポレーション
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(74)【代理人】
【識別番号】100119781
【弁理士】
【氏名又は名称】中村 彰吾
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100138759
【弁理士】
【氏名又は名称】大房 直樹
(74)【代理人】
【識別番号】100091063
【弁理士】
【氏名又は名称】田中 英夫
(72)【発明者】
【氏名】バリー クリストファー アレン
(72)【発明者】
【氏名】ビー.スコット ルーブル
(72)【発明者】
【氏名】ベンジャミン エドワード ランプソン
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特開2001−142711(JP,A)
【文献】 米国特許出願公開第2007/0101322(US,A1)
【文献】 「Firefox」で任意のタブの描画エンジンをIEに切り替えるプラグイン「IE Tab」,2006年 1月16日,検索日 2014.05.14,URL,http://www.forest.impress.co.jp/article/2006/01/16/ietab.html
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
拡張性フレームワークを提供するプロセッサにより実行されるコンピュータ実装方法であって、
可視化プラットフォームをインスタンス化するステップと、
前記可視化プラットフォームで少なくとも1つの機能の拡張を登録するステップであって、前記可視化プラットフォームは、前記少なくとも1つの機能の拡張と、少なくとも1つのユーザアプリケーションとの間の中間インターフェースを備える、登録するステップと、
前記少なくとも1つのユーザアプリケーションから少なくとも1つのオブジェクトを作成するための要求を受信するステップと、
前記可視化プラットフォームにより、前記少なくとも1つのオブジェクトを作成するステップと、
前記要求が前記少なくとも1つの機能の拡張に関連付けられていることを判定するステップと、
前記要求が前記少なくとも1つの機能の拡張に関連付けられていることを判定するステップに応答して、
前記少なくとも1つの機能の拡張から少なくとも1つのオブジェクトの変更を受信するステップと、
前記少なくとも1つのオブジェクトの変更が前記少なくとも1つのオブジェクトのタイプと互換性があるかを検証するステップと、
前記少なくとも1つのオブジェクトの変更の互換性に従い前記オブジェクトを変更するステップと、
ディスプレイデバイス上に前記オブジェクトをレンダリングするステップと
を備えることを特徴とする方法。
【請求項2】
前記少なくとも1つのユーザアプリケーションは、前記ディスプレイデバイス上に前記オブジェクトをレンダリングすることを特徴とする請求項1に記載の方法。
【請求項3】
前記少なくとも1つのユーザアプリケーションから少なくとも1つの第2のオブジェクトの変更を受信するステップと、
前記少なくとも1つの第2のオブジェクトの変更に従いオブジェクトを変更するステップと
をさらに備えることを特徴とする請求項1に記載の方法。
【請求項4】
前記要求を受信するステップは、可視化のタイプ及び少なくとも1つのデータ値を受信するステップを備え、
前記オブジェクトは、前記要求された可視化のタイプの可視化オブジェクトを備え、
前記可視化プラットフォームは、前記可視化タイプ及び前記少なくとも1つのデータ値についての指示を描く少なくとも1つのデフォルトを備える
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記少なくとも1つのユーザアプリケーションは、前記可視化プラットフォームがユーザに前記複数のオブジェクトを作成及び表示するよう作動する前記複数のオブジェクトを判定するよう作動することを特徴とする請求項1に記載の方法。
【請求項6】
前記可視化プラットフォームが作成するよう作動する前記複数のオブジェクトを判定するステップは、前記可視化プラットフォームから前記複数のオブジェクトのリストを取り出すステップを備えることを特徴とする請求項5に記載の方法。
【請求項7】
前記可視化プラットフォームが作成するよう作動する前記複数のオブジェクトを判定するステップは、前記少なくとも1つの機能の拡張についての少なくとも1つの位置を検索するステップを備えることを特徴とする請求項5に記載の方法。
【請求項8】
前記要求が前記少なくとも1つの機能の拡張に関連づけられるか否かを判定するステップは、前記少なくとも1つの機能の拡張が以下の少なくとも1つ、つまり少なくとも1つのデータ値及び少なくとも1つの描く指示、を備えるか否かを判定するステップを備えることを特徴とする請求項1に記載の方法。
【請求項9】
前記少なくとも1つの機能の拡張からの前記少なくとも1つのオブジェクトの変更は、
前記オブジェクトを作成するために前記可視化プラットフォームにより使用される少なくとも1つの描く指示を無効化する描く指示を備えることを特徴とする請求項1に記載の方法。
【請求項10】
前記少なくとも1つの機能の拡張からの前記少なくとも1つのオブジェクトの変更は、
前記オブジェクトを作成するために前記可視化プラットフォームにより使用される少なくとも1つの描く指示を追加する描く指示を備えることを特徴とする請求項1に記載の方法。
【請求項11】
前記少なくとも1つの機能の拡張からの前記少なくとも1つのオブジェクトの変更は、
前記オブジェクト上に表示される複数のデータ位置を備えることを特徴とする請求項1に記載の方法。
【請求項12】
アプリケーションの拡張性を提供するためのシステムであって、
前記システムは、
メモリーストレージと、
前記メモリーストレージに結合される処理ユニットであって、
可視化プラットフォームをインスタンス化し、
前記可視化プラットフォームで使用するために作動する少なくとも1つの機能の拡張を位置付け、前記可視化プラットフォームは、前記少なくとも1つの機能の拡張と、少なくとも1つのユーザアプリケーションとの間の中間インターフェースを備え、
少なくとも1つのユーザアプリケーションから少なくとも1つのオブジェクトを作成する要求を受信し、
前記少なくとも1つのオブジェクトを作成し、
前記要求が前記少なくとも1つの機能の拡張に関連付けられているか否かを判定し、
前記要求が前記少なくとも1つの機能の拡張に関連付けられることの判定に応答して、
前記少なくとも1つの機能の拡張から少なくとも1つのオブジェクトの変更を受信し、
前記少なくとも1つのオブジェクトの変更が少なくとも1つのオブジェクトのタイプと互換性を有するか検証するステップと、
前記少なくとも1つのオブジェクトの変更の互換性に従い前記オブジェクトを変更し、
ディスプレイデバイス上に前記オブジェクトをレンダリングする
よう作動する前記処理ユニットと
を備えることを特徴とするシステム。
【請求項13】
前記可視化プラットフォームに関連付けられた前記メモリーストレージのメモリ位置に前記オブジェクトを記憶し、
前記アプリケーションと前記機能の拡張により前記メモリ位置へのアクセスを制御することを特徴とする請求項12に記載のシステム。
【請求項14】
前記可視化プラットフォームで使用するために作動する少なくとも1つの機能の拡張を位置付けるように作動することは、前記少なくとも1つの機能の拡張のために前記メモリートレージの予め定義されたメモリ位置を検索するように作動することを備えることを特徴とする請求項12に記載のシステム。
【請求項15】
複数のソフトウェアオペレーティングシステムの少なくとも1つを実行し、
複数のソフトウェアオペレーティングシステムの少なくとも1つの実行にもかかわらず、前記少なくとも1つの特徴の拡張を利用するように作動することをさらに含むことを特徴とする請求項12に記載のシステム。
【請求項16】
前記作成されたオブジェクトは、複数のユーザアプリケーションで共有することを特徴とする請求項12に記載のシステム。
【請求項17】
前記可視化プラットフォームが前記少なくとも1つのユーザアプリケーションを作成するために作動するオブジェクトのリストを提供するよう作動することをさらに備え、前記可視化プラットフォームが作成するために作動するオブジェクトのリストが、前記少なくとも1つの機能の拡張から前記少なくとも1つのオブジェクトの変更を要求する少なくとも1つのオブジェクトを備えることを特徴とする請求項12に記載のシステム。
【請求項18】
前記少なくとも1つのユーザアプリケーションのために前記可視化のプラットフォームが作成するよう作動するオブジェクトのリストを提供するよう作動することは、前記少なくとも1つのユーザアプリケーションが前記少なくとも1つの機能の拡張と互換性があるか否かを判定するよう作動し、
前記少なくとも1つのユーザアプリケーションが前記少なくとも1つの機能の拡張に互換しないことの判定に応答して、前記可視化プラットフォームが作成するために作動する前記オブジェクトのリストから前記少なくとも1つの機能の拡張に関連付けられた少なくとも1つのオブジェクトを保留する
ことを特徴とする請求項17に記載のシステム。
【請求項19】
前記少なくとも1つのオブジェクトの変更に従い前記オブジェクトを変更するように作動することは、描く指示の無効化及び少なくとも1つの追加の描く要素の少なくとも1つを備える、受信するように作動することを含むことを特徴とする請求項12に記載のシステム。
【請求項20】
実行されるときアプリケーションの拡張性フレームワークを提供する方法を実施する指示のセットを格納するコンピュータ読み取り可能な記録媒体であって、前記指示のセットにより実行される方法は、
可視化プラットフォームをインスタンス化するステップと、
少なくとも1つの機能の拡張を前記可視化プラットフォームに登録するステップであって、前記可視化プラットフォームは、前記少なくとも1つの機能の拡張と、少なくとも1つのユーザアプリケーションとの間の中間インターフェースを備える、登録するステップと、
前記可視化プラットフォームが少なくとも1つのアプリケーションを作成するよう作動するオブジェクトのリストを提供するステップであって、前記オブジェクトのリストが、可視化プラットフォームが作成するために前記少なくとも1つの機能の拡張を要求する、提供するステップと、
前記少なくとも1つのアプリケーションから少なくとも1つの前記オブジェクトのリストを作成する要求を受信するステップであって、前記要求が前記アプリケーションに提供される前記オブジェクトのリストからのユーザ選択を備える、受信するステップと、
前記可視化プラットフォームにより提供され、要求されたオブジェクトのタイプに関連付けられた少なくとも1つの描く指示に従い少なくとも1つの要求されたオブジェクトを作成するステップと、
前記要求されたオブジェクトは、前記少なくも1つの機能の拡張に関連付けられているかを判定するステップと、
前記要求が少なくとも1つの機能の拡張に関連付けられることを判定するステップに応答して、前記少なくとも1つの機能の拡張が前記少なくとも1つのアプリケーションと互換性があることを判定するステップであって、前記少なくとも1つの機能の拡張が前記少なくとも1つのアプリケーションと互換性があるか否かを判定するステップは、前記少なくとも1つのアプリケーションが互換性のあるリリースバージョンを備えるか否かを判定するステップ、及び前記少なくとも1つのアプリケーションが前記少なくとも1つの機能の拡張を使用するためのライセンスを備えるか否かを判定するステップのうちの少なくとも1つを備える、判定するステップと、
前記少なくとも1つの機能の拡張が前記少なくとも1つのアプリケーションと互換性があるか否かを判定するステップに応答して、
前記少なくとも1つの機能の拡張からの少なくとも1つのオブジェクトの変更を受信するステップであって、前記少なくとも1つのオブジェクトの変更が、描く指示の無効化及び少なくとも1つの追加の描く要素の少なくとも1つを備える、受信するステップと、
前記少なくとも1つのオブジェクトの変更が前記少なくとも1つのオブジェクトのタイプと互換性があることを検証するステップと、
前記少なくとも1つのオブジェクトの変更の互換性に従い前記オブジェクトを変更するステップと、
前記アプリケーションによりディスプレイデバイス上に前記オブジェクトをレンダリングするステップと
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションの拡張性フレームワークを提供する方法、これを提供するシステム、及び、これを実施する指示を格納するコンピュータ可読記録媒体に関する。
【背景技術】
【0002】
プラットフォームの拡張性は、ソフトウェアアプリケーションと通信するためのプラグイン機能を可能にするフレームワークを提供する。いくつかの状況において、製品のリリースのスケジュールは、新しい機能がアプリケーションに組み込まれるときを定める。例えば、新しいアプリケーションのバージョンが年次でリリースされるが、ユーザは新しい機能をより頻繁に要求する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従って、従来の戦略は、それぞれのスケジュールされたリリースにおいて選択された機能を組み込むことになる。従来の戦略がユーザの要求に常に反応するわけではないので、これが多くの問題を生じさせる。例えば、要求された機能は、アプリケーションのリリースに組み込まれるのに数年かかり、顧客の不満という結果になることがある。
【課題を解決するための手段】
【0004】
プラットフォームの拡張性フレームワークを提供する。この課題を解決するための手段は、発明を実施するための形態において以下でさらに説明される簡略化された形式で概念の選択を紹介するために提供される。この課題を解決するための手段は、特許請求された主題の重要な特徴又主要な特徴を特定することを意図されない。この課題を解決するための手段は、特許請求された主題の範囲を限定するために使用されることも意図しない。
【0005】
プラットフォームの拡張性フレームワークを提供する。可視化プラットフォームは、機能の拡張を登録し、オブジェクトを作成するための要求を受信する。可視化プラットフォーム、オブジェクトの作成を要求するアプリケーション及び/又は少なくとも1つの機能の拡張により提供される指示を描くことにより、オブジェクトを作成する。
【0006】
以上の一般的な説明及び以下の発明を実施するための形態の両方共、例を提供し、説明のためのみである。したがって以上の一般的な説明及び以下の発明を実施するための形態は、限定的であると考慮されるべきではない。さらに、特徴又は変形が、本明細書で説明されるものに加えて提供される。例えば、実施形態は、発明を実施するための形態で説明される様々な機能の組み合わせ、又は、従属した組み合わせを目的とすることができる。
【0007】
この開示に組み込まれて一部を構成する添付の図面は、本発明の様々な実施形態を示す。
【図面の簡単な説明】
【0008】
図1】オペレーティング環境のブロック図を示す図である。
図2】プラットフォームの拡張性フレームワークを提供するための方法のフローチャートを示す図である。
図3】コンピューティングデバイスを含むシステムのブロック図を示す図である。
【発明を実施するための形態】
【0009】
以下の発明を実施するための形態は、添付の図面を参照する。可能な限り図面及び以下の説明において同じ又は同様の要素を参照するために、同じ参照番号が使用される。本発明の実施形態が説明される一方で、変更、適応及び他の実装が可能である。例えば、置き換え、追加、又は、変更を図面において示される要素に成し、そして本明細書で説明される方法は開示の方法に置き換え、順序付け直し、段階を追加することにより変更される。従って以下の発明を実施するための形態は本発明を限定しない。代わりに、本発明の正規の範囲は添付の特許請求の範囲により定義される。
【0010】
プラットフォームの拡張性フレームワークを提供する。本発明の実施形態に合致して、可視化プラットフォームは、ユーザアプリケーション及び拡張された機能を提供するアドオン間の仲介を提供する。アドオンは第三者により開発され、正式な製品リリースを待つ必要なく可視化プラットフォームについてのサポートを含む任意のアプリケーションにより使用される。
【0011】
図1は、可視化プラットフォーム110を提供するためのオペレーティング環境100のブロック図である。可視化プラットフォーム110は、オブジェクトマネジャ115及びレイアウトエンジン120を含むことができる。可視化プラットフォーム110は、チャート等のデータ可視化の作成を可能にするアーキテクチャを含み、可視化の上での対話型の機能をさらす。このアーキテクチャは、複数のレンダリングプラットフォームとの統合を提供する。ユーザがさらされた機能を選択するとき、アーキテクチャは、共通フォーマットに選択を解釈し、レンダリングプラットフォームと独立しているレイアウトルールに従ってデータ可視化を変更できる。
【0012】
オペレーティング環境100は、機能の拡張130、レンダリングコンポーネント145を含むアプリケーション140、及び、出力デバイス150をさらに含む。例えば、機能の拡張130は、描く指示の無効化、データの追加、及び/又は、追加の描く要素を提供する機能性アドオンを含む。例えば、アプリケーション140は、ワード処理アプリケーション、表計算アプリケーション、ウェブブラウザ、電子メールアプリケーション、及び/又は、他のソフトウェアアプリケーション等のユーザアプリケーションを含む。例えば、出力デバイス150は、画面、プリンタ、電子ドキュメント、及び/又は、ウェブページを含む。
【0013】
可視化プラットフォーム110は、対話型の可視化を提供するためのソフトウェアのライブラリ及び/又は、ユーティリティを含む共有コアを含む。共有コアは、例えばC++又はC#で実装され、独立したプラットフォームであることがある。共有コアは、レイアウト、形、及び/若しくは、配置を提供するための可視化ユーティリティ、行サービス、3次元ユーティリティ、アニメーションフレーム生成、並びに/又は、対話型ホットスポットを含む。可視化プラットフォーム110は、アプリケーション140、及び/又は、機能の拡張130と対話するためのAPI(application programming interface)をさらに含む。
【0014】
アプリケーション140、及び、機能の拡張130は、可視化プラットフォーム110とのインターフェースを取り、アプリケーション140により出力デバイス150にレンダリングされるメモリ内にオブジェクトを作成する。機能の拡張130は、アプリケーション140と直接よりむしろ、可視プラットフォーム110とインターフェースを取ることができる。アプリケーション140、及び、機能の拡張130は、協働して一緒に及び独立した方式で作成されることを許容される。例えば、アプリケーション140は、関連付けられたデータ束でチャートオブジェクトを作成し、機能の拡張は、データオブジェクトの説明文、及び、系列を作成することができる。本発明の実施形態に合致して、機能の拡張130は、オブジェクトを作成できるが、アプリケーション140にデータを提供したままである。
【0015】
オペレーティング環境100と独立したオペレーティングシステムは、可視化プラットフォーム110の複数のバージョンによりサポートされる。可視化プラットフォーム110は、ワシントン州レドモンド(Redmond、WA)のマイクロソフト社(登録商標)により開発された.NETプロトコルを使用して実装されるDLL(dynamically linked library)において等、プラットフォームに依存しないコードを使用して実装される。従って、機能の拡張130は、プラットフォームに依存しないコードをサポートする任意のオペレーティングシステム上で作動するアドオンを含むことができる。本発明の実施形態に合致して、アプリケーションは、プラットフォームに依存しないコードをサポートしないが、プラットフォームに依存しない機能の拡張140の使用をサポートすることができる。
【0016】
図2は、プラットフォームの拡張性フレームワークを提供するための本発明の実施形態に合致した方法200において引き起こされる一般の段階を説明するフローチャートである。方法200は、図3に関して、以下でより詳細に説明されるように、コンピューティングデバイス300を使用して実装される。方法200の段階を実装する方法は、以下でより詳細に説明されることになる。方法200は、開始ブロック205で開始し、コンピューティングデバイス300が、可視化プラットフォームをインスタント化する段階210に進む。例えば、コンピューティングデバイス300は、複数の環境、及び/又は、オペレーティングシステムにおける実行を作動する単一コードのベースを含む可視化プラットフォーム110をインスタンス化できる。
【0017】
コンピューティングデバイス300がインスタント化された段階210から、方法200は、コンピューティングデバイス300が可視化プラットフォームに少なくとも1つの機能の拡張を登録する段階215に進む。例えば、コンピューティングデバイス300は、機能の拡張のために設計された共通のメモリの位置に格納される機能の拡張130を位置付け、機能の拡張130は、可視化プラットフォーム110に利用可能な機能性に関して詳細を提供できる。本発明の実施形態に合致して、可視化プラットフォーム110は、可視化プラットフォーム110が作成するよう作動するオブジェクトのリストを判定及び提供する。作成可能なオブジェクトのリストは、描く命令が可視化プラットフォーム110、機能の拡張130、及び/又は、アプリケーション140の少なくとも1つから利用可能であるオブジェクトを含む。
【0018】
一度コンピューティングデバイス300が215において少なくとも1つの機能の拡張を登録すると、方法200は、コンピューティングデバイス300がオブジェクトを作成する要求を受信する段階220へ続く。例えば、可視化プラットフォーム110は、チャート、グラフ、絵(ピクチャ)、及び/又はマルチメディアのオブジェクト等のオブジェクトを作成するために、アプリケーション140からの要求を受信する。要求は、オブジェクトのタイプ、データ構造、少なくとも1つの描く命令、データ系列(data series)、及び/または、少なくとも1つのデータ値を含む。
【0019】
コンピューティングデバイス300は、段階220においてオブジェクトを作成するための要求を受信し、方法200は、コンピューティングデバイス300がオブジェクトを作成する段階225に進む。例えば、可視化プラットフォーム110のオブジェクトマネジャ115は、要求されたタイプのオブジェクトについて可視化プラットフォーム110に関連付けられた少なくとも1つのデフォルトの描く命令によりオブジェクトを作成する。
【0020】
段階225から、方法200は、コンピューティングデバイス300が要求されたオブジェクトが少なくとも1つの機能の拡張に関連付けられているか否かを判定する段階230に進む。例えば、コンピューティングデバイス300は、要求されたオブジェクトの作成、及び/又は、変更が描く命令、データ値、及び/又は、機能の拡張130により提供される別の提供された機能性を活用するか否かを判定する。要求されたオブジェクトが少なくとも1つの機能の拡張に関連付けられていないと判定される場合、以下でより詳細に説明されるように、コンピューティングデバイス300が要求するアプリケーションに対する作成されたオブジェクトへのアクセスを提供する段階250に、方法200は進む。
【0021】
段階230において、コンピューティングデバイス300が、要求されたオブジェクトが少なくとも1つの機能の拡張に関連付けられると判定される場合、コンピューティングデバイス300が少なくとも1つの機能の拡張が要求したものと互換しているか否かを判定する段階235に、方法200は進む。例えば、アプリケーション140は、機能の拡張130により提供されるデータ系列の使用を要求する可視化プラットフォーム110によりチャートオブジェクトの作成を要求する。可視化プラットフォーム110は、要求されたチャートオブジェクト、及び、要求されたデータ系列の間の互換性を検証する。本発明の実施形態と合致して、検証の互換性は、要求されたデータ系列が要求されたタイプのチャートオブジェクトで使用するために設計されていることを認証することを含む。さらに本発明の実施形態に合致して、可視化プラットフォーム100は、アプリケーション140が機能の拡張130、及び/又は、可視化プラットフォーム110と互換性のあるバージョンを含むことを検証する。例えば、可視化プラットフォーム110は、アプリケーション140が設計された値、又は、より高い値のバージョンのリリース番号(例えば2.0)を含み、アプリケーション140は特定のリリースの層(tier)(例えば、標準、プロフェッショナル、家庭、ビジネス、及び/又は教育)を含むことを検証する。可視化プラットフォーム110は、アプリケーション140が機能の拡張130を活用するために有効なライセンスを含むか否かの検証もする。
【0022】
段階235において、コンピューティングデバイス300が、少なくとも1つの機能の拡張が要求するアプリケーションと互換性がないと判定する場合、以下で説明されるように方法200は、段階250に進む。コンピューティングデバイス300が、少なくとも1つの機能の拡張が要求するアプリケーションと互換性があると判定する場合、コンピューティングデバイス300が少なくとも1つの機能の拡張から少なくとも1つのオブジェクトの変更を受信する段階240に、方法200は進む。本発明の実施形態に合致して、機能の拡張130は、可視化プラットフォーム110、及び/又は、要求されたオブジェクトの作成のためのアプリケーション140により提供される少なくとも1つの描く指示において、追加、除去、及び/又は、無効化をする。例えば、機能の拡張130は、チャートオブジェクトに追加されることになる説明文、背景、並びに/又は、追加のデータ値、及び/若しくは、データ系列を提供する。さらに、本発明の実施形態に合致して、機能の拡張130は、アプリケーションにより提供されるように形の配置のための描く指示を無効化するチャートオブジェクト上のデータ地点についての代替の形の配置を含む描く指示を提供する。例えば、機能の拡張130は、アプリケーション140により提供されるデフォルトの円の形の代わりにチャートオブジェクトの上にデータ地点として使用する八角形の形を含む描く指示を提供する。別の例として、機能の拡張130は、線形のスケールよりむしろログスケールとしてチャートを再び描くことにより、及び/又は、分割の軸を使用することにより等、オブジェクトの変更のための描く指示の無効化を提供する。
【0023】
コンピューティングデバイス300が少なくとも1つのオブジェクトの変更を受信した段階240から、コンピューティングデバイス300が受信した変更によりオブジェクトを変更する段階245に、方法200は進む。例えば、可視化プラットフォーム110は、新しい要素を描くか、又は、作成されたオブジェクトの既に描かれた要素を再び描く。本発明の実施形態に合致して、可視化プラットフォーム110は、機能の拡張130、及び/又は、アプリケーション140から変更を受信し、従ってオブジェクトを変更する。例えば、可視化プラットフォーム110は、アプリケーション140からの要求により表示されたデータ値でチャートオブジェクトを作成し、機能の拡張130から受信した変更によりデータ系列を追加し、アプリケーション140から受信した変更によりオブジェクト上に表示されるデータ系列の色を変更する。
【0024】
段階245から、コンピューティングデバイス300が作成されたオブジェクトへのアクセスを要求するアプリケーションに提供する段階250に、方法200は進む。例えば、可視化プラットフォーム110は、可視化プラットフォームに関連付けられたメモリの位置においてオブジェクトを作成し、API(application programming interface)を使用して機能の拡張130、及び/又は、アプリケーション140へのメモリの位置へのアクセスを許可する。本発明の実施形態に合致して、可視化プラットフォーム110は、可視化プラットフォーム110に関連付けられたメモリの位置においてオブジェクトへのアクセスを提供するよりむしろ、要求するものへオブジェクトのコピーを提供する。
【0025】
段階250から、コンピューティングデバイス300が作成されたオブジェクトを表示する段階255に、メモリ200は進む。例えば、アプリケーション140は、作成されたオブジェクトにアクセスし、レンダリングコンポーネント145を使用してディスプレイデバイス150にそれをレンダリングする。オブジェクトをレンダリングすることは、オブジェクトに関連付けられたモデルから画像を生成することを含む。オブジェクトに関連付けられたモデルは、データ構造における3次元オブジェクトの記述を含み、配置、ビューポイント、テクスチャ、光、及び/又は、影の情報を含む。画像は、デジタルイメージ、又は、ラスターのグラフィックス画像を含む。
【0026】
一度、コンピューティングデバイス300が段階255において、オブジェクトを表示すると、方法200はその後、段階260で終了する。
【0027】
方法200の例として、アプリケーション140は、可視化プラットフォーム110からチャートオブジェクトを要求する可能性があり、要求は、チャートのタイプ、少なくとも1つのデータ値、及び/又は、データ系列を提供する。可視化プラットフォーム110はチャートオブジェクトを作成し、可視化プラットフォーム110に関連付けられた命令を描くことにより説明文、及び、タイトルでチャートオブジェクトを存在させる。アプリケーション140がチャートオブジェクトをレンダリングする段階225において、アプリケーション140は、チャートオブジェクトに関連付けられた形を提供することを可視化プラットフォーム110に尋ねる。アプリケーション140は、形をウォークスルーし、プリンタ、又は、ディスプレイデバイス150等の出力デバイスにそれらをレンダリングするために、それぞれについて描く指示を受信する。機能の拡張130は、作成されたオブジェクトの全ての種類の可視の要素を無効化、及び/又は、拡張する。別の例について、機能の拡張130は、特定の地図の形、説明文、タイトル、説明文の項目、軸、及び/又は、チャート全体を無効化する。
【0028】
機能の拡張130により提供される各要素、及び/又は、機能は、要素の名前で関連付けられ、これらの要素の名前は、可視化プラットフォーム110が作成するよう作動するオブジェクトのリストを提供することの一部として提供される。可視化プラットフォーム110は、要求されたオブジェクトがオブジェクト作成要求において機能の拡張130で関連付けられた要素の名前を含むことにより機能の拡張130で関連付けられることを判定する。例えば、アプリケーション140は、利用可能なチャートのドロップダウン、及び/又は、ユーザにより選択可能なデータ系列を提供する。ユーザの選択を受信した上で、アプリケーション140は、可視化プラットフォーム110により作成されることになるオブジェクトを要求し、可視化プラットフォーム110は、機能の拡張が指名された要素で関連付けられているか否かを判定するために機能の拡張130等の既知の機能の拡張のそれぞれをクエリする。一度可視化プラットフォーム110が適用可能な機能の拡張を判定すると、可視化プラットフォーム110は、指名された要素を追加、更新、及び/又は変更するために、適用可能な機能の拡張から描く指示を受信する。
【0029】
本発明に合致した実施形態は、拡張性フレームワークを提供するためのシステムを含む。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを含む。処理ユニットは、可視化プラットフォームをインスタント化し、可視化プラットフォームに少なくとも1つの機能の拡張を登録し、少なくとも1つのアプリケーションから少なくとも1つのオブジェクトを作成する要求を受信し、少なくとも1つのオブジェクトを作成するよう作動する。要求が少なくとも1つの機能の拡張に関連付けられているか否かを判定することと、要求が少なくとも1つの機能の拡張に関連付けられていることを判定することに応答して、少なくとも1つの機能の拡張から少なくとも1つのオブジェクトの変更を受信することと、少なくとも1つのオブジェクトの変更によりオブジェクトを変更することと、ディスプレイデバイス上にオブジェクトをレンダリングすること。
【0030】
本発明に合致する別の実施形態は、アプリケーションの拡張性を提供するためのシステムを含む。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを含む。処理ユニットは、可視化プラットフォームで使用するために作動する少なくとも1つの機能の拡張を位置付け、少なくとも1つのユーザアプリケーションから少なくとも1つのオブジェクトを作成する要求を受信し、少なくとも1つのオブジェクトを作成するよう作動する。システムは、要求が少なくとも1つの機能の拡張に関連付けられているかを判定し、要求が少なくとも1つの機能の拡張に関連付けられていることの判定に応答して、少なくとも1つの機能の拡張から少なくとも1つのオブジェクトの変更を受信し、少なくとも1つのオブジェクトの変更によりオブジェクトを変更する。システムは、その後ディスプレイデバイス上のオブジェクトをレンダリングする。
【0031】
まだ本発明に合致する別の実施形態は、アプリケーション拡張性フレームワークを提供するためのシステムを含む。システムは、メモリストレージ及びメモリストレージに結合された処理ユニットを含む。処理ユニットは、可視化プラットフォームをインスタンス化し、少なくとも1つの機能の拡張を登録し、可視化プラットフォームがアプリケーションを作成するよう作動するオブジェクトのリストを提供し、アプリケーションから少なくとも1つのオブジェクトのリストを作成するための要求を受信し、可視化プラットフォームにより提供され、要求されたオブジェクトのタイプに関連付けられた少なくとも1つの描く指示により少なくとも1つの要求されたオブジェクトを作成するよう作動する。オブジェクトが機能の拡張に関連付けられ、機能の拡張は少なくとも1つのアプリケーションと互換性がある場合、システムは少なくとも1つの機能の拡張から少なくとも1つのオブジェクトの変更を受信し、少なくとも1つのオブジェクトの変更によりオブジェクトを変更し、ディスプレイデバイス上のオブジェクトをレンダリングするよう作動する。
【0032】
図3は、コンピューティングデバイス300を含むシステムのブロック図である。本発明の実施形態に合致して、前述のメモリストレージ、及び、処理ユニットが、図3のコンピューティングデバイス300等のコンピューティングデバイスに実装される。ハードウェア、ソフトウェア、又は、ファームウェアの人気の適した組み合わせが、メモリストレージ、及び、処理ユニットを実装するために使用される。例えば、メモリストレージ、及び、処理ユニットは、コンピューティングデバイス300、又は、コンピューティングデバイス300と組み合わせて任意の他のコンピューティングデバイス318で実装される。前述のシステム、デバイス、及び、プロセッサは、例であり、本発明の実施形態に合致して、他のシステム、デバイス及びプロセッサは、前述のメモリストレージ及び処理ユニットを含む。さらに、コンピューティングデバイス300は、上述のようにシステム100についてのオペレーティング環境を含む。システム100は、他の環境において作動するが、コンピューティングデバイス300に限定されない。
【0033】
図3を参照して、本発明の実施形態に合致するシステムは、コンピューティングデバイス300等のコンピューティングデバイスを含む。基本の構成において、コンピューティングデバイス300は、少なくとも1つの処理ユニット302、システムメモリ304を含む。コンピューティングデバイスの構成及びタイプに依存して、システムメモリ304は、揮発性(例えば、RAM(random access memory))、不揮発性(例えばROM(read-only memory))、フラッシュメモリ又は任意の組み合わせを限定ではなく含む。システムメモリ304は、オペレーティングシステム305、1以上のプログラミングモジュール306を含み、可視化プラットフォーム110、及び/又は、機能の拡張130を含む。例えば、オペレーティングシステム305は、コンピューティングデバイス300の作動を制御するのに適している可能性がある。一実施形態において、プログラミングモジュール306は、ユーザアプリケーション140を含む。さらに、本発明の実施形態は、グラフィックライブラリ、他のオペレーティングシステム、又は、任意の他のアプリケーションプログラムと併せて実施される可能性があり、任意の特定のアプリケーション又は、システムに限定されない。基本の構成は、点線308内のコンポーネントにより図3において示される。
【0034】
コンピューティングデバイス300は、追加の機能、又は、機能性を有する。例えば、コンピューティングデバイス300は、例えば、磁気ディスク、光ディスク、又は、テープ等の(リムーバブル、及び/又は、リムーバブルでない)追加のデータストレージデバイスも含む。このような追加のストレージは、リムーバブルストレージ309、及び、リムーバブルでないストレージ310により、図3において示される。コンピュータストレージメディアは、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は、他のデータ等の情報を格納するための任意の方法、又は、技術において実装される揮発性、及び、不揮発性、リムーバブル、及び、リムーバブルでないメディアを含む。システムメモリ304、リムーバブルストレージ309、及び、リムーバブルでないストレージ310は、全てのコンピュータストレージメディアの例(つまり、メモリストレージ)である。コンピュータストレージメディアは、RAM、ROM、EEPROM(electrically erasable programmable read only memory)、フラッシュメモリ、又は、他のメモリ技術、CD−ROM、DVD(digital Versatile Disks)若しくは、他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは、他の磁気ストレージデバイス、又は、情報を格納するのに使用でき、コンピューティングデバイス300により、アクセスできる任意の他のメディアを含む。任意のこのようなコンピュータストレージメディアは、デバイス300の一部である。コンピューティングデバイス300は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス等の入力デバイス312も有する。ディスプレイ、スピーカー、プリンタ等の出力デバイス314も含まれる。前述のデバイスは、例であり、他のものも使用される。
【0035】
コンピューティングデバイス300は、例えば、イントラネット、又は、インターネットの分散コンピューティング環境において、ネットワーク上で等、他のコンピューティングデバイス318と通信することをデバイス300に可能にする通信接続316も含む。通信接続316は、通信媒体の一例である。通信媒体は、通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール又は搬送波、若しくは、他の転送メカニズム等のモジュール化されたデータ信号における他のデータにより実装される可能性があり、任意の情報伝達媒体を含む。「変調されたデータ信号」という用語は、1以上の特性セットを有するか、信号に情報をエンコードする方式で変えられた信号を説明する。例としてであり、限定ではなく、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体、及びアコースティック、RF(radio frequency)、赤外線、及び他の無線媒体等の無線媒体を含む。本明細書で使用されるコンピュータ読み取り可能な媒体という用語は、ストレージ媒体及び通信媒体の両方を含む。
【0036】
上記のように、多くのプログラムモジュール及びデーターファイルは、オペレーティングシステム305を含むシステムメモリ304に格納される。処理ユニット302上で実行している一方で、プログラミングモジュール306(例えば、可視化プラットフォーム110及び/又は、機能の拡張130)は、例えば、上述の1以上の方法200の段階を含む処理を実施する。前述の処理は、例であり、処理ユニット302は、他の処理を実施する。本発明の実施形態により使用される他のプログラミングモジュールは、電子メール及び連絡先アプリケーション、ワード処理アプリケーション、表計算アプリケーション、データーベースアプリケーション、スライドプレゼンテーションアプリケーション、描く、又は、コンピュータ支援のアプリケーションプログラム等を含む。
【0037】
一般に、本発明の実施形態に合致して、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、及び、特定のタスクを実施するか、又は、特定の抽象データタイプを実装する他のタイプの構造を含む。さらに、本発明の実施形態は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの、又は、プログラマブル消費家電、ミニコンピュータ、メインフレームコンピュータ、及び、同様のものを含む、他のコンピュータシステム構成で実践される。本発明の実施形態は、タスクが通信ネットワークを通してリンクされるリモートの処理デバイスにより実施される分散コンピューティング環境においても実践される。分散コンピューティング環境において、プログラムモジュールは、ローカル、及び、リモートの両方のメモリストレージデバイスに位置付けられる。
【0038】
さらに、本発明の実施形態は、分離した電子要素、論理ゲートを含むマイクロプロセッサを含むパッケージ化、若しくは、統合された電子チップ、マイクロプロセッサを利用する集積回路、又は、電子要素、若しくは、マイクロプロセッサを含む単一のチップ上を含む電子回路において、実践される。本発明の実施形態は、機械、光、流体及び量子の技術を含むがこれらに限定されない、例えばAND、OR及びNOT等の論理操作を実施することができる他の技術を使用しても実践される。さらに、本発明の実施形態は、汎用目的のコンピュータ、又は、任意の他の集積回路、又は、システム内でも実践される。
【0039】
例えば、本発明の実施形態は、コンピュータ処理(方法)、コンピューティングシステム、又は、コンピュータプログラム製品、又は、コンピュータ読み取り可能な媒体等の製品の品物として実装される。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能で、コンピュータ処理の実行のために指示をコンピュータプログラムにエンコードするコンピューターストレージ媒体である。コンピュータプログラム製品は、コンピュータシステムにより読み取り可能であり、コンピュータ処理の実行のための指示をコンピュータプログラムにエンコードする、搬送波上の伝播された信号でもある。従って本発明は、ハードウェア、及び/又は(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)ソフトウェアにおいて組み込まれる。言い換えると本発明の実施形態は、命令実行システムによる使用のため、又は、関係して媒体に組み込まれるコンピュータ使用可能、又は、コンピュータ読み取り可能なプログラムコードを有するコンピュータ使用可能、又は、コンピュータ読み取り可能ストレージ媒体上のコンピュータプログラム製品の形式を取る。コンピュータ使用可能、又は、コンピュータ読み取り可能な媒体は、命令実行システム、装置、又は、デバイスを使用することにより、又は、関係してプログラムを含むか、格納するか、通信するか、伝播するか、又は、転送できる任意の媒体である。
【0040】
コンピュータ使用可能、又は、コンピュータ読み取り可能な媒体は、例えば電子、磁気、光、電磁気、赤外線、又は、セミコンダクタシステム、装置、デバイス、若しくは、伝播媒体であるがこれらに限定されない。さらに、詳細なコンピュータ読み取り可能媒体の例(包括的ではないリスト)、コンピュータ読み取り可能な媒体は以下を含む、つまり1以上の有線を有する電気的な接続、ポータブルのコンピュータディスクカセット(computer diskette)、RAM(random access memory)、ROM(read only memory)、EPROM(erasable programmable read-only memory)又は、フラッシュメモリ(Flash memory)、光ファイバ、ポータブルのCD−ROM(compact disc read only memory)である。コンピュータ使用可能、又は、コンピュータ読み取り可能な媒体は、プログラムが、印字される紙又は別の適した媒体でさえありえて、プログラムは、例えば、紙又は他の媒体の光スキャンを介してプログラムが電気的にキャプチャされ、その後にコンパイルされ、解釈され、さもなければ必要に応じて適した方式で処理され、その後、コンピュータメモリに格納されることが可能であることに留意されたい。
【0041】
例えば、本発明の実施形態は、ブロック図、及び/又は、本発明の実施形態による方法、システム、及び、コンピュータプログラム製品の操作図を参照して上述される。ブロックに示される機能/動作は、任意のフローチャートに示される順序以外でも起こる。例えば、成功において示される2つのブロックは実際、引き起こされた機能/動作に依存して、実際は平行して実行されるか、又はブロックは時折逆の順番で実行される。
【0042】
さらに、本発明のある実施形態が説明されてきた一方で、他の実施形態も存在する。さらに本発明の実施形態が、メモリ及び他のストレージ媒体に格納されたデータに関連付けられて説明されてきたが、ハードディスク、フロッピーディスク、若しくは、CD−ROM、インターネットからの搬送波、又は、RAM、若しくは、ROMの他の形式のような、セカンダリストレージ媒体等の他のタイプのコンピュータ読み取り可能な媒体にデータを格納、又は、から読み出すこともできる。さらに開示の方法の段階は、本発明から逸脱することなく段階を再順序付け、及び/又は、段階を挿入、又は、削除することを含む任意の方式で変更される。
【0043】
本明細書に含まれるコードにおける著作権を含む全ての権利は、出願人に与えられ、出願人の所有権である。出願人は、本明細書に含まれるコードにおける全ての権利を保有及び留保し、取得された特許の複製と関係してのみであり他の目的なく、構成要素を複製するための許諾を付与する。
【0044】
明細書が例を含む一方で、本発明の範囲は、以下の特許請求の範囲により示される。さらに、明細書が構造的な機能、及び/又は、方法論的な動作に特有の言語で説明されてきたが、特許請求の範囲は上述の機能、又は、動作に限定されない。むしろ、上述の特有の機能、及び動作は、本発明の実施形態のための例として開示される。
図1
図2
図3