基于使用模式改进信息系统性能的方法和系统的制作方法

文档序号:6339137阅读:113来源:国知局
专利名称:基于使用模式改进信息系统性能的方法和系统的制作方法
技术领域
本公开一般涉及从计算机系统检索数据,具体涉及检索的优化。
背景技术
通常情况下,使包含数据提供器的信息系统具有用户接口或访问点以便检索数 据。数据提供器可以是例如数据库、另一信息系统等等。用户可以利用关联到由数据提供 器定义的结构模型所代表的实体的查询来进入该信息系统。信息系统从数据提供器检索数 据并且将数据提供给用户。查询可以采用查询语言,比如,结构化查询语言(SQL)、对象查 询语言(OQL)、XQuery、公共查询语言(CQL)、表述性状态转移(REST)或简单对象访问协议 (SOAP)等等。在一些情况中,用户可以查询与数据提供器中存储的实体相关联的数据的一部 分。实体的多个域(field)可能不是用户的兴趣所在。

发明内容
根据本发明的一个方面,提供一种计算机化的环境中的方法,该环境包括具有与 实体相关联的结构模型的数据提供器,所述方法包括获取所述结构模型的使用信息,该使 用信息与用户相关联;检测用户的检索请求,该检索请求与所述结构模型相关联;响应于 检测到所述检测请求,从所述数据提供器检索数据,该检索数据包括基于使用信息确定个 性化结构模型,该个性化结构模型与所述实体相关联;基于所述个性化结构模型从所述数 据提供器获取数据;以及将数据提供给由用户使用的客户端层。根据本发明的一个方面,提供一种与数据提供器相关联的计算机化的优化系统, 所述数据提供器具有与实体相关联的结构模型,所述计算机化的优化系统包括使用获取 器,其被配置为获取所述结构模型的使用信息,该使用信息与用户相关联;个性化结构模型 确定器,其被配置为基于由所述使用获取器获取的使用信息来确定与所述实体相关联的个 性化结构模型;检索请求检测模块,其被配置为检测用户的检索请求,该检索请求与所述实 体相关联;以及数据获取器,其被配置为获取与所述检索请求相关联的数据,所述数据获取 器被配置为基于所述个性化结构模型来从所述数据提供器获取数据。


从下面结合附图的详细描述中,将更充分地理解和领会本公开,在附图中,相应或 相同的数字或字符指示相应或相同的组件。除非另作说明,否则附图提供本公开的示例性 实施例或方面并且不限制本公开的范围。图1根据所公开的主题的一些示例性实施例示出使用该主题的计算机化的环境;图2根据所公开的主题的一些示例性实施例示出结构模型的框图;图3根据所公开的主题的一些示例性实施例示出计算机化的优化系统的框图;图4根据所公开的主题的一些示例性实施例示出方法的流程图。
具体实施例方式存在这样的需要使用户能够基于个性化结构模型而不是数据提供器的结构模型 来执行查询和检索数据。数据提供器的结构模型一般不受信息系统的控制。数据提供器可 能具有不灵活的框架,其不适合信息系统以及特定用户的需要。因此,从数据提供器检索数 据,将其存储在信息系统存储器中并且将其提供给用户的直接方法可能效率很低。对不适合的结构模型的检索可能消耗计算资源,比如存储器、CPU、网络带宽、系统 调用等等。可能没有针对实际使用而对所述资源消耗进行优化,结果,所述资源消耗可能增 加计算机系统上的负载,可能需要不必要的资源、可能耗费较长的时段,并且可能引起性能 问题。现在参考图1,图1根据所公开的主题的一些示例性实施例示出使用该主题的计 算机化的环境。计算机化的环境100可以包括数据提供器110、计算机化的优化系统120、 表单(form)数据库140、客户端层150和用户130。数据提供器110可以是企业资源规划(ERP)系统,办公自动化系统、企业系统或包 括与实体相关联的结构模型的任何其它信息系统。在一些示例性实施例中,可以存在多个 诸如110的数据提供器。计算机化的优化系统120可以是作为信息系统的一部分的计算机 化的系统,该信息系统被配置为与数据提供器110和用户130交互。用户130可以是商业 组织中的工作者或管理者、外部的服务消费者等等。用户130可以是数据提供器110中存 储的数据的消费者。在一些示例性实施例中,多个用户可以经由计算机化的系统、经由其它 通道或者直接访问数据提供器。多个用户可以包括例如用户131和132。在一些示例性实施例中,计算机化的优化系统120可以是数据提供器110的构成 组件,共同形成信息系统。例如,可以销售包括内置在数据提供器110中的计算机化的优化 系统120的信息系统。用户130可以访问计算机化的优化系统120,以从数据提供器110检索结构模型所 包含的数据。用户130可以通过使用客户端层150来访问计算机化的优化系统120。计算 机化的优化系统120可以基于个性化的结构模型从数据提供器110为用户130检索数据。 个性化的结构模型可以根据与用户130相关联的使用信息来确定。个性化的结构模型可以 被组织成使得可以执行相对更高效的数据检索。例如,可以通过单一查询获得的若干结构 对象可以被编组在一起并且通过单一检索请求而不是多个请求来检索。作为另一个示例, 个性化的结构对象可以是扁平(flat)结构模型。作为再一个示例,可以对结构模型的结构 对象的检索顺序进行修改,以使得能够更快速地检索与预定结构对象的相关联的数据,所 述预定结构对象比如用户130经常感兴趣的结构对象。使用信息可以在用户130先前使用期间被计算机化的优化系统120获得,使用信 息可以通过另一设备或用户提供给计算机化的优化系统120,或者使用信息以其它方式可 供计算机化的优化系统120使用。从数据提供器110检索数据可以是本地检索或者远程检索。本地检索可以通过使 用例如SQL来执行。远程检索可以通过使用Web (网页)服务、REST、远程函数调用(RFC)、 远程过程调用(RPC)等来执行。从数据提供器110检索的数据可以被客户端层150呈现给用户130或被客户端层150以其它方式提供给用户130。计算机化的优化系统120和客户端层150之间的连接可 以通过诸如REST或SOAP的协议来实现。计算机化的优化系统120可以响应于用户130的 使用、在用户130的每次使用时、在每个预定时段、以预定的次数、响应于预定动作等等来 更新个性化的结构模型。表单(form)数据库140可以包括当使用客户端层150时由用户130使用的有关 表单的数据。表单数据库140可以包括例如结构对象,所述结构对象在客户端层150中通 过表单显示或者通过表单以其它方式呈现。表单数据库140可以包括关于关联的表单的信 息,所述关联的表单比如为列出相似实体的对象的列表表单(list form)、以及详细列出关 于在列表表单中选择的对象的附加信息的细节表单(details form)。计算机化的优化系统 120可以使用表单数据库140以便确定使用信息。例如,用户130可能正在使用第一表单, 因此可以被视为对结构模型的第一部分感兴趣。另一方面,用户131可能正在使用第二表 单,因此可以被视为对结构模型的第二部分感兴趣。通过被告知关于用户130使用的各种 表单的信息,可以获得使用信息。现在参考图2,图2根据该主题的一些示例性实施例示出结构模型的框图。结构模 型200可以包括结构对象,比如子结构、第二层子结构、第三层子结构等等。图2中给出的 结构模型200与“联系人”实体相关联。结构模型200可以包括结构对象,比如命名为“私 人地址”的211,命名为“人名”的212、命名为“联系人注释”的214、命名为“部门名称”的 216等等。子结构可以包括第二层子结构。例如,子结构212可以包括第二层子结构,比如, 命名为“昵称”的226、命名为“中间名”的222、命名为“姓”的223等等。结构模型200代 表可以存储在诸如图1的数据提供器110中的数据。用户,比如图1的130,可以查询关联 到实体的数据的部分,比如,结构对象211、212、235(命名为“楼层ID”)、236 (命名为“房间 ID”)等等中的数据。要注意的是,在一些示例性实施例中,结构模型200可以包括两个或 更多个包含相同信息的结构对象。例如,结构对象216和233可以包含相同的数据——联 系人的部门名称。由于该数据对于结构对象216和233 二者是相同的,所以从单一结构对 象,比如216,检索数据可能足够了。要注意的是,结构模型的结构通常被称为结构对象。现在参考图3,图3根据该主题的一些示例性实施例示出计算机化的优化系统的 框图。计算机化的优化系统320,比如图1的120,可以包括使用获取器310、个性化结构模 型确定器330、检索请求检测模块340和数据获取器350。使用获取器310可以被配置为获取用户(比如图1的130)的使用信息。使用信 息可以与结构模型(比如图2的结构模型200)相关联。在一个示例性实施例中,使用获取 器可以从用户接收使用信息,比如使用键盘或其它I/O设备(未示出)。在另一示例性实施 例中,使用获取器310可以包括使用监视器312,使用监视器312被配置为监视用户的使用 以便获取使用信息。在再一个实施例中,使用信息可以从文件(比如日志文件)获取。在一些示例性实施例中,个性化结构模型确定器330可以被配置为确定用户的个 性化结构模型。个性化结构模型确定器330可以使用使用获取器310,以基于使用信息确定 与用户相关联的个性化结构模型。例如,结构模型中的结构对象的部分可以从个性化结构 模型中去除。例如,很少使用的结构对象可以被去除、重复的结构对象可以被单一结构对象 取代等等。在一些示例性实施例中,个性化结构模型确定器330可以包含编组模块332。编组模块332可以被配置为确定结构对象的组,所述结构对象可以在单一检索请求中从数据 提供器(比如图1的数据提供器110)检索。要注意的是,哪些结构对象可以在单一检索请 求中检索可以由数据提供器来指示或者以其它方式确定。还要注意的是,在一些示例性实 施例中,基于使用信息,可以将一组分割为两个或更多个组,以便例如不将很少使用的结构 对象包括在第一组中。个性化结构模型确定器330可以使用编组模块332来基于组确定个 性化结构模型。例如,个性化结构模型可以被配置为包括有限数量的组中的结构对象,以便 例如减少为了检索该个性化结构模型所代表的数据而需要的检索请求的数量。基于使用信 息,预定的组相对于别的组可能是优选的。个性化结构模型确定器330可以将个性化结构 模型确定为使其包括用户经常使用以及能够通过相对较少数量的检索请求检索的结构对 象。在一些示例性实施例中,个性化结构模型确定器330可以包括结构对象排序器 334。结构对象排序器334可以被配置为确定第一结构对象和第二结构对象之间的检索顺 序。所述检索顺序基于使用信息。该顺序可能影响结构对象的检索顺序。在一个示例性实 施例中,个性化结构模型中的结构对象可以从左到右来布置,以便首先针对最左侧的结构 对象,经过所有结构对象,到最后被检索的最右侧的结构对象来检索与结构对象相关联的 数据。在示例性实施例中,结构对象排序器334基于结构对象的使用信息以降序从左到右 来布置结构对象。具有被用户使用的最高概率的结构对象被放置在左侧。具有被用户使用 的最低概率的结构对象被放置在右侧。结果,计算机化的优化系统320相对于放置在右侧 的结构对象更快地检索放置在左侧的结构对象。要注意的是,可以确定组之间、结构对象和 结构对象组之间、或者每一个都可以使用单一检索请求检索的个性化结构模型的任何两个 元素之间的顺序。结构对象排序器334可以基于单一子结构中的第二层子结构的使用信息来确定 第二层子结构之间的顺序。个性化结构模型确定器330可以使用结构对象排序器334来确 定个性化结构模型的结构对象之间的布置顺序。在一些示例性实施例中,个性化结构模型确定器330可以包括结构模型扁平化 器(f lattener) 336。结构模型扁平化器336可以被配置为确定扁平的个性化结构模型。 结构模型扁平化器336可以通过将第二层子结构变换成子结构来确定结构对象的新布 局(arrangement)。结构模型扁平化器336可以通过将结构模型修改为只包括子结构来 使结构模型扁平化。结构模型扁平化器336可以确定结构模型的部分的扁平投影(flat projection),比如,第二子层结构到子结构集合的投影。个性化结构模型确定器330可以 使用结构模型扁平化器336来确定扁平的个性化结构模型。在一些示例性实施例中,个性化结构模型确定器330可以使用编组模型332、结构 对象排序器334和结构模型扁平化器336,或者它们的组合,以便确定个性化结构模型。例 如,结构对象排序器334可以基于由编组模型332确定的结构对象的组将结构对象排序成 一种布局。结构模型扁平化器336可以使用该布局来确定扁平结构模型。在一些示例性实施例中,个性化结构模型确定器330可以省略重复的结构对象, 比如图2中的部门名称233。检索请求检测模块340可以被配置为检测用户的检索请求。检索请求可以与结构 模型所关联的实体相关联。检索请求检测模块340可以使用接口,比如应用编程接口(API)或别的I/O模块,来检测用户的检索请求。在一些示例性实施例中,用户可以通过采用预定 通信协议经由计算机化的优化系统320将检索请求发送给信息系统。检索请求检测模块 340可以实现所述通信协议。数据获取器350可以被配置为获取与检索请求相关联的数据。数据获取器350可 以被配置为基于个由性化结构模型确定器330确定的个性化结构模型来从数据提供器中 获取数据。例如,在个性化结构模型比与检索请求相关联的完整结构模型包含的结构对象 少时,数据获取器350可以只获取个性化结构模型所包含的结构对象。要注意的是,数据获 取器350可以获取检索请求并没有要求的数据,比如,与个性化结构模型相关联但并非由 检索请求所请求的数据。在一些示例性实施例中,计算机化的优化系统320还可以包含高速缓存370。计算 机化的优化系统320可以使用该高速缓存370来存储由数据获取器350所获取的但用户还 没有请求的数据。在用户稍后请求检索个性化结构模型所包含的结构对象的情况下,计算 机化的优化系统320可以提供高速缓存370中存储的结构对象,而无需从数据提供器请求 数据。在高速缓存370中存储与个性化结构模型相关联的数据,与存储与结构模型相关联 的数据相比,可以消耗较少的存储器空间。存储与个性化结构模型相关联的数据还可以减 少直到用户接收到该数据的等待时间(latency time)。由于个性化结构模型可以基于用户 的使用来确定,所以高速缓存370中存储的数据很可能是用户的兴趣所在,因此相对少量 的冗余数据可以从数据提供器被检索出来并存储在高速缓存370中。在一些示例性实施例中,计算机化的优化系统320还可以包括输出模块380。输出 模块380可以被配置为将由数据获取器350获取的数据提供给客户端层,比如图1的客户 端层150。输出模块380可以提供由检索请求检测模块340检测到的检索请求所请求的数 据。在一些示例性实施例中,计算机化的优化系统320还可以包括延迟加载器(lazy loader) 390。延迟加载器390可以被配置为延迟从数据提供器加载附加数据。该附加数据 与结构模型相关联但不与由个性化结构模型确定器330确定的个性化结构模型相关联。在 一些示例性实施例中,延迟加载器390可以被配置为响应于用户的请求检索附加数据。例 如,该请求可以是针对个性化结构模型没有包含的结构对象的检索请求。在一些示例性实 施例中,延迟加载器390可以被配置为检索用户所请求的但先前没有存储在高速缓存370 中的附加数据。在一些示例性实施例中,延迟加载器390可以被配置为在没有用户调用的 情况下获取附加数据。例如,延迟加载器390可以在数据提供器、计算机化的优化系统320 或它们的组合等正在以减弱的性能工作的情况下,比如在空闲状态期间,确定获取附加数 据。在组件空闲的情况下,获取附加数据可以不妨碍系统性能,这是因为被分配用于检索附 加数据的资源不是执行其它任务所必须的。现在参考图4,图4根据所公开的主题的一些示例性实施例示出方法的流程图。在步骤410,可以获取结构模型的使用信息。该使用信息可以由使用获取器(比如 图3中的310)来获取。在步骤415,结构对象可以被编组成一个或更多个组。所述编组可以由编组模块 (比如图3中的332)来执行。在步骤420,可以确定结构对象之间的检索顺序。在一些示例性实施例中,可以确定组和组中没有包含的结构对象之间的顺序。在一些示例性实施例中,可以确定组之间的 顺序。该顺序可以由结构对象排序器(比如图3中的334)来确定。在步骤425,可以确定扁平的个性化结构模型。该扁平的个性化结构模型可以由结 构模型扁平化器(比如图3中的336)来确定。在步骤430,可以检测与结构模型所代表的实体相关联的检索请求。检索请求检测 模块(比如图3中的340)可以检测该检索请求。在步骤435,可以从数据提供器获取数据。该数据可以与在步骤425中确定的扁平 的个性化结构模型相关联。该数据可以由数据获取器(比如图3中的350)来获取。在步骤440,在步骤435中检索到的数据可以存储在高速缓存(比如图3中的370) 中。在步骤445,用户在步骤430中检测到的检索请求中请求的数据可以被提供给用 户。数据可以通过输出模块(比如图3中的380)来提供。在步骤450,可以检测第二检索请求,比如通过检索请求检测模块来检测。第二检 索请求也可以与步骤430中检测到的检索请求所关联的实体相同的实体相关联。在步骤460,可以确定第二检索请求中的请求数据是否存储在高速缓存中。在数据 没有被存储的情况下,可以在步骤470执行附加信息的延迟加载,比如通过图3的延迟加载 器390来执行延迟加载。在数据先前存储在高速缓存中的情况下,或者在步骤470延迟加 载了数据的情况下,在步骤480,数据被提供给用户。在一些示例性实施例中,可以周期性地、在预定时间、在预定的触发时等等去除高 速缓存中的数据。在一些示例性实施例中,延迟加载,比如在步骤470中执行的延迟加载, 可以不必响应于检索请求来执行。要注意的是,用户的检索请求,比如在步骤430或步骤450中检测的那些检索请 求,可以由使用监视器,比如图3中的312,来监视,并且以后用作使用信息。要注意的是,所公开的主题可以被实现在中间件中。中间件可以被配置为从用户 接收检索请求并且作为响应而提供数据。在这样的情景中,诸如在步骤430中执行的或者 由检索请求检测模块340执行的检索请求的检测可以简单地经由API等接收该请求。尽管上述内容是针对该结构模型所代表的单一实体来描述的,但是要注意的是, 所公开的主题也可以以相似的方式应用到该结构模型所代表的若干实体,或者应用到互连 的若干结构模型所代表的若干实体。尽管参照示例性实施例描述了本公开,但是本领域技术人员将会理解,在不脱离 本发明的范围的情况下,可以进行各种改变并且可以用等同物来替代其元素。此外,在不脱 离本发明的基本范围的情况下,可以进行大量修改以使具体情况或材料符合该教导。因此, 意欲使所公开的主题不限于作为为实现本发明而构想出的最佳方式公开的特定实施例,而 仅仅由权利要求来限制。
权利要求
1.一种计算机化的环境中的方法,该环境包括具有与实体相关联的结构模型的数据提 供器,所述方法包括获取所述结构模型的使用信息,该使用信息与用户相关联; 检测用户的检索请求,该检索请求与所述结构模型相关联; 响应于检测到所述检测请求,从所述数据提供器检索数据,该检索数据包括 基于使用信息确定个性化结构模型,该个性化结构模型与所述实体 相关联;基于所述个性化结构模型从所述数据提供器获取数据;以及 将数据提供给由用户使用的客户端层。
2.根据权利要求1所述的方法,其中,所述检索数据还包括将数据存储在高速缓存中。
3.根据权利要求1所述的方法,其中,所述获取使用信息包括从用户接收使用信息。
4.根据权利要求1所述的方法,其中,所述获取使用信息包括监视用户的第一检索请 求,该第一检索请求与所述结构模型相关联。
5.根据权利要求4所述的方法,其中,所述结构模型的部分与由客户端层使用的表单 相关联,并且其中所述监视用户的第一检索请求包括基于所述第一检索请求与所述结构模 型的部分之间的关联将所述第一检索请求与所述表单相关联。
6.根据权利要求1所述的方法,还包括确定能够在单一检索请求中从数据提供器检索 的结构对象的组,所述结构对象被所述结构模型包含,并且其中所述确定个性化结构模型 还基于所述组。
7.根据权利要求1所述的方法,其中所述确定个性化结构模型包括确定第一结构对象 和第二结构对象之间的检索顺序,所述检索顺序基于所述使用信息。
8.根据权利要求1所述的方法,其中所述确定个性化结构模型包括确定扁平的个性化 结构模型。
9.根据权利要求8所述的方法,还包括从数据提供器延迟加载附加数据,所述附加数 据与所述结构模型相关联,所述附加数据没有被个性化结构模型包含。
10.根据权利要求9所述的方法,其中所述附加数据包含第一结构对象和第二结构对 象,并且其中所述延迟加载包括确定第一结构对象和第二结构对象之间的检索顺序,所述检索顺序基于所述使用信 息;以及基于所述检索顺序检索第一结构对象和第二结构对象。
11.根据权利要求1所述的方法,其中所述数据提供器由第三方来控制。
12.根据权利要求1所述的方法,其中所述数据提供器包括第一数据源和第二数据源。
13.一种与数据提供器相关联的计算机化的优化系统,所述数据提供器具有与实体相 关联的结构模型,所述计算机化的优化系统包括使用获取器,其被配置为获取所述结构模型的使用信息,该使用信息与用户相关联; 个性化结构模型确定器,其被配置为基于由所述使用获取器获取的使用信息来确定与 所述实体相关联的个性化结构模型;检索请求检测模块,其被配置为检测用户的检索请求,该检索请求与所述实体相关联;以及数据获取器,其被配置为获取与所述检索请求相关联的数据,所述数据获取器被配置 为基于所述个性化结构模型来从所述数据提供器获取数据。
14.根据权利要求13所述的计算机化的优化系统,还包括输出模块,其被配置为将数 据提供给用户使用的客户端层。
15.根据权利要求13所述的计算机化的优化系统,还包括高速缓存。
16.根据权利要求13所述的计算机化的优化系统,其中所述使用获取器包括使用监视器。
17.根据权利要求13所述的计算机化的优化系统,其中所述个性化结构模型包括编组 模块,其被配置为确定能够在单一检索请求中从数据提供器检索的结构对象的组,所述结 构对象被所述结构模型包含;以及其中所述个性化结构模型确定器被配置为基于所述组确定个性化结构模型。
18.根据权利要求13所述的计算机化的优化系统,其中所述个性化结构模型确定器包 括结构对象排序器,其被配置为确定第一结构对象和第二结构对象之间的检索顺序,所述 检索顺序基于所述使用信息。
19.根据权利要求13所述的计算机化的优化系统,其中所述个性化结构模型确定器包 括结构对象扁平化器,其被配置为确定扁平的个性化结构模型。
20.根据权利要求13所述的计算机化的优化系统,还包括延迟加载器,其被配置为从 数据提供器延迟加载附加数据,该附加数据与所述结构模型相关联,该附加数据没有被所 述个性化结构模型包含。
21.根据权利要求13所述的计算机化的优化系统,其中所述使用获取器被配置为使用 与所述实体相关联的表单设计。
22.根据权利要求13所述的计算机化的优化系统,还包括所述数据提供器。
全文摘要
结构模型的使用模式被用来确定与用户相关联的个性化结构模型。构造所述个性化结构模型,以便与所述个性化结构模型相关联的数据的检索预计将提高从数据提供器检索数据的性能。所述个性化结构模型可以基于检索顺序、基于可以一起检索的结构对象的组等等来布置。所述个性化结构模型可以是扁平的结构模型以便进一步提高从数据提供器检索数据的性能。
文档编号G06F17/30GK102103633SQ20101059517
公开日2011年6月22日 申请日期2010年12月20日 优先权日2009年12月20日
发明者乔纳森·赫勒, 沃纳·艾格纳 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1