接口调用方法、应用程序升级方法及服务器和客户端
技术领域
本发明涉及互联网通信技术领域,尤其涉及一种接口调用方法及其相应的服务器,还涉及一种应用程序升级方法及其相应的服务器或客户端。
背景技术
在互联网业务开发中,服务端是数据提供方,会通过接口的形式提供给调用方,调用方可以是另一个服务端,也可以是各式客户端,例如Android、IOS移动端,Web端,PC软件端等。在业务调用时,调用方通过服务端提供的接口的接口类定义来了解接口请求时的调用参数,以及返回数据的数据结构和说明。
现有技术通常将服务端发布的接口文件作为固定部分包含在调用方的固有配置中,例如Android或IOS等操作系统客户端应用程序安装文件中,该应用程序的一个版本的安装文件通常包含服务端此前生成的一系列接口类定义,但这些接口类定义本身是不变的,并不会随着服务端升级接口而相应升级。解决的方法就是重装包含了调用功能的客户端应用程序,或者重新升级配置充当调用方的服务器。同理,当调用方为服务器时,要升级接口,也往往导致重新升级整套与调用功能相关的业务软件。
但是,互联网业务是多边的、不稳定的。服务端接口本身会随着互联网业务的变化而变化,理论上调用方的接口文件也应相应变化,否则,服务端与调用方将会遭遇如下问题:
对于服务端而言,首先,为了调用方能够升级接口,服务端需要为调用方做好升级准备;其次,无论服务端接口是发生复杂的变化还是简单的变化,服务端都要更新接口、重新发布服务;此外,服务端要做好版本兼容,如果给旧版本的客户端返回了新结构的数据,客户端会因为数据解析异常,而报错,影响业务用户体验。
对于调用方而言,首先,接口调用方要对变化后的接口调用进行调用升级,例如包含了调用功能的客户端往往就需要升级整个应用程序;其次,数据接口变化后,会同样导致调用方版本升级,调用方多个版本的数据接口调用要做兼容性测试,容易导致低版本调用方出现数据请求错误,例如,同样的一个数据接口,服务端升级后,需要Android、IOS应用低版本的客户端强制升级,用户升级失败就会导致应用异常。
可见,服务端与调用方之间接口升级的技术,是稳定互联网数据通信的关键。
发明内容
本发明的第一目的在于提供一种接口调用方法,通过解析服务包实现自解析机制。
本发明的第二目的在于提供一种应用程序升级方法,以降低重装应用程序本身的频率。
相应的,作为本发明的第三目的,也基于前述第一目的的方法而提供与之相适应的服务器。
相应的,作为本发明的第四目的,也基于前述第一目的的方法而提供与之相适应的客户端。
为满足本发明的第一目的,本发明提供的一种接口调用方法,包括如下步骤:
从统一数据接口接收结构化区块,该结构化区块用于以标准格式描述数据结构内容和该数据结构内容所对应携带的数据信息内容;
调用由解析服务包提供的解析器,由该解析器解析所述结构化区块中的数据结构内容,确定与该数据结构内容的描述相对应的一个或多个由解析服务包提供的接口类;
实例化调用该些接口类以处理所述结构化区块中数据结构内容的相应描述部分所携带的数据信息内容。
一个实施例中,所述统一数据接口的调用及所述解析服务包的提供均由远程的服务器维护和响应。
一个实施例中,本方法还包括如下步骤:
向所述服务器发送包含本机运行环境参数的升级请求,获得服务器推送的相匹配的解析服务包以替换原有的解析服务包。
一个实施例中,本方法运行于独立的服务器中,响应于客户端的请求而运行,将其接口类实例对象处理后的结果反馈给所述的客户端,使该客户端的应用程序页面的展示数据得以刷新。
另一实施例中,本方法运行于客户端中,受客户端的控制而运行,利用其接口类实例对象处理后的结果,使该客户端的应用程序页面的展示数据得以刷新。
进一步,所述解析服务包包括所述的解析器及所述的接口类定义文件,所述解析器适于将来自所述统一数据接口的结构化区块解析匹配给其相对应的接口类调用;所述接口类定义文件被配置为其实例对象适于解析调用结构化区块中数据结构内容相应描述部分所携带的数据信息内容。
较佳的,所述标准格式为本方法预先进行协议规范的格式,遵照该协议规范,所述结构化区块中的数据结构内容、对应调用的接口类的定义文件的内容,在解析服务包被调用的过程中具有兼容关系。
具体的,所述解析器在其被调用运行时,依据获得的结构化区块中的数据结构内容,解析并确定与其描述相对应的一个或多个接口类,以便以该些接口类的实例对象处理该结构化区块中的相应描述部分所携带的数据信息内容。
较佳的,所述结构化区块的数据结构内容,被协议规范约束为基于同一定义模板进行实例应用形成的树状嵌套结构,该定义模板包括当前应用实例的身份特征标识、表征当前应用实例所属层级的协议头部、表征当前应用实例的数据结构本身的属性的属性部,以及用于包含数据信息内容和扩充下层数据结构的数据部,通过在一个定义模板的应用实例的数据部中嵌入一个或多个所述定义模板的应用实例,以此类推,构造出该树状嵌套结构。
进一步,所述结构化区块中的定义模板的每一应用实例,用于对应解析匹配一个关联于该应用实例的协议头部所载数据的所述接口类,所述解析器通过这种对应关系实现依据结构化区块确定相应的接口类以便实现调用。
具体的,所述树状嵌套结构中,其末级的定义模板的应用实例,携带结构化区块的适于客户端输出展示的所述数据信息内容。
一个实施例中,所述树状嵌套结构适于携带多级导航页面的内容,各级导航关系与树状嵌套结构的应用实例嵌套关系相对应,而树状嵌套结构中的末级的应用实例,对应于多级导航页面中的展示区块,所述展示区块用于展示该末级应用实例所携带的所述数据信息内容。
较佳的,所述接口类定义文件被配置为当传入其实例对象的结构化区块的数据结构内容及所携带的数据信息内容无法识别时,忽略该些数据结构内容及其携带的数据信息内容。
为满足本发明的第二目的,本发明提供的一种应用程序升级方法,其包括如下步骤:
由所述应用程序的进程向服务器发送升级请求;
获取如前所述的本发明第一目的所述的接口调用方法所使用的解析服务包的匹配版本;
以所述解析服务包替换原有的解析服务包。
为满足本发明的第三目的,本发明提供一种服务器,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如本发明第一目的所述的接口调用方法的步骤。
为满足本发明的第四目的,本发明提供一种客户端,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如本发明第一目的所述的接口调用方法的步骤,或执行如本发明第二目的所述的应用程序升级方法的步骤。
相对于现有技术,本发明的优势在服务侧和调用侧均能得以体现:
在服务侧,本发明生产的解析服务包通过内含解析器和依照协议规范生成的接口类定义文件实现了自解析机制,可以针对结构化区块的变换生产多个不同版本的解析服务包,兼容不同的调用侧的升级需求;
在调用侧,由于解析服务包实现了自解析机制,结构化区块数据结构的变化导致的接口变化,仅需通过升级所述的解析服务包即可实现对调用侧的升级。
在服务侧与调用侧利用解析服务包所提供的自解析机制的配合下,双方甚至多方之间通过接口调用进行的交互将变得更为安全稳定。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明的接口解析服务包生成方法的流程示意图;
图2为本发明的接口调用方法的流程示意图;
图3为本发明的应用程序升级方法的流程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本发明所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。本发明所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。
应用了本发明的实现原理的一种典型的网络架构中,可以包括本发明的用于生产解析服务包的服务器、调用所述解析服务包的调用方。所述调用方既可以是为客户端服务的服务器,也可以是移动终端、个人计算机之类的客户端,具体可详见后续不同场景的说明。
需要指出的是,依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本发明的网络部署方式的实施方式。
如下即将揭示的多个典型实施例及其变化实施例中,将主要揭示本发明的两种方法,一种接口解析服务包生产方法和一种接口调用方法,接口解析服务包生产方法运行于服务侧,按照数据源的数据结构为调用方生产具有自解析机制的解析服务包,而接口调用方法则利用服务侧提供的解析服务包来实现接口调用,以调用数据源的数据。本领域技术人中应当理解,作为基于同一发明原理深化的不同实施例,各实施例之间的概念、技术特征、原理等,均是统一的,因此除非明文强调,否则读者不应以任何方式机械地割分本发明的不同实施例来故意曲解各实施例间的对应关系。
请参阅图1,本发明的接口解析服务包生产方法在其所体现的典型实施例中,包括如下步骤:
步骤S11,获得与统一数据接口提供的结构化信息相对应的结构化区块,该结构化区块用于以标准格式描述所述结构化信息对应的数据结构内容和该数据结构内容所对应携带的数据信息内容:
本步骤的执行,其目的是要获得所述的结构化区块,以便依据该结构化区块生产接口类的定义文件。
本方法后续生产接口类的定义文件的基础,需要先获得一种结构化信息,这种结构化信息最终通过结构化区块中的数据结构内容部分进行描述。这里所称的结构化信息,是逻辑上的概念,在不同的执行环节体现为不同的形式。
表现在最初的定义环节,所述结构化信息以数据结构字段描述的形式存储于数据库中,这一数据库理论上可与本方法同存一台服务器,也可存在于统一数据接口所指向的服务器,可灵活设置。后台管理用户可以通过系统预先准备的用户界面,访问该数据库以显示和维护该数据库,从而实现对所述结构化信息的维护。而所述数据库同理允许扩增、删减或修改所述的数据结构字段描述相关的数据记录以更新所述的结构化信息,这将反映到其他利用该结构化信息的后续环节中。
表现在结构化区块生成的环节,由于结构化信息发生了变化,意味着数据结构改变,因此,根据结构化信息构造的结构化区块中的内容也必然会发生变更。同理可以推知,后续根据结构化区块生产的接口类的定义文件,其内容也必然跟随发生变更。
理解了结构化信息用于在逻辑上表达数据结构这一涵义,便可以知晓,结构化是利用这一数据结构构造出的标准化数据模块,接口定义文件则是与这种数据结构存在映射关系的开发文本,相应的,也会反映到以接口类定义文件构造出的实例对象中。
因此也可理解,所述的结构化信息,既表征于所述的数据库中,也表征于统一数据接口提供的结构化区块中。所以,本步骤既可以通过访问所述统一数据接口具体是通过访问其指向的服务器所指向的数据库来获取结构化信息,然后自行转换为结构化区块,也可以直接使用统一数据接口获得所述的结构化区块,这几种方式最终均可以获得结构化区块,且确保其与所述的结构化信息存在对应关系。
所述的统一数据接口,指向一个提供数据内容的服务器,这台服务器可以是用于执行本方法的本地服务器,也可以是远程服务器。通过调用该统一数据接口,可以向这一服务器请求返回由所述结构化区块所携带的数据,这些数据可以最终推送到客户端的应用程序界面进行展示,甚至可进一步实现交互。
所述的结构化区块,采用了本发明预先进行协议规范的标准格式来构造,其包含用于描述所述的结构化信息的数据结构内容和按照数据结构所组织并携带的数据信息内容。在这种结构化区块中,数据结构内容与数据信息内容在某种意义上是互相交织的,例如,结构化区块中对于一个字段的描述,可能包含被用来构造接口类名称的变量和对应的字符串,变量与字符串的这种关系,既表述了数据结构内容,也表述其数据信息内容。
具体而言,所述结构化区块的数据结构内容,被协议规范约束为基于同一定义模板进行实例应用形成的树状嵌套结构,该定义模板包括当前应用实例的身份特征标识、表征当前应用实例所属层级的协议头部、表征当前应用实例的数据结构本身的属性的属性部,以及用于包含数据信息内容和扩充下层数据结构的数据部,通过在一个定义模板的应用实例的数据部中嵌入一个或多个所述定义模板的应用实例,以此类推,构造出该树状嵌套结构。
所述结构化区块中的定义模板的每一应用实例,用于对应生产一个关联于该应用实例的协议头部所载数据的所述接口类定义文件,后续将揭示的解析器通过这种对应关系实现依据结构化区块确定相应的接口类以便实现调用。
所述树状嵌套结构中,其末级的定义模板的应用实例,携带结构化区块的适于输出展示的所述数据信息内容。
所述树状嵌套结构适于携带多级导航页面的内容,各级导航关系与树状嵌套结构的应用实例嵌套关系相对应,而树状嵌套结构中的末级的应用实例,对应于多级导航页面中的展示区块,所述展示区块用于展示该末级应用实例所携带的所述数据信息内容。
为了形象化理解结构化区块的结构,以移动终端的媒体类应用程序为例,其包含一级导航、二级导航以及页面上下或左右排列的多个展示区域,每个展示区域实际便是一个数据模块,所以,这种媒体类应用程序的这种多级导航页面的结构关系,便可以用本发明的树状嵌套结构来加以描述。所述的一级导航和二级导航以及数据模块,无论其在同一级中数量多寡,均可按其数量,对应给出一个定义模板的应用实例。因此,体现在结构化区块的组织结构层面,一个一级导航采用一个所述的定义模板,按照结构化信息所体现的相应部分的数据结构来描述,成为一个应用实例,刚好对应描述一个后续即将产生的接口类。同理,每一个二级导航也各采用一个所述的定义模板,同样按照结构化信息所体现的相应部分的数据结构来描述,成为相应的各个应用实例,而这些二级导航对应的应用实例则分别对应描述他们自身的即将产生的接口类。同理,数据模块也是如此,也运用定义模块产生相应的应用实例,以便描述对应的接口类。
显然,各个应用实例中的描述内容,针对数据结构内容部分,由于基于同一定义模板,因此是基本相同的,例如,均具有前述所称的身份特征标识、协议头部、属性部以及数据部。但是由于允许存在嵌套关系,因此,上一级的数据部中可以嵌入下级的应用实例,以此类推,直至末级,因应数据模块展示数据的需要,则将不再在其应用实例中嵌套应用实例,但却存储用于展示的数据信息内容。尽管众多具有嵌套关系的应用实例基于同一定义模拟来实例化而具有基本相同的数据结构内容,指示出基本相同的数据结构,但是,这些数据结构中,基于应用实例身份的不同,他们即使变量名称相同,但为变量名赋值的数据信息内容一般是不同的。所以也可看出,本发明所述的定义模板,实质上便是所述结构化信息所反映的数据结构的映射,结构化信息的改变,导致定义模板的改变,从而也必然导致结构化区块中的数据结构内容以及后续产生的接口类定义文件的内容的改变。
根据上面的示例说明,可以理解,媒体应用程序所需的数据可以采用本发明的结构化区块加以封装,只要可以对封装的数据进行有效的解析,便可在客户端正常展示这些数据。
步骤S12,依据结构化区块中的数据结构内容进行转换,按照该数据结构内容的描述对应生产出一个或多个接口类的定义文件,使得生产出的接口类的实例对象适于解析调用结构化区块中相应描述部分所携带的数据信息内容:
在前一步骤中获得的结构化区块,无论是由本服务器依据结构化信息转换而得的,还是直接从统一数据接口获得的,在本步骤中将用于生产接口类的定义文件。
具体而言,本步骤首先从所述的结构化区块中解析出其中的数据结构内容,如前所述,这些数据结构内容对应携带着数据信息内容,具体化为一个变量对应一个赋值的数据,本步骤可使用这种数据结构关系,进行所述接口定义文件的生产。
例如,如前所述的每一个定义模板应用实例中的数据结构内容,描述了一个对应的接口类,因此,参阅前述的示例可知,依据一个应用实例的数据结构内容的这种描述信息,便可生产一个接口类的定义文件。具体如,一级导航中的协议头部中定义了“A”、“B”两个字符串,且其属性部中定义了若干变量及其数据,那么,在生产接口类时,依据协议规范,可将“A”与“B”进行连接形成AB作为接口类的接口名称,而将属性部中的各个变量作为该接口类的内部参数,用于描述该类的属性。同理可推知,各二级导航、各数据模块,他们所对应的应用实例中的数据结构内容也可按此方式描述,本步骤也同理可以同样的方式生产他们的接口类定义文件。
由此可见,所述的接口类的定义文件,是按照结构化区块所使用的每个应用实例的数据结构内容所描述的信息而对应转换生产出来的,这样生产出来的接口类,当其实例化成实例对象后,便可对应识别结构化区块的整个组织结构,于是,一个接口类对应一个应用实例,一个实例对象可以解析处理结构化区块中相应描述部分的数据内容信息,例如将其中的属性部的属性赋值给该实例对象,又如将其中的数据部的数据信息内容显示到用户界面的展示区域等。
步骤S13,将解析器与所述接口类的定义文件打包成解析服务包以供调用方下载,所述解析器适于将来自所述统一数据接口的结构化区块解析匹配给其相对应的接口类调用:
本步骤中,将提供解析器,与前一步骤生产出来的接口类定义文件一起,打包成解析服务包,以便提供给需要的调用方。
由前一步骤的说明可以知晓,当结构化信息既定的情况下,表现为一个明确的定义模块,实例化一种应用实例,进一步可以形成一种以该种应用实例进行嵌套的结构化区块,最终也就对应到多个接口类定义文件。因此,遵照所述的协议规范,所述结构化信息所对应的数据结构、对应生成的结构化区块中的数据结构内容、对应转换成的接口类定义文件的内容,在生产解析服务包的过程中是关联变动的。
所以,一个既定的结构化信息一般将对应生产一个版本的解析服务包,进一步可以理解,如果对底层的结构化信息进行重新定义,导致所述的数据库的数据记录发生扩增、删减或者修改,那么,按照本方法便可进一步生产新版本的解析服务包。这将导致解析服务包的版本越来越多,而不同的调用方处,则可能正在使用不同版本的解析服务包。旧版本的接口调用新版本的内容时,容易出现不兼容的情况,所以,便需要为调用方提供所述的解析器。
所述的解析器,被本配置为在其被调用方调用运行时,依据调用方获得的结构化区块中的数据结构内容,解析并确定与其描述相对应的一个或多个接口类,以便以该些接口类的实例对象处理该结构化区块中的相应描述部分所携带的数据信息内容。
可以理解,解析器的这种解析机制,是遵循本发明所述的协议规范的,是遵循结构化区块中所描述的数据结构内容的描述的。具体而言,解析器在解析结构化区块时,按照前面的步骤所揭示的各种关联关系,根据结构化区块中的各个应用实例的数据结构内容的描述,进行转换匹配接口类定义文件,如果执行这种转换后,未能匹配到相应的接口,那么解析器可以进行容错处理,而如果转换后可以匹配到接口,但是有些新增字段未能被旧版本的接口识别,由于接口类是不予考虑或称忽略这些新增字段的,所以,新增字段也不会导致旧接口类的实例对象运行时出错。也就是说,所述接口类定义文件被配置为当传入其实例对象的结构化区块的数据结构内容及所携带的数据信息内容无法识别时,忽略该些数据结构内容及其携带的数据信息内容。由此可见,由于解析器和按照本发明的方法所生产的接口类文件的存在,解析服务包提供的接口调用功能实现了对结构化区块本身的不同定义版本的前向和后向的兼容,解决了兼容性问题。
涉及到所述解析服务包的分发,由于解析服务包存在多个版本,因此对其分发可以灵活进行管理。一方面,可以在调用方处灵活手动下载安装;另一方面,也可由调用方检测更新后下载自行安装;又一方面,考虑到不同的调用方的不同运行环境,例如操作系统存在限制,则可在本地服务器处将解析服务包的版本信息与相关运行环境参数进行关联存储,当调用方需要升级其解析服务包时,向本地服务器提交包含调用方的运行环境参数的升级请求,服务器依据该请求所包含的运行环境参数,利用前述关联存储的信息,为该调用方确定解析服务包的匹配版本,将该匹配版本的解析服务包推送给该调用方;再一方面,如果无需考虑运行环境,可以简化操作,在调用方发起升级请求时,即为其推送最新版本的解析服务包。
由此,本发明的接口解析服务包生产方法得以执行,能够为调用方生产并提供各个版本的解析服务包,为调用方提供接口自解析机制,使调用方可以较为安全稳定地与数据源进行交互,进行更为灵活有效的接口调用。
请参阅图2,本发明的接口调用方法在其所体现的典型实施例中,包括如下步骤:
步骤S21,从统一数据接口接收结构化区块,该结构化区块用于以标准格式描述数据结构内容和该数据结构内容所对应携带的数据信息内容:
参阅前一典型实施例所揭示的接口解析服务包生产方法中的描述,所述的统一数据接口,可以经过该生产方法所在的服务器来实现调用,由服务器来集中维护该统一数据接口并响应调用方请求而路由经统一数据接口获取的结构化区块,当然也可由本方法所在的调用方(可以是客户端,也可以是服务器,下同)自行调用。所述的统一数据接口负责提供具有标准格式的所述结构化区块,该结构化区域以其数据结构内容携带数据信息内容实现对数据的承载。
如前所述,所述的结构化区块,采用了本发明预先进行协议规范的标准格式来构造,其包含用于描述所述的结构化信息的数据结构内容和按照数据结构所组织并携带的数据信息内容。在这种结构化区块中,数据结构内容与数据信息内容在某种意义上是互相交织的,例如,结构化区块中对于一个字段的描述,可能包含被用来构造接口类名称的变量和对应的字符串,变量与字符串的这种关系,既表述了数据结构内容,也表述其数据信息内容。
具体而言,所述结构化区块的数据结构内容,被协议规范约束为基于同一定义模板进行实例应用形成的树状嵌套结构,该定义模板包括当前应用实例的身份特征标识、表征当前应用实例所属层级的协议头部、表征当前应用实例的数据结构本身的属性的属性部,以及用于包含数据信息内容和扩充下层数据结构的数据部,通过在一个定义模板的应用实例的数据部中嵌入一个或多个所述定义模板的应用实例,以此类推,构造出该树状嵌套结构。
所述结构化区块中的定义模板的每一应用实例,用于对应匹配解析一个关联于该应用实例的协议头部所载数据的所述接口类定义文件,后续将揭示的解析器通过这种对应关系实现依据结构化区块确定相应的接口类以便实现调用。
所述树状嵌套结构中,其末级的定义模板的应用实例,携带结构化区块的适于输出展示的所述数据信息内容。
所述树状嵌套结构适于携带多级导航页面的内容,各级导航关系与树状嵌套结构的应用实例嵌套关系相对应,而树状嵌套结构中的末级的应用实例,对应于多级导航页面中的展示区块,所述展示区块用于展示该末级应用实例所携带的所述数据信息内容。
为了形象化理解结构化区块的结构,以移动终端的媒体类应用程序为例,其包含一级导航、二级导航以及页面上下或左右排列的多个展示区域,每个展示区域实际便是一个数据模块,所以,这种媒体类应用程序的这种多级导航页面的结构关系,便可以用本发明的树状嵌套结构来加以描述。所述的一级导航和二级导航以及数据模块,无论其在同一级中数量多寡,均可按其数量,对应给出一个定义模板的应用实例。因此,体现在结构化区块的组织结构层面,一个一级导航采用一个所述的定义模板,按照结构化信息所体现的相应部分的数据结构来描述,成为一个应用实例,刚好对应描述一个后续即将产生的接口类。同理,每一个二级导航也各采用一个所述的定义模板,同样按照结构化信息所体现的相应部分的数据结构来描述,成为相应的各个应用实例,而这些二级导航对应的应用实例则分别对应描述他们自身的即将产生的接口类。同理,数据模块也是如此,也运用定义模块产生相应的应用实例,以便描述对应的接口类。
显然,各个应用实例中的描述内容,针对数据结构内容部分,由于基于同一定义模板,因此是基本相同的,例如,均具有前述所称的身份特征标识、协议头部、属性部以及数据部。但是由于允许存在嵌套关系,因此,上一级的数据部中可以嵌入下级的应用实例,以此类推,直至末级,因应数据模块展示数据的需要,则将不再在其应用实例中嵌套应用实例,但却存储用于展示的数据信息内容。尽管众多具有嵌套关系的应用实例基于同一定义模拟来实例化而具有基本相同的数据结构内容,指示出基本相同的数据结构,但是,这些数据结构中,基于应用实例身份的不同,他们即使变量名称相同,但为变量名赋值的数据信息内容一般是不同的。所以也可看出,本发明所述的定义模板,实质上便是所述结构化信息所反映的数据结构的映射,结构化信息的改变,导致定义模板的改变,从而也必然导致结构化区块中的数据结构内容以及后续产生的接口类定义文件的内容的改变。
根据上面的示例说明,可以理解,媒体应用程序所需的数据正是采用了本发明的结构化区块加以封装,通过本方法后续对封装的数据进行有效的解析,从而实现在客户端正常展示这些数据。
步骤S22,调用由解析服务包提供的解析器,由该解析器解析所述结构化区块中的数据结构内容,确定与该数据结构内容的描述相对应的一个或多个由解析服务包提供的接口类:
如前所述,本发明中执行本方法的调用方,从服务器获得解析服务包,在运行时调用。解析服务包包含有服务器提供的解析器和服务器生产的与结构化区块的数据结构内容相对应的若干接口类定义文件。
所述的接口类定义文件,是按照结构化区块所使用的每个应用实例的数据结构内容所描述的信息而对应转换生产出来的,这样生产出来的接口类,当其实例化成实例对象后,便可对应识别结构化区块的整个组织结构,于是,一个接口类对应一个应用实例,一个实例对象可以解析处理结构化区块中相应描述部分的数据内容信息,例如将其中的属性部的属性赋值给该实例对象,又如将其中的数据部的数据信息内容显示到用户界面的展示区域等。
所述的解析器,在其被调用运行时,依据调用方获得的结构化区块中的数据结构内容,解析并确定与其描述相对应的一个或多个接口类,以便以该些接口类的实例对象处理该结构化区块中的相应描述部分所携带的数据信息内容。
解析器首先从由统一数据接口接收的所述结构化区块中解析出其中的数据结构内容,如前所述,这些数据结构内容对应携带着数据信息内容,具体化为一个变量对应一个赋值的数据,本步骤可使用这种数据结构关系,进行相关解析。
例如,如前所述的每一个定义模板应用实例中的数据结构内容,描述了一个对应的接口类,因此,参阅前述的示例可知,依据一个应用实例的数据结构内容的这种描述信息,便可转换并匹配解析服务包中相应的接口类,然后实例化该接口类调用之。具体如,一级导航中的协议头部中定义了“A”、“B”两个字符串,且其属性部中定义了若干变量及其数据,那么,在执行解析时,依据协议规范,可将“A”与“B”进行连接形成AB作为接口类的接口名称,而将属性部中的各个变量作为该接口类的内部参数,用于描述该类的属性。同理可推知,各二级导航、各数据模块,他们所对应的应用实例中的数据结构内容也可按此方式描述,本步骤也同理可以同样的方式转换对应到他们的相应的接口类。
由此可见,解析服务包中的接口类的定义文件,是按照结构化区块所使用的每个应用实例的数据结构内容所描述的信息而对应转换生产出来的,这样生产出来的接口类,当其实例化成实例对象后,便可对应识别结构化区块的整个组织结构,于是,一个接口类对应一个应用实例,一个实例对象可以解析处理结构化区块中相应描述部分的数据内容信息,例如将其中的属性部的属性赋值给该实例对象,又如将其中的数据部的数据信息内容显示到用户界面的展示区域等。
解析器的这种解析机制,是遵循本发明所述的协议规范的,是遵循结构化区块中所描述的数据结构内容的描述的。具体而言,解析器在解析结构化区块时,按照前述所揭示的各种数据结构关联关系,根据结构化区块中的各个应用实例的数据结构内容的描述,进行转换匹配接口类定义文件,如果执行这种转换后,未能匹配到相应的接口,那么解析器可以进行容错处理,而如果转换后可以匹配到接口,但是有些新增字段未能被旧版本的接口识别,由于接口类是不予考虑或称忽略这引起些新增字段的,所以,新增字段也不会导致旧接口类的实例对象运行时出错。也就是说,所述接口类定义文件被配置为当传入其实例对象的结构化区块的数据结构内容及所携带的数据信息内容无法识别时,忽略该些数据结构内容及其携带的数据信息内容。由此可见,由于解析器和接口类文件的存在,解析服务包提供的接口调用功能实现了对结构化区块本身的不同定义版本的前向和后向的兼容,解决了兼容性问题。因此也可知,在结构化区块所采用的标准格式为本方法预先进行协议规范的格式的前提下,遵照所述的协议规范,所述结构化区块中的数据结构内容、对应转换成的接口类定义文件的内容,在解析服务包被调用的过程中是具有兼容关系的。
步骤S23,实例化调用该些接口类以处理所述结构化区块中数据结构内容的相应描述部分所携带的数据信息内容:
当调用方利用解析器解析结构化区块,确定相应的接口类后,便实例化各个接口类构造出多个相应的实例对象,分别处理结构化区块中相对应的各个应用实例中的数据信息内容,也即处理所述结构化区块中数据结构内容的相应描述部分所携带的数据信息内容。
仍依前述有关媒体应用程序为例,为简化的便利,设本调用方为客户端,客户端的媒体应用程序包含并调用了其提前配备的所述解析服务包。在这种情况下,一级导航、二级导航以及数据模块相应的实例对象均处理结构化区块中各对应的应用实例的数据信息内容,例如一级导航和二级导航利用其对应的应用实例的属性部中的属性数据进行对象赋值,所述模块数据则利用其对应的应用实例的数据部中的数据信息内容提出要显示的内容,最终这些效果均反映到媒体应用程序的相应页面中,使该页面得以刷新。
客户端的应用程序可实现格式化输出相关的功能,由此,如果调用方为服务器,而客户端只是通过与其进行远程交互来调用解析服务包,那么,服务器中经所述实例对象处理之后的数据便可反馈给客户端的应用程序来做本地输出作业,使应用程序的页面得以刷新。
为了解决解析服务包升级的问题,可以因应前一典型实施例的方法所在服务器的配置,向所述服务器发送包含本机运行环境参数的升级请求,以便获得服务器推送的相匹配的解析服务包以替换原有的解析服务包。在实现这种升级之后,本典型实施例的方法便可以完整的解析调用从统一数据接口所获得的结构化区块的数据结构内容和数据信息内容。
由此可见,本典型实施例的方法,实现了对前一典型实施例的解析服务包的利用,能够在调用方建构自解析机制,通过解析服务包实现对远程接口的安全稳定的调用。
进一步,本发明的另一实施例,基于对解析服务包的进一步运用而提出,而提供一种应用程序升级方法,请参阅图3,其包括如下步骤:
步骤S31,由所述应用程序的进程向服务器发送升级请求,该服务器是本发明的接口解析服务包生产方法所赖以执行的服务器;
步骤S32,获取所述的解析服务包的匹配版本,所述解析服务包即为前述生产方法所生产、而由所述接口调用方法所使用的解析服务包;
步骤S33,以所述解析服务包替换原有的解析服务包,由此,应用程序在重新启动后将调用新的解析服务包中的解析器和相应的接口类。
本发明的另一实施例中,提供一种服务器,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如前所述的一种接口解析服务包生产方法的步骤。
本发明的又一实施例中,提供一种服务器,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如前所述的一种接口调用方法的步骤。
本发明的再一实施例中,提供一种客户端,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行所述的接口调用方法的步骤,或执行所述的应用程序升级方法的步骤。
本发明可以在服务器生产SDK形式的解析服务包,而在调用方(可以是服务器也可以是客户端)调用该解析服务包。
本发明所处理的结构化区块遵循了预先协议的协议规范的标准格式,这种结构化区块既具备描述数据结构的能力,也具备携带数据信息的能力。生产SDK的服务器从统一数据接口获得结构化区块后,可以解析出其中的数据结构内容,数据结构内容对数据结构所含的结构化信息的描述,被用来对应转换生成接口类定义文件。服务器获得这些结构化信息,既可以从统一数据接口的结构化区块中提取,也可以直接从储存该些结构化信息的数据库中获取。接口类定义文件与数据结构内容之间由此便具有一一对应关系,后续对于调用方而言,可以利用该接口类定义文件构造的实例对象来处理与其对应的数据结构内容相关联的数据信息内容,由此便可实现对相应的结构化区块的解析使用。
服务器为了让调用方具备这种解析能力,将能够实现结构化区块与接口类之间对应匹配关系的解析器,连同其为结构化区块所生产的一系列接口类定义文件,打包成解析服务包,提供给调用方使用。由此可见,服务器通过解析获得了理解结构化区块所载各项内容的能力,然后又将这一能力以解析服务包的方式提供给调用方调用,调用方利用这一能力进一步实现对结构化区块所载内容的利用,这一过程实质上是提供了一种对于结构化区块的自解析机制,调用方利用这一自解析机制之后,无需再另行设计理解结构化区块的功能模块,全需功能全部交由服务器定制解析服务包并提供给调用方自身来实现。
当结构化区块的数据结构发生扩增、删减或者修改之后,新版本的解析服务包便会被服务器生产出来,调用方只要采用这一新版本的解析服务包,便可实现对新的结构化区块的解析和使用。而由于所采用的结构化区块到接口类定义文件之间是采用对应转换关系的,所以,接口类可以仅处理其认识的数据结构字段,对于不认识的数据结构字段,接口类可以不予理会;对于未传参的字段,接口类理论上也可容错处理,因而,不同版本的解析服务包在处理最新的结构化区块时,均实现了前向兼容和后向兼容,充分确保设备方接口调用的安全稳定。
进一步,依据协议规范,结构化区块可以具有树状嵌套结构,通过在定义模板的应用实例中嵌套一级或多级应用实例,可以实现树状导航结构。定义模板的一个应用实例,实质上对应于一个接口类,所以一个结构化区块便可被数个相应的接口类的实例对象解析执行之。可以看出,结构化区块表达的数据结构是可扩展的,通过按需在适当层级添加应用实例来实现扩展。在这种允许扩展结构的基础上,提供具有自解析机制的解析服务包,这对于诸多调用方而言,自身实现轻量逻辑,而又能够灵活地适应结构化区块的数据结构的变动,为用户提供无障碍的升级服务,可以进一步丰富终端应用程序的内容表达能力。
继而,当将解析服务包视为应用程序的可以更新的一个模块的时候,在客户端应用程序上提供升级功能,在服务器上支持这种升级功能,由此,当应用程序的更新换代仅是涉及接口升级时,客户端应用程序便可自身与服务器的交互,以更高效的方式升级自身的解析服务包,开发人员可以避免重复开发应用程序或调用侧的安装程序,大大提高程序的开发和升级效率。
本技术领域技术人员可以理解,本发明包括涉及用于执行本发明中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(ErasableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。