(57)【要約】【課題】  情報の永続性に依存しないレンダリングを提供するシステムおよび方法を提供すること。【解決手段】  例示的な一実施形態では、何らかの事前定義された構造を有するデータが提供される。動作時、データおよびそれに関連する構造が永続的なデータフォーマットで表されるようにデータを処理する。動作時、１または複数の制約に従ってデータを分析し、データを永続的なデータフォーマットに変換する。【選択図】  図８Ａ
2004303245.tif 000002
【特許請求の範囲】
【請求項１】
情報の永続性に依存しないレンダリングを提供する方法であって、
事前定義されたデータ構造を有するデータを提供するステップと、
永続的なデータフォーマットを生み出す事前定義されたデータフォーマットに従って前記データを変換するステップと
を備えたことを特徴とする方法。
【請求項２】
前記データについてのスキーマを提供するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記永続的なデータフォーマットに作用してレンダリング特有データを生成するレンダリングモジュールを提供するステップをさらに備えたことを特徴とする請求項２に記載の方法。
【請求項４】
いくつかの事前定義された解析ステップに従って前記データを解析するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記変換するステップは、前記データの変換を実行するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記データの２進数変換をさらに含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記永続的なデータフォーマットに対してクエリを実行するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項８】
請求項１に記載の方法を実施するようコンピュータに命令するためのコンピュータ読取り可能命令を有することを特徴とするコンピュータ読取り可能媒体。
【請求項９】
情報の永続性に依存しないレンダリングを提供するシステムであって、
関連するデータ構造を有するデータを含むデータソースと、
前記データソースに作用して永続的なデータフォーマットを生成する処理モジュールであって、前記永続的なデータフォーマットは、様々なレンダリング特有環境で機能する処理モジュールと
を備えたことを特徴とするシステム。
【請求項１０】
前記関連するデータ構造は、スキーマを含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記処理モジュールは、前記データを前記永続的なデータフォーマットに変換することを実行することを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記永続的なデータフォーマットは、２進数データフォーマット、１６進数データフォーマット、アセンブリ言語データフォーマット、および高水準プログラミング言語データフォーマットのうちのいずれかを含むことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記情報の永続性に依存しないレンダリングに作用して、レンダリング特有環境と通信するレンダリングモジュールをさらに備えたことを特徴とする請求項９に記載のシステム。
【請求項１４】
コンピューティング環境を含むことを特徴とする請求項９に記載のシステム。
【請求項１５】
前記データは、レポートデータを含むことを特徴とする請求項９に記載のシステム。
【請求項１６】
前記レポートデータは、スキーマ化されたクエリできるデータソースを含むことを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記レポートデータは、少なくとも１つのレポート定義に従って集約されることを特徴とする請求項１６に記載のシステム。
【請求項１８】
コンピューティング環境において、永続的なデータフォーマットを提供する方法であって、
スキーマ定義を含むデータを受け取ること、
少なくとも１つの事前定義された解析規則に従って前記データを解析すること、および、
前記解析されたデータを永続的なデータフォーマットに変換すること
を備えたことを特徴とする方法。
【請求項１９】
前記解析されたデータの２進数変換をさらに含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
請求項１８の方法を実施するようコンピュータに命令するためのコンピュータ読取り可能命令を有することを特徴とするコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データレンダリングの分野に関し、より詳細には、協働する様々なコンピューティングアプリケーションおよびコンピューティング環境によってより容易に利用可能な、永続的なデータフォーマットに依存しないレンダリングによる新規なデータ表現に関する。
【背景技術】
【０００２】
データの記憶およびフォーマットは、データ管理およびデータ処理と共に、いたるところで見られる。コンピューティングアプリケーションの文脈では、データは生命線である。単純なコンテンツベースのデータから複雑な組込み命令セットまで、データは、大抵のコンピューティングアプリケーションへの入力として働き、また、これらのコンピューティングアプリケーションから得られる出力でもある。当然ながら、コンピューティングアプリケーションの設計者および開発者は、我々の生活のほぼあらゆる局面で我々にかかわるデータを生成、管理、記憶、処理するための、膨大な数のコンピューティングアプリケーションを開発してきた。単純なワードプロセッシングアプリケーションから、機密データの通信で使用するための複雑な暗号化技法まで、データ処理コンピューティングアプリケーションは、日常業務および実務に統合されてきている。無数のデータによって動作するコンピューティングアプリケーションが開発は、予想される副産物、すなわち単純に、多くの様々な異種データフォーマットおよびデータ型がもたらされた。
【０００３】
異種のデータフォーマットがあることにより、各々固有のデータフォーマットおよび定義を有する協働コンピューティングアプリケーションおよびコンピューティング環境の間でデータを共有することは、ますます困難になる。これらの問題に対応して、コンピューティングアプリケーション開発者は、固有のものでないデータフォーマットを受け入れることを可能にする様々なデータフィルタおよびトランスレータを開発し実装してきた。しかし、このようなデータ変換機構の組込みおよび実装には犠牲が伴う。すなわち、処理要件が増大し、データ保全性が失われる。さらに、データ変換は、固有のものでないデータを処理しようとするコンピューティングアプリケーションのすべてに利用可能というわけではない。従って、協働するコンピューティングアプリケーション間で所望のデータを共有することは、どうしても難しくなる。
【０００４】
データは、基礎をなすフォーマットおよび／またはレイアウトを表すレンダリング拡張子によって特徴付けることができる。レンダリング拡張子は、データフォーマットおよび／またはレイアウトについて協働アプリケーションを誘起し、適切なら協働コンピューティングアプリケーションによるデータ変換をトリガして、要求元の協働コンピューティングアプリケーションに特有の固有フォーマットへ変換する。また、レンダリング拡張子は、一般的に、どのコンピューティングアプリケーションまたはコンピューティング環境がデータまたはデータセットを生成したかを表す指示も提供する。例えば、特定のワードプロセッサコンピューティングアプリケーションが、データ（例えば、文書）を生成した場合には、レンダリング拡張子は、「．ｄｏｃ」の種類とすることができる。これと比較して、表計算コンピューティングアプリケーションが何らかのデータ（例えば、スプレッドシート、グラフなど）を生成した場合には、レンダリング拡張子は、「．ｘｌｓ」とすることができる。
【０００５】
現在、コンピューティングアプリケーションは、一般的に、単一のレンダリング拡張子（例えば．ｈｔｍｌ、．ｄｏｃ、．ｘｌｓ、．ｘｍｌ）定義を有するデータ（例えば、レポート）を生成するが、このレンダリング拡張子は、通常、そのデータを生成するコンピューティングアプリケーションに固有である。従って、協働アプリケーションがレポートを処理するときは、外部レンダリング拡張子を固有レンダリング拡張子に変換する必要がある。この変換ステップは、場合によっては、エラーを招く恐れがある。すなわち、データレイアウト／フォーマット化誤り、より重要なことにはデータ誤りを招く。さらに、生成されたレポートは、容易にクエリできないので、このような形のデータは、協働アプリケーションにとって有用性が限られている。大抵の場合、関与するユーザは、コンピューティングアプリケーションを使用して、生成済みのレポートを再利用しようとするのではなく、新しいレポート定義を有する新しいデータを生成することになる。
【０００６】
既存のやり方に関するもう１つの欠点は、生成済みのデータに対して時間駆動分析を行うことができない点である。上述したように、コンピューティングアプリケーションは、協働する１または複数のデータ記憶装置に作用することができる。これらのデータ記憶装置は、様々なフィールド定義を有する様々なテーブルを備える。時間の経過につれて、フィールドの値は、そのデータ記憶装置を運営する組織および／または企業における１または複数の変化を反映するように変化する。例えば、データ記憶装置と協働して売上高を記録するコンピューティングアプリケーションを、自動車販売代理店が採用することができる。売上高の値は、より多くの自動車が売れるにつれて変化する。同じ例として、コンピューティングアプリケーションは、自動車販売代理店の販売員ごとの総売上高を示すためのレポートを生成するように動作することができる。この場合も、売上高が増加するにつれて、レポートの値は変化する。現在の、データ（例えばレポート）生成コンピューティングアプリケーションは、このように定義に従って必要なデータを収集し、レポート定義に従ってデータ作業生産物（data work product）を生成するように動作する。しかし、このデータ作業生産物は、それが生成される時点で協働データ記憶装置中にみられるデータフィールド値のスナップショットとしての働きをするものである。
【０００７】
さらに、現在のコンピュータアプリケーションは、おそらくスキーマ化されず、永続的でないデータフォーマットで記憶されず、従って容易にクエリできないデータ構造として、生成されたデータ作業生産物を呈示する。このため、これらのアプリケーションは、体系的なデータ作業生産物に対する時間次元のクエリをサポートして、１または複数のデータ値に対する時間駆動分析を可能にするということができない。データをフォーマットに依存する永続的でないレンダリングで記憶するので、現在のアプリケーションは、傾向を決定するのに利用できる時間駆動分析を行うことができない。
【０００８】
永続的なデータフォーマットに依存しないレンダリングは、レポートの生成および管理の文脈以外にも、多くの用途がある。例えば、永続的なデータフォーマットに依存しないレンダリングを組み込んで、それぞれに固有のレンダリング要件および基準を有する異種コンピューティングアプリケーション間で、ウェブコンテンツなどの様々なデータを通信することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
以上のことから、現在のやり方では実現されない様々な処理で使用される、永続的なフォーマットに依存しないレンダリングでデータを提供するシステムおよび方法が必要とされていることが理解される。これらのシステムおよび方法を有することにより、従来の技術が克服される。
【課題を解決するための手段】
【００１０】
本発明は、情報の永続性に依存しないレンダリングとしてデータを表すためのシステムおよび方法を提供する。例示的な一実装形態では、事前に定義された構造を有するデータが提供される。このデータを処理して、データとデータ構造とに関する情報を含むデータ表現を生成する。動作時には、データを分析し、永続する事前定義されたフォーマットに変換する。
【００１１】
企図される一実装形態では、生成されたデータセットは、コンピューティングアプリケーションによって、永続的なデータフォーマットに依存しないレンダリングで提供される。永続的なデータフォーマットに依存しないレンダリングによって、とりわけ、アプリケーションは、スキーマ化されたクエリできるデータソースとして呈示されたレポートに対して、時間無効のクエリおよび時間駆動のクエリを実施することができる。また、より重要なことに、他の協働コンピューティングアプリケーションが、このレポートを他の任意のデータソースとして認識することができる。
【００１２】
本明細書に述べるシステムおよび方法に関するその他の特徴および態様について、以下により詳細に述べる。
【発明を実施するための最良の形態】
【００１３】
（概観）
データの永続性は、効果的なデータウェアハウジングおよびデータ処理と等しい。現在、コンピューティングアプリケーションおよびコンピューティング環境は、データに作用して、１または複数のレンダリング拡張子で記述することのできる１または複数のデータ作業生産物を生成する。一般に、レンダリング拡張子を使用して、作業生産物にみられるデータのフォーマットおよび定義を特徴付けることができる。通常、コンピューティングアプリケーションは、データ処理モードでデータセットに作用して、特定のレンダリング拡張子を有するデータ作業生産物を生成することになる。例えば、ワードプロセッシングコンピューティングアプリケーションは、テキストタイプのデータに作用して、フォーマット化された文書を生成する。このようなフォーマット化された文書は、「．ｄｏｃ」レンダリング型を有するデータとして記憶することができる。
【００１４】
しかし、協働するコンピューティングアプリケーションおよびコンピューティング環境が、固有でないデータフォーマットまたは定義を有するデータ（すなわち異なる種々のレンダリング拡張子付きで記憶および呈示されるデータ）の点で競合するとき、問題が生じる。典型的には、コンピューティングアプリケーションは、所望のデータ作業生産物を固有のレンダリング拡張子に変換するための１または複数のデータ変換操作が装備されていれば、これを呼び出す。しかし、このような変換は、処理集約的である可能性があり、最終的なデータ作業生産物に重大な誤りを招く恐れがある。
【００１５】
本発明は、永続的なデータフォーマットに依存しないレンダリングを有するデータを呈示するシステムおよび方法を提供することによって、既存のやり方の欠点を改善することを目的とする。具体的には、所定の定義に従ってデータに作用する例示的なコンピューティングアプリケーションが提供される。データ定義は、とりわけ、提供されることになる所望のデータに関係する情報、データレイアウト情報、およびデータフォーマット化情報を含む。例示的なコンピューティングアプリケーションは、協働するデータ記憶装置から所望のデータおよびデータ定義を取り出す。これらを収集した後、例示的なコンピューティングアプリケーションは、データについてのスキーマを定義し、データを中間データフォーマットで記憶する。中間データフォーマットは、永続的なデータフォーマットに依存しないレンダリングである。従って、取り出された、関連するスキーマを有するデータは、データソースから協働アプリケーションに提供されるすべての利点を備えたデータソースとして呈示される。さらに、永続的なデータフォーマットに依存しないレンダリングとして記憶されるので、現在の再利用可能性（すなわち、様々なデータレンダリング拡張子要件を有する異種コンピューティングアプリケーションおよびコンピューティング環境間における利用可能性）の問題が解決され、さらに、本システムおよび方法によれば、生成されたレポートのセットに対する時間駆動のクエリは、より容易に実行可能である。
【００１６】
本明細書に述べるシステムおよび方法について、１または複数のデータ作業生産物を生成する状況で述べるが、情報の永続性に依存しないレンダリングは、提供する各例の範囲を越えて様々な方式で利用できることを理解されたい。
【００１７】
（Ａ．例示的なコンピューティング環境）
図１に、本発明を実施することができる好適なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、好適なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどのような制限も意味しない。またコンピューティング環境１００は、この例示的な動作環境１００に示すコンポーネントのいずれか１つ、または組合せに関してどのような依存性も要件も有すると解釈すべきではない。
【００１８】
本発明は、その他多くの汎用または専用コンピューティングシステム環境または構成でも動作する。本発明で使用するのに適した周知のコンピューティングシステム、環境、および／または構成の例には、これに限定しないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【００１９】
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的な文脈で述べることができる。一般にプログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークまたはその他のデータ伝送媒体を介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールおよびその他のデータは、メモリ記憶デバイスを含めたローカルとリモートの両方のコンピュータ記憶媒体に位置することができる。
【００２０】
図１を参照すると、本発明を実施するための例示的なシステムは、コンピュータシステム１１０の形の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、これに限定しないが、処理ユニット１２０と、システムメモリ１３０と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含めることができる。システムバス１２１は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺機器バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカルバス、およびＰＣＩ（Peripheral Component Interconnects）バス（メザニンバスとも呼ばれる）が含まれる。
【００２１】
コンピュータ１１０は、典型的には、様々なコンピュータ読取り可能媒体を備える。コンピュータ読取り可能媒体は、コンピュータ１１０からアクセスできる任意の利用可能な媒体とすることができ、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体が含まれる。限定ではなく例として、コンピュータ読取り可能媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体が含まれる。コンピュータ記憶媒体には、これに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスが含まれ、または、所望の情報を記憶するのに使用できコンピュータ１１０からアクセスできるその他の任意の媒体が含まれる。通信媒体は通常、搬送波や他のトランスポート機構などの変調データ信号中に、コンピュータ読取り可能命令、データ構造、プログラムモジュール、またはその他のデータを組み入れたものであり、任意の情報送達媒体が含まれる。「変調データ信号」という語は、情報が信号中に符号化されるように１または複数の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、無線周波数、赤外線、他の無線媒体などの無線媒体とが含まれる。以上の任意の組合せもコンピュータ読取り可能媒体の範囲に含めるべきである。
【００２２】
システムメモリ１３０は、ＲＯＭ１３１やＲＡＭ１３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（basic input/output system）１３３は、典型的には、ＲＯＭ１３１に記憶されている。ＲＡＭ１３２は、典型的には、処理ユニット１２０がすぐにアクセス可能な、および／または処理ユニット１２０が現在作用している、データおよび／またはプログラムモジュールを含む。限定ではなく例として、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００２３】
コンピュータ１１０は、その他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが図１には、取外し不可能かつ不揮発性の磁気媒体に対して読み書きするハードディスクドライブ１４１と、取外し可能かつ不揮発性の磁気ディスク１５２に対して読み書きする磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭや他の光媒体など取外し可能かつ不揮発性の光ディスク１５６に対して読み書きする光ディスクドライブ１５５を示す。この例示的な動作環境で使用できるその他の取外し可能／取外し不可能、揮発性／不揮発性コンピュータ記憶媒体には、これに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は、典型的には、インタフェース１４０などの不揮発性メモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インタフェース１５０などの取外し可能メモリインタフェースでシステムバス１２１に接続される。
【００２４】
以上に論じ図１に示した各ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、およびその他のデータの記憶域をコンピュータ１１０に提供する。例えば、図１には、ハードディスクドライブ１４１がオペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７が少なくとも異なるコピーであることを示すために、異なる番号を付してある。ユーザは、キーボード１６２、マウスやトラックボールやタッチパッドと一般に呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コンピュータ１１０にコマンドおよび情報を入力することができる。その他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含めることができる。これらおよび他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース１６０を介して処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（「ＵＳＢ」）など、他のインタフェースおよびバス構造で接続されてもよい。モニタ１９１または他のタイプの表示デバイスもまた、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７やプリンタ１９６など他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース１９５を介して接続することができる。
【００２５】
コンピュータ１１０は、リモートコンピュータ１８０など１または複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の一般的なネットワークノードとすることができる。図１にはメモリ記憶デバイス１８１しか示していないが、典型的には、パーソナルコンピュータ１１０に関して上述した要素の多くまたはすべてを備える。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットでよくみられるものである。
【００２６】
コンピュータ１１０は、ＬＡＮネットワーキング環境で使用されるとき、ネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用されるとき、コンピュータ１１０は、典型的には、インターネットなどのＷＡＮ１７３を介した通信を確立するためのモデム１７２または他の手段を備える。モデム１７２は内蔵でも外付けでもよく、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図１には、リモートアプリケーションプログラム１８５がメモリデバイス１８１上にあるものとして示す。図示のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用することもできることは理解されるであろう。
【００２７】
（Ｂ．例示的なネットワーク化コンピューティング環境）
上述のコンピュータ１１０は、コンピュータネットワークの一部として配置することができる。一般に、コンピュータに関する上の記述は、ネットワーク環境に配置されたサーバコンピュータとクライアントコンピュータの両方に当てはまる。図２に、サーバがネットワークを介してクライアントコンピュータと通信する、本発明を採用することのできる例示的なネットワーク環境を示す。図２に示すように、複数のサーバ１０ａ、１０ｂなどが、通信ネットワーク１４（ＬＡＮ、ＷＡＮ、イントラネット、インターネット、またはその他のコンピュータネットワークとすることができる）を介して、複数のクライアントコンピュータ１１０ａ、１１０ｂ、１１０ｃと、または携帯電話機１５、地上線電話機１６、携帯情報端末１７などのコンピューティングデバイスと相互接続されている。例えば、通信ネットワーク１４がインターネットであるネットワーク環境では、サーバ１０はウェブサーバとすることができ、クライアント１１０は、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）やワイヤレスアプリケーションプロトコル（ＷＡＰ）など、任意の数の知られたプロトコルを介してウェブサーバと通信する。各クライアントコンピュータ１１０には、サーバ１０へのアクセスを得るためのブラウザ１８０ａが備わるものとすることができる。同様に、様々なデータを表示および受信するために、携帯情報端末１７にはブラウザ１８０ｂが備わり、携帯電話機１５にはブラウザ１８０ｃが備わるものとすることができる。
【００２８】
動作時、ユーザ（図示せず）は、クライアントコンピューティングデバイス上で稼動するコンピューティングアプリケーションと対話して、スキーマ化されたクエリできるデータソースとしてレポートを呈示することができる。このレポートは、サーバコンピュータ上に記憶し、通信ネットワーク１４およびクライアントコンピューティングデバイスを介して協働ユーザに通信することができる。ユーザは、クライアントアプリケーションデバイス上のコンピューティングアプリケーションとインタフェースすることによって、このようなレポートを生成および管理し、それと対話することができる。これらのトランザクションを、処理および記録するようにクライアントコンピューティングデバイスからサーバコンピュータに通信することができる。サーバコンピュータは、クエリできるスキーマ化されたデータソースとしてレポートを呈示するためのコンピューティングアプリケーションをホストすることができる。
【００２９】
このように本発明は、ネットワークにアクセスしてそれと対話するためのクライアントコンピューティングデバイスと、クライアントコンピュータと対話するためのサーバコンピュータとを有するコンピュータネットワーク環境で利用することができる。ただし、本明細書に述べるシステムおよび方法は、様々なネットワークベースのアーキテクチャで実施することができ、従って図示の例に限定すべきではない。次に、本明細書に述べるシステムおよび方法を、現時点における例示的な一実装形態に関してより詳細に述べる。
【００３０】
（Ｃ．データソースとしてのレポート）
図３に、レポートを呈示する例示的なレポート生成管理システムの説明に役立つ例示的なアーキテクチャのブロック図を示す。図示のように、例示的なアーキテクチャ３００は、レポートサーバ３２０を含む。レポートサーバ３２０は、さらに、レポート処理エンジン３２５、分析サービスエンジン３３０、およびレポート中間フォーマット３３５を備える。レポート中間フォーマット３３５は、さらに、データ３４５およびスキーマ３４０を備える。最後に、この例示的なアーキテクチャ３００は、レポートビューア／ブラウザ３０５と、ＯＬＥＤＢ／ＡＤＯ３１０を含む。動作時、レポートサーバ３２０は、レポートデータ３４５に作用するスキーマ３４０を生成する。レポートサーバ３２０は、永続的なデータフォーマットに依存しないレンダリングを有するスキーマ化されたクエリ可能なデータソースとして、レポート中間フォーマットを生成する。次に、レポートサーバ３２０は、この中間データフォーマットを使用して、生成されたレポートを、３０５を介して表示することができる。この文脈で、レポートサーバ３２０のレポート処理エンジン３２５は、中間フォーマット３３５を処理して、レポートビューア／ブラウザ３０５上にレポートを表示する。また、レポートサーバ３２０は、中間フォーマットを使用して、生成されたレポートを、ＯＬＥＤＢモジュール３１０を使用し分析サービスエンジン３３０を介して協働環境に通信することもできる。
【００３１】
レポートをスキーマ化された中間フォーマットにすることにより、このレポートは、協働環境および協働コンピューティングアプリケーションにとってデータソースのように見え、またデータソースのように働く。
【００３２】
（Ｄ．スキーマ化されたデータソースとしてデータ作業生産物を呈示する）
図４に、スキーマ化されたクエリできるデータソースとしてレポートを呈示するデータ作業生産物（例えばレポート）の生成および管理システムの、例示的なコンポーネント間のデータフローの例を示す。図示のように、レポート生成管理システム４００は、スキーマ化されたクエリできるデータソースとしてレポートを呈示する際に使用するための様々なコンポーネントを備える。具体的には、レポート生成管理システム４００は、レポート処理モジュール４２０を備える。図示のように、レポート処理モジュール４２０は、レポート定義４１５と協働し、外部データソース４０５，４１０からのデータを受け入れてレポートを生成し、これを中間フォーマット４２５で記憶する。
【００３３】
動作時、１または複数の協働環境が、生成されたレポートを要求することができる。この文脈で、中間データフォーマットで記憶されたレポートを、イベント処理モジュール４３０に通信する。イベント処理モジュール４３０は、生成されたレポートの全部または一部を要求元の環境に通信するのを調整する。イベント処理モジュール４３０は、要求元環境のレンダリングを決定し、レポートの全部または一部を、要求元環境に固有のレンダリング拡張子で要求元環境に提供する。例えば、ＨＴＭＬレンダリングが必要とされる場合は、ＨＴＭＬレンダリング拡張子４３５を採用する。これと比較して、ＸＭＬレンダリング拡張子が必要とされる場合は、ＸＭＬレンダリング拡張子４４０を採用する。同様に、その他のレンダリング型も、その他のレンダリング拡張子４４５で表される。
【００３４】
図５に、例示的なレポート生成管理システム５００に関する高レベルの展開例を示す。図示のように、レポート生成管理システム５００は、レポート処理モジュール５２５を備える。レポート処理モジュール５２５は、データ拡張５３５およびレンダリング拡張５３０を備える。さらに、レポート処理モジュールは、レポート定義５１０およびデータソース５０５と協働する。動作時、レポートを求める要求を、レポート処理モジュール５２５に提供する。レポート処理モジュール５２５は、レポート定義ファイル５１０から、データソース５０５中にみられるデータに適用するための適切なレポート定義を得る。次に、データ拡張５３５を使用して、レポート処理モジュール５２５によりデータを処理して、データソース５０５からのデータ要素を識別する。次に、レポート処理モジュール５２５は、適切なレポート定義に従ってデータを処理して、スキーマ化されたクエリできるデータソースとして呈示されるレポートを生成する。次に、レポート処理モジュール５２５は、このレポートを、将来に使用されるように中間データフォーマット５２０で記憶する。
【００３５】
レポートを生成することに加えて、レポート生成管理システム５００は、要求元環境に必要とされるレンダリングにかかわらず、生成されたレポートを協働環境に通信することもできる。例えば、レポート生成管理システム５００を利用して、生成されたレポートを協働環境に通信することができる。この文脈で、中間フォーマット５２０で記憶された生成済みレポートを、レポート処理モジュール５２５により取り出し、レンダリング拡張５３０を使用して処理し、要求元環境に受け入れられるレンダリングフォーマットのレポートを生成する。
【００３６】
図６に、永続的なデータフォーマットに依存しないレンダリングを有するスキーマ化されたクエリできるデータソースとしてレポートを呈示することのできる例示的なレポート生成管理システムの詳細な展開例を示す。図示のように、レポート生成管理システム６００は、レポートサーバ６０５を備える。レポートサーバ６０５は、マッピングモジュール６１０、レポート処理モジュール６１５、およびクエリ処理最適化／実行エンジン６２５を備える。レポートサーバ６０５は、様々な協働コンポーネントと協働するが、これらの協働コンポーネントは、これに限定しないが、レポートユーザインタフェース（ＵＩ）６３０、レポート定義６５０、第２のレポートサーバ６３５、分析サービス（ＡＳ）データプロバイダ６４０、およびピボット制御コンポーネント６４５を含む。
【００３７】
レポートを生成するとき、レポートサーバ６０５は、レポート定義６５０と協働して、所望のレポートのための適切なレポート定義を得る。次に、レポート定義を、レポートサーバ６０５のレポート処理モジュール６１５により処理する。レポートサーバ６０５は、適切なレポート定義を使用して、適切なデータを収集し、所望のレポートを表すスキーマ化されたクエリ可能なデータソースを生成する。次に、レポートサーバ６０５は、レポートをレポートＵＩ６３０上に表示することができる。この企図される動作では、レポートサーバ６０５のレポート処理モジュール６１５は、マッピングモジュール６１０と協働して、レポートＵＩ６３０上で閲覧および表示されるようにこの所望のレポートをマッピングする。
【００３８】
動作時、レポート生成管理システム６００は、いくつかの動作および機能をサポートすることができる。例えば、生成された一組のレポートに関する報告を実行することができる。図６に矢印で示すように、レポートに関する報告を求める要求が、レポートサーバ６３５に提供される。レポートサーバ６３５は、レポートに関する報告の要求を処理し、ＡＳデータプロバイダモジュールと協働して、この要求を満たす。ＡＳデータプロバイダ６４０は、クエリ処理最適化／実行エンジン６２５と協働する。このエンジンは、レポート処理モジュール６１５と協働して、レポートに関する報告の要求を満たすのに必要なデータを入手／生成する。同様に、レポートに関するＯＷＣを求める要求を、ピボット制御モジュール６４５に提供することができ、ピボット制御モジュール６４５は、ＡＳデータプロバイダ６４０と協働して、レポートに関するＯＷＣの要求を満たす。
【００３９】
レポート生成管理システム６００の別の使用法は、関与するユーザが、リモート協働環境から発生したレポートをレポートＵＩ６３０上で見ることができるようにする。この文脈で、レポートＵＩ６３０は、レポート処理モジュール６１５と協働する。レポート処理モジュール６１５は、マッピングモジュール６１０と協働する。マッピングモジュール６１０は、データをあるデータフォーマットから別のデータフォーマットに変換するように動作する。従って、これを使用して、データフォーマットに依存しないレンダリングのデータを、要求元環境でレンダリングするデータフォーマットに依存するレンダリングに変換することができる。次に、マッピングモジュール６１０は、クエリ処理最適化／実行エンジン６２５と協働して、１または複数の協働モジュールと通信する。
【００４０】
企図される実装形態におけるレポートサーバ６０５は、コンピューティングハードウェア、コンピューティングソフトウェア、およびコンピューティングハードウェアとコンピューティングソフトウェアの組合せのいずれを含むこともできることを理解されたい。
【００４１】
図７に、スキーマ化されたクエリ可能なデータソースとしてレポートを呈示するために実施される例示的な処理、および呈示されたこのようなレポートを利用する際に実施される後続の処理のフローチャートを示す。図示のように、処理は、ブロック７００で開始してブロック７０５に進み、ここでレポート定義を得る。ブロック７１０で、得られたレポート定義に従って、レポートについてのスキーマを生成する。次に、ブロック７１５においてレポートデータを得て、ブロック７２０において、ブロック７１０で生成されたスキーマをレポートデータに適用する。次にもブロック７２５において、スキーマ化されたレポートを中間フォーマットで記憶する（図８Ａおよび８Ｂで述べる処理に従って）。ここから処理は、ブロック７３０に進み、レポートが要求されているかどうか（例えば、固有の環境または協働環境から要求されているか否か）を決定するためのチェックを行う。提供した各例の文脈では、環境は、任意のコンピューティング環境および部分的なコンピューティング環境を含む。レポートが要求されている場合は、処理はブロック７３５に進んでデータ拡張をレポートに適用し、ブロック７４０でデータ拡張を提供する。企図される例示的な一実装形態では、データ拡張をレポートのデータに適用して、データフィールドの定義を識別する助けとする。上述したように、レンダリング拡張を使用して、レポートを使用する環境のレンダリングフォーマットで使用されるようにレポートを変換する。次に、ブロック７４５において、レポートの要求元である環境で表示されるように、レポートをレンダリングする。処理はブロック７５０で終了する。しかし、ブロック７３０でレポートが要求されていない場合は、処理はブロック７５０に進んで終了する。
【００４２】
（Ｅ．情報の永続性に依存しないレンダリング）
図８Ａに、永続的なデータフォーマットに依存しないレンダリングで呈示されたレポートを提供するために実施される例示的な処理のフローチャートを示す。図示のように、処理はブロック８００で開始し、ブロック８０５に進み、呈示された、スキーマ化されたクエリできるレポートのレポートスキーマを得る。処理は、ブロック８１０に進み、永続的なデータフォーマットに依存しないレンダリングを識別する。例示的な一実装形態では、永続的なデータフォーマットに依存しないレンダリングは、２進数データフォーマットを含む。ブロック８１０の文脈では、提供された例による本明細書に述べる処理は、スキーマの２進数表現を識別することを企図している。提供された例から、処理はブロック８１５に進み、識別された２進数スキーマを所望のレポートに適用して、スキーマ化されたレポートを２進数データフォーマットに変換する。この変換ステップには、レポートデータを処理に向けて分離するように働く少なくとも１つの解析規則で定義された、データ分析プロセスを実行することが含まれる。処理はブロック８２０に進み、生成された２進数表現を、呈示されたレポートがその形で存在することのできる中間データフォーマットとして提供する。処理はブロック８２５で終了する。
【００４３】
この例示的な実装形態では、永続的なデータフォーマットに依存しないレンダリングの２進数表現を使用することを企図しているが、本明細書に開示する発明的概念は、提供した例示的な実装形態を越えて、限定しないが１６進数表現、アセンブリ言語表現、および高水準プログラミング言語表現を含むことを理解されたい。
【００４４】
図８Ｂに、呈示されたレポートの全部または一部を要求元環境で使用するために取り出すよう求める協働環境からの要求を処理するときに実施される、例示的な処理のフローチャートを示す。図示のように、処理は、ブロック８３０で開始してブロック８３５に進み、ここで所望のレポート（全部または一部）が要求され、その中間フォーマット（例えば、永続的なデータフォーマットに依存しないレンダリング）で提供される。ここから処理はブロック８４０に進み、中間フォーマット、フォーマットに依存しないレンダリングを、フォーマットに依存するレンダリング、すなわち要求元環境のレンダリングフォーマットに変換する。例示的な一実装形態では、この変換ステップは、レポートスキーマの２進数変換形から要求元環境の拡張子特有フォーマットへの変換を企図している。ブロック８４５において、スキーマ化されたレポートおよび付随するデータを、要求元環境のレンダリング拡張子で提示されるように抽出する。ブロック８５０において、最終的なレポートを提供する。処理はブロック８５５で終了する。
【００４５】
図９に、生成されたレポートのセットに対して時間ベースのクエリを行うときに実施される例示的な処理のフローチャートを示す。図示のように、処理はブロック９００で開始し、ブロック９０５に進み、ここで、所望のスナップショットビューのパラメータを提供する。ここから処理はステップ９１０に進み、スキーマ化されたクエリできるレポートをデータソースとして処理する。ブロック９１５において、提供されたパラメータに従って、生成された一組のレポートからデータを集約する（例えば、年度１から年度２までのすべての売上高レポート全体で、中西部地域における年度１から年度２までのすべての売上高の値を収集する）。ブロック９２０において、集約されたデータを収集および処理して、所望のスナップショットデータを有する新しいスキーマ化されたクエリできるレポートを提供する。処理はブロック９２５に進んで終了する。
【００４６】
図９に述べた処理は、本明細書に述べるシステムおよび方法の１または複数の特徴を採用している。具体的には、本明細書に述べるシステムおよび方法では、レポートを、永続的なデータフォーマットに依存しないレンダリングを有するスキーマ化されたクエリできるデータソースとして呈示する機構を企図している。レポートがスキーマ化され、クエリ可能であり、永続的であるため、このようなレポートのセットに対する時間ベースのクエリ（例えば、傾向スナップショット）は容易に処理される。というのは、レポートのスキーマから識別される時間値にわたってデータが収集されるからである。レポートは永続的なデータフォーマットで記憶されるので、これらの値には信頼性がある。
【００４７】
（Ｆ．結び）
上述したように、本発明の例示的な実施形態を様々なコンピューティングデバイスおよびネットワークアーキテクチャに関して述べたが、基礎をなす概念は、関連する他の機能を横断および／または実施することが望ましい任意のコンピューティングデバイスまたはシステムに適用することができる。従って、以上に述べたプロセスおよびシステムは、様々なアプリケーションおよびデバイスに適用することができる。本明細書では、様々な選択子の代表として例示的なデータ構造、プログラミング言語、名前、および例を選択したが、これらは限定的なものではない。
【００４８】
本明細書に述べた様々な技法は、ハードウェアまたはソフトウェア、あるいは適切ならば、これらの組合せと共に実施することができる。従って、本発明の方法および装置、またはこれらのいくつかの態様または部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、その他任意の機械読取り可能記憶媒体などのタンジブルな媒体に組み入れた、プログラムコード（すなわち命令）の形をとることができる。プログラムコードがコンピュータなどのマシンにロードされ、マシンによって実行されると、このマシンは本発明を実施するための装置になる。プログラムコードがプログラム可能コンピュータ上で実行される場合、このコンピューティングデバイスは、通常、プロセッサと、プロセッサ読取り可能な記憶媒体（揮発性と不揮発性のメモリ、および／または記憶素子を含む）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスを備える。本発明のデバッグインタフェース態様を例えばデータ処理ＡＰＩなどを用いることによって利用する１または複数のプログラムを、コンピュータシステムと通信するための高水準のプロシージャプログラミング言語またはオブジェクト指向プログラミング言語で実装することが好ましい。ただしプログラムは、望むならアセンブリ言語またはマシン言語で実装してもよい。いずれにしても、言語はコンパイルまたは解釈される言語とすることができ、ハードウェア実装と結合することができる。
【００４９】
本発明の方法および装置はまた、電気配線またはケーブル配線や、光ファイバや、その他任意の形の伝送など、何らかの伝送媒体を介して伝送されるプログラムコードの形で具体化された通信を介して実施することもできる。例示的な実施形態で上述したデバッグ機能を有する、ＥＰＲＯＭ、ゲートアレイ、プログラム可能論理デバイス（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダなどのマシン、または受信マシンでプログラムコードが受信されロードされ実行されると、このマシンは本発明を実施する装置になる。プログラムコードは、汎用プロセッサ上で実施されると、プロセッサと結合して、本発明の機能を呼び出すように動作する固有の装置を形成する。さらに、本発明と共に使用される任意の記憶技法は、どんな場合でもハードウェアとソフトウェアの組合せとすることができる。
【００５０】
現時点で好ましい実施形態に関して本発明を述べたが、同じ本発明の機能を実施するために、本発明を逸脱することなく、その他の類似の実施形態を使用することもでき、また、述べた実施形態に修正および追加を施すこともできることを理解されたい。例えば、本出願に述べた本発明は、有線でも無線でも任意のコンピューティングデバイスまたは環境に適用することができ、また、通信ネットワークを介して接続されネットワークを介して対話する任意の数のこのようなコンピューティングデバイスに適用することができることは、当業者なら理解するであろう。さらに、特に無線ネットワーク化デバイスが急増していることもあり、ハンドヘルドデバイスオペレーティングシステムやその他のアプリケーション特有オペレーティングシステムを含めた様々なコンピュータプラットフォームが企図されることも強調しておく。さらに本発明は、複数の処理チップまたはデバイス中に、またはそれらにまたがって実装することができ、記憶も同様に複数のデバイスにまたがって実施することができる。従って本発明は、どんな単一の実施形態にも限定すべきではなく、添付の特許請求の範囲に従った幅および範囲で考えるべきである。
【図面の簡単な説明】
【００５１】
【図１】本発明に適した例示的なコンピューティング環境の概略図である。
【図２】本発明に適した例示的なコンピューティング環境の概略図であり、例示的なネットワーク化コンピューティング環境を示す図である。
【図３】本明細書に述べるシステムおよび方法による、データソースとしてのレポートの例示的な一実装形態を示すブロック図である。
【図４】本明細書に述べるシステムおよび方法による、レポート処理の流れを示すブロック図である。
【図５】本明細書に述べるシステムおよび方法による、レポート利用の流れを示すブロック図である。
【図６】本明細書に述べるシステムおよび方法による、スキーマ化されたデータ構造を処理するための例示的なコンポーネントの詳細なブロック図である。
【図７】本明細書に述べるシステムおよび方法による、スキーマ化されたクエリ可能なデータソースとしてレポートを呈示するために実施される処理の流れ図である。
【図８Ａ】データソースを情報の永続性に依存しないレンダリングとして呈示するために実施される処理の流れ図である。
【図８Ｂ】情報の永続性に依存しないレンダリングを、スキーマ化されたクエリできるデータソースとして呈示されるレポートとして変換する際に実施される処理の流れ図である。
【図９】スキーマ化されたクエリできるデータソースとして呈示されたデータを処理し、所望のスナップショットを生成する際に実施される処理の流れ図である。
【符号の説明】
【００５２】
３００  例示的なアーキテクチャ
３０５  レポートビューア／ブラウザ
３１０  ＯＬＥＤＢ／ＡＤＯ
３２０  レポートサーバ
３２５  レポート処理エンジン
３３０  分析サービスエンジン
３３５  レポート中間フォーマット
３４０  スキーマ
３４５  データ
４００  レポート生成管理システム
４０５、４１０  外部データソース
４１５、５１０、６５０  レポート定義
４２０  レポート処理モジュール
４２５、５２０  中間フォーマット
４３０  イベント処理モジュール
４３５  ＨＴＭＬレンダリング拡張子
４４０  ＸＭＬレンダリング拡張子
４４５  その他のレンダリング拡張子
５００  レポート生成管理システム
５０５  データソース
５２５、６１５  レポート処理モジュール
５３０  レンダリング拡張
５３５  データ拡張
６００  レポート生成管理システム
６０５  レポートサーバ
６１０  マッピングモジュール
６２５  クエリ処理最適化／実行エンジン
６３０  レポートユーザインタフェース（ＵＩ）
６３５  第２のレポートサーバ
６４０  分析サービス（ＡＳ）データプロバイダ
６４５  ピボット制御コンポーネント
【図１】
2004303245.tif 000003
【図２】
2004303245.tif 000004
【図３】
2004303245.tif 000005
【図４】
2004303245.tif 000006
【図５】
2004303245.tif 000007
【図６】
2004303245.tif 000008
【図７】
2004303245.tif 000009
【図８Ａ】
2004303245.tif 000010
【図８Ｂ】
2004303245.tif 000011
【図９】
2004303245.tif 000012
【外国語明細書】
2004303245000001.pdf