JP2010517174A - ストリーミング可能な対話的レンダリング非依存のページレイアウト - Google Patents

ストリーミング可能な対話的レンダリング非依存のページレイアウト Download PDF

Info

Publication number
JP2010517174A
JP2010517174A JP2009547365A JP2009547365A JP2010517174A JP 2010517174 A JP2010517174 A JP 2010517174A JP 2009547365 A JP2009547365 A JP 2009547365A JP 2009547365 A JP2009547365 A JP 2009547365A JP 2010517174 A JP2010517174 A JP 2010517174A
Authority
JP
Japan
Prior art keywords
stream
rpl
layout
rendering
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009547365A
Other languages
English (en)
Inventor
クリスタチェ ニコレータ
アール.スミス ドノバン
エー.ヘイズ クリストファー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010517174A publication Critical patent/JP2010517174A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/114Pagination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)
  • Document Processing Apparatus (AREA)

Abstract

コンピュータ出力表示システムが提供される。前記システムは、表示出力コントロールのサブセットに対して適用可能な1つまたは複数のレンダリングルールを判定するためのレイアウトコンポーネントを含む。形式コンポーネントは、表示をレンダリングするために、表示出力コントロールのサブセットにより使用される汎用プロトコルを介して、前記レンダリングルールを伝達する。

Description

情報の消費者が、動的に生成される情報を、使用されるツールまたはデバイスに応じた異なる技法に従ってレンダリングするように要求することは一般的である。これらの技法中には、コンピュータ画面へのダイレクトドローイング(direct drawing)、印刷、HTML命令、PDF形式、Word形式などがある。一部の既存のシステム(特に、レポーティングシステム)は、複数のレンダリングターゲットに対して核となるデータ計算を一度に行うことができるが、諸形式にわたって、レイアウト/ページ付け計算を行う、または共用するという問題をうまく扱うシステムはなかった。例えば、各出力形式は、現在、別個のレンダラを必要とし、それが、計算されたデータをレイアウトおよびページ付けし、さらに、従来技術の図面である図8で示すように所望の形式を生成する。
図8を参照すると、従来技術のレンダリングシステム800が示されており、データ810およびレポート定義情報820が830で処理されて、この例では、840の5つの異なるレンダラに対する5つの異なるレンダリング形式を生成する(例えば、HTML、RGDI、画像、Excel、PDF)。レンダラ840からの出力は、次に表示するための様々な表示コントロール850に送られる。システム800は、従来技術のレンダリングアーキテクチャの簡単化した図を示している。850のクライアントアプリケーションが、レポートの1つまたは複数のページをターゲット形式で要求した場合、レポート処理モジュール830は、レポート定義820に含まれる命令に基づいて、データ810に対して働く。その結果処理されたレポートデータは、850のクライアントアプリケーションによって要求されたもの、すなわち、HTML、RGDI(remote drawing instructions stream:遠隔描画命令ストリーム)、画像、Excel、PDFなどに応じて、840のいくつかのレンダリングモジュールのうちの1つに提供される。
各レンダラ840は、ターゲット出力形式を生成するために、それ自体のページ付けおよびレイアウト論理を利用する。得られたファイルまたはストリームは、次いで、850のクライアントアプリケーションに渡される。Webformコントロールの場合、HTMLは、ウェブブラウザでユーザに表示される生成されたウェブページ中に埋め込まれる。Winformコントロールの場合、RGDIストリームは、ユーザの画面上にページを直接描画するための描画命令として解釈される。印刷コントロールの場合、画像ファイルは、レポートの要求されたページをすべて含み、プリンタに渡される。他の場合では、出力ファイルは、クライアントマシンに単にダウンロードされる。
システム800で示される現在の手法は、いくつかの望ましくない限界がある。1つの側面では、システム800は、様々な出力表示形式にわたりレイアウト/ページ付けの整合性(consistency)に欠ける。各レンダラは、それ自体のレイアウト/ページ付け論理を実装するので、その論理における不一致が必然的に生じ、選択された出力タイプに応じて、微妙に(または、時には劇的に)異なるレイアウト/ページ付けをまねくことになる。システム800における別の欠陥は、要求される形式ごとに、レイアウト/ページ付けが冗長的に再計算されるので、不必要な計算負荷のあることである。負荷の問題に加えて、様々な形式を適切にサポートするために、アプリケーション間で渡される冗長な初期接続手順および制御が存在する。
以下では、本明細書で述べるいくつかの態様の基本的な理解を提供するために、簡略化した概要を提示する。この概要は、広範囲に概観するものではなく、または鍵となる要素/重要な要素を特定すること、もしくは本明細書で述べる様々な態様の範囲を概説することを意図するものでもない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、簡略化した形で、いくつかの概念を示すことである。
処理負荷を軽減し、システム間の通信を簡単化する汎用(generic)プロトコルにより、様々な表示形式を処理するためにレンダリングアーキテクチャが提供される。レイアウトコンポーネントは、コンピュータにおける望ましい表示出力のためにレイアウトおよびページ付けルールを判定する。そのルールは、次いで、1つまたは複数の表示コントロールを介して遠隔的に処理できる汎用プロトコルにより書式設定される。例えば、汎用プロトコルは、そのプロトコルを使用するウェブ表示コントロールによりレンダリングされ、次いでHTMLコードを出力することができる。プリンタコントロールの場合、汎用プロトコルを、それぞれの表示用のプリンタアプリケーションに送ることができる。1組の表示ルールを判定し、次いで、汎用プロトコルによりそのルールを移送することにより、以前のシステムにおけるプロトコルのタイプごとの並列処理を、汎用プロトコルの計算へと低減できるので、表示生成側の並列処理が軽減される。以前のシステムにおけるように、各表示形式に対してプロトコルのタイプごとに命令を送信するのではなく、システム間(例えば、表示データを生成するサーバとそのデータをレンダリングするクライアントとの間)のネットワーク通信を改善する、単一の組(または低減された組)の命令を送信することができる。
レンダリングアーキテクチャおよび汎用プロトコルは、表示プロトコルのタイプごとに並列処理コンポーネントを本質的に使用する以前のシステムについて、多くの利益を提供する。例えば、7つの異なるプロトコルがサポートされる場合、7つの異なる表示コントロールがクライアントエンドで使用されながら、次いで7つの異なるレンダリングジェネレータがサーバエンドで使用された。したがって、そのような並列アーキテクチャについて、レンダリングアーキテクチャおよび汎用プロトコルによって実現されるいくつかの利点がある。一態様では、本アーキテクチャにより、サーバとクライアント間(または他の構成)で計算を分散させることができる。以前のレンダリングタスクを少なくとも2つの別個のサブタスク(例えば、レイアウト/ページ付けおよびターゲット出力生成)に分割することにより、2つのモジュールをクライアント−サーバアーキテクチャで使用することができ、クライアントは最終的なターゲット出力生成を行う。以前には、クライアントで生じる出力生成のために、レイアウトおよびページ付けもまた、クライアントで生じる必要があったはずである。これは、データの全体の組を即座にクライアントに渡すことを必要とし、ページ付けの性能およびスケールの利点をなくすことになる。
レンダリングアーキテクチャの別の特徴は、リッチクライアントにおける編集能力を可能にすることである。従来技術の手法では、特有のターゲット形式をクライアントアプリケーションへと渡していた。例えば、HTMLを、ウェブベースのアプリケーションへ送ることができ、画像描画命令(例えば、遠隔GDI(RGDI)またはEMF)を、Windows(登録商標)ベースのアプリケーションに送ることができる。これらの形式は、クライアントが、出力を生成するために使用された元の定義に戻って、レンダリングされたオブジェクトをマップできるようにする十分なメタデータを含んでいない。したがって、汎用プロトコルにより提供されるレンダリング非依存の形式は、そのような追加的なメタデータを含むことができる。
さらに別の特徴は、独立して持続可能なレンダリング非依存のページを提供する。レイアウト/ページ付けモジュールの出力を、ストリームとして公開することにより、各ページ(またはページの組)は、セーブ、共用、電子メール、およびその後に続いて任意の所望の出力形式でそれをレンダリングするための能力を失わないドキュメントとしてその他の形で扱うことができる、独立して持続可能なオブジェクトとなる。別の特徴は、クライアント側の性能に基づいて、よりロバストなレンダリングを可能にすることを含む。出力の生成がクライアントで処理される場合、そのクライアント側のアプリケーションは、全サーバ側レンダリングによって処理することのできない、クライアント環境における変動を負うことができる。例えば、所望のフォントがクライアントマシン上に存在しない場合、出力生成モジュールは、代用フォントのフォントメトリックにおける差異を考慮するように、出力に対してわずかな調整を行うことができる。これは、以前の統合されたサーバ側レンダリングでは不可能であった。
前述の関連する目的を達成するために、以下の説明および添付の図面と併せて、いくつかの例示的な態様を本明細書で述べる。これらの態様は、実行することのできる様々な方法を示しており、そのすべてを、本明細書に含めることが意図されている。他の利点および新規な特徴は、図面と併せて検討される場合に、以下の詳細な説明から明らかになるであろう。
コンピュータ化された表示システムを示す概略ブロック図である。 グラフィカル表示システムに対する例示的なクライアント/サーバアーキテクチャを示す概略ブロック図である。 グラフィカル表示システムを駆動するプロセスを示す流れ図である。 遠隔ページレイアウトストリーム形式もしくはプロトコルの例示的な部分または断片を示す図である。 遠隔ページレイアウトストリーム形式もしくはプロトコルの例示的な部分または断片を示す図である。 遠隔ページレイアウトストリーム形式もしくはプロトコルの例示的な部分または断片を示す図である。 遠隔ページレイアウトストリーム形式もしくはプロトコルの例示的な部分または断片を示す図である。 従来技術のレンダリングシステムの例を示す図である。 適切な動作環境を示す概略ブロック図である。 サンプルのコンピューティング環境の概略ブロック図である。
共通の、または汎用のレンダリングプロトコルおよび形式に従って遠隔位置でデータを表示するためにコンピュータ化されたシステムが提供される。一態様では、コンピュータ出力表示システムが提供される。システムは、表示出力コントロールのサブセットに適用可能な1つまたは複数のレンダリングルールを判定するためのレイアウトコンポーネントを含む。形式コンポーネントは、表示をレンダリングするために表示出力コントロールのサブセットによって使用される汎用プロトコルを介してレンダリングルールを伝達する。
本出願で使用されるとき、用語「コンポーネント」、「プロトコル」、「レイアウト」、「ストリーム」などは、コンピュータに関連するエンティティを指し、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行時のソフトウェアを指すことが意図されている。例えば、コンポーネントは、これだけに限らないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および/またはコンピュータとすることができる。例として、サーバ上で動作するアプリケーションとサーバとの両方はコンポーネントになりうる。1つまたは複数のコンポーネントは、プロセスおよび/または実行のスレッド内に存在することができ、コンポーネントは、1つのコンピュータ上に局在することができ、および/または2つ以上のコンピュータ間で分散することができる。また、これらのコンポーネントは、様々なデータ構造がその上に記憶された様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケットを有する信号によるなど、ローカルおよび/または遠隔のプロセスを介して通信することができる(例えば、1つのコンポーネントからのデータが、信号を介して、ローカルシステム、分散システム中の別のコンポーネントと対話し、および/またはインターネットなどのネットワークを越えて他のシステムと対話する)。
初めに図1を参照すると、データのレンダリングを容易にするためのコンピュータ化された表示システム100が示されている。システム100は、レポートデータ120を処理し、ディスプレイまたは他の出力装置130(例えば、プリンタ、LCDディスプレイ、CRT)のためにデータを書式設定するのに使用される1つまたは複数のルールを判定するレイアウトコンポーネント110を含む。例えば、ルールは、表示のためのページ付け選択肢、または以下でより詳細に述べる他のレイアウト検討事項を指定することができる。レイアウトコンポーネント110の一部であることができる形式コンポーネント140は、出力装置130を駆動するための遠隔マシン160により使用される汎用プロトコル150を生成する。一例では、レイアウトコンポーネント110および形式コンポーネント140は、クライアントマシンとして働く遠隔マシン160に汎用プロトコル150を送信するサーバ側アーキテクチャの一部とすることができる。
図示のように、遠隔マシン160は、出力装置130を駆動する1つまたは複数の出力コントロールを含む。例えば、1つの出力コントロールは、出力装置130で、データを、汎用プロトコル150を介して第1の出力形式(例えば、HTML)でレンダリングするために使用することができるが、別の出力コントロールは、汎用プロトコルを用いて、異なる出力形式(例えば、プリンタプロトコル)を出力することになる。先に進む前に、レイアウトコンポーネント110を、機能的に、示されたような1つのコンポーネントより多い数で提供することができることに留意されたい。
システム100は、図8で示されたものなどの以前のレンダリングシステムに対して、いくつかのアーキテクチャ的な態様、機能的な態様、および性能/スケーリング態様を提供する。アーキテクチャに関して、システム100は、ターゲット出力生成からのレイアウト/ページ付けの分離を提供し、形式コンポーネント140の出力150は、ターゲットのレンダリング形式とは独立している。これは、アーキテクチャに依存しないモデルを提供し、それにより、形式コンポーネント140の出力を、オブジェクトモデルまたはストリームのいずれか経由で使用することができ、インメモリアーキテクチャとクライアント−サーバアーキテクチャとの両方を可能にする。加えて、オブジェクトモデルを、ストリームの最上位にレイヤ化することができ、オブジェクトモデルの完全な取込みがメモリを多用し過ぎることになる場合は、増分的に(incrementally)取り込むことができる。これは、望ましい場合に、何らかの性能とのトレードオフで、より大きなスケーラビリティを可能にする。本アーキテクチャはまた、任意選択の帯域外の資源を容易にする。例えば、クライアント−サーバのストリーミングの場合、大きい資源(例えば、画像)を、ストリーム中のメタデータにより参照することができ、サーバから効率的な帯域外コールで取り出すことができる。
システム100の機能に関して、エンドユーザの対話性を高めることができる。例えば、利用可能な事前定義のエンドユーザのアクション(例えば、ソートおよびドリルダウン)を記述するメタデータが、ターゲットに依存しない方法で記述される。また、ページの全構造はクライアントまたは遠隔マシン160にとって利用可能であるため、いくつかの、以前には利用できない形の対話性(非事前定義の視覚的なソートなど)を、クライアント上で実装することができる。他の機能的な態様は、改良された編集能力を含む。したがって、レンダリングされたオブジェクトを元の出力/レイアウト定義に戻ってリンクさせるメタデータが、任意選択で提供され、リッチクライアントが、定義に対して実行時編集を提供できるようにする。構成可能なページ付けモデルもまた、システム100によって提供され、その場合、複数のページ付けモデルに対して、共通の手法を使用することができる。具体的には、それを、厳しい物理的なページ制限(例えば、PDF)を有するターゲットをレンダリングすることと、柔軟で物理的なページ制限(例えば、HTML)を有するターゲットをレンダリングすることとの両方のために使用することができる。同様に、それを、すべてのページが一度にレンダリングされる場合(例えば、MHTML)、またはページは一度に1つレンダリングされる場合(例えば、直接の画面描画)で使用することができる。
性能およびスケーリングを高めることに関して、メモリの使用量を制限し、サーバまたは他のエンジン上の性能を最適化するために、シングルパス生成を使用することができる。クライアント−サーバの例では、ページレイアウトストリームは、データに対して、シングルパスで生成することができ、それにより、メモリの使用量を(メモリを多用するおそれのあるオペレーションをクライアントへと延期して)厳しく抑制し、コストのかかるマルチパス、またはレポートデータに対するシーク(seek)オペレーションを回避することができる。したがって、以下でより詳細に述べるストリーム構造は、クライアント上の効率的なレンダリングを可能にする。
他の性能態様は、クライアントがメモリを多用する計算と処理を多用する計算とを比較することのできるストリーミング形式内の内部ポインタの使用を含む。これは、最終的なサイズが、サーバ上で計算されるか、またはクライアント上で計算されるかどうかに関する構成可能な選択肢を含む。また、増加する項目(例えば、可変長テキストを有するテキストボックス、または可変サイズの画像を有する画像コントロール)による最終的なレイアウト変更は、サーバ上で計算することができ、または、クライアントまで遅らせることができる。先に進む前に、システム100は、グラフィカル表示システムまたはアーキテクチャの一部として提供できることに留意されたい。これは、遠隔出力装置130を駆動するためのグラフィカルルールを判定する手段(レイアウトコンポーネント110)を含む。これはまた、汎用プロトコル150に従ってグラフィカルルールを伝える手段も含むことができ、その場合、汎用プロトコルは、遠隔マシン160により提供される1組の出力コントロールコンポーネントに対する入力として使用することができる。
ここで図2を参照すると、システム200は、データのグラフィカル表示のための例示的なクライアント/サーバアーキテクチャを示す。システム200は、例示的なレンダリングアーキテクチャの簡略化された図を示している。複数の他の構成が可能であることが理解されるべきである。クライアントアプリケーションが、レポートの1つまたは複数のページをターゲット形式で要求した場合、レポート処理モジュール210は、レポート定義230に含まれる命令に基づいて、データ220に対して働く。その結果処理されたレポートデータは、共通のレイアウトおよびページ付けモジュール240に提供され、レイアウトおよびページ付けモジュール240は、クライアント250における出力生成モジュールにより提供される選択肢に基づいて、レイアウトおよびページ付け計算を実行する。例えば、Webformコントロール260が、レポートの単一のページを要求する場合、それは、HTMLジェネレータコンポーネント262により処理することができるように、ページ長さに関して柔軟であって、変化するテキストおよび画像サイズを無視するレイアウト/ページ付けモジュール240に命令することができる。別の例では、画像ジェネレータ268を有する印刷コントロール266は、レイアウト/ページ付けモジュール240に、ページ長さに関して厳密であるように、また正確なテキストおよび画像サイズを計算するように命令することができる。図示のように、別のコントロールは、GDIジェネレータ272を有する別の選択肢であるWinformコントロール270を含む。
クライアントコントロールが存在する場合、レイアウト/ページ付けモジュール240は、要求されたページ(複数可)に対して、276のレポートページレイアウト(RPL)ストリームを生成し、それは次いで、それぞれのクライアントアプリケーションへと渡される。RPLストリーム276の構造は、図4〜7に関して以下でより詳細に述べることに留意されたい。クライアントアプリケーションは、次いで、この形式に依存しないストリーム276を、ターゲット形式(例えば、Webformコントロール260の場合はHTML、Winformコントロール270の場合は直接の画面描画命令、印刷コントロール266の場合は画像ファイル)に変換する。クライアントコントロールのない場合、レイアウト/ページ付けモジュール240は、レポートページレイアウトを、ストリームではなくオブジェクトモデル(280のRPL OM)を介して公開する。このオブジェクトモデルにより、選択されたレンダラ(例えば、Excelジェネレータ282、PDFジェネレータ284)は、RPLをターゲット出力形式に変換し、それは、次いで、クライアントマシンへとダウンロードされる。
ページの視覚的なレイアウトおよびコンテンツの記述に加えて、様々な形のメタデータを、RPLストリーム276またはRPL OM280内に埋め込むことができる。これは、利用可能なエンドユーザのアクション(例えば、ソートおよびドリルダウン)を記述するメタデータ、(ストリーム中に埋め込むのではなく)サーバから画像を取り出す命令、表示されるオブジェクトをレポート定義に戻ってマップする定義情報(クライアントコントロールがランタイム編集機能を提供できるようにする)、および最初には表示されないが、クライアント側のアクションに基づいて視認可能になりうるオブジェクト(クライアント側のドリルダウンとしてそのような態様を可能にする)を含む。
RPLストリーム276は、データに対するトップトゥボトム(top−to−bottom)のシングルパスで生成することができ、ページ上のオブジェクトの階層的構造を保持する。この手法は、サーバ上のメモリ効率はよいが、クライアント出力生成モジュールによる単一の順方向パスで(一般に)解釈することができないRPL構造をもたらす。効率的なクライアント側計算を容易にするために、RPL276はまた、ストリーム内に数多くのオフセット/ポインタを含むことができ、クライアントが必要な情報を求めてストリーム内を「シーク」(seek)することを可能にする。RPLストリーム形式は、図4〜7に関して以下でより詳細に述べるものとする。
図3は、グラフィカル表示システムを駆動する例示的なプロセス300を示す。説明の簡単のために、プロセスは、一連の、またはいくつかの行為として示され、記述されているが、本プロセスは、行為の順序により限定されるものではなく、いくつかの行為は、本プロセスに従って、本明細書に示されかつ述べられたものとは異なる順序で、および/または他の行為と同時に発生することができることが、理解されおよび認識されるべきである。例えば、当業者は、方法を、代替的に、状態図などの相互に関係付けられた一連の状態またはイベントとして表すことが可能であることを、理解し認識することだろう。さらに、例示された行為のすべてが、本明細書に記載の本プロセスによる方法を実施する必要がない可能性がある。
図3の304に進むと、レポート定義が生成される。310で、レイアウトを求める要求が生成される。そのような要求は、例えば、クライアント側アプリケーションが、データをコンピュータ出力装置で表示するように要求することから生成することもできる。320でレポート処理が行われる。これは、閲覧可能な形式(例えば、表形式)に編成するために、例えば、行と列を処理するクエリを含むことができる。330で、レイアウトおよびページ付けルールが、320で処理されたデータに適用される。これは、フォントサイズ、改ページ、色、ページ当たりの行数等を判定するなど、どのようにページが編成され、閲覧されるかを判定することを含むことができる。340で、ターゲットに依存しない形式が、330で判定されたレイアウトおよびページ付けルールから生成される。そのような独立した形式は、ターゲット特有のプロトコルを使用することなく、どのようにページを表示すべきかを指定する。例えば、ページビューを、HTMLまたは他の形式などターゲット特有のプロトコルとは反対に、以下で述べるレポートページレイアウトストリームに従って、汎用的に指定することができる。350で、ターゲット非依存のプロトコルにより指定された命令に従って表示がレンダリングされる。ターゲット非依存のプロトコルにより提供される命令に従ってレンダリングするために、1つまたは複数の出力コントロールまたは他のアプリケーションを提供することができる。
図4〜7は、本明細書に述べられた特許請求される諸態様に関連する可能なデータストリーム形式からの例示的な部分または断片を示す。実際のストリームは、図示された例示的なデータ構造よりも多くのまたは少ない数のものを含むことができること、かつ他のストリーム構造および組合せが可能であることが、理解されるべきである。図4を参照すると、例示的なレポートページレイアウト(RPL)ストリーム400が示されている。RPLストリーム400は、レポートRPLストリーム構造410およびレポートRPLストリーム構造セマンティック420を含む。以下のストリームおよびプロトコルの例は、性質において例示的あり、可能な書式設定変数、または他のタイプのデータの包括的なリストであることは意図されていないことに留意されたい。同様に、示された例よりも少ないものを有するストリームを生成することができる。
RPLストリーム400に関して、これは、ページを記述するためのレポートメタデータを含むバイナリストリームとして提供することができる。ストリーム400は、レポート階層を保存しており、その場合、項目の左で最上位のプロパティは、ペアレントに関連している。レポート項目測定値は、ペアレントレベルで保存され、そのデータ型は、「single」であり、値をミリメートルで表す。ストリーム400は、読み手にペアレントからチャイルドにジャンプできるようにし、かつすべてのプロパティを読み取ることなくレンダリングの実行時間サイズを読み取ることを可能にする構築されたオフセットベースの階層を有することができる。オフセットは、64ビットで記憶することができる。スペースを最適化するために、いくつかの構造を、レポート項目間で共用することができ、したがって、それらは一度に書き込まれるようになる。その構造は、例えば、一定のスタイル、複数回埋め込まれる画像、一定のレポート項目プロパティなどである。その他の形で指定されない限り、数値はInt32とすることができる。日付時間値は、long値と同様に記述されるが、Booleanは偽の場合0に、真の場合1と定義される。概して、RPLストリーム400は、少なくとも3つの目的で働く。
1)非常に大きなレポートに対してメモリ消費量を制御する。
2)レンダラからページ付けを切り離して、レンダリングタスクをサーバ/クライアントベースで実施できるようにする。
3)クライアント編集を可能にする。
RPL形式のセマンティック include(A)=structure A は任意選択であり、ここで、要素のうちの1つだけ{A|B}=が存在すべきである。以下の表は例示的なレポートRPLストリーム構造410を示す。
Figure 2010517174
以下は、例示的なRPLストリーム構造セマンティック420を示す。
Figure 2010517174
Figure 2010517174
Figure 2010517174
図5を参照すると、例示的なRPLストリーム部分500および510が示されている。RPLストリーム500は、項目プロパティRPLストリーム構造520、および項目プロパティストリーム構造セマンティック530を含む。以下の表は、項目プロパティRPLストリーム構造520の例である。
Figure 2010517174
Figure 2010517174
以下は、項目プロパティストリーム構造セマンティック530の例である。
Figure 2010517174
図5のRPLストリーム510に関して、以下の表は、画像プロパティRPLストリーム構造540の例である。
Figure 2010517174
以下は、画像プロパティRPLストリーム構造セマンティック550の例である。
Figure 2010517174
図6を参照すると、例示的なRPLストリーム部分600および610が示されている。RPLストリーム600は、アクション情報プロパティRPLストリーム構造620およびアクション情報プロパティストリーム構造セマンティック630を含む。以下の表は、アクション情報プロパティRPLストリーム構造620の例である。
Figure 2010517174
以下の表は、アクション情報プロパティRPLストリーム構造セマンティック630の例である。
Figure 2010517174
Figure 2010517174
図6のRPLストリーム610に関して、以下の表は、スタイルプロパティRPLストリーム構造640の例である。
Figure 2010517174
Figure 2010517174
図7を参照すると、例示的なRPLストリーム部分700および710が示されている。RPLストリーム700は、tablix測定RPLストリーム構造720、およびtablix測定RPLストリーム構造セマンティック730を含む。以下の表は、tablix測定RPLストリーム構造720の例である。
Figure 2010517174
以下は、tablix測定RPLストリーム構造セマンティック730の例である。
Figure 2010517174
Figure 2010517174
図7のRPLストリーム710に関して、以下の表は、tablixセルプロパティRPLストリーム構造740の例である。
Figure 2010517174
以下は、tablixセルプロパティRPLストリーム構造セマンティック750の例である。
Figure 2010517174
開示される主題の様々な態様に対するコンテキストを提供するために、図9および10ならびに以下の論議では、開示される主題の様々な態様を実装することができる適切な環境の、簡単かつ概略の説明を提供することが意図される。主題は、1つおよび/または複数のコンピュータ上で動作するコンピュータプログラムのコンピュータ実行可能命令の一般的なコンテキストにより上記で述べられてきたが、当業者であれば、本発明はまた、他のプログラムモジュールと組み合わせて実装できることが認識されよう。一般に、プログラムモジュールは、特定のタスクを行い、および/または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明の方法は、単一プロセッサもしくはマルチプロセッサのコンピュータシステム、ミニコンピューティング装置、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティング装置(例えば、PDA(携帯情報端末)、電話、時計など)、マイクロプロセッサベースのまたはプログラム可能な家庭用または業務用電子機器などを含む、他のコンピュータシステム構成を用いて実施できることを理解するであろう。例示された態様はまた、通信ネットワークを通じてリンクされた遠隔処理装置によってタスクが実行される分散コンピューティング環境中で実施することもできる。しかし、本発明のすべてではないがいくつかの態様は、スタンドアロンのコンピュータ上で実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルと遠隔との両方のメモリ記憶装置中に位置することができる。
図9を参照すると、本明細書で述べる様々な態様を実装する例示的な環境910は、コンピュータ912を含む。コンピュータ912は、処理装置914、システムメモリ916、およびシステムバス918を含む。システムバス918は、これだけに限らないが、システムメモリ916を含むシステムコンポーネントを処理装置914に結合する。処理装置914は、任意の様々な利用可能なプロセッサとすることができる。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも、処理装置914として使用することができる。
システムバス918は、メモリバスもしくはメモリ制御装置、周辺バスもしくは外部バス、および/または、これだけに限らないが、11ビットバス、ISA(Industrial Standard Architecture)、MSA(Micro−Channel Architecture)、EISA(Extended ISA)、IDE(Intelligent Drive Electronics)、VLB(VESA Local Bus)、PCI(Peripheral Component Interconnect)、USB(Universal Serial Bus)、AGP(Advanced Graphics Port)、PCMCIA(Personal Computer Memory Card International Association bus)、およびSCSI(Small Computer Systems Interface)を含む任意の様々な利用可能なバスアーキテクチャを用いるローカルバスを含むいくつかのタイプのバス構造(複数可)のうちの任意のものとすることができる。
システムメモリ916は、揮発性メモリ920および不揮発性メモリ922を含む。起動中など、コンピュータ912内のエレメント間で情報を転送するための基本ルーチンを含むBIOS(基本入出力システム)は、不揮発性メモリ922中に格納される。例示のためであり、限定するものではないが、不揮発性メモリ922は、ROM(読取り専用メモリ)、PROM(プログラム可能ROM)、EPROM(電気的にプログラム可能ROM)、EEPROM(電気的に消去可能なROM)、またはフラッシュメモリを含むことができる。揮発性メモリ920は、外部のキャッシュメモリとして働くRAM(ランダムアクセスメモリ)を含む。例示のためであり、限定するものではないが、RAMは、SRAM(同期型RAM)、DRAM(ダイナミックRAM)、SDRAM(同期型DRAM)、DDR SDRAM(2倍データレート型SDRAM)、ESDRAM(enhanced SDRAM)、SLDRAM(シンクリンクDRAM)、およびDRRAM(direct Rambus RAM)などの多くの形態で利用可能である。
コンピュータ912はまた、取外し可能/取外し不能、揮発性/不揮発性のコンピュータ記憶媒体を含む。図9は、例えば、ディスクストレージ924を示している。ディスクストレージ924は、これだけに限らないが、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックなどのデバイスを含む。加えて、ディスクストレージ924は、これだけに限らないが、CD−ROM(コンパクトディスクROMデバイス)、CD−Rドライブ(CD記録可能ドライブ)、CD−RWドライブ(CD書換え可能ドライブ)、またはDVD−ROM(digital versatile disk ROMドライブ)などの光ディスクドライブを含む、他の記憶媒体とは別個に、または他の記憶媒体と組み合わせた記憶媒体を含むことができる。ディスクストレージデバイス924のシステムバス918への接続を容易にするために、インターフェース926など、取外し可能または取外し不能のインターフェースが典型的には使用される。
図9は、適切な動作環境910中で記述される、ユーザと基本的なコンピュータ資源との間の中間物(intermediary)として働くソフトウェアを説明していることが理解されるべきである。そのようなソフトウェアは、オペレーティングシステム928を含む。ディスクストレージ924上に格納することができるオペレーティングシステム928は、コンピュータシステム912の資源を制御し、割り振るように働く。システムアプリケーション930は、システムメモリ916中に、またはディスクストレージ924上のいずれかに格納されたプログラムモジュール932およびプログラムデータ934を介して、オペレーティングシステム928による資源の管理を利用する。本明細書で述べた様々なコンポーネントは、様々なオペレーティングシステム、またはオペレーティングシステムの組合せを用いて実装できることが理解されるべきである。
ユーザは、入力装置(複数可)936を介して、コマンドまたは情報をコンピュータ912に入力する。入力装置936は、これだけに限らないが、マウス、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、TVチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどのポインティング装置を含む。これらの、および他の入力装置は、インターフェースポート(複数可)938を経由し、システムバス918を介して処理装置914と接続する。インターフェースポート(複数可)938は、例えば、シリアルポート、パラレルポート、ゲームポート、およびUSB(universal serial bus)を含む。出力装置(複数可)940は、入力装置(複数可)936と同じタイプのいくつかのポートを使用する。したがって、例えば、USBポートは、コンピュータ912への入力を提供するために、またコンピュータ912からの情報を出力装置940に出力するために使用することができる。出力アダプタ942は、他の出力装置940の中で、特別のアダプタを必要とするモニタ、スピーカ、およびプリンタなどのいくつかの出力装置940が存在することを示すために提供される。出力アダプタ942は、例示のためであり、限定するものではないが、出力装置940とシステムバス918との間の接続の手段を提供するビデオおよびサウンドカードを含む。遠隔コンピュータ(複数可)944など、他の装置および/または装置のシステムは、入力および出力機能の両方を提供することに留意すべきである。
コンピュータ912は、遠隔コンピュータ(複数可)944などの1つまたは複数の遠隔コンピュータに対する論理接続を用いてネットワーク化環境で動作することができる。遠隔コンピュータ(複数可)944は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピアデバイスまたは他の共通のネットワークノードなどとすることができ、典型的には、コンピュータ912に関連して述べたエレメントの多くまたはすべてを含む。簡単化のために、メモリ記憶装置946だけが、遠隔コンピュータ(複数可)944と共に示されている。遠隔コンピュータ(複数可)944は、ネットワークインターフェース948を介して、コンピュータ912に論理的に接続され、次いで、通信接続950を介して物理的に接続される。ネットワークインターフェース948は、LAN(ローカルエリアネットワーク)、およびWAN(広域ネットワーク)などの通信ネットワークを包含する。LAN技術は、FDDI(Fiber Distributed Data Interface)、CDDI(Copper Distributed Data Interface)、イーサネット(登録商標)/IEEE802.3、トークンリング/IEEE802.5などを含む。WAN技術は、これだけに限らないが、ポイントツーポイントのリンク、ISDN(総合ディジタル通信網サービス)およびその変形形態などの回線交換網、パケット交換網、およびDSL(デジタル加入者線)を含む。
通信接続(複数可)950は、ネットワークインターフェース948をバス918に接続するために使用されるハードウェア/ソフトウェアを指す。通信接続950が、説明を明確にするために、コンピュータ912の内側に示されているが、コンピュータ912の外部とすることもできる。ネットワークインターフェース948に接続するために必要なハードウェア/ソフトウェアは、例示のために過ぎないが、通常の電話グレードのモデム、ケーブルモデム、およびDSLモデムを含むモデム、ISDNアダプタ、ならびにイーサネット(登録商標)カードなど、内部および外部の技術を含む。
図10は、使用することのできるサンプルのコンピューティング環境1000の概略ブロック図である。システム1000は、1つまたは複数のクライアント1010を含む。クライアント(複数可)1010は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。システム1000はまた、1つまたは複数のサーバ1030を含む。サーバ(複数可)1030はまた、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることができる。サーバ1030は、例えば、本明細書で述べたコンポーネントを使用することにより変換を実行するためのスレッドを収容することができる。クライアント1010とサーバ1030との間の1つの可能な通信は、2つ以上のコンピュータプロセス間で送信されるように適合されたデータパケットの形であってよい。システム1000は、クライアント(複数可)1010とサーバ(複数可)1030との間の通信を容易にするために使用することができる通信フレームワーク1050を含む。クライアント(複数可)1010は、クライアント(複数可)1010にとってローカルな情報を格納するために使用することができる1つまたは複数のクライアントデータストア(複数可)1060に動作可能に接続される。同様に、サーバ(複数可)1030は、サーバ1030にとってローカルな情報を格納するために使用することができる1つまたは複数のサーバデータストア(複数可)1040に動作可能に接続される。
上で述べてきたものは、様々な例示的な態様を含む。これらの諸態様を述べるために、コンポーネントまたは方法の考えられるあらゆる組合せを述べることは不可能であるのは当然であるが、当業者は、多くのさらなる組合せおよび置換が可能であることを認識することができる。したがって、本明細書で述べた態様は、添付の請求項の趣旨および範囲に含まれるそのような改変、修正、および変形をすべて含むことが意図される。さらに、用語「含む(includes)」が、詳細な説明または特許請求の範囲のいずれかで使用される限りにおいて、そのような用語は、「含む/備える(comprising)」が特許請求の範囲で移行語として使用される場合に解釈されるように、用語「含む/備える(comprising)」と同様に包含的であることが意図される。

Claims (20)

  1. 1組の表示出力コントロールに適用可能な1つもしくは複数のレイアウトまたはページ付けルールを判定するレイアウトコンポーネントと、
    前記表示出力コントロールのサブセットに前記レイアウトまたはページ付けルールを適用することの結果としてデータを伝達するための形式コンポーネントであって、前記データは、表示をレンダリングする汎用プロトコルと関連付けられている形式コンポーネントと
    を備えることを特徴とするコンピュータ出力表示システム。
  2. 前記レイアウトコンポーネントは、インメモリ構成、またはクライアント/サーバ構成をサポートするストリームまたはオブジェクトモデルを生成することを特徴とする請求項1に記載のシステム。
  3. 前記オブジェクトモデルは、前記ストリームの最上位にレイヤ化され、増分的に取り込まれることを特徴とする請求項2に記載のシステム。
  4. 前記クライアントサーバ構成は、前記ストリーム中のメタデータを介して資源を参照することを特徴とする請求項2に記載のシステム。
  5. エンドユーザのアクションを記述するメタデータをさらに含むことを特徴とする請求項1に記載のシステム。
  6. 予め定義されていない視覚的なソートオペレーションをサポートするコンポーネントをさらに備えることを特徴とする請求項5に記載のシステム。
  7. レンダリングされたオブジェクトを、元のデータ定義にリンクさせるメタデータをさらに備えることを特徴とする請求項1に記載のシステム。
  8. グラフィカルなレンダリングを容易にする構成可能なページ付けモジュールをさらに備えることを特徴とする請求項1に記載のシステム。
  9. 前記構成可能なページ付けモジュールは、厳しい物理的なページ制限を有するレンダリングターゲット、柔軟な物理的なページ制限を有するレンダリングターゲット、またはすべてのページが同時にレンダリングされるレンダリングターゲットに関連付けられていることを特徴とする請求項8に記載のシステム。
  10. メモリの使用量を制限し、サーバの性能を最適化するために、シングルパスを実施するコンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
  11. メモリを多用する計算間、または処理を多用する計算間のスケーリングを容易にするために、1つまたは複数の内部ポインタを含む汎用プロトコルをさらに備えることを特徴とする請求項1に記載のシステム。
  12. サイズ計算をサーバ上で行うか、またはクライアント上で行うかを構成することを判定するコンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
  13. 前記汎用プロトコルは、レポートページレイアウト(RPL)ストリーム、またはRPLオブジェクトモデルであることを特徴とする請求項1に記載のシステム。
  14. 前記RPLストリームは、RPLストリーム構造、およびRPLストリーム構造セマンティックを含むことを特徴とする請求項13に記載のシステム。
  15. 前記RPLストリームは、項目プロパティストリーム、画像プロパティストリーム、アクション情報プロパティストリーム、スタイルプロパティストリーム、tablix測定ストリーム、またはtablixセルプロパティストリームを含むことを特徴とする請求項13に記載のシステム。
  16. グラフィカルデータをレンダリングする方法であって、
    レポート定義を生成するステップと、
    データを取り出すステップと、
    前記レポート定義からの命令に従って、前記データにレイアウトおよびページ付けルールを適用するステップと、
    表示をレンダリングするためのターゲット非依存の形式を生成するステップと
    を含むことを特徴とする方法。
  17. 少なくとも1つのページをレンダリングするための遠隔要求を生成するステップをさらに含むことを特徴とする請求項16に記載の方法。
  18. 前記遠隔要求に応じて、ストリームまたはオブジェクトモデルを生成するステップをさらに含むことを特徴とする請求項17に記載の方法。
  19. 前記ストリームまたは前記オブジェクトモデルに対するメタデータを生成するステップを特徴とする請求項18に記載の方法。
  20. 遠隔の出力装置を駆動するためのグラフィカルルールを判定する手段と、
    汎用プロトコルに従って前記グラフィカルルールを伝達する手段であって、前記汎用プロトコルは、1組の出力制御コンポーネントに対する入力として使用することができる手段と
    を備えることを特徴とするグラフィカル表示システム。
JP2009547365A 2007-01-25 2008-01-18 ストリーミング可能な対話的レンダリング非依存のページレイアウト Pending JP2010517174A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/627,270 US8745486B2 (en) 2007-01-25 2007-01-25 Streamable interactive rendering-independent page layout
PCT/US2008/051510 WO2008091805A1 (en) 2007-01-25 2008-01-18 Streamable interactive rendering-independent page layout

Publications (1)

Publication Number Publication Date
JP2010517174A true JP2010517174A (ja) 2010-05-20

Family

ID=39644847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009547365A Pending JP2010517174A (ja) 2007-01-25 2008-01-18 ストリーミング可能な対話的レンダリング非依存のページレイアウト

Country Status (5)

Country Link
US (1) US8745486B2 (ja)
EP (1) EP2111575A4 (ja)
JP (1) JP2010517174A (ja)
CN (1) CN101595451B (ja)
WO (1) WO2008091805A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015510651A (ja) * 2012-02-23 2015-04-09 アジャイ ジャドハブ 持続的ノードフレームワーク

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347208B2 (en) * 2009-03-04 2013-01-01 Microsoft Corporation Content rendering on a computer
CN101620622B (zh) * 2009-08-13 2012-12-05 用友软件股份有限公司 分页方法和装置
US9471892B2 (en) * 2013-03-14 2016-10-18 Profiles International, Inc. System and method for embedding report descriptors into an XML string to assure report consistency
CN104572603B (zh) * 2014-12-16 2018-04-27 东软集团股份有限公司 一种报表分页方法和装置
CN108153663B (zh) * 2016-12-02 2022-02-18 阿里巴巴集团控股有限公司 页面数据处理方法及装置
CN110442406B (zh) * 2018-05-02 2022-08-12 北京京东乾石科技有限公司 分页控件处理数据的方法及分页控件、电子设备
US11455079B2 (en) * 2018-11-05 2022-09-27 Sigma Computing, Inc. Nested pagination for presenting a data set in a graphical user interface
CN111523295A (zh) * 2019-01-17 2020-08-11 北京沃东天骏信息技术有限公司 数据渲染方法、装置、介质及电子设备
CN112286576A (zh) * 2019-07-23 2021-01-29 腾讯科技(深圳)有限公司 跨平台渲染方法、客户端及介质
CN112446725B (zh) * 2019-09-03 2023-10-13 百度在线网络技术(北京)有限公司 信息处理方法、系统、信息服务器和信息展现客户端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023714A (en) * 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
JP2000057069A (ja) * 1998-08-05 2000-02-25 Canon Inc 情報処理装置および方法およびシステム
US20040133855A1 (en) * 2002-09-27 2004-07-08 Blair Robert Bruce Providing a presentation engine adapted for use by a constrained resource client device
JP2006092392A (ja) * 2004-09-27 2006-04-06 Seiko Epson Corp データ処理装置及び方法

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6552813B2 (en) * 1996-06-11 2003-04-22 Sun Microsystems, Inc. Directing print jobs in a network printing system
TW400487B (en) 1996-10-24 2000-08-01 Tumbleweed Software Corp Electronic document delivery system
US5852819A (en) 1997-01-30 1998-12-22 Beller; Stephen E. Flexible, modular electronic element patterning method and apparatus for compiling, processing, transmitting, and reporting data and information
US7225249B1 (en) * 1997-09-26 2007-05-29 Mci, Llc Integrated systems for providing communications network management services and interactive generating invoice documents
US6587836B1 (en) * 1997-09-26 2003-07-01 Worldcom, Inc. Authentication and entitlement for users of web based data management programs
US6370569B1 (en) * 1997-11-14 2002-04-09 National Instruments Corporation Data socket system and method for accessing data sources using URLs
US6292842B1 (en) 1998-08-28 2001-09-18 Hewlett-Packard Company Method for transferring data to an application
US6549918B1 (en) * 1998-09-21 2003-04-15 Microsoft Corporation Dynamic information format conversion
US6336124B1 (en) * 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US20040083184A1 (en) * 1999-04-19 2004-04-29 First Data Corporation Anonymous card transactions
US6428155B1 (en) 1999-05-25 2002-08-06 Silverbrook Research Pty Ltd Printer cartridge including machine readable ink
US8862507B2 (en) * 1999-06-14 2014-10-14 Integral Development Corporation System and method for conducting web-based financial transactions in capital markets
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6925468B1 (en) * 1999-10-29 2005-08-02 Computer Sciences Corporation Configuring systems for generating business transaction reports using processing relationships among entities of an organization
US20010051881A1 (en) * 1999-12-22 2001-12-13 Aaron G. Filler System, method and article of manufacture for managing a medical services network
US7055095B1 (en) 2000-04-14 2006-05-30 Picsel Research Limited Systems and methods for digital document processing
US6880086B2 (en) * 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
US6760043B2 (en) 2000-08-21 2004-07-06 Intellocity Usa, Inc. System and method for web based enhanced interactive television content page layout
US20020087630A1 (en) 2000-10-20 2002-07-04 Jonathan Wu Enhanced information and presence service
US7152205B2 (en) * 2000-12-18 2006-12-19 Siemens Corporate Research, Inc. System for multimedia document and file processing and format conversion
US7120868B2 (en) 2002-05-30 2006-10-10 Microsoft Corp. System and method for adaptive document layout via manifold content
GB2377518B (en) * 2001-02-12 2003-10-22 Altio Ltd Client software enabling a client to run a network based application
CA2344074A1 (en) * 2001-04-17 2002-10-17 George Wesley Bradley Method and system for cross-platform form creation and deployment
US20020161907A1 (en) * 2001-04-25 2002-10-31 Avery Moon Adaptive multi-protocol communications system
US6813633B2 (en) * 2001-06-19 2004-11-02 Foedero Technologies, Inc. Dynamic multi-level cache manager
US20030083847A1 (en) * 2001-10-31 2003-05-01 Schertz Richard L. User interface for presenting data for an intrusion protection system
US20030147369A1 (en) * 2001-12-24 2003-08-07 Singh Ram Naresh Secure wireless transfer of data between different computing devices
US7290008B2 (en) * 2002-03-05 2007-10-30 Exigen Group Method to extend a uniform resource identifier to encode resource identifiers
US20030208460A1 (en) 2002-05-06 2003-11-06 Ncr Corporation Methods, systems and data structures to generate and link reports
US7490167B2 (en) 2002-05-22 2009-02-10 Sony Corporation System and method for platform and language-independent development and delivery of page-based content
CA2391719A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Editing files of remote systems using an integrated development environment
US7111286B2 (en) * 2002-12-18 2006-09-19 Ge Medical Systems Information Technologies, Inc. Method, system and computer product for parsing binary data
US20040168119A1 (en) * 2003-02-24 2004-08-26 David Liu method and apparatus for creating a report
US7305621B2 (en) * 2003-03-27 2007-12-04 Microsoft Corporation Defining a report based on data regions and including custom data in a report definition
US20040193644A1 (en) 2003-03-31 2004-09-30 Baker William P. Exposing a report as a schematized queryable data source
US7512713B2 (en) 2003-03-31 2009-03-31 Microsoft Corporation System and method for rendering independent persistence of information by performing a time driven query on an aggregated schematized queryable report
US7669193B1 (en) * 2003-09-25 2010-02-23 Lantronix, Inc. Program transformation using flow-sensitive type constraint analysis
US20050209892A1 (en) * 2004-03-19 2005-09-22 Miller Jonathan K [Automated system and method for providing accurate, non-invasive insurance status verification]
US7099753B2 (en) * 2004-04-27 2006-08-29 The Boeing Company Automatic generation of telemetry flight software, accompanying specifications, and decode files
US7359902B2 (en) 2004-04-30 2008-04-15 Microsoft Corporation Method and apparatus for maintaining relationships between parts in a package
US7383500B2 (en) 2004-04-30 2008-06-03 Microsoft Corporation Methods and systems for building packages that contain pre-paginated documents
US20060004745A1 (en) * 2004-06-04 2006-01-05 Agfa Corporation Structured reporting report data manager
US7260580B2 (en) * 2004-06-14 2007-08-21 Sap Ag Binary XML
US20060005112A1 (en) * 2004-07-02 2006-01-05 David Lilly System and method of report layout
US7689703B2 (en) * 2004-07-09 2010-03-30 Microsoft Corporation Systems and methods of utilizing and expanding standard protocol
US20060031760A1 (en) * 2004-08-05 2006-02-09 Microsoft Corporation Adaptive document layout server/client system and process
US8769401B2 (en) * 2004-08-05 2014-07-01 Digi International Inc. Method for compressing XML documents into valid XML documents
US7634724B2 (en) 2004-08-30 2009-12-15 Microsoft Corporation Systems and methods for supporting custom graphical representations in reporting software
US7496835B1 (en) * 2004-10-31 2009-02-24 Adobe Systems Incorporated Document generation from web pages
US8141106B2 (en) * 2004-12-01 2012-03-20 Computer Associates Think, Inc. Managing elements residing on legacy systems
US7567262B1 (en) * 2005-02-25 2009-07-28 IDV Solutions LLC Hybrid graphics for interactive reporting
US20060200763A1 (en) * 2005-03-04 2006-09-07 Alexander Michaelsen Technique for exporting document content
US20070038683A1 (en) * 2005-08-04 2007-02-15 Pentaho Corporation Business intelligence system and methods
US7840600B1 (en) * 2006-12-29 2010-11-23 Izenda, LLC Systems and methods for interactively creating, customizing, and executing reports over the internet

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023714A (en) * 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
JP2000057069A (ja) * 1998-08-05 2000-02-25 Canon Inc 情報処理装置および方法およびシステム
US20040133855A1 (en) * 2002-09-27 2004-07-08 Blair Robert Bruce Providing a presentation engine adapted for use by a constrained resource client device
JP2006092392A (ja) * 2004-09-27 2006-04-06 Seiko Epson Corp データ処理装置及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7014001115; Patrick Niemeyer, Jonathan Knudsen: Learning Java, 3rd Edition , 200505, page2-7,36, O'Reilly Media *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015510651A (ja) * 2012-02-23 2015-04-09 アジャイ ジャドハブ 持続的ノードフレームワーク

Also Published As

Publication number Publication date
EP2111575A4 (en) 2017-08-09
CN101595451A (zh) 2009-12-02
US20080189602A1 (en) 2008-08-07
US8745486B2 (en) 2014-06-03
EP2111575A1 (en) 2009-10-28
CN101595451B (zh) 2013-03-13
WO2008091805A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
JP2010517174A (ja) ストリーミング可能な対話的レンダリング非依存のページレイアウト
US9654586B2 (en) Resource server providing a rapidly changing resource
CA2749683C (en) Content rendering on a computer
JP5042693B2 (ja) マークアップ言語ファイルの格納及び送信の最適化
US8397161B1 (en) Content compilation and publishing system
US9213554B2 (en) Generic chart interface
JP5789255B2 (ja) コンピュータネットワークにおける電子ドキュメントのレンディションをデプロイするサーバ前処理の利用する方法
US9026608B1 (en) Methods and systems for application programming interface mashups
US20090187830A1 (en) Systems and methods for webpage creation and updating
EP2381649A1 (en) Method and system for extending the capabilities of embedded devices through network clients
EP1624383A2 (en) Adaptive system and process for client/server based document layout
US8135776B2 (en) System and method for scalable architecture for web-based collaborative annotation of page-based documents
US9330077B2 (en) Dynamic image generation for customizable user interfaces
CN103942309A (zh) 一种网络数据获取设备、方法及获取过程的实现方法
CN104391868A (zh) 动态页面静态化的装置和方法
US20130155463A1 (en) Method for selecting user desirable content from web pages
CN103973812A (zh) 基于http协议中统一资源定位符的服务接口提供方法及系统
US20080052412A1 (en) Distributed portel system, content page creation server and recording medium
JP2011523736A (ja) データビューア管理
US10719573B2 (en) Systems and methods for retrieving web data
US20040181529A1 (en) Method, system, and program for enabling access to device information
JP2007233698A (ja) ウェブ表示端末および注釈処理モジュール
JP2007233695A (ja) 注釈管理装置、ウェブ表示端末、注釈管理方法およびウェブ表示方法
KR20090087502A (ko) 데이터에 대한 rss
JP4879612B2 (ja) 注釈管理装置、ウェブ表示端末、注釈管理方法およびウェブ表示方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130115

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130815

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140403