可流化交互式的呈现无关的页面布局的制作方法

文档序号:6476328阅读:155来源:国知局
专利名称:可流化交互式的呈现无关的页面布局的制作方法
专利说明可流化交互式的呈现无关的页面布局 背景 取决于所使用的工具和设备,信息消费者请求根据不同的技术来呈现动态生成的信息是常见的。这些技术有直接绘制到计算机屏幕上;打印;HTML指令;PDF格式;Word格式等等。虽然一些现有系统(特别是报告系统)可以对多个呈现目标执行单次的核心数据计算,但是没有系统能够处理跨各格式来执行和共享布局/分页计算的问题。例如,每种输出格式当前需要分开的呈现器,其对计算所得的数据进行布局和分页并生成如现有技术附图8中所示的所需格式。
参考图8,示出了现有技术呈现系统800,在830处处理数据810和报告定义信息820,以便为该示例840处的五种不同的呈现器生成五种不同的呈现格式(例如HTML、RGDI、图像、Excel、PDF)。来自呈现器840的输出被发送到各种显示控件850以供后续显示。系统800呈现了现有技术呈现体系结构的简化视图。当850处的客户机应用程序请求目标格式的报告的一个或多个页面时,报告处理模块830基于包含在报告定义820中的指令来处理数据810。取决于在850处客户机应用程序所请求的呈现模块,所得的经处理的报告数据在840处被提供给多个呈现模块之一HTML、RGDI(远程绘图指令流)、图像、Excel、PDF等。
每个呈现器840使用其自己的分页和布局逻辑来生成目标输出格式。所得的文件或流随后被传递给850处的客户机应用程序。在Web表单控件的情况下,HTML被嵌入到在web浏览器中向用户显示的、所生成的网页中。在Windows表单控件的情况下,RGDI流被解释为直接将页面绘制在用户的屏幕上的绘图指令。在打印控件的情况下,图像文件包含报告的所有请求的页面并且被传递到打印机。在其它情况下,输出文件被简单地下载到客户机机器。
系统800所示的当前方法有许多不合需要的限制。一方面,系统800缺少跨各个输出显示格式的布局/分页一致性。由于每个呈现器实现其自己的布局/分页逻辑,因此该逻辑中的不一致性不可避免地产生,导致取决于所选的输出类型而细微(或有时显著)不同的布局/分页。系统800的另一缺点是由于为每种请求的格式冗余地重复计算布局/分页,因此存在不必要的计算负载。除负载问题之外,在各应用程序之间还存在冗余的握手和为充分地支持各种格式而传递的控件。
概述 以下呈现了简化概述,以提供对本发明的某些方面的基本理解。该概述不是本发明的详尽的概观,也不旨在标识本发明的关键/重要的元素,或描绘此处所描述的各方面的范围。其唯一目的是以简化形式呈现某些概念,作为之后呈现的更详细描述的序言。
提供了呈现体系结构以便根据通用协议来处理各种显示格式,以减轻处理负载并简化系统之间的通信。布局组件确定计算机处所需的显示输出的布局和分页规则。接着根据可以经由一个或多个显示控件来远程地处理的通用协议来格式化规则。例如,该通用协议可以由采用该协议以便接着输出HTML代码的Web显示控件来呈现。对于打印机控件,该通用协议可以被发送到打印机应用程序以供相应的显示。通过确定一组显示规则并接着根据该通用协议传输这些规则,减轻了显示生成一侧的并行处理,因为可以减少先前系统中每种类型的协议的并行处理来计算该通用协议。可以发送单个指令集(或减少的集)来改善系统之间(例如生成显示数据的服务器和呈现该数据的客户机之间)的网络通信,而非如同在先前的系统中发送每一显示格式的每一类型的协议指令。
呈现体系结构和通用协议提供超过基本上为每一类型的显示协议采用并行处理组件的先前系统的许多好处。例如,如果支持七种不同协议,则在服务器端使用七种不同的呈现生成器,并在客户机端采用七种不同的显示控件。由此,存在着呈现体系结构和通用协议所实现的超过这种并行结构体系的若干优点。一方面,该体系结构允许计算分布在服务器和客户机(或其它配置)之间。通过将先前的呈现任务划分成至少两个不同的子任务(例如布局/分页和目标输出生成),则这两个模块可以在客户机-服务器体系结构中使用,其中客户机执行最终目标输出生成。先前,为使输出生成发生在客户机上,布局和分页将必须发生在客户机上。这会使得必须一次性把整个数据集传递给客户机,从而消除了分页的性能和伸缩优势。
该呈现体系结构的另一特征是允许富客户机中的编辑能力。现有技术方法将专用目标格式传递给客户机应用程序。例如,HTML被发送给基于Web的应用程序,而图像绘制指令(例如远程GDI[RGDI]或EMF)可以被发送给基于Windows的应用程序。这些格式不包含允许客户机将所呈现的对象映射回用于生成输出的原始定义的足够的元数据。由此,由通用协议所提供的呈现无关的格式可以包括这种附加元数据。
另一个特征提供了独立地可持续的呈现无关的页面。通过将布局/分页模块的输出作为流来展示,每一页面(或页面组)成为独立地可持续的对象,该独立地可持续的对象可以被保存、共享、用电子邮件发送以及以其它方式作为文档来管理而无需失去后续用任何所需输出格式来呈现它的能力。另一特征包括允许基于客户机侧性能的更为健壮的呈现。在客户机上处理输出生成的情况下,客户机侧的应用程序可以解决客户机环境中的不能由全服务器侧呈现来处理的各个变化,这。例如,如果在客户机机器上没有所需字体的情况下,输出生成模块可以对输出作出微小的调整以考虑替换字体的字体规格的变化。
为了完成上述和相关目标,此处结合以下描述和附图描述了某些说明性方面。这些方面指示了可以实践的各种方式,所有这些方式旨在包括于此。结合附图考虑以下详细描述,其它优点和新颖性特征会变得显而易见。
附图简述

图1是示出计算机化的显示系统的示意性框图。
图2是示出图形显示系统的示例性客户机/服务器体系结构的示意性框图。
图3是示出用于驱动图形显示系统的过程的流程图。
图4-7示出远程页面布局流格式或协议的示例部分或片断。
图8示出现有技术呈现系统的示例。
图9是示出合适的操作环境的示意性框图。
图10是示例计算环境的示意性框图。
详细描述 提供了根据常见或通用呈现协议和格式在远程位置处显示数据的计算机化系统。一方面,提供了计算机输出显示系统。该系统包括用于确定适用于显示输出控件的子集的一个或多个呈现规则的布局组件。格式组件经由显示输出控件的子集所采用的通用协议来传递呈现规则以呈现显示。
如在本申请中所使用的,术语“组件”、“协议”、“布局”、“流”等意在指计算机相关实体,它们是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行代码、执行线程、程序、和/或计算机。作为说明,在服务器上运行的应用程序和服务器可以是组件。一个或多个组件可以驻留在进程和/或执行线程内,且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。同样,这些组件可以从其上存储各种数据结构的各种计算机可读介质执行。组件可以经由本地和/或远程进程诸如根据具有一个或多个数据分组的信号(例如来自经由信号与本地系统、分布式系统中另一组件交互和/或通过诸如因特网等网络与其它系统交互的一个组件的数据)通信。
最初参考图1,示出了便于数据的呈现的计算机化的显示系统100。系统100包括处理报告数据120并确定被用来为显示器或其它输出设备130(例如打印机、LCD显示器、CRT)格式化数据的一个或多个规则的布局组件110。例如,这些规则可以指定用于显示的分页选项或在以下详细描述的其它布局考虑。可作为布局组件110的一部分的格式组件140生成远程机器160用来驱动输出设备130的通用协议150。在一个示例中,布局组件110和格式组件140可以是将通用协议150发送到担当客户机机器的远程机器160的服务器侧体系结构的一部分。
如所示的,远程机器160包括驱动输出设备130的一个或多个输出控件。例如,一个输出控件可被用来经由通用协议150在输出设备130处以第一输出格式(例如HTML)呈现数据,而另一输出控件将使用该通用协议来输出不同的输出格式(例如打印机协议)。在进行之前,请注意,布局组件110能以超过如图所示的一个组件来在功能上提供。
系统100提供超过如图8所述的先前呈现系统的若干个体系结构方面、功能方面和性能/伸缩方面。对于体系结构,系统100提供了与目标输出生成分开的布局/分页,其中格式组件140的输出150与目标呈现格式无关。这提供了体系结构无关的模型,由此可经由对象模型或流来使用格式组件140的输出,从而允许存储器内体系结构和客户机-服务器体系结构。此外,在对象模块的完全填充过于存储器密集的情况下,可以将对象模型放置在流的顶部并增量式地填充。如果需要,这可以折衷某些性能以允许更大的可伸缩性。该体系结构还便于可任选的带外资源。例如,在客户机-服务器流情况下,大资源(例如图像)可以通过流中的元数据来引用并在高效的带外调用中从服务器检索。
参考系统100的功能,可以增强最终用户的交互性。例如,可用的预定义最终用户动作(例如排序或向下钻取)的元数据以目标无关的方式来描述。同样,由于页面的完整结构对于客户机或远程机器160可用,因此可以在客户机上实现交互性的一些先前不可用的形式(诸如非预定义视件排序)。其它功能方面包括经改进的编辑能力。由此,可选地提供将所呈现的对象链接回原始输出/布局定义的元数据,使得富客户机具有提供对定义进行运行时编辑的能力。系统100还提供可配置的分页模型,其中常见方法可用于多个分页模型。特别地,它可用于呈现具有硬物理页面限制的目标(例如PDF)以及用于呈现具有软物理页面限制的目标(例如HTML)。类似地,其可以在一次呈现所有页面(例如MHTML)或每次呈现一个页面(例如直接屏幕绘图)的情况下使用。
对于性能和伸缩增强,可以使用单遍生成来限制存储器使用并优化服务器和其它引擎上的性能。在客户机-服务器示例中,可以单遍地对数据生成页面布局流,从而严格地限制存储器使用(可能将存储器密集操作推迟给客户机)并避免对报告数据的昂贵的多遍或寻找操作。由此,在下文中更为详细地描述的流结构允许在客户机上高效地呈现。
其它性能方面包括使用流格式内的、允许客户机在存储器密集或处理密集计算之间伸缩的内部指针。这包括有关是在服务器上还是在客户机上计算最终尺寸的可配置选项。同样,由于正在增长的项目(例如具有可变长度文本的文本框或者具有可变大小图像的图像控件)的最终布局改变可以在服务器上计算或推迟给客户机计算。在进行之前,应该注意,系统100可以作为图形显示系统或体系结构的一部分来提供。这包括确定驱动远程输出设备130的图形规则(布局组件110)的装置。这还可以包括用于根据通用协议150传递图形规则的装置,其中该通用协议可以用作远程机器160所提供的一组输出控制组件的输入。
现在参考图2,系统200示出了用于数据的图形显示的示例客户机/服务器体系结构。系统200示出了示例呈现体系结构的简化视图。应该理解,多个其它配置是可能的。当客户机应用程序请求目标格式的报告的一个或多个页面时,报告处理模块210基于包括在报告定义230中的指令来处理数据220。所得的经处理的报告数据被提供给常见布局和分页模块240,布局和分页模块240基于客户机250处的输出生成模块提供给它的选项来执行布局和分页计算。例如,当Web表单控件260请求报告的单个页面时,它可以指示布局/分页模块240对于页面长度灵活并且忽略可变的文本和图像大小,因为这些可以由HTML生成器组件262来处理。在另一示例中,具有图像生成器268的打印控件266可以指示布局/分页模块240对页面长度严格并计算精确的文本和图像大小。如所示的,包括Win表单控件270的另一控件是具有GDI生成器272的另一选项。
在存在客户机控件的情况下,在276处布局/分页模块240生成所请求的页面的报告页面布局(RPL)流,RPL接着被传递给相应的客户机应用程序。应该注意,在下文中将参考图4-7更详细地描述RPL流276的结构。客户机应用程序接着将该格式无关的流276变换成目标格式(例如对于Web表单控件260而言HTML;对于Win表单控件270而言直接屏幕绘图指令;对于打印控件266而言图像文件)。在没有客户机控件的情况下,布局/分页模块240经由对象模型(280处的RPL OM)而非流来展示报告页面布局。根据该对象模型,所选的呈现器(例如Excel生成器282、PDF生成器284)将RPL转换成随后被下载到客户机机器的目标输出格式。
除了对页面的视件布局和内容的描述之外,各种形式的元数据可以被嵌入到RPL流276或RPL OM 280中。这包括描述可用的最终用户动作(例如排序和向下钻取)的元数据、用于从服务器检索图像的指令(而非将它们嵌入在流中)、将所显示的对象映射回报告定义的定义信息(使得客户机控件能够提供运行时编辑能力)、以及最初没有显示但可基于客户机侧的动作变得可见的对象(从而允许客户机侧向下钻取等方面)。
可以对数据以从头至尾的单遍方式生成RPL流276,从而保留页面上的对象的分层结构。这种方法虽然在服务器上是存储器高效的,但是会导致不能由客户机输出生成模块用单遍向前的方式来(一般地)解释的RPL结构。为了便于高效的客户机侧计算,RPL 276在流内还包括多个偏移/指针,以便允许客户机在流内“寻找”所需信息的能力。以下将参考图4-7更详细地描述RPL流格式。
图3示出了用于驱动图形显示系统的示例性过程300。虽然为了简化解释的目的程序被示为和描述为一系列或多个动作,但是应该理解和明白,本发明的过程不受动作次序的限制,因为根据本发明的过程的某些动作能以与此处所示和所描述的不同的次序和/或与其它动作同时发生。例如,本领域技术人员会理解和明白,方法可替换地表示为一系列相关的状态或事件,诸如在状态图中。此外,并非所有所示的动作都是实现根据此处所描述的本发明的过程的方法所必需的。
前进到图3的304,生成报告定义。在310处,生成对布局的请求。例如如,可以从请求在例如计算机输出设备处显示数据的客户机侧应用程序生成请求。在320处,执行报告处理。这可以包括例如处理行和列的查询以便以可视形式(例如以表格形式)来组织。在330处,将布局和分页规则应用于在320处处理的数据。这可以包括确定如何组织和查看页面,诸如确定字体大小、分页符、颜色、每页的行数等等。在340处,从在330处确定的布局和分页规则生成目标无关的格式。这种独立格式指定了在不采用目标专用协议的情况下如何显示页面。例如,可以根据以下相对于诸如HTML和其它格式等目标专用协议描述的报告页面布局流来概括地指定页面视图。在350处,根据目标无关的协议所指定的指令来呈现显示。提供了一个和多个输出控件和其它应用程序以根据目标无关的协议所提供的指令来呈现。
图4-7示出了来自与此处描述的所要求保护的方面相关联的可能的数据流格式的示例部分或片断。应该理解,实际的流可以包括比所示的更多和更少的示例数据结构,并且其它流结构和组合是可能的。转向图4,示出了示例报告页面布局(RPL)流400。RPL流400包括报告RPL流结构410和报告RPL流结构语义420。应该注意,以下流和协议示例本质上是说明性的,并不旨在用作可能的格式化变量和其它类型数据的全面列表。类似地,可以生成比所示示例少的流。
对于RPL流400,这可以作为包含描述页面的报告元数据的二进制流来提供。流400保存了报告分层结构,其中项目的左侧和顶部特性与父相关。报告项目度量被保存在父级别,其中它们的数据类型是“单精度型”并且用毫米表示值。流400可以具有允许读者从父跳转到子并且读取呈现运行时大小而无需读取所有属性的基于内建偏移的分层结构。可以将偏移存储在64位上。为了优化空间,某些结构可以在报告项目之间共享,这样它们将被只写一次;例如恒定的样式,嵌入多次的图像;恒定的报告项目属性等等。除非另外指定,否则数字值可以是Int32。日期时间值可以象长值一样写入,而布尔值可以被定义为假是0,真是1。一般地,RPL流400至少用于三个目的 1)它控制非常大的报告的存储器消耗。
2)它从呈现器解耦合分页,使得可以在服务器/客户机的基础上执行呈现任务。
3)它允许客户机编辑。
RPL格式的语义包括(A)=结构A是可任选的,其中{A|B}=应该仅呈现元素之一。下表示出了示例报告RPL流结构410 以下示出了示例RPL流结构语义420 public calss RPLFormat { //Report=ReportStart ReportProperties(PageContent)OffsetsArrayElement ReportElementEnd //OffsetsArrayElement=OffsetsArrayElementStart偏移计数offset[count] //到ReportElementToken的偏移 //count=页数 //到PageContent ReportElementEnd令牌的偏移 //PageContent=PageContentStart ColumnsElement Page Measurements ReportElementEnd //Measurements=对于ColumnsElement,PageHeader,PageFooter //ColumnsElement=Columns(BodyElement)Measurements ReportElementEnd //BodyElement=Body(ElementProps)(Reportltems Measurements) ReportElementEnd //Measurements=对于Body,PageHeader,PageFooter //Page=PageStart PageProperties(PageHeaderElement)(PageFooterElement) Delimiter //PageHeaderElement=PageHeader(ElementProps)(Reportltems Measurements) ReportElementEnd //PageFooterElement=PageFooter(ElementProps)(Reportltems Measurements) ReportElementEnd //ReportProperties=ReportPropertiesStart(ItemProps)Delimiter //PageProperties=PagePropertiesStart(ItemProps)Delimiter //Reportltems=ReportltemsToken ElementProps({Reportltems Measurements (Reportltems TablixBodyRow)TablixStructure})ReportElementEnd //ElementProps=ElementPropsStart{UseShared offset|Shared ItemProps Delimiter}(NotShared ItemProps Delimiter)Delimiter //到ElementPropsStart的偏移点 //Measurements=MeasurementsStart偏移计数Measurement[count] //到ReportElementToken的偏移 //Measurement左、顶、宽、高、z索引(zindex)、State(状态)、到 ReportElementEnd的偏移 //State=byte(StateValues) //TablixStructure=TablixStructureStart偏移TablixMeasurements Delimiter //到ReportltemsToken的偏移 //TablixBodyRow=TablixBodyRowStart rowIndex(TablixBodyCell)Delimiter //单元格的int32类型的行索引 //用于矩阵表正文行的矩阵表单元格列表 //ReportElementEnd=ElementEnd偏移Delimiter //标记报告元素的结尾,之后是到以下各项的偏移 //Measurements,对于非矩阵表容器 //ReportElementToken,对于非容器 //TablixStructureStart,对于矩阵表 //OffsetsArrayElementStart,具有到ReportElementEnd的偏移数组 } 现在参考图5,示出了示例RPL流部分500和510。RPL流500包括项目属性RPL流结构520和项目属性流结构语义530。下表是项目属性RPL流结构520的示例 以下是项目属性流结构语义530的示例 public class ItemProps { //Style=StyleStart { ({UseShared offset|Shared StyleProps Delimiter})NotShared StyleProps Delimiter {UseShared offset|Shared StyleProps Delimiter}(NotShared StyleProps Delimiter) } //到StyleStart的偏移点 //Actionlnfo=ActionlnfoStart ActionlnfoProps Delimiter//ActionlmageMapAreas =ActionlmageMapAreasStart计数Actionlnfo[count] //ChartData=ChartDataStart计数bytes[count] //Image=ImageStart{UseShared offset|Shared ImageProps Delimiter| NotShared ImageProps Delimiter}//到ImageStart的偏移点 //chart(C_UniqueName_PageNumber)的流名称 } 对于图5的RPL流510,下表是图像属性RPL流结构540的示例 以下是图像属性RPL流结构语义550的示例 public class ImageProps { //ImageData=ImageDataStart计数bytes[count] //对于五个属性(Width、Height、HorizontalResolution、VerticalResolution、 ImageFormat),或者呈现全部或者一个都不呈现 } 转向图6,示出了示例RPL流部分600和610。RPL流600包括动作信息属性RPL流结构620和动作信息属性流结构语义630。下表是动作信息属性RPL流结构620的示例 下表是动作信息属性RPL流结构语义630的示例 public class ActionlnfoProps //ActionlnfoStyle=ActionlnfoStyleStart { ({UseShared offset|Shared StyleProps Delimiter})NotShared StyleProps Delimiter {UseShared offset|Shared StyleProps Delimiter}(NotShared StyleProps Delimiter) }//Actions=ActionsStart计数Action[count] //Action=ActionStart(Label)(ActionStyle)({Hyperlink|BookmarkLink Drillthroughld DrillthroughUrl(BookmarkLink)})Delimiter //ActionStyle=ActionStyleStart{({UseShared offset|Shared StyleProps Delimiter})NotSharedStyleProps Delimiter{UseShared offset|Shared StyleProps Delimiter}(NotShared StyleProps Delimiter)} //到ActionStyleStart的偏移点 //ImageMapAreas=ImageMapAreasStart计数ImageMapArea[count] /ImageMapArea=ShapeType Coordinates ID //ShapeType=byte //Coordinates=计数float[count] //ID=string } 对于图6的RPL流610,下表是样式属性RPL流结构640的示例 参考图7,示出了示例RPL流部分700和710。RPL流700包括矩阵表度量RPL流结构720和矩阵表度量RPL流结构语义730。下表是矩阵表度量RPL流结构720的示例 以下是矩阵表度量RPL流结构语义730的示例 public class TablixMeasurements { //Columns Widths=Columns WidthsStart计数(single,byte)[count](宽度,固定列)对 //Width=single //RowHeights=RowHeightsStart计数(single,byte)[count] //(高度,(固定行,共享/使用共享的布局行))对 //Height=single //TablixRow=TablixRowStart TablixRowContents //TablixRowContents=({TablixCorner|TablixColumnHeader TablixRowHeader |TablixBodyRowCells})Delimiter //TablixBodyRowCells=TablixBodyRowCellsStart偏移 //偏移TablixBodyRowStart //TablixCorner=TablixCornerStart(TablixCellProps)Delimiter //TablixColumnHeader=TablixColumnHeaderStart(TablixCellProps)Delimiter //TablixRowHeader=TablixRowHeaderStart(TablixCellProps)Delimiter //TablixBodyCell=TablixBodyCellStart(TablixCellProps)Delimiter /TablixRowMembersDef=TablixRowMemberDefStart计数 (TablixMemberDef)[count] //TablixColMembersDef=TablixColMembersDefStart计数 (TablixMemberDef)[count] //TablixMemberDef=TablixMemberDefStart(TablixMemberDefProps) Delimiter } 参考图7的RPL流710,下表是矩阵表单元格属性RPL流结构740的示例 以下是矩阵表单元格属性RPL流结构语义750的示例 public class TablixCellProps { //Cellltem=CellltemOffset到ReportltemEnd的偏移 //StateValues(HasToggle,ToggleCollapse) } 为了提供所公开的主题的各个方面的上下文,图9和10以及以下讨论旨在提供对可在其中实现所公开的主题的各方面的合适环境的简要、概括描述。尽管,以上在运行在一台和/或多台计算机上的计算机程序的计算机可执行指令的一般上下文中描述了本主题,但本领域的技术人员可以认识到,本发明还可以结合其它程序模块来实现。一般而言,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件、数据结构等。而且,本领域的技术人员可以理解,本发明方法可以使用其它计算机系统配置来实现,包括单处理器或多处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器的或可编程消费产品或工业电子产品等。所示方面也可以在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。然而,本发明的某些方面(即使不是全部方面)可在独立的计算机上实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
参考图9,用于实现此处所描述的各方面的示例性环境910包括计算机912。计算机912包括处理单元914、系统存储器916和系统总线918。系统总线918将包括但不限于系统存储器916的系统组件耦合至处理单元914。处理单元914可以是各种可用的处理器的任一种。双微处理器和其它多处理器架构也可用作处理单元914。
系统总线918可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用任意各种可用总线体系结构的局部总线,这些总线体系结构包括但不限于11位总线、工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展ISA(EISA)、智能电子驱动器(IDE)、VESA局部总线(VLB)、外围部件互连(PCI),通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)以及小型计算机系统接口(SCSI)。
系统存储器916包括易失性存储器920和非易失性存储器922。基本输入/输出系统(BIOS)包括如在启动时帮助在计算机912内的元件之间传输信息的基本例程,其通常储存在非易失性存储器922中。作为说明而非局限,非易失性存储器922可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器920包括担当外部高速缓冲存储器的随机存取存储器(RAM)。作为说明而非局限,RAM以许多形式可用,如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDR SDRAM)、增强SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)和直接存储器总线(Rambus)RAM(DRRAM)。
计算机912还包括可移动/不可移动、易失性/非易失性计算机存储介质。例如,图9示出了盘存储924。盘存储924包括但不限于,诸如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、LS-100驱动器、闪存卡或记忆棒等设备。另外,盘存储924可与其它存储介质分开或组合的存储介质,包括但不限于,诸如紧致盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等光盘驱动器。为便于将盘存储设备924连接到系统总线918,通常使用可移动或不可移动接口,如接口926。
可以理解,图9描述了担当用户和合适的操作环境910中所描述的基本计算机资源之间的中介的软件。这类软件包括操作系统928。操作系统928可储存在盘存储924上,它用于控制并分配计算机系统912的资源。系统应用程序930通过存储在系统存储器916或盘存储924上的程序模块932和程序数据934来利用操作系统928对资源的管理。可以理解,此处所描述的各种组件可用各种操作系统或操作系统的组合来实现。
用户通过输入设备936向计算机912输入命令或信息。输入设备936包括但不限于,诸如鼠标、跟踪球、指示笔、触摸垫等定点设备,键盘,话筒,操纵杆,游戏垫,圆盘式卫星天线,扫描仪,TV调谐器卡,数码相机,数码摄像机,web摄像头等等。这些和其它输入设备经由接口端口938通过系统总线918连接到处理单元914。接口端口938包括,例如,串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备940使用与输入设备936相同类型端口中的某一些。由此,例如,USB端口可用于向计算机912提供输入,并从计算机912输出信息到输出设备940。提供了输出适配器942以说明存在某些输出设备940,如监视器、扬声器和打印机,以及需要专用适配器的其它输出设备940。输出适配器942包括,作为说明而非局限,提供输出设备940和系统总线918之间的连接装置的视频卡和声卡。应当注意,其它设备和/或设备的系统提供了输入和输出能力,如远程计算机944。
计算机912可以使用到一个或多个远程计算机,如远程计算机944的逻辑连接在网络化环境中操作。远程计算机944可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的电器、对等设备或其它常见的网络节点等等,并通常包括相对于计算机912所描述的许多或所有元件。为简明起见,仅对远程计算机944示出了存储器存储设备946。远程计算机944通过网络接口948逻辑上连接至计算机912,然后通过通信连接950物理地连接。网络接口948包含诸如局域网(LAN)和广域网(WAN)等通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜缆分布式数据接口(CDDI)、以太网/IEEE 802.3、令牌环/IEEE 802.5等等。WAN技术包括但不限于,点对点链路、诸如综合业务数字网(ISDN)及其变体等电路交换网络、分组交换网络以及数字用户线(DSL)。
通信连接950指用于将网络接口948连接到总线918的硬件/软件。尽管为说明的清晰起见,通信连接950被示为在计算机912内部,然而它也可以在计算机912外部。仅出于示例性的目的,连接到网络接口948所必需的硬件/软件包括内部和外部技术,如包括常规电话级调制解调器、线缆调制解调器和DSL调制解调器的调制解调器、ISDN适配器和以太网卡。
图10是可采用的示例计算环境1000的示意框图。系统1000包括一个或多个客户机1010。客户机1010可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1000还包括一个或多个服务器1030。服务器1030也可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,服务器1030可容纳通过使用此处所描述的组件来执行变换的线程。客户机1010和服务器1030之间的一个可能的通信可以是适于在两个或多个计算机进程之间传输的数据分组的形式。系统1000包括可用于促进客户机1010和服务器1030之间的通信的通信框架1050。客户机1010操作上连接至可用于储存对客户机1010本地的信息的一个或多个客户机数据存储1060。类似地,服务器1030操作上连接至可用于储存对服务器1030本地的信息的一个或多个服务器数据存储1040。
上文所描述的包括各个示例性方面。当然,不可能为了描述这些方面而描述组件或方法的每一可想象的组合,但是本领域普通技术人员可以认识到,许多另外的组合和置换是可能的。因此,此处所描述的方面旨在包含落入所附权利要求书的精神和范围中的所有这样的更变、修改和变化。此外,就在说明书和权利要求书中使用术语“包括”的范围而言,这类术语旨在以与术语“包含”用作权利要求书中的过渡词语所解释的类似的方式为包含性的。
权利要求
1.一种计算机输出显示系统,包括
确定适用于显示输出控件的集合的一个或多个布局或分页规则的布局组件;以及
传递作为将所述布局或分页规则应用于所述显示输出控件的子集的结果的数据的格式组件,所述数据与呈现显示的通用协议相关联。
2.如权利要求1所述的系统,其特征在于,所述布局组件生成支持存储器内配置或客户机/服务器配置的流或对象模型。
3.如权利要求2所述的系统,其特征在于,所述对象模型被放置在所述流的顶部并被增量式地填充。
4.如权利要求2所述的系统,其特征在于,所述客户机服务器配置经由所述流中的元数据引用资源。
5.如权利要求1所述的系统,其特征在于,还包括描述最终用户动作的元数据。
6.如权利要求5所述的系统,其特征在于,还包括用于支持非预定义视件排序操作的组件。
7.如权利要求1所述的系统,其特征在于,还包括将所呈现的对象链接到原始数据定义的元数据。
8.如权利要求1所述的系统,其特征在于,还包括便于图形呈现的可配置分页模块。
9.如权利要求8所述的系统,其特征在于,所述可配置分页模块与具有硬物理页面限制、软物理页面限制或同时呈现所有页面的呈现目标相关联。
10.如权利要求1所述的系统,其特征在于,还包括执行单遍以限制存储器使用并优化服务器性能的组件。
11.如权利要求1所述的系统,其特征在于,还包括包含一个或多个内部指针以便于在存储器密集计算或处理密集计算之间的伸缩的通用协议。
12.如权利要求1所述的系统,其特征在于,还包括确定配置在服务器上还是在客户机上执行尺寸计算的组件。
13.如权利要求1所述的系统,其特征在于,所述通用协议是报告页面布局(RPL)流或RPL对象模型。
14.如权利要求13所述的系统,其特征在于,所述RPL流包括RPL流结构和RPL流结构语义。
15.如权利要求13所述的系统,其特征在于,所述RPL流包括项目属性流、图像属性流、动作信息属性流、样式属性流、矩阵表度量流或矩阵表单元格属性流。
16.一种用于呈现图形数据的方法,包括
生成报告定义;
检索数据;
根据来自所述报告定义的指令来将布局和分页规则应用于所述数据;以及
生成目标无关的格式以呈现显示。
17.如权利要求16所述的方法,其特征在于,还包括生成呈现至少一个页面的远程请求。
18.如权利要求17所述的方法,其特征在于,还包括响应于所述远程请求生成流或对象模型。
19.如权利要求18所述的方法,其特征在于,生成所述流或所述对象模型的元数据。
20.一种图形显示系统,包括
用于确定驱动远程输出设备的图形规则的装置;以及
用于根据通用协议传递所述图形规则的装置,其中所述通用协议可用作对输出控制组件集合的输入。
全文摘要
提供了计算机输出显示系统。该系统包括确定适用于显示输出控件的子集的一个或多个呈现规则的布局组件。格式组件经由显示输出控件的子集用来呈现显示的通用协议来传递呈现规则。
文档编号G06F3/14GK101595451SQ200880003194
公开日2009年12月2日 申请日期2008年1月18日 优先权日2007年1月25日
发明者N·克里斯塔切, D·R·史密斯, C·A·海斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1