CN103593172A - 面向统一结构化数据的应用程序的开发***、方法及装置 - Google Patents

面向统一结构化数据的应用程序的开发***、方法及装置 Download PDF

Info

Publication number
CN103593172A
CN103593172A CN201210421556.9A CN201210421556A CN103593172A CN 103593172 A CN103593172 A CN 103593172A CN 201210421556 A CN201210421556 A CN 201210421556A CN 103593172 A CN103593172 A CN 103593172A
Authority
CN
China
Prior art keywords
data
developer
sub
client
service server
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
CN201210421556.9A
Other languages
English (en)
Other versions
CN103593172B (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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210421556.9A priority Critical patent/CN103593172B/zh
Publication of CN103593172A publication Critical patent/CN103593172A/zh
Application granted granted Critical
Publication of CN103593172B publication Critical patent/CN103593172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提出了一种面向统一结构化数据的应用程序的开发***,包括:开发者客户端,用于向至少一个业务服务器提供开发者数据;至少一个业务服务器,用于将开发者数据拆分为多个子数据结构并存储至多个数据列表;中间数据订阅服务器,用于接收开发者客户端的数据订阅请求,并根据数据订阅请求从对应的业务服务器获得对应的开发者数据发送至所述用户客户端。本发明还提出了一种面向统一结构化数据的应用程序的开发方法、业务服务器和中间订阅服务器。本发明通过在客户端和服务器端采用统一的数据描述,并自动完成存储封装,使开发人员无需关注数据存储的细节问题,而只专注于描述业务所需的数据结构,减小了开发代码的复杂度,降低了开发成本。

Description

面向统一结构化数据的应用程序的开发***、方法及装置
技术领域
本发明涉及互联网云服务技术领域,特别涉及一种面向统一结构化数据的应用程序的开发***、方法及装置。
背景技术
随着互联网云技术的发展,云服务器的并发处理的性能越发强大,但是在当前应用中,由于云技术的核心是借助网络多PC计算来减轻用户的计算负担,服务器端通常不止有一台服务器进行计算,则各服务器需要彼此之间、并和客户端之间进行数据传输。在现有技术中,开发者首先需要保证数据在客户端和各服务器端的兼容性,需要理解数据传输目标服务器支持的数据传输格式,如表单、URL(Uniform/Universal Resource Locator,统一资源定位符)键值,或特殊的文本格式如逗号分隔、XML(ExtensibleMarkup Language,可扩展标记语言)等,并理解传输方法(包括get\post\websocket等)及资源请求位置、控制参数及请求内容的返回格式。其次,开发者还要保证实际应用中数据的实时性,例如当多个用户同时在线时,必须设置防止死锁等机制来保证用户请求的数据为最新数据;当多个用户需要进行操作,对同一数据进行写入时,也必须避免脏数据对数据库的写覆盖。即,开发者除了考虑应用程序本身的数据外,还必须编写大量代码以保证数据的兼容性和实时性,这大大提高了应用程序开发的难度,以及开发代码的复杂度。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种面向统一结构化数据的应用程序的开发***、方法、业务服务器及中间订阅服务器,使应用程序开发人员无需关注数据存储的具***置等细节问题,而只专注于描述业务所需的数据结构,从而减小开发代码的复杂度,降低开发成本,缩减开发周期。
为达到所述目的,本发明第一方面的实施例提出了一种面向统一结构化数据的应用程序的开发***,包括:中间数据订阅服务器、至少一个业务服务器、开发者客户端和用户客户端,其中,所述开发者客户端,用于向所述至少一个业务服务器提供开发者数据;所述至少一个业务服务器,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;所述中间数据订阅服务器,用于接收所述开发者客户端的数据订阅请求,并根据所述数据订阅请求从对应的业务服务器获得对应的开发者数据发送至所述用户客户端。
根据本发明实施例的面向统一结构化数据的应用程序的开发***,通过在客户端和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应用程序开发人员无需关注数据存储的具***置等细节问题,而只专注于描述业务所需的数据结构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
在本发明的一个实施例中,所述至少一个业务服务器、所述开发者客户端和所述用户客户端中的数据具有相同的数据描述。
在本发明的一个实施例中,所述中间数据订阅服务器还用于从所述至少一个业务服务器获得相应的多个子数据结构,并将所述多个子数据结构拼接为对应的开发者数据。
在本发明的另一个实施例中,所述至少一个业务服务器还用于对自身存储的所述多个子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所述中间数据订阅服务器将变化后的数据发送至所述用户客户端。
在本发明的一个实施例中,所述至少一个业务服务器还用于对所述多个子数据结构进行存储封装以补充存储信息。
在本发明的一个实施例中,所述业务服务器还用于对多个子数据结构进行序列化,所述中间数据订阅服务器还用于在拼接之前进行反序列化。
本发明第二方面的实施例提出了一种面向统一结构化数据的应用程序的开发方法,包括以下步骤:向所述至少一个业务服务器发送开发者数据;将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;接收所述开发者客户端的数据订阅请求;根据所述数据订阅请求从对应的业务服务器获得对应的开发者数据发送至用户客户端。
根据本发明实施例的面向统一结构化数据的应用程序的开发方法,通过在客户端和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应用程序开发人员无需关注数据存储的具***置等细节问题,而只专注于描述业务所需的数据结构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
在本发明的一个实施例中,所述至少一个业务服务器、所述开发者客户端和所述用户客户端中的数据具有相同的数据描述。
本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:从所述至少一个业务服务器获得相应的多个子数据结构,并将所述多个子数据结构拼接为对应的开发者数据。
本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:对自身存储的所述多个子数据结构进行监控;当所述多个子数据结构中的至少一个发生变化之后,将变化后的数据发送至所述用户客户端。
本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:所述至少一个业务服务器对所述多个子数据结构进行存储封装以补充存储信息。
本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:所述业务服务器对多个子数据结构进行序列化,所述中间数据订阅服务器在拼接之前进行反序列化。
本发明第三方面的实施例提出了一种业务服务器,包括:接收模块,用于接收开发者数据;拆分存储模块,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;发送模块,用于根据中间数据订阅服务器的请求将对应的开发者数据发送至所述用户客户端。
根据本发明实施例的业务服务器,自动进行数据的拆分、存储封装、发送等操作,作为面向统一结构化数据的应用程序的开发***的重要组成部分,为开发人员减小开发代码的复杂度、降低开发成本提供了可能。
本发明一个实施例的业务服务器还包括:监控模块,用于对自身存储的所述多个子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所述发送模块发送变化后的数据。
在本发明的一个实施例中,所述拆分存储模块还用于对所述多个子数据结构进行存储封装以补充存储信息。
本发明一个实施例的业务服务器还包括:序列化模块,用于对多个子数据结构进行序列化,并将序列化后的多个子数据结构通过所述发送模块进行发送。
本发明第四方面的实施例提出了一种中间数据订阅服务器,包括:接收模块,用于接收开发者发送的数据订阅请求,其中,所述数据订阅请求包括业务信息和用户信息;获取模块,用于根据所述业务信息从对应的业务服务器获得相应的开发者数据;发送模块,用于根据所述用户信息将所述开发者数据发送至对应的用户客户端。
根据本发明实施例的中间数据订阅服务器,接收客户端的数据订阅请求并为数据传输到客户端提供中转,作为面向统一结构化数据的应用程序的开发***的重要组成部分,为开发人员减小开发代码的复杂度、降低开发成本提供了可能。
本发明一个实施例的中间数据订阅服务器还包括:拼接模块,用于将从所述业务服务器获得的多个子数据结构拼接为对应的开发者数据。
本发明一个实施例的中间数据订阅服务器还包括:反序列化模块,用于对从客户端接收到的数据进行反序列化。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明所述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的面向统一结构化数据的应用程序的开发***的示意图;
图2为本发明实施例的面向统一结构化数据的应用程序的开发方法的流程图;
图3为本发明另一个实施例的面向统一结构化数据的应用程序的开发方法的流程图;
图4为一个根据本发明而得到了简化的开发程序的示例;
图5为本发明一个实施例的面向统一结构化数据的应用程序的开发方法获得数据的示意图;
图6为本发明实施例的业务服务器的示意图;
图7为本发明实施例的中间数据订阅服务器的示意图;以及
图8为本发明另一个实施例的中间数据订阅服务器的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解所述术语的具体含义。
下面参考图1至图3描述根据本发明实施例的面向统一结构化数据的应用程序的开发***及方法。
如图1所示,本发明实施例提供的面向统一结构化数据的应用程序的开发***包括、至少一个业务服务器120、开发者客户端130和用户客户端140,其中,开发者客户端130用于向至少一个业务服务器120提供开发者数据;至少一个业务服务器120用于将开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;中间数据订阅服务器110用于接收开发者客户端130的数据订阅请求,并根据数据订阅请求从对应的业务服务器获得对应的开发者数据发送至用户客户端140。在本发明的实施例中,开发者客户端130和用户客户端140可为PC机、移动终端或掌上电脑等。
具体地,中间数据订阅服务器110从至少一个业务服务器120获得相应的多个子数据结构,并将多个子数据结构拼接为对应的开发者数据。至少一个业务服务器120对自身存储的多个子数据结构进行监控,并在多个子数据结构中的至少一个发生变化之后,通过中间数据订阅服务器110将变化后的数据发送至用户客户端,以保证数据的实时性。在本发明的一个实施例中,至少一个业务服务器120还对多个子数据结构进行存储封装以补充存储信息。
在本发明的一个实施例中,至少一个业务服务器120、开发者客户端130和用户客户端140中的数据具有相同的数据描述。在服务器、客户端共同使用同一份基于结构化的数据描述,做到服务器端与客户端的统一,两端可以复用同一数据结构,并且立体的结构化数据,将使得开发者在描述业务数据时不需写入实现服务器端与客户端数据兼容的代码,降低开发代码的复杂度,减少了开发成本。
在本发明的一个实施例中,中间数据订阅服务器110从至少一个业务服务器120获得相应的多个子数据结构,并将多个子数据结构拼接为对应的开发者数据。在实际应用中,不同的子数据结构,经常会存储在不同的业务服务器上,当接收到数据订阅请求后,需要从多个业务服务器中获得多个子数据结构,并进行拼接以转换为用户所需要的数据格式。
在本发明的一个实施例中,至少一个业务服务器120还用于对自身存储的多个子数据结构进行监控,并在多个子数据结构中的至少一个发生变化之后,通过中间数据订阅服务器110将变化后的数据发送至用户客户端140。在实际应用中,子数据结构的变化,并不仅因为客户端的用户操作,也可能因为其他子数据结构中的数据改变而发生了变化,此时也需要将变化后的数据发送至用户客户端,以保证用户客户端中的数据是实时的最新数据。
在本发明的一个实施例中,至少一个业务服务器120还用于对多个子数据结构进行存储封装以补充存储信息。业务服务器120自动对主键、关联表、外键等存储信息进行补充,以实现存储封装。对存储信息的自动补充,使客户端仅需针对云端的数据容器提供的内容进行订阅即可获取数据,而无需关心数据存储的具***置等细节问题,并且所获取的数据由云端提供保证均符合数据结构描述,从开发者角度来说,不需要考虑数据的存储细节,只需关注自身业务所需的数据。如图4所示,photo数据类型中只包括data,meta,comments三种子数据结构,***自动将它们拆分为子数据后,分别存储在文件服务器、meta表服务器、comments表服务器中。在代码的数据结构中,因为无需编写数据库管理等具体存储实现方案的代码,代码的长度和复杂度比起传统技术的代码大幅降低。
在本发明的一个实施例中,业务服务器120对多个子数据结构进行序列化,中间数据订阅服务器110在拼接之前进行反序列化。序列化是数据传输过程中客户端与服务器端都需要执行的一个操作,序列化是指将数据内容转换成可以供网络传输的字符串格式或二进制格式的转换过程,反序列化则是将传输内容还原为数据内容的过程。数据由客户端向服务器端进行传输时,序列化工作由客户端完成,反序列化工作由服务器端完成(具体地,由中间数据订阅服务器110完成);服务器端向客户端传输时,序列化工作在服务器端完成(具体地,由业务服务器120完成),反序列化工作由客户端完成,在传统开发过程中,开发人员需要理解目标服务器支持的数据传输格式,如表单、URL键值,或特殊的文本格式如逗号分隔、XML等,并理解传输方法(包括get\post\web socket等)及资源请求位置、控制参数及请求内容的返回格式,并以此为基础开发传递数据的数据序列化和反序列化方法.在使用框架后,这一系列的操作统一由框架提供,开发人员只需要使用数据,不需要关心其传输过程,代码的长度和复杂度比起传统技术的代码大幅降低。
根据本发明实施例提供的面向统一结构化数据的应用程序的开发***,通过在客户端和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应用程序开发人员无需关注数据存储的具***置等细节问题,而只专注于描述业务所需的数据结构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
如图2所示,本发明第二方面的实施例提出了一种面向统一结构化数据的应用程序的开发方法,包括以下步骤:
S201:向至少一个业务服务器发送开发者数据。
至少一个业务服务器、开发者客户端和用户客户端中的数据具有相同的数据描述,以保证服务器和客户端的数据是完全相同的,而无需为保证兼容性进行数据转换等处理。
S202:将开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据。
数据的拆分遵循既定的标准,便于数据的结构化描述,以及多个业务服务器同时进行并行计算。
S203:接收开发者客户端的数据订阅请求。
S204:根据数据订阅请求从对应的业务服务器获得对应的开发者数据发送至用户客户端。
如图3所示,本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括步骤:
S205:至少一个业务服务器对多个子数据结构进行存储封装以补充存储信息。
业务服务器自动对主键、关联表、外键等存储信息进行补充,以实现存储封装。对存储信息的自动补充,使客户端仅需针对云端的数据容器提供的内容进行订阅即可获取数据,而无需关心数据存储的具***置等细节问题,并且所获取的数据由云端提供保证均符合数据结构描述,从开发者角度来说,不需要考虑数据的存储细节,只需关注自身业务所需的数据。如图4所示,photo数据类型中只包括data,meta,comments三种子数据结构,***自动将它们拆分为子数据后,分别存储在文件服务器、meta表服务器、comments表服务器中。在代码的数据结构中,因为无需编写数据库管理、数据兼容、传输方式等具体存储实现方案的代码,代码的长度和复杂度比起传统技术的代码大幅降低。
S206:从至少一个业务服务器获得相应的多个子数据结构,并将多个子数据结构拼接为对应的开发者数据。
在实际应用中,不同的子数据结构,经常会存储在不同的业务服务器上,当接收到数据订阅请求后,需要从多个业务服务器中获得多个子数据结构,并进行拼接以转换为用户所需要的数据格式。
本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括步骤:
S207:对自身存储的多个子数据结构进行监控。
S208:当多个子数据结构中的至少一个发生变化之后,将变化后的数据发送至用户客户端。
在实际应用中,子数据结构的变化,并不仅因为客户端的用户操作,也可能因为其他子数据结构中的数据改变而发生了变化,此时也需要将变化后的数据发送至用户客户端,以保证用户客户端中的数据是实时的最新数据。
本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括步骤:
S209:业务服务器对多个子数据结构进行序列化,中间数据订阅服务器在拼接之前进行反序列化。
序列化是数据传输过程中客户端与服务器端都需要执行的一个操作,序列化是指将数据内容转换成可以供网络传输的字符串格式或二进制格式的转换过程,反序列化则是将传输内容还原为数据内容的过程。数据由客户端向服务器端进行传输时,序列化工作由客户端完成,反序列化工作由服务器端完成(具体地,由中间数据订阅服务器完成);服务器端向客户端传输时,序列化工作在服务器端完成(具体地,由业务服务器完成),反序列化工作由客户端完成,在传统开发过程中,开发人员需要理解目标服务器支持的数据传输格式,如表单、URL键值,或特殊的文本格式如逗号分隔、XML等,并理解传输方法(包括get\post\web socket等)及资源请求位置、控制参数及请求内容的返回格式,并以此为基础开发传递数据的数据序列化和反序列化方法.在使用框架后,这一系列的操作统一由框架提供,开发人员只需要使用数据,不需要关心其传输过程,代码的长度和复杂度比起传统技术的代码大幅降低。
在本发明的一个实施例中,至少一个业务服务器、开发者客户端和用户客户端中的数据具有相同的数据描述。在服务器、客户端共同使用同一份基于结构化的数据描述,做到服务器端与客户端的统一,两端可以复用同一数据结构,并且立体的结构化数据,将使得开发者在描述业务数据时不需写入实现服务器端与客户端数据兼容的代码,降低开发代码的复杂度,减少了开发成本。
图5为一个根据本发明实施例的面向统一结构化数据的应用程序的开发方法获得数据的示意图,如图所示,子数据结构存储在各业务服务器中,中甲的框架包括中间订阅服务器、开发者进行开发的工具集以及使客户端程序得以运行的运行时环境的总称。当有用户请求时,框架接收到各订阅用户的数据订阅信息,对数据订阅信息进行分析后,将各业务服务器作为数据发布服务器,框架从各数据发布服务器中提取相应的子数据结构,并组装成开发人员所希望得到的数据结构,即实现从子数据结构到数据结构的自动映射,具有以下优点:
1、使开发人员不至于从多个零散的数据发布服务器进行订阅,减少了获取得数据复杂程度。
2、使客户端在运行时,直接从中间容器可以拿到完整的可用数据,而不需要再对数据进行组装等操作。减少了操作数据的复杂程度。
根据本发明实施例的面向统一结构化数据的应用程序的开发方法,通过在客户端和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应用程序开发人员无需关注数据存储的具***置等细节问题,而只专注于描述业务所需的数据结构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
如图6所示,本发明第三方面实施例的业务服务器包括:接收模块510、拆分存储模块520和发送模块530。其中,接受模块510接收开发者数据。拆分存储模块520将开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据。发送模块530根据中间数据订阅服务器的请求将对应的开发者数据发送至用户客户端。
本发明一个实施例的业务服务器还包括:监控模块。监控模块用于对自身存储的多个子数据结构进行监控,并在多个子数据结构中的至少一个发生变化之后,通过发送模块530发送变化后的数据。
在本发明的一个实施例中,拆分存储模块520还对多个子数据结构进行存储封装以补充存储信息。拆分存储模块520自动对主键、关联表、外键等存储信息进行补充,以实现存储封装。对存储信息的自动补充,使客户端仅需针对云端的数据容器提供的内容进行订阅即可获取数据,而无需关心数据存储的具***置等细节问题,并且所获取的数据由云端提供保证均符合数据结构描述,从开发者角度来说,不需要考虑数据的存储细节,只需关注自身业务所需的数据。如图4所示,在代码的数据结构中,因为无需编写数据库管理等具体存储实现方案的代码,代码的长度和复杂度比起传统技术的代码大幅降低。
本发明一个实施例的业务服务器还包括:序列化模块。序列化模块对多个子数据结构进行序列化,并将序列化后的多个子数据结构通过发送模块530进行发送。序列化是数据传输过程中客户端与服务器端都需要执行的一个操作,序列化是指将数据内容转换成可以供网络传输的字符串格式或二进制格式的转换过程,反序列化则是将传输内容还原为数据内容的过程。数据由客户端向服务器端进行传输时,序列化工作由客户端完成,反序列化工作由服务器端完成;服务器端向客户端传输时,序列化工作在服务器端完成,反序列化工作由客户端完成,在传统开发过程中,开发人员需要理解目标服务器支持的数据传输格式,如表单、URL键值,或特殊的文本格式如逗号分隔、XML等,并理解传输方法(包括get\post\web socket等)及资源请求位置、控制参数及请求内容的返回格式,并以此为基础开发传递数据的数据序列化和反序列化方法。在使用框架后,这一系列的操作统一由框架提供,开发人员只需要使用数据,不需要关心其传输过程,代码的长度和复杂度比起传统技术的代码大幅降低。
在本发明的一个实施例中,业务服务器和用户客户端中的数据具有相同的数据描述。在服务器、客户端共同使用同一份基于结构化的数据描述,做到服务器端与客户端的统一,两端可以复用同一数据结构,并且立体的结构化数据,将使得开发者在描述业务数据时不需写入实现服务器端与客户端数据兼容的代码,降低开发代码的复杂度,减少了开发成本。
根据本发明实施例的业务服务器,自动进行数据的拆分、存储封装、序列化、发送等操作,作为面向统一结构化数据的应用程序的开发***的重要组成部分,为开发人员减小开发代码的复杂度、降低开发成本提供了可能。
如图7所示,本发明第四方面的实施例的中间数据订阅服务器与多个业务服务器相连,中间数据订阅服务器包括:接收模块610、获取模块620和发送模块630。其中,接收模块610用于接收开发者发送的数据订阅请求,其中,数据订阅请求包括业务信息和用户信息。获取模块620用于根据业务信息从对应的业务服务器获得相应的开发者数据。发送模块630用于根据用户信息将开发者数据发送至对应的用户客户端。
本发明实施例中,中间数据订阅服务器作为开发者客户端和用户客户端之间的桥梁,以数据订阅请求的形式在开发者客户端和用户客户端之间交互用户操作信息。具体的数据存储格式、存储位置等信息则由业务服务器进行管理,所以数据订阅请求中只需包括业务信息和用户信息,减少了数据传输量,节省了网络带宽。
如图8所示,本发明一个实施例的中间数据订阅服务器还包括:拼接模块640,用于将从业务服务器获得的多个子数据结构拼接为对应的开发者数据。
当用户请求的数据中包括多个子数据结构的情形,拼接模块640先对从多个业务服务器获得的多个子数据结构进行拼接,再发送至用户客户端。在实际应用中,不同的子数据结构,经常会存储在不同的业务服务器上,当接收到数据订阅请求后,需要从多个业务服务器中获得多个子数据结构,并进行拼接以转换为用户所需要的数据格式。
在本发明的一个实施例中,中间数据订阅服务器还包括:反序列化模块,用于对从客户端接收到的数据进行反序列化。序列化是数据传输过程中客户端与服务器端都需要执行的一个操作,序列化是指将数据内容转换成可以供网络传输的字符串格式或二进制格式的转换过程,反序列化则是将传输内容还原为数据内容的过程。数据由客户端向服务器端进行传输时,序列化工作由客户端完成,反序列化工作由服务器端完成;服务器端向客户端传输时,序列化工作在服务器端完成,反序列化工作由客户端完成,在传统开发过程中,开发人员需要理解目标服务器支持的数据传输格式,如表单、URL键值,或特殊的文本格式如逗号分隔、XML等,并理解传输方法(包括get\post\web socket等)及资源请求位置、控制参数及请求内容的返回格式,并以此为基础开发传递数据的数据序列化和反序列化方法.在使用框架后,这一系列的操作统一由框架提供,开发人员只需要使用数据,不需要关心其传输过程,代码的长度和复杂度比起传统技术的代码大幅降低。
根据本发明实施例的接收客户端的数据订阅请求并为数据传输到客户端提供中转,作为面向统一结构化数据的应用程序的开发***的重要组成部分,为开发人员减小开发代码的复杂度、降低开发成本提供了可能。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对所述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (15)

1.一种面向统一结构化数据的应用程序的开发***,其特征在于,包括中间数据订阅服务器、至少一个业务服务器、开发者客户端和用户客户端,其中,
所述开发者客户端,用于向所述至少一个业务服务器提供开发者数据;
所述至少一个业务服务器,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;以及
所述中间数据订阅服务器,用于接收所述开发者客户端的数据订阅请求,并根据所述数据订阅请求从对应的业务服务器获得对应的开发者数据发送至所述用户客户端。
2.如权利要求1所述的面向统一结构化数据的应用程序的开发***,其特征在于,所述至少一个业务服务器、所述开发者客户端和所述用户客户端中的数据具有相同的数据描述。
3.如权利要求1或2所述的面向统一结构化数据的应用程序的开发***,其特征在于,所述中间数据订阅服务器还用于从所述至少一个业务服务器获得相应的多个子数据结构,并将所述多个子数据结构拼接为对应的开发者数据。
4.如权利要求1-3任一项所述的面向统一结构化数据的应用程序的开发***,其特征在于,所述至少一个业务服务器还用于对自身存储的所述多个子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所述中间数据订阅服务器将变化后的数据发送至所述用户客户端。
5.如权利要求1-4任一项所述的面向统一结构化数据的应用程序的开发***,其特征在于,所述至少一个业务服务器还用于对所述多个子数据结构进行存储封装以补充存储信息。
6.一种面向统一结构化数据的应用程序的开发方法,其特征在于,包括以下步骤:
向所述至少一个业务服务器发送开发者数据;
将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;
接收所述开发者客户端的数据订阅请求;以及
根据所述数据订阅请求从对应的业务服务器获得对应的开发者数据发送至用户客户端。
7.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,所述至少一个业务服务器、所述开发者客户端和所述用户客户端中的数据具有相同的数据描述。
8.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,还包括:
从所述至少一个业务服务器获得相应的多个子数据结构,并将所述多个子数据结构拼接为对应的开发者数据。
9.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,还包括:
对自身存储的所述多个子数据结构进行监控;以及
当所述多个子数据结构中的至少一个发生变化之后,将变化后的数据发送至所述用户客户端。
10.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,还包括:
所述至少一个业务服务器对所述多个子数据结构进行存储封装以补充存储信息。
11.一种业务服务器,其特征在于,包括:
接收模块,用于接收开发者数据;
拆分存储模块,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;以及
发送模块,用于根据中间数据订阅服务器的请求将对应的开发者数据发送至所述用户客户端。
12.如权利要求11所述的业务服务器,其特征在于,还包括:
监控模块,用于对自身存储的所述多个子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所述发送模块发送变化后的数据。
13.如权利要求11所述的业务服务器,其特征在于,所述拆分存储模块还用于对所述多个子数据结构进行存储封装以补充存储信息。
14.一种中间数据订阅服务器,其特征在于,所述中间数据订阅服务器与多个业务服务器相连,所述中间数据订阅服务器包括:
接收模块,用于接收开发者发送的数据订阅请求,其中,所述数据订阅请求包括业务信息和用户信息;
获取模块,用于根据所述业务信息从对应的业务服务器获得相应的开发者数据;以及
发送模块,用于根据所述用户信息将所述开发者数据发送至对应的用户客户端。
15.如权利要求14所述的中间数据订阅服务器,其特征在于,还包括:
拼接模块,用于将从所述业务服务器获得的多个子数据结构拼接为对应的开发者数据。
CN201210421556.9A 2012-10-29 2012-10-29 面向统一结构化数据的应用程序的开发***、方法及装置 Active CN103593172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210421556.9A CN103593172B (zh) 2012-10-29 2012-10-29 面向统一结构化数据的应用程序的开发***、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210421556.9A CN103593172B (zh) 2012-10-29 2012-10-29 面向统一结构化数据的应用程序的开发***、方法及装置

Publications (2)

Publication Number Publication Date
CN103593172A true CN103593172A (zh) 2014-02-19
CN103593172B CN103593172B (zh) 2017-02-08

Family

ID=50083338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210421556.9A Active CN103593172B (zh) 2012-10-29 2012-10-29 面向统一结构化数据的应用程序的开发***、方法及装置

Country Status (1)

Country Link
CN (1) CN103593172B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
CN105407024A (zh) * 2015-09-23 2016-03-16 中国电子科技集团公司第二十九研究所 一种基于发布订阅通信机制的异构数据互通方法及装置
CN107180017A (zh) * 2016-03-11 2017-09-19 阿里巴巴集团控股有限公司 一种样本序列化方法和装置
CN109302435A (zh) * 2017-07-25 2019-02-01 腾讯科技(深圳)有限公司 消息发布方法、装置、***、服务器及计算机可读存储介质
CN110866234A (zh) * 2019-09-29 2020-03-06 南京大学 一种基于多生物特征的身份验证***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073163A (en) * 1997-06-10 2000-06-06 Oracle Corporation Method and apparatus for enabling web-based execution of an application
CN102185900A (zh) * 2011-04-18 2011-09-14 北京新媒传信科技有限公司 一种应用服务平台***和一种开发应用服务的方法
CN102222090A (zh) * 2011-06-02 2011-10-19 清华大学 一种云环境下海量数据资源管理框架
CN102523304A (zh) * 2011-12-29 2012-06-27 北京新媒传信科技有限公司 一种应用云平台和云平台的实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073163A (en) * 1997-06-10 2000-06-06 Oracle Corporation Method and apparatus for enabling web-based execution of an application
CN102185900A (zh) * 2011-04-18 2011-09-14 北京新媒传信科技有限公司 一种应用服务平台***和一种开发应用服务的方法
CN102222090A (zh) * 2011-06-02 2011-10-19 清华大学 一种云环境下海量数据资源管理框架
CN102523304A (zh) * 2011-12-29 2012-06-27 北京新媒传信科技有限公司 一种应用云平台和云平台的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马少兵 等: "数字图书馆私有云平台的构建研究和应用开发", 《现代图书情报技术》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
CN105335281B (zh) * 2014-07-30 2018-03-20 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
CN105407024A (zh) * 2015-09-23 2016-03-16 中国电子科技集团公司第二十九研究所 一种基于发布订阅通信机制的异构数据互通方法及装置
CN105407024B (zh) * 2015-09-23 2019-04-09 中国电子科技集团公司第二十九研究所 一种基于发布订阅通信机制的异构数据互通方法及装置
CN107180017A (zh) * 2016-03-11 2017-09-19 阿里巴巴集团控股有限公司 一种样本序列化方法和装置
CN109302435A (zh) * 2017-07-25 2019-02-01 腾讯科技(深圳)有限公司 消息发布方法、装置、***、服务器及计算机可读存储介质
CN110866234A (zh) * 2019-09-29 2020-03-06 南京大学 一种基于多生物特征的身份验证***

Also Published As

Publication number Publication date
CN103593172B (zh) 2017-02-08

Similar Documents

Publication Publication Date Title
CN110532020B (zh) 一种微服务编排的数据处理方法、装置及***
CN103593173A (zh) 一种应用程序的一体化开发***、方法及装置
CN109361550B (zh) 网络设备配置管理的方法、装置及设备
CN111556158B (zh) 物联网平台的接入方法、接入装置、接入设备及存储介质
CN103593172A (zh) 面向统一结构化数据的应用程序的开发***、方法及装置
CN104660489A (zh) 用于控制消息递送***中的消息传递的方法和***
CN102779321A (zh) 一种基于iec61968消息类型定义的消息验证方法及其装置
CN110795147A (zh) 一种接口协议文件管理方法和装置
CN102710799B (zh) 基于实时消息传递的客户端插件安装提醒***和方法
EP2933726A1 (en) Apparatus, system and method for application log data processing
KR101086620B1 (ko) 스마트 오피스 시스템 및 운용을 위한 서버 및 운용 방법
CN105760272A (zh) 基于插件的监控后台业务定制方法及其***
CN109560895A (zh) 数据传输方法及装置
CN112631588A (zh) 文件生成方法、装置、电子设备和计算机可读介质
CN102375894A (zh) 一种管理不同类型文件***的方法
CN113783860B (zh) 一种基于可视化配置的报文处理方法、装置、设备及存储介质
CN116325705A (zh) 边缘计算环境中的管理任务流
Sultanow et al. A review of IoT technologies, standards, tools, frameworks and platforms
CN112948138A (zh) 一种处理消息的方法和装置
CN114417318A (zh) 第三方页面的跳转方法、装置和电子设备
CN113672225A (zh) 用户界面的处理方法、装置、设备及存储介质
CN112258091A (zh) 一种数据传输方法、装置、设备及存储介质
CN109271310B (zh) 移动应用程序网络功能的开发测试方法和装置
CN113448652A (zh) 一种请求处理方法和装置
CN109543852A (zh) 用于智能变电站的光缆连接信息解析方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140219

Assignee: SHANGHAI YOUYANG NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Assignor: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Contract record no.: X2019110000005

Denomination of invention: System, method and device for developing unified structured data oriented applications

Granted publication date: 20170208

License type: Common License

Record date: 20191119