首页> 中国专利> 用于定制的软件开发包(SDK)的方法和装置

用于定制的软件开发包(SDK)的方法和装置

摘要

一种被操作为在虚拟代码提供器(VCP)中生成定制软件开发包(SDK)的方法包括分析与由至少一个经典服务组件(CSC)提供的多个预定义的函数对应的多个进程代码。所述方法还包括检索用于所述多个函数的每个函数的本机SDK、接收在所述多个预定义的函数中的至少两个函数的选择、以及从用于选择的至少两个函数的所述本机SDK解析SDK代码。所述方法链接解析的SDK代码并且存储链接的解析SDK代码作为定制SDK。

著录项

  • 公开/公告号CN105765527A

    专利类型发明专利

  • 公开/公告日2016-07-13

    原文格式PDF

  • 申请/专利权人 西安姆贝拉有限公司;

    申请/专利号CN201480038518.2

  • 申请日2014-06-17

  • 分类号G06F9/44;G06F15/16;

  • 代理机构北京英赛嘉华知识产权代理有限责任公司;

  • 代理人王达佐

  • 地址 英属维尔京群岛托托拉岛

  • 入库时间 2023-06-19 00:02:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-26

    授权

    授权

  • 2016-08-10

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140617

    实质审查的生效

  • 2016-07-13

    公开

    公开

说明书

背景技术

计算机编程语言的发展和集成扩展了现有语言的许多能力。每种 语言提供了相应大小、执行速度和在平台和设备中的各种功能的具体 优点和缺点。正因为如此,一些特定语言只能利用相应的设备进行工 作并且用户常常必须熟悉或甚至精通多种编程语言。另外,构建现代 应用程序的本质迫使开发者学习多种语言。从而写应用程序不再限于 使用一种编程语言。集成和学习多种语言是项困难的负担,常常需要 几个月或几年来训练程序员/开发者达到足够的编码熟练度。

应用程序可由各种语言构成并且如果被部署在服务器上,则需要 程序员学习前端语言、服务器语言和后端语言。前端技术也由若干不 同的语言(HTML、Javascript等)构成以进一步增加了编程复杂度。

另外,更多的计算发生在网络和/或因特网上(即,“云计算”), 用各种软件开发包(SDK)和应用编程接口(API)进行编程对开发者 来说是繁琐的必要。新兴的服务,例如社交媒体(TWITTER、 FACEBOOK等)、数据存储(DROPBOX、CLOUDDRIVE等)和金 融交易(PAYPAL、AMAZON、EBAY等)也增加了程序员的编程负 担,因为每个服务可能需要自己的SDK或API来实现由服务提供的进 程。例如,TWITTER上的TWEETING需要与在TUMBLR上贴图不 同的代码基。使用这些服务还可能不方便显示直到应用程序被部署到 服务上之后,这也可能具有不可挽回的后果。换句话说,跨多个平台、 语言和服务编程在学习和理解远程服务附带的SDK和API方面是极其 复杂的。随后,使用多个服务的任何程序都需要巨大的代码基和附带 的SDK并且占据大量的存储器,即使仅使用所提供的功能的一部分也 是如此。

因此,本技术领域需要生成包含选择功能的定制SDK。

发明内容

本发明的实施方式一般涉及用于具有定制SDK的代码虚拟化的 方法、装置和系统。特别地,通过利用远程服务器上的预生成的代码 库、定制SDK和片段生成器,用户设备上的程序以最小内存存储空间 利用跨多个平台和编程语言的多项服务。用户设备存储定制SDK,所 述定制SDK仅包含由用户选择的进程所需的代码。用户设备接收代码 片段和/或定制SDK以执行远程服务器上的至少一个远程进程调用, 而且依次以目标设备(例如,不同远程服务器)的本机语言部署进程, 基本如结合附图中的至少一个所示和/或所描述的,如在权利要求中更 完整地阐述的。

本公开的这些和其它特征和优点可通过结合附图回顾本公开的以 下详细描述来理解,在全文中相似的附图标记指示相似的组件。

附图说明

因此本发明的上述特征可被详细理解的方式、上面简要概括的本 发明的更具体的描述可参考实施方式得到,其中一些实施方式在附图 中示出。然而,应注意,附图仅示出了本发明的典型实施方式,因此 不被认为限制本发明的范围,本发明可准许其它同等有效的实施方式。

图1是根据本发明的一个或多个示例性实施方式的代码虚拟化系 统的图示;

图2示出了根据本发明的一个或多个示例性实施方式的通过使用 代码虚拟代码提供器(VCP)执行与CLOUD客户接口连接的经典服 务组件的平台;

图3是根据本发明的一个或多个示例性实施方式的使用图2中公 开的定制SDK和虚拟代码提供器与集成开发环境接口连接的概要方 法的图示;

图4是根据本发明的一个或多个示例性实施方式的生成定制SDK 的方法的流程图;

图5是根据本发明的一个或多个示例性实施方式的以特定编程语 言生成定制SDK的方法的流程图;

图6是根据本发明的一个或多个示例性实施方式的用于使用定制 SDK的用于各种编程语言的虚拟化进程调用代码生成器的方法的流 程图;以及

图7是根据本发明的一个或多个示例性实施方式的示例性计算服 务器内的模块的框图。

具体实施方式

在下面描述的实施方式中,“进程”指存储在执行计算机(例如, 服务器、个人计算机、移动设备等)上的随时可运行的代码基或用于 函数的预生成的进程代码。每个进程通过名称、进程ID、图标、或指 示进程功能的其它标识符被集成开发环境(IDE)的用户唯一识别。 “执行”是指进程在计算机(本地或远程、或基于CLOUD)上的启 动。“包”指通过公共属性(API名称、公共参数、SDK、参数名称等) 组织的进程的集合。“片段”指用待被插入由用户选择的相应编程语言 的程序中以调用远程进程的定制代码的生成块。通常,所选择的语言 是由用户指定的在用户设备上的应用程序和/或IDE中实现的编程语 言。

如上所述,在下面的实施方式中,“定制”和“定制的”SDK应 指被裁制以仅包括实现用户选择的函数所必要的SDK数据。函数(例 如,进程)是用于呈现给用户的描述进程代码操作的描述性术语和/ 或图像。在一些实施方式中,方法包括进程代码。

本文所公开的实施方式涉及远程服务器上(例如,“在CLOUD 中”)的代码库,其中用户可远程选择函数然后下载相应的片段和/或 定制SDK以从本地应用程序或软件程序访问进程。片段允许远程服务 器上的远程进程调用以在服务器上执行进程或将进程部署到不同的远 程服务器或远程机。用户设备使用虚拟化SDK使得片段可与执行计算 机上的远程平台通信。远程平台包括附加服务的虚拟化组件(例如, 编译器、邮件、AMAZON、TWITTER、EBAY、DROPBOX等)以及 用于服务的相应SDK和API。如下面进一步讨论的,虚拟化SDK被 定制为仅包括由用户选择的特定函数所必要的代码。具有定制SDK的 实施方式需要较小的存储器,在一些实施方式中比非定制的情况更快 地被检索到。计算平台包括硬件体系结构和软件框架(包括应用程序 框架),其中它们的结合允许软件运行。典型的平台包括计算机体系结 构、操作系统和运行时库。

典型的SDK包括帮助程序员开发用于软件包、软件框架、硬件平 台、计算机系统、视频游戏控制台、操作系统或类似开发平台的应用 程序的许多工具、库、文档和样本代码。API定义了应该由程序遵循 以与另一程序通信的一组规则。所述规则规定了应如何按顺序为两个 应用程序定义例程、数据结构等以使彼此通信。API是允许软件程序 彼此交互的接口,而SDK是可用于开发针对特定平台的软件应用程序 的一组工具。在一些示例中,SDK可包括API。

图1是根据本发明的一个或多个实施方式的代码虚拟化系统100 的图示。系统100包括至少一个用户设备(102a…102n)、网络110和 至少一个远程服务器(104a…104n)。至少一个用户设备(102a…102n) 包括能够存储和执行程序的电子设备,例如个人计算机、服务器、虚 拟服务器、微控制器(MCU)和控制器、传感器、致动器、与网关连 接的边缘设备、专用集成电路(ASIC)、微处理器和处理器、蜂窝电 话、智能电话、平板电脑、笔记本电脑等。

每个用户设备(102a…102n)包括相应的存储器(112a…112n), 存储器(112a…112n)存储连接至网络110和认证到网络110中以连 接至至少一个远程服务器(104a…104n)所必要的代码。在一些实施 方式中,存储器(112a…112n)存储用于接收和部署来自至少一个远 程服务器(104a…104n)的片段的IDE。

网络110可包括诸如局域网(LAN)、广域网(WAN)、无线局域 网WLAN、蜂窝网、Wi-Fi、因特网或内联网的有线和/或无线网络中 的至少一个或组合。至少一个远程服务器(104a…104n)可包括远程 应用服务器、网页服务器、邮件服务器、主机服务器、数据库服务器、 存储服务器等。至少一个远程服务器(104a…104n)包括存储器 (114a…114n)以存储远程平台120并且通过定制SDK生成器122、 片段关联模块124和执行引擎126执行具体的进程调用。在一些实施 方式中,片段生成器124被存储在用户设备(102a…102n)上以生成 通过使用定制SDK调用远程进程的片段。存储器(114a…114n)还可 存储用户接口模块、用户档案/账户数据库、进程集、SDK和相关参数 以链接和执行跨网络110上的其它服务器104n的进程(例如, FACEBOOK、TWITTER、邮件、SMS、MMS、FTP等)。

执行引擎126通过使用调用由定制SDK识别的片段中的参数关联 识别的调用例程和运行/执行进程来处理对库中的例程的调用。在一些 实施方式中,执行引擎126可将进程调用的输出发送给另一进程调用 或原始进程调用。

在一些实施方式中,进程调用参数可被存储在用户设备102a或远 程服务器104a上。在其它实施方式中,用于进程调用的参数由用户经 由图形用户界面中规定的、呈现给用户的预生成、预定义的字段直接 指定。在一些实施方式中,图形用户界面是IDE的一部分。IDE利用 由远程服务器104a生成的片段集成到用户设备102a上的用户选择的 编程语言的程序中。

在一些实施方式中,IDE还通过使用服务器104a上的片段执行远 程进程调用以部署附加的进程和访问在其它服务器104n上提供的服 务。通过定制SDK和将远程进程调用链接至下面在图2中进一步讨论 的相应虚拟代码提供器(VCP)的虚拟化平台来便利该执行。

图2示出了根据本发明的一个或多个实施方式的通过使用代码虚 拟代码提供器(VCP)2451…245N执行与CLOUD客户205接口连接 的经典服务组件(CSC)2101…210N的平台200。平台200对应于可被 存储在远程服务器104a上的平台120。下文经典的服务组件 2101…210N被统称为CSC210,类似地,虚拟代码提供器2451…245N被统称为VCP245。平台200有效地使用定制SDK,所述定制SDK 经由CLOUD客户205和VCP245将来自用户设备102的远程进程调 用链接至CSC2101…210N

CSC2101包括远程接口2061、应用层2081、虚拟化层2121和物理 装备2151。每个CSC210代表由平台200提供的特定服务。例如,CSC 2101可以是因特网服务和相应的服务器(例如,FACEBOOK、EBAY、 POP3邮件、TWITTER、AMAZON、SMS、FTP、HTTP等),CSC2102可以是提供传统本地数据信息处理(例如,图像渲染、代码编译、数 据分析、数据存储等)的计算机。

物理装备2151或机器(CPU、存储器、网络路由器等)在虚拟化 层2121被虚拟化以进行处理并存储应用层2081可用的资源。虚拟化在 单个计算机中建立了冗余和增加的操作带宽,在多个机器被虚拟化的 实施方式中更甚。在这些实施方式中,处理工作量也可基于物理位置 的优先级和独立性被分配给各个装备。

应用层2081允许虚拟化机器上的诸如数据库操作(例如,存储账 户档案、入库数据等)的程序和功能的执行运行时间。远程接口层2061包括代码以访问网页服务器和利用API。远程接口层2061与CLOUD 客户205(例如,瘦客户、网页浏览器、移动应用程序、终端仿真器 程序等)通信。

CLOUD客户205便于去往和来自的VCP245的数据与应用层 2081的通信。CLOUD客户205通过呈现网页浏览器、终端仿真器或 其它客户界面简化了层接口2061、2081、2121和2151。本发明的上述 实施方式可通过使用虚拟化SDK利用CLOUD客户205以便于平台 200上的片段的远程进程调用代码生成。虚拟化SDK将VCP245生成 和提供的进程调用链接至应用层2081

VCP245生成定制SDK并且允许定制SDK可用于下载和安装至 用户设备102N。VCP245还是允许虚拟沙箱、规范化、通用语言、结 果解析、自动证书认证、简化的开放授权过程、平台维护和监视的增 强的主机式代码库。通过附加包含在程序中的多个远程进程和服务, 在将进程和应用/程序完全部署到远程服务器之前测试或“沙箱”程序 变得越来越重要。VCP245通过使用被下载至用户设备102a的定制 SDK协调片段进程调用。

从用户设备102a的角度,VCP245通过模板化语言允许由定制 SDK提供的通用编程语言使得仅需要组件参数且仅将组件参数插入 预生成的代码中。因此进程结果也能够被快速地解析。访问通过使用 预认证和存储的密钥的集中管理由平台200流线型化以访问远程服 务。预认证还通过防止用户设备102a与平台200之间传输的可能暴露 敏感信息的代码的逆向工程产生更安全的代码。VCP245也通过将进 程缩减为片段格式来规范化编程。因此,片段表示写代码的标准化方 式。

例如,5行代码来调用CLOUD中的任意进程被认为是代码规范 化。VCP245允许平台200显示实时监视和记录建立的应用程序如何 被执行(例如,使用统计、错误处理等)。平台200还使用监视来维护 各自VCP的SDK使得进程池230中的API继续改进以包括新方法、 版本和参数。

VCP2451包括进程池2301、代码解析模块2281、定制SDK生成 器2251、关联模块1241、用户数据库2321和执行引擎1261。在一些实 施方式中,单个执行引擎126可部署所有进程。在其它实施方式中, VCP2451包括片段生成器以生成片段,并且包括认证模块以验证访问 CSC210N和VCP245N的用户身份。

为了方便解释,每个VCP245以一一对应关系对应于CSC210。 然而,替换实施方式可包括不同的比率,或者单个VCP245代表由所 有CSC210提供的全部进程。根据本发明的一个或多个实施方式,VCP 245被存储在远程服务器104a上。VCP245将CSC210的平台200上 提供的远程服务减少至存储在进程池230中的有限数量的可执行的预 定远程进程。

远程进程对应于可在给定CSC210N上执行的期望动作。例如,用 于FACEBOOK的CSC2101的进程将具有发评论、发图片、链接评论 或图片、拒绝好友请求、发起好友请求、删除帖子和用户期望的其它 动作的有限进程池2301。因此给定进程池2301中的进程数量受限于与 CSC2101相关联的服务可用的动作。继续此实例,平台200中可以没 有用于将产品的评论置于FACEBOOK上的进程。然而,这种进程因 在AMAZON上可用而由平台200处理。

进程代码解析器2281分析进程的本机代码以及所需的本机SDK 和API以将代码部署到CSC210N。进程代码解析器2281通过基于与 其它参数的相对关联和在进程功能中的角色定义进程的参数分离和组 织进程。进程代码解析器2281检查在CSC210上通过接口连接和执行 进程代码所必要的SDK或API。进程代码解析器2281将相关的信息和 进程代码存储到进程池2301中。

定制SDK生成器1251接收选择数据,该选择数据指示由VCP2451提供的由用户选择用于在用户设备1021上执行的进程/函数。定制SDK 生成器1251检索部署选择的进程所必要的本机SDK。本机SDK可被 存储在VCP245或CSC210上。在一些实施方式中,本机SDK根据 定制SDK生成器1251的需要,按需从CSC210检索。

定制SDK生成器1251提取仅与所选择的进程对应的SDK代码。 所提取的SDK代码然后被集成使得跨多个本机SDK的多个进程可利 用通过仅用于所选择的进程的执行/部署的代码定制的单个SDK。定制 SDK生成器1251生成用于下载和安装至用户设备102N的定制SDK。

进程池2301存储与由远程平台200和相应的CSC210提供的每个 进程或函数相关联的所有预生成的代码。在一些实施方式中,预生成 的代码是远程应用层2081所必要的本机语言以识别预生成的代码进 程。在其它实施方式中,编程语言可以是对用于IDE的用户设备102a 而言是本地的。

片段关联模块1241经由安装在用户设备102N上的定制SDK从用 户设备102N接收对进程的调用。片段关联模块1241还协调与跨多个 VCP245的多个本机SDK和API的通信用于CSC210N的跨平台和跨 服务交互。例如,片段关联模块1241协调进程池230与相应的本机SDK (例如,EBAYSDK、TWITTERSDK、SMSSDK等)以在定制SDK 中形成组合的单个进程调用。继续该实例,通过将链接对应进程池的 进程,用户设备1021上使用定制SDK的单个进程调用可基本同时 TWEET和SMS文本发送AMAZON上出售的产品所匹配的EBAY价 格的决胜拍卖。

在一些实施方式中,片段关联模块1241还通过插入由用户输入的 参数和进程名称以通过使用相应的定制SDK建立片段来生成片段,从 而片段可从进程池2301调用相关联的进程。片段参数可通过使用GUI 输入,其中GUI包括与所选择的远程进程相关联的预定字段。片段参 数还可因之前存储在用户数据库2321中被检索获得。用户数据库2321包括用户档案、历史和所存储的用于各种服务包的证书。在其它实施 方式中,片段可在用户设备102a上本地生成。

在替换实施方式中,当片段关联模块1241例如通过简单对象访问 协议(SOAP)、表述性状态转移(REST)模型或cURL使用API调用 来调用时,生成片段。

生成的片段是用户指定的或平台200所需的编程语言。例如,用 户可具有用JAVA写的预先存在于用户设备102a上的程序。相关联的 片段将需要以JAVA语法对定制SDK和平台200进行进程调用并且在 用户设备上具有相应的库以直接将片段插入预先存在的程序中。

在实施方式中,对于认证模块,该模块从用户接收证书或使用用 户之前输入和存储的证书以访问与VCP2451相关联的CSC2101。认 证模块也可认证到平台200。用户数据库2321是用于CSC2101的给定 服务的账户数据库。在其它实施方式中,用户数据库2321是用于认证 到平台200的用户账户的集合。随后,平台200协调跨多个VCP245 和相关联的CSC210的认证。例如,登录到远程服务器(例如,TEMBOO 服务器)的平台200的用户将类似地通过使用由用户之前存储在远程 服务器104a上的预定义的证书认证到邮件服务器和EBAY账户。

最后,执行引擎1261执行从进程池2301选择的进程,将进程部署 到另一远程服务器104n或相应的CSC2101以执行远程进程。在一些 实施方式中,执行引擎1261还可将结果返回给用户数据库或用户设备 102a。在另外的实施方式中,当片段用于在用户设备102a上用定制 SDK调用被嵌入本地代码基或预先存在的程序中的进程时执行引擎 1261也执行来自进程池2301的远程进程。

图3是根据本发明的一个或多个实施方式的使用与集成开发环境 (IDE)305接口连接的图2中公开的定制SDK和虚拟代码提供器245 的概述方法300的图示。方法300利用用户设备102n上的IDE305和 存储在远程服务器104n上的VCP245。方法300将定制SDK下载至 IDE305以调用各种编程语言的远程进程和执行远程进程必要的相应 CSC210的平台。可选择的实施方式还包括下载片段。

IDE305协调本地代码基与远程代码基,并且允许本地写程序和 应用程序,但是通过使用定制SDK包括远程进程调用。在操作中,用 户设备102a显示VCP245上提供的所有可用进程包和用户选择的远 程进程。基于选择,将定制SDK返回用于安装到用户设备102N

在用户设备102N上生成片段或者将片段下载至IDE305。片段包 括参数数据和排序的进程数据以执行远程服务器104N上的远程进程 的调用。

IDE305然后将片段部署到SDK链接模块225N。通过使用定制 SDK部署片段以将片段的远程进程调用关联至相应的VCP245。

片段关联模块124N检索与所选择的进程相关联的预生成的代码 和关联的用于CSC210N的本机SDK代码。例如,对于与AMAZON 服务器对应的CSC210N,进程是购买物品,SDK链接模块225N通过 使用从片段解析的用户提交的参数,以本机语言从进程池230N检索用 于访问和执行在AMAZON服务器上购买的预生成的代码。继续此实 例,解析的用于AMAZON购买的参数将包括产品名称和序列号、用 户名、配送地址和信用卡信息。插入有参数的预生成的代码被发送给 执行引擎126N,执行引擎126N随后将远程进程部署到相应的CSC 2101

图4是根据本发明的一个或多个实施方式的生成定制SDK的方法 的流程图。该方法可由上面图1中的系统100和图2中讨论的平台200 实现。方法400生成远程进程调用和定制SDK以访问所选择的远程进 程调用。

方法400从步骤405开始,继续到步骤410,在步骤410中将与 由CSC210提供的服务相关联的进程存储到存储器(例如,进程池 230)。进程代码可以是对CSC而言唯一的本机语言。在一些实施方式 中,VCP245生成进程代码,或者替换地,进程代码可被预先生成并 且准备好用于插入参数数据。

接下来在步骤415,分析进程代码的属性。属性包括参数(例如, 变量)、编程语言类型、以及用于在CSC210上接口连接和执行进程 代码所必要的SDK或API。基于给定进程的参数和参数函数之间的对 应关系,属性还包括区别参数。例如,发送邮件进程需要例如源邮件 地址、目的邮件地址、主题、当前时间、发送时间和消息主体的参数。

接下来在步骤420,基于与提供的进程的相对关系和在CSC210 上执行进程中的角色来关联参数。在实例中,每个参数在进程中具有 特定的对应函数和与其它参数的关系。目的邮件地址被指派给进程代 码的需要与相应的消息主题和主体相关且源邮件地址为邮件作者的目 的邮件的部分。发送时间参数包括邮件何时被发送的值,由此被关联 至用于在发送邮件进程中执行的时间函数。在替换实施方式中,分析 的进程代码对各自的CSC210(例如,AMAZON、TWITTER等)的 SDK和API而言是本机的。在一些实施方式中,关系信息还包括原参 数组件的源。参数数据可由用户手动输入,有条件地基于另一进程的 结果被自动地输入(例如,存储的认证密钥),或被关联至另一进程的 参数。

在步骤425,将参数分配给进程池230中的至少一个进程。继续 之前的实例,可将源邮件地址分配给用于发送邮件的进程,以及将登 录证书分配给认证到邮件服务器的另一进程所必要的POP3服务器。

在步骤430,为进程池230中的所有进程检索用于CSC210的本 机SDK。平台200利用本机SDK将特定进程部署到CSC2101。在步 骤435,远程服务器104检索待从用户设备102N实现的期望进程的选 择。

接下来,在步骤440,从用于每个所选进程的本机SDK解析SDK 代码。在步骤445,将解析的SDK代码集成和链接至进程池中的进程 以及其它的SDK和API以在CSC210上部署进程。

在步骤450,生成定制SDK并且存储定制SDK以可用于下载至 用户设备102。方法400在步骤455结束。

图5是根据本发明的一个或多个实施方式的用特定的编程语言生 成定制SDK的方法的流程图。通过定制SDK,方法500允许用户设 备102a上的代码基很小且仅包括由用户实现的用于进程的SDK数据。 在任选实施方式中,方法500包括认证到处理定制SDK的远程进程调 用的远程编程平台200。方法500使用认证以向用户设备102N呈现之 前通过用户设备102N或其它用户设备102N-1生成和存储的定制SDK 请求。

方法500从步骤505开始,继续进入步骤510,在步骤510,远程 平台200接收远程进程和编程语言选择。在一些实施方式中,所选择 的语言对应于IDE305的编程语言。在一些实施方式中,用户账户被 认证且与之前存储的用于CSC210的各种远程服务(例如,数据存储、 邮件、网站、社交媒体、佣金、银行等)的密钥和证书相关联。在一 些实施方式中,平台200包括共同使用的例程、进程、SDK和API的 档案历史的集中用户账户。为平台200和与相关联的VCP245和CSC 210对应的用户数据库232记录和更新档案历史。

方法500继续进入步骤515,在步骤515,比较远程进程的选择与 之前用于生成定制SDK的一列选择。如果在步骤520,进程的组合之 前被选择,则方法500进入步骤525,检索之前生成的定制SDK。通 过检索之前生成的定制SDK,不重复生成相同的定制SDK,并且将计 算资源保存到VCP245。然而,如果在步骤520,方法500确定选择 的进程的组合之前未被用于生成定制SDK,则方法500进入步骤530。

在步骤545,基于上面讨论的方法400生成定制SDK。接下来, 在步骤550,判断生成的定制SDK(替换地,检索的定制SDK)是否 可与步骤510接收的编程语言选择兼容。如果在步骤550确定定制 SDK不可兼容,则方法50进入步骤555。然而,如果方法500确定定 制SDK可兼容,则方法500进入步骤560。

在步骤555,将定制SDK转换为可与编程语言选择兼容。转换可 将定制SDK链接至用于所选语言的存储在VCP245或替换地存储在 基于用户设备102的本地代码中的附加支持库以可操作为通过使用定 制SDK从用户设备102调用所选择的远程进程。方法然后进入步骤 560。

作为一个实例,支持库被安装在本地代码基中以通过使用元数据 (例如,XML)在编程语言之间转换以用JAVA标记用于进程的代码。 元数据描述随后通过使用任意编程语言的相应元数据直接生成为代码 片段的进程。在一些实施方式中,支持库位于定制SDK中。

在步骤560,存储定制SDK并将定制SDK呈现给用户设备102 用于下载和安装到本地代码基。方法500在步骤565结束。

图6是根据本发明的一个或多个实施方式的使用定制SDK的用于 各种编程语言的虚拟化进程调用代码生成器的方法600的流程图。方 法600应用定制SDK并且通过利用为用户设备102a和/或IDE305裁 制的片段允许各种编程语言之间的转换以调用CSC210上的远程进 程。片段和定制SDK通过使用专用于用户选择的进程的减少的代码集 占据用户设备上最小的内存空间。

方法600从步骤605开始,继续进入步骤610,在步骤610中为 用户设备102a移植和显示远程进程的集合。在一些实施方式中,用户 设备102a必须登录到远程平台200和认证模块使得用户账户访问远程 进程。

接下来在步骤615,选择至少一个远程进程。在一些实施方式中, 通过用户设备102a上的图形用户界面(GUI)选择远程进程。在其它 实施方式中,通过以下载至用户设备102a的定制SDK中的函数来调 用远程进程从而指定远程进程。

在步骤635,如上面描述的方法400详细所述,在远程服务器104N上生成定制SDK。定制SDK包括仅由用户选择的那些进程的SDK数 据。在一些实施方式中,所选择的进程是那些待在用户设备上被调用 的进程。在其它实施方式中,所选择的进程多于待被调用的进程,但 是少于VCP245所提供的进程/函数和进程包的总量。

在步骤640,将定制SDK下载至用户设备102N。在步骤645,将 定制SDK安装到IDE305或用户设备102N上的本地开发环境。

在步骤650,用户设备102a上的程序(例如,IDE305)本地触 发将具有相关联的进程参数的所选远程进程部署到远程平台200。部 署利用片段和定制SDK调用远程平台200上的合适的VCP245和进 程池230。

在步骤655,远程服务器104将进程部署到相应的CSC210。为 了部署,从片段解析参数。解析包括将参数引向通过定制SDK和片段 关联模块124链接的来自进程池230的所选进程的VCP。将解析的参 数插入预生成的代码中。在一些实施方式中,预生成的代码是CSC210 的本机语言并且位于进程池230中。方法600然后在步骤660结束。

图7是根据本发明的一个或多个实施方式的示例性计算服务器内 的模块的简化框图。计算机系统700包括与前述实施方式中的结构基 本类似的包括服务器和电子设备的结构。

如本文中所述的,用于为远程进程调用生成定制SDK的方法和系 统的各个实施方式可在一个或多个计算机系统上执行,所述一个或多 个计算机可与各种其它设备交互。一个这种计算机系统是图7所示的 计算机系统700,计算机系统700可在各个实施方式中实现图1至图6 中所示的任一元件或功能。在各个实施方式中,计算机系统700可被 配置为实现上述的方法。计算机系统700可用于实现上述实施方式的 任意其它系统、设备、元件、功能或方法。在所示实施方式中,计算 机系统700可被配置为在各个实施方式中作为处理器可执行的可执行 程序指令722(例如,处理器710可执行的程序指令)实现方法400、 500和600。

在所示实施方式中,计算机系统700包括经由输入/输出(I/O) 接口730耦接至系统存储器720的一个或多个处理器710a-710n。计算 机系统700还包括耦接至I/O接口730的网络接口740、以及一个或多 个输入/输出设备760,例如光标控制设备760、键盘770和显示器780。 在一些实施方式中,键盘770可以是触摸屏输入设备。

在各个实施方式中,任一组件可由系统利用以路由和执行如上所 述的远程进程调用。在各个实施方式中,用户接口可在显示器780上 生成和显示。在一些情况下,可想到,实施方式可使用计算机系统700 的单个示例实现,而在其它实施方式中多个这种系统、或构成计算机 系统700的多个节点可被配置为主持各个实施方式的一部分或示例。 例如,在一个实施方式中,一些元件可经由计算机系统700的一个或 多个节点实现,所述一个或多个节点不同于实现其它元件的节点。在 另一实施方式中,多个节点可以分布式实现计算机系统700。

在不同的实施方式中,计算机系统700可以是包括但不限于个人 计算机系统、主框架计算机系统、手持式计算机、工作站、网络计算 机、应用服务器、存储设备、外围设备(如变换器、调制解调器、路 由器)、或通常任意类型的计算或电子设备的多种类型的设备中的一 种。

在各种实施方式中,计算机系统700可以是包括一个处理器710 的单处理器系统、包括若干处理器710(例如,两个、四个、八个或 其它合适的数量)的多处理器系统。包括一个处理器710的单处理器 系统可划分单个处理器的功能以表现为用于处理和执行程序的同步数 据的多个处理器。处理器710可以是能够执行指令的任意合适的处理 器。例如,在各个实施方式中,处理器610可以是实现各种指令集体 系结构(ISA)中的任一种的通用处理器或嵌入式处理器。在多处理 器系统中,处理器710中的每个可通常地,但非必要,实现相同的ISA。

系统存储器720可被配置为存储处理器710可访问的程序指令 722和/或数据732。在各个实施方式中,系统存储器720可使用任意 合适的存储器技术实现,存储器技术例如,静态随机存取存储器 (SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或 任意其它类型存储器。在所示的实施方式中,实现上述实施方式的任 一元件的程序指令和数据可被存储在系统存储器720中。在其它实施 方式中,程序指令和/或数据可被接收、发送或存储在不同类型的计算 机可访问媒介上或与系统存储器720或计算机系统700分离的类似媒 介上。

在一个实施方式中,I/O接口730可被配置为协调处理器710、系 统存储器720和设备中的任意外围设备之间的业务,包括网络接口740 或其它外围接口,例如输入/输出设备750。在一些实施方式中,I/O 接口730可执行任意必要的协议、时序或其它数据转变以将来自一个 组件(例如,系统存储器720)的数据信号转换成适于由另一组件(例 如,处理器710)使用的格式。在一些实施方式中,I/O接口730可包 括对通过各种类型的外围总线附接的设备的支持,例如外围组件互连 (PCI)总线标准或通用串行总线(USB)标准的变型。在一些实施方 式中,I/O接口730的功能可被划分成两个或更多个单独的组件,例如, 北桥和南桥。此外,在一些实施方式中,I/O接口730的一些或所有功 能(例如,对系统存储器720的接口)可被直接并到处理器710中。

网络接口740可被配置为允许在计算机系统700与附接至网络(例 如网络790)的其它设备(例如,一个或多个外部系统)之间或计算 机系统700的节点之间交换数据。在各个实施方式中,网络790可包 括一个或多个网络,包括但不限于局域网(LAN)(例如,以太网或企 业网)、广域网(WAN)(例如,因特网)、无线数据网、蜂窝网、Wi-Fi、 一些其它电子数据网、或它们的一些组合。在各个实施方式中,网络 接口740可经由有线或无线通用数据网络(例如,任意合适类型的以 太网)、经由电信/电话网络(例如,模拟语言网络或数字光纤网络)、 经由存储区域网络(例如,光纤通道SAN)、或经由任意其它合适类 型的网络和/或协议支持通信。

在一些实施方式中,输入/输出设备750可包括一个或多个显示终 端、键盘、小键盘、触摸板、触摸屏、扫描设备、语音或光学识别设 备、或适于通过一个或多个计算机系统700输入或访问数据的任意其 它设备。多个输入/输出设备750可存在于计算机系统700中或者可分 布在计算机系统700的各个节点上。在一些实施方式中,类似的输入/ 输出设备可与计算机系统700分离并且可通过有线或无线连接(例如, 通过网络接口740)与计算机系统700的一个或多个节点交互。

在一些实施方式中,所示的计算机系统可实现上述任一方法,例 如图3至图6的流程图所示的方法。在其它实施方式中,可包括不同 的元件和数据。

本领域技术人员将理解,计算机系统700仅是说明性的并且并非 旨在限制实施方式的范围。具体地,计算机系统和设备可包括可执行 各个实施方式所指示的功能的硬件或软件的任意组合,包括计算机、 网络设备、因特网装置、智能电话、平板电脑、PDA、无线电话、寻 呼机等。计算机系统700还可连接至未示出的其它设备,或者可取代 地作为独立系统操作。另外,在一些实施方式中,所示组件提供的功 能可被组合到更少的组件中或分布到附加的组件中。类似地,在一些 实施方式中,可能未提供所示组件中的一些的功能和/或其它附加的功 能可能是可用的。

本领域技术人员还将理解,尽管各个项被说明为在被使用时存储 在存储器或存储设备中,但是这些项或它们的一部分可在存储器与其 它存储设备之间转移以用于存储器管理和数据完整性目的。替换地, 在其它实施方式中,一些或所有软件组件可在另一设备的存储器中执 行并且经由计算机间通信与所示的计算机系统通信。一些或所有系统 组件或数据结构还可(例如,作为指令或结构数据)被存储在计算机 可存取介质或便携式物体中以由合适的驱动器读取,它们的各个实施 例已在上面描述。在一些实施方式中,存储在与计算机系统700分离 的计算机可存取介质上的指令可经由传输媒介或通过通信介质(例如, 网络和/或无线链路)传送的信号(例如,电信号、电磁信号或数字信 号)被发送给计算机系统700。各个实施方式还可包括基于计算机可 存取介质或经由通信介质接收、发送或存储根据上面描述实现的指令 和/或数据。通常,计算机可存取介质可包括存储介质或存储器介质, 例如磁性或光学媒介(例如磁盘或DVD/CD-ROM)、易失性或非易失 性媒介(例如,RAM(例如SDRAM、DDR、RDRAM、SRAM等)、 ROM等。

所生成的用于插入JAVA程序调用中的示例性片段,EMBOO定 制SDK包括:

在上面的实施例中,片段包括能够被插入任意JAVA程序中的5 行代码。从用于“发起Temboo会话”的代码开始并且以用于“执行 Choreo”的代码结束。这些行代码能够在本地IDE中作为文本被编辑 并且在将来被编辑,只要用户知道他或她想要叫的choreos的名字。 “packageTembooDemoECOs”行通过导入特定类QueryArticles调用 定制SDK。上面的实施例能够安装包括用于QueryArticle的代码的下 面的示例性SDK:

通过安装上面的示例性定制SDK,片段现在可执行对远程进程的 调用。代码片段链接至定制SDK代码以通过相关联的VCP245调用 远程服务器104a上的实际进程。在一些实施方式中,SDK包括确保 输入的参数是正确的格式、然后调用相应的远程进程。在上面的实施 例中,“choreo”是远程进程在用户设备102a和/或本地IDE305上的 图形表示。

在不同的实施方式中,本文描述的方法可以软件、硬件或它们的 组合实现。另外,可改变方法的次序,可添加、重新排序、组合、省 略或以其它方式修改各种元件。本文描述的所有实施例以非限制的方 式给出。对本领域技术人员显而易见的是可对本公开进行各种修改和 改变。已经在具体实施方式的背景下描述了根据实施方式的实现。这 些实施方式是说明性的而非限制性的。许多变型、修改、添加和改进 是可行的。由此,可为本文作为单个示例描述的组件提供多个示例。 各个组件、操作和数据存储之间的边界一定程度上是任意的,具体的 操作是在特定说明性配置的背景下被说明的。可预想到功能的其它分 配,并且其落入下面权利要求的范围内。最后,示例性配置中的作为 独立组件给出的结构和功能可作为组合结构或组件实现。这些和其它 变型、修改、添加和改进可落入下面权利要求限定的实施方式的范围 内。

尽管前面是针对本发明的实施方式,但是在不偏离本发明的基本 范围的情况下可想到本发明的其它实施方式,本发明的范围由所附权 利要求确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号