(57)【要約】プレゼンテーションが作成され、そこにスプレッドシートオブジェクトが埋め込まれる。プレゼンテーションはダウンロードに先立ってカスタマイズすることが可能である。スプレッドシートおよびプレゼンテーション技術の統合に関してマークアップ言語技術を使用することが可能である。
2009524132.tif 000002
【特許請求の範囲】
【請求項１】
プレゼンテーションを作成するための方法であって、
スプレッドシートオブジェクトを作成するステップと、
前記プレゼンテーションを作成するステップと、
前記プレゼンテーションの作成において前記プレゼンテーション内に前記スプレッドシートオブジェクトを埋め込むステップと、
を有する方法。
【請求項２】
プレゼンテーションをカスタマイズするための方法であって、
前記プレゼンテーションを作成するステップを有し、前記プレゼンテーションは１つまたは複数のスライドを含み、
１つまたは複数の前記スライドの画像を作成するステップと、
１つまたは複数の前記画像を表示するステップと、
前記プレゼンテーションをカスタマイズする１つまたは複数の要求を受信するステップと、
カスタマイズされたプレゼンテーションを生成するステップと、
をさらに有する方法。
【請求項３】
前記プレゼンテーション内に１つまたは複数のスプレッドシートオブジェクトが埋め込まれている請求項２に記載の方法。
【請求項４】
前記要求は、前記プレゼンテーションから１つまたは複数の前記スライドを削除する要求、テキスト要素を追加する要求、前記プレゼンテーションに１つまたは複数の追加のスライドを追加する要求、前記スライドに関する番号付け規則を変更する要求のうち１つまたは複数を含む請求項２に記載の方法。
【請求項５】
プレゼンテーションを作成するための方法であって、
プレゼンテーションの作成に関する要求を受信するステップと、
前記プレゼンテーションの作成において行われる１つまたは複数の計算アクションおよび１つまたは複数のプレゼンテーションアクションを決定するために前記要求を解析するステップと、
計算アクションを指示する実行可能な命令を含む第１のマークアップ言語ドキュメントを生成するステップと、
計算データを含む第２のマークアップ言語ドキュメントを生成するために前記第１のマークアップ言語ドキュメントを処理するステップと、
プレゼンテーションアクションを指示する実行可能な命令を含む第３のマークアップ言語ドキュメントを生成するステップと、
草案プレゼンテーションおよび最終プレゼンテーションの一方に関するデータを含む第４のマークアップ言語ドキュメントを生成するために、前記第３のマークアップ言語ドキュメントおよび前記第２のマークアップ言語ドキュメントを処理するステップと、
を有する方法。
【請求項６】
前記第２のマークアップ言語ドキュメントの生成において１つまたは複数のスプレッドシートテンプレートを利用するステップをさらに有する請求項５に記載の方法。
【請求項７】
前記第４のマークアップ言語ドキュメントの生成において１つまたは複数のプレゼンテーションテンプレートを利用するステップをさらに有する請求項５に記載の方法。
【請求項８】
プレゼンテーションを作成するためのシステムであって、
スプレッドシートオブジェクトを作成するための計算エンジンと、
前記プレゼンテーションを作成するためのプレゼンテーションエンジンと、
を備え、
前記プレゼンテーションの作成において前記プレゼンテーション内に前記スプレッドシートオブジェクトが埋め込まれるシステム。
【請求項９】
プレゼンテーションをカスタマイズするためのシステムであって、
前記プレゼンテーションを作成するためのプレゼンテーションエンジンを備え、前記プレゼンテーションは１つまたは複数のスライドを含み、
１つまたは複数の前記スライドの画像が作成され、１つまたは複数の前記画像が表示され、前記プレゼンテーションをカスタマイズする１つまたは複数の要求が受信され、カスタマイズされたプレゼンテーションが生成されるシステム。
【請求項１０】
前記プレゼンテーション内に１つまたは複数のスプレッドシートオブジェクトが埋め込まれている請求項９に記載のシステム。
【請求項１１】
前記要求は、前記プレゼンテーションから１つまたは複数の前記スライドを削除する要求、テキスト要素を追加する要求、前記プレゼンテーションに１つまたは複数の追加のスライドを追加する要求、前記スライドに関する番号付け規則を変更する要求のうち１つまたは複数を含む請求項９に記載のシステム。
【請求項１２】
プレゼンテーションを作成するためのシステムであって、
プレゼンテーションの作成に関する要求を受信し、前記プレゼンテーションの作成において行われる１つまたは複数の計算アクションおよび１つまたは複数のプレゼンテーションアクションを決定するために要求を解析し、計算アクションを指示する実行可能な命令を含む第１のマークアップ言語ドキュメントを生成するための動作フローエンジンと、
前記第１のマークアップ言語ドキュメントを受信し、計算データを含む第２のマークアップ言語ドキュメントを生成するために前記第１のマークアップ言語ドキュメントを処理するための計算エンジンと、を備え、
前記動作フローエンジンは、さらに、前記第２のマークアップ言語ドキュメントを受信し、前記第２のマークアップ言語ドキュメントを処理し、プレゼンテーションアクションを指示する実行可能な命令を含む第３のマークアップ言語ドキュメントを生成し、
前記第３のマークアップ言語ドキュメントを受信し、草案プレゼンテーションおよび最終プレゼンテーションの一方に関するデータを含む第４のマークアップ言語ドキュメントを生成するために、前記第３のマークアップ言語ドキュメントを処理するプレゼンテーションエンジンをさらに備えるシステム。
【請求項１３】
前記第２のマークアップ言語ドキュメントの生成において１つまたは複数のスプレッドシートテンプレートが利用される請求項１２に記載のシステム。
【請求項１４】
前記第４のマークアップ言語ドキュメントの生成において１つまたは複数のプレゼンテーションテンプレートが利用される請求項１２に記載のシステム。
【請求項１５】
データ処理装置において実行されるとき、
プレゼンテーションを作成するための方法であって、
スプレッドシートオブジェクトを作成するステップと、
前記プレゼンテーションを作成するステップと、
前記プレゼンテーションの作成において前記プレゼンテーション内に前記スプレッドシートオブジェクトを埋め込むステップと、
を有する方法を実行する命令を含むコンピュータ読み取り可能な媒体。
【請求項１６】
データ処理装置において実行されるとき、
プレゼンテーションをカスタマイズするための方法であって、
前記プレゼンテーションを作成するステップを有し、前記プレゼンテーションは１つまたは複数のスライドを含み、
１つまたは複数の前記スライドの画像を作成するステップと、
１つまたは複数の前記画像を表示するステップと、
前記プレゼンテーションをカスタマイズする１つまたは複数の要求を受信するステップと、
カスタマイズされたプレゼンテーションを生成するステップと、
をさらに有する方法を実行する命令を含むコンピュータ読み取り可能な媒体。
【請求項１７】
前記プレゼンテーション内に１つまたは複数のスプレッドシートオブジェクトが埋め込まれている請求項１６に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
前記要求は、前記プレゼンテーションから１つまたは複数の前記スライドを削除する要求、テキスト要素を追加する要求、前記プレゼンテーションに１つまたは複数の追加のスライドを追加する要求、前記スライドに関する番号付け規則を変更する要求のうち１つまたは複数を含む請求項１６に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
データ処理装置において実行されるとき、
プレゼンテーションの作成に関する要求を処理するための方法であって、
前記プレゼンテーションの作成において行われる１つまたは複数の計算アクションおよび１つまたは複数のプレゼンテーションアクションを決定するために前記要求を解析するステップと、
計算アクションを指示する実行可能な命令を含む第１のマークアップ言語ドキュメントを生成するステップと、
計算データを含む第２のマークアップ言語ドキュメントを生成するために前記第１のマークアップ言語ドキュメントを処理するステップと、
プレゼンテーションアクションを指示する実行可能な命令を含む第３のマークアップ言語ドキュメントを生成するステップと、
草案プレゼンテーションおよび最終プレゼンテーションの一方に関するデータを含む第４のマークアップ言語ドキュメントを生成するために、前記第３のマークアップ言語ドキュメントおよび前記第２のマークアップ言語ドキュメントを処理するステップと、
を有する方法を実行する命令を含むコンピュータ読み取り可能な媒体。
【請求項２０】
前記方法は、前記第２のマークアップ言語ドキュメントの生成において１つまたは複数のスプレッドシートテンプレートを利用するステップをさらに有する請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２１】
前記方法は、前記第４のマークアップ言語ドキュメントの生成において１つまたは複数のプレゼンテーションテンプレートを利用するステップをさらに有する請求項１９に記載のコンピュータ読み取り可能な媒体。
【請求項２２】
スプレッドシートオブジェクトを作成するステップと、
プレゼンテーションを作成するステップと、
前記プレゼンテーションの作成において前記プレゼンテーション内に前記スプレッドシートオブジェクトを埋め込むステップと、
を有する方法によって生成されたプレゼンテーション。
【請求項２３】
プレゼンテーションを作成するステップを有し、前記プレゼンテーションは１つまたは複数のスライドを含み、
１つまたは複数の前記スライドの画像を作成するステップと、
１つまたは複数の前記画像を表示するステップと、
前記プレゼンテーションをカスタマイズする１つまたは複数の要求を受信するステップと、
カスタマイズされたプレゼンテーションを生成するステップと、
をさらに有する方法によって生成されたカスタマイズされたプレゼンテーション。
【請求項２４】
前記プレゼンテーション内に１つまたは複数のスプレッドシートオブジェクトが埋め込まれている請求項２３に記載のカスタマイズされたプレゼンテーション。
【請求項２５】
前記要求は、前記プレゼンテーションから１つまたは複数の前記スライドを削除する要求、テキスト要素を追加する要求、前記プレゼンテーションに１つまたは複数の追加のスライドを追加する要求、前記スライドに関する番号付け規則を変更する要求のうち１つまたは複数を含む請求項２３に記載のカスタマイズされたプレゼンテーション。
【請求項２６】
プレゼンテーションの作成に関する要求を受信するステップと、
前記プレゼンテーションの作成において行われる１つまたは複数の計算アクションおよび１つまたは複数のプレゼンテーションアクションを決定するために前記要求を解析するステップと、
計算アクションを指示する実行可能な命令を含む第１のマークアップ言語ドキュメントを生成するステップと、
計算データを含む第２のマークアップ言語ドキュメントを生成するために前記第１のマークアップ言語ドキュメントを処理するステップと、
プレゼンテーションアクションを指示する実行可能な命令を含む第３のマークアップ言語ドキュメントを生成するステップと、
草案プレゼンテーションおよび最終プレゼンテーションの一方に関するデータを含む第４のマークアップ言語ドキュメントを生成するために、前記第３のマークアップ言語ドキュメントおよび前記第２のマークアップ言語ドキュメントを処理するステップと、
を有する方法によって生成されたプレゼンテーション。
【請求項２７】
前記方法は、前記第２のマークアップ言語ドキュメントの生成において１つまたは複数のスプレッドシートテンプレートを利用するステップをさらに有する請求項２６に記載のプレゼンテーション。
【請求項２８】
前記方法は、前記第４のマークアップ言語ドキュメントの生成において１つまたは複数のプレゼンテーションテンプレートを利用するステップをさらに有する請求項２６に記載のプレゼンテーション。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は計算およびプレゼンテーション技術の統合に関する。
【０００２】
この特許出願書類の開示の一部は著作権保護を受ける資料を含む。特許出願書類または特許出願の開示は特許庁のファイルまたは記録に掲載されるので、著作権者は、他人によるその複製に異議はないが、それ以外は何であろうと全ての著作権を留保する。
【背景技術】
【０００３】
金融サービス会社を含む多くの会社は、彼ら自身の内部使用のために、または、彼らの顧客に提供するために、プレゼンテーションを作成する必要がある。この種類のプレゼンテーションは、各種形態の市販の入手可能なプレゼンテーションソフトウェアを使用して生成され、そして、提示される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特に金融サービス業界ではその報告書の内容が、多くの場合、財務データまたは他の数値データの表現およびそれらを伴う計算およびモデル化を含む。そのような計算およびモデル化は、一般的に使用されている入手可能な計算ソフトウェアを使用して容易に処理される。効率的で柔軟なやり方でそのようなプレゼンテーションの作成を可能とするために、プレゼンテーションソフトウェアの機能を計算ソフトウェアの機能と統合するシステムおよび方法の必要性が存在する。
【課題を解決するための手段】
【０００５】
本発明は、プレゼンテーションを作成するためのシステムおよび方法を提供する。スプレッドシートオブジェクトが作成される。プレゼンテーションが作成される。プレゼンテーションの作成においてプレゼンテーション内にスプレッドシートオブジェクトが埋め込まれる。
【０００６】
さらに、本発明は、プレゼンテーションをカスタマイズするためのシステムおよび方法を提供する。１つまたは複数のスライドを含むプレゼンテーションが生成される。スライドの画像が生成される。画像はユーザに表示される。プレゼンテーションをカスタマイズする１つまたは複数の要求が受信される。カスタマイズされたプレゼンテーションが生成される。
【０００７】
さらに、本発明は、プレゼンテーションを作成するためのシステムおよび方法を提供する。プレゼンテーションの作成に関する要求が受信される。この要求は、プレゼンテーションの作成において行われる１つまたは複数の計算アクションおよび１つまたは複数のプレゼンテーションアクションを決定するために解析される。計算アクションを指示する実行可能な命令を含む第１のマークアップ言語ドキュメントが生成される。第１のマークアップ言語ドキュメントは、計算データを含む第２のマークアップ言語ドキュメントを生成するために処理される。プレゼンテーションアクションを指示する実行可能な命令を含む第３のマークアップ言語ドキュメントが生成される。第３のマークアップ言語ドキュメントおよび第２のマークアップ言語ドキュメントは、草案プレゼンテーションおよび最終プレゼンテーションの一方に関するデータを含む第４のマークアップ言語ドキュメントを生成するために処理される。
【０００８】
上記の概要の記載および続く詳細な記載のいずれも例示および説明であり、請求項に係る発明のさらなる説明を提供することを意図していると理解すべきである。
【発明を実施するための最良の形態】
【０００９】
本発明のさらなる理解を与えるために意図され、組み込まれ、出願書類の一部を構成する添付図面は、本発明の実施形態を表わし、明細書とともに本発明の原理を説明する役割を果たす。
【００１０】
ここで説明されるシステムおよび方法は、プレゼンテーションの作成を可能とするために、（本発明の範囲内で他のプレゼンテーション技術を使用することが可能であるが、マイクロソフト（登録商標）PowerPointのような）プレゼンテーション技術の機能を、（本発明の範囲内で他の計算技術を使用することが可能であるが、マイクロソフト（登録商標）Excelのような）計算技術の機能と統合する。計算技術に影響を与える機能は、そのようなプレゼンテーション内に動的な数学的モデル化（例えば、金融商品のモデル化）を含むことを可能とする。好ましい実施形態において、書き込み保護された提案書のダウンロードに先立って、ユーザはプレゼンテーションを試写および編集することができる。従って、システムは、選択的なカスタマイズのオプションを可能とする一方で、モデルの要素および提案書の内容にわたって中央で管理された制御を可能とする。
【００１１】
説明されるシステムおよび方法が実現される一形態は、モデルを計算し、提案書を組み立てる目的のために、計算を基にした技術およびプレゼンテーションを基にした技術を抽象的に合体させることを含む。これは、プレゼンテーションの作成のために、迅速なターンアラウンド時間、および、そのようなプレゼンテーションのコンテンツについての権限を与えられた制御を可能とする。さらに、それは、構成定義ファイルおよび望むならばテンプレートの操作または追加によって動作フローの様々な組み合わせが実現されることを可能とし、基礎をなす計算およびプレゼンテーション技術の生産物および出力が１つの動作フローに一緒に連鎖して複雑な生産物のモデルおよび／またはプレゼンテーションを生成しうる。この実施形態の分離された設計は、基礎をなす技術基盤からの多くの異なる形式の出力の作成および取得だけでなく、基礎をなす計算およびプレゼンテーション技術基盤における変更を許容する。
【００１２】
本発明のシステムの好ましい実施形態は、計算およびプレゼンテーション技術を、数学的モデルの動的な計算およびプレゼンテーションをサポートするコンポーネント指向のフレームワークに統合する動作フロー管理および制御エンジンを含む。このエンジンは、マークアップ言語技術（例えば、XMLを基にした技術）によって結びつけられたスプレッドシートおよびプレゼンテーションのテンプレートによって駆動され、高度に構成定義可能で柔軟な動作フローを生成する。スプレッドシートを基にしたモデル化技術は、プレゼンテーション内で表示される計算（例えば、図および統計）を作成するためのエンジンとしての役割を果たす。これはモデルにおける更新を実現するためのターンアラウンド時間を軽減する。プレゼンテーション技術のファイルはテンプレートとして使用されうる。これはプレゼンテーションのルックアンドフィールにおける更新を実現するためのターンアラウンド時間を軽減する。エンジンはその実装に固有でなく、複数のアプリケーションの必要性および／または基礎をなす計算およびプレゼンテーション技術の実装における変更をサポートすることを可能とする。
【００１３】
上述した抽象化を実現するための１つのメカニズムは、各々のコンポーネントのために開発されたXMLメタ言語から導き出された命令を処理する各々の基礎をなす技術コンポーネントの周りを囲む汎用化された横取りするラッパーを生成することである。システム内の分担に適合し、他と独立した各々の言語／コンポーネントを使用して、モデルおよびプレゼンテーションを生成するために必要とされる動作フローの管理に適合したもう１つのXMLメタ言語が生成される。言語の要素は、計算／プレゼンテーションの処理を引き起こすための目録を含むが、XSLT変換の使用によってコンポーネント間のギャップ（各々の下位のコンポーネントはそれ自身の独立の言語を有する）を埋めるための新たな要素を追加する。動作フローの言語は、各コンポーネントが処理できる形式にそれらが操作されるようにXMLドキュメントの入力についてXSLT変換を引き起こす。変換処理を経由して１つの処理の出力がもう１つの処理への入力になることができる形態で、目録の要素を一緒に連鎖させることができる。計算ルーチンが他の計算ルーチンおよび／またはルーチンを作成するプレゼンテーションとどのように一緒に連鎖されうるかに関して高度の柔軟性を与える。これらの動作フローは、システムが動的にロードする構成定義ファイル内に存在し、各々の動作フローはモデルがどのように生成されるべきかに関する命令を与える。動作フロー内で非常にたくさんの多様性を、システムまたはメタ言語への最小の変更で実現することができる。
【００１４】
システムの所望の出力は、スプレッドシートによって描画され、最終プレゼンテーションに埋め込まれる表、グラフを利用する。これらを作成するために、グラフオブジェクトおよび表オブジェクトを含むOLEオブジェクトを含むいくつかの方法が使用可能である。これらの種類のオブジェクトの各々はマイクロソフト（登録商標）の技術に固有であるが、他の種類の類似の技術がこの技術分野の当業者に知られており、本発明の範囲内で使用することができる。
【００１５】
図１を参照すると、システムの好ましい実施形態が、動作フロー管理および制御エンジン１００、および、各種モデルに対応する１つまたは複数のフロントエンド１０１を含むいくつかのコンポーネントに構造化されている。エンジン１００は、生産物モデルを計算および描画するためのロジックを集中的に保有し、フロントエンド１０１は、モデルのパラメータのデータ入力および出力閲覧（例えば、スライドプレビュー、プレゼンテーションファイル、等）のためのネットワークを基にした（例えば、Webを基にした）ユーザインタフェースとしての役割を果たす。
【００１６】
引き続き図１を参照すると、好ましい実施形態において、エンジン１００は５つの主要なコンポーネントである、ウェブサービス定義層１０２（これはモデル化サービスウェブサービス定義コンポーネントおよびプレゼンテーションＩ／Ｏウェブサービス定義コンポーネントから成る。）、動作フローエンジン、すなわち、XMLメタ言語トランスレータ／インタプリタ１０３、計算エンジン１０４、プレゼンテーションエンジン１０５、構成定義／テンプレートファイル（これはスプレッドシートテンプレート１０６、プレゼンテーションテンプレート１０９、XSLTテンプレート１０７、XML/XSLT構成定義ファイル１０８から成る。）に分割される。ウェブサービス定義層１０２は、ウェブサービス定義を規定し、ネットワークから入ってくる要求を処理および解析し、エンドポイントにおけるセキュリティのための認証に影響を与え、サービス開始においてシステム構成定義データをロードし、実行の制御をXMLメタ言語トランスレータ／インタプリタ１０３に引き渡し、どのようなリソースが要求されても返却する責任を持つ。XMLメタ言語トランスレータ／インタプリタ１０３は、入ってくる要求を取得し、その要求を解析してどのモデルが作成されるべきか、または、どのようなアクションがとられるべきかを決定し、その要求を処理するために適切なXSLTテンプレート１０７をロードし、必要なとき制御を計算エンジン１０４またはプレゼンテーションエンジン１０５に渡す責任を持つ。計算エンジン１０４は自動制御層内にプレゼンテーションエンジン１０５を伴う。それはXMLドキュメントを受信して、そのドキュメント内の命令に基づいて計算技術ファイルを処理および生成する。プレゼンテーションエンジン１０５は自動制御層内に計算エンジン１０４を伴う。それはXMLドキュメントを受信して、そのドキュメント内の命令に基づいてプレゼンテーション技術ファイルを処理および生成する。構成定義／テンプレートファイル１０６、１０７、１０８、１０９は、XSLT、スプレッドシート、プレゼンテーションコンポーネント１０３、１０４、１０５に与えられる。XSLTファイル１０８および１０７は自動制御層のために処理命令を与え、スプレッドシートテンプレート１０６およびプレゼンテーションテンプレート１０９は、それぞれの最終生産物を生成するために、それらから基準となるファイルを与える。これらのコンポーネントの各々のより詳細な説明は、以下で、システムによって利用される構成定義ファイルの説明の後に説明される。
【００１７】
システムの全体にわたって使用されうるセキュリティ、アクセス、システム属性のようなシステム構成定義を指定する標準ウェブプロジェクト構成定義ファイルに加えて、システムは、グローバルXSLT構成定義パラメータ、および、以下、<map>要素と呼ぶ、ユーザ要求の処理命令（例えば、動作フロー）へのマッピングを含む構成定義ファイル１０８（以下、amlconfig.xmlと呼ぶ）を利用する。
【００１８】
この構成定義ファイルの先頭は、全てのXSLT処理呼び出しにロードされるXSLT構成定義パラメータを含み、従って、それらをグローバルXSLT構成定義パラメータとして利用可能にする。第２の主要なセクションはマッピングを扱う。<config>要素の後に１つまたは複数のmap要素が存在しうる。これらの<map>要素は、任意のXSLT変換の動作フロー、計算およびプレゼンテーション処理を生成するために、任意の順序の<transform>、<calc>、<pres>要素を含みうる。
【００１９】
下記はmapの一例である。
【００２０】
【表１】
2009524132.tif 000003
【００２１】
このmapは次のように解釈される。“MPIAnalyzeRisk”と命名されたアクションの値を有するXML要求がシステムに入ってくると、システムは“MPIAnalyzeRisk.calc.xsl”XSLTファイルを使用してそのドキュメントを計算エンジン１０４のための一連の処理命令に変換し、そして、そのドキュメントを（“<calc name=”calc1”></calc>”によって指定される）処理／解釈のために計算エンジン１０４に渡す。計算エンジン１０４の“name”属性の意味は次の例で扱う。計算エンジン１０４はその要素が命令するようにXMLドキュメントを処理し、命令されたようにリソースを生成し、かつ／または、処理されているXMLドキュメントに組み込まれる値を生成する。計算エンジン１０４によって処理された後、結果として生じるXMLドキュメントは、計算処理の結果とともにユーザに返送されるXMLドキュメントを生成する“MPIAnalyzeRisk.res.xsl”XSLTファイルによって変換される。
【００２２】
下記はmapのもう１つの例である。
【００２３】
【表２】
2009524132.tif 000004
【００２４】
このより改良されたmapは次のように解釈される。“FamLimPar2_1”と命名されたアクションを有するXML要求がシステムに入ってくると、システムは“FamLimPar2_1.calc.xsl”XSLTファイルを使用してそのドキュメントを計算エンジン１０４のための一連の処理命令に変換する。そのドキュメントは処理／解釈のために（“<calc name=”calc1”></calc>”によって指定される）計算エンジン１０４に渡される。計算エンジン１０４はcalc1と命名され、処理命令のそれらの要素を処理するのみであり、ここで目的とされる要素は“calc1”の値を持つ“name”属性を有するブロック内に存在する。これは、命令のどの部分が処理／解釈されるべきであるかをエンジンが識別することができるように、実際の計算処理に軽量な“名前空間を設ける”１つのやり方である。要するに“名前空間を設ける”ことは、計算エンジン１０４がtransform要素のtargetの名前およびcalc要素のnameを変更し、それによって冗長な処理を避けることによって、異なるブロックを処理／解釈する毎に、計算エンジン１０４による複数の繰り返しをサポートする。この例は次のように説明される。計算エンジン１０４によって処理された後、結果として生じるXMLドキュメントは、“FamLimPar2_1.pres.xsl”XSLTファイルによって変換され、プレゼンテーションエンジン１０５のために新たな一連の処理命令を生成する。プレゼンテーションは、再び、計算エンジン１０４に適用されるのと同じ“名前空間を設ける”規則に従う。“<pres name=”pres1”></pres>”要素は、“pres1”に等しい“name”属性を有するブロック内のそれらの処理命令が処理されることを示す。そして、結果として生じるドキュメントは、要求の結果とともにユーザ１０１に返送されるXMLドキュメントを生成する“FamLimPar2_1.res.xsl”XSLTファイルによって変換される。
【００２５】
下記はmapのもう１つの例である。
【００２６】
【表３】
2009524132.tif 000005
【００２７】
このより改良されたmapは次のように解釈される。“FamLimPar2_5_1”に等しいアクションを有するXML要求がシステムに入ってくると、システムは“FamLimPar25_2_1.calc.xsl”XSLTファイルを使用してそのドキュメントを計算エンジン１０４のための一連の処理命令に変換し、そして、そのドキュメントを処理／解釈のために（“<calc name=”calc1”></calc>”によって指定される）計算エンジン１０４に渡す。上述したように、計算エンジン１０４はそれらの要素を処理するのみであり、ここで目的とされる要素は“calc1”の値を持つ“name”属性を有するブロック内に存在する。その次の<transform>要素は、“FamLimPar25_5_1.calc.xsl”XSLTファイルを使用して結果として生じるXMLドキュメントを変換する。そして、このドキュメントは、再び、処理／解釈のために（“<calc name=”calc2”></calc>”によって指定される）計算エンジン１０４に渡される。しかし、今度は、計算エンジン１０４はそれらの要素を処理するのみであり、ここで目的とされる要素は“calc2”の値を持つ“name”属性を有するブロック内に存在し、“calc1”の値を持つ“name”属性を有するブロック内に存在する他の要素を無視する。
【００２８】
計算エンジン１０４によって処理された後、結果として生じるXMLドキュメントは、“FamLimPar25_1.pres.xsl”XSLTファイルによって変換され、それによって、プレゼンテーションエンジン１０５のために新たな一連の処理命令を生成する。“<pres name=”pres1”></pres>”要素は、“pres1”に等しい“name”属性を有するブロック内のそれらの処理命令が処理されることを示す。そして、結果として生じるドキュメントは、要求の結果とともにユーザ１０１に返送されるXMLドキュメントを生成する“FamLimPar25_1.res.xsl”XSLTファイルによって変換される。
【００２９】
これらのマッピングは、システムの開始において、例えば、最初の要求が到着したとき、ロードされ、要求に利用可能にされる。
【００３０】
説明したウェブサービス定義層１０２の実施形態は、HTTP（Hyper Text Transfer Protocol）上のSOAP（Simple Object Access Protocol）プロトコルを介して需要者にその下にある機能を提示する。この通信チャネルは、アクセス可能性の観点から、事実上、プラットフォームから独立であり、非常にたくさんの多様な処理を実行するいくつかの類似の入口ポイントを通してエンジンの機能の多重化を可能とする。主に、この層は、以下でより詳細に説明するように、到着する要求を認証し、入ってくる要求および出て行く応答を整列させる責任を持つ。
【００３１】
その下にあるXMLメタ言語トランスレータ／インタプリタ１０３への要求およびXMLメタ言語トランスレータ／インタプリタ１０３からの応答は、XMLドキュメントのメッセージの形態をとる。ポートタイプを通して提示する動作は、ネットワークから入ってくるメッセージについて１つより多くのフォーマット（またはメソッド署名引数のデータタイプ）を定義し、その下にあるXML層についての引数タイプに従って変換される。入ってくるメッセージは、上述したamlconfig.xml構成定義ファイル１０８内に定義されているように、渡され、確認され、解析され、処理される。応答メッセージは、XML構造で表現された実際のデータまたは要求の副産物であるファイルを指し示すメタデータのいずれかを返却することができる。これらの応答メッセージは、“草案”および“最終”の２種類のうち１つでありうる。草案モデルは呼び出し側にXML応答を返却する。要求によって生成される、呼び出し側に返却されるべき１つのファイルについてのメタデータを含むXML応答によって、最終が特徴付けされる。この場合において、ウェブメソッドからの応答はXMLではなく、要求されたファイルを含むベース６４符号化されたバイナリの返却値である。これは、結果が１つのファイルである要求の処理をストリームラインにするために行われる。最終応答を処理する動作は必要なメタデータを解析し、適切なファイルパスを作り上げ、要求したユーザにファイルを返却する。
【００３２】
以下は典型的なサービス定義を与え、ウェブサービス定義層１０２がどのように動作するかを例示するために役立つ提示された定義を伴う。
【００３３】
WmtModelingTool.asmx：このサービス定義はモデル化機能への主要なエントリポイントとしての役割を果たす。以下はWmtModelingTool portType定義のための提示された動作である。
【００３４】
BuildDraftAssetModelStr：この動作は、この例において、assetモデルを作成するために、その下にあるXMLメタ言語トランスレータ／インタプリタ１０３へのウェブ動作が可能なプロキシとしての役割を果たす。これは引数として１つの文字列パラメータをとるSOAP RPC（Remote Procedure Call）符号化において定義された引数を有するRPCメソッドである。文字列パラメータはXMLメタ言語トランスレータ／インタプリタ１０３に渡される、クライアントによって組み立てられたXMLメッセージである。この動作は応答において文字列に符号化されたXMLメッセージを返却する（すなわち、XMLメタ言語トランスレータ／インタプリタ１０３から返却される）。
【００３５】
BuildDraftAssetModelXml：前の動作と同様に、この動作は、その下にあるXMLメタ言語トランスレータ／インタプリタ１０３へのウェブ動作が可能なプロキシとしての役割を果たす。これは引数として１つのXMLドキュメントをとるドキュメント定数として定義された引数を有するRPCメソッドである。クライアントによって組み立てられたXMLメッセージはXMLメタ言語トランスレータ／インタプリタ１０３に渡される。この動作は応答においてXMLメッセージを返却する（すなわち、XMLメタ言語トランスレータ／インタプリタ１０３から返却される）。
【００３６】
BuildFinalAssetModelStr：この動作は、その下にあるXMLメタ言語トランスレータ／インタプリタ１０３へのウェブ動作が可能なプロキシとしての役割を果たす。これは引数として１つの文字列パラメータをとるSOAP RPC符号化において定義された引数を有するRPCメソッドである。文字列パラメータはXMLメタ言語トランスレータ／インタプリタ１０３に渡される、クライアントによって組み立てられたXMLメッセージである。その下にあるXMLメタ言語トランスレータ／インタプリタ１０３の動作はXMLメッセージを返却し、これは、呼び出し側に返却される、要求によって生成される結果として生じるファイルについてのメタデータについて解析する。
【００３７】
BuildFinalAssetModelXml：前の動作と同様に、この動作は、その下にあるXMLメタ言語トランスレータ／インタプリタ１０３へのウェブ動作が可能なプロキシとしての役割を果たす。これは引数として１つのXMLドキュメントをとるドキュメント定数として定義された引数を有するRPCメソッドである。クライアントによって組み立てられたXMLメッセージはXMLメタ言語トランスレータ／インタプリタ１０３に渡される。その下にあるXMLメタ言語トランスレータ／インタプリタ１０３の動作はXMLメッセージを返却し、これは、呼び出し側に返却される、要求によって生成される結果として生じるファイルについてのメタデータについて解析する。
【００３８】
MergeModelsStr：この動作は、複数のモデルを結合するために、その下にあるXMLメタ言語トランスレータ／インタプリタ１０３へのウェブ動作が可能なプロキシとしての役割を果たす。これは引数として１つの文字列パラメータをとるSOAP RPC符号化において定義される引数を有するRPCメソッドである。クライアントによって組み立てられたXMLメッセージはXMLメタ言語トランスレータ／インタプリタ１０３に渡される。この動作は応答において文字列に符号化されたXMLメッセージを返却する。
【００３９】
MergeModelsXml：この動作は、複数のモデルを結合するために、その下にあるXMLメタ言語トランスレータ／インタプリタ１０３へのウェブ動作が可能なプロキシとしての役割を果たす。これは引数として１つのXMLドキュメントをとるドキュメント定数として定義された引数を有するRPCメソッドである。クライアントによって組み立てられたXMLメッセージはXMLメタ言語トランスレータ／インタプリタ１０３に渡される。この動作は応答においてXMLメッセージを返却する。
【００４０】
ReloadModelingToolConfig：これはamlconfig.xmlファイルをリロードするためのユーティリティメソッドである。これは引数として１つの文字列パラメータをとるSOAP RPC符号化において定義された引数を有するRPCメソッドである。この文字列は、動作によってロード（リロード）される、map定義を含む属性ファイルの名前および位置であり、文字列がヌルまたは空であるならば、現在のamlconfig.xmlファイルがリロードされる。これは、システムのmapエントリをリフレッシュするための、または、代わりのエントリをロードするためのメカニズムである。この動作は終了時に文字列“Success”（成功）または“Failure”（失敗）の<message>を返却する。
【００４１】
WmtPresentationIO.asmx：このサービス定義は、モデル化機能をサポートする補助的な動作を与える。以下はWmtPresentationIO portType定義のための提示された動作である。
【００４２】
DownloadPresentationSlideImage：この動作は、XMLメタ言語トランスレータ／インタプリタ１０３の下にあるプレゼンテーションエンジン１０５によって作成されるスライドのバイナリ画像を呼び出し側が取得することを可能とする。ウェブメソッドは引数として１つの文字列をとるRPCである。文字列引数は要求されているバイナリリソースへのメタデータパスである。この動作はベース６４符号化されたバイナリの応答を返却する。
【００４３】
DownloadPresentation：この動作は、XMLメタ言語トランスレータ／インタプリタ１０３の下にあるプレゼンテーションエンジン１０５によって作成されるプレゼンテーションを呼び出し側が取得することを可能とする。ウェブメソッドは引数として１つの文字列をとるRPCである。文字列引数は要求されているバイナリリソースへのメタデータパスである。この動作はベース６４符号化されたバイナリの応答を返却する。
【００４４】
UploadPresentation：この動作は、その下にあるXMLメタ言語トランスレータ／インタプリタ１０３によって動作を結合するモデル内で使用されるように、呼び出し側がプレゼンテーションをアップロードすることを可能とする。ウェブメソッドは、組織についての文字列引数、文字列のユーザID、文字列のプレゼンテーション名、結合動作のためにキャッシュされたベース６４符号化されたバイナリファイル（バイト）をとるRPCである。この動作は、続く結合動作においてキャッシュされた提案書を参照するための呼び出し側による使用のためのメタデータを含む文字列のXMLメッセージを返却する。
【００４５】
XMLメタ言語トランスレータ／インタプリタ１０３は、要求を処理する処理部を含む。それは要するに上述したamlconfig.xml構成定義ファイル１０８に含まれるシステム構成定義に従ってユーザ要求を処理する動作フロー管理エンジンである。その責任は、要求される要素／属性について、入ってくるXMLドキュメントを解析および確認すること、構成定義ファイルエントリに対して、入ってくる要求されるアクションを識別することによって取得される実行の系列を決定すること、定義された動作フローの全体にわたってXML要求が受ける構成定義されたXSLT変換を管理すること、計算エンジン１０４およびプレゼンテーションエンジン１０５をアクセスする複数のスレッドの同期の要求条件を管理すること、不正な構成定義から生じるエラー状態、計算エンジン１０４およびプレゼンテーションエンジン１０５の処理タイムアウト、計算エンジン１０４およびプレゼンテーションエンジン１０５から伝播したエラーを管理し、これらに応答すること、計算エンジン１０４およびプレゼンテーションエンジン１０５によって作成されキャッシュされたリソースを局所的に、かつ、ネットワーク共有１１０と同期すること、要求の結果についてメタデータを返却すること、を含む。
【００４６】
この層は一回初期化される単一のインスタンスである。ウェブサービス定義層１０２からロードされ、保有する環境に記憶されるシステム属性は、この層が処理する全ての動作フローを管理するエントリを含むamlconfig.xml構成定義ファイル１０８についての位置を与える。このファイルは１回XMLドキュメントにロードされ、静的な番号として記憶される。
【００４７】
入ってくるXML要求は、XMLドキュメント処理要求を介してこの層に入る。要求を処理する手がかりは、入ってくるXMLドキュメントの構造であり、属性の内容は行われる動作フローおよびその中で処理される入力データを示す。説明の目的のために<modelRequest>と呼ぶ最も外側の要素は、ドキュメントのルート（root）であり、いつくかの属性を含む。説明用の例として（すなわち、本発明の他の実施形態により多かれ少なかれ属性が必要とされうる。）３つの属性が必要とされ、それらは、アクション、すなわち、モデル名（すなわち、ここではアクション、モデル名、動作フロー、<map>idが同義で使用される。）、ユーザID、すなわち、それについて動作フローの生産物が作成されるユーザID、組織、すなわち、そこにユーザが属す組織、である。例えば、
【００４８】
【表４】
2009524132.tif 000006
【００４９】
下記の例に表わされているように、ドキュメントの次のブロックは各種モデルが要求されるinputフィールドを含む。
【００５０】
【表５】
2009524132.tif 000007
【００５１】
これらの要素は、構造内で一般的であるが、属性の値に関してモデルに固有になる。これは、全体的なレベルにおいて複数のモデルの透過的な処理を可能とする。この層について有効性が軽視されうるので、一実施形態において、データの有効性を保証することは呼び出すアプリケーション（例えば、フロントエンド１０１上のアプリケーション）の責任である。この層は、エラー状態が発生するか、または、モデルが正しく、または、そうでなく終了するまで、供給された入力データを処理する。
【００５２】
下記の例に表わされているように、最終セクションはモデルを処理するためのオプションの一般的な包含を提供する。
【００５３】
【表６】
2009524132.tif 000008
【００５４】
ウェブサービス定義層に関して上述したように、フォーマットのオプションはシステムにわたる意味を有する。それは、モデル固有および動作フロー処理のレベルの両方において固有の意味を有する。
【００５５】
上述した例“FamLimPar2_1”を用いた要求処理ライフサイクルに戻り、<modelRequest>要素の３つの属性は、この層に入るときに解析され、要求を処理する適切な<map>エントリのために、amlconfig.xmlファイルを識別するために使用される。action属性の値は、map要素内のname属性に対応しなければならない。そのmap要素は、この層が要求を処理するために使用するtransform、calc、pres命令およびテンプレートを含む。name属性がIDとしてDTD定義されるとき、それは他のエントリとの間でユニークでなければならない。適切な<map>要素の発見の失敗はエラー状態を引き起こし、処理は停止する。
【００５６】
この場合において、“FamLimPar2_1”actionは“FamLimPar2_1”と命名されたmapに対応する。<map>ノードが発見されると、２つの複製が作成される。ノードの第１の複製“roadmap”は、この層が要求を処理するために使用する動作フローを管理する役割を果たす。<map>ノード命令は次々に繰り返され、その下にある要素（すなわち、<transform>、<calc>、<pres>）を指示するものとして処理される。ノードの第２の複製は、XSLT<transform>命令のターゲットとして、そして、<map>の定義された動作フローの全体にわたって使用される全てのデータのための伝達手段として使用される。これは、<map>名前空間のおかげで、必要なときにデータがmap内の命令から命令に渡され、必要なときに処理されることを可能とする。
【００５７】
適切な<map>要素の発見および複製において、要求から<field>要素が引き出され、nameおよびvalueの属性を指示するようにname/valueマップに配置される。このマップはamlconfig.xml構成定義ファイル１０８の<config>要素内でネストされた<prop>name/valueの組を用いて補足される。結果として生じるname/valueマップは<transform>命令されたXSLT処理に外部パラメータをロードするためにこの層によって使用される。これは、必要なときにシートがこれらのパラメータを承諾し、全ての変換にわたって広がるように、モデル固有のXSLT処理にinputフィールドを提供する一般的な方法を可能とする役割を果たす。これは、計算エンジン１０４および／またはプレゼンテーションエンジン１０５によって処理されうるXMLドキュメントを作り上げる、より大きな目的に取り組むように使用される実際のXSLTスタイルシートを簡単にする。上述したように、典型的に、これらの変換の出力は、計算エンジン１０４またはプレゼンテーションエンジン１０５のいずれかのための命令の集合としての役割を果たすXMLドキュメントである。
【００５８】
現在の例を続けると、<map>の複製およびname/valueマップが生成された後、<map>内の全ての<transform>、<calc>、<pres>を通して繰り返すSAXパーサに複製“roadmap”が渡される。
【００５９】
【表７】
2009524132.tif 000009
【００６０】
<map>：amlconfig.xml構成定義ファイル１０８内のSYSPmodelRootプロパティによって指定された位置においてルートを離れてワーキングディレクトリが生成される。そして、構造は〜/organization/useid/modelidであり、ここでmodel idは現在のシステムの一時的な値である。このディレクトリは動作フローによって作成された全てのファイルを保持する（すなわち、キャッシャする）。
【００６１】
【表８】
2009524132.tif 000010
【００６２】
<transform>：このノードが出現するとき、システムは、processor属性内で命名されたスタイルシートを使用してソースコードの複製をXSLT変換に渡す。また、システムは、上述したname/valueマップに渡し、inputフィールドおよびconfigフィールドを変換に容易に利用可能にする。出力ドキュメントが収集され、次のステップに移される。また、システムは、target属性の値への参照を取得および保持する。この例において、ソースコードドキュメントは“FamLimPar2_1.calc.xsl”スタイルシート内で変換され、これは処理する次の要素<calc>のための実行可能な命令の集合を生成する。
【００６３】
<calc>：この要素は、システムが、処理のために計算エンジン１０４に実行可能な命令のドキュメント（すなわち、前の変換の結果）を渡すように命令する。それは<calc>要素のname属性を問い合わせた後にそれを行う。そのnameが前の変換で取得したtargetに合致すると、それは要求を受け取る。この規則は、計算エンジン１０４が理解および処理に成功しうる命令の集合を作り上げるために他に方法がないので、計算が発生する前に少なくとも１つの変換が発生することを保証するために適切である。ドキュメントは参照によって渡され、従って、計算エンジン１０４の内部で発生する任意の変更は実行可能な命令に直接に影響を与える。また、所定の時刻においてただ１つのスレッドがこの機能にアクセスすることに注意することが重要である。現在の例を再び参照すると、計算エンジン１０４は、実行可能な命令のドキュメントにおいて命令されたように、ドキュメントを受け取り、処理する。
【００６４】
<transform>：この要素は、上述したように、この例において次に処理され、 “FamLimPar2_1.pres.xsl”XSLTスタイルシートを使用して出力ドキュメントを<calc>呼び出しからXSLT変換に渡す。結果として生じる実行可能な命令のドキュメントは、処理される次の要素<pres>に渡される。
【００６５】
<pres>：この要素は、システムが、処理のためにプレゼンテーションエンジン１０５に実行可能な命令のドキュメント（すなわち、前の変換の結果）を渡すように命令する。それは<pres>要素のname属性を問い合わせた後にそれを行う。そのnameが前の変換で取得したtargetに合致すると、それは要求を受け取る。この規則は、プレゼンテーションが発生する前に少なくとも１つの変換が発生することを保証するために適切である。ドキュメントは参照によって渡され、従って、プレゼンテーションエンジン１０５の内部で発生する任意の変更は実行可能な命令に直接に影響を与える。また、所定の時刻においてただ１つのスレッドがこの機能にアクセスすることに注意することが重要である。
【００６６】
<transform>：この要素は、上述したように、この例において最後に処理され、 “FamLimPar2_1.res.xsl”XSLTスタイルシートを使用して出力ドキュメントを<pres>呼び出しからXSLT変換に渡す。結果として生じるドキュメントは動作フローの連鎖において最後であり、ウェブサービス定義層１０２に応答XMLドキュメントとして返却され、最後に呼び出し側に返却される。
【００６７】
上述した例は、説明の目的のために典型的な動作フローを提供し、本発明の範囲内でより簡単な、または、より改良された動作フローを構成定義することができる。設定される規則の範囲内で、この層を介して構成定義される任意の形態の事務用の、または、事務用でないドキュメントを操作するたいへん大きな柔軟性が存在する。
【００６８】
図２は上述した典型的な処理を表わす。ソースコードがコンパイラに入力されるのと類似の方法で、<map>XMLドキュメントが（inputフィールドによって補足された）XSLT変換に入力される。ここで、それは計算エンジン１０４またはプレゼンテーションエンジン１０５が実行できる実行可能な命令に変換される。そして、命令は（ある実施形態において、スプレッドシートテンプレート１０６およびプレゼンテーションテンプレート１０９によって補足された）計算エンジン１０４またはプレゼンテーションエンジン１０５によって実行される。出力は、新たなデータ／値をその要素に追加することによって命令の要求するものが生成および／または操作されるあらゆる生産物からなる。そして、実行が終了すると、命令（すなわち、XMLドキュメント）は、他の変換への入力として使用され、または、呼び出し側に返却される。
【００６９】
計算エンジン１０４は、その下にあるスプレッドシート基盤から利用可能な全ての出力の手段を生成する一般化された抽象化を提供する目的のために、計算技術基盤のまわりを包むXMLインタプリタである。XMLドキュメントは参照によってエンジンに渡され、それによってXMLドキュメントは命令のように実行される。SAXパーサは、入力XMLドキュメント（すなわち、実行可能な命令）を通して順次繰り返し、それが理解する要素を処理するために利用される。
【００７０】
計算エンジン１０４の前提は、その下にある計算技術基盤のテンプレートファイルが実際のモデル化を実行するコンポーネントであり、それによって分離された構造を可能とし、そこでテンプレートを更新されたテンプレートと置換することによってのみモデルが更新されることである。エンジンは金融モデルの処理に固有ではなく、その下にある計算技術によって実現されうる任意の種類のモデル化／計算ルーチンまたはデータ変換について影響されうる。唯一の要求条件が処理するための命令を準備するために新たなテンプレートおよび新たなXSLTファイルを追加することであると仮定すると、エンジンは新たなモデル／サービス／生産物を提供するために、存在してもわずかな変更を要求する。
【００７１】
図３は典型的な計算エンジン１０４の動作フローを表わす。XMLドキュメントの形態における実行可能な命令の集合は、計算ルーチンのためにtargetの名前を用いてシステムに入る。そして、ドキュメントは、XMLドキュメント内部の要素に基づいて固有の機能を実行するSAXパーサに渡される。これらの機能は、パーサが、要素のname属性がエンジンに渡されたtargetに合致する<calc>要素に遭遇するとき実行されるのみである。SAXパーサが実行するとき、下記の例におけるような要素を処理する。
【００７２】
<calc>：name属性はその下にあるデータについての“名前空間”を提供する。input属性は、使用されるべきスプレッドシートテンプレートファイルを命名する。output属性は、スプレッドシートファイルが終了するときに保存されるべき名前を与える。この要素が出現するとき、システムは、targetがname属性と同一であるかどうか確認するために検査する。同一であるならば、</calc>タグが出現するまで到来するノードを処理するようにシステムに通知するフラグを設定する。input属性において命名されたテンプレートファイルは処理するためにオープンおよび使用され、</calc>タグが出現したときoutput属性の値として保存される。例えば、
【００７３】
【表９】
2009524132.tif 000011
【００７４】
<cell>：この要素は処理される<calc>ノードの下の唯一の子ノードである。このcellは所定のワークシート内のcellに値を配置するか、または、所定のワークシートから値を抽出することができる。sheet属性は、この命令を実行するワークシート上でエンジンに通知される。cell属性は、所定のシート上で命令のターゲットであるcellに命名する。value属性は、データを挿入する場合にcell内に配置されるべき実際の値を提供し、データを抽出するとき位置を保持するものとしての役割を果たす。type属性は“in”または“out”のいずれかの値を保持することができ、命令が挿入または抽出のいずれであるかを通知する。typeが抽出であるとき（すなわち、“out”）、命名されたシート上のセルの値は<cell>要素のname属性をキーとして使用してname/valueマップ内に配置される。name属性は処理されるフィールド（すなわち、セル）についての名前を与え、所定の<calc>要素の全ての下部の子にわたってユニークに維持されなければならない。この名前は、異なるname属性を用いた異なる<calc>属性の下に<cell>要素が存在することを条件として、重複することができる。例えば、
【００７５】
【表１０】
2009524132.tif 000012
【００７６】
終了において、スプレッドシートファイルはXMLメタ言語トランスレータ／インタプリタ１０３によって生成されたワーキングディレクトリ内に保存され、これは<calc>要素のinput属性において命名されたディレクトリである。そして、エンジンは、<cell>要素を発見し（ここで、name属性はname/valueマップからのキーに合致し、<cell>要素のname属性は処理されるターゲットのそれである。）、その値を<cell>要素のvalue属性に配置することによって、SAXサイクルの間、name/valueマップに集められた任意の／全てのoutputフィールドを取得し、それらをXMLドキュメントに結合する。そして、ドキュメントはXMLメタ言語トランスレータ／インタプリタ１０３に返却される。
【００７７】
プレゼンテーションエンジン１０５は、その下にあるプレゼンテーション技術から利用可能な生成出力に一般化された抽象化を提供する目的のためにプレゼンテーション技術基盤のまわりを包むXMLインタプリタである。XMLドキュメントは参照によってエンジンに渡され、そこでXMLドキュメントは命令のように実行される。SAXパーサは、入力XMLドキュメント（すなわち、実行可能な命令）を通して順次繰り返し、それが理解する要素を処理するために利用される。
【００７８】
このエンジンの前提は、その下にあるプレゼンテーション技術基盤のテンプレートファイルが実際の表示を実行するコンポーネントであり、それによって、テンプレートを更新されたテンプレートと置換することによってのみプレゼンテーションが更新されることによって分離された構造を可能とすることである。エンジンはそのプレゼンテーションの作成において固有ではなく、その下にあるプレゼンテーション技術によって表示されうる任意の種類のプレゼンテーション出力について影響されうる。唯一の要求条件が処理するための命令を準備するために新たなテンプレートおよび新たなXSLTファイルを追加することであると仮定すると、エンジンは新たなプレゼンテーションを提供するために、存在してもわずかな変更を要求する。
【００７９】
図４はプレゼンテーションエンジン１０５についての典型的な動作フローを表わす。XMLドキュメントの形態における実行可能な命令の集合は、プレゼンテーションルーチンのためにtargetの名前を用いてシステムに入る。そして、ドキュメントは、XMLドキュメント内部の要素に基づいて固有の機能を実行するSAXパーサに渡される。これらの機能は、パーサが、要素のname属性がエンジンに渡されたtargetに合致する<pres>要素に遭遇するとき実行されるのみである。SAXパーサが実行するとき、下記の例のような要素を処理する。
【００８０】
<pres>：name属性はその下にあるデータについての名前空間を提供する。input属性は、使用されるべきPowerPointテンプレートファイルを命名する。output属性は、PowerPointファイルが終了するときに保存されるべき名前を与える。この要素が出現するとき、システムは、targetがname属性と同一であるかどうか確認するために検査する。同一であるならば、</pres>タグが出現するまで到来するノードを処理するようにシステムに通知するフラグを設定する。input属性において命名されたテンプレートファイルは処理するためにオープンおよび使用され、</pres>が出現したときoutput属性の値として保存される。
【００８１】
XMLメタ言語トランスレータ／インタプリタ１０３によって参照されるformat属性は、プレゼンテーションが草案であるか、最終プレゼンテーションであるかを示す。この層は、プレゼンテーションファイルが、草案の場合に一連のスライド画像を、または、最終形式の場合にプレゼンテーションファイルを保存することに関して解釈する。imageFormatはその下にあるプレゼンテーション技術によってサポートされる画像の種類に対応し、草案プレゼンテーションの場合にのみ使用される（例えば、.gif、.jpg、.png）。草案は、クラスタ環境における可用性のためにネットワーク共有１１０にスライド画像をキャッシュするオプションを提供する。値に関係なくnoCache属性の単純な包含は、スライド画像がネットワーク共有にキャッシュされないことをエンジンに警告するために含まれうる。（これは、本来、画像形式についてであるが、）.ppsおよび.pptのような代わりの形式がこの属性に含まれ、それらは取得され、従って、画像を生成しない。
【００８２】
省略時、最終プレゼンテーションはシステム構成定義可能なパスワードを用いてパスワード保護される。最終プレゼンテーションは準拠記憶装置１１１内に記憶される。この特徴は、値に関係なく、lockFile属性の包含によって動作させないことが可能である。この要素は１つまたは複数の<slide>要素を有する。例えば、
【００８３】
【表１１】
2009524132.tif 000013
【００８４】
<slide>：この要素は、処理されようとしているプレゼンテーション内のスライドを参照する。number属性は他のスライドに関してスライドのインデックスに対応しなければならない。従って、それはユニークである。showMe属性はオプションであり、最終プレゼンテーション内にスライドが含まれるべきか否かを示す（省略時は含まれる）。showSlideNum属性はオプションであり、現在のスライドにスライド番号が配置されるか否かを示す（省略時は否）。番号は、（全てのスライドから削除されたスライドを減じて計算された）新たなプレゼンテーションにおけるスライドの番号である。この要素は任意の存続する要素を含み、例として、
【００８５】
【表１２】
2009524132.tif 000014
【００８６】
<swap>：これは<slide>要素の子の要素であり、その要素においてインデックスされたスライドのみに影響する。それは利用可能な最も一般的な操作である。このタグは、属性のindexにおいて位置を指定された既存のtextbox要素内のテキストがvalue属性の値を用いて置換されることを命令する。name属性はユニークである必要はなく、indexの先にあるtextbox要素を命令と視覚的に対応付けることを助ける参照としての役割を果たす。プレゼンテーションを生成するとき、それを生成し、テキストを設定する、より大きなオーバヘッドを追加することとは逆に、置換テキスト内で交換するindexによって、視覚的に属性を配置し、それらを参照することは、より効果的かつ正確である。nameは、要素の位置を指定し、命令を要素と対応付けることにおいて大いに役立つ一時的な位置を保持するものでありうる。例えば、
【００８７】
【表１３】
2009524132.tif 000015
【００８８】
<ole>：このタグは、topおよびleft属性の値（0より大きい整数でなければならない）において位置が指示されたpath属性の値において存在するoleオブジェクトがheightおよびwidth属性の値（0より大きい整数でなければならない）のサイズを有し、任意のcropTop、cropLeft、cropRight、cropBottom属性の値（0より大きい整数でなければならない）によって任意の側で切り取ることが可能である。位置を指示することは、左上の角からピクセルでの絶対値である。サイズはピクセル単位であり、埋め込まれるoleオブジェクトによって変動する。また、サイズは、高さまたは幅のみが設定される必要があり、他方は比率の値である、保持している縦横の定数に従う。また、crop機能は実際のoleオブジェクトによっても変動する。設定を受け取る順序は、まず元のサイズから画像を切り取り、そして画像をサイジングし、オブジェクトの位置を指示することが続く。例えば、
【００８９】
【表１４】
2009524132.tif 000016
【００９０】
<textBox>：このタグは、現在のスライドにorientation属性（“Down”、“Horizontal”、“Mixed”、“Vertical”、“Upward”）に等しい方向を有するテキストボックスを追加し、topおよびleft属性の値（整数でなければならず、省略時は0）において作り上げられ、heightおよびwidth属性の値（整数でなければならず、省略時は1）のサイズを有し、text属性のテキスト値を有する。例えば、
【００９１】
【表１５】
2009524132.tif 000017
【００９２】
<emptyPresentation>：このタグは、テンプレートが使用されないとき、空白のプレゼンテーションをロードする。例えば、
<emptyPresentation/>
【００９３】
<template>：このタグは、path属性の値において位置が指定されたテンプレートを現在のプレゼンテーションに適用する。例えば、
<template path=”template”/>
【００９４】
<blankSlide>：このタグは、number属性において指定されたインデックスにおいて空白のスライドを追加する。例えば、
<blankSlide number=”3”/>
【００９５】
<titleSlide>：このタグは、number属性において指定されたインデックスにおいてタイトルスライドを追加する。例えば、
<titleSlide number=”3”/>
【００９６】
<label>：このタグは、現在のスライドにorientation属性（“Down”、“Horizontal”、“Mixed”、“Vertical”、“Upward”）に等しい方向を有するラベルを追加し、topおよびleft属性の値（整数でなければならず、省略時は0）において作られ、heightおよびwidth属性の値（整数でなければならず、省略時は1）のサイズを有し、text属性のテキスト値を有する。例えば、
【００９７】
【表１６】
2009524132.tif 000018
【００９８】
<line>：このタグは、現在のスライドに、beginX属性およびbeginY属性において開始点、および、endX属性およびendY属性において終了点を有する線を追加する。例えば、
【００９９】
【表１７】
2009524132.tif 000019
【０１００】
<title>：このタグは、現在のスライドにtext属性のテキスト値のタイトルを追加する。例えば、
<title text=”Some text”></title>
【０１０１】
<shape>：このタグは、現在のスライドにshapeType属性（“Rectangle”、“Oval”、“rtTriangle”、“isTriangle”、“Upward”）に等しい形状の種類を有する形状を追加し、topおよびleft属性の値（整数でなければならず、省略時は0）において作られ、heightおよびwidth属性の値（整数でなければならず、省略時は1）のサイズを有する。例えば、
【０１０２】
【表１８】
2009524132.tif 000020
【０１０３】
終了において、プレゼンテーションファイルはXMLメタ言語トランスレータ／インタプリタ１０３によって生成されたワーキングディレクトリ内に保存され、これは<pres>要素のinput属性において命名されたディレクトリである。草案プレゼンテーションについて、作成されたスライド画像はワーキングディレクトリ内にローカルにキャッシュされ、ターゲットの<pres>要素のnoCache属性が存在しないならば、ネットワーク共有１１０に複製される。共有１１０上にワーキングディレクトリを生成するために、ワーキングディレクトリを生成するために使用される同一のメタデータが利用される。最終プレゼンテーションについて、ファイルはワーキングディレクトリ内に.pptとして保存され、望むならば、最後に１１１に保存される。そして、ドキュメントはXMLメタ言語トランスレータ／インタプリタ１０３に返却される。
【０１０４】
アプリケーションの分離された構造への手がかりは、要求を変換し、計算エンジン１０４およびプレゼンテーションエンジン１０５が処理するアプリケーション固有の命令を動的に生成するためのXSLTへの依存である。テンプレートの使用はモデルおよびプレゼンテーションの生成を迅速に処理する。これらのテンプレートファイルは、次のように、サーバのローカルファイル構造に存在しうる。
【０１０５】
【表１９】
2009524132.tif 000021
【０１０６】
テンプレートファイルは３つのカテゴリに分かれる。
*.calc.*：計算エンジン１０４の実行可能な命令を生成するためのテンプレートまたはXSLTファイル、*.pres.*：プレゼンテーションエンジン１０５の実行可能な命令を生成するためのテンプレートまたはXSLTファイル、*.res.*：呼び出し側に返却される応答を生成するためのXSLTファイル。
【０１０７】
計算エンジン１０４およびプレゼンテーションエンジン１０５を使用するために少なくとも３つのファイルが必要とされ、好ましい実施形態において、１つのマスタファイル１０８と２つのファイル１０７である。第１のXSLTファイル１０８は処理される命令を生成し、第２のXSLTファイルはXMLドキュメントを呼び出し側に適した応答に変換する。２つのファイル１０７は、それぞれ、計算およびプレゼンテーションの視点から行われたことを通知する。また、必須ではないが、所望の出力の生産物を作り上げるために、スプレッドシートテンプレート１０６およびプレゼンテーションテンプレート１０９が利用されうる。
【０１０８】
しかし、要求の処理を迅速に処理するために、計算エンジン１０４およびプレゼンテーションエンジン１０５の層において１つまたは複数のテンプレートを使用することが、上述したシステムの効果的な使用である。この目的のために、関係のある構造、および、構成定義および構成定義された動作フローのサポートを簡単にするために利用される標準規格の集合が存在する。
【０１０９】
モデルのためにユニークな名前が使用される。前の例から“FamLimPar2_1”はモデルのためのユニークな名前である。それは、このモデルの生成において利用される全てのリソースをユニークに識別するために使用される。mapエントリはnameによって識別され、従って、対応付けされるXSLTファイルは次のように命名される。
【０１１０】
【表２０】
2009524132.tif 000022
【０１１１】
命名規則に従って、
【０１１２】
【表２１】
2009524132.tif 000023
【０１１３】
は計算エンジン１０４のための命令を生成し、
【０１１４】
【表２２】
2009524132.tif 000024
【０１１５】
はプレゼンテーションエンジン１０５のための命令を生成し、
【０１１６】
【表２３】
2009524132.tif 000025
【０１１７】
は呼び出し側のための応答XMLドキュメントを生成する。
【０１１８】
【表２４】
2009524132.tif 000026
【０１１９】
の中は、次の通りである。
【０１２０】
【表２５】
2009524132.tif 000027
【０１２１】
ファイルの先頭は、外部にロードされたinputフィールドおよびXMLメタ言語トランスレータ／インタプリタ１０３において記述されたシステム定数を承諾するために使用されるxsl:param要素を定義する。SYSPxlsTmpltsは、計算エンジン１０４のテンプレートのルートについてamlconfig.xmlの定義されたルートを参照する。従って、テンプレートの位置を指定するために使用されるinput属性は適切なディレクトリを指し示す。次のxsl:variable要素は.calc.xlsに追加されるテンプレートファイルの名前として<map>要素のid属性、id=“FamLimPar2_1”を識別する。従って、全体の記述が評価されるとき、calc要素のinput属性は“〜/XamlConfig/Templates_S/FamLimPar2_1..calc.xls”と評価される。この同一のロジックの行はFamLimPar2_1.pres.xslファイルが続き、これはプレゼンテーションエンジン１０５のために“〜/XamlConfig/Templates_S/FamLimPar2_1..pres.pot”ファイルを識別するために同一の構文を使用する。
【０１２２】
応答ドキュメントの形態は、呼び出し側への返却のために望まれる応答に従う。定数を保持する唯一の規則は、全てのドキュメントがローカルに記憶され、ある場合には、ファイルパスにおいてネットワーク共有にキャッシュされることである。システムによって生成されるリソースを取得するためにメタデータを返却するとき、これは全てのリソースに先立つパスの形式である。
【０１２３】
以下は、新たなモデルが構成定義されうる方法のまとめを提供する。少なくとも２つの<transform>要素および１つの<pres>または<calc>要素を定義する新たな<map>エントリが生成される。ファイルは柔軟性と規則を維持するために命名された関係する構造に従う。全てのテンプレート／XSLTファイルは適切なディレクトリ内に配置される。最後の<transform>要素は、呼び出し側に結果を返却するために*.res.xslファイルを参照する。
【０１２４】
図５を参照すると、本発明のシステムの利用においてユーザによって行われるステップを表わすフローチャートが表わされている。ステップ５００において、ユーザは関心のあるモデルを選択し、ステップ５０１において、ユーザはそのモデルについて要求される前提を入力する。ステップ５０２において、システムは、選択されたモデルおよび入力された前提に基づいて作成された草案プレゼンテーションをユーザが試写することを可能とする。このステップにおいて、ユーザは必要でないスライドを削除し、または、他のカスタマイズを与えることが可能である。ユーザがプレゼンテーションの形式に満足すると、彼はステップ５０３においてプレゼンテーションの最終バージョンをダウンロードすることが可能である。
【０１２５】
図６Ａ、６Ｂ、６Ｃを参照すると、本発明のいくつかの方法が表わされている。
【０１２６】
図６Ａを参照すると、プレゼンテーションを作成するための方法が表わされている。ステップ６０１において、スプレッドシートオブジェクトが作成される。ステップ６０２において、プレゼンテーションが作成される。ステップ６０３において、スプレッドシートオブジェクトがプレゼンテーション内に埋め込まれる。
【０１２７】
図６Ｂを参照すると、プレゼンテーションをカスタマイズするための方法が表わされている。ステップ６１０において、プレゼンテーションが作成される。プレゼンテーションは１つまたは複数のスライドを含む。ステップ６１１において、１つまたは複数のスライドの各々の画像が作成される。ステップ６１２において、画像の１つまたは複数が表示される。ステップ６１３において、プレゼンテーションをカスタマイズする１つまたは複数の要求が受信される。ステップ６１４において、カスタマイズされたプレゼンテーションが生成される。
【０１２８】
図６Ｃを参照すると、プレゼンテーションを作成するための方法が表わされている。ステップ６２０において、プレゼンテーションの作成に関する要求が受信される。ステップ６２１において、プレゼンテーションの作成に関して行われる１つまたは複数の計算アクションおよび１つまたは複数のプレゼンテーションアクションを決定するために、要求が解析される。ステップ６２２において、計算アクションを指示する実行可能な命令を含む第１のマークアップ言語ドキュメントが生成される。ステップ６２３において、計算データを含む第２のマークアップ言語ドキュメントを生成するために、第１のマークアップ言語ドキュメントが処理される。ステップ６２４において、プレゼンテーションアクションを指示する実行可能な命令を含む第３のマークアップ言語ドキュメントが生成される。ステップ６２５において、草案プレゼンテーションおよび最終プレゼンテーションのうち１つに関するデータを含む第４のマークアップ言語ドキュメントを生成するために、第３のマークアップ言語ドキュメントおよび第２のマークアップ言語ドキュメントが処理される。第２のマークアップ言語ドキュメントの生成に関して、１つまたは複数のスプレッドシートテンプレートを利用することが可能である。第４のマークアップ言語ドキュメントの生成に関して、１つまたは複数のプレゼンテーションテンプレートを利用することが可能である。
【０１２９】
上述したステップの１つまたは複数は、データ処理装置上で実行されるソフトウェアによって実行することが可能である。
【図面の簡単な説明】
【０１３０】
【図１】本発明によるシステムの一実施形態の図である。
【図２】XMLメタ言語トランスレータ／インタプリタについての動作フローの例である。
【図３】本発明による計算エンジンについての動作フローの例である。
【図４】本発明によるプレゼンテーションエンジンについての動作フローの例である。
【図５】ユーザが本発明の使用において行いうるステップを表わすフローチャートである。
【図６Ａ】本発明による様々な方法のステップを表わすフローチャートである。
【図６Ｂ】本発明による様々な方法のステップを表わすフローチャートである。
【図６Ｃ】本発明による様々な方法のステップを表わすフローチャートである。
【符号の説明】
【０１３１】
１００  動作フロー管理および制御エンジン
１０１  フロントエンド
１０２  ウェブサービス定義層
１０３  XMLメタ言語トランスレータ／インタプリタ
１０４  計算エンジン
１０５  プレゼンテーションエンジン
１０６  スプレッドシートテンプレート
１０７  XSLTテンプレート
１０８  XML/XSLT構成定義ファイル
１０９  プレゼンテーションテンプレート
１１０  ネットワーク共有
１１１  準拠記憶装置
【図１】
2009524132.tif 000028
【図２】
2009524132.tif 000029
【図３】
2009524132.tif 000030
【図４】
2009524132.tif 000031
【図５】
2009524132.tif 000032
【図６Ａ】
2009524132.tif 000033
【図６Ｂ】
2009524132.tif 000034
【図６Ｃ】
2009524132.tif 000035
【国際調査報告】
2009524132.tif 000036