用于代码虚拟化和远程进程调用生成的方法和装置与流程

文档序号:18684850发布日期:2019-09-13 23:48阅读:213来源:国知局
用于代码虚拟化和远程进程调用生成的方法和装置与流程

本发明的实施方式一般涉及用于进程调用代码生成的方法和系统。



背景技术:

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

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

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

因此,本技术领域需要集成的本地和远程编程环境。



技术实现要素:

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

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

附图说明

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

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

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

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

图4是根据本发明的一个或多个示例性实施方式的建立进程调用片段的方法的流程图;

图5是根据本发明的一个或多个示例性实施方式的用附加的远程进程扩展本地开发环境的方法的流程图;

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

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

具体实施方式

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

本文所公开的实施方式涉及远程服务器上(例如,“在CLOUD中”)的代码库,其中用户可远程选择进程然后下载相应的片段和/或SDK以从本地应用程序或软件程序访问进程。片段允许远程服务器上的远程进程调用以在服务器上执行进程或将进程部署到不同的远程服务器或远程机。用户设备使用虚拟化SDK使得片段可与执行计算机上的远程平台通信。远程平台包括附加服务的虚拟化组件(例如,编译器、邮件、AMAZON、TWITTER、EBAY、DROPBOX等)以及用于服务的相应SDK和API。计算平台包括硬件体系结构和软件框架(包括应用程序框架),其中它们的结合允许软件运行。典型的平台包括计算机体系结构、操作系统和运行时库。

典型的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)中用于用户设备(102a…102n)上的本地片段生成。存储器(114a…114n)还可存储用户接口模块、用户档案/账户数据库、进程集、SDK和相关参数以链接和执行跨网络110上的其它服务器104n的进程(例如,FACEBOOK、TWITTER、邮件、SMS、MMS、FTP等)。

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

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

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

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

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

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

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

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

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

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

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

VCP 2451包括进程池2301、认证模块2281、SDK链接模块2251、片段生成器1241、用户数据库2321和执行引擎1261。在一些实施方式中,单个执行引擎126可部署所有进程。

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

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

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

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

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

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

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

SDK链接模块2251由代码构成以允许认证模块2281与网络110交互并且与用户设备102a和API通信以形成各种远程进程包。SDK链接模块2251还协调跨多个VCP 245与多个SDK和API的通信以进行跨平台和跨服务交互。例如,SDK链接模块225协调进程池230和相应的SDK(例如,EBAY SDK、TWITTER SDK、SMS SDK等)以形成虚拟化SDK中的组合的单个进程调用。继续此实例,通过链接来自各自进程池的进程,具有虚拟化SDK的单个进程调用可基本同时TWEET和SMS文本发送AMAZON上出售的产品所匹配的EBAY价格的决胜拍卖。

最后,执行引擎1261执行从进程池2301选择的进程,将进程部署到另一远程服务器104n或相应的CSC 2101以执行远程进程。在一些实施方式中,执行引擎1261还可将结果返回给用户数据库或用户设备102a。在另外的实施方式中,当建立的片段用于调用被嵌入本地代码基或用户设备102a上预先存在的程序中的进程时执行引擎1261也执行来自进程池2301的远程进程。实施方式进一步需要执行引擎1261与SDK链接模块2251一起工作以使用不同的SDK协调多个VCP 245之间的通信,例如以链接和执行若干远程进程调用。

图3是根据本发明的一个或多个实施方式的使用与集成开发环境(IDE)305接口连接的图2中公开的虚拟代码供应商245的概述方法300的图示。方法300利用用户设备102n上的IDE 305和存储在远程服务器104n上的VCP 245。方法300下载所选择的对IDE 305而言本机的编程语言的语言片段以调用各种编程语言的远程进程和执行远程进程必要的相应CSC 210的平台。在所描述的实施方式中示出了与单个VCP 245N和CSC 210N对应的单个示例性片段,然而其他实施方式包括多个片段和相应的VCP 245和CSC 210。

IDE 305协调本地代码基与远程代码基,并且允许本地写程序和应用程序,但是通过使用虚拟化SDK包括远程进程调用。在一些实施方式中,虚拟化SDK可被下载和存储在用户设备102n中。

向用户设备102a显示VCP 245N提供的可用进程包,并且选择远程进程。在一些实施方式中,IDE 305的用户可具有以特定编程语言写的现有程序。在这种实施方式中,用户还为片段选择与现有程序相同的编程语言。

然后将片段下载至IDE 305。在一些实施方式中,片段由片段生成器124N生成。在其它实施方式中,片段可在之前生成并且通过认证到位于VCP 245N中的用户账户被重新调用。在一些实施方式中,片段由IDE 305中的用户编辑以包括用于进程的参数。替换地,参数可由用户在从进程池230N选择进程时提交,使得片段通过已经插入片段的参数被下载。

IDE 305然后将片段部署到SDK链接模块225N。在一些实施方式中,通过使用虚拟化SDK部署片段以将片段的远程进程调用关联至相应的VCP 245。在其它实施方式中,将所部署的片段直接部署到相应的VCP 245。

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

图4是根据本发明的一个或多个实施方式的建立进程调用片段的方法的流程图。该方法可由上面图1中的系统100和图2中讨论的平台200实现。方法400生成远程进程调用。

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

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

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

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

在步骤430,将进程池320中的进程链接至虚拟化SDK。虚拟化SDK可被下载至用户设备以调用进程池230中的进程。在一些实施方式中,调用进程包括从片段接收被插入重新调用的存储的进程代码中的参数数据、以及通过使用用于链接至虚拟化SDK的CSC 210的API和SDK在相应的CSC 210上执行具有插入的参数的进程代码。在这些实施方式中,还将必需的API和SDK链接至进程池230中的相关联的进程代码。

在步骤435,方法400通过使用用于所选语言的预先存在的语言模板以多种编程语言生成用于进程池230中的每个进程的进程调用片段。方法400然后在步骤440结束。

图5是根据本发明的一个或多个实施方式的用附加的远程进程扩展本地开发环境的方法的流程图。通过虚拟化SDK,方法500允许用户设备102a上的代码基很小且仅包括由用户实现的SDK。方法500包括认证到处理虚拟化SDK的远程进程调用的远程编程平台200。

方法500从步骤505开始,继续进入步骤510,在步骤510,用户设备102a登录到远程平台200。用户账户被认证且与之前存储的用于CSC 210的各种远程服务(例如,数据存储、邮件、网站、社交媒体、佣金、银行等)的密钥和证书相关联。认证模块228彼此协调以认证到VCP 245的相关联的各个CSC中。在一些实施方式中,平台200包括共同使用的例程、进程、SDK和API的档案历史的集中用户账户。为平台200和与相关联的VCP 245和CSC 210对应的用户数据库232记录和更新档案历史。

方法500继续进入步骤515,在步骤515,将远程进程移植和/或显示给用户设备102a。在实施方式中,用户设备102a具有显示器,可用的进程将经由IDE 305被显示给用户。进程池230的远程进程可被显示为与为特定CSC 210提供的动作对应的进程包。例如,与TWITTER对应的CSC 210将包括用于使用FOLLOWING函数的所有子动作的FOLLOW包(例如,FOLLOW、停止FOLLOW、FOLLOW状态等)、以及用于使用TWEET的子函数的TWEET包。

方法500继续进入步骤520,在步骤520,从远程服务器104a请求与所选择的远程进程相关联的虚拟化SDK。虚拟化SDK可包括所有远程进程调用或被定制为包括处理对所选进程的调用的代码。在一些实施方式中,虚拟化SDK特定于用户设备102a上的编程语言。虚拟化SDK提供具有所有必要辅助/工具的代码片段以调用在相应VCP 245上选择的远程进程。

在无显示器可用的实施方式中,方法500可自动下载所选进程的相应SDK。虚拟化SDK经由SDK链接模块225允许远程进程调用,SDK链接模块225将来自进程池的进程链接至与CSC 210的至少一个远程服务相关联的相应SDK和API。例如,在CSC 210为GOOGLE的情况下,虚拟化SDK包括到GOOGLE SDK和API的链接,GOOGLE SDK和API具有用于运行GOOGLE搜索和将来自搜索的结果返回给用于特定请求的具体计算机的命令。

在步骤525,将相关联的虚拟化SDK下载和安装到本地IDE 305使得IDE 305访问远程进程并且基于用户设备102a集成虚拟化SDK与现有本地代码。虚拟化SDK是特定语言的本地代码库,开发者需要将虚拟化SDK安装在她/他的本地代码基中(然后安装在所部署的用于生产的代码中)。

接下来在步骤530,下载的虚拟化SDK用于通过使用用户在IDE 305中输入的参数允许本地程序(例如,在用户设备102a上建立的程序)调用和执行服务器104a上的相应远程进程。参数可经由通过图形用户界面呈现给用户的预定义字段输入。预定义字段限制和简化建立远程调用片段所必要的信息。参数的数据然后被发送给远程服务器104a并且被插入到包括远程进程的进程池230中的预生成代码中。

如下面在图6中进一步讨论的,虚拟化SDK还为生成的片段提供支持。片段以源于用户设备102的操作和/或编程环境(例如,IDE 305)的所选编程语言生成。

在步骤535,远程服务器104a通过VCP 245和执行引擎125将关联的远程进程部署到与远程进程和VCP 245相关联的CSC 210。

在步骤540,还在IDE 305中显示来自远程服务器104a的所执行的进程的实时结果。因此,成功的FACEBOOK贴可向远程服务器104a返回消息,该服务器104a处理响应以通知IDE 305。在一些实施方式中,结果可直接从与进程调用相关联的CSC 210返回。例如,来自FACEBOOK贴的结果可被直接返回给IDE 305。方法500然后在步骤545结束。

图6是根据本发明的一个或多个实施方式的用于各种编程语言的虚拟化进程调用代码生成器的方法600的流程图。方法600应用虚拟化SDK并且通过生成为用户设备102a和/或IDE 305定制的片段允许各种编程语言之间的转换以调用CSC 210上的远程进程。在一些实施方式中,方法600在用虚拟化SDK调用远程进程时是方法500的继续。

方法600从步骤605开始,继续进入步骤610,在步骤610中为用户设备102a移植远程进程的集合。在一些实施方式中,用户设备102a必须登录到远程平台200使得用户账户访问远程进程。上面关于图5进一步详细描述了登录过程。

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

在步骤620,用户在用户设备102a中输入用于所选进程的参数。参数可包括用于服务的认证密钥、时序信息、负荷数据、文件扩展名和成功执行远程进程所必要的其它信息。参数被插入到与远程进程相关生成的片段中。在一些实施方式中,参数由用户经由本地IDE 305输入,在其它实施方式中,一些参数输入可通过使用远程服务器104a上的存储的证书或数据远程地完成。IDE 305与存储在远程服务器104a上的平台200通信。

在步骤625,用户设备102a上的程序(例如,IDE 305)本地触发将具有相关联的进程参数的所选远程进程部署到远程平台200。部署利用片段和虚拟化SDK以调用远程平台200上的合适的VCP 245和进程池230。

在步骤626,从片段解析参数。解析包括将参数引向通过虚拟化SDK链接的所选进程的VCP。

在步骤628,将解析的参数插入预生成的代码中。在一些实施方式中,预生成的代码是CSC 210的本机语言并且位于进程池230中。

在步骤630,在实际的远程环境(例如,CSC 210)中执行进程。例如,使用AMAZON服务器进行购买或发送POP3邮件等。然而,替换实施方式可在测试环境中执行所选的进程以用于在将进程和程序完全部署到远程服务器之前测试和“沙箱”程序。通过在程序中包括多个远程进程和服务,沙箱变得越来越重要。

接下来在步骤635,向用户IDE实时显示结果。在一些实施方式中,被部署在CSC 210上的进程调用的结果还通过使用远程平台200向VCP 245提供监视和维护。处理应用程序的片段使得本机代码通过使用来自片段的参数数据在远程服务器(例如,CSC 210)上被执行。在该实施方式中,平台200然后监视和记录应用程序以将例如使用和错误数据的统计返回给IDE 305并且更新VCP 245中的API和SDK。然后将更新集成到进程池235中的相应的预生成代码中以减少后续的运行时间错误。

在步骤640,通过相应的VCP 245以第一默认编程语言生成用于触发所选的远程进程调用的代码片段。在一些实施方式中,可在将所选的远程进程部署到CSC 210的同时生成代码片段。在其它实施方式中可在不需要部署或执行进程的情况下生成代码片段。

在一些实施方式中,代码片段可调用/访问也在网络110上的远程服务。例如,可在同时用于TWEET用户特定消息和使用与用户账户相关联的预先认证的密钥/证书在FOURSQUARE上签到的ECLIPSE来写程序。为了访问这些服务,片段生成器生成待被插入ECLIPSE的代码片段以调用远程TWITTER和FOURSQUARE服务并执行前述进程。如将在下面进一步描述的,在一些实施方式中来自IDE的参数然后可被检索以经由片段生成器124创建片段格式。

在一些实施方式中,代码片段还可包括执行时序信息。代码片段由用于具体的编程语言的预定义模板在用户设备102a上形成,用户设备102a通过使用安装的虚拟化SDK将进程调用传输至远程平台200。

在步骤645,方法600确定用户是否已经在IDE 305中选择了不同的编程语言。在一些实施方式中,方法600可通过比较用户输入的现有的编程代码以及经由平台200存储的用户档案偏好或历史检测期望的编程语言。如果方法600确定未选择其他语言或者默认语言为正确的语言,则在步骤655将片段发送给用户设备102a。然而,如果方法600确定选择或检测到另一语言,则在步骤650使用用于相应的所选语言的模板重新生成或重新格式化片段。在一些实施方式中,模板用之前存储在用户设备102a或服务器104a上的参数(例如,变量、对远程API的访问密钥、令牌、证书等)补充用户输入的参数。

方法还继续从步骤650进入步骤655并且向用户设备102a和/或IDE 305发送新片段。接下来,在步骤660,将片段插入本地代码基使得除了在机器上(例如,仅在用户设备102a上)本地运行的代码之外用户写的本地程序可在网络110上调用服务器104a上的远程进程。在一些实施方式中,本地代码基可访问其他网络机器。在其他实施方式中,本地代码基可位于开发者工作站或已经(直接或通过代码管理系统,如GITHUB)被部署在服务器上。

在步骤665,可在用户IDE中或在用户选择的本机开发环境中执行本地代码和远程进程调用。方法600然后在步骤670结束。

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

如本文中所述的,用于片段生成和远程进程调用的方法和系统的各个实施方式可在一个或多个计算机系统上执行,所述一个或多个计算机可与各种其它设备交互。一个这种计算机系统是图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的名字。“package TembooDemoECOs”行通过导入特定类QueryArticles调用虚拟化SDK。上面的实施例能够安装包括用于QueryArticle的代码的示例性SDK:

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

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

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1