公开/公告号CN103713896A
专利类型发明专利
公开/公告日2014-04-09
原文格式PDF
申请/专利权人 北京京东尚科信息技术有限公司;
申请/专利号CN201310695698.9
发明设计人 杜宇甫;
申请日2013-12-17
分类号G06F9/44(20060101);
代理机构11012 北京邦信阳专利商标代理有限公司;
代理人王昭林;金玺
地址 100080 北京市海淀区苏州街20号2号楼2层
入库时间 2024-02-19 22:53:23
法律状态公告日
法律状态信息
法律状态
2019-12-24
专利权的转移 IPC(主分类):G06F9/44 登记生效日:20191204 变更前: 变更后: 申请日:20131217
专利申请权、专利权的转移
2017-01-04
授权
授权
2014-05-07
实质审查的生效 IPC(主分类):G06F9/44 申请日:20131217
实质审查的生效
2014-04-09
公开
公开
技术领域
本发明涉及访问服务器的相关技术领域,特别是一种用于访问服务器的软件开发工具包生成方法及装置。
背景技术
通常一个公司里面有多台服务器为用户提供服务,而不同的服务器采用的通信协议均不一样,为了避免用户针对每一个服务器采用不同的通信协议,一般会采用多协议平台作为通信接口形成一个整体的多协议服务系统。如图1所示,多协议平台11与多个提供服务的服务器12连接,并作为与其他用户设备13的接口,用户设备13编译程序,用于向多协议平台11发送服务请求,多协议平台将服务请求转发到提供服务的服务器12上。
为了方便用户设备的调用,多协议平台或者服务器会为用户设备设计软件开发工具包(Software Development Kit,SDK)供用户调用,同时为了用户能清楚如何调用,还要撰写相关的API文件对SDK进行描述,提供SDK的调用实例。
然而,不同的用户设备13,所采用的编程语言以及运行的操作系统都可能不同,例如有采用C语言编辑,有采用JAVA语言编辑,也有可能采用C++语言编辑。同时,现有的操作系统多种多样,有PC平台上的Windows、MAC、Linux,还有移动平台上的IOS、安卓等。现有技术采用为每个编程语言及操作系统采用人工方式分别撰写独立的SDK以及API文件,其过程非常繁琐麻烦。
发明内容
基于此,有必要针对现有技术在多协议平台通信系统中,为每个编程语言及操作系统采用人工方式分别撰写独立的SDK以及API文件的技术问题,提供一种用于访问服务器的软件开发工具包生成方法及装置。
一种用于访问服务器的软件开发工具包生成方法,包括:
指令获取步骤,获取用于访问服务器的访问指令以及指令参数;
编程语言标识步骤,获取编程语言标识,所述编程语言标识用于标识所述软件开发工具包被调用时所采用的编程语言;
生成模板获取步骤,根据所述编程语言标识,获取采用所述编程语言标识对应的编程语言进行编程描述的软件开发工具包生成模板,将所述访问指令以及所述指令参数放入所述软件开发工具包生成模板的对应位置得到待生成软件开发工具包编程文件;
操作系统标识获取步骤,获取操作系统标识,所述操作系统标识用于标识所述软件开发工具包被调用时所运行的操作系统;
编译步骤,根据所述操作系统标识,获取所述操作系统标识对应的操作系统的编译打包命令,采用所述编译打包命令对所述待生成软件开发工具包编程文件进行编译打包得到所述软件开发工具包。
一种用于访问服务器的软件开发工具包生成装置,包括:
指令获取模块,用于获取用于访问服务器的访问指令以及指令参数;
编程语言标识模块,用于获取编程语言标识,所述编程语言标识用于标识所述软件开发工具包被调用时所采用的编程语言;
生成模板获取模块,用于根据所述编程语言标识,获取采用所述编程语言标识对应的编程语言进行编程描述的软件开发工具包生成模板,将所述访问指令以及所述指令参数放入所述软件开发工具包生成模板的对应位置得到待生成软件开发工具包编程文件;
操作系统标识获取模块,用于获取操作系统标识,所述操作系统标识用于标识所述软件开发工具包被调用时所运行的操作系统;
编译模块,用于根据所述操作系统标识,获取所述操作系统标识对应的操作系统的编译打包命令,采用所述编译打包命令对所述待生成软件开发工具包编程文件进行编译打包得到所述软件开发工具包。
本发明将用于访问服务器的访问指令以及指令参数,填入采用对应的编程语言进行编程描述的软件开发工具包生成模板,并采用对应的操作系统的编译打包命令进行编译得到软件开发工具包。从而解决了传统的由运营人员人工撰写API文档及开发SDK源码的问题,缩短与减少了代码开发时间与成本,提高了多协议平台通信系统正式对外发布的速度。同时,在每次服务器更新指令或者指令参数后,也无需重新人工撰写API文档及开发SDK源码,因此也缩短了多协议平台通信系统的维护时间与成本。最后,由于采用了统一的文档,因此也解决了现有API文档与SDK文件管理紊乱的问题。
附图说明
图1为多协议服务系统的结构示意图;
图2为本发明一种用于访问服务器的软件开发工具包生成方法的工作流程图;
图3为本发明一个生成SDK例子的工作流程图;
图4为本发明一个例子生成软件开发工具包描述文件的工作流程图;
图5为本发明一种用于访问服务器的软件开发工具包生成装置的结构模块图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明。
如图2所示为本发明一种用于访问服务器的软件开发工具包生成方法的工作流程图,包括:
指令获取步骤S201,获取用于访问服务器的访问指令以及指令参数;
编程语言标识步骤S202,获取编程语言标识,所述编程语言标识用于标识所述软件开发工具包被调用时所采用的编程语言;
生成模板获取步骤S203,根据所述编程语言标识,获取采用所述编程语言标识对应的编程语言进行编程描述的软件开发工具包生成模板,将所述访问指令以及所述指令参数放入所述软件开发工具包生成模板的对应位置得到待生成软件开发工具包编程文件;
操作系统标识获取步骤S204,获取操作系统标识,所述操作系统标识用于标识所述软件开发工具包被调用时所运行的操作系统;
编译步骤S205,根据所述操作系统标识,获取所述操作系统标识对应的操作系统的编译打包命令,采用所述编译打包命令对所述待生成软件开发工具包编程文件进行编译打包得到所述软件开发工具包。
其中,步骤S201中,访问指令以及指令参数由服务器的开发方提供,并保存在一个统一的平台中,例如,保存在图1中的多协议平台11上,其保存方式可以采用数据库方式。也可以采用配置文件方式,在其中一个实施例中,所述指令获取步骤S201,具体包括:从配置文件中获取用于访问服务器的访问指令以及指令参数。
步骤S201中的指令,指的是所述软件开发工具包(后续简称“SDK”)被调用后向服务器,或者在多协议平台系统中,向多协议平台发送的指令,访问服务器的方式有多种,可以为直接访问,或者是经过多协议平台访问服务器。指令参数,包括但不限于SDK所必须的名称、输出路径、参数类型、参数对外名称以及对内对外的映射结构等。
当获取到指令及指令参数后,步骤S202,获取编程语言标识,该编程语言标识由使用本发明的软件开发工具包生成方法的用户提供,用于标识所述软件开发工具包被调用时所采用的编程语言,该编程语言可以为C语言、C++语言、JAVA语言等等。
步骤S203中,根据所述编程语言标识,获取采用所述编程语言标识对应的编程语言进行编程描述的软件开发工具包生成模板(后续简称“SDK模板”),将所述访问指令以及所述指令参数放入所述软件开发工具包生成模板的对应位置得到待生成软件开发工具包编程文件。其中的软件开发工具包生成模板与编程语言标识对应,例如:对于C语言来说,其SDK模板采用函数的方式描述,而JAVA语言,其SDK模板采用对象类的方式描述。可以事先生成多个采用不同的编程语言描述的SDK模板,在运行过程中根据编程语言标识调取相应的SDK模板。无论是C语言采用函数方式描述还是采用JAVA采用对象类方式描述,均可以留出需要填写部分填写所述的指令及指令参数,该“需要填写部分”即所述软件开发工具包生成模板的对应位置。例如,采用函数方式描述时,则将函数名称、函数实体及函数参数作为需要填写部分,而其他的用于标识函数的符号(例如“{”、“}”等)或者关键字(例如“main”等)则预先在SDK模板中写入,并在执行步骤S203中,将指令参数所包括的名称填入需要填写部分的函数名称,将指令填入需要填写部分的函数实体,将所述指令参数所包括的参数对外名称填入需要填写部分的函数参数。同样,如果是采用对象类进行描述,则将对象类名称、对象类中所包括的函数实体、函数参数等作为需要填写部分,并在执行步骤S203中,将指令参数所包括的名称填入需要填写部分的对象类名称,将指令填入需要填写部分的对象类中所包括的函数实体,将指令参数所包括的参数对外名称填入需要填写部分的对象类中所包括的函数参数。
在步骤S204中,获取操作系统标识,并在步骤S205,根据所述操作系统标识,获取所述操作系统标识对应的操作系统的编译打包命令,采用所述编译打包命令对所述待生成软件开发工具包编程文件进行编译打包得到SDK。
最后,还可以预先获取SDK保存路径,将编译得到的SDK保存在所述的SDK保存路径,SDK保存路径可以是磁盘路径、网路路径,或者是存储卡路径。
如图3所示为本发明一个生成SDK例子的工作流程图,包括:
步骤S301,获取SDK保存路径,如果该SDK保存路径唯一,则执行步骤S302,否则返回失败并退出;
步骤S302,从配置文件中根据预设的jos协议(自定义协议,由服务器方提供,包括描述所述指令及指令参数在配置文件中的存放位置),获取指令及指令参数;
步骤S303,获取编程语言标识,并根据编程语言标识,获取采用所述编程语言标识对应的编程语言进行编程描述的SDK模板;
步骤S304,如果成功将所述访问指令以及所述指令参数放入所述软件开发工具包生成模板的对应位置得到待生成软件开发工具包编程文件,则执行步骤S305,否则返回失败并退出;
步骤S305,获取操作系统标识;
步骤S306,根据所述操作系统标识,获取所述操作系统标识对应的操作系统的动态编译打包命令,启动编译和打包过程,对所述待生成软件开发工具包编程文件进行编译打包;
步骤S307,如果成功输出编译流,则得到SDK,执行步骤S308,否则返回失败并退出;
步骤S308,将SDK保存在所述SDK保存路径供用户设备下载。
SDK生成以后,一般来说还需要撰写软件开发工具包描述文件,即API文档。在以往这都是由人工撰写,工作效率低下。本发明在其中一个实施例中,还包括:
描述文件获取步骤,根据所述编程语言标识,获取所述指令关于编程语言标识对应的编程语言的指令注释,以及所述指令参数关于编程语言标识对应的编程语言的指令参数注释,以及关于所述编程语言标识对应的编程语言的软件开发工具包描述文件模板,将所述访问指令、所述指令参数、所述指令注释、以及所述指令参数注释放入所述软件开发工具包描述文件模板的对应位置得到软件开发工具包描述文件。
其中,指令注释和指令参数注释由服务器的开发方提供,并保存在一个统一的平台中,例如,保存在图1中的多协议平台11上,其保存方式可以采用数据库方式。也可以采用配置文件方式,在其中一个实施例中,所述指令注释和所述指令参数注释从配置文件中获取。
指令注释和指令参数注释用于对指令和指令参数采用语言文字进行描述,指令注释包括如何调用指令,指令的意义。另外,基于步骤S201获取到指令及指令参数,因此可以动态生成SDK的调用示例和返回示例,作为指令注释,以供调用者参考。动态生成SDK的调用示例和返回示例可以根据所述编程语言标识,获取采用所述编程语言标识对应的编程语言进行编程描述的调用示例返回示例模板,将所述访问指令以及所述指令参数放入所述调用示例返回示例模板的对应位置得到调用示例返回示例文件,从调用示例返回示例文件中提取调用示例和返回示例。而指令参数注释包括各指令参数的意义,指令参数的类型,调用的规则(例如,允许设置的范围等)。由于不同的编辑语言对函数、对象类以及内部的参数等的描述均各有不同,因此,需要根据不同的编程语言预先设置相应的软件开发工具包描述文件模板,在运行描述文件获取步骤时,将指令注释和指令参数注释填入软件开发工具包描述文件模板的对应位置即可得到软件开发工具包描述文件。
所生成的软件开发工具包描述文件可以是任何格式的可视化文件。在其中一个实施例中,描述文件获取步骤中,根据所述软件开发工具包描述文件生成对应的采用超文本标记语言描述的字符流。本实施例,当需要在网络上发布SDK时,能同时在网络上发布采用超文本标记语言(Hypertext Markup Language,HTML)描述的字符流。
其中,还可以预先获取软件开发工具包描述文件保存路径,将编译得到的软件开发工具包描述文件保存在所述的软件开发工具包描述文件保存路径,软件开发工具包描述文件保存路径可以是磁盘路径、网路路径,或者是存储卡路径。
如图4所示为本发明一个例子生成软件开发工具包描述文件的工作流程图,包括:
步骤S401,获取软件开发工具包描述文件保存路径;
步骤S402,获取jos协议,jos协议为自定义协议,由服务器方提供,包括描述所述指令注释及指令参数注释在配置文件中的存放位置,通过获取并解析jos协议可以提取到接口参数、类型描述等重要信息,并可以根据jos协议的数据动态生成软件开发工具包描述文件的调用示例与返回示例,;
步骤S403,根据jos协议对配置文件进行解析,获得指令注释及指令参数注释,另外配置文件如果是针对java生成的,则还可以包括jos自定义类型,jos自定义类型是对java类型的映射,共有12种,由于服务器接口的类型是任意变化的,为了统一识别,所有的java类型在配置文件中都以12种jos自定义类型之一展示在配置文件中;
步骤S404,获取软件开发工具包描述文件模板;
步骤S405,将指令注释和指令参数注释填入软件开发工具包描述文件模板的对应位置即可得到软件开发工具包描述文件;
步骤S406,根据软件开发工具包描述文件生成对应的html字符流。
如图5所示为本发明一种用于访问服务器的软件开发工具包生成装置的结构模块图,包括:
指令获取模块501,用于获取用于访问服务器的访问指令以及指令参数;
编程语言标识模块502,用于获取编程语言标识,所述编程语言标识用于标识所述软件开发工具包被调用时所采用的编程语言;
生成模板获取模块503,用于根据所述编程语言标识,获取采用所述编程语言标识对应的编程语言进行编程描述的软件开发工具包生成模板,将所述访问指令以及所述指令参数放入所述软件开发工具包生成模板的对应位置得到待生成软件开发工具包编程文件;
操作系统标识获取模块504,用于获取操作系统标识,所述操作系统标识用于标识所述软件开发工具包被调用时所运行的操作系统;
编译模块505,用于根据所述操作系统标识,获取所述操作系统标识对应的操作系统的编译打包命令,采用所述编译打包命令对所述待生成软件开发工具包编程文件进行编译打包得到所述软件开发工具包。
在其中一个实施例中,所述指令获取模块501,具体用于:从配置文件中获取用于访问服务器的访问指令以及指令参数。
在其中一个实施例中,还包括:
描述文件获取模块,用于根据所述编程语言标识,获取所述指令关于编程语言标识对应的编程语言的指令注释,以及所述指令参数关于编程语言标识对应的编程语言的指令参数注释,以及关于所述编程语言标识对应的编程语言的软件开发工具包描述文件模板,将所述访问指令、所述指令参数、所述指令注释、以及所述指令参数注释放入所述软件开发工具包描述文件模板的对应位置得到软件开发工具包描述文件。
在其中一个实施例中,所述指令注释和所述指令参数注释从配置文件中获取。
在其中一个实施例中,描述文件获取模块中,根据所述软件开发工具包描述文件生成对应的采用超文本标记语言描述的字符流。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
机译: 电路,用于检测程序运行的方法,用于检测的软件开发装置以及用于该方法的软件生成方法
机译: 用于定制软件开发套件(SDK)生成的方法和装置
机译: 用于定制软件开发套件(sdk)生成的方法和装置