CN103179133A - 基于实体类的客户端与服务器通信的方法 - Google Patents

基于实体类的客户端与服务器通信的方法 Download PDF

Info

Publication number
CN103179133A
CN103179133A CN201310127953XA CN201310127953A CN103179133A CN 103179133 A CN103179133 A CN 103179133A CN 201310127953X A CN201310127953X A CN 201310127953XA CN 201310127953 A CN201310127953 A CN 201310127953A CN 103179133 A CN103179133 A CN 103179133A
Authority
CN
China
Prior art keywords
communication
client
server
entity class
data
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.)
Granted
Application number
CN201310127953XA
Other languages
English (en)
Other versions
CN103179133B (zh
Inventor
何泾沙
张伊璇
史秀鹏
万雪娇
刘公政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sino Parsons Technology Beijing Co ltd
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201310127953.XA priority Critical patent/CN103179133B/zh
Publication of CN103179133A publication Critical patent/CN103179133A/zh
Application granted granted Critical
Publication of CN103179133B publication Critical patent/CN103179133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供的基于实体类的客户端与服务器通信的方法,包括定义客户端与服务器用于数据传输的实体类以及客户端和服务器通信的通信接口及通信函数;服务器开启服务,客户端将数据赋予到对应的实体类并序列化为Json报,通过通信接口发送到服务器;服务器端对Json报进行反序列化得实体类数据,通过业务处理得结果;服务器端将结果赋予到到实体类中,并将实体类数据序列化为Json报文字节序列,通过通信接口返回到客户端;客户端对Json报文字节序列进行反序列化得到实体类数据,再对该实体类数据进行业务处理。本发明提供的基于实体类的客户端与服务器通信的方法有效减轻通信压力和项目复杂度,使客户端与服务器端的通信更加简洁高效。

Description

基于实体类的客户端与服务器通信的方法
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种基于实体类的客户端与服务器通信的方法。
背景技术
互联网发展初期,网页比较简单,仅包括文字或少量图片,在传统移动终端上,浏览器一般采用HTTP协议来访问服务器。但随着互联网的发展,网页的内容和形式越来越丰富,网页内容不仅包含了文字,还有大量的图片、多媒体信息和外接等。根据2012年***的统计显示,每幅网页大概有88个资源,需要访问14个不同的站点,并且平均大小640KB。
当前在基于互联网的科研中,无论采用C/S架构还是B/S架构,要开发一种软件或者产品,一般使用C类语言或Java类语言,若各模块使用同一类语言,则无通信流畅,但随着技术的不断发展与更新,在越来越多的情况下,需要使用多类编程语言共同开发程序,如使用C类语言编写客户端和Java类语言编写服务器端,但是数据类型不同、数据格式不统一等原因,会造成各模块间的数据通信出现问题。
为了解决上述问题,目前的解决方案是套接字方法,每次通信时,首先在客户端和服务器端建立一个通道来连接客户端请求到服务器端的特定端口,继而将客户端的字段逐个读出来,存到流、xml、properties等载体中,然后通过载体将字段发送到服务器端,服务器端进行解析,重新生成对象,再次将字段保存到流、xml、properties等载体,回传到客户端。
这种解决方案的数据传递方向是客户端->流、xml、properties等载体->服务器端->流、xml、properties等载体->客户端;同时造成了很多问题,主要有两个方面:
1、数据要在客户端与载体、服务器端与载体之间不停地转换,过程比较复杂并且很容易产生错误;
2、在于不同的客户端可能由不同的语言编写,在于服务器端的通信过程中,就需要不同格式的中间载体,加大了项目复杂度,难于管理。
尤其是在复杂的大型项目中,复杂的数据类型、大量的数据与多种格式的通信中间载体不仅容易在数据转换中产生数据失真等问题,也容易因为通信压力过大引起通信崩溃。
因此,对于现有技术所存在的问题,迫切需要本领域技术人员解决的技术问题是提供有效措施,以解决现有技术存在的问题。
发明内容
本发明所要解决的技术问题是提供一种基于实体类的客户端与服务器通信的方法,用于减轻通信压力和项目复杂度,使客户端与服务器端的通信更加简洁高效。
为了解决上述问题,本发明公开了一种基于实体类的客户端与服务器通信的方法,包括:
定义客户端与服务器用于数据传输的实体类;
定义客户端和服务器通信的通信接口及通信函数;
通信过程中服务器开启服务,客户端将数据赋予到对应的实体类并序列化为Json报文字节序列,通过通信接口发送到服务器端;
服务器端对Json报文字节序列进行反序列化得到实体类数据,通过业务处理得到结果;
服务器端将结果赋予到到实体类中,并将实体类数据序列化为Json报文字节序列,通过通信接口返回到客户端;
客户端对Json报文字节序列进行反序列化得到实体类数据,再对该实体类数据进行业务处理。
进一步地,所述定义客户端和服务器通信的通信接口及通信函数包括定义服务器端的通信接口及通信函数、定义客户端的通信接口及通信函数和实现客户端访问服务器端的流程。
进一步地,所述方法在客户端定义通信接口时同时说明实体类对应的通信接口名称及其名下对应的服务。
进一步地,所述方法还包括:定义通信类、数据访问基类、封装基的数据操作以及每一个实体类对应的数据访问类。
进一步地,客户端发送数据到服务器端的方法时,数据访问类调用数据访问基类,数据访问基类再调用通信类,在通信类中将实体类数据序列化为Json报文字节序列,通过通信接口访问服务器端对应的服务。
进一步地,所定义的客户端与服务器用于数据传输的实体类完全相同。
进一步地,所述定义客户端与服务器用于数据传输的实体类时,使用Sybase Power Designer工具设计实体类并编写相应的控制代码,分别生成客户端与服务器对应的实体类代码。
进一步地,通信时客户端通过IP地址及端口访问服务器,再通过通信接口连接到具体的服务。
进一步地,所述文本结束符在同一附件里只出现一次。
综上,本方案应用于明文数据传输接收中,可以利用其简洁高效的编码解码效率,大大降低了密文的长度及存储空间,增强信道的传输速率,从而减少数据的传输延迟;同时,利用门限方案和可信第三方增加了传输数据的安全性。
附图说明
图1是本发明的本发明的一种基于实体类的客户端与服务器通信的方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图与实例对本发明作进一步详细说明。但所举实例不作为对本发明的限定。
参见图1所示,本发明的一种基于实体类的客户端与服务器通信的方法的流程示意图,具体包括以下主要步骤:
步骤SA01,定义客户端与服务器用于数据传输的实体类;
步骤SA02,定义客户端和服务器通信的通信接口及通信函数;
步骤SA03,通信过程中服务器开启服务,客户端将数据赋予到对应的实体类并序列化为Json报文字节序列,通过通信接口发送到服务器端;
步骤SA04,服务器端对Json报文字节序列进行反序列化得到实体类数据,通过业务处理得到结果;
步骤SA05,服务器端将结果赋予到到实体类中,并将实体类数据序列化为Json报文字节序列,通过通信接口返回到客户端;
步骤SA06,客户端对Json报文字节序列进行反序列化得到实体类数据,再对该实体类数据进行业务处理。
具体的,本发明提出一种基于实体类的用于C编写的客户端与Java编写的服务器端进行通信的方法,使不同的C类开发语言都能通过实体类直接与服务器进行通信,降低通信负担、提高通信效率,增强***的健壮性。
实际应用中,客户端与服务器通信包括四个部分:服务器端与客户端定义完全相同的实体类(101)、服务器端与客户端定义通信接口(102),这是整个模型的基础;客户端处理数据(103),包括处理发送到服务器端的数据和处理从服务器端接收到的数据;服务器端处理数据(104),包括处理从客户端接收到的数据和处理发送到客户端的数据。
101:服务器端与客户端定义完全相同的实体类,这是整个通信的基础,这些实体类既可以作为通信中数据传输的载体,也可以作为客户端与服务器端进行业务处理时的数据对象。为了保证客户端与服务器端的实体类完全相同,可以使用Sybase Power Designer工具设计实体类并编写相应的控制代码,以便分别生成客户端与服务器端对应的实体类代码。
102:服务器端与客户端定义通信接口,这是整个通信的通道。该通信接口由两部分组成,分别是handler定义一个实体类对应的所有服务的通信接口,service来定义handler中的一个通信服务的具体流程。通信时,客户端通过IP地址及端口访问服务器端,再通过通信接口连接到具体的服务。
以上两个步骤是整个模型的基础准备,接下来客户端设置对应服务器端的IP地址和端口号,服务器端开启服务,进入通信流程。
103:客户端处理数据,包括处理发送到服务器端的数据和处理从服务器端接收到的数据。
客户端处理发送到服务器端的数据
步骤1客户端业务流程产生的实体类数据与调用的通信接口首先进入数据访问类;
步骤2由数据访问类进入数据访问基类,数据访问基类包括有参数、有返回值的通信接口调用,有参数、无返回值的通信接口调用,无参数、有返回值的通信接口调用,实体类数据通过调用其中一个接口进入数据访问基类;
步骤3由数据访问基类进入通信类,通信类包括通信函数的初始化、通信、网络设置、数据传输错误时的处理、日志记录、单向发送数据、单向接收数据、双向传递数据等函数,以及实体类数据序列化为字节序列的函数和字节序列反序列化为实体类数据的函数。
步骤4实体类数据在通信类被序列化为Json报文字节序列后,通过步骤3中定义的单向发送、单向接收、双向传递三种通信方式的一种,调用通信接口将Json报文字节序列发送到服务器端。如果该步骤选择单向接收这一通信方式,则只传递通信接口,不传递序列化后的Json报文字节序列;如果该步骤选择另外两种通信方式,则要传递通信接口和序列化后的Json报文字节序列。
104:服务器端处理数据,包括处理从客户端接收到的数据和处理发送到客户端的数据。
服务器端处理从客户端接收到的数据
步骤5客户端发送过来的Json报文字节序列通过通信接口调用对应实体类的handler,再进入对应的通信服务service;
步骤6service调用业务逻辑处理流程处理数据,将Json报文字节序列反序列化为实体类数据,处理数据过程包括首先判断传来数据是否为List队列,如果是,做特殊的Json反序列化处理,将传来的string格式的反序列化为实体类数据;如果不是,将传来的string格式的Json报文字节序列直接反序列化为实体类数据;
步骤7实体类数据进入service具体处理流程,根据调用DAO层定义的增删改查等数据库操作,产生结果;
步骤8由业务逻辑函数将得到的结果对应到相应的实体类中,并将实体类数据序列化为string格式的Json报文字节序列。
服务器端处理发送到客户端的数据
步骤9业务逻辑函数将步骤8中产生的Json报文字节序列发送到客户端的通信类中。如果103的步骤4中选择单向发送这一通信方式,则Json报文字节序列不再返回,只返回一个判断成功的true(或false)值;如果选择的是另外两种通信方式,则要返回Json报文字节序列。
103:客户端处理从服务器端接收到的数据
步骤10客户端首先通过通信类将服务器端返回的Json报文字节序列反序列化为实体类数据,并将该实体类数据传递到数据访问基类中去,反序列化过程为客户端通过通信类中的单向发送、单向接收、双向传递三种通信方式中的一种接收到Json报文字节序列后,对它进行反序列化处理,首先判断传来数据是否为List队列,如果是,做特殊的Json反序列化处理,将传来的string格式的Json报文字节序列反序列化为实体类数据,再进行对应的操作将数据显示出来;如果不是,将传来的string格式的Json报文字节序列直接反序列化为实体类数据。
步骤11由数据访问基类将数据传递到数据访问类中。
步骤12整个通信过程结束,接下来调用客户端业务处理流程处理数据。
以上对本发明所提供的基于实体类的客户端与服务器通信的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种基于实体类的客户端与服务器通信的方法,其特征在于,包括:
定义客户端与服务器用于数据传输的实体类;
定义客户端和服务器通信的通信接口及通信函数;
通信过程中服务器开启服务,客户端将数据赋予到对应的实体类并序列化为Json报文字节序列,通过通信接口发送到服务器端;
服务器端对Json报文字节序列进行反序列化得到实体类数据,通过业务处理得到结果;
服务器端将结果赋予到到实体类中,并将实体类数据序列化为Json报文字节序列,通过通信接口返回到客户端;
客户端对Json报文字节序列进行反序列化得到实体类数据,再对该实体类数据进行业务处理。
2.如权利要求1所述的基于实体类的客户端与服务器通信的方法,其特征在于:
所述定义客户端和服务器通信的通信接口及通信函数包括定义服务器端的通信接口及通信函数、定义客户端的通信接口及通信函数和实现客户端访问服务器端的流程。
3.如权利要求1所述的基于实体类的客户端与服务器通信的方法,其特征在于,所述方法在客户端定义通信接口时同时说明实体类对应的通信接口名称及其名下对应的服务。
4.如权利要求1所述的基于实体类的客户端与服务器通信的方法,其特征在于,所述方法还包括:定义通信类、数据访问基类、封装基的数据操作以及每一个实体类对应的数据访问类。
5.如权利要求1所述的基于实体类的客户端与服务器通信的方法,其特征在于,客户端发送数据到服务器端的方法时,数据访问类调用数据访问基类,数据访问基类再调用通信类,在通信类中将实体类数据序列化为Json报文字节序列,通过通信接口访问服务器端对应的服务。
6.如权利要求1所述的基于实体类的客户端与服务器通信的方法,其特征在于,所定义的客户端与服务器用于数据传输的实体类完全相同。
7.如权利要求6所述的基于实体类的客户端与服务器通信的方法,其特征在于,所述定义客户端与服务器用于数据传输的实体类时,使用SybasePower Designer工具设计实体类并编写相应的控制代码,分别生成客户端与服务器对应的实体类代码。
8.如权利要求1所述的基于实体类的客户端与服务器通信的方法,其特征在于,通信时客户端通过IP地址及端口访问服务器,再通过通信接口连接到具体的服务。
CN201310127953.XA 2013-04-12 2013-04-12 基于实体类的客户端与服务器通信的方法 Active CN103179133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310127953.XA CN103179133B (zh) 2013-04-12 2013-04-12 基于实体类的客户端与服务器通信的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310127953.XA CN103179133B (zh) 2013-04-12 2013-04-12 基于实体类的客户端与服务器通信的方法

Publications (2)

Publication Number Publication Date
CN103179133A true CN103179133A (zh) 2013-06-26
CN103179133B CN103179133B (zh) 2016-03-30

Family

ID=48638756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310127953.XA Active CN103179133B (zh) 2013-04-12 2013-04-12 基于实体类的客户端与服务器通信的方法

Country Status (1)

Country Link
CN (1) CN103179133B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428270A (zh) * 2013-07-09 2013-12-04 国云科技股份有限公司 一种适用于分布式环境的网络通信方法
CN103593194A (zh) * 2013-11-21 2014-02-19 北京国双科技有限公司 对象序列化方法和装置
CN103605518A (zh) * 2013-11-19 2014-02-26 北京国双科技有限公司 对象反序列化方法和装置
CN105681333A (zh) * 2016-02-24 2016-06-15 携程计算机技术(上海)有限公司 基于二进制的网络数据的传输方法及***
CN106227545A (zh) * 2016-07-28 2016-12-14 武汉源启科技股份有限公司 开发平台的设计方法及装置
CN106354568A (zh) * 2016-08-23 2017-01-25 京信通信技术(广州)有限公司 一种不同进程间的通信方法及通信装置
CN107562842A (zh) * 2017-08-25 2018-01-09 北京市天元网络技术股份有限公司 资源数据的保护方法及设备
CN107656801A (zh) * 2016-07-25 2018-02-02 武汉票据交易中心有限公司 一种基于事件的流程处理方法及***
CN109753270A (zh) * 2017-11-01 2019-05-14 中国石油化工股份有限公司 一种可扩展的钻井业务数据交换***与方法
CN110262901A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种数据处理方法及数据处理***
CN110298032A (zh) * 2019-05-29 2019-10-01 西南电子技术研究所(中国电子科技集团公司第十研究所) 文本分类语料标注训练***
CN110971581A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 加密数据处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714078A (zh) * 2008-10-06 2010-05-26 广东金宇恒科技有限公司 代码生成方法及装置
US20110029593A1 (en) * 2009-07-29 2011-02-03 International Business Machines Corporation Lightweight rrd extension framework
US20110154472A1 (en) * 2009-12-23 2011-06-23 Craig Anderson Systems and methods for prevention of json attacks
CN102624895A (zh) * 2012-03-09 2012-08-01 亿赞普(北京)科技有限公司 网络业务请求的处理方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714078A (zh) * 2008-10-06 2010-05-26 广东金宇恒科技有限公司 代码生成方法及装置
US20110029593A1 (en) * 2009-07-29 2011-02-03 International Business Machines Corporation Lightweight rrd extension framework
US20110154472A1 (en) * 2009-12-23 2011-06-23 Craig Anderson Systems and methods for prevention of json attacks
CN102624895A (zh) * 2012-03-09 2012-08-01 亿赞普(北京)科技有限公司 网络业务请求的处理方法及***

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428270A (zh) * 2013-07-09 2013-12-04 国云科技股份有限公司 一种适用于分布式环境的网络通信方法
CN103605518A (zh) * 2013-11-19 2014-02-26 北京国双科技有限公司 对象反序列化方法和装置
CN103593194A (zh) * 2013-11-21 2014-02-19 北京国双科技有限公司 对象序列化方法和装置
CN105681333A (zh) * 2016-02-24 2016-06-15 携程计算机技术(上海)有限公司 基于二进制的网络数据的传输方法及***
CN107656801A (zh) * 2016-07-25 2018-02-02 武汉票据交易中心有限公司 一种基于事件的流程处理方法及***
CN106227545B (zh) * 2016-07-28 2019-09-10 武汉源启科技股份有限公司 开发平台的设计方法及装置
CN106227545A (zh) * 2016-07-28 2016-12-14 武汉源启科技股份有限公司 开发平台的设计方法及装置
CN106354568A (zh) * 2016-08-23 2017-01-25 京信通信技术(广州)有限公司 一种不同进程间的通信方法及通信装置
CN107562842A (zh) * 2017-08-25 2018-01-09 北京市天元网络技术股份有限公司 资源数据的保护方法及设备
CN109753270A (zh) * 2017-11-01 2019-05-14 中国石油化工股份有限公司 一种可扩展的钻井业务数据交换***与方法
CN109753270B (zh) * 2017-11-01 2022-05-20 中国石油化工股份有限公司 一种可扩展的钻井业务数据交换***与方法
CN110971581A (zh) * 2018-09-30 2020-04-07 北京国双科技有限公司 加密数据处理方法和装置
CN110971581B (zh) * 2018-09-30 2022-05-27 北京国双科技有限公司 加密数据处理方法和装置
CN110298032A (zh) * 2019-05-29 2019-10-01 西南电子技术研究所(中国电子科技集团公司第十研究所) 文本分类语料标注训练***
CN110298032B (zh) * 2019-05-29 2022-06-14 西南电子技术研究所(中国电子科技集团公司第十研究所) 文本分类语料标注训练***
CN110262901A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种数据处理方法及数据处理***

Also Published As

Publication number Publication date
CN103179133B (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN103179133B (zh) 基于实体类的客户端与服务器通信的方法
US11188380B2 (en) Method and apparatus for processing task in smart device
CN102902537B (zh) 基于FastCGI和HTML模板的嵌入式WEB MVC开发框架
CN102185901B (zh) 一种客户端报文转换方法
CN105763619B (zh) 客户端与服务端进行通讯的方法及装置
CN108494817A (zh) 数据传输方法、相关装置及***
CN103974111B (zh) 将智能终端上的数据传输至电视终端的方法、装置
CN102202100A (zh) 微浏览器处理网络数据的方法、微浏览器及其服务器
US20150067013A1 (en) Methods for servicing web service requests using parallel agile web services and devices thereof
CN104135536A (zh) 一种基于json数据协议的Web管理***数据交互方法
CN101610268A (zh) 一种关键字过滤的实现方法和设备
CN102685128B (zh) 一种基于状态机的协议构造方法
CN103532959A (zh) 一种跨平台网络通信方法
CN108712320A (zh) 消息推送方法及装置
CN104660547B (zh) 一种实现远距离通信的服务平台
CN105302564A (zh) 网络办公软件服务控件及实现方法
CN103138871B (zh) 移动通讯***中应用程序的服务器数据处理***和方法
CN102761543A (zh) 一种实现sip协议通用编解码的方法和装置
CN106598829A (zh) 一种网页自动化测试方法及装置
CN103067511A (zh) 一种http请求处理的控制方法
CN102436391A (zh) Android WebKit的控制方法及***
CN105024923B (zh) 基于xmpp扩展消息的消息分类实现的方法及装置
CN105260179A (zh) 一种实现flex与servlet交互的方法
CN105320499A (zh) 一种应用程序的适配方法和相关装置
CN104247364A (zh) 一种应用于远程桌面的视频传输方法及设备、***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201117

Address after: 233000 Room 102 north, No.11, No.2 building, liukm Huayuan commercial building, Changqing Township, Yuhui District, Bengbu City, Anhui Province

Patentee after: Anhui Licha Information Technology Co.,Ltd.

Address before: 102600, room 2, building 2212, center 3, 2 Xinghua street, Daxing District, Beijing

Patentee before: BEIJING YONGBO TECHNOLOGY Co.,Ltd.

Effective date of registration: 20201117

Address after: 102600, room 2, building 2212, center 3, 2 Xinghua street, Daxing District, Beijing

Patentee after: BEIJING YONGBO TECHNOLOGY Co.,Ltd.

Address before: 100124 Chaoyang District, Beijing Ping Park, No. 100

Patentee before: Beijing University of Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211103

Address after: 101300 North Cultural Ying Village, Gaoliying Town, Shunyi District, Beijing (No. 1, Linkong Second Road)

Patentee after: SINO-PARSONS TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 233000 Room 102 north, No.11, No.2 building, liukm Huayuan commercial building, Changqing Township, Yuhui District, Bengbu City, Anhui Province

Patentee before: Anhui Licha Information Technology Co.,Ltd.

TR01 Transfer of patent right