CN114760290A - 一种应用开发方法、装置、电子设备及存储介质 - Google Patents

一种应用开发方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114760290A
CN114760290A CN202210493294.0A CN202210493294A CN114760290A CN 114760290 A CN114760290 A CN 114760290A CN 202210493294 A CN202210493294 A CN 202210493294A CN 114760290 A CN114760290 A CN 114760290A
Authority
CN
China
Prior art keywords
developer
target
file
protocol
communication protocol
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
CN202210493294.0A
Other languages
English (en)
Other versions
CN114760290B (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.)
Beijing Zitiao Network Technology Co Ltd
Original Assignee
Beijing Zitiao Network Technology Co Ltd
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 Zitiao Network Technology Co Ltd filed Critical Beijing Zitiao Network Technology Co Ltd
Priority to CN202210493294.0A priority Critical patent/CN114760290B/zh
Publication of CN114760290A publication Critical patent/CN114760290A/zh
Application granted granted Critical
Publication of CN114760290B publication Critical patent/CN114760290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

本公开提供了一种应用开发方法、装置、电子设备及存储介质,可以接收开发人员确定的目标通信协议和目标编解码协议,对目标通信协议和目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,获取开发人员写入的业务逻辑,对业务逻辑进行封装处理,得到目标应用的业务逻辑文件,根据开发人员输入的业务逻辑接口定义,生成目标应用内部数据处理的数据处理文件,对网络传输文件、业务逻辑文件和数据处理文件进行编译处理,得到目标应用的应用文件,这样,可以灵活替换各种协议,有效减少开发应用的工作量,提高程序的重用性,降低应用开发以及后续运营维护的难度。

Description

一种应用开发方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机应用领域,具体而言,涉及一种应用开发方法、装置、电子设备及存储介质。
背景技术
目前,随着科技的进步和发展,互联网产品形态丰富多样,在网络游戏、社交聊天软件领域,很多系统不使用标志的浏览器软件作为客户端,而是使用在线状态服务器。针对这一类软件在网络通信上的需求,例如网络数据传输、在线状态功能、业务逻辑编程等方面的需求,通过开发网络框架等工具来生成应用,从而解决需求,成为现在较为普遍的方式。
对于软件应用的生成,在开发阶段过程中,需要全新编写业务逻辑所需代码,这加大了开发人员的工作量,此外,即便是在业务需求更改时,需要对应修改程序,也需要编写大量代码,这种人工编写、人工配置的方法,由于工作量大,导致操作复杂,应用开发成本高,出现错误的可能性高,而且缺乏灵活性,降低了程序的重用性,也降低了应用开发的效率。
发明内容
本公开实施例至少提供一种应用开发方法、装置、电子设备及存储介质。
本公开实施例提供了一种应用开发方法,所述方法包括:
接收开发人员确定的目标通信协议和目标编解码协议,对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,其中,所述目标通信协议包括所述开发人员从预先提供的多个预设通信协议中选择的通信协议和/或所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从预先提供的多个预设编解码协议中选择的编解码协议和/或所述开发人员输入的自定义编解码协议;
获取所述开发人员写入的业务逻辑,对所述业务逻辑进行封装处理,得到所述目标应用的业务逻辑文件;
根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;
对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译处理,得到所述目标应用的应用文件。
一种可选的实施方式中,所述方法包括:
接收所述开发人员确定的目标通信协议;
响应于所述开发人员的输入操作,确定所述开发人员写入的通信接口定义;
按照所述通信接口定义,对所述目标通信协议进行封装,得到待生成目标应用的网络传输文件。
一种可选的实施方式中,所述方法还包括:
响应于所述开发人员的输入操作,确定所述开发人员写入的编解码接口定义;
接收所述开发人员确定的目标编解码协议;
按照所述编解码接口定义对所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件。
一种可选的实施方式中,在所述接收所述开发人员确定的目标通信协议之后,所述方法还包括:
在接收到所述开发人员从所述多个预设通信协议选择出所述目标通信协议的情况下,或者在接收到所述开发人员输入的自定义的所述目标通信协议的情况下,将所述目标通信协议封装成数据包。
一种可选的实施方式中,在所述获取所述开发人员写入的业务逻辑之后,所述方法还包括:
接收至少一个数据包,其中,所述数据包来自服务器和/或客户端;
针对所述至少一个数据包,确定每个所述数据包的数据内容;
基于每个所述数据包的数据内容,确定与每个所述数据包匹配的所述业务逻辑,以根据匹配的所述业务逻辑对每个所述数据包进行处理。
一种可选的实施方式中,所述方法还包括:
接收所述开发人员输入的业务逻辑接口定义,按照所述业务逻辑接口定义对业务数据进行处理;
接收所述开发人员输入的数据处理接口定义,按照所述数据处理接口定义对所述数据包的数据内容进行处理。
一种可选的实施方式中,所述方法还包括:
在每次接收或发送所述数据包时,建立协程,控制后续的针对所述数据包的接收或发送都在同一协程中进行。
本公开实施例还提供了一种应用开发装置,所述装置包括:
协议封装模块,用于接收开发人员确定的目标通信协议和目标编解码协议,将所述目标通信协议和所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件,其中,所述目标通信协议为所述开发人员从所述多个预设通信协议中选择的通信协议和所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从所述多个预设编解码协议中选择的编解码协议和所述开发人员输入的自定义编解码协议;
逻辑封装模块,用于获取所述开发人员写入的业务逻辑,并对所述业务逻辑进行封装,得到所述目标应用的业务逻辑文件;
接口确定模块,用于根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;
文件编译模块,用于对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译,得到所述目标应用的应用文件。
一种可选的实施方式中,所述协议封装模块具体用于:
接收所述开发人员确定的目标通信协议;
响应于所述开发人员的输入操作,确定所述开发人员写入的通信接口定义;
按照所述通信接口定义,对所述目标通信协议进行封装,得到待生成目标应用的网络传输文件。
一种可选的实施方式中,所述协议封装模块还用于:
响应于所述开发人员的输入操作,确定所述开发人员写入的编解码接口定义;
接收所述开发人员确定的目标编解码协议;
按照所述编解码接口定义对所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件。
一种可选的实施方式中,所述接口确定模块还用于:
在接收到所述开发人员从所述多个预设通信协议选择出所述目标通信协议的情况下,或者在接收到所述开发人员输入的自定义的所述目标通信协议的情况下,将所述目标通信协议封装成数据包。
一种可选的实施方式中,所述接口确定模块还用于:
接收至少一个数据包,其中,所述数据包来自服务器和/或客户端;
针对所述至少一个数据包,确定每个所述数据包的数据内容;
基于每个所述数据包的数据内容,确定与每个所述数据包匹配的所述业务逻辑,以根据匹配的所述业务逻辑对每个所述数据包进行处理。
一种可选的实施方式中,所述接口确定模块还用于:
接收所述开发人员输入的业务逻辑接口定义,按照所述业务逻辑接口定义对业务数据进行处理;
接收所述开发人员输入的数据处理接口定义,按照所述数据处理接口定义对所述数据包的数据内容进行处理。
一种可选的实施方式中,所述接口确定模块还用于:
在每次接收或发送所述数据包时,建立协程,控制后续的针对所述数据包的接收或发送都在同一协程中进行。
本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述应用开发方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述应用开发方法的步骤。
本公开提供的一种应用开发方法、装置、电子设备及存储介质,可以接收开发人员确定的目标通信协议和目标编解码协议,对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,其中,所述目标通信协议包括所述开发人员从预先提供的多个预设通信协议中选择的通信协议和/或所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从预先提供的多个预设编解码协议中选择的编解码协议和/或所述开发人员输入的自定义编解码协议;获取所述开发人员写入的业务逻辑,对所述业务逻辑进行封装处理,得到所述目标应用的业务逻辑文件;根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译处理,得到所述目标应用的应用文件,这样,可以灵活替换各种协议,有效减少开发应用的工作量,提高程序的重用性,降低应用开发以及后续运营维护的难度。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种应用开发系统的结构图;
图2示出了本公开实施例所提供的一种应用开发方法的流程图;
图3示出了本公开实施例所提供的应用开发系统中,数据包传输层的结构图;
图4示出了本公开实施例所提供的应用开发系统中,数据处理层的结构图;
图5示出了本公开实施例所提供的一种应用开发装置的示意图;
图6示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,对于软件应用的生成,在开发阶段过程中,需要全新编写业务逻辑所需代码,这加大了开发人员的工作量,此外,即便是在业务需求更改时,需要对应修改程序,也需要编写大量代码,这种人工编写、人工配置的方法,由于工作量大,导致操作复杂,应用开发成本高,出现错误的可能性高,而且缺乏灵活性,降低了程序的重用性,也降低了应用开发的效率。
基于上述研究,本公开提供了一种应用开发方法、装置、电子设备及存储介质,可以接收开发人员确定的目标通信协议和目标编解码协议,对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,其中,所述目标通信协议包括所述开发人员从预先提供的多个预设通信协议中选择的通信协议和/或所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从预先提供的多个预设编解码协议中选择的编解码协议和/或所述开发人员输入的自定义编解码协议;获取所述开发人员写入的业务逻辑,对所述业务逻辑进行封装处理,得到所述目标应用的业务逻辑文件;根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译处理,得到所述目标应用的应用文件,这样,可以灵活替换各种协议,有效减少开发应用的工作量,提高程序的重用性,降低应用开发以及后续运营维护的难度。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种应用开发方法进行详细介绍,本公开实施例所提供的应用开发方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备。在一些可能的实现方式中,该应用开发方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
请参阅图1,图1为本公开实施例提供的一种应用开发系统的结构图。如图1中所示,本公开实施例提供的应用开发系统包括通信协议库、数据包传输层、应用逻辑处理层、数据处理层和文件编译层。
这里,通信协议库用于向开发人员提供多个预设通信协议和多个预设编解码协议。
这里,数据包传输层用于接收所述开发人员确定的目标通信协议和目标编解码协议,将所述目标通信协议和所述目标编解码协议进行封装,得到待生成目标应用的网络传输文件。
这里,应用逻辑处理层用于获取所述开发人员写入的业务逻辑,并对所述业务逻辑进行封装,得到所述目标应用的业务逻辑文件。
这里,数据处理层用于根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件。
这里,文件编译层用于对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译,得到所述目标应用的应用文件。
请参阅图2,图2为本公开实施例提供的一种应用开发方法的流程图。如图2中所示,本公开实施例提供的应用开发方法包括:
S201:接收开发人员确定的目标通信协议和目标编解码协议,对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,其中,所述目标通信协议包括所述开发人员从预先提供的多个预设通信协议中选择的通信协议和/或所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从预先提供的多个预设编解码协议中选择的编解码协议和/或所述开发人员输入的自定义编解码协议。
在进行应用开发的过程中,可以接收开发人员确定的目标通信协议和目标编解码协议,通过上文内容可知,通信协议库中包括多个预设通信协议和多个预设编解码协议,所述多个预设通信协议和多个预设编解码协议提供给开发人员进行选用,因此所述目标通信协议和目标编解码协议可以是所述开发人员从所述通信协议库提供的所述多个预设通信协议和多个预设编解码协议中选择的,也可以是所述开发人员在选择所述多个预设通信协议和多个预设编解码协议的基础上,结合所述目标应用的开发需求,进行调整后得到的,还可以是所述开发人员自行编写的。
在确定所述目标通信协议和目标编解码协议之后,可以对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,用于后续的应用开发。
其中,所述预设通信协议,包括但不仅局限于传输控制协议TcpTransport、用户数据报协议UdpTransport、中间层网络通信协议KcpTransport、安全套接字协议SslTransport、数据类型编码格式协议TlvProtocol、超文本传输协议HttpProtocol。
其中,所述预设编解码协议,包括但不仅局限于对象简谱编译码协议JsonCodec、结构化数据序列化协议ProtocolBufferCodec。
其中,若所述开发人员在开发某一类应用时较高频率使用到某个协议,在所述通信协议库中没有提供该协议的情况下,开发人员可以自行将该协议添加到所述通信协议库中,使其在后续作为预设协议被提供。
具体的,一些可能的实施方式中,所述方法包括:
接收所述开发人员确定的目标通信协议;
响应于所述开发人员的输入操作,确定所述开发人员写入的通信接口定义;
按照所述通信接口定义,对所述目标通信协议进行封装,得到待生成目标应用的网络传输文件。
该步骤中,在接收所述目标通信协议的情况下,可以将所述目标通信协议进行封装,从而得到待生成目标应用的网络传输文件。
这里,基于所述目标通信协议的封装,可以使网络传输文件以数据包的形式在进程之间进行传输。
相应地,一些可能的实施方式中,所述方法还包括:
响应于所述开发人员的输入操作,确定所述开发人员写入的编解码接口定义;
接收所述开发人员确定的目标编解码协议;
按照所述编解码接口定义对所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件。
该步骤中,在接收所述目标编解码协议的情况下,可以将所述目标编解码协议进行封装,从而得到待生成目标应用的网络传输文件。
这里,基于所述目标编解码协议的封装,实现数据包的分解和封装,从而可以对网络传输文件进行数据包的分解和封装。
因此,一些可能的实施方式中,在所述接收所述开发人员确定的目标通信协议之后,所述方法还包括:
在接收到所述开发人员从所述多个预设通信协议选择出所述目标通信协议的情况下,或者在接收到所述开发人员输入的自定义的所述目标通信协议的情况下,将所述目标通信协议封装成数据包。
其中,基于所述目标通信协议的封装,所有的网络传输都确定为收一个数据包和发一个数据包的形式,从而可以实现隐藏有连接和无连接、流式传输和数据端传输的差异。
其中,所述数据包,是根据分包协议获得的完整的逻辑数据段,是可供后续业务逻辑代码处理的完整数据。
S202:获取所述开发人员写入的业务逻辑,对所述业务逻辑进行封装处理,得到所述目标应用的业务逻辑文件。
该步骤中,有效构建所述目标应用的业务逻辑部分,可以获取所述开发人员写入的业务逻辑,在确定所述业务逻辑的情况下,可以对所述业务逻辑进行封装,得到所述目标应用的业务逻辑文件。
其中,所述业务逻辑,由包括所述目标应用的运行业务、运行机制的逻辑代码构成,是所述目标应用的实际运行业务的需求的开发和编程。
具体的,所述业务逻辑包括但不仅局限于:字符获取ChatHandler、服务器登陆LoginHandler、客户端登陆UserLoginProcessor。
S203:根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件。
该步骤中,可以将得到的数据包形式的网络传输文件,进行进一步的处理,实现把数据包形式的网络传输文件转换成业务逻辑所需的数据对象形式的数据处理文件,因此,可以接收所述开发人员输入的业务逻辑接口定义,在确定所述开发人员输入的业务逻辑接口定义的情况下,根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件。
可选地,针对数据包形式的网络传输文件,可以使用编解码器(Codec)进行数据解析,从而得到数据对象形式的数据处理文件。这里,每个数据对象形式的数据处理文件可以包括三个标准数据字段Service、SeqId和SessId,Codec可以从数据对象形式的数据处理文件中提取上述三个字段的内容进行处理。
在其他实施方式中,可以根据字段SeqId进行请求-响应模式处理,相应地,可以创建一个列表,记录每次的请求-响应的标识,实现全双工异步的应答模式。
在其他实施方式中,可以根据字段SessId进行会话保持,具体的,在首次访问服务器时,都会在服务器上建立一个会话对象,这个会话对象可以保存用户指定的状态数据,并且这个会话对象会被包括同一字段SessId的数据包所保存,在预设时间内检测到不再发送包括相同字段SessId的数据包到服务器的情况下,可以认为服务器再次接收到包括该字段SessId的数据包的可能性低,此时服务器可以删除该会话对象。
具体的,一些可能的实施方式中,在所述获取所述开发人员写入的业务逻辑之后,所述方法还包括:
接收至少一个数据包,其中,所述数据包来自服务器和/或客户端;
针对所述至少一个数据包,确定每个所述数据包的数据内容;
基于每个所述数据包的数据内容,确定与每个所述数据包匹配的所述业务逻辑,以根据匹配的所述业务逻辑对每个所述数据包进行处理。
可以理解,不同的数据包所包含的数据内容也不同,需要不同的业务逻辑对其进行处理,在接收到至少一个数据包后,可以根据每个所述数据包的数据内容,配到应该处理所述数据包的业务逻辑,并将所述数据包发送给对应的业务逻辑,实现数据分发。
可选地,可以提供业务逻辑接口和数据处理接口,以接收所述开发人员输入的业务逻辑接口定义和数据处理接口定义。
具体的,一些可能的实施方式中,所述方法还包括:
接收所述开发人员输入的业务逻辑接口定义,按照所述业务逻辑接口定义对业务数据进行处理;
接收所述开发人员输入的数据处理接口定义,按照所述数据处理接口定义对所述数据包的数据内容进行处理。
一些可能的实施方式中,所述方法还包括:
在每次接收或发送所述数据包时,建立协程,控制后续的针对所述数据包的接收或发送都在同一协程中进行。
其中,所述协程的建立,并没有增加线程的数量,只是在线程的基础上通过分时复用的方式运行多个协程,所述协程的建议和使用,可以改善线程占用过多内存空间和线程切换占用大量系统时间的问题,实现高效率的编程。
S204:对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译处理,得到所述目标应用的应用文件。
该步骤中,可以将得到的所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行整合和编译处理,通过编译器的语言运行库的转换,得到所述目标应用的应用文件。
请同时参阅图3,图3为本公开实施例提供的应用开发系统中,数据包传输层的结构图。如图3中所示,本公开实施例提供的数据包传输层300包括数据包传输模块310、数据包传输接口模块320和编解码接口模块330,数据包传输模块310包括数据传输接口311和数据拆封接口312。
这里,数据包传输模块310,用于写入所述开发人员确定的目标通信协议,为所述目标应用提供与外界进行数据传输的功能。
该数据包传输模块,可以结合上述通信协议库进行使用,提供给开发人员在所述通信协议库中选取目标通信协议和开发人员自定义编写目标通信协议,在接收所述开发人员输入的目标通信协议的情况下,基于所述目标通信协议,为所述目标应用提供与外界进行数据传输的功能。
这里,数据包传输接口模块320,用于供所述开发人员写入通信接口定义,并将所述数据包传输模块确定的所述目标通信协议按照所述通信接口定义进行封装。
该数据包传输接口模块,提供通信接口,可以接收开发人员编写的通信接口定义,在确定所述通信接口定义的情况下,按照所述通信接口定义,将所述目标通信协议进行封装。
这里,编解码接口模块330,用于供所述开发人员写入编解码接口定义,并在接收到所述开发人员确定的目标编解码协议后,将所述目标编解码协议按照所述编解码接口定义进行封装,为所述目标应用提供序列化和反序列化功能。
该编解码接口模块,提供编解码接口,可以接收开发人员编写的通信接口定义,并且,可以结合上述通信协议库进行使用,提供给开发人员在所述通信协议库中选取目标编解码协议和开发人员自定义编写目标编解码协议,这样,可以在接收到所述开发人员输入的目标编解码协议和接收开发人员编写的通信接口定义的情况下,按照所述编解码接口定义,将所述目标编解码协议进行封装,为所述目标应用提供序列化和反序列化功能。
这里,数据传输接口311和数据拆封接口312,用于在所述开发人员从所述多个预设通信协议选择出所述目标通信协议的情况下,或者在所述开发人员输入自定义的所述目标通信协议的情况下,将所述目标通信通过所述数据传输接口和所述数据拆封接口写入所述数据包传输模块中。
其中,所述数据传输接口,主要负责具体操作系统的I/O处理,提供Peek(查找I/O事件)、Read(读取I/O数据)、Write(写入I/O数据)三个核心功能。
示例性的,所述数据传输接口,可以是套接字socket或者共享内存。
其中,所述数据拆封接口,主要负责对读写的数据进行数据包的分解和封装,并且,针对不同的通信协议,通过封装,实现对数据包进行同一形式的编程。
示例性的,对于某些消息队列BusMessager协议,可以直接将其封装为单独的Messager协议;对于自定义的游戏协议,可以使用TcpTransport,配合固定长度的包头,封装形成TLVProtocol。
请同时参阅图4,图4为本公开实施例提供的应用开发系统中,数据处理层的结构图。如图4中所示,本公开实施例提供的数据处理层400包括服务器数据处理模块410、客户端数据处理模块420、数据分发处理模块430、业务逻辑接口模块440、数据包处理接口模块450和协程单元460。
这里,服务器数据处理模块410,用于服务器收发所述数据包。
该服务器数据处理模块,提供Notify和SetProcessor两个核心方法,所述Notify方法用于服务器向外发送数据包,所述SetProcessor方法用于服务器接收外部发送过来的数据包。
这里,客户端数据处理模块420,用于客户端收发所述数据包。
该客户端数据处理模块,提供Send和OnNotify两个核心方法,所述Send方法用于客户端向外发送数据包,所述OnNotify方法用于客户端接收外部发送过来的数据包。
这里,数据分发处理模块430,用于根据收到的数据包的不同数据内容,将数据包发给不同的业务逻辑去处理。
该数据分发处理模块,主要负责对服务器接收到的数据包进行后续的处理。不同的数据包所包含的数据内容也不同,需要不同的业务逻辑对其进行处理,所述数据分发处理模块,可以根据所述数据包所包含的具体内容,匹配到应该处理所述数据包的业务逻辑,并将所述数据包发送给对应的业务逻辑,实现数据分发。
这里,业务逻辑接口模块440,用于供所述开发人员输入业务逻辑接口定义,并按照所述业务逻辑接口定义对业务数据进行处理。
该业务逻辑接口模块,提供业务逻辑接口,可以接收开发人员编写的业务逻辑接口定义,在确定所述业务逻辑接口定义的情况下,按照所述业务逻辑接口定义,对业务数据进行处理。
这里,数据包处理接口模块450,用于供所述开发人员输入数据处理接口定义,并按照所述业务逻辑接口定义对数据包数据进行处理。
该数据包处理接口模块,提供数据包处理接口,可以接收开发人员编写的数据处理接口定义,在确定所述数据包处理接口定义的情况下,按照所述数据处理接口定义,对数据包数据进行处理。
这里,服务器数据处理模块410和/或客户端数据处理模块420还包协程单元460,协程单元用于在每次服务器数据处理模块和/或客户端数据处理模块进行收发所述数据包时,建立协程,使后续的处理所述数据包的收发都在同一协程中进行。
该协程单元,主要负责建立协程,使同一服务器和/或客户端的所述数据包的收发处理可以在同一协程中进行。
其中,所述协程的建立,并没有增加线程的数量,只是在线程的基础上通过分时复用的方式运行多个协程,所述协程的建议和使用,可以改善线程占用过多内存空间和线程切换占用大量系统时间的问题,实现高效率的编程。
本公开实施例提供的一种应用开发方法,可以接收开发人员确定的目标通信协议和目标编解码协议,对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,其中,所述目标通信协议包括所述开发人员从预先提供的多个预设通信协议中选择的通信协议和/或所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从预先提供的多个预设编解码协议中选择的编解码协议和/或所述开发人员输入的自定义编解码协议;获取所述开发人员写入的业务逻辑,对所述业务逻辑进行封装处理,得到所述目标应用的业务逻辑文件;根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译处理,得到所述目标应用的应用文件,这样,可以灵活替换各种协议,有效减少开发应用的工作量,提高程序的重用性,降低应用开发以及后续运营维护的难度。
基于同一发明构思,本公开实施例中还提供了与应用开发方法对应的应用开发装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述应用开发方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图5,图5为本公开实施例提供的一种应用开发装置的示意图。本公开实施例提供的应用开发装置,应用于上述的应用开发系统,所述应用开发装置可以与所述应用开发系统为不同名称下的相同装置,所述应用开发装置也可以是所述应用开发系统的一部分,所述应用开发装置中的模块与所述应用开发系统中对应功能的模块可以耦合在一起,共同实现同一功能,如图5中所示,本公开实施例提供的应用开发装置500包括:
协议封装模块510,用于接收开发人员确定的目标通信协议和目标编解码协议,将所述目标通信协议和所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件,其中,所述目标通信协议为所述开发人员从所述多个预设通信协议中选择的通信协议和所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从所述多个预设编解码协议中选择的编解码协议和所述开发人员输入的自定义编解码协议;
逻辑封装模块520,用于获取所述开发人员写入的业务逻辑,并对所述业务逻辑进行封装,得到所述目标应用的业务逻辑文件;
接口确定模块530,用于根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;
文件编译模块540,用于对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译,得到所述目标应用的应用文件。
一种可选的实施方式中,所述协议封装模块510具体用于:
接收所述开发人员确定的目标通信协议;
响应于所述开发人员的输入操作,确定所述开发人员写入的通信接口定义;
按照所述通信接口定义,对所述目标通信协议进行封装,得到待生成目标应用的网络传输文件。
一种可选的实施方式中,所述协议封装模块510还用于:
响应于所述开发人员的输入操作,确定所述开发人员写入的编解码接口定义;
接收所述开发人员确定的目标编解码协议;
按照所述编解码接口定义对所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件。
一种可选的实施方式中,所述接口确定模块530还用于:
在接收到所述开发人员从所述多个预设通信协议选择出所述目标通信协议的情况下,或者在接收到所述开发人员输入的自定义的所述目标通信协议的情况下,将所述目标通信协议封装成数据包。
一种可选的实施方式中,所述接口确定模块530还用于:
接收至少一个数据包,其中,所述数据包来自服务器和/或客户端;
针对所述至少一个数据包,确定每个所述数据包的数据内容;
基于每个所述数据包的数据内容,确定与每个所述数据包匹配的所述业务逻辑,以根据匹配的所述业务逻辑对每个所述数据包进行处理。
一种可选的实施方式中,所述接口确定模块530还用于:
接收所述开发人员输入的业务逻辑接口定义,按照所述业务逻辑接口定义对业务数据进行处理;
接收所述开发人员输入的数据处理接口定义,按照所述数据处理接口定义对所述数据包的数据内容进行处理。
一种可选的实施方式中,所述接口确定模块530还用于:
在每次接收或发送所述数据包时,建立协程,控制后续的针对所述数据包的接收或发送都在同一协程中进行。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
本公开实施例提供的开发装置,可以接收开发人员确定的目标通信协议和目标编解码协议,对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,其中,所述目标通信协议包括所述开发人员从预先提供的多个预设通信协议中选择的通信协议和/或所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从预先提供的多个预设编解码协议中选择的编解码协议和/或所述开发人员输入的自定义编解码协议;获取所述开发人员写入的业务逻辑,对所述业务逻辑进行封装处理,得到所述目标应用的业务逻辑文件;根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译处理,得到所述目标应用的应用文件,这样,可以灵活替换各种协议,有效减少开发应用的工作量,提高程序的重用性,降低应用开发以及后续运营维护的难度。
对应于图1中的应用开发方法,本公开实施例还提供了一种电子设备600,如图6所示,为本公开实施例提供的电子设备600结构示意图,包括:
处理器610、存储器620、和总线630;存储器620用于存储执行指令,包括内存621和外部存储器622;这里的内存621也称内存储器,用于暂时存放处理器610中的运算数据,以及与硬盘等外部存储器622交换的数据,处理器610通过内存621与外部存储器622进行数据交换,当所述电子设备600运行时,所述处理器610与所述存储器620之间通过总线630通信,使得所述处理器610执行应用开发方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的应用开发方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品包括有计算机指令,所述计算机指令被处理器执行时可以执行上述方法实施例中所述的应用开发方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的方法和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种应用开发方法,其特征在于,所述方法包括:
接收开发人员确定的目标通信协议和目标编解码协议,对所述目标通信协议和所述目标编解码协议进行封装处理,得到待生成目标应用的网络传输文件,其中,所述目标通信协议包括所述开发人员从预先提供的多个预设通信协议中选择的通信协议和/或所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从预先提供的多个预设编解码协议中选择的编解码协议和/或所述开发人员输入的自定义编解码协议;
获取所述开发人员写入的业务逻辑,对所述业务逻辑进行封装处理,得到所述目标应用的业务逻辑文件;
根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;
对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译处理,得到所述目标应用的应用文件。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
接收所述开发人员确定的目标通信协议;
响应于所述开发人员的输入操作,确定所述开发人员写入的通信接口定义;
按照所述通信接口定义,对所述目标通信协议进行封装,得到待生成目标应用的网络传输文件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于所述开发人员的输入操作,确定所述开发人员写入的编解码接口定义;
接收所述开发人员确定的目标编解码协议;
按照所述编解码接口定义对所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件。
4.根据权利要求1所述的方法,其特征在于,在所述接收所述开发人员确定的目标通信协议之后,所述方法还包括:
在接收到所述开发人员从所述多个预设通信协议选择出所述目标通信协议的情况下,或者在接收到所述开发人员输入的自定义的所述目标通信协议的情况下,将所述目标通信协议封装成数据包。
5.根据权利要求4所述的方法,其特征在于,在所述获取所述开发人员写入的业务逻辑之后,所述方法还包括:
接收至少一个数据包,其中,所述数据包来自服务器和/或客户端;
针对所述至少一个数据包,确定每个所述数据包的数据内容;
基于每个所述数据包的数据内容,确定与每个所述数据包匹配的所述业务逻辑,以根据匹配的所述业务逻辑对每个所述数据包进行处理。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述开发人员输入的业务逻辑接口定义,按照所述业务逻辑接口定义对业务数据进行处理;
接收所述开发人员输入的数据处理接口定义,按照所述数据处理接口定义对所述数据包的数据内容进行处理。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在每次接收或发送所述数据包时,建立协程,控制后续的针对所述数据包的接收或发送都在同一协程中进行。
8.一种应用开发装置,其特征在于,所述装置包括:
协议封装模块,用于接收开发人员确定的目标通信协议和目标编解码协议,将所述目标通信协议和所述目标编解码协议进行封装,以得到待生成目标应用的网络传输文件,其中,所述目标通信协议为所述开发人员从所述多个预设通信协议中选择的通信协议和所述开发人员输入的自定义通信协议,所述目标编解码协议为所述开发人员从所述多个预设编解码协议中选择的编解码协议和所述开发人员输入的自定义编解码协议;
逻辑封装模块,用于获取所述开发人员写入的业务逻辑,并对所述业务逻辑进行封装,得到所述目标应用的业务逻辑文件;
接口确定模块,用于根据所述开发人员输入的业务逻辑接口定义,生成所述目标应用内部数据处理的数据处理文件;
文件编译模块,用于对所述网络传输文件、所述业务逻辑文件和所述数据处理文件进行编译,得到所述目标应用的应用文件。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7中任一项所述的应用开发方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7中任一项所述的应用开发方法的步骤。
CN202210493294.0A 2022-05-07 2022-05-07 一种应用开发方法、装置、电子设备及存储介质 Active CN114760290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210493294.0A CN114760290B (zh) 2022-05-07 2022-05-07 一种应用开发方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210493294.0A CN114760290B (zh) 2022-05-07 2022-05-07 一种应用开发方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114760290A true CN114760290A (zh) 2022-07-15
CN114760290B CN114760290B (zh) 2024-04-12

Family

ID=82334707

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210493294.0A Active CN114760290B (zh) 2022-05-07 2022-05-07 一种应用开发方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114760290B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170163645A1 (en) * 2003-06-05 2017-06-08 Intertrust Technologies Corporation Interoperable Systems and Methods for Peer-to-Peer Service Orchestration
US20180024851A1 (en) * 2016-07-25 2018-01-25 International Business Machines Corporation Automated data structure-driven orchestration of complex server provisioning tasks
CN109086147A (zh) * 2018-07-31 2018-12-25 深圳市元征科技股份有限公司 应用程序的服务接口调用方法、装置及存储介质
CN111813393A (zh) * 2020-03-20 2020-10-23 北京四维智联科技有限公司 一种应用程序开发方法及装置
CN112698888A (zh) * 2020-12-28 2021-04-23 广州虎牙科技有限公司 应用程序的组件化、组件调用和组件初始化方法及其装置
CN113065299A (zh) * 2021-02-23 2021-07-02 杭州电子科技大学 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法
CN113110864A (zh) * 2021-03-19 2021-07-13 深圳市腾讯网络信息技术有限公司 应用程序更新方法、装置及存储介质
CN113805882A (zh) * 2021-09-18 2021-12-17 上海波顿诺华智能科技有限公司 应用程序开发的方法、装置、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170163645A1 (en) * 2003-06-05 2017-06-08 Intertrust Technologies Corporation Interoperable Systems and Methods for Peer-to-Peer Service Orchestration
US20180024851A1 (en) * 2016-07-25 2018-01-25 International Business Machines Corporation Automated data structure-driven orchestration of complex server provisioning tasks
CN109086147A (zh) * 2018-07-31 2018-12-25 深圳市元征科技股份有限公司 应用程序的服务接口调用方法、装置及存储介质
CN111813393A (zh) * 2020-03-20 2020-10-23 北京四维智联科技有限公司 一种应用程序开发方法及装置
CN112698888A (zh) * 2020-12-28 2021-04-23 广州虎牙科技有限公司 应用程序的组件化、组件调用和组件初始化方法及其装置
CN113065299A (zh) * 2021-02-23 2021-07-02 杭州电子科技大学 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法
CN113110864A (zh) * 2021-03-19 2021-07-13 深圳市腾讯网络信息技术有限公司 应用程序更新方法、装置及存储介质
CN113805882A (zh) * 2021-09-18 2021-12-17 上海波顿诺华智能科技有限公司 应用程序开发的方法、装置、电子设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张恺: "可视化跨平台移动应用开发环境的设计与实现", 《信息科技》, no. 2015 *

Also Published As

Publication number Publication date
CN114760290B (zh) 2024-04-12

Similar Documents

Publication Publication Date Title
CN108563517B (zh) 系统接口的调用方法及装置
Richerzhagen et al. Simonstrator: Simulation and prototyping platform for distributed mobile applications
US6687735B1 (en) Method and apparatus for balancing distributed applications
CN110417766A (zh) 一种协议解析的方法和装置
CN111901230B (zh) 一种支持设备接入验证的物联网网关、系统和设备接入验证的方法
CN109977822B (zh) 数据供给方法、模型训练方法、装置、系统、设备和介质
Mangas et al. WOTPY: A framework for web of things applications
CN112023402B (zh) 游戏数据处理方法、装置、设备以及介质
CN115292020A (zh) 一种数据处理方法、装置、设备以及介质
CN114020846A (zh) 一种可更改nft作品处理方法及其装置
CN113926185A (zh) 一种数据处理方法、装置、设备及存储介质
CN110728558A (zh) 虚拟物品包发送方法、装置、设备和存储介质
CN114760290A (zh) 一种应用开发方法、装置、电子设备及存储介质
CN116668520A (zh) 一种基于网关的服务编排方法、系统、设备及存储介质
CN114245192B (zh) 多进程解码播放方法和装置
CN113608746B (zh) 一种代码转换处理方法、装置、计算机设备和存储介质
CN111651146B (zh) 一种函数生成方法、装置、设备和介质
CN110262912B (zh) 一种过程调用gRPC的调用方法及装置
CN112001156A (zh) 一种表单处理方法、装置及计算机可读存储介质
CN112532534A (zh) 一种数据传输方法、装置以及计算机可读存储介质
Byelozyorov et al. An open modular middleware for interoperable virtual environments
Bader et al. Evaluation Environment for Linked Data Web Services.
Zhang et al. Service-oriented-architecture based framework for multi-user virtual environments
CN113722015B (zh) 组合组件的获取方法、装置及存储介质
Dykes et al. Real-time web-based remote interaction with active HPC applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant