CN101151592B - 按需解串行化数据对象的方法和系统 - Google Patents

按需解串行化数据对象的方法和系统 Download PDF

Info

Publication number
CN101151592B
CN101151592B CN2005800409313A CN200580040931A CN101151592B CN 101151592 B CN101151592 B CN 101151592B CN 2005800409313 A CN2005800409313 A CN 2005800409313A CN 200580040931 A CN200580040931 A CN 200580040931A CN 101151592 B CN101151592 B CN 101151592B
Authority
CN
China
Prior art keywords
data
enterprise
data object
serialized
request
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.)
Expired - Fee Related
Application number
CN2005800409313A
Other languages
English (en)
Other versions
CN101151592A (zh
Inventor
A·D·韦斯
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101151592A publication Critical patent/CN101151592A/zh
Application granted granted Critical
Publication of CN101151592B publication Critical patent/CN101151592B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Abstract

本发明涉及用于按照请求解串行化来自诸如企业软件系统之类的软件系统的数据的技术。例如,本文描述了用于当有软件应用需求时,将来自企业软件系统的由诸如可扩展标记语言(XML)之类的数据描述语言所表示的数据转换为对象的技术。该企业软件系统所连接的计算设备经由XML数据流加载多维数据。将该XML数据解串行化,从而创建由所述计算设备上执行的软件应用所请求的对象。剩余XML数据可以存储在计算设备上,直到软件应用请求相应的对象为止。

Description

按需解串行化数据对象的方法和系统
发明领域
本发明涉及一种软件系统,并且尤其涉及用于将数据描述语言流解串行化(de-serializing)为对象的技术。
技术背景
企业软件系统通常是非常复杂的、支持众多(例如成百上千)个并发用户的大规模系统。企业软件系统的例子包括财务计划系统、预算计划系统、订单管理系统、库存管理系统、销售人员管理系统、商业智能工具、项目和资源管理系统以及其他企业软件系统。
在典型的计算环境中,移除客户设备常常需要从企业软件系统获取企业数据。然而,企业软件系统常常将企业数据存储为多维数据,该多维数据包括复杂的对象定义和数据类型,所述对象定义和数据类型不能经由诸如传输控制协议和因特网协议(TCP/IP)之类的大多数通信协议轻易地发送到用户设备。因此,企业计划系统可以将多维数据串行化为诸如可扩展标记语言(XML)之类的数据描述语言,其将企业计划数据表示为纯文本来传输。
一旦接收到串行化(serialized)发送的数据,客户设备将XML流解串行化为对象,或在多维数据的情况下解串行化为对象分层。用对象表示的多维数据可以包括数以万计的对象实例化。一些编程语言尽管被优化来用于面向对象编程,但在创建且尤其是删除许多小对象的期间这些程序将变慢。为了阻止其变慢,可以将数据的XML表示拆分成多个XML调用。用户设备随后可以从企业软件系统获取所需要的XML子集。例如客户设备可以在最开始获取对象分层的最高级别,随后当客户设备上执行的软件发出请求时获取后续的级别。这样,客户设备不从客户设备实际上从不需要的企业系统获取数据。这种从企业系统获取所需数据的过程通常被称为“按需求加载”。
发明内容
大体上,本发明主要涉及用于根据需要解串行化来自诸如企业软件系统之类的软件系统的数据的技术。例如,描述了用于当企业软件系统内的软件应用需要时,将来自企业软件系统的由诸如可扩展标记语言(XML)之类数据描述语言所表示的数据解串行化(即转换)为对象的技术。
该技术使表示对象模型的XML串行化数据流能够从企业软件系统加载到计算设备上。当计算设备上执行的软件应用请求对象时,XML数据被解串行化以创建这些对象。剩下的XML数据可以存储在计算设备上,直到软件应用请求相应的对象为止。
从企业软件系统所接收的串行化数据可以包括多维数据,该多维数据可以被解串行化为对象分层。这里所讨论的“按需解串行化”技术允许以需要为基础构建大型的对象分层。通过只解串行化所存储的XML数据和创建软件应用所请求的那些对象,该技术可以减少对象实例化和删除时间。
此外,这里所讨论的技术可以与“按需加载”过程一起利用,当被请求时,该“按需加载”过程选择性地从企业软件系统获取XML数据。例如,当需要时,可以从企业软件系统选择性地获取作为XML数据的对象分层的多个部分。可以将所获取的XML数据缓存,且仅当计算设备所执行的软件应用请求了具体对象时,才将该XML数据解串行化为特定的对象。
在一个实施例中的方法包括:根据定义具有多个数据对象的分层对象模型的数据描述语言来存储串行化的数据。该方法进一步包括接收对由存储的串行化数据所定义的多个数据对象中的一个进行访问的请求,以及响应于该请求处理至少一部分所述串行化数据,用于创建所请求的数据对象。
在另一个实施例中的计算机包括:在计算机中执行软件应用,且计算机可读介质根据数据描述语言来存储串行化的数据,以定义具有多个数据对象的分层的对象模型。该计算机进一步包括在计算机上执行的解串行化软件,来处理至少一部分所述串行化数据,以便当软件应用请求访问数据对象时创建这些数据对象。
在另一个实施例中的计算机可读介质包括:用于使得计算设备的可编程处理器在计算设备上执行多个软件应用的指令,根据数据描述语言来存储串行化的数据以定义具有多个数据对象的分层的对象模型,并从多个软件应用之一接收访问由串行化数据所定义的多个数据对象之一的请求。该计算机可读介质进一步包括用于识别对应于所请求的数据对象的一部分串行化数据的指令,并将所识别的一部分串行化数据转换为所请求的数据对象。
以下的附图和描述中描述了本方面的一个或更多实施例的细节。根据本发明的说明书、附图以及权利要求,本发明其他特性、对象和优势将会变得显而易见。
附图说明
图1是示出了在其中多个用户与企业计划系统进行交互的示例性计算环境的框图,该企业计划系统支持并自动化使用自底向上(bottom-up)预测的自顶向下(top-down)的目标协调;
图2是示出了用于与图1的企业计划系统进行交互的远程计算设备的一个实施例的框图;
图3更详细地示出了对象模型的结构;
图4示出了对象模型中示例性的对象实例化;
图5是示出了按需求对数据对象进行解串行化的过程的流程图;
图6是更详细地示出了解串行化过程的流程图。
具体实施方式
图1是示出了具有计算环境10的示例企业4的框图,在该计算环境10中多个用户12A-12N(统称“用户12”)与企业计划系统14进行交互。在图1所示的系统中,企业系统14通过网络18,可通信地连接到多个计算设备16A-16N(统称“计算设备16”)。用户12与其相应的计算设备进行交互,以便访问企业计划系统14。
为了示例的目的,将引用诸如企业财务或预算计划系统之类的企业计划系统,来描述本发明。这里所描述的技术易于应用到其他软件系统,包括其他大规模企业软件系统中。企业软件系统的例子包括订单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统以及其他企业软件系统。
通常,企业计划系统14为企业支持并自动化使用自下向上(bottom-up)预测的自上向下(top-down)的目标协调。企业计划系统14实施并管理企业计划过程,该过程可以被分割成三个功能:(1)建模、(2)贡献(contribution)和(3)协调。
最初,被称为分析师的高级企业经理或执行官定义为该企业的组织目标,并建立计划模型。例如,所述分析师可以包括例如财务分析师,例如首席财务官、高级财务分析师或产品及销售分析师。更具体的,分析师开发了具有多个分层排列节点的模型,所述分层排列节点表示该组织中的各种费用中心,例如商业单元或部门。分析师为该组织分层的每个节点指定集成目标数据。集成目标数据可以包括财务数据、收入数据、订单数据、库存数据等等,取决于该企业所进行的特定的企业计划活动。然后分析师为每个节点分配一个或多个企业用户,例如经理、管理人、销售代表、实验室管理员等等,他们负责节点所对应的费用中心的企业计划。每个企业用户既可以被指定为向企业计划系统14提供计划数据的贡献者,又可以,或同时可以,被指定为接受或拒绝来自贡献者的贡献的审核者。所述贡献者和审核者可以是企业内或连接到网络18的其他实体内的授权用户,例如供应者和顾客。
接下来,被指定为贡献者的企业用户12与企业计划系统14进行交互,来以贡献数据的形式输入详细的预测。如上所述,企业用户12可以提供详细的财务预测、收入预测、订单预测、库存预测、估计资源需求等等,取决于企业所执行的特定的企业计划活动。
企业计划系统14自动化预测数据与分析师所提供的集成目标数据之间的协调。特别地,企业计划系统14根据已定义的模型,即分析师所创建的企业计划模型,来提供具有多个协调级别的分层的计划过程。随着每个贡献者提供他或她的贡献数据,企业计划系统14自动地实时汇聚企业中的贡献数据,并为指定为与该企业的较高级别关联的审核者的企业用户12提供所汇聚的数据的访问。特别地,一旦从贡献者接收到贡献数据,企业计划系统14识别受新近接收到的贡献数据影响的组织模型的较高级别,并实时计算每个级别的新的汇聚总数。
随后,审核者观察在企业计划会话期间企业内实时汇聚的数据。在每一级别,企业计划系统14确保由企业模型的节点所定义的审核者来协调目标数据与预测数据。考虑到分析师提供的集成目标,每个审核者可以,例如,拒绝或接受贡献数据。该过程继续进行,直到组织分层的最高级别最终认可了该贡献数据为止,从而确保来自贡献者的贡献数据与分析师所提供的集成目标相协调。
通过这种方式,与比常规技术相比,企业计划系统14可以提供更加准确的企业计划。例如,企业计划系统14可以通过使组织能够协调企业模型和具有详细预测的组织目标,来改进企业计划的准确性和可预测性。该技术可以提供具有传递协作的、实时的计划能力,而无需对预测进行离线统一和聚合的平台。由于企业计划系统14可以实时汇聚贡献数据,从而可以为所有用户12呈现准确的、最新的数字视点。此外,企业计划系统14的体系结构易于扩展到数以千计的用户,并可以设计为接近于最优计划实践。另外,该技术支持了企业用户12,即贡献者和审核者,的高度参与,从而减小了准确计划的周期。
企业用户12可以用各种计算设备经由网络18来与企业计划系统14进行交互。例如,企业用户可以利用膝上型计算机、桌上型计算机等等,运行诸如位于华盛顿雷德蒙的微软公司所出品的InternetExplorerTM之类的网络浏览器,来与企业计划系统14进行交互。可替换地,企业用户可以用个人数字助理(PDA),例如位于加利福尼亚圣克拉拉的奔迈(Palm)公司所出品的PalmTM organizer、支持网络的蜂窝电话或类似的设备。
网络18表示任何通信网络,例如像因特网一样的基于分组的数字网络。通过这种方式,系统10易于扩展以适于大型企业。企业用户12可以经由局域网直接访问企业计划系统14,或者可以经由虚拟专用网、远程拨号或类似的远程访问通信机制来远程访问企业计划系统14。
企业计划系统14可以利用“切片”处理,通过该处理,将存储的多维数据根据所定义的企业模型为每个用户12“切成片”。在此处理期间,企业计划系统14识别用户12被分配的已定义的模型的区域,作为其贡献者或审核者,并基于该分配对所存储的数据进行“切片”。当给定用户12登陆并进行企业计划活动时,企业计划系统14将相应的数据片发送给相应的计算设备16,以经由扩展的电子数据表应用显示给用户。通过这种方式,企业计划系统14无需发送整个模型给每个用户12,从而减少了通信时间和资源需求。相比之下,每个用户12仅接收相关信息。用户12与计算设备16进行交互,以获取贡献数据,并协调贡献数据与组织目标。
从企业计划系统14接收的多维数据通常包括复杂的对象定义。鉴于此原因,企业计划系统14将多维数据串行化为将数据表示为纯文本来传输给计算设备16的数据描述语言,例如可扩展标记语言(XML)。
如此处所述,当计算设备所执行的企业计划软件具体要求时,计算设备16应用用于将数据描述语言解串行化为数据对象的技术。具体地,每个计算设备16包括一个应用可编程接口(API),用于从计算设备16所执行的软件应用接收数据请求,并向该软件应用返回解串行化的数据。
所述数据片包括多维数据。表示为对象的该多维数据可以包括数以万计的对象实例化。
例如,计算设备16从企业软件系统14加载该多维数据(即相关于用户12的相应的片)的XML表示。当在计算设备16之一上执行的软件应用请求访问与该多维数据相关的对象时,相应计算设备16的对象模型接口指引解串行化模块将相应部分的XML数据转换(即解串行化)为请求的数据对象。
XML数据通常表示包括父对象和子对象的数据对象分层。因此,当企业计划软件具体请求时,解串行化父对象,且在分层中较低的子对象仍然存储为XML数据,直到被软件应用请求为止。
通过这种方式,可以按需求根据对象数据以自顶向下方式构造对象分层。结果,通过仅解串行化和实例化由软件应用所实际请求的那些对象,“按需解串行化”技术减少相关于该对象分层的对象实例化和删除时间。
另外,“按需加载”过程可以结合此处所述“按需解串行化”过程使用。例如,当需要时,客户设备16A可以从企业软件系统14选择性地获取作为XML数据的部分对象分层。获取的XML数据可以被缓存,并当计算设备所执行的软件应用请求具体的对象时,才将该XML数据解串行化为特定对象。
图2是示出了用于与企业计划系统14进行交互的计算设备16A的一个实施例的框图。在该示例性实施例中,计算设备16A包括网络浏览器20、一个或多个计划应用25、对象模型接口26、对象模型28和解串行化模块29。计算引擎11和数据立方体24安装在网络浏览器20中,用于在企业计划会话期间使用。计算设备16A包括计算机可读介质,用于存储使得可编程处理器执行此处所述方法的可执行指令。
在一个实施例中,计算引擎22包括用基于阵列的语言建立的ActiveX对象中所包裹的前向计算引擎22。在该企业计划的示例中,用户12A可以与网络浏览器20进行交互,以便进入和控制企业计划数据,例如预算和预测数据。数据立方体24包括可以包括自顶向下目标的计划数据,和自底向上的贡献数据,并允许企业计划会话的所有计算由计算设备16A本地执行。因此,在此示例中,贡献者可以修改他或他各自的贡献数据,并执行企业计划过程所需的计算,而无需访问企业计划系统14。换句话说,计算引擎22和数据立方体24可以经由计算设备16A来本地维护(例如作为ActiveX组件)。用户12A可以本地保存计划数据,并向企业计划系统14递交该计划数据,用于与来自其他用户12的计划数据汇聚。
企业计划系统14实时地自动汇聚企业4的贡献数据,并为与企业的较高级别相关的审核者提供汇聚数据的访问。该过程继续,直到与该组织分层的最高级别相关的审核者最终认可了该贡献数据为止,从而确保来自贡献者的贡献数据与集成目标相协调。在其他实施例中,计算引擎22和数据立方体24可以仅在企业计划系统14维护,且在计算设备16之上本地安装。
计划应用25表示在计算设备16A上执行的软件应用。例如,计划应用25可以包括报表工具、建模工具、电子数据表应用、数据采集模板、商业智能工具或其他类型的企业计划应用。
对象模型接口16包括用于显露对象模型28的应用可编程接口API。例如,对象模型28可以是数据立方体24的元数据模型。
通常,对象模型28表示数据对象的任意分层,且可以包括一连串的集合和集合中的对象。换句话说,对象模型28可以包括对象的分层,每个所述对象包括依次提供一个或多个对象的访问的集合。可以包裹对象模型28,以保护集合中的对象。通过这种方法,用户12A和计划应用25不能更改对象模型28中的数据。相比之下,计划应用25经由对象模型接口26从对象模型28获取对象。特别地,对象模型接口26从计划应用25接受数据请求并将所请求的解串行化的数据返回给计划应用25。
如图2所示,对象模型28包括XML存储27,从而计划会话期间所需要的企业数据的XML表示,可以在解串行化到对象模型28之前,被从企业计划系统14加载。XML存储27可以包括与用户12A相关的整个片的XML流。在其他情况下,XML存储27可以包括片的子集;当计划应用25需要时,利用按需加载过程,可以从企业计划系统14加载剩余部分的片。
当计划应用25之一请求访问对象模型28时,对象模型接口26确定所请求的对象是否已被实例化。如果对象模型28中不存在想要的对象的实例化,对象模型接口26在XML存储27中识别相应的XML数据。对象模型接口26随后指引解串行化模块29去解串行化用于在对象模型28中将所请求的数据表示为对象的XML。对象模型接口26可以随后将解串行化的数据对象(或对象的句柄)返回给计划应用25中请求的那个。对象模型28剩余的数据对象(即较低级别的子对象)仍然以XML格式存储在XML存储27中,直到被计划应用25之一请求为之。
在一些情况下,计划应用25可以请求关于存储在XML存储27中的数据对象的信息。例如,一个计划应用25可以发出请求,用于计数给定集合中的数据对象。在此情况下,对象模型接口26不需要实例化,且直接访问特定数据对象。结果,对象模型接口26可以返回所请求的信息,而无需解串行化和实例化相关的对象。
接下来的XML列表示出了示例性的串行化数据,其可以由企业计划系统14提供并可以存储到XML存储27中。在此示例中,该串行化数据定义了一个具有四维的对象分层:递交(submissions)、公司(company)、帐目(accounts)和周期(periods)。对于每个维,XML定义了一个或多个项,且每个项有一个或多个属性(attribute)。
    <?XMLversion=″1.0″encoding=″utf-8″?>
    <response>
             <dimension dimnm=″Submissions″dimid=″Submissions″dimtype=″
Submission″>
                     <item inm=″2004ACTUAL″iid=″2004ACTUAL″>
                             <att nm=″Calc″val=″0″dt=″B″/>
                            <att nm=″Repair″val=″0″dt=″B″/>
                             <att nm=″Lock″val=″0″dt=″B″/>
                     </item>
                     <item inm=″2003ACTUAL″iid=″2003ACUTAL″>
                    <att nm=″Calc″val=″0″dt=″B″/>
                            <att nm=″Repair″val=″0″dt=″B″/>
                             <att nm=″Lock″val=″1″dt=″B″/>
                     </item>
             </dimension>
            <dimension dimnm=″Company″dimid=″Company″dimtype=″
Component″>
                    <item inm=″XYZMining″iid=″Co1″>
                        <att nm=″Type″val=″Type 4″dt=″S″/>
                        <att nm=″Class″val=″Class#01″dt=″S″/>
               </item>
               <item inm=″Widgets Corp″iid=″Co2″>
                        <att nm=″Type″val=″Type 1″dt=″S″/>
                        <att nm=″Class″val=″Class  #01″dt=″S″/>
               </item>
            </dimension>
            <dimension dimnm=″Accounts″dimid=″Accounts″dimtype=″
Account″>
                    <item inm=″PETTYCASH″iid=″100XX″>
                             <att nm=″DecPrec″val=″2″dt=″N″/>
                             <attnm=″Type″val=″1″dt=″N″/>
                             <att nm=″Round″val=″1″dt=″N″/>
                             <att nm=″Basis″val=″0″dt=″N″/>
                             <att nm=″Color″val=″1″dt=″B″/>
                    </item>
                    <item inm=″CASH ON HAND″iid=″101XX″>
                             <att nm=″DecPrec″val=″2″dt=″N″/>
                             <att nm=″Type″val=″1″dt=″N″/>
                             <att nm=″Round″val=″1″dt=″N″/>
                             <att nm=″Basis″val=″0″dt=″N″/>
                             <att nm=″Color″val=″1″dt=″B″/>
                    </item>
                    <item inm=″CASH IN BANK″iid=″103XX″>
                             <att nm=″DecPrec″val=″2″dt=″N″/>
                             <att nm=″Type″val=″1″dt=″N″/>
                             <att nm=″Round″val=″1″dt=″N″/>
                             <att nm=″Basis″val=″0″dt=″N″/>
                             <att nm=″Color″val=″1″dt=″B″/>
                     </item>
                 </dimension>
                 <dimension  dimnm=″Periods″dimid=″Periods″dimtype=″
Period″>
                     <item inm=″January″iid=″Jan″>
                             <att nm=″Text″val=″0″dt=″B″/>
                             <att nm=″Calc″val=″0″dt=″B″/>
                             <att nm=″Pointer″val=″0″dt=″B″/>
                     </item>
                     <item inm=″February″iid=″Feb″>
                             <att nm=″Text″val=″0″dt=″B″/>
                             <att nm=″Calc″val=″0″dt=″B″/>
                             <att nm=″Pointer″val=″0″dt=″B″/>
                     </item>
                     <item inm=″March″iid=″Mar″>
                             <att nm=″Text″val=″0″dt=″B″/>
                             <att nm=″Calc″val=″0″dt=″B″/>
                             <att nm=″Pointer″val=″0″dt=″B″/>
                     </item>
                 </dimension>
      </response>
图3进一步详细地示出了对象模型28的一个实施例的示例性结构。在该示例性实施例中,对象模型28包括对象分层,每个对象包括依次提供一个或多个对象的访问的集合。该示例性结构在表示多维数据的维度(dimension)时可能特别有用。
特别地,多维数据的维度通常定义为父“节点”和子“子节点”的分层。该维度分层可以由对象模型28中的对象分层来表示。换句话说,对象模型28中的每个对象表示该维度中的一个节点,且提供与相应节点相关的多维数据的访问。
在所示的实施例中,对象模型28包括维度集合32,维度集合32包括维度对象33A和33B。在其他实施例中,维度集合32可以包括任意数量的维度对象33。在一些情况下,当计划应用25之一试图访问维度对象33A和33B中的一个时,对象模型接口26可以指引解串行化模块29来创建维度集合32中的所有对象。在其他情况下,对象模型接口26可以指引解串行化模块来仅创建所请求的对象。在任一种情况下,对象模型28存储用于描述每个维度对象33的XML数据,并且当计划应用25之一请求由对象表示的多维数据时,仅解串行化该存储的XML数据。
正如进一步所描述的,每个维度对象33可以包括项集合。图3示出了维度对象33B中项的集合34的扩充。在该示例中,项集合34包括项对象35A和项对象35B。所示项对象35B包括属性(attribute)集合36,其包括属性(attribute)对象37A和37B。
图3仅示出了一部分对象模型28。尽管没有示出,对象模型28可以具有任意数量的分层级别(集合),且每个级别可以包括任意数量的对象。对于企业计划系统来说,对象模型28可包括数以万计的表示多维企业数据的对象。
图4示出了计算设备16A的对象模型28中对象的示例性的实例化。为了说明,如图3所示的对象模型28包括集合和对象的分层。尽管图4在每个集合中仅示出了一个对象,但每个集合中可以包括任意数量的对象。
当计划应用25之一请求与维度集合40中的维度对象42相关的数据时,对象模型接口26指引解串行化模块29以访问XML存储27,转换相应的XML数据并实例化维度对象42。
一旦维度对象42被实例化,对象模型接口26将与该维度对象相关的XML数据传递给维度对象42。维度对象42使用XML数据中指定的属性(attribute),以制备该对象的属性(property)。维度对象42存储维度节点存储41中的XML数据,用于当需要时创建其子对象,即,本示例中项集合44的对象。
通过类似的方式,当计划应用25之一请求与项集合44中的项对象46相关的多维数据时,对象模型接口26指引解串行化模块29去转换在维度节点存储41中所存储的相应的XML数据,并实例化该项对象。一旦项对象46被实例化,对象模型接口26将相应的XML数据传递给项对象46。项对象46使用XML数据中所包括属性(attribute),来制备对象的属性(property),并存储项节点存储45中的XML数据,用于当需要时从属性(attribute)集合48创建子对象。
当计划应用25之一请求与属性(attribute)集合48中的属性(attribute)对象50相关的数据时,对象模型接口26指引解串行化模块29转换项节点存储45中所存储的相应的XML数据。而且一旦属性(attribute)对象50被实例化,对象模型接口26将相应的XML数据传递给属性(attribute)对象50。属性(attribute)对象50用XML数据中所包括的属性(attribute)来制备对象的属性(property)。如果属性(attribute)对象50有XML数据中定义的任何子对象,属性(attribute)对象存储其在数据节点存储49中的XML数据。
通过这种方式,一旦被实例化,对象模型28的每个级别中的对象存储它们各自的XML数据,并根据需要利用该XML数据来实例化子对象。
图5是示出了此处所述的按需解串行化过程的示例性实施的一个流程图。例如,当用户12A加入企业计划会话时,可以通过图2所示的计算设备16A执行该按需解串行化的过程。
最初,对象模型接口26从企业计划系统14,将表示多维数据的XML加载到XML存储27(60)。在一些实施例中,可以将表示所有与用户12A(即“片”)相关的计划数据的XML流加载到XML存储27中。在其他实施例中,按需加载过程可以用来仅加载所需的多维数据,剩余的数据根据任一计划应用25的请求来加载。
当加载该XML表示时,对象模型接口26可以解串行化和实例化对象模型28的初始部分(61)。例如,对象模型接口26可以解串行化和实例化图4的示例中所示的维度集合42。在此过程期间,对象模型接口26访问XML存储27,以获取相应的XML数据,解串行化该相应的XML数据并实例化维度对象42。对象模型接口26把当需要创建子对象时与用于初始化属性(attribute)序列的维度对象相关的XML数据传递给维度对象42。
接下来,任意计划应用25可以经由对象模型接口26发出用于要求访问对象模型28的请求(62)。例如,计划应用25可以发出访问对象模型48的实例化的部分(本示例中的维度集合42)的属性(property)的请求。在此情况下,对象模型接口26返回属性(property)值,而无需解串行化额外的XML数据,因为已经加载了其属性(attribute)。
然而,计划应用25可以发出用于要求访问子对象的请求(66)。例如,计划应用25可以试图索引子对象,迭代该子对象或访问与子对象相关的属性(attribute)。
在此情况下,对象模型接口26访问对象模型28,以确定所请求的数据对象是否已经在对象模型中被实例化(64、66)。如果数据对象已经存在了(66的“是”分支),对象模型接口26根据请求访问所请求的子数据对象。例如,对象模型接口26可以把句柄返回给子数据对象,返回与该子数据对象相关的属性(attribute),返回子数据对象的计数或返回一些其他参数(68)。
然而,如果所请求的子数据对象不存在于对象模型28中(66的“否”分支),父数据对象基于存储的XML数据解串行化所请求的子数据对象(70),并根据初始请求访问子数据对象(68)。如果该父数据对象的XML数据存储不包括用于解串行化所请求的数据对象所必需的XML,该父数据对象发出一个错误(72)。
图6是进一步详细地示出了解串行化过程的流程图。一旦确定子数据对象需要被实例化,父数据对象从其XML数据存储获取子数据对象的XML数据(80)。例如,该父数据对象可以维持一个临时变量(例如字符串变量),用于存储与其子对象相关的XML数据。该父对象随后调用解串行化模块29,以根据其相应的XML数据来创建子对象(81)。
如图4所述,该父数据对象随后把该新实例化的子对象传递给其相应的XML数据(82)。该新创建的对象随后用XML节点中所包括的属性(attribute)来制备其属性(property)(84)。在该XML定义较低级别的子对象的情况下,新创建的对象存储XML数据以便今后当被计划应用25之一请求时,用于创建子对象(86)。该子对象随后初始化一个或多个标记或其他用于指示其子对象尚未被转换为对象的标志(88)。
最后,子对象已经被实例化和初始化之后,父对象可以删除用于创建的子节点的XML数据,以节省存储器(90)。
本文描述了本发明的各种实施例。尽管是参考诸如企业财务或预算计划系统之类的企业计划系统来描述,但该缓存技术可以易于应用到其他软件系统,包括其他大规模企业软件系统。其他企业软件系统的示例包括订单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统和其他企业软件系统。而且,该技术可以在任意类型的计算设备上实现,包括客户设备、服务器或其他设备。这些及其他实施例均落入所附权利要求的范围内。

Claims (17)

1.一种用于解串行化数据对象的方法,包括:
根据定义具有多个数据对象的分层对象模型的数据描述语言来存储串行化数据,其中,所述分层对象模型表示企业软件系统的多维数据库的维度分层;
接收第一请求,所述第一请求要求访问所述多维数据库的维度分层内的所述多个数据对象中的第一个数据对象;
在所述多维数据库的维度分层的第一级别识别一部分串行化数据,其中所述一部分串行化数据对应于所述多个数据对象中的所述第一个数据对象,而不包括对应于所述第一级别之下的级别处的数据对象的数据;
响应于所述第一请求,处理所述一部分串行化数据,以创建所述多个数据对象中的所述第一个数据对象;以及
在计算机可读介质内存储所述多个数据对象中的所述第一个数据对象。
2.如权利要求1所述的方法,还包括根据识别出的所述一部分串行化数据,制备所述多个数据对象中的所述第一个数据对象的属性。
3.如权利要求1所述的方法,还包括:
在所述多个数据对象中的所述第一个数据对象内存储识别出的所述一部分串行化数据;
接收随后的请求,所述随后的请求要求访问所述多个数据对象中的所述第一个数据对象的子数据对象;以及
响应于所述随后的请求,处理所述多个数据对象中的所述第一个数据对象内存储的所述串行化数据,以创建所述子数据对象。
4.如权利要求1所述的方法,其中,所述多个数据对象中的所述第一个数据对象包括父数据对象,所述方法还包括:
在所述父数据对象中设置标记,以指示尚未创建一个或多个子数据对象。
5.如权利要求4所述的方法,还包括:
从软件应用接收要求获得与所述子数据对象相关的信息的请求;以及
从所述父数据对象将所述信息返回给软件应用,而不处理所述串行化数据以创建所述子数据对象。
6.如权利要求1所述的方法,其中,所述数据对象表示所述多维数据库的维度分层的节点和子节点。
7.如权利要求1所述的方法,还包括从所述企业软件系统获取所述串行化数据,其中,所述串行化数据包括与用户相关的多维企业数据片。
8.如权利要求1所述的方法,其中,所述数据描述语言包括可扩展标记语言(XML)。
9.一种用于解串行化数据对象的系统,包括:
根据定义具有多个数据对象的分层对象模型的数据描述语言来存储串行化数据的装置,其中,所述分层对象模型表示企业软件系统的多维数据库的维度分层;
接收第一请求的装置,所述第一请求要求访问所述多维数据库的维度分层内的所述多个数据对象中的第一个数据对象;
在所述多维数据库的维度分层的第一级别识别一部分串行化数据的装置,其中所述一部分串行化数据对应于所述多个数据对象中的所述第一个数据对象,而不包括对应于所述第一级别之下的级别处的数据对象的数据;
响应于所述第一请求,处理所述一部分串行化数据,以创建所述多个数据对象中的所述第一个数据对象的装置;以及
在计算机可读介质内存储所述多个数据对象中的所述第一个数据对象的装置。
10.如权利要求9所述的系统,还包括根据识别出的所述一部分串行化数据,制备所述多个数据对象中的所述第一个数据对象的属性的装置。
11.如权利要求9所述的系统,还包括:
在所述多个数据对象中的所述第一个数据对象内存储识别出的所述一部分串行化数据的装置;
接收随后的请求的装置,所述随后的请求要求访问所述多个数据对象中的所述第一个数据对象的子数据对象;以及
响应于所述随后的请求,处理所述多个数据对象中的所述第一个数据对象内存储的所述串行化数据,以创建所述子数据对象的装置。
12.如权利要求9所述的系统,其中,所述多个数据对象中的所述第一个数据对象包括父数据对象,所述系统还包括:
在所述父数据对象中设置标记,以指示尚未创建一个或多个子数据对象的装置。
13.如权利要求12所述的系统,还包括:
从软件应用接收要求获得与所述子数据对象相关的信息的请求的装置;以及
从所述父数据对象将所述信息返回给软件应用,而不处理所述串行化数据以创建所述子数据对象的装置。
14.如权利要求9所述的系统,其中,所述数据对象表示所述多维数据库的维度分层的节点和子节点。
15.如权利要求9所述的系统,还包括从所述企业软件系统获取所述串行化数据的装置,其中,所述串行化数据包括与用户相关的多维企业数据片。
16.如权利要求9所述的系统,其中,所述数据描述语言包括可扩展标记语言(XML)。
17.一种用于解串行化数据对象的方法,包括:
在企业计划系统中存储建模数据,其中,所述建模数据定义了企业的多个节点;
在所述节点内存储相关的企业计划数据,其中,所述企业计划数据定义了一个或者多个存储多维数据的数据立方体;
将所述企业计划数据作为串行化数据发送给客户设备;
根据所述建模数据,执行所述客户设备的软件应用,以实现企业计划会话;
当在所述企业计划会话期间所述软件应用请求表示所述数据立方体的多维企业数据的数据对象时,处理所述串行化数据的第一部分,以创建所述数据对象,而不创建比存在所请求的数据对象的级别低的级别处的数据对象;以及
在计算机可读介质内存储至少一个所创建的数据对象。
CN2005800409313A 2004-11-29 2005-11-15 按需解串行化数据对象的方法和系统 Expired - Fee Related CN101151592B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/998,409 2004-11-29
US10/998,409 US7464082B2 (en) 2004-11-29 2004-11-29 Methods for de-serializing data objects on demand
PCT/IB2005/004140 WO2006056893A2 (en) 2004-11-29 2005-11-15 De-serializing data objects on demand

Publications (2)

Publication Number Publication Date
CN101151592A CN101151592A (zh) 2008-03-26
CN101151592B true CN101151592B (zh) 2010-04-21

Family

ID=36498332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800409313A Expired - Fee Related CN101151592B (zh) 2004-11-29 2005-11-15 按需解串行化数据对象的方法和系统

Country Status (6)

Country Link
US (2) US7464082B2 (zh)
EP (1) EP1836566A4 (zh)
CN (1) CN101151592B (zh)
AU (1) AU2005308543B2 (zh)
CA (1) CA2587641A1 (zh)
WO (1) WO2006056893A2 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676481B2 (en) * 2005-02-24 2010-03-09 Microsoft Corporation Serialization of file system item(s) and associated entity(ies)
US20060167912A1 (en) * 2005-01-25 2006-07-27 Microsoft Corporation Method and system for use of subsets in serialized documents
US7757229B2 (en) * 2005-08-09 2010-07-13 International Business Machines Corporation Reflective, XML-based framework for the construction of common application launchers
US7823063B2 (en) * 2005-11-15 2010-10-26 Microsoft Corporation Delayed loading and instantiation of resources defined in markup
US9460064B2 (en) * 2006-05-18 2016-10-04 Oracle International Corporation Efficient piece-wise updates of binary encoded XML data
US7747562B2 (en) * 2006-08-15 2010-06-29 International Business Machines Corporation Virtual multidimensional datasets for enterprise software systems
US7895150B2 (en) * 2006-09-07 2011-02-22 International Business Machines Corporation Enterprise planning and performance management system providing double dispatch retrieval of multidimensional data
US8255790B2 (en) * 2006-09-08 2012-08-28 Microsoft Corporation XML based form modification with import/export capability
US8918755B2 (en) * 2006-10-17 2014-12-23 International Business Machines Corporation Enterprise performance management software system having dynamic code generation
US8645431B2 (en) 2006-12-01 2014-02-04 Vecco Technology Inc. Multi-level supply chain management system and methods
US7974993B2 (en) * 2006-12-04 2011-07-05 Microsoft Corporation Application loader for support of version management
US20080140695A1 (en) * 2006-12-12 2008-06-12 Paragen, Inc. Intellectual property related method and computer program
US8291310B2 (en) * 2007-08-29 2012-10-16 Oracle International Corporation Delta-saving in XML-based documents
US7831540B2 (en) * 2007-10-25 2010-11-09 Oracle International Corporation Efficient update of binary XML content in a database system
US20090157734A1 (en) * 2007-12-18 2009-06-18 Zubair Khan Dynamically generated mvc based user interface
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
CN101916202B (zh) * 2010-08-09 2014-04-09 中兴通讯股份有限公司 一种信令展示方法及系统
US8954967B2 (en) * 2011-05-31 2015-02-10 International Business Machines Corporation Adaptive parallel data processing
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
CN103186582A (zh) * 2011-12-29 2013-07-03 青岛海尔软件有限公司 基于设备描述文件的数据解析方法
US20130218933A1 (en) * 2012-02-20 2013-08-22 Microsoft Corporation Consistent selective sub-hierarchical serialization and node mapping
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
US11675768B2 (en) 2020-05-18 2023-06-13 Microsoft Technology Licensing, Llc Compression/decompression using index correlating uncompressed/compressed content
US11663245B2 (en) * 2020-06-25 2023-05-30 Microsoft Technology Licensing, Llc Initial loading of partial deferred object model

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1290889A (zh) * 1999-09-30 2001-04-11 精工爱普生株式会社 程序对象的串行化和解串行的版本适应

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3842573B2 (ja) * 2001-03-30 2006-11-08 株式会社東芝 構造化文書検索方法、構造化文書管理装置及びプログラム
TWI290698B (en) * 2002-12-20 2007-12-01 Hon Hai Prec Ind Co Ltd System and method for updating and displaying patent citation information
US7350199B2 (en) * 2003-01-17 2008-03-25 Microsoft Corporation Converting XML code to binary format
US20040189717A1 (en) * 2003-03-27 2004-09-30 Carli Conally Intelligent drill-down for graphical user interface
US7873663B2 (en) * 2004-01-13 2011-01-18 International Business Machines Corporation Methods and apparatus for converting a representation of XML and other markup language data to a data structure format

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1290889A (zh) * 1999-09-30 2001-04-11 精工爱普生株式会社 程序对象的串行化和解串行的版本适应

Also Published As

Publication number Publication date
US7464082B2 (en) 2008-12-09
US8171023B2 (en) 2012-05-01
AU2005308543B2 (en) 2009-10-29
CN101151592A (zh) 2008-03-26
US20060117061A1 (en) 2006-06-01
CA2587641A1 (en) 2006-06-01
WO2006056893A3 (en) 2007-10-04
EP1836566A2 (en) 2007-09-26
WO2006056893A2 (en) 2006-06-01
EP1836566A4 (en) 2008-12-31
AU2005308543A1 (en) 2006-06-01
US20080306929A1 (en) 2008-12-11

Similar Documents

Publication Publication Date Title
CN101151592B (zh) 按需解串行化数据对象的方法和系统
US8224472B1 (en) Enhanced project management tool
US7779051B2 (en) System and method for optimizing federated and ETL&#39;d databases with considerations of specialized data structures within an environment having multidimensional constraints
US8468125B2 (en) Automatically moving multidimensional data between live datacubes of enterprise software systems
US7716253B2 (en) Centralized KPI framework systems and methods
CA2570266C (en) Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US7472346B2 (en) Multidimensional XBRL engine
US20070162482A1 (en) Method and system of using artifacts to identify elements of a component business model
Choy et al. Design of an intelligent supplier relationship management system for new product development
CN101167091A (zh) 用于企业软件系统的导出队列
Stutzke et al. Software estimating technology: A survey
Choy et al. An enterprise collaborative management system: a case study of supplier selection in new product development
Wang et al. A Web-based CBR knowledge management system for PC troubleshooting
Morawiec et al. The new role of cloud technologies in management information systems implementation methodology
Schuetz et al. PESTEL Modeler: Strategy analysis using MetaEdit+, iStar 2.0, and semantic technologies
Klooster et al. Intranet facilitated knowledge management: a theory and tool for defining situational methods
KR100490736B1 (ko) 기술가치 평가방법
Norta Web supported enactment of petri-net based workflows with XRL/Flower
Tyrychtr et al. EM-OLAP Framework: Econometric Model Transformation Method for OLAP Design in Intelligence Systems
Wiederhold Value-added Middleware: Mediators
Jangra et al. Efficient Utilization of Cloud Based IoT Services Using Ontology System
Lim et al. Journal-Ranking. com: An online interactive journal ranking system
Staniszczak et al. Multidimensional analysis and prediction of the OfficeObjects® WorkFlow process performance
Balasubramanian et al. Using query-driven simulations for querying outcomes of business processes
Plattner et al. Application Development

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20081219

Address after: American New York

Applicant after: International Business Machines Corp.

Address before: Amsterdam, The Netherlands

Applicant before: IBM International Group

Effective date of registration: 20081219

Address after: Amsterdam, The Netherlands

Applicant after: IBM International Group

Address before: Alberta Canada

Applicant before: Coorg Los Unlimited Co.

Effective date of registration: 20081219

Address after: Alberta Canada

Applicant after: Coorg Los Unlimited Co.

Address before: American Minnesota

Applicant before: Cognos Inc.

ASS Succession or assignment of patent right

Owner name: IBM INTERNATIONAL GROUP CO.,LTD.

Free format text: FORMER OWNER: CARL LOEWS CO.,LTD.

Effective date: 20081219

Owner name: INTERNATIONAL BUSINESS MACHINE CORP.

Free format text: FORMER OWNER: IBM INTERNATIONAL GROUP CO.,LTD.

Effective date: 20081219

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100421

Termination date: 20111115