面向统一结构化数据的应用程序的开发系统、方法及装置制造方法
【专利摘要】本发明提出了一种面向统一结构化数据的应用程序的开发系统,包括:开发者客户端,用于向至少一个业务服务器提供开发者数据;至少一个业务服务器,用于将开发者数据拆分为多个子数据结构并存储至多个数据列表;中间数据订阅服务器,用于接收开发者客户端的数据订阅请求,并根据数据订阅请求从对应的业务服务器获得对应的开发者数据发送至所述用户客户端。本发明还提出了一种面向统一结构化数据的应用程序的开发方法、业务服务器和中间订阅服务器。本发明通过在客户端和服务器端采用统一的数据描述,并自动完成存储封装,使开发人员无需关注数据存储的细节问题,而只专注于描述业务所需的数据结构,减小了开发代码的复杂度,降低了开发成本。
【专利说明】面向统一结构化数据的应用程序的开发系统、方法及装置
【技术领域】
[0001]本发明涉及互联网云服务【技术领域】,特别涉及一种面向统一结构化数据的应用程 序的开发系统、方法及装置。
【背景技术】
[0002]随着互联网云技术的发展,云服务器的并发处理的性能越发强大,但是在当前应 用中,由于云技术的核心是借助网络多PC计算来减轻用户的计算负担,服务器端通常不止 有一台服务器进行计算,则各服务器需要彼此之间、并和客户端之间进行数据传输。在现有 技术中,开发者首先需要保证数据在客户端和各服务器端的兼容性,需要理解数据传输目 标服务器支持的数据传输格式,如表单、URL (Uniform/Universal Resource Locator,统 一资源定位符)键值,或特殊的文本格式如逗号分隔、XML(Extensible Markup Language, 可扩展标记语言)等,并理解传输方法(包括get\post\web socket等)及资源请求位置、 控制参数及请求内容的返回格式。其次,开发者还要保证实际应用中数据的实时性,例如当 多个用户同时在线时,必须设置防止死锁等机制来保证用户请求的数据为最新数据;当多 个用户需要进行操作,对同一数据进行写入时,也必须避免脏数据对数据库的写覆盖。即, 开发者除了考虑应用程序本身的数据外,还必须编写大量代码以保证数据的兼容性和实时 性,这大大提高了应用程序开发的难度,以及开发代码的复杂度。
【发明内容】
[0003]本发明的目的旨在至少解决所述技术缺陷之一。
[0004]为此,本发明的目的在于提出一种面向统一结构化数据的应用程序的开发系统、 方法、业务服务器及中间订阅服务器,使应用程序开发人员无需关注数据存储的具体位置 等细节问题,而只专注于描述业务所需的数据结构,从而减小开发代码的复杂度,降低开发 成本,缩减开发周期。
[0005]为达到所述目的,本发明第一方面的实施例提出了一种面向统一结构化数据的应 用程序的开发系统,包括:中间数据订阅服务器、至少一个业务服务器、开发者客户端和用 户客户端,其中,所述开发者客户端,用于向所述至少一个业务服务器提供开发者数据;所 述至少一个业务服务器,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据 列表,其中,每个数据列表对应不同类型的数据;所述中间数据订阅服务器,用于接收所述 开发者客户端的数据订阅请求,并根据所述数据订阅请求从对应的业务服务器获得对应的 开发者数据发送至所述用户客户端。
[0006]根据本发明实施例的面向统一结构化数据的应用程序的开发系统,通过在客户端 和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应用程 序开发人员无需关注数据存储的具体位置等细节问题,而只专注于描述业务所需的数据结 构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
[0007]在本发明的一个实施例中,所述至少一个业务服务器、所述开发者客户端和所述用户客户端中的数据具有相同的数据描述。
[0008]在本发明的一个实施例中,所述中间数据订阅服务器还用于从所述至少一个业务 服务器获得相应的多个子数据结构,并将所述多个子数据结构拼接为对应的开发者数据。
[0009]在本发明的另一个实施例中,所述至少一个业务服务器还用于对自身存储的所述 多个子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所 述中间数据订阅服务器将变化后的数据发送至所述用户客户端。
[0010]在本发明的一个实施例中,所述至少一个业务服务器还用于对所述多个子数据结 构进行存储封装以补充存储信息。
[0011]在本发明的一个实施例中,所述业务服务器还用于对多个子数据结构进行序列 化,所述中间数据订阅服务器还用于在拼接之前进行反序列化。
[0012]本发明第二方面的实施例提出了一种面向统一结构化数据的应用程序的开发方 法,包括以下步骤:向所述至少一个业务服务器发送开发者数据;将所述开发者数据拆分 为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;接收 所述开发者客户端的数据订阅请求;根据所述数据订阅请求从对应的业务服务器获得对应 的开发者数据发送至用户客户端。
[0013]根据本发明实施例的面向统一结构化数据的应用程序的开发方法,通过在客户端 和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应用程 序开发人员无需关注数据存储的具体位置等细节问题,而只专注于描述业务所需的数据结 构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
[0014]在本发明的一个实施例中,所述至少一个业务服务器、所述开发者客户端和所述 用户客户端中的数据具有相同的数据描述。
[0015]本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:从所 述至少一个业务服务器获得相应的多个子数据结构,并将所述多个子数据结构拼接为对应 的开发者数据。
[0016]本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:对自 身存储的所述多个子数据结构进行监控;当所述多个子数据结构中的至少一个发生变化之 后,将变化后的数据发送至所述用户客户端。
[0017]本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:所述 至少一个业务服务器对所述多个子数据结构进行存储封装以补充存储信息。
[0018]本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括:所述 业务服务器对多个子数据结构进行序列化,所述中间数据订阅服务器在拼接之前进行反序 列化。
[0019]本发明第三方面的实施例提出了一种业务服务器,包括:接收模块,用于接收开发 者数据;拆分存储模块,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据 列表,其中,每个数据列表对应不同类型的数据;发送模块,用于根据中间数据订阅服务器 的请求将对应的开发者数据发送至所述用户客户端。
[0020]根据本发明实施例的业务服务器,自动进行数据的拆分、存储封装、发送等操作, 作为面向统一结构化数据的应用程序的开发系统的重要组成部分,为开发人员减小开发代 码的复杂度、降低开发成本提供了可能。[0021]本发明一个实施例的业务服务器还包括:监控模块,用于对自身存储的所述多个 子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所述发 送模块发送变化后的数据。
[0022]在本发明的一个实施例中,所述拆分存储模块还用于对所述多个子数据结构进行 存储封装以补充存储信息。
[0023]本发明一个实施例的业务服务器还包括:序列化模块,用于对多个子数据结构进 行序列化,并将序列化后的多个子数据结构通过所述发送模块进行发送。
[0024]本发明第四方面的实施例提出了一种中间数据订阅服务器,包括:接收模块,用于 接收开发者发送的数据订阅请求,其中,所述数据订阅请求包括业务信息和用户信息;获取 模块,用于根据所述业务信息从对应的业务服务器获得相应的开发者数据;发送模块,用于 根据所述用户信息将所述开发者数据发送至对应的用户客户端。
[0025]根据本发明实施例的中间数据订阅服务器,接收客户端的数据订阅请求并为数据 传输到客户端提供中转,作为面向统一结构化数据的应用程序的开发系统的重要组成部 分,为开发人员减小开发代码的复杂度、降低开发成本提供了可能。
[0026]本发明一个实施例的中间数据订阅服务器还包括:拼接模块,用于将从所述业务 服务器获得的多个子数据结构拼接为对应的开发者数据。
[0027]本发明一个实施例的中间数据订阅服务器还包括:反序列化模块,用于对从客户 端接收到的数据进行反序列化。
[0028]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。
【专利附图】
【附图说明】
[0029]本发明所述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中:
[0030]图1为本发明实施例的面向统一结构化数据的应用程序的开发系统的示意图;
[0031]图2为本发明实施例的面向统一结构化数据的应用程序的开发方法的流程图;
[0032]图3为本发明另一个实施例的面向统一结构化数据的应用程序的开发方法的流 程图;
[0033]图4为一个根据本发明而得到了简化的开发程序的示例;
[0034]图5为本发明一个实施例的面向统一结构化数据的应用程序的开发方法获得数 据的示意图;
[0035]图6为本发明实施例的业务服务器的示意图;
[0036]图7为本发明实施例的中间数据订阅服务器的示意图;以及
[0037]图8为本发明另一个实施例的中间数据订阅服务器的示意图。
【具体实施方式】
[0038]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。[0039]在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、 “左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”等指示的方位或位置关系为基于附图所
示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装 置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限 制。
[0040]在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、 “连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可 以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据 具体情况理解所述术语的具体含义。
[0041]下面参考图1至图3描述根据本发明实施例的面向统一结构化数据的应用程序的 开发系统及方法。
[0042]如图1所示,本发明实施例提供的面向统一结构化数据的应用程序的开发系统包 括、至少一个业务服务器120、开发者客户端130和用户客户端140,其中,开发者客户端130 用于向至少一个业务服务器120提供开发者数据;至少一个业务服务器120用于将开发者 数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的 数据;中间数据订阅服务器110用于接收开发者客户端130的数据订阅请求,并根据数据订 阅请求从对应的业务服务器获得对应的开发者数据发送至用户客户端140。在本发明的实 施例中,开发者客户端130和用户客户端140可为PC机、移动终端或掌上电脑等。
[0043]具体地,中间数据订阅服务器110从至少一个业务服务器120获得相应的多个子 数据结构,并将多个子数据结构拼接为对应的开发者数据。至少一个业务服务器120对自 身存储的多个子数据结构进行监控,并在多个子数据结构中的至少一个发生变化之后,通 过中间数据订阅服务器HO将变化后的数据发送至用户客户端,以保证数据的实时性。在 本发明的一个实施例中,至少一个业务服务器120还对多个子数据结构进行存储封装以补 充存储信息。
[0044]在本发明的一个实施例中,至少一个业务服务器120、开发者客户端130和用户客 户端140中的数据具有相同的数据描述。在服务器、客户端共同使用同一份基于结构化的 数据描述,做到服务器端与客户端的统一,两端可以复用同一数据结构,并且立体的结构化 数据,将使得开发者在描述业务数据时不需写入实现服务器端与客户端数据兼容的代码, 降低开发代码的复杂度,减少了开发成本。
[0045]在本发明的一个实施例中,中间数据订阅服务器110从至少一个业务服务器120 获得相应的多个子数据结构,并将多个子数据结构拼接为对应的开发者数据。在实际应用 中,不同的子数据结构,经常会存储在不同的业务服务器上,当接收到数据订阅请求后,需 要从多个业务服务器中获得多个子数据结构,并进行拼接以转换为用户所需要的数据格 式。
[0046]在本发明的一个实施例中,至少一个业务服务器120还用于对自身存储的多个子 数据结构进行监控,并在多个子数据结构中的至少一个发生变化之后,通过中间数据订阅 服务器110将变化后的数据发送至用户客户端140。在实际应用中,子数据结构的变化,并 不仅因为客户端的用户操作,也可能因为其他子数据结构中的数据改变而发生了变化,此 时也需要将变化后的数据发送至用户客户端,以保证用户客户端中的数据是实时的最新数据。
[0047]在本发明的一个实施例中,至少一个业务服务器120还用于对多个子数据结构进 行存储封装以补充存储信息。业务服务器120自动对主键、关联表、外键等存储信息进行补 充,以实现存储封装。对存储信息的自动补充,使客户端仅需针对云端的数据容器提供的内 容进行订阅即可获取数据,而无需关心数据存储的具体位置等细节问题,并且所获取的数 据由云端提供保证均符合数据结构描述,从开发者角度来说,不需要考虑数据的存储细节, 只需关注自身业务所需的数据。如图4所示,photo数据类型中只包括data,meta, comments 三种子数据结构,系统自动将它们拆分为子数据后,分别存储在文件服务器、meta表服务 器、comments表服务器中。在代码的数据结构中,因为无需编写数据库管理等具体存储实 现方案的代码,代码的长度和复杂度比起传统技术的代码大幅降低。
[0048]在本发明的一个实施例中,业务服务器120对多个子数据结构进行序列化,中间 数据订阅服务器110在拼接之前进行反序列化。序列化是数据传输过程中客户端与服务 器端都需要执行的一个操作,序列化是指将数据内容转换成可以供网络传输的字符串格式 或二进制格式的转换过程,反序列化则是将传输内容还原为数据内容的过程。数据由客户 端向服务器端进行传输时,序列化工作由客户端完成,反序列化工作由服务器端完成(具体 地,由中间数据订阅服务器110完成);服务器端向客户端传输时,序列化工作在服务器端 完成(具体地,由业务服务器120完成),反序列化工作由客户端完成,在传统开发过程中, 开发人员需要理解目标服务器支持的数据传输格式,如表单、URL键值,或特殊的文本格式 如逗号分隔、XML等,并理解传输方法(包括get\post\web socket等)及资源请求位置、 控制参数及请求内容的返回格式,并以此为基础开发传递数据的数据序列化和反序列化方 法.在使用框架后,这一系列的操作统一由框架提供,开发人员只需要使用数据,不需要关 心其传输过程,代码的长度和复杂度比起传统技术的代码大幅降低。
[0049]根据本发明实施例提供的面向统一结构化数据的应用程序的开发系统,通过在客 户端和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应 用程序开发人员无需关注数据存储的具体位置等细节问题,而只专注于描述业务所需的数 据结构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
[0050]如图2所示,本发明第二方面的实施例提出了一种面向统一结构化数据的应用程 序的开发方法,包括以下步骤:
[0051]S201:向至少一个业务服务器发送开发者数据。
[0052]至少一个业务服务器、开发者客户端和用户客户端中的数据具有相同的数据描 述,以保证服务器和客户端的数据是完全相同的,而无需为保证兼容性进行数据转换等处理。
[0053]S202:将开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数 据列表对应不同类型的数据。
[0054]数据的拆分遵循既定的标准,便于数据的结构化描述,以及多个业务服务器同时 进行并行计算。
[0055]S203:接收开发者客户端的数据订阅请求。
[0056]S204:根据数据订阅请求从对应的业务服务器获得对应的开发者数据发送至用户 客户端。[0057]如图3所示,本发明的一个实施例的面向统一结构化数据的应用程序的开发方法 还包括步骤:
[0058]S205:至少一个业务服务器对多个子数据结构进行存储封装以补充存储信息。
[0059]业务服务器自动对主键、关联表、外键等存储信息进行补充,以实现存储封装。对 存储信息的自动补充,使客户端仅需针对云端的数据容器提供的内容进行订阅即可获取数 据,而无需关心数据存储的具体位置等细节问题,并且所获取的数据由云端提供保证均符 合数据结构描述,从开发者角度来说,不需要考虑数据的存储细节,只需关注自身业务所需 的数据。如图4所示,photo数据类型中只包括data, meta, comments三种子数据结构,系 统自动将它们拆分为子数据后,分别存储在文件服务器、meta表服务器、comments表服务 器中。在代码的数据结构中,因为无需编写数据库管理、数据兼容、传输方式等具体存储实 现方案的代码,代码的长度和复杂度比起传统技术的代码大幅降低。
[0060]S206:从至少一个业务服务器获得相应的多个子数据结构,并将多个子数据结构 拼接为对应的开发者数据。
[0061]在实际应用中,不同的子数据结构,经常会存储在不同的业务服务器上,当接收到 数据订阅请求后,需要从多个业务服务器中获得多个子数据结构,并进行拼接以转换为用 户所需要的数据格式。
[0062]本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括步 骤:
[0063]S207:对自身存储的多个子数据结构进行监控。
[0064]S208:当多个子数据结构中的至少一个发生变化之后,将变化后的数据发送至用 户客户端。
[0065]在实际应用中,子数据结构的变化,并不仅因为客户端的用户操作,也可能因为其 他子数据结构中的数据改变而发生了变化,此时也需要将变化后的数据发送至用户客户 端,以保证用户客户端中的数据是实时的最新数据。
[0066]本发明的一个实施例的面向统一结构化数据的应用程序的开发方法还包括步 骤:
[0067]S209:业务服务器对多个子数据结构进行序列化,中间数据订阅服务器在拼接之 前进行反序列化。
[0068]序列化是数据传输过程中客户端与服务器端都需要执行的一个操作,序列化是指 将数据内容转换成可以供网络传输的字符串格式或二进制格式的转换过程,反序列化则是 将传输内容还原为数据内容的过程。数据由客户端向服务器端进行传输时,序列化工作 由客户端完成,反序列化工作由服务器端完成(具体地,由中间数据订阅服务器完成);月艮 务器端向客户端传输时,序列化工作在服务器端完成(具体地,由业务服务器完成),反序列 化工作由客户端完成,在传统开发过程中,开发人员需要理解目标服务器支持的数据传 输格式,如表单、URL键值,或特殊的文本格式如逗号分隔、XML等,并理解传输方法(包括 get\post\web socket等)及资源请求位置、控制参数及请求内容的返回格式,并以此为基 础开发传递数据的数据序列化和反序列化方法.在使用框架后,这一系列的操作统一由框 架提供,开发人员只需要使用数据,不需要关心其传输过程,代码的长度和复杂度比起传统 技术的代码大幅降低。[0069]在本发明的一个实施例中,至少一个业务服务器、开发者客户端和用户客户端中 的数据具有相同的数据描述。在服务器、客户端共同使用同一份基于结构化的数据描述,做 到服务器端与客户端的统一,两端可以复用同一数据结构,并且立体的结构化数据,将使得 开发者在描述业务数据时不需写入实现服务器端与客户端数据兼容的代码,降低开发代码 的复杂度,减少了开发成本。
[0070]图5为一个根据本发明实施例的面向统一结构化数据的应用程序的开发方法获 得数据的示意图,如图所示,子数据结构存储在各业务服务器中,中甲的框架包括中间订阅 服务器、开发者进行开发的工具集以及使客户端程序得以运行的运行时环境的总称。当有 用户请求时,框架接收到各订阅用户的数据订阅信息,对数据订阅信息进行分析后,将各业 务服务器作为数据发布服务器,框架从各数据发布服务器中提取相应的子数据结构,并组 装成开发人员所希望得到的数据结构,即实现从子数据结构到数据结构的自动映射,具有 以下优点:
[0071 ] 1、使开发人员不至于从多个零散的数据发布服务器进行订阅,减少了获取得数据 复杂程度。
[0072]2、使客户端在运行时,直接从中间容器可以拿到完整的可用数据,而不需要再对 数据进行组装等操作。减少了操作数据的复杂程度。
[0073]根据本发明实施例的面向统一结构化数据的应用程序的开发方法,通过在客户端 和服务器端采用统一的数据描述,并对存储信息进行自动补充以完成存储封装,使应用程 序开发人员无需关注数据存储的具体位置等细节问题,而只专注于描述业务所需的数据结 构,很大程度上减小了开发代码的复杂度,降低了开发成本,缩减了开发周期。
[0074]如图6所示,本发明第三方面实施例的业务服务器包括:接收模块510、拆分存储 模块520和发送模块530。其中,接受模块510接收开发者数据。拆分存储模块520将开发 者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型 的数据。发送模块530根据中间数据订阅服务器的请求将对应的开发者数据发送至用户客 户端。
[0075]本发明一个实施例的业务服务器还包括:监控模块。监控模块用于对自身存储的 多个子数据结构进行监控,并在多个子数据结构中的至少一个发生变化之后,通过发送模 块530发送变化后的数据。
[0076]在本发明的一个实施例中,拆分存储模块520还对多个子数据结构进行存储封装 以补充存储信息。拆分存储模块520自动对主键、关联表、外键等存储信息进行补充,以实 现存储封装。对存储信息的自动补充,使客户端仅需针对云端的数据容器提供的内容进行 订阅即可获取数据,而无需关心数据存储的具体位置等细节问题,并且所获取的数据由云 端提供保证均符合数据结构描述,从开发者角度来说,不需要考虑数据的存储细节,只需关 注自身业务所需的数据。如图4所示,在代码的数据结构中,因为无需编写数据库管理等具 体存储实现方案的代码,代码的长度和复杂度比起传统技术的代码大幅降低。
[0077]本发明一个实施例的业务服务器还包括:序列化模块。序列化模块对多个子数 据结构进行序列化,并将序列化后的多个子数据结构通过发送模块530进行发送。序列化 是数据传输过程中客户端与服务器端都需要执行的一个操作,序列化是指将数据内容转换 成可以供网络传输的字符串格式或二进制格式的转换过程,反序列化则是将传输内容还原为数据内容的过程。数据由客户端向服务器端进行传输时,序列化工作由客户端完成,反序列化工作由服务器端完成;服务器端向客户端传输时,序列化工作在服务器端完成,反序列化工作由客户端完成,在传统开发过程中,开发人员需要理解目标服务器支持的数据传输格式,如表单、URL键值,或特殊的文本格式如逗号分隔、XML等,并理解传输方法(包括get\post\web socket等)及资源请求位置、控制参数及请求内容的返回格式,并以此为基础开发传递数据的数据序列化和反序列化方法。在使用框架后,这一系列的操作统一由框架提供,开发人员只需要使用数据,不需要关心其传输过程,代码的长度和复杂度比起传统技术的代码大幅降低。
[0078]在本发明的一个实施例中,业务服务器和用户客户端中的数据具有相同的数据描述。在服务器、客户端共同使用同一份基于结构化的数据描述,做到服务器端与客户端的统一,两端可以复用同一数据结构,并且立体的结构化数据,将使得开发者在描述业务数据时不需写入实现服务器端与客户端数据兼容的代码,降低开发代码的复杂度,减少了开发成本。
[0079]根据本发明实施例的业务服务器,自动进行数据的拆分、存储封装、序列化、发送等操作,作为面向统一结构化数据的应用程序的开发系统的重要组成部分,为开发人员减小开发代码的复杂度、降低开发成本提供了可能。
[0080]如图7所示,本发明第四方面的实施例的中间数据订阅服务器与多个业务服务器相连,中间数据订阅服务器包括:接收模块610、获取模块620和发送模块630。其中,接收模块610用于接收开发者发送的数据订阅请求,其中,数据订阅请求包括业务信息和用户信息。获取模块620用于根据业务信息从对应的业务服务器获得相应的开发者数据。发送模块630用于根据用户信息将开发者数据发送至对应的用户客户端。
[0081]本发明实施例中,中间数据订阅服务器作为开发者客户端和用户客户端之间的桥梁,以数据订阅请求的形式在开发者客户端和用户客户端之间交互用户操作信息。具体的数据存储格式、存储位置等信息则由业务服务器进行管理,所以数据订阅请求中只需包括业务信息和用户信息,减少了数据传输量,节省了网络带宽。
[0082]如图8所示,本发明一个实施例的中间数据订阅服务器还包括:拼接模块640,用于将从业务服务器获得的多个子数据结构拼接为对应的开发者数据。
[0083]当用户请求的数据中包括多个子数据结构的情形,拼接模块640先对从多个业务服务器获得的多个子数据结构进行拼接,再发送至用户客户端。在实际应用中,不同的子数据结构,经常会存储在不同的业务服务器上,当接收到数据订阅请求后,需要从多个业务服务器中获得多个子数据结构,并进行拼接以转换为用户所需要的数据格式。
[0084]在本发明的一个实施例中,中间数据订阅服务器还包括:反序列化模块,用于对从客户端接收到的数据进行反序列化。序列化是数据传输过程中客户端与服务器端都需要执行的一个操作,序列化是指将数据内容转换成可以供网络传输的字符串格式或二进制格式的转换过程,反序列化则是将传输内容还原为数据内容的过程。数据由客户端向服务器端进行传输时,序列化工作由客户端完成,反序列化工作由服务器端完成;服务器端向客户端传输时,序列化工作在服务器端完成,反序列化工作由客户端完成,在传统开发过程中,开发人员需要理解目标服务器支持的数据传输格式,如表单、URL键值,或特殊的文本格式如逗号分隔、XML等,并理解传输方法(包括get\post\web socket等)及资源请求位置、控制参数及请求内容的返回格式,并以此为基础开发传递数据的数据序列化和反序列化方法.在使用框架后,这一系列的操作统一由框架提供,开发人员只需要使用数据,不需要关心其传输过程,代码的长度和复杂度比起传统技术的代码大幅降低。
[0085]根据本发明实施例的接收客户端的数据订阅请求并为数据传输到客户端提供中转,作为面向统一结构化数据的应用程序的开发系统的重要组成部分,为开发人员减小开发代码的复杂度、降低开发成本提供了可能。
[0086]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0087]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(R0M),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0088]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0089]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对所述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0090]尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
【权利要求】
1.一种面向统一结构化数据的应用程序的开发系统,其特征在于,包括中间数据订阅服务器、至少一个业务服务器、开发者客户端和用户客户端,其中,所述开发者客户端,用于向所述至少一个业务服务器提供开发者数据;所述至少一个业务服务器,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;以及所述中间数据订阅服务器,用于接收所述开发者客户端的数据订阅请求,并根据所述数据订阅请求从对应的业务服务器获得对应的开发者数据发送至所述用户客户端。
2.如权利要求1所述的面向统一结构化数据的应用程序的开发系统,其特征在于,所述至少一个业务服务器、所述开发者客户端和所述用户客户端中的数据具有相同的数据描述。
3.如权利要求1或2所述的面向统一结构化数据的应用程序的开发系统,其特征在于, 所述中间数据订阅服务器还用于从所述至少一个业务服务器获得相应的多个子数据结构, 并将所述多个子数据结构拼接为对应的开发者数据。
4.如权利要求1-3任一项所述的面向统一结构化数据的应用程序的开发系统,其特征在于,所述至少一个业务服务器还用于对自身存储的所述多个子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所述中间数据订阅服务器将变化后的数据发送至所述用户客户端。
5.如权利要求1-4任一项所述的面向统一结构化数据的应用程序的开发系统,其特征在于,所述至少一个业务服务器还用于对所述多个子数据结构进行存储封装以补充存储信肩、O
6.一种面向统一结构化数据的应用程序的开发方法,其特征在于,包括以下步骤:向所述至少一个业务服务器发送开发者数据;将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;接收所述开发者客户端的数据订阅请`求;以及根据所述数据订阅请求从对应的业务服务器获得对应的开发者数据发送至用户客户端。
7.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,所述至少一个业务服务器、所述开发者客户端和所述用户客户端中的数据具有相同的数据描述。
8.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,还包括:从所述至少一个业务服务器获得相应的多个子数据结构,并将所述多个子数据结构拼接为对应的开发者数据。
9.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,还包括:对自身存储的所述多个子数据结构进行监控;以及当所述多个子数据结构中的至少一个发生变化之后,将变化后的数据发送至所述用户客户端。
10.如权利要求6所述的面向统一结构化数据的应用程序的开发方法,其特征在于,还包括:所述至少一个业务服务器对所述多个子数据结构进行存储封装以补充存储信息。
11.一种业务服务器,其特征在于,包括:接收模块,用于接收开发者数据;拆分存储模块,用于将所述开发者数据拆分为多个子数据结构并存储至多个数据列表,其中,每个数据列表对应不同类型的数据;以及发送模块,用于根据中间数据订阅服务器的请求将对应的开发者数据发送至所述用户客户端。
12.如权利要求11所述的业务服务器,其特征在于,还包括:监控模块,用于对自身存储的所述多个子数据结构进行监控,并在所述多个子数据结构中的至少一个发生变化之后,通过所述发送模块发送变化后的数据。
13.如权利要求11所述的业务服务器,其特征在于,所述拆分存储模块还用于对所述多个子数据结构进行存储封装以补充存储信息。
14.一种中间数据订阅服务器,其特征在于,所述中间数据订阅服务器与多个业务服务器相连,所述中间数据订阅服务器包括:接收模块,用于接收开发者发送的数据订阅请求,其中,所述数据订阅请求包括业务信息和用户信息;获取模块,用于根据所述业务信息从对应的业务服务器获得相应的开发者数据;以及发送模块,用于根据所述用户信息将所述开发者数据发送至对应的用户客户端。
15.如权利要求14所述的中间 数据订阅服务器,其特征在于,还包括:拼接模块,用于将从所述业务服务器获得的多个子数据结构拼接为对应的开发者数据。
【文档编号】G06F17/30GK103593172SQ201210421556
【公开日】2014年2月19日 申请日期:2012年10月29日 优先权日:2012年10月29日
【发明者】林仕鼎, 童遥, 柳俊中, 黎科峰, 朱倩, 王骕 申请人:百度在线网络技术(北京)有限公司