专利名称:用于在电子表单中隐藏模型内的敏感数据的方法和系统的制作方法
技术领域:
本发明涉及电子表单的领域,具体而言,涉及一种用于在电子表单环境中隐藏模型内敏感数据的方法、系统和计算机程序。
背景技术:
在计算机之前,数值分析、特别是财务数值分析通常在会计栏目簿(columnar pad)或者表单上预备,手里还要握着铅笔和计算器。通过把数据按照列和行来组织,所述表单向阅读者提供信息的快速同化(assimilation)。然而在纸上预备表单的任务并不是那么快捷。相反,由于每一条目都必须被枯燥地计算并且输入表单,所以该过程势必非常慢。手工预备的表单还容易出错。因此,手工预备表单是慢速的、枯燥的并且是不可靠的。
随着微型计算机的出现,以“电子表单(electronic spreadsheets)”形式的解决方案随即出现。众所周知,可以将其简称为“表单(spreadsheets)”,这些软件程序为传统的财务建模工具(会计栏目簿、铅笔和计算器)提供了计算机化的替代。从某些方面看,表单程序对于那些工具就象是字处理程序对于打字机一样。表单在简化创建、编辑和使用财务模型方面提供了显著的改善。
典型的表单程序把计算机的存储器类似于会计栏目簿的列/行或者栅格的格式来配置,由此向用户提供可视的计算器。然而,因为这种“簿”动态地存在于计算机的存储器中,所以在几个重要的方面它不同于纸张的簿。例如,电子表单中的位置必须依照计算机理解的方式被传递给计算机。用于实现此操作的一种常见方案是为表单中的每一行分配一个数字,并且为每一列分配一个字母。例如,为了参考处于列A和行1的位置(即,左上角),用户键入“A1”。依照此方式,所述表单定义处于行与列的每一交叉点的可寻址的存储位置或者“单元”。
输入到电子表单中的数据是依照与在会计簿上输入信息几乎相同的方式出现。在屏幕光标定位在期望位置之后,用户可以输入字母数字信息。然而,除保存文本和数字信息之外,表单单元还可以存储专用指令或者“公式”,所述公式规定将对存储在表单单元中的数字执行的计算。按这种方式,单元引用可以充当等式中的变量,由此允许在单元之间定义精确的数学关系式。在技术、商业和专利文献中,包括诸如函数和宏的高级功能的表单程序的结构和操作都有记载。为了概览,例如参见1990年由Borland-OsbomelMcGraw-Mll出版的Cobb,S.的Using Quattro Pro 2;以及1985年,Que公司,LeBlond,G.和Cobb,D.,Using 1-2-3。把前面所述的每一公开内容合并于此,以供参考。
电子表单相比于它们的纸张对应物具有许多优势。第一,电子表单比它们的纸张对应物大得多(即,能保存更多信息);具有成千乃至数百万单元的电子表单不是什么罕见的事情。表单程序还允许用户执行“what-if”方案。在把一组计算关系式输入工作表之后,例如由于嵌入的公式,可以使用不同的假定集合来重新计算信息的扩展(spread),每一重新计算的结果几乎瞬时呈现。利用纸张和铅笔手工地执行这种操作往往要求随着做出的每一改变重新计算模型中的每一关系式。每个电子表单都非常适合于解决“what-if”问题,即改变输入并观看输出发生什么变化。
电子表单通常用于实现成本计算(costing)和定价(pricing)工具,特别是用于面向服务的要约(offering)。这种工具仅仅是基于一组输入数据表征一组输出数据的模型(或者是成本计算模型或者是定价模型)的实现方式。在输入数据当中,必须区分不同的类型·范围数据,其专门针对报价单(quotation)并且用于量化待交付的服务范围。对于远程管理要约来说,典型的范围数据例如是待管理的对象数目。
·模型数据,规定不是随范围而定、而是随模型而定的参数。典型的模型数据例如是劳动率,给具有特定技能水平的某人每小时的成本。
成本计算/定价模型可能会十分复杂,并且所得表单工具也会十分复杂,涉及跨越不同表单的大量公式。这种公式涉及中间结果,它们自己涉及输入数据(范围数据或者模型数据),或者其它中间数据。这种中间结果数据可以构成具有相当复杂结构的树。可以把输出数据看作树干,而把输入数据看作树枝上的叶子。
如果成本计算/定价工具表单向某人公开,那么此人可以容易地“反向操纵(reverse engineer)”此工具,以便确定作为模型一部分的所有不同中间结果。这种中间结果可以包含机密信息(通常是模型数据),所述成本计算/定价工具表单的作者不希望与第三方共享该机密信息。尽管如此,他/她还是可能希望共享当被提供范围数据时产生输出数据的工具。
对应于此实例的典型例子如下。假定公司X目前正通过直接销售渠道递送要约,并且希望依靠类似商业伙伴的间接渠道,以便实现更广阔的机遇。如果内部成本计算/定价模型被公开给商业伙伴,那么此商业伙伴将易于访问公司X拒绝公开的信息。相反地,公司X必须尽量给予此商业伙伴用于使销售周期简化的所有相关工具,例如成本计算/定价工具。利用常规的表单工具无法解决这种困境,甚至更加明白的是,表单保护很容易被互联网上的非法程序破坏。
问题是要(在电子表单内)构造一种实现成本计算/定价模型的工具·给予工具的用户对模型内部的有限可视度,·同时对于工具作者维护对包括模型数据的所有参数的完全控制。
发明内容
·本发明的目的在于在电子表单内规定包含输出数据或者范围数据或者模型数据的单元。
·本发明的又一目的在于构造表示中间结果序列的内部表,其用于在输出数据和范围及模型数据之间建立一组层次关系。
·本发明的又一目的在于建立一种根据范围和模型数据直接联系输出数据的关系式。
·本发明的又一目的在于规定哪些模型数据必须被隐藏。
·本发明的又一目的在于建立根据范围数据并且根据没有隐藏的模型数据直接联系输出数据的关系式。
·本发明的又一目的在于去除参考中间结果或者隐藏的模型数据的单元,以便使所得电子表单文件只包括输出数据、范围数据和未隐藏模型数据。
发明内容本发明涉及一种如独立权利要求所定义的系统和方法。
更具体来讲,本发明涉及用于在电子表单中隐藏模型的敏感数据的方法。该方法包括以下步骤·识别表单中的模型,此模型包括·包括输入数据的一个或者多个单元;·包括中间结果的一个或者多个单元,每一中间结果均被定义为一等式的结果,所述等式包括一个或者多个输入数据和/或一个或者多个中间结果作为自变量;·包括输出数据的单元,所述输出数据被定义为一等式的结果,所述等式包括一个或者多个输入数据和/或一个或者多个中间结果作为自变量;·为中间结果建立只包括输入数据作为自变量的等式;·为输出数据建立只包括输入数据作为自变量的等式;·去除包括中间结果的单元内容,以便使所得模型只包括·包括输入数据的一个或者多个单元;·包括定义为等式结果的输出数据的单元,所述等式只包括输入数据作为自变量。
在从属权利要求中提供了本发明的进一步的实施例。
参考如下说明书、权利要求书和附图,本发明的先前的连同其它目的、特征和优势将更容易理解。
在所附权利要求书中阐明了代表本发明的新颖性和创造性的特征。然而,当结合附图参照如下对举例说明的实施例的详细说明,将更好的理解本发明本身及其优选的使用方式、进一步的目的和优势,其中图1A是可以具体实现本发明的计算机系统的框图。
图1B是包括用于执行本发明的操作系统、应用软件和用户界面的软件系统的框图。
图1C举例说明了可以具体实现本发明的基本体系结构和图形用户界面的功能。
图2A示出了用于本发明优选实施例的表单笔记本界面。
图2B示出了图2A中示出的笔记本界面的工具栏组件。
图2C和2D示出了用于快速地访问和操纵图2A中示出的笔记本界面的单个页面的页面标识符。
图3是举例说明了输入数据和输出数据之间的层次关系的框图。
图4A、4B、4C、4D和4E分别示出了范围数据、模型数据、输出数据和两组中间结果数据的例子。
图5借助于举例规定了在不同数据之间建立的各种关系。
图6是示出了用于沿其组织数据的树形结构的例子的框图。
图7是举例说明了根据本发明的方法的流程图。
具体实施例方式
呈现如下描述以便使本领域中普通技术人员能够做出并且使用本发明,并且该描述是在专利申请及其要求的上下文中提供的。对此处所述的优选实施例和通用原理及特征的各种修改对于本领域技术人员来说都将是显而易见的。由此,本发明不意指局限于所示出的实施例,而是与此处公开的原理和特征相一致的最宽范围一致。
硬件如图1A所示,本发明可以在计算机系统100上具体实现,所述计算机系统100包括中央处理器101、主存储器102、输入/输出控制器103、键盘104、指示设备105(例如鼠标、跟踪球、笔设备等等)、显示设备106和大容量存储设备107(例如硬盘)。根据需要,系统100中还可以包括诸如打印设备108的额外输入/输出设备。如图所示,系统100的各种组件通过系统总线110或者类似体系结构通信。
如图1B所示,计算机软件系统150被提供以便引导计算机系统100的操作。存储在系统存储器102和盘存储器107中的软件系统150包括内核或者操作系统151和外壳或者界面153。诸如应用软件152的一个或多个应用程序可以被“加载”(即,从存储设备107转送到存储器102中),以便由系统100执行。系统100通过用户界面153接收用户命令和数据;然后这些输入可以由系统100依照来自操作模块151和/或应用模块152的指令来处理。界面153、优选的是图形用户界面(GUI)也用来显示结果,因此用户可以提供额外的输入或者终止会话。在优选的实施例中,操作系统151和界面153是可以从Redmond,Wash的微软公司获得的Microsoft Win95。另一方面,应用模块152包括下文进一步详细描述的本发明的表单笔记本(spreadsheet notebook)。
界面介绍以下描述将集中于本发明当前的优选实施例,其被实现在可在Microsoft Windows环境下操作的表单应用程序中。然而,本发明不局限于任何特殊的应用或者任何特殊的环境。相反,本领域技术人员将发现本发明的系统和方法可方便地应用于各种系统和应用软件,包括数据库管理系统、字处理程序等等。此外,本发明可以在各种不同平台上具体实现,包括Macintosh、UNIX、NextStep等等。因此,随后对示例性实施例的描述是出于举例说明而非限制性的目的。
现在参考图1C,系统100包括窗口式界面或者工作空间160。窗口160是矩形的图形用户界面(GUI),用于显示在屏幕106上;根据需要,可以依照各种大小和格式(例如,平铺或者层叠)来显示额外的窗口元件。在窗口160的顶端有菜单栏170,具有多个用户命令选择,每个用户命令选择可以启动额外的子菜单和软件工具以供应用对象使用。窗口160包括客户区180,用于显示并且操纵屏幕对象,诸如图形对象181和文本对象182。基本上,客户区是用户与数据对象交互的工作空间或者观察口,其中所述数据对象驻留在计算机系统100内。
窗口式界面160包括屏幕光标或者指针185,用于选择或者启动感兴趣的屏幕对象。响应于来自指示设备105的用户移动信号,光标185穿过屏幕106浮动(即,自由地移动)至所期望的屏幕位置。在光标移动期间或者之后,用户可以生成用户事件信号(例如,鼠标按钮“点击”和“拖动”),以便选择并且操纵对象,正如所属技术领域已知的那样。例如,窗口160可以分别通过“点击”(选择)屏幕组件172、174/5和177/8被关闭、缩放或者滚动。
在优选的实施例中,屏幕光标185由鼠标设备控制。可以分别从各种供应商那里获得单按钮、双按钮或者三按钮的鼠标设备,所述供应商包括加利福尼亚州Cupertino的Apple Computer、华盛顿Redmond的Microsoft Corporation和加利福尼亚州Fremont的Logitech Corporation。更加优选的是,屏幕光标控制设备105是两按钮的鼠标设备,包括左右“鼠标按钮”。
对鼠标设备的程序设计技术和操作在程序设计和硬件文献中记载;例如参见1989年的Microsoft Mouse Programmer′s Reference,Microsoft Press。诸如Windows的GUI事件驱动系统的通用构成和操作也是所属技术领域已知的;例如参见1990年由Petzold,C.提出的Programming Windows第二版,Microsoft Press。把每一公开内容合并于此,以供参考。
优选的界面现在将描述图2A中示出的本发明的表单笔记本界面。本发明的表单笔记本或者工作薄包括笔记本工作空间200,用于接收、处理并且呈现信息,包括字母数字以及图形信息。笔记本工作空间200包括菜单栏210、工具栏220、当前单元指示符230、输入行231、状态行240和笔记本窗口250。所述菜单栏210响应于用户输入来显示并且启动主要级别的用户命令。菜单210还启动额外的下拉菜单,正如在Windows应用程序中已知的那样。输入行231接收对于单元内容的输入和编辑的用户命令和信息,其可以包括数据、公式、宏等。指示符230显示当前光标(即,活动单元)位置的地址。在状态行240,系统100显示关于工作薄当前状态的信息;例如,“READY(就绪)”指示符指的是系统已经准备好由用户选择另一待执行的任务。
图2B中更加详细示出的工具栏220包括工具行或者板,用于为用户选择通常使用的菜单命令或者属性提供迅速的方式。在示例性的实施例中,工具栏220包括文件操纵按钮221、打印按钮222、撤消按钮223、剪切、复制和粘贴按钮224、信息弹出窗口按钮工具225、区域选择按钮226、字体复制按钮227、列缩放按钮228和求和按钮229。这些按钮的功能通过它们的名称已经表示出来了。例如,按钮224向/从Windows剪贴板剪切、复制和粘贴数据和对象。相同的动作可以作为编辑菜单(可以从菜单栏210中获得)中对应的命令获得。
提供用于输入并且显示感兴趣信息的界面的笔记本包括多个表单页面。每一页面可以包括常规的窗口特征和操作,诸如移动、缩放和删除。在优选的实施例中,所述笔记本包括256个表单页面,所有的页面在大容量存储设备107上被另存为单个盘文件。工作空间200可以显示一个或多个笔记本,每一笔记本根据用户规定的限制来缩放和定位(例如,平铺、重叠等等)。
笔记本的每一表单页面包括2-D扩展(spread)。例如,来自笔记本200的页面A包括依照行和列格式的栅格,诸如行3和列F。在每一行/列交叉点,提供了框或者单元(例如单元C4)来依照常规方式输入、处理并且显示信息。每一单元是可编址的,同时提供了选择器来表明当前活动的单元(即,当前选择的单元)。
如图2C-D所示,由页面标识符260来标识单个笔记本页面,优选的是,沿笔记本的一个边缘来定位。在优选的实施例中,每一页面标识符具有沿笔记本顶部边缘定位的标签组件(tab member)的形式(例如,组件261a、262a、263a)。每一标签组件可以包括有代表性的记号,诸如文本或者图形标志,包括表示对应页面内容的用户所选标题。在图2C中,把标签组件260设定为它们各自的缺省名。例如,把最初的三个标签组件(组件261a、262a、263a)分别设定为A、B和C。然而,通常由用户为标签组件提供给定的描述名。如图2D所示,例如,最初的三个标签组件现在已经被设定为“Contents(内容)”(标签组件261b)、“Summary(概要)”(标签组件262b)和“Jan(一月)”(标签组件263b)。按类似方式,把其余标签设定为一年的后来的几个月。依照此方式,用户把页面标识符和来自普通页面笔记本的常见标签相关联。由此,用户已经知道如何选择感兴趣的页面或者扩展仅仅选择对应于所述页面的标签(当从纸张笔记本中选择页面时人们往往也这样做)。
除了辅助选择适当的信息页面以外,用户可自定义的页面标识符用来辅助表单公式的输入。例如,当参考另一页面上的单元输入公式时,用户可以只使用公式本身中的描述性页面名称(如下文所描述的那样),由此对于用户而言,理解被参考的信息或者单元的关系更加容易。
在Windows的Quattro Pro(Getting Started、User′s Guide和Building Spreadsheet Applications)中可以找到表单笔记本界面的特征和操作的一般说明,其可以从Borland International获得。
隐藏模型内的敏感数据假定假定由所研究的模型提供单个输出数据。对于以若干输出数据为特征的实例来说,可以把模型视为不同模型的集合,其中每个模型规定单个输出数据。
符号首先介绍某些符号和命名规则,这将有助于理解本发明。
·OD对应于输出数据。
·{SDi}对应于范围数据集合。在这里假定这些范围数据中的一些数据是所研究的模型的一部分。范围数据由索引i标识。
·{MDj}对应于模型数据的集合。在这里假定这些模型数据中的一些数据是所研究的模型的一部分。模型数据由索引j标识。
·{IRk}对应于中间结果的集合。在这里假定这些中间结果中的一些是所研究的模型的一部分。中间结果由索引k标识。
在上述数据之间定义的不同关系式对应于拥有这些数据的电子表单单元内找到的不同公式。这些关系式形式上由如下数学函数表示OD=F0(SDi,MDj,IRk) (1)必须指出,所有可利用的输入数据({SDi}和{MDj})不必都存在于上述公式中。相同的注释也适用于转换定义中间数据的关系的公式(如下面所示)。
IRk1=Fk1(SDi,MDj,IRk) (2)由于假设在电子表单中没有循环引用(也就是说,数据是自身的函数),所以某些中间结果是这样的IRk2=Fk2(SDi,MDj)(3)这意味着这些中间结果只依赖输入数据。
可见,关系的集合可以通过如图3所示树形结构被形式化。这种树形结构在对应于输出数据OD 301的最低级别和对应于中间结果的最高级别之间定义了分级结构,其中所述最低级别可以任意地设定为1,而最高级别位于前项序列的更深处。在由图3示出的情况下,第一中间结果IRk1302处于2级,而3级对应于第二中间结果IRk2304、范围数据SDi303和模型数据MDj305。可以采用常规的技术(此处没有描述)来分配这种级别。
本发明的原理本发明的原理依赖于沿如下步骤序列的计算机代数。
A.第一步为构造一种关系式(等式),其中输出数据只取决于输入数据,所述等式如下OD=F{SDi,MDj} (4)这可以通过如下方式来执行通过类型(2)IRk1=Fk1(SDi,MDj,IRk)或者类型(3)IRk2=Fk2(SDi,MDj)的对应等式,递归替代每一类型(2)等式IRk1=Fk1(SDi,MDj,IRk)中的每一自变量IRk。
例如,·如果每一自变量IRk由类型(2)的等式IRk1=Fk1(SDi,MDj,IRk)替代,那么该步骤将在于构造如下关系式IRk1=Fk1(SDi,MDj,Fk(SDi,MDj,IRk))。此时,所有所得等式具有类型(2)。下一步仍是通过类型(2)或者(3)的等式替代类型(2)的每一等式的每一自变量IRk。当每一自变量可以由类型(3)的等式限定并且输出数据可以在类型(4)的等式中表示出来时,此迭代过程结束。
·如果每一自变量IRk由类型(3)的等式IRk2=Fk2(SDi,MDj)替代,那么该步骤将在于构造如下关系式IRk1=Fk1(SDi,MDj,Fk(SDi,MDj)),这是类型(3)的等式。下一步在于通过类型(3)的对应等式来替代类型(1)的等式中的所有自变量IRk,以便获得类型(4)的等式。
·如果至少一个自变量IRk由类型(2)的等式IRk1=Fk1(SDi,MDj,IRk)替代,那么所得等式的至少一个将是类型(2)。下一步将在于通过类型(2)或者(3)的等式替代类型(2)的每一等式的每一自变量IRk。当每一自变量可以由类型(3)的等式限定时并且输出数据可以在类型(4)的等式中表示出来时,此迭代过程结束。
B.第二步为通过在计算机代数中可利用的常规技术、诸如因式分解来简化等式(4)OD=F(SDi,MDj)。
注意这两个靠前的步骤A和B可有利地嵌套,以便使公式尽可能简化。
C.第三步为在等式(4)OD=F(SDi,MDj)内通过它们的值替代隐藏的模型数据,以便对用户隐藏模型数据。
D.第四步为简化(仍是通过计算机代数)所得公式。例如,如果所有模型数据都由它们的值替代,那么所得模型将被简化为其目标其中只把范围数据用作参数的公式,如下面所示OD=F(SDi) (5)所得的新公式(5)OD=F(SDi)取代对应于等式(1)、(2)和(3)的公式集合。这些等式(1)、(2)和(3)可以通过删除对应单元的内容来简单地从电子表单中去除。显而易见的是,所得数据需要被记录在新文件中,以避免由等式(1)、(2)和(3)算出的根信息丢失。
计算机代数现在是一种众所周知的技术,可以在诸如“Maple”、“Mathematica”、“MatLab”和“MuPad”的商业产品中获得,或者作为类似“Yacas”(参见http//yacas.sourceforge.net/yacas.html)的共享软件,或者是诸如如下页面(http//www.loria.fr/~zimmerma/CalculFormel/)指出的许多其它技术。由于可以通过宏启动的行业标准应用编程接口,这种技术可以在易于与类似电子表单的办公室应用相接口的工具中利用。在此文献的其余部分中,由于大部分工具共享各种各样的符合我们需要的类似功能,将不假定一个特殊的工具,其中这些功能涉及公式简化(例如通过因式分解技术)或者公式评估。
举例本发明将通过根据远程网络管理领域中实际成本计算/定价模型推导的例子来描述。
·在表4A中描述了范围数据。它们对应于·服务合同的持续期(范围数据“year”),·管理的网络设备的数目(范围数据“dev”),以及·自定义位置的数目(范围数据“loc”)。
·在表4B中描述了模型数据。它们对应于规定不同成本因子(driver)的多个变量,诸如·每小时的劳动率(模型数据“hrmon”、“hrpb”和“hrrep”),·硬件费用(模型数据“srvcost”),·软件许可证费用(模型数据“sfwfee”)。
·在表4C中表示了输出数据。它对应于给出总合同价值的单个输出数据(输出数据“tcv”)。
·通过下面的两个表4D和4E表示中间结果。
·第一个表4D包括对应于每月费用或者一次费用的中间结果。
·第二个表4E包括对应于每年随成本因子而定的中间结果。
在输出数据、中间结果和输入数据之间建立的关系式是根据成本模型表单内的多个单元的内容而规定的,并且对应于表5中规定的等式。每一等式通过如下方式来识别·类型(type),·级别(level),·次序(rank)。
例如,此表5内的第一个等式tcv=mlc*year*12+otc(次序等于1)根据范围数据“year(年)”并且根据中间结果“mlc”和“otc”来转换用于确定输出数据“tcv”的关系式。由于处于树层级的顶端,所以此第一等式接收1级,并且具有类型(1)。
在图6表示的树中概括了先前的关系式。此树还规定用于在不同中间结果之间定义层级的级别。例如,最高层级1级对应于输出数据“tcv”601,第二级对应于中间结果“mic”602和“otc”603等等,直到达到对应于中间结果“coef1”604的最低层级12级。
步骤A和B在本例子中,如先前描述的那样,最初的两个步骤A和B如下被执行,从最高12级的等式、也就是“coef(1)=1”开始,向下延续到7级coef(1)=lcoef(2)=coef(1)×eff=1×eff=effcoef(3)=coef(2)×eff=eff×eff=eff2coef(4)=coef(3)×eff=eff2×eff=eff3coef(5)=coef(4)×eff=eff3×eff=eff4coef(6)=coef(5)×eff=eff4×eff=eff5
应注意的是,在先前的等式中,步骤A和B已经被嵌套以便允许计算机代数算法执行简化的形式αn-1×α=αn。
然后,继续6级的等式,从次序31到36开始,并且使用变量“i”作为值1和6之间的整数rep(i)=dev×hrrep×hinyrcrep×12×coef(i)=dev×hrrep×hinyycrep×12×effi-1]]>同样,我们获得次序25到30的等式pb(i)=dev×hrpb×hinyycpb×12×coef(i)=dev×hrpb×hinyycpb×12×effi-1]]>并且获得次序19到24的等式mon(i)=dev×hrmon×hinyycmon×12×coef(i)=dev×hrmon×hinyycmon×12×effi-1]]>产生5级(次序13到18)的等式labor(i)=rep(i)+pb(i)+mon(i)labor(i)=dev×hrrep×hinyycrep×12×effi-1+dev×hrpb×hinyycpb×12×effi-1+dev×hrmon×hinyycmon×12×effi-1]]>labor(i)=dev×hiny12×(hrrepycrep+hrpbycpb+hrmonycmon)×effi-1]]>然后可以把4级等式写为otcldays=otcday×locotcs=dev×sfwfeemlcl=1year×Σi=1i=yearlabor(i)=1year×Σi=1i=yeardev×hiny12×(hrrepycrep+hrpbycpb+hrmonycmon)×effi-1]]>mlcl=dev×hiny12×year×(hrrepycrep+hrpbycpb+hrmonycmon)×Σ×i=1i=yeareffi-1]]>mlcl=dev×hiny12×year×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff]]>然后可以把3级的等式写为
mlcm=trv12]]>mlch=srvcost×devsrvcap×adm×12]]>mlcs=otcs×smr12=dev×sfwfee×smr12]]>otcm=trv×locotch=ootcl=otcldays×hrrep+mlclotcl=otcday×loc×hrrep+dev×hiny12×year×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff]]>然后把2级等式写为otc=otch+otcs+otcl+otcmotc=dev×sfwfee+otcday×loc×hrrep+trv×loc+dev×hiny12×year(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff]]>otc=loc×[otcday×hrrep+trv]+dev×[sfwfee+hiny12×year×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff]]]>mlc=mlch+mlcs+mlcl+mlcmmlc=srvcost×devsrvcap×adm×12+dev×sfwfee×smr12+dev×hiny12×year×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff+trv12]]>mlc=dev12×[srvcostsrvcap×adm+sfwfee×smr+hinyyear×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff]+[trv12]]]>对于最后获得的1级公式,给出输出数据“tcv”tcv=mlc×year×12+otctcv=(dev12×[srvcostsrvcap×adm+sfwfee×smr+hinyyear×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff]+[trv12])×year×12+Λ]]>Λloc×[otcday×hrrep+trv]+dev×[sfwfee+hiny12×year×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff]]]>tcv=loc×[otcday×hrrep+trv]+year×[trv]+ΛΛdev×[sfwfee+year×(srvcostsrvcap×adm+sfwfee×smr)+hiny×(hrrepycrep+hrpbycpb+hrmonycmon)×1-effyear1-eff×(1+112×year)]]]>这表明输出数据“tcv”是通过如下形式的函数根据输入数据(“year”、“dev”、“loc”)推导出的tcv=loc×A+year×B+dev×C+dev×year×D+devyear×E+dev×Fyear×G+devyear×Hyear×I]]>
其中大写字母表示常量。
步骤C现在假定目标是隐藏所有模型数据,除用于规定行进到顾客住所的平均费用的“trv”之外。步骤C通过其对应值来替代前面公式中的每一模型数据(除了“trv”),如下面所示tcv=loc×[1.5×75+trv]+year×[trv]+ΛΛdev×[84+year×(100002500×3+84×15%)+1500×(75800+70400+55450)×1-0.95year1-0.95×(1+112×year)]]]>步骤D最后的步骤在于向计算机代数引擎提供上述公式,以便执行括号内的表达式的简化。这样做产生如下公式tcv=loc×[112.5+trv]+year×[trv]+dev×year×[13.933]+devyear×[977.43055]Λ]]>Λ-devyear×0.95year×[977.43055]+dev×[11813.166]-dev×0.95year×[11729.166]]]>很明显,没有人能够“反向操作”这种公式来拟定基础模型和成本因子。因此如果利用此公式来填充表单单元,并且如果去除拥有中间结果的所有单元,那么当前的问题将得以解决。根据本发明的表单文件包括原始模型的可靠的并且正在使用的版本,而不用公开任何其内部的、敏感的信息。
方法如先前例子所示那样,本发明遵循根据图7中示出的流程图的方法。
·在步骤701,提示表单用户规定包括输出数据OD的单元。我们早先已经假定通过模型产生单个输出数据,以便使单个单元必须规定在电子表单文件内。对于产生多个输出数据的模型来说,仅仅需要为每个单个输出数据重复本方法即可。
·在步骤702,提示表单用户规定对应于范围数据{SDi}的单元。
·在步骤703,提示表单用户规定对应于模型数据{MDj}的单元。
·在步骤704,创建所谓的中间结果表(缩写为IRT),以便记录包含在表单中的中间结果IR的集合,并且把输出数据与范围数据和模型数据链接。此IRT由记录集合组成,每一记录均包括如下字段·单元地址字段(缩写为CA)。如果该单元被命名,那么单元名可以替代单元地址。
·单元类型字段(缩写为CT)。
·单元级别字段(缩写为CL)。
·单元内容字段(缩写为CC)。
此表是从对应于输出数据的第一记录开始构建的,其中CL(单元级别)默认为1。如下记录的创建包括如下步骤·解析已经存在的记录的CC(单元内容)字段的公式;·在解析的公式中识别既不是SD(范围数据)又不是MD(模型数据)的变量。这种变量对应于中间结果(IR)。
·对于每个对应于给定IR的创建的记录而言,给予CL(单元级别)字段的值等于父级IR的CL字段的最高值加1。
当对于所有创建的记录来说,公式指出SD或者MD或者记录的IR的变量时,此过程完成。
·在步骤705,向计算机代数引擎提供包含在IRT的CC字段中的公式,以便构造类型(4)的公式OD=F{SDi,MDj}。此操作还通过起动向计算机代数引擎提供最高CL的公式CC并且简化最后提供的CC来迭代地执行。此步骤序列在先前例子中说明了。
·在步骤706,把计算机代数引擎构造的所得公式记录在表单文件的单元中,例如记录在先前空白的单元内,或者作为先前包含OD(输出数据)的单元的新版本来记录。
·在步骤707,提示电子表单的用户规定哪些是需要隐藏的MD(模型数据)。这可以通过常规的用户界面技术来进行,诸如弹出窗口和对话框,或者如果假定所有MD必须都被隐藏,那么这甚至可以被简化为空的步骤(如果不是这样,那么在步骤802把输入数据规定为范围数据)。
·在步骤708,在步骤706记录的公式内,隐藏的MD由它们的值替代。
·在步骤709,向计算机代数引擎提供此公式(其中隐藏的MD由它们的值替代)以便简化。
·在步骤710,利用与步骤706相同的方式把计算机代数引擎返回的简化公式记录在表单文件的单元中。
·在步骤711,把所有IR(中间结果)单元(显然包括原始OD单元)和所有隐藏的MD单元从电子表单文件上去除。
·在步骤712,提示用户重命名并且保存所得更新的文件。
特殊实施例在常规的成本计算/定价工具中,最终用户可以容易地确定作为模型一部分的所有不同中间结果。这种中间结果可以包含机密信息(通常是模型数据),这些信息是成本计算/定价工具的电子数据表作者不希望与第三方共享的。尽管如此,当被提供范围数据时,作者会希望共享产生输出数据的工具。
有益的是,本发明可用于与第三方共享成本计算/定价模型,而不会公开包含机密信息(通常是模型数据)的中间结果。
例如,公司X当前通过直接销售渠道递送要约,并且希望依赖类似商业伙伴的间接渠道,以便实现更广阔的机遇。由于本发明,能够与一个或者多个商业伙伴共享内部成本计算/定价模型,同时能够保持敏感信息的保密性。
虽然已经参照优选实施例特别示出并且描述了本发明,但是应该理解的是,在不脱离本发明的精神和范围的情况下,可以对其做出各种形式上和细节上的改变。
权利要求
1.一种用于在电子表单中隐藏模型的敏感数据的方法,所述方法包括如下步骤识别表单中的模型,所述模型包括包括输入数据的一个或者多个单元;包括中间结果的一个或者多个单元,每一中间结果均被定义为一等式的结果,所述等式包括一个或者多个输入数据和/或一个或者多个中间结果作为自变量;包括输出数据的单元,所述输出数据被定义为一等式的结果,所述等式包括一个或者多个输入数据和/或一个或者多个中间结果作为自变量;为中间结果建立只包括输入数据作为自变量的等式;为输出数据建立只包括输入数据作为自变量的等式;去除包括中间结果的单元的内容,使得所得模型只包括包括输入数据的一个或者多个单元;包括被定义为一等式的结果的输出数据的单元,所述等式只包括输入数据作为自变量。
2.如前一项权利要求所述的方法,其中为中间结果建立只包括输入数据作为自变量的等式的步骤还包括如下步骤用对应的等式来递归地替代定义中间结果的每一等式中的每一中间结果自变量,直到所有的所得等式只包括输入数据自变量。
3.如先前任一项权利要求所述的方法,其中为输出数据建立只包括输入数据作为自变量的等式的步骤还包括如下步骤用只包括输入数据自变量的所得等式来替代定义输出数据的等式中的每一中间结果自变量。
4.如先前任一项权利要求所述的方法,其中所述的用只包括输入数据自变量的所得等式来替代定义输出数据的等式中的每一中间结果自变量的步骤还包括如下步骤简化定义输出数据的等式,所述等式只包括输入数据作为自变量。
5.如先前任一项权利要求所述的方法,其中识别模型的步骤还包括如下步骤在输入数据当中识别被定义为范围数据的输入数据;和被定义为模型数据的输入数据。
6.如前一项权利要求所述的方法,其中所述的识别模型的步骤包括接收规定哪个单元包括输出数据、哪些单元包括范围数据、哪些单元包括模型数据的命令。
7.如前一项权利要求所述的方法,其中所述的为输出数据建立只包括输入数据作为自变量的等式的步骤还包括如下步骤用一个值来替代等式中的每一模型数据,使得定义输出数据的等式只包括范围数据作为自变量。
8.如前一项权利要求所述的方法,其中所述的用一个值来替代等式中的每一模型数据以使得定义输出数据的等式只包括范围数据作为自变量的步骤还包括如下步骤简化定义输出数据的所得等式,所述等式只包括范围数据作为自变量。
9.如权利要求7至8中任一项所述的方法,其中所述的去除包括中间结果的单元的内容的步骤还包括如下步骤从电子表单中去除包括模型数据的单元的内容,使得所得模型只包括包括范围数据的一个或者多个单元;包括被定义为一等式的结果的输出数据的单元,所述等式只包括范围数据作为自变量。
10.如前一项权利要求所述的方法,还包括如下步骤把所得模型用于一个或多个最终用户表单。
11.一种用于执行如先前任一项权利要求所述的方法的步骤的系统。
12.一种包括指令的计算机程序,当在计算机系统上执行所述计算机程序时,所述指令用于执行如权利要求1至10中任一项所述的方法。
全文摘要
在电子表单中隐藏模型的敏感数据的系统、方法和程序,该方法包括识别表单中的模型,包括包括输入数据的一或多个单元;包括中间结果的一或多个单元,每一中间结果被定义为一等式的结果,该等式包括一或多个输入数据和/或一或多个中间结果作为自变量;包括输出数据的单元,该输出数据被定义为一等式的结果,该等式包括一或多个输入数据和/或一或多个中间结果作为自变量;为中间结果建立只包括输入数据作为自变量的等式;为输出数据建立只包括输入数据作为自变量的等式;去除包括中间结果的单元的内容,使得所得模型只包括包括输入数据的一或多个单元;包括被定义为一等式的结果的输出数据的单元,该等式只包括输入数据作为自变量。
文档编号G06F21/62GK1892641SQ20061000427
公开日2007年1月10日 申请日期2006年2月13日 优先权日2005年6月29日
发明者弗雷德里克·鲍乔特 申请人:国际商业机器公司