基于json的机构养老数据交互方法及系统的制作方法

文档序号:10597147阅读:305来源:国知局
基于json的机构养老数据交互方法及系统的制作方法
【专利摘要】本发明涉及一种方法及系统,尤其是一种基于JSON的机构养老数据交互方法及系统,属于移动数据交互的技术领域。按照本发明提供的技术方案,所述基于JSON的机构养老数据交互方法,包括手持终端以及与所述手持终端能进行养老数据交互的养老服务器;所述手持终端与养老服务器间的数据交互采用JSON数据格式。本发明能简化数据交互方式,提高数据传输效率,保证数据通信安全。
【专利说明】
基于JSON的机构养老数据交互方法及系统
技术领域
[0001] 本发明涉及一种方法及系统,尤其是一种基于JS0N的机构养老数据交互方法及系 统,属于移动数据交互的技术领域。
【背景技术】
[0002] 随着宽带无线接入技术和移动终端技术的发展,人们迫切希望移动终端能够随时 随地的从互联网获取信息和服务。随着移动互联网的兴起,各种各样的手持终端应用成为 了获取服务的主要入口,而服务器端则承担了各种服务的数据存储和计算功能。如何保证 手持终端和服务器端之间安全、高效的数据交互,成为了开发者首要考虑的问题。
[0003] 传统的手持终端与服务器端数据交互方法有两种:一种方法是纯文本和简单的名 称/值对,可根据需求添加字段,但是随意性较大,通用性和灵活性不高;另一种是基于XML (extensible markup language)的方法,XML是一种标记语言,使用时可以按需创建新的标 记。带标记的元素是XML文档的构造块,此种元素可以有若干个属性,并可以包含零个或多 个子元素,这些子元素可以是文本,也可以是带标记的元素。但是XML作为数据交互格式的 数据包会包含大量重复的标记,会导致数据量的增大。此外,XML解析速度较慢、效率不高。 所以采用一种快速、高效的数据交互方法显得尤为关键。

【发明内容】

[0004] 本发明的目的是克服现有技术中存在的不足,提供一种基于JS0N的机构养老数据 交互方法及系统,其能简化数据交互方式,提高数据传输效率,保证数据通信安全。
[0005] 按照本发明提供的技术方案,所述基于JS0N的机构养老数据交互方法,包括手持 终端以及与所述手持终端能进行养老数据交互的养老服务器;所述手持终端与养老服务器 间的数据交互采用JS0N数据格式。
[0006] 在采用JS0N数据格式进行养老数据交互时,确定待交换养老数据的数据包协议格 式,并对确定数据包协议格式的养老数据进行数据包封装,以得到JSONObject的封装数据 包,对所述封装数据包再依次进行压缩与加密,以得到压缩加密数据包,以通过压缩加密数 据包在手持终端与养老服务器间进行所需的数据交互。
[0007] 所述确定待交换养老数据的数据包协议格式包括类型码、业务数据、删除数据以 及更新数据。
[0008] 一种基于JS0N的机构养老数据交互系统,包括手持终端以及与所述手持终端能进 行养老数据交互的养老服务器;所述手持终端与养老服务器间的数据交互采用JS0N数据格 式。
[0009] 在采用JS0N数据格式进行养老数据交互时,确定待交换养老数据的数据包协议格 式,并对确定数据包协议格式的养老数据进行数据包封装,以得到JSONObject的封装数据 包,对所述封装数据包再依次进行压缩与加密,以得到压缩加密数据包,以通过压缩加密数 据包在手持终端与养老服务器间进行所需的数据交互。
[0010] 所述确定待交换养老数据的数据包协议格式包括类型码、业务数据、删除数据以 及更新数据。
[0011] 本发明的优点:所述手持终端与养老服务器间的数据交互采用JS0N数据格式,能 简化数据交互方式,提高数据传输效率,保证数据通信安全。
【附图说明】
[0012] 图1为本发明的流程图。
[0013]图2为本发明的压缩不意图。
[0014]图3为本发明解压的示意图。
[0015]图4为本发明加解密的示意图。
【具体实施方式】
[0016]下面结合具体附图和实施例对本发明作进一步说明。
[0017]如图1所示:为了能简化数据交互方式,提高数据传输效率,本发明基于JS0N的机 构养老数据交互系统,包括手持终端以及与所述手持终端能进行养老数据交互的养老服务 器;所述手持终端与养老服务器间的数据交互采用JS0N数据格式。
[0018] 具体地,JavaScript Object Notation(以下简称JS0N)是一种轻量级的数据交换 格式,它采用完全独立于语言的文本格式。JS0N采用两种结构:1)"名称/值"对的集合,"名 称/值"能表示对象的属性,对象实际上就是属性的集合,所以这个结构可以用来表示对象, 在典型的JS0N格式中采用"{}"来表示一个JS0N对象。2)、值的有序列表,可以表示对象的集 合,所以JS0N能够表示一个复杂对象的集合。在典型的J0SN格式中,采用"[]"来表示JS0N数 组。基于JAVA平台中已经有了比较成熟的用于处理JS0N数据的相关类库,如org.json包能 很方便的生成和解析JS0N。
[0019] 在采用JS0N数据格式进行养老数据交互时,确定待交换养老数据的数据包协议格 式,并对确定数据包协议格式的养老数据进行数据包封装,以得到JSONObject的封装数据 包,对所述封装数据包再依次进行压缩与加密,以得到压缩加密数据包,以通过压缩加密数 据包在手持终端与养老服务器间进行所需的数据交互。本发明实施例中,手持终端可以为 现有常用的智能手机、智能平板等终端设备,数据交互是指手持终端与养老服务器间数据 相互传输,即手持终端与养老服务器间的数据交互中均采用JS0N数据格式。在手持终端向 养老服务器传输数据时,手持终端需要将压缩加密数据包传输至养老服务器内;而养老服 务器向手持终端传输数据时,养老服务器需要将压缩加密数据包传输至手持终端。而养老 服务器或手持终端接收到压缩加密数据包后,需要对压缩加密数据包进行对应的解密以及 解析过程,下面对具体的实施过程进行详细说明。
[0020] 在确定养老数据的数据包协议格式时,所述数据包协议是一个JSONObject对象, 包含0perationCode(类型码)、0perationData(业务数据)、DeleteData(删除数据)及 UpdateData(更新数据)四个字段,所述字段是根据手持终端和养老服务器的数据同步要 求,结合养老机构的业务需求特点而确定。具体格式如下表一所示。
[0021 ]表一:数据包协议格式
[0022]
[0023] OperationCode类型码为一个值,表明数据交互中的各种操作及状态,分为上传状 态码和下载状态码两大类。其中,上传状态码用于手持终端向服务器端发送请求,表明手持 终端进行业务操作类型,如登录认证、数据更新等;下载状态码用于养老服务器端向手持终 端返回响应数据,表明养老服务器在进行业务操作时的各种状态,如密码错误、网络异常 等。所述类型码是由机构养老管理系统的业务需求而决定的,随着业务的扩展而动态调整。 下面将以系统登录过程为例,介绍此系统的数据交互过程。登录过程中用到的业务类型码 如表二所示。
[0025] OperationData业务数据是一个JSONObject对象,不同的类型码对应着不同的属 性。如登录时上传类型码为Login,业务数据中所包含的数据为用户名、密码及机构编码三 个属性,这就能唯一确定此用户与养老机构的隶属关系。
[0026] DeleteData删除数据及UpdateData更新数据均为一个JSONArray对象,用于手持 终端和养老服务器之间数据同步。本发明实施例中,采用的是基于时间戳的数据同步机制, 当手持终端向养老服务器发出数据更新请求时,对应的类型码为Refresh,业务数据为包含 此时手持终端的时间戳t;养老服务器经过解析之后得到此时间戳t,然后根据此时间戳t与 养老服务器各个业务表的时间戳t比较,若是存在比此时间戳t还大的业务表,则将对应的 业务数据按照协议包格式封装到UpdateData字段或者DeleteData字段之中。手持终端解析 协议包,若上述两个字段有对应的内容,则手持终端进行对应的数据删除或者数据插入操 作来保持数据的一致性。
[0027] 数据包封装模是按照上述数据包协议格式进行数据拼装,数据包协议就是一个 了30勵13」6(31:,各个字段又根据需求嵌套了几0勵13」6(31:、几0祖1'抑7等。基于」3¥3的〇找.」8〇11 包提供了一系列简单的方法和工具用于处理JS0N数据。其中org. json. JSONb ject类提供了 多种构造器来构建JSONbject,使用put方法来添加名值对、get方法获得字段所对应的值或 对象等。例如当手持终端登录时,此时上传类型码为Login,操作数据为用户名、密码及养老 机构编号这三个数据。由于此时既没有要删除的数据也没有要更新的数据,所以上述两个 字段为空,上述的具体实施过程为本技术领域人员所熟知,此处不再详述。
[0028] 数据压缩主要目的是减少手持终端流量及节省服务器端宽带,其逆过程为解压 缩。在养老机构管理系统实际应用过程中,一方面手持终端在初次初始化数据时需要向养 老服务器请求大量基础数据;另一方面手持终端需要频繁的向养老服务器上传老人护理情 况等业务操作信息。基于此种情况考虑将数据进行压缩后传输,减少数据传输量,节省服务 器宽带。
[0029] 在JAVA平台中有java .util.zip包中的Def later类和Inf later类提供了基于 DEFLATE算法的压缩和解压的相关方法,它们通过JNI技术调用ZLIB压缩库支持一般的压缩 需求。压缩通过Def later类提供支持,主要包括两个步骤。首先将压缩的字符串转化为字节 数组,在本发明实施例中,通过getBytes()方法完成字符串到字节数组的转换,在换换后设 置压缩策略及压缩速度在压缩器中执行压缩。压缩策略取决于压缩内容的特征,可选的有 FILTERED,最适用于主要由小值组成并具有某种程度随意分布的数据的压缩策略; HUFFMAN_0NLY,仅适用于Huffman编码的压缩策略;以及通用的默认压缩策略DEFAULT_ STRATEGY,在本发明实施例中采用此级别。压缩级别有0到9十个级别可选,0表示没有压缩, 9代表最佳压缩效果,具体如图2所示。
[0030] 数据加密主要保证数据通信的安全性,其逆过程为解密。加解密对象是经过封装 的协议包数据。在本发明实施中,采用对称加密算法对字节流进行加密,对称加密是指加密 和解密使用相同的密钥。基于java的加解密框架JCF提供了一系列用于加密和解密的工具, 核心类为(^口1161'。调用861:1118丨311〇6("0£3")生成(^口1161'对象,指定此加密器采用0£3加密算 法,也可以指定其他方式的加密算法如AES/RSA;然后调用ini t〇方法对Cipher对象进行初 始化,同时设置加密密钥及加密模式(加密或解密);最后调用doFinalO进行实际的加密或 解密,这取决于初始化时设置的加密模式。若初始化模式是加密,则doFinal进行加密;若初 始化的模式是解密,则进行解密,如图4所示。
[0031 ]本发明实施例中,在数据交换中,在接收到压缩解密数据包后,需要进行解密、解 压缩以及解析过程,其中,解密过程为上述加密过程的逆过程,解密过程根据上述加密过程 进行确定,具体过程为本技术领域人员所熟知,此处不再赘述。解压缩是压缩的逆过程,用 Inflater类充当解压器。首先将要解压的字符串转化为字节数组,然后将其输入到解压器 中,输出为原始的字节数组,再通过toStringO方法将其还原为原始的字符串。需要注意的 是在解压时压缩策略和压缩级别必须和压缩时设置的值一致,同时字符转字节必须要指定 相同的编码方式,如图3所示。
[0032]数据解析模块是对数据封装模块的逆运算,完成对协议包的解析。解析将协议包 数据首先得构建JSONOb ject对象,然后通过协议包中的各个字段名获得其具体的值或对 象,据此来进行下一步的业务操作。例如当获得上述协议包时,首先使用JSONObject (String)构建JSONOb ject对象,调用get ( "OperationCode")获得类型码为Login,得知为登 录认证业务操作;然后调用getJS0N0bject( "OperationData")得到登录认证所需数据,根 据用户名密码及养老机构编码获得对应数据。
[0033] 若是登录认证出了问题,例如密码或用户名不正确,贝lj上述OperationCode对应的 值为L0GIN_ERR0R,表明登录信息有误。其他的字段为空,然后按照JS0N数据封装过程,将此 内容作为登录错误协议包返回给手持终端。手持终端按照上述JS0N数据解析,获得登录状 态码为L0GIN_ERR0R,然后提示手持终端用户名或密码错误。
[0034] 下面通过手持终端和养老服务器端的一次数据交互过程来对本发明的工作过程 进行说明。首先,手持终端在发送请求之前,需要按照JS0N封装模块的要求把发送的业务数 据按照数据包协议封装为JSONOb ject。其次经过压缩模块对封装好的数据进行压缩,然后 经过加密对压缩后的数据进行加密,最后将加密输出的数据发送出去。
[0035] 养老服务器接受到请求之后,首先要对其进行解密,并将解密之后的数据作为解 压的输入,然后通过JS0N解析模块取得协议包定义的字段,并据此来判断是否需要进行业 务处理,若需要则进行压缩和加密之后向手持终端发送养老服务器的响应,否则这次通信 过程结束。
【主权项】
1. 一种基于JSON的机构养老数据交互方法,包括手持终端以及与所述手持终端能进行 养老数据交互的养老服务器;其特征是:所述手持终端与养老服务器间的数据交互采用 JSON数据格式。2. 根据权利要求1所述的基于JSON的机构养老数据交互方法,其特征是,在采用JSON数 据格式进行养老数据交互时,确定待交换养老数据的数据包协议格式,并对确定数据包协 议格式的养老数据进行数据包封装,以得到JSONObject的封装数据包,对所述封装数据包 再依次进行压缩与加密,以得到压缩加密数据包,以通过压缩加密数据包在手持终端与养 老服务器间进行所需的数据交互。3. 根据权利要求2所述的基于JSON的机构养老数据交互方法,其特征是,所述确定待交 换养老数据的数据包协议格式包括类型码、业务数据、删除数据以及更新数据。4. 一种基于JSON的机构养老数据交互系统,包括手持终端以及与所述手持终端能进行 养老数据交互的养老服务器;其特征是:所述手持终端与养老服务器间的数据交互采用 JSON数据格式。5. 根据权利要求4所述基于JSON的机构养老数据交互系统,其特征是,在采用JSON数据 格式进行养老数据交互时,确定待交换养老数据的数据包协议格式,并对确定数据包协议 格式的养老数据进行数据包封装,以得到JSONObject的封装数据包,对所述封装数据包再 依次进行压缩与加密,以得到压缩加密数据包,以通过压缩加密数据包在手持终端与养老 服务器间进行所需的数据交互。6. 根据权利要求5所述基于JSON的机构养老数据交互系统,其特征是,所述确定待交换 养老数据的数据包协议格式包括类型码、业务数据、删除数据以及更新数据。
【文档编号】H04L29/06GK105959263SQ201610258202
【公开日】2016年9月21日
【申请日】2016年4月22日
【发明人】叶小谋, 王蒙, 唐新余, 王轶, 陈 光
【申请人】无锡中科西北星科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1