用以提供扩展对象符号数据的方法及设备的制造方法

文档序号:10628105阅读:227来源:国知局
用以提供扩展对象符号数据的方法及设备的制造方法
【专利摘要】在所描述的实例中,一种实例性设备(206)包含:数据处置器(302),其具有用以接收对象数据的第一输入及用以输出所述对象数据的对象符号键?值对的第一输出;字符串处理器(304),其具有耦合到所述第一输出的第二输入及用以传达不具有字符串文字的所述对象符号键?值对的第二输出;及散列运算与加密处置器(306),其具有耦合到所述第二输出的第三输入及第三输出,所述第三输出用以传达以私钥签名的所述键?值对、用以传达以公钥加密的所述键?值对,且用以在所述经加密键?值对的关键字中传达所述经加密键?值对被加密的指示。
【专利说明】
用从提供扩展对象符号数据的方法及设备
技术领域
[0001] 本发明一般来说设及对象符号数据,且更特定来说设及用W提供扩展对象符号数 据的方法及设备。
【背景技术】
[0002] 在网络通信(例如,因特网通信)中,使用利用人类可读文本的通信标准通常是有 益的。此类通信标准通常更易于程序员理解,且可比应用程序特定二进制格式更灵活。使用 人类可读文本的一个实例性通信标准是化vaScript对象符号(JSON)JSO闲自常适合于因特 网通信,运是因为其与由许多因特网浏览器及其它应用程序开箱即用地(out-of-the-box) 支持的化vaScript紧密联系。

【发明内容】

[0003] 在所描述的实例中,数据处置器具有用W接收对象数据的第一输入及用W输出所 述对象数据的对象符号键-值对的第一输出。字符串处理器具有禪合到所述第一输出的第 二输入及用W传达不具有字符串文字的所述对象符号键-值对的第二输出。散列运算与加 密处置器具有禪合到所述第二输出的第=输入及第=输出,所述第=输出用W传达W私钥 签名的所述键-值对、用W传达W公钥加密的所述键-值对,且用W在所述经加密键-值对的 关键字中传达所述经加密键-值对被加密的指示。
【附图说明】
[0004] 图1是其中本文中所掲示的实例性方法及设备可经实施W产生及/或解析xJSON 及/或任何其它人类可读对象符号数据文件的实例性环境的框图。
[0005] 图2是图1的实例性xJSON处置器的实例性实施方案的框图。
[0006] 图3是图2的实例性产生器的实例性实施方案的框图。
[0007] 图4是图2的实例性解析器的实例性实施方案的框图。
[000引图5至化是表示可经执行W产生扩展JS0N数据的实例性计算机可读指令的流程图。
[0009] 图9到11是表示可经执行W解析扩展JS0N数据的实例性计算机可读指令的流程 图。
[0010] 图12是经结构化W执行图5到11的指令W实施图2到4的产生器及/或实例性解析 器的实例性处理器平台的框图。
【具体实施方式】
[0011] 物联网(ΙοΤ)指的是将广泛范围的装置加入到因特网的概念。"物"可为任何类型 的装置或系统,其通常包含先前不包含能够在网络(例如因特网)上通信的电路的许多装置 (例如,消费者器具、汽车、生物医学装置、电力插座、恒溫器及/或其它环境传感器)。举例来 说,咖啡机可包含嵌入式计算装置,所述嵌入式计算装置允许在因特网上唯一地识别咖啡 机且允许经由其它因特网连接的装置远程控制及监视实例性咖啡机。许多ΙοΤ装置包含低 成本及/或低功率计算装置W减少添加 ΙοΤ功能性所需的成本及物理空间。
[0012] 尽管使用人类可读文本来存储及发射数据对象的JS0N及其它标准(例如,可扩展 标记语言(XML)、另一种标记语言(YAML))(统称为对象符号数据)非常适合于与在因特网上 通信的装置一起使用,但本申请案中所掲示的实例性方法及设备提供对此类人类可读格式 的扩展W促进与有限资源装置(例如ΙοΤ装置)一起使用人类可读协议。运是有利的,因为所 掲示方法及设备促进与ΙοΤ装置及/或具有有限计算资源及/或和许多不同装置通信的任何 其它装置一起使用合意的对象符号数据格式。
[0013] 尽管本文中所掲示的扩展非常适合于与ΙοΤ装置一起使用,但所述扩展不限于与 ΙοΤ装置一起使用及/或由ΙοΤ装置使用。本文中所掲示的实例是参考扩展JS0N描述,在本文 中为了一致而将扩展JS0N称为xJSON。或者,扩展JS0N可与任何其它内容类型名称一起使用 及/或扩展可与任何其它协议或标准的扩展版本一起使用。本文中所掲示的方法及设备不 限于扩展JS0N。而是,扩展可与任何类型的基于人类可读的协议一起使用来存储及发射对 象。
[0014] 在JS0N中,对象由W开和闭大括号分隔的大量键-值对表示。关键字表示对象的性 质,且值识别所述性质的值。关键字与值由冒号分开。举例来说,JS0N中的人对象可在文件 中存储为:
[0015] {
[0016] "firstName":"John",
[0017] "lastName":"Smith",
[0018] "email":"John.smith@example. com",
[0019] "password"secret化sswordl23)"
[0020] }
[0021 ]在上文实例中,f irstName、lastName、emai 1 及 password 是关键字,且 John、Smith、 John. smith@example. com及secret化sswordl23是值。对象中的关键字可称为名称且可与 在将对象存储于应用程序中时(例如,JavaScript应用程序中的人对象)存储值的变量相 关。因此,JS0N对象提供用人类可读格式表示W二进制或任何其它格式存储的对象的 方式。
[0022] 本文中所描述的实例性扩展包含数据封包、对象序列化及散列运算/安全。
[0023] 如本文中所使用,数据封包指的是将压缩算法应用于关键字及/或值(例如,使用 GNU Zip(gzip)压缩关键字及/或值)。当接收到xJSON文件时,可识别xJSON文件中的经封包 数据并将其解压缩。
[0024] 如本文中所使用,对象序列化指的是将关键字及/或值转换为二进制值。在一些实 例中,接着将二进制值转换为文本格式(例如,使用Base64二进制到文本编码)。当接收到 xJSON文件时,可检测xJSON文件中的经序列化数据并将其反序列化/去编组。
[0025] 在一些实例中,散列运算/安全操作是通过产生键-值对的值的散列并将散列插入 到关键字中而执行。散列可用于通过将存储于关键字中的散列与针对键-值对的值所产生 的散列进行比较而确认值的内容。散列可另外或替代地用于捜索值中所含的数据。举例来 说,可对捜索参数进行散列运算,且可将捜索参数的散列与存储于关键字中的散列进行比 较w识别匹配,且因此识别匹配捜索参数的键-值对的值。另外或替代地,散列运算/安全还 可包含将关键字及/或值加密及用经加密数据替换未加密关键字及/或值。当接收到xJSON 文件时,可检测xJSON文件中的经加密数据并将其解密。
[0026] 在本文中所掲示的实例性方法及设备中,在将所掲示扩展应用于JS0N时,在已基 于xJSON扩展而产生及/或修改关键字及/或值时,具有xJSON能力的装置将限定符插入于所 述关键字及/或值中。限定符向其它具有xJSON能力的装置指示已应用xJSON扩展。举例来 说,可通过向关键字的末尾添加方括号及在方括号中插入限定符(例如,指示已应用的特定 扩展的限定符)而修改关键字。举例来说,如果将与字符V'相关联的扩展应用于先前段落 中所展示的人对象中的键-值对,那么xJSON表示可为:
[0027] {
[002引"firstName[x]" :" John",
[0029] "lastName[x]" :"Smith",
[0030] "email[x]":"John.smith@example. com"
[0031] "password[x]" :"secre1:Passwordl23)"
[0032] }
[0033] 限定符可替代地插入于添加到键-值对的值的方括号之间(例如,吁irst化me" John[xr )及/或限定符可添加到关键字及值两者(例如,吁irstName[x]" :" John[yr, "firstName[x]" : {x; V' : "John"})。或者,可将除方括号外的分隔符用于将识别符与关键 字及/或值分开(例如,花括号、单引号、引号、星号)。
[0034] 为了一致,本文中所掲示的实例是参考插入于键-值对的关键字中的方括号之间 的xJSON识别符而描述。然而,本发明不限于用于插入识别符的特定格式,且可使用任何其 它格式(包含上文所描述的那些格式)。
[0035] 将识别符插入于关键字名称及/或值中确保xJSON表示仍可由支持JS0N但不支持 xJSON的装置处理(例如,在一些实例中,使用xJSON技术将不防止使用JS0N但不支持xJSON 的装置解析xJSON文件,因为xJSON识别符是W与JS0的吾法一致的方式插入)。因此,使用 xJSON将不致使支持JS0N但不支持xJSON的装置在解析xJSON文件期间失败。而是,运些非 xJSON装置将继续操作,但不理解扩展。此方法增强具有xJSON能力的装置在其中一些装置 不支持xJSON的环境中操作的能力。
[0036] 将识别符插入于关键字中(如本文中所掲示)的额外优点允许在选择性基础上应 用xJSON扩展。举例来说,可将xJSON扩展应用于整个文件,可将其选择性地应用于文件中的 一或多个对象,或可将其选择性地应用于文件中的一或多个键-值对。因此,当处理xJSON文 件时,可根据扩展处理在关键字中包含xJSON识别符的键-值对,且可使用标准JS0N处理来 处理在关键字中不包含xJSON识别符的键-值对。此外,可将扩展中的不同者应用于文件中 的键-值对的子组。举例来说,在前述实例中:(a)可处理"人"对象(firstName、lastName及 email键-值对)W将散列值及用于散列运算的xJSON识别符插入于对应关键字中;(b)可对 password键-值对进行加密及散列运算;及(C)可将加密识别符、散列识别符及散列值插入 于对应关键字中。
[0037] 图1是其中本文中所掲示的实例性方法及设备可经实施W产生及/或解析xJSON 及/或任何其它人类可读对象符号数据文件的实例性环境100的框图。所述实例性环境包含 用W经由实例性网络104将实例性xJSON数据103传达到实例性第一装置106及实例性第二 装置108的实例性web服务102。如本文中所使用,短语"在通信中"(包含其变体)涵盖直接通 信及/或通过一或多个中间组件的间接通信,且不需要直接物理(例如,有线)通信及/或恒 定通信而是另外包含W周期性或非周期性间隔进行的选择性通信W及一次事件。
[0038] 在所说明实例中,实例性web服务102、实例性第一装置106及实例性第二装置108 使用JS0N数据文件来交换数据。根据所说明实例,实例性web服务102及实例性第一装置106 是具有xjSON能力的,因为其包含用W解析及/或产生基于与本文中所掲示的xJSON相关联 的扩展中的至少一者的文件的xJSON处置器110。根据所说明实例,实例性第二装置108是不 具有xJSON能力的,因为实例性第二装置108可解析及/或产生JS0N文件但不包含用于解析 及/或产生具有与本文中所掲示的xJSON相关联的扩展的xJSON文件的xJSON处置器110。如 本文中所掲示,尽管实例性第二装置108不能够使用与xJSON相关的扩展,但所说明实例的 由实例性web服务102及/或实例性第一装置106输出的实例性xJSON数据103可被成功地进 行解析(例如,在不导致解析错误的情况下进行解析)。
[0039] 在所说明实例中,web服务102是用于在因特网上供应信息的服务器计算机。或者, web服务102可为连接到实例性网络104的装置可与其通信的任何类型的装置。实例性web月良 务102将实例性xJSON数据103发送到实例性第一装置106及/或实例性第二装置108。实例性 web服务102还可从实例性第一装置106接收xJSON数据及/或从实例性第二装置108接收 JS0N数据。或者,实例性web服务102可仅能够接收数据(例如,xJSON数据及/或JS0N数据), 或可仅能够发送数据(例如,xJSON数据103及/或JS0N数据)。
[0040] 图1的所说明实例的网络104是因特网。或者,网络104可为任何类型的局域网、广 域网、有线网络、无线网络、专用网络及/或公用网络及/或其组合。实例性网络104将实例性 web服务102与实例性第一装置106及实例性第二装置108W通信方式禪合。
[0041] 图1的所说明实例的第一装置106为ΙοΤ装置,其包含用W解析及/或产生实例性 xJSON数据103的实例性xJSON处置器110。举例来说,第一装置106可为启用网络的微处理器 控制器。举例来说,第一装置106可为用于MCU应用的CC3100SimpleLink?Wi-Fi度<5物联网 解决方案或来自Texasitis仕uments?的CC3200SimpleLink?Wi-R?与物联网解决方案(单 忍片无线MCU)及/或包含CC3100或CC3200的装置。或者,第一装置106可为其中期望使用 JS0N数据的任何其它装置。
[0042] 图1的所说明实例的第二装置108可为其中期望使用JS0N数据的任何装置。第二装 置108包含于图1的实例性中W说明支持xJSON扩展的装置(例如,实例性web服务102及实例 性第一装置106)及不支持xJSO府广展的装置可连接到同一网络且可彼此通信。举例来说,当 W不与JS0N语法冲突的方式实施xJSON扩展时,包含至少一些键-值对(包含xJSON扩展(例 如,XJS0N文件))的JS0N文件(例如,实例性xJSON数据103)可由不支持xJSON的装置在不导 致解析错误的情况下进行解析。同样地,支持xJSO府广展的装置能够处理JS0N文件。
[0043] 实例性xJSON处置器110解析及/或产生xJSON文件(例如,根据JS0N协议产生且包 含至少一个键-值对(包含本文中所掲示的xJSON扩展中的一者(例如实例性xJSON数据103) 的文件)。连同图2-起进一步详细地描述xJSON处置器110的实例性实施方案。尽管图1图解 说明实例性web服务102及实例性第一装置106包含相同xJSON处置器110,但在其它实例中, 装置可包含不同X JS0N处置器(例如,实例性web服务102的X JS0N处置器110可W不同于实例 性第一装置106的xJSON处置器110的方式实施)。
[0044] 使用xJSON处置器110使得装置能够产生xJSON数据并解析xJSON数据(例如,包含 本文中所掲示的扩展的对象符号数据)。所说明实例的xJSON处置器110促进不受现有对象 符号协议支持的数据表示的使用。举例来说,xJSON处置器110可支持定制原语(例如,非常 适合于与嵌入式装置(例如ΙοΤ装置)一起使用的原语)的使用。举例来说,二进制型文字可 输入为"ObAAAA"或"0ΒΑΑΑΑ",其中V及"Β"指示值为二进制文字。在另一实例中,十六进制 型文字可输入为"OxAAAA"或"0XAAAA",其中V'及?'指示值为十六进制文字。基于硬件的 文字也可由xJSON处置器110支持。举例来说,可将识别符添加到关键字及/或值W指示易失 性类型的文字、用于硬件信号类型(输入、输出、两者)的文字及用于信号对象的Ξ态值。换 句话说,使用附加到关键字及/或值、插入于关键字及/或值中、替换关键字及/或值的部分 的识别符的灵活性允许xJSON处置器110指示关于关键字及/或值的包含指示值的状态(例 如,经加密、经压缩、经序列化)及/或值的目的(例如,用于硬件信号类型的文字)的信息。
[0045] 尽管图1的实例性环境100包含实例性web服务102、实例性第一装置106及实例性 第二装置108,但可使用任何数目及/或类型的装置。举例来说,环境可能包含两个装置及/ 或web服务、Ξ个装置及/或web服务、四个装置及/或web服务、数百个装置及/或web服务的 任何组合。
[0046] 图2是图1的实例性xJSON处置器110的实例性实施方案的框图。图2的实例性xJSON 处置器110包含:实例性接口 202,其用W发送及/或接收实例性对象符号数据200(例如,实 例性xJSON数据103);实例性解析器204,其用W解析实例性对象符号数据200 W输出实例性 对象数据210;实例性产生器206,其用W从实例性对象数据212产生实例性对象符号数据 200;及实例性化vaScript解释器208。尽管参考实例性第一装置106描述图2的xJSON处置器 110,但图2的xJSON处置器110可实施于另一装置(例如,实例性web服务102)中。
[0047] 所说明实例的实例性接口 202是网络接口 202,其将对象符号数据200(例如,实例 性xJSON数据103)发送到网络104及/或从所述网络及/或从包含xJSON处置器110的装置的 一或多个其它组件(例如,实例性web服务102的组件及/或实例性第一装置106的组件)接收 所述对象符号数据。举例来说,实例性第一装置106的xJSON处置器110可接收从实例性web 服务102检索的实例性xJSON数据103。实例性接口 202将从网络104接收的对象符号数据200 发射到实例性解析器204。实例性接口 202将从实例性产生器206接收的对象符号数据200发 射到对象符号数据200的所要目的地。举例来说,用于实例性第一装置106的xJSON处置器 110的接口 202可将由实例性产生器206产生的实例性对象符号数据200发射到实例性web月良 务 102。
[0048] 所说明实例的解析器204接收对象符号数据200并解析所述数据W提取由对象符 号数据200表示的对象。解析器204将经提取对象数据210发射到实例性化vaScript解释器 208。举例来说,返回到上文所论述的实例性人对象,解析器204从xJSON数据(例如, f irstName、lastName、emai 1及password)中所包含的键-值对检索人对象的元素且建立发 射到化vaScript解释器208的化vaScript人对象。实例性解析器204包含用于解析xJSON数 据的功能性,其包含数据封包、对象序列化及/或散列运算/安全扩展中的一或多者。连同图 4的框图一起进一步详细地描述解析器204的实例性实施方案。
[0049] 所说明实例的实例性产生器206建立对象符号数据200 (例如,xJSON文件)文件W 表示从化vaScript解释器208接收的对象数据212。举例来说,实例性产生器206可基于存储 于化vaScript解释器中的人对象而在xJSON中建立实例性人对象。由产生器206产生的对象 符号数据200被发射到接口 202W供发射到另一装置(例如,web服务102)。或者,xJSON处置 器110及/或包含xJSON处置器110的装置可存储对象符号数据200(例如,W供稍后发射及/ 或处理)。连同图3的框图一起进一步详细地描述实例性产生器206。
[00加 ]所说明实例的JavaScript解释器208是根据JavaScript编程语言操作W执行 化vaScript应用程序或任何其它化vaScript指令的软件运行时间环境。所说明实例的实例 性化vaScript解释器208存储对象数据210及/或212(例如,上文所描述的人对象)。尽管所 说明实例的化vaScript解释器208使用化vaScript,但化vaScript解释器208可替代地为可 接收由实例性解析器204输出的对象及/或将对象发射到实例性产生器206的任何其它运行 时间环境。
[0051] 图3是图2的实例性产生器206的实例性实施方案的框图。图3的实例性产生器206 包含实例性数据处置器302、实例性字符串处理器304、实例性散列运算与加密处置器306、 实例性压缩处置器308及实例性序列化处理器310。
[0052] 实例性数据处置器302接收对象数据312(例如,从实例性化vaScript解释器208接 收的实例性对象数据212)且产生填充有表示对象数据312的xJSON键-值对的对象符号数据 314。举例来说,实例性数据处置器302可提供接口(例如,应用程序编程接口(API)),可通过 所述接口接收产生xJSON文件的请求。实例性数据处置器302确定所述请求是否指示欲产生 xJSON文件或是否欲产生包含xJSON扩展的JS0N文件。举例来说,如本文中所详细地描述,如 果对象符号数据314不需要与不支持xJSON的装置兼容,那么可将由产生器206输出的对象 符号数据301格式化W由具有xJSON能力的装置处理(例如,在实例性解析器204将解析文件 且在不存在引号的情况下隐式地评估数据时,可排除根据标准JS0的吾法环绕关键字及值的 引号)。所说明实例的实例性数据处置器302记录xJSON文件的内容类型、创建对象数据312 的键-值对316(论述单个键-值对,但可使用多个键-值对)(例如,通过创建针对对象数据 312的变量命名的关键字及创建所述变量的值的对应值),且将键-值对316发送到实例性字 符串处理器304。
[0053] 图3的实例性字符串处理器304确定对象符号数据314的内容类型是xJSON还是标 准JS0N。如果对象符号数据314打算由具有xJSON能力的装置及不具有xJSON能力的装置进 行解析,那么字符串处理器304将围绕关键字及值的引号插入于键-值对316中。如果不期望 与不具有xjSON能力的装置的兼容性,那么字符串处理器304不插入引号,因为实例性键-值 对316的字符串将由具有xJSON能力的解析器(例如,图2的实例性解析器204)隐式地辨识。 举例来说,在期望非xJSON兼容性时可产生W下实例性人对象:
[0化4] {
[0055] 吁irstName" : "John",
[0056] "lastName" : "Smith",
[0057] "email":"John.smith@example. com",
[0化引 "password":"secret化sswordl23)"
[0化9] }.
[0060]或者,在不期望及/或不需要非xJSON兼容性时可产生W下实例性人对象:
[0061] {
[0062] firstName:John,
[0063] lastName: Smith,
[0064] email: John.smithiexample. com,
[00化]password: secretF*asswordl23)
[0066] }.
[0067] 实例性字符串处理器304将经处理键-值对318输出到散列运算与实例性加密处置 器306。
[0068] 图3的实例性散列运算与加密处置器306接收经处理键-值对318且确定经处理键- 值对318的散列运算及/或加密是否被请求。举例来说,产生对象符号数据314的请求可识别 针对其请求散列运算及/或加密的一或多个键-值对及/或对象。举例来说,如果对象包含用 户名字段及口令字段,那么可针对所有字段请求散列运算,但可仅针对口令字段请求加密。 或者,散列运算与加密处置器306可自动地确定期望散列运算及/或加密(例如,当键-值对 经识别为敏感数据(例如口令字段)时)。
[0069] 当散列运算及/或加密被请求时,散列运算与加密处置器306确定欲使用的所要密 码(例如,加密密码、散列运算密码、加密密码与散列运算密码的组合)。举例来说,针对执行 散列运算及/或加密的请求可识别密码,及/或实例性散列运算与加密处置器306可使用默 认密码。
[0070] 为了向其它装置证明经处理键-值对318的真实性,此实例的散列运算与加密处置 器306使用内容所有者(例如,针对其产生xJSON文件的数据的所有者)的私钥对经处理键- 值对318进行签名W产生经加密及/或经散列运算键-值对320。在此类实例中,经加密及/或 经散列运算键-值对320可由可存取对应于私钥的公钥的其它装置验证。
[0071] 当密码包含加密(例如,与仅包含数据签名相比)时,图3的实例性散列运算与加密 处置器306针对任何键-值对(针对其请求加密)将经加密及/或经散列运算键-值对320加 密。实例性散列运算与加密处置器306使用对应于可用于将经加密及/或经散列运算键-值 对320解密的私钥的公钥来将经加密及/或经散列运算键-值对320加密。举例来说,图2及/ 或4的解析器204可存储可用于将使用对应公钥加密的数据解密的私钥。
[0072] 实例性散列运算与加密处置器306接着对经加密及/或经散列运算键-值对320进 行散列运算(例如,在请求散列运算时对键-值对进行散列运算)。实例性散列运算与加密处 置器306对用于任何加密数据(与在加密之前的原始数据相比)的经加密值进行散列运算。
[0073] 所说明实例的散列运算与加密处置器306将密码密钥数据插入到所产生的经加密 及/或经散列运算键-值对320中(例如,将所述数据插入于xJSON文件中)。密码密钥数据识 别在将经加密及/或经散列运算键-值对320加密时所使用的一或多个密钥。举例来说,密码 密钥数据可包含用于针对其将公钥用于将经加密及/或经散列运算键-值对320加密的证书 的识别符,W使得实例性解析器204能够定位对应私钥W供在将经加密及/或经散列运算 键-值对320解密时使用。密码密钥可另外包含用于针对其将私钥用于对数据进行签名的证 书的识别符。在于单个xJSON文件中使用多个密钥的情况下,可W密码密钥数据中的顺序号 识别每一密钥。除用于加密密钥的识别符外,所说明实例的密码密钥数据还识别用于散列 运算及/或加密的特定密码算法W及对应于密码算法的任何参数。
[0074] 在一些实例中,散列运算与加密处置器306还插入公钥证书,所述公钥证书曾用于 将经加密及/或经散列运算键-值对320加密及/或可用于确认经加密及/或经散列运算键- 值对320中的签名数据。
[0075] 图3的实例的实例性散列运算与加密处置器306将散列运算的指示及/或加密的指 示插入于经加密及/或经散列运算键-值对320的对应关键字中。举例来说,针对其值经散列 运算的关键字,实例性散列运算与加密处置器306将' [#HHH扣'插入于关键字中,其中'#'是 散列识别符且是从散列运算得出的值。实例性散列运算与加密处置器306将'[sX# HHH扣'插入于经加密及/或经散列运算键-值对320的关键字中,其中's'是散列识别符,'X' 是在存在多个密钥的情况下用于签名及/或加密的密钥的索引值,'#'是散列识别符,且 是从散列运算得出的值。
[0076] 举例来说,W下是在散列运算与加密之前的人对象:
[0077] {
[007引"name" : "John Smith",
[0079] "email":"John.smith@example. com",
[0080] "passwords":["12345678","my-most-secret-passp虹ase", "abcdefg"]
[0081] }
[0082] 可由图3的实例性散列运算与加密处置器306针对W上人对象产生的经散列运算 及经加密人对象为:
[0083]
[0084]
[0085] 实例性散列运算与加密处置器306将经加密及/或经散列运算键-值对320输出到 实例性压缩处置器308。
[0086] 所说明实例的压缩处置器30如角定经加密及/或经散列运算键-值对320的压缩是 否被请求。举例来说,产生xJSON文件的请求可识别针对其请求压缩的一或多个键-值对及/ 或对象。或者,当键-值对及/或对象超过阔值大小时,压缩处置器308可自动地确定压缩被 期望。当压缩被请求时,压缩处置器308压缩(例如,zip)经加密及/或经散列运算键-值对 320(例如,所请求键-值对及/或所请求对象产生实例性经压缩键-值对322。所说明实例 的实例性压缩处置器308将用于经压缩数据的关键字插入于实例性经压缩键-值对322中。 举例来说,压缩处置器308可插入用于经压缩数据的所产生关键字(例如,例如_oX的关键 字,其中X是针对插入于所产生xJSON文件中的每一组所产生数据递增的数)W确保用于每 一组所产生数据的关键字是唯一的。图3的实例性压缩处置器308还将压缩识别符(例如, [Z])插入于实例性经压缩键-值对308中W向实例性解析器204指示经压缩键-值对308被压 缩。在所说明实例中,实例性压缩处置器308插入识别用于压缩的元数据的关键字的值且包 含经压缩数据。举例来说,压缩处置器308可使用gzip来压缩经加密及/或经散列运算键-值 对320且可插入识别算法的元数据及用于压缩算法的查找表。举例来说,压缩人对象的结果 可为:
[0087]
[0088] 实例性压缩处置器30則尋经压缩键-值对322输出到实例性序列化处理器310。
[0089] 所说明实例的实例性序列化处理器310确定实例性经压缩键-值对322的序列化是 否被请求。举例来说,产生xJSON文件的请求可识别针对其请求序列化的一或多个键-值对 及/或对象。当序列化被请求时,实例性序列化处理器310将所请求经压缩键-值对(例如,所 请求键-值对及/或所请求对象)序列化W产生实例性经序列化键-值对324。所说明实例的 序列化处理器310插入用于经序列化键-值对324的关键字。举例来说,序列化处理器310可 插入用于经序列化键-值对324的所产生关键字(例如,_oX,其中X是针对所产生xJSON对象 符号数据314中的每一组所产生数据递增的数)W确保用于每一组所产生数据的关键字是 唯一的。实例性序列化处理器310还将序列化识别符(例如,[b])插入于所述关键字中W向 实例性解析器204指示经序列化键-值对被序列化。图3的实例性序列化处理器310插入经序 列化数据作为用于经序列化键-值对324的关键字的值。在所说明实例中,实例性序列化处 理器310使用Base64转换将由序列化得出的二进制数据转换为ASCn文本。举例来说,将人 对象序列化的结果可为:
[0090]
[0091] 所说明实例的实例性序列化处理器310将所得经序列化键-值对324发射到实例性 数据处置器302W供发射到对象符号数据314的目的地(例如,经由实例性接口202及实例性 网络104发射到实例性web服务器102)。举例来说,对象符号数据314ile可经由实例性接口 202发射到实例性web服务102W供由实施于实例性web服务102中的xJSON处置器110中的实 例性解析器204进行解析。实例性web服务102可接着根据实例性web服务102的操作处理数 据对象。或者,可将对象符号数据314发射到任何其它所要位置。在一些实例中,数据处置器 302包含引用W调用对象符号数据314中的功能。举例来说,引用为吁uncl(argl,...a巧ΝΓ 的功能将致使解析器(例如,实例性解析器204)在解析对象符号数据时调用识别为"funcl" 的功能。或者,引用为"@uri壯uncl(argl,...argN)"的功能将致使解析器(例如,实例性解 析器204)致使由在位置"uri"处监听的服务器调用吁unci"。
[0092] 图4是图2的解析器204的实例性实施方案的框图。图4的实例性解析器204包含数 据处置器402、字符串处理器404、解密处置器410、反序列化处理器406及解压缩处置器408。
[0093] 图4的实例的数据处置器402接收待处理的实例性对象符号数据412(例如,xJSON 文件)文件。实例性数据处置器402从对象符号数据412提取键-值对及/或对象且将其发射 到实例性字符串处理器404。举例来说,数据处置器402可一次提取一个键-值对且将所述 键-值对作为实例性键-值对414来发射W供由实例性字符串处理器404、实例性反序列化处 理器406、实例性解压缩处置器408及/或实例性解密处置器410进行处理。或者,数据处置器 402可提取多个键-值对W供由实例性字符串处理器404、实例性反序列化处理器406及实例 性解压缩处置器408W及实例性解密处置器410进行处理。
[0094] 在由实例性字符串处理器404、实例性反序列化处理器406及实例性解压缩处置器 408W及实例性解密处置器410中的一或多者进行处理之后,实例性数据处置器402接收数 据对象(例如,实例性经解密对420)且将含有从实例性对象符号数据412提取的对象的实例 性对象数据422发射到实例性化vaScript解释器208。
[00M]图4的实例性字符串处理器404接收由数据处置器402从对象符号数据412(例如, xJSON文件)提取的实例性键-值对414且基于字符串文字的存在或缺乏(例如,环绕关键字 及值的引号)而自动地确定实例性键-值对414是xJSON文件还是JSON文件。根据所说明实 例,当字符串文字存在时,字符串处理器404确定实例性键-值对414与为JS0N文件的文件相 关联,且当字符串文字不存在时,确定实例性键-值对414为xJSON文件。实例性字符串处理 器404另外在存在字符串文字(例如,引号)时移除所述字符串文字W减小数据大小。实例性 字符串处理器404将经处理键-值对416发射到实例性反序列化处理器406。
[0096] 图4的实例性反序列化处理器406确定经处理键-值对416是否包含序列化识别符 (例如,已经修改W包含已执行序列化的指示的关键字,例如方括号中的字母"b")。当实例 性反序列化处理器406确定实例性经处理键-值对416中包含序列化识别符时,实例性反序 列化处理器406将实例性经处理键-值对416反序列化。举例来说,经序列化数据可为在 Base64中编码,且实例性序列化处理器406将解码Base64表示W检索原始键-值对。在执行 任何所需反序列化之后,所说明实例的实例性反序列化处置器406将经反序列化键-值对 417发射到实例性解压缩处置器408。
[0097] 实例性解压缩处置器40如角定实例性经反序列化键-值对417是否包含压缩识别符 (例如,已经修改W包含已执行压缩的指示的关键字,例如方括号中的字母"Z")。当此实例 的实例性解压缩处置器40如角定实例性经反序列化键-值对417的关键字中包含压缩识别符 时,实例性解压缩处置器40則尋实例性经反序列化键-值对417解压缩。所说明实例的实例性 解压缩处置器408从在由实例性压缩处置器308进行的压缩期间插入到实例性经反序列化 键-值对417的值中的元数据检索压缩算法的标识。举例来说,元数据可包含压缩算法(例 如,gzip)的标识、供在压缩及/或解压缩期间使用的参数(例如,查找表)。在执行任何所需 解压缩之后,实例性解压缩处置器408将经解压缩键-值对418发射到实例性解密处置器 410。
[0098] 此实例的解密处置器410确定经解压缩键-值对418是否包含加密识别符(例如,已 经修改W包含已执行加密的指示的关键字,例如方括号中的字母"S")。当所说明实例的解 密处置器410确定实例性经解压缩键-值对418的关键字中包含加密识别符时,解密处置器 410将所述键-值对解密。举例来说,解密处置器410可存取安装于xJSON处置器110在其上实 施的装置(例如,实例性第一装置106)上的私钥。所说明实例的解密处置器410可检索对应 于经解压缩键-值对418的私钥且使用所述私钥来将经解压缩键-值对418解密。或者,解密 处置器410可提示用户输入用于执行解密的私钥。
[0099] 图4的实例性解密处置器410通过分析插入到经解压缩键-值对418及/或实例性对 象符号数据412中的关键字字段而确定用于解密的适当私钥。或者,识别用于将经解压缩 键-值对418加密及/或解密的密钥的信息可存储于任何其它位置中(例如,关于用于加密的 密钥的信息可插入于经加密键-值对的关键字中)。在其中在实例性对象符号数据412中使 用多个密钥的一些实例中,加密识别符可包含用于将经解压缩键-值对418加密(及类似地 用于解密)的密钥中的特定一者的识别符。举例来说,如上文连同散列运算与加密处置器 306-起描述,加密识别符可为1 sX#HHHH]",其中X是识别插入于对象符号数据412中的关 键字字段中的关键字中的一者的索引值。
[0100] 在执行任何所需解密之后,所说明实例的实例性解密处置器410将实例性经解密 键-值对420发射到数据处置器402W供将实例性对象数据422发射到实例性化vaScript解 释器208。
[0101] 尽管图3中图解说明实施图2的产生器206的实例性方式,但图3中所图解说明的元 件、过程及/或装置中的一或多者可W任何其它方式组合、划分、重新布置、省略、消除及/或 实施。此外,实例性数据处置器302、实例性字符串处理器304、实例性散列运算与加密处置 器306、实例性压缩处置器308、实例性序列化处理器310及/或更一般来说图2及3的产生器 206可由硬件、软件、固件及/或硬件、软件及/或固件的任何组合实施。因此,举例来说,实例 性数据处置器302、实例性字符串处理器304、实例性散列运算与加密处置器306、实例性压 缩处置器308及/或实例性序列化处理器310中的任一者可由一或多个模拟或数字电路、逻 辑电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑装置(PLD)及/或现场可编程逻辑 装置(FPLD)实施。当读取本专利的设备或系统技术方案中的任一者W覆盖纯软件及/或固 件实施方案时,实例性数据处置器302、实例性字符串处理器304、实例性散列运算与加密处 置器306、实例性压缩处置器308及/或实例性序列化处理器310中的至少一者特此明确地界 定为包含有形计算机可读存储装置或存储磁盘,例如存储器、数字多功能磁盘(DVD)、光盘 (CD)或存储软件及/或固件的蓝光盘。此外,图1的xJSON处置器110及/或图2及/或3的产生 器206可包含除图3中所图解说明的那些元件、过程及/或装置外或替代图3中所图解说明的 那些元件、过程及/或装置的一或多个元件、过程及/或装置,及/或可包含所说明的元件、过 程及装置中的任一者或全部中的一者W上。
[0102] 图5至化中展示表示用于实施实例性产生器206的实例性机器可读指令的流程图。 在运些实例中,所述机器可读指令包含用于由处理器(例如展示于下文结合图12论述的实 例性处理器平台1200中的处理器1212)执行的程序。所述程序可体现于存储于有形计算机 可读存储媒体(例如CD-ROM、软盘、硬驱动器、数字多功能磁盘(DVD)、蓝光盘或与处理器 1212相关联的存储器)上的软件中,但整个程序及/或其部分可替代地由除处理器1212外的 装置执行及/或体现于固件或专用硬件中。此外,虽然参考图5至化中所图解说明的流程图描 述实例性程序,但可替代地使用实施实例性产生器206的许多其它方法。举例来说,可改变 框的执行次序,及/或可改变、消除或组合所描述的框中的一些框。
[0103] 如上文所提及,图5至化的实例性过程可使用存储于有形计算机可读存储媒体上的 经编码指令(例如,计算机及/或机器可读指令)来实施,所述有形计算机可读存储媒体为例 如硬盘驱动器、快闪存储器、只读存储器(ROM)、光盘(CD)、数字多功能磁盘(DVD)、高速缓冲 存储器、随机存取存储器(RAM)及/或其中存储信息达任何持续时间(例如,达长时间周期、 永久地、达短暂时刻、进行暂时缓冲及/或进行信息的高速缓存)的任何其它存储装置或存 储磁盘。如本文中所使用,术语有形计算机可读存储媒体明确地界定为包含任何类型的计 算机可读存储装置及/或存储磁盘且排除传播信号及发射媒体。如本文中所使用,"有形计 算机可读存储媒体"与"有形机器可读存储媒体"可互换地使用。另外或替代地,图5至化的实 例性过程可使用存储于非暂时性计算机及/或机器可读媒体上的经编码指令(例如,计算机 及/或机器可读指令)来实施,所述非暂时性计算机及/或机器可读媒体为例如硬盘驱动器、 快闪存储器、只读存储器、光盘、数字多功能磁盘、高速缓冲存储器、随机存取存储器及/或 其中存储信息达任何持续时间(例如,达扩展时间周期、永久地、达短暂时刻、进行暂时缓冲 及/或进行信息的高速缓存)的任何其它存储装置或存储磁盘。如本文中所使用,术语非暂 时性计算机可读媒体明确地界定为包含任何类型的计算机可读存储装置及/或存储磁盘且 排除传播信号及发射媒体。
[0104] 图5的实例性计算机可读指令在实例性数据处置器302接收到数据及产生对象符 号数据(例如,xJSON文件)的请求时开始(框502)。举例来说,实例性数据处置器302可从实 例性化vaScript解释器208接收化vaScript对象。实例性数据处置器302确定xJSON输出是 否被请求(框504)。举例来说,产生xJSON文件的请求可包含xJSO卿寺定文件被请求的指示。 xJSO卿寺定文件是不需要支持由不支持xJSON的装置进行的解析的文件。举例来说,针对支 持由JS0N进行的解析的文件,关键字及值由引号环绕,且针对不需要支持JS0N的xJSON文 件,关键字及值不需要由引号环绕W减小文件大小。当请求指示输出文件将为xJSON文件类 型时,实例性数据处置器302插入指示文件为xJSON文件类型的内容类型识别符(例如, 乂ontent-Type :application/xjson")(框506)。当请求指示输出文件将为JS0N文件类型 时,实例性数据处置器302插入指示文件为JS0N文件类型的内容类型识别符(例如, "Content-Type:application/json")(框508)。
[0105] 在于框506或框508中设定内容类型之后,实例性数据处置器302选择数据对象(例 如,选择第一数据对象、数据对象的第一元素、下一数据对象)(框510)。举例来说,实例性数 据处置器302可选择上文所描述的实例性人对象的firstName元素。实例性数据处置器302 接着针对所选择元素产生键-值对(框512)。举例来说,实例性数据处置器302可创建命名为 吁irstName"的关键字及含有first化me元素的值的值W产生JS0N键-值对:吁irstName: John"。
[0106] 实例性字符串处理器304接着确定文件的内容类型是否被设定为xJSON(框514)。 如果内容类型未被设定为xJSON(例如,输出文件将支持由不支持xJSON的JS0N解析器进行 的解析),那么实例性字符串处理器304围绕所产生键-值对中的关键字及值插入引号(框 516)。
[0107] 在字符串处理器304于框516中插入引号之后或在字符串处理器304确定文件的内 容类型被设定为xJSON(框514)之后,实例性散列运算与加密处置器306确定键-值对是否欲 被进行散列运算及/或加密(框518)。当产生xJSON文件的请求指示键-值对欲被进行散列运 算及/或加密时,实例性散列运算与加密处置器306可确定键-值对欲被进行散列运算及/或 加密。或者,当检测到键-值对含有敏感数据时(例如,当键-值对为口令字段时),散列运算 与加密处置器306可自动地确定数据欲被加密。当散列运算与加密处置器306确定键-值对 欲被进行散列运算及/或加密时,实例性散列运算与加密处置器306对键-值值对进行散列 运算及/或加密(框520)。结合图8描述用于对键-值对进行散列运算及/或加密的实例性计 算机可读指令。
[0108] 在实例性散列运算与加密处置器306确定散列运算与加密未被请求(框518)或散 列运算与加密处置器对键-值对进行散列运算及/或加密(框520)之后,实例性压缩处置器 30如角定键-值对是否欲被压缩(框522)。当产生对象符号数据的请求指示键-值对欲被压缩 时,压缩处置器308可确定键-值对欲被压缩。或者,当值的大小超过阔值水平时,实例性压 缩处置器308可确定键-值对欲被压缩。当压缩处置器30如角定键-值对欲被压缩时,实例性 压缩处置器308压缩键-值值对(框524)。结合图6描述用于压缩键-值对的实例性计算机可 读指令。
[0109] 在实例性压缩处置器30如角定压缩未被请求(框522)或压缩处置器308压缩键-值 对(框524)之后,实例性序列化处理器310确定键-值对是否欲被序列化(框526)。当产生对 象符号数据的请求指示键-值对欲被序列化时,实例性序列化处理器310可确定键-值对欲 被序列化。当序列化处理器310确定键-值对欲被序列化时,实例性序列化处理器310将键- 值值对序列化(框528)。结合图7描述用于将键-值对序列化的实例性过程。
[0110] 在执行任何所请求散列运算及/或加密(框520)、压缩(框522)及序列化(框528)之 后,实例性数据处置器302将所产生键-值对插入于对象符号数据(例如,xJSON文件)中(框 530)。实例性数据处置器302确定是否存在欲针对其产生键-值对的额外数据对象及/或元 素(框532)。当针对键-值对产生存在额外对象及/或元素时,控制返回到框510W处理下一 对象及/或元素。当针对键-值对产生不存在额外对象及/或元素时,图5的实例性计算机可 读指令结束。
[0111] 图6是用W压缩键-值对的实例性计算机可读指令的流程图。图6的实例性计算机 可读指令可用于实施图5的框524。当实例性压缩处置器30如角定压缩算法时,图6的实例性 计算机可读指令开始(框602)。举例来说,压缩键-值对的请求可规定欲使用的压缩算法。或 者,实例性压缩处置器308可包含默认压缩算法(例如,gzip压缩算法)。实例性压缩处置器 308接着使用所确定压缩算法压缩键-值对(框604)。实例性压缩处置器308接着将压缩识别 符插入于键-值对的关键字中(框606)。举例来说,压缩识别符可为可指示键-值对被压缩的 任何指示(例如,?ζΤ')。举例来说,经压缩键-值对可包含关键字占位符及压缩识别符(例 如,"_〇1[ζΓ,其中"0"后的值是针对每一经压缩值递增W确保每一关键字保持唯一的索 引)。实例性压缩处置器308接着将关于压缩的元数据插入于键-值对的值中(框608)。举例 来说,压缩处置器308可插入用于压缩的算法的标识(例如,"alg:gzip")及用于压缩的参数 (例如,查找表"1山:+srR6'0s")。图6的实例性计算机可读指令接着结束。举例来说,控制可 返回到图5的框526。
[0112] 图7是可经执行W将键-值对序列化的实例性计算机可读指令的流程图。图7的实 例性计算机可读指令可用于实施图5的框528。当实例性序列化处理器310确定用于键-值对 中的值的经序列化值时,图7的实例性计算机可读指令开始(框702)。举例来说,序列化处理 器310可将键-值对的值序列化且执行二进制到文本转换(例如,使用Base64)W将经序列化 数据存储于对象符号数据中。实例性序列化处理器310接着修改键-值对的关键字W将序列 化识别符插入于所述关键字中(例如,实例性序列化处理器310可将"[b]"插入于所述关键 字中)。图7的实例性计算机可读指令接着结束。举例来说,控制可返回到图5的框530。
[0113] 图8是用于对键-值对进行散列运算及/或加密的实例性计算机可读指令的流程 图。图8的实例性计算机可读指令可用于实施图5的框520。当所说明实例的实例性散列运算 与加密处置器310确定欲使用的密码及密钥时,图8的过程开始(框802)。举例来说,进行散 列运算及/或加密的请求可包含欲使用的密码及/或密钥(例如,私钥)的标识。或者,散列运 算与加密处置器310可使用默认密码及/或私钥。实例性散列运算与加密处置器310接着将 欲加密的字符串封包(框804)。举例来说,实例性散列运算与加密处置器310通过移除任何 引号而将键-值对封包。散列运算与加密处置器310可执行任何其它封包W移除任何其它字 符。实例性散列运算与加密处置器310接着使用经识别关键字对键-值对进行签名(框806)。
[0114] 实例性散列运算与加密处置器310接着确定密码是否包含加密(框808)。举例来 说,密码可为仅包含散列运算的密码或可为包含散列运算与加密的密码。当密码不包含加 密时,控制进行到框822W用于对键-值对进行散列运算。当密码包含加密时,散列运算与加 密处置器310将经签名键-值对加密(框810)。实例性散列运算与加密处置器310接着将经加 密值转换为字符串W用于插入于xJSON文件中(框812)。实例性散列运算与加密处置器310 使用Base64编码将经加密值转移到字符串。
[0115] 在将键-值对加密(框810)之后,散列运算与加密处置器310将加密识别符(例如, Is]")插入于键-值对的关键字中(框814)。实例性散列运算与加密处置器310接着将识别 密码的元数据插入于xJSON文件中(框816)。举例来说,可W关键字名称"关键字"将密码元 数据插入于键-值对中。实例性散列运算与加密处置器310接着确定关键字元数据中是否存 在多个密码(框818)。如果关键字元数据中存在多个密码,那么实例性散列运算与加密处置 器310将密码识别符插入于经加密键-值对的关键字中(框820)。举例来说,散列运算与加密 处置器310可插入对应于关键字元数据中的密码的索引(例如,"k2]",其中密码是关键字 元数据中的第二密码)。
[0116] 在散列运算与加密处置器310已确定密码不包含加密(框808),已确定不存在多个 密码(框818)或已将密码的识别符插入于关键字中(框820)之后,实例性散列运算与加密处 置器310确定键-值对的值的散列(框822)。举例来说,可使用双重皮尔逊散列运算(double Pearson hashing)来确定散列。实例性散列运算与加密处置器310将散列的值插入到键-值 对的关键字中(框824)。举例来说,可将散列值插入于散列运算识别符后面(例如,散列运算 识别符可为散列符号(#))。举例来说,散列可被插入为Γ[#ΧΧΧΧΓ,其中XXXX是散列值)。经 加密且经散列运算的值的关键字可为ls#xxxxr (其中存在单个密码)及lsi#xxxxr (其 中存在多个密码且第一密码用于加密)。
[0117] 图8的实例性计算机可读指令接着结束。举例来说,控制可返回到图5的框522。
[0118] 尽管图4中图解说明实施图2的解析器204的实例性方式,但图4中所图解说明的元 件、过程及/或装置中的一或多者可W任何其它方式组合、划分、重新布置、省略、消除及/或 实施。此外,实例性数据处置器402、实例性字符串处理器404、实例性反序列化处理器406、 实例性解压缩处置器408、实例性解密处置器410及/或更一般来说图2及4的解析器204可由 硬件、软件、固件及/或硬件、软件及/或固件的任何组合实施。因此,举例来说,实例性数据 处置器402、实例性字符串处理器404、实例性反序列化处理器406、实例性解压缩处置器408 及/或实例性解密处置器410中的任一者可由一或多个模拟或数字电路、逻辑电路、可编程 处理器、专用集成电路(ASIC)、可编程逻辑装置(PLD)及/或现场可编程逻辑装置(FPLD)实 施。当读取本专利的设备或系统技术方案中的任一者W覆盖纯软件及/或固件实施方案时, 实例性数据处置器402、实例性字符串处理器404、实例性反序列化处理器406、实例性解压 缩处置器408及/或实例性解密处置器410中的至少一者特此明确地界定为包含有形计算机 可读存储装置或存储磁盘,例如存储器、数字多功能磁盘(DVD)、光盘(CD)或存储软件及/或 固件的蓝光盘。此外,图1的xJSON处置器110及/或图2及/或4的解析器204可包含除图4中所 图解说明的那些元件、过程及/或装置外或替代图4中所图解说明的那些元件、过程及/或装 置的一或多个元件、过程及/或装置,及/或可包含所说明的元件、过程及装置中的任一者或 全部中的一者W上。
[0119] 图9到11中展示表示用于实施实例性解析器204的实例性机器可读指令的流程图。 在运些实例中,所述机器可读指令包含用于由处理器(例如展示于下文结合图12论述的实 例性处理器平台1200中的处理器1212)执行的程序。所述程序可体现于存储于有形计算机 可读存储媒体(例如CD-ROM、软盘、硬驱动器、数字多功能磁盘(DVD)、蓝光盘或与处理器 1212相关联的存储器)上的软件中,但整个程序及/或其部分可替代地由除处理器1212外的 装置执行及/或体现于固件或专用硬件中。此外,虽然参考图9到11中所图解说明的流程图 描述实例性程序,但可替代地使用实施实例性解析器204的许多其它方法。举例来说,可改 变框的执行次序,及/或可改变、消除或组合所描述的框中的一些框。
[0120] 如上文所提及,图9到11的实例性过程可使用存储于有形计算机可读存储媒体上 的经编码指令(例如,计算机及/或机器可读指令)来实施,所述有形计算机可读存储媒体为 例如硬盘驱动器、快闪存储器、只读存储器(ROM)、光盘(CD)、数字多功能磁盘(DVD)、高速缓 冲存储器、随机存取存储器(RAM)及/或其中存储信息达任何持续时间(例如,达扩展时间周 期、永久地、达短暂时刻、进行暂时缓冲及/或进行信息的高速缓存)的任何其它存储装置或 存储磁盘。如本文中所使用,术语有形计算机可读存储媒体明确地界定为包含任何类型的 计算机可读存储装置及/或存储磁盘且排除传播信号及发射媒体。如本文中所使用,"有形 计算机可读存储媒体"与"有形机器可读存储媒体"可互换地使用。另外或替代地,图9到11 的实例性过程可使用存储于非暂时性计算机及/或机器可读媒体上的经编码指令(例如,计 算机及/或机器可读指令)来实施,所述非暂时性计算机及/或机器可读媒体为例如硬盘驱 动器、快闪存储器、只读存储器、光盘、数字多功能磁盘、高速缓冲存储器、随机存取存储器 及/或其中存储信息达任何持续时间(例如,达扩展时间周期、永久地、达短暂时刻、进行暂 时缓冲及/或进行信息的高速缓存)的任何其它存储装置或存储磁盘。如本文中所使用,术 语非暂时性计算机可读媒体明确地界定为包含任何类型的计算机可读存储装置及/或存储 磁盘且排除传播信号及发射媒体。
[0121] 图9是用于实例性解析器204解析对象符号数据(例如,xJSON文件)的实例性计算 机可读指令的流程图。当实例性数据处置器402接收到对象符号数据时,图9的实例性计算 机可读指令开始(框902)。举例来说,数据处置器402或包含xJSON处置器110的装置的另一 组件可向发射数据作为xJSON数据的另一装置请求数据。
[0122] 在一些实例中,所说明实例的数据处置器402请求可用对象符号数据的仅一部分。 举例来说,实例性xJSON文件可能包含100,000个关键字值对,其将耗尽尝试解析xJSON文件 的低功率装置(例如,及ΙοΤ装置)的存储器。因此,实例性数据处置器402请求所要部分(例 如,基于用于检索数据的请求)。举例来说,数据处置器402可使用点符号引用对象符号数据 的特定部分(例如,"@exmaple .com/myobj .xjson#id. value 1"将检索由example. com供应的 myobj.xjson文件中的对象id中的识别为valuel的关键字)。因此,实例性数据处置器402可 检索所关注的所要关键字及/或对象而不需要检索整个对象符号数据。在实例性实施方案 中,对象可引用为"#〇bject"(其中"object"是对象的名称)、(其中"uri"是可从其检 索对象符号数据的位置)及Ouriitobject. subobject(其中"subobject"识别"uri"处的对象 符号数据位置中的对象"object"内的对象及/或关键字)。
[0123] 实例性数据处置器402选择对象符号数据中的第一键-值对(框904)。实例性字符 串处理器404确定键-值对是否包含字符串文字(例如,引号)(框906)。当键-值对不包含字 符串文字时,实例性字符串处理器404确定所接收文件是xJSON类型且存储文件是xJSON文 件的指示(例如,因为JS0N文件包含引号但xJSON文件不需要包含引号)(框908)。控制接着 返回到框922。
[0124]当字符串处理器404确定键-值对包含字符串文字时,字符串处理器404将类型存 储为JS0N(框910)。举例来说,文件可为JS0N兼容文件,因为其包含字符串文字,但文件可包 含xJSON扩展。实例性字符串处理器404接着从键-值对移除引号W减小xJSON文件的大小 (框 912)。
[01巧]在字符串处理器404将类型设定为xJSON(框908)之后或在字符串处理器404移除 引号(框912)之后,实例性反序列化处理器406确定关键字是否包含序列化识别符(框914)。 当关键字包含序列化识别符时,实例性反序列化处理器406将经序列化数据反序列化/去编 组(框916)。
[0126] 当键-值对不包含序列化识别符(框914)时或在将键-值对反序列化(框916)之后, 实例性解压缩处置器40如角定关键字是否包含压缩识别符(框918)。当关键字包含压缩识别 符时,实例性解压缩处置器408将键-值对解压缩(框920)。结合图11描述可经执行^将键- 值对解压缩的实例性计算机可读指令。
[0127] 当键-值对不包含压缩识别符识别符(框918)时或在将键-值对解压缩(框920)之 后,实例性解密处置器410确定键-值对的关键字是否包含加密识别符(框922)。当关键字包 含加密识别符时,解密处置器410将键-值对解密(框924)。结合图10描述用W将键-值对解 密的实例性计算机可读指令。
[0128] 图10是用W将经加密键-值对解密的实例性计算机可读指令的流程图。实例性计 算机可读指令可用于实施图9的框924。当解密处置器410确定在键-值对的加密期间所使用 的密码及密钥时,实例性计算机可读指令开始(框1002)。实例性解密处置器410从对象符号 数据中所包含的关键字元数据确定密码及公钥。在一些实例中,解密处置器410使用加密处 置器中所识别的索引从密钥列表选择密码及密钥。
[0129] 实例性解密处置器410接着获得对应于在加密期间使用的公钥的私钥(框1004)。 举例来说,私钥可为存储于一组私钥中,所述组私钥存储于解析器204中。或者,解密处置器 410可显示请求用户提供对应于所识别公钥的私钥的提示。解密处置器410接着使用私钥及 所识别密码将经加密数据解密(框1006)。图10的实例性计算机可读指令接着结束。举例来 说,控制可返回到图9的框926。
[0130] 图11是用W将键-值对解压缩的实例性计算机可读指令的流程图。图11的实例性 计算机可读指令可用于实施图9的框920。当实例性解压缩处置器40如角定用于压缩键-值对 的压缩算法时,图11的实例性计算机可读指令开始(框1102)。举例来说,解压缩处置器408 从插入于经压缩键-值对的值中的元数据确定压缩算法。实例性解压缩处置器408接着确定 用于压缩的参数(框1104)。举例来说,解压缩处置器408可从插入于键-值对的值中的元数 据提取所述参数。举例来说,所述参数可包含压缩算法所使用的查找表。实例性解压缩处置 器408接着使用所识别压缩算法及参数将键-值对解密(框1106)。图11的实例性计算机可读 指令接着结束。举例来说,控制可返回到图9的框922。
[0131] 图12是实例性处理器平台1200的框图,实例性处理器平台1200经结构化W执行图 5、6、7、8、9、10及/或11的指令^实施实例性第一装置106及/或实例性*66服务102(包含实 例性接口 202、实例性解析器204(例如,包含实例性数据处置器402、实例性字符串处理器 404、实例性反序列化处理器406、实例性解压缩处置器408及/或实例性解密处置器410)、实 例性产生器206(例如,包含实例性数据处置器302、实例性字符串处理器304、实例性散列运 算与加密处置器306、实例性压缩处置器308及/或实例性序列化处理器310)及/或实例性 化vaScript解释器210)。举例来说,处理器平台1200可为个人计算机、移动装置(例如,移动 电话、智能电话、平板计算机(例如iPad?)、个人数字助理(PDA)或能够处理图像的任何其它 类型的计算装置。
[0132] 所说明实例的处理器平台1200包含处理器1212。所说明实例的处理器1212是硬 件。举例来说,处理器1212可由来自任何所要系列或制造商的一或多个集成电路、逻辑电 路、微处理器或控制器实施。图12的实例性处理器1212可实施包含实例性解析器204、实例 性产生器206及实例性化vaScript解释器208的实例性xJSON处置器110的组件W解析及产 生xJSON文件及数据。
[0133] 所说明实例的处理器1212包含本地存储器1213(例如,高速缓冲存储器)。所说明 实例的处理器1212经由总线1218与包含易失性存储器1214及非易失性存储器1216的主存 储器通信。易失性存储器1214可由同步动态随机存取存储器(SDRAM)、动态随机存取存储器 (DRAM)、RAMBUS动态随机存取存储器(RDRAM)及/或任何其它类型的随机存取存储器装置实 施。非易失性存储器1216可由快闪存储器及/或任何其它所要类型的存储器装置实施。对主 存储器1214、1216的存取由存储器控制器控制。
[0134] 所说明实例的处理器平台1200还包含接口电路1220。接口电路1220可由任何类型 的接口标准(例如W太网接口、通用串行总线化SB)及/或PCI快速接口)实施。实例性接口电 路可实施图1及/或2的xJSON处置器110的实例性接口 202W使处理器平台1200与图1的实例 性网络104介接。
[0135] 在所说明实例中,一或多个输入装置1222连接到接口电路1220。输入装置1222准 许用户将数据及命令输入到处理器1212中。举例来说,输入装置可由音频传感器、麦克风、 摄像机(静物摄像机或视频摄像机)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、相等点 (isopoint)及/或话音辨识系统实施。
[0136] -或多个输出装置1224也连接到所说明实例的接口电路1220。举例来说,输出装 置1224可由显示装置(例如,发光二极管化抓)、有机发光二极管(0LED)、液晶显示器、阴极 射线管显示器(CRT)、触摸屏、触觉输出装置、发光二极管化邸)、打印机及/或扬声器)实施。 因此,所说明实例的接口电路1220通常包含图形驱动器卡、图形驱动器忍片或图形驱动器 处理器。
[0137] 所说明实例的接口电路1220还包含通信装置(例如发射器、接收器、收发器、调制 解调器及/或网络接口卡促进经由网络1226(例如,W太网连接、数字订户线(D化)、电话 线、同轴电缆、蜂窝式电话系统)与外部机器(例如,任何种类的计算装置)的数据交换。
[0138] 所说明实例的处理器平台1200还包含用于存储软件及/或数据的一或多个大容量 存储装置1228。此类大容量存储装置1228的实例包含软盘驱动器、硬驱动磁盘、光盘驱动 器、蓝光盘驱动器、RAID系统及数字多功能磁盘(DVD)驱动器。
[0139] 图5、6、7、8、9、10及/或11的经编码指令1232可存储于大容量存储装置1228中、存 储于易失性存储器1214中、存储于非易失性存储器1216中及/或存储于可装卸有形计算机 可读存储媒体(例如CD或DVD)上。
[0140] 本文中所掲示实例提供对对象符号数据(例如,人类可读对象符号数据(例如 JS0N))的扩展。在一些实例中,通过封包及/或压缩对象符号数据的部分而减少地使用数据 存储装置的使用及通信带宽。在一些实例中,通过允许封包/压缩、序列化及/或压缩对象符 号数据的部分同时允许对象符号数据的其它部分不被扩展而减少计算机处理资源使用。举 例来说,在JSON文件中,使用本文中所掲示的实例,可将单个键-值对加密而不需要将整个 JSON文件加密,此减少将JSON文件的元素加密及解密所需的处理量。在一些实例中,通过产 生遵循由先前对象符号协议设定的语法规则的输出(例如,扩展JSON文件)而提供与不支持 扩展的装置的向后兼容性。因此,当用不支持扩展的装置解析扩展文件时,满足先前协议的 语法规则的此类扩展文件将不触发错误。
[0141]在权利要求书的范围内,在所描述实施例中修改是可能的,且其它实施例是可能 的。
【主权项】
1. 一种设备,其包括: 数据处置器,其具有用以接收对象数据的第一输入及用以输出所述对象数据的对象符 号键-值对的第一输出; 字符串处理器,其具有耦合到所述第一输出的第二输入及用以传达不具有字符串文字 的所述对象符号键-值对的第二输出;及 散列运算与加密处置器,其具有耦合到所述第二输出的第三输入及第三输出,所述第 三输出用以传达以私钥签名的所述键-值对、用以传达以公钥加密的所述键-值对,且用以 在所述经加密键-值对的关键字中传达所述经加密键-值对被加密的指示。2. 根据权利要求1所述的设备,其中所述第三输出用以传达所述经加密键-值对,其中 所述经加密键-值对的散列值插入于所述经加密键-值对的所述关键字中。3. 根据权利要求2所述的设备,其中所述第三输出用以在所述键-值对的所述关键字中 传达所述经加密键-值对被进行散列运算的指示。4. 根据权利要求1所述的设备,其中所述第三输出用以在所述经加密键-值对的所述关 键字中传达识别用于将所述键-值对加密的加密密码的索引值。5. 根据权利要求1所述的设备,其中所述第三输出用以将所述经加密键-值对作为字符 串值来传达。6. 根据权利要求1所述的设备,其中所述第三输出用以传达用于将所述键-值对加密的 密码的标识。7. 根据权利要求1所述的设备,其中所述第三输出用以传达所述公钥的标识。8. 根据权利要求1所述的设备,其进一步包括压缩处置器,所述压缩处置器具有耦合到 所述第三输出的第四输入及用以传达被压缩的所述经加密键-值对的第四输出。9. 根据权利要求8所述的设备,其中所述第四输出用以在所述经压缩键-值对的关键字 中传达所述经压缩键-值对被压缩的指示。10. 根据权利要求8所述的设备,其中所述第四输出用以在所述经压缩键-值对的值中 传达用于压缩所述经加密键-值对的压缩算法的标识。11. 根据权利要求1所述的设备,其进一步包括序列化处理器,所述序列化处理器具有 耦合到所述第四输出的第五输入及用以传达被序列化的所述经压缩键-值对的第五输出。12. 根据权利要求11所述的设备,其中所述第五输出用以在所述经序列化键-值对的关 键字中传达所述经序列化键-值被序列化的指示。13. 根据权利要求1所述的设备,其中所述数据处置器包含用以传达包含所述经序列化 键-值对的对象符号文件的第六输出。14. 一种设备,其包括: 数据处置器,其用以产生数据对象的对象符号键-值对;及 散列运算与加密处置器,其用以用私钥将所述键-值对签名、用公钥将所述经签名键-值对加密及将所述键-值对的关键字中对所述键-值对被加密的指示插入于对象符号文件 中。15. 根据权利要求14所述的设备,其中所述散列运算与加密处置器用以确定所述经加 密键-值对的散列值。16. 根据权利要求15所述的设备,其中所述散列运算与加密处置器用以将所述散列值 插入于所述关键字中。17. 根据权利要求16所述的设备,其中所述散列运算与加密处置器用以将所述键-值对 被进行散列运算的指示插入于所述关键字中。18. 根据权利要求14所述的设备,其中所述散列运算与加密处置器用以:确定所述对象 符号文件包含多个加密密码;及将识别用于将所述键-值对加密的加密密码的索引值插入 于所述关键字中。19. 一种产生对象符号文件的方法,所述方法包括: 产生数据对象的对象符号键-值对; 以私钥将所述键-值对签名; 以公钥将所述经签名键-值对加密;及 将所述键-值对的关键字中对所述键-值对被加密的指示插入于对象符号文件中。20. 根据权利要求19所述的方法,其进一步包括确定所述经加密键-值对的散列值。21. 根据权利要求20所述的方法,其进一步包括将所述散列值插入于所述关键字中。22. 根据权利要求21所述的方法,其进一步包括将所述键-值对被进行散列运算的指示 插入于所述关键字中。23. 根据权利要求19所述的方法,其进一步包括:确定所述对象符号文件包含多个加密 密码;及将识别用于将所述键-值对加密的加密密码的索引值插入于所述关键字中。
【文档编号】G06F17/00GK105993010SQ201580008241
【公开日】2016年10月5日
【申请日】2015年2月11日
【发明人】亚伯拉罕·鲍姆, 利安·扎尔米, 吉尔·赖特尔
【申请人】德州仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1