CN105765527B - 用于定制的软件开发包(sdk)的方法和装置 - Google Patents

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

Info

Publication number
CN105765527B
CN105765527B CN201480038518.2A CN201480038518A CN105765527B CN 105765527 B CN105765527 B CN 105765527B CN 201480038518 A CN201480038518 A CN 201480038518A CN 105765527 B CN105765527 B CN 105765527B
Authority
CN
China
Prior art keywords
sdk
code
development
customization
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480038518.2A
Other languages
English (en)
Other versions
CN105765527A (zh
Inventor
特里萨拉·坎达利亚
吉恩-巴普蒂斯特·莱奥内利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ciambella Ltd
Original Assignee
Ciambella Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ciambella Ltd filed Critical Ciambella Ltd
Publication of CN105765527A publication Critical patent/CN105765527A/zh
Application granted granted Critical
Publication of CN105765527B publication Critical patent/CN105765527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer Hardware Design (AREA)
  • Telephonic Communication Services (AREA)

Abstract

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

Description

用于定制的软件开发包(SDK)的方法和装置
背景技术
计算机编程语言的发展和集成扩展了现有语言的许多能力。每种语言提供了相应大小、执行速度和在平台和设备中的各种功能的具体优点和缺点。正因为如此,一些特定语言只能利用相应的设备进行工作并且用户常常必须熟悉或甚至精通多种编程语言。另外,构建现代应用程序的本质迫使开发者学习多种语言。从而写应用程序不再限于使用一种编程语言。集成和学习多种语言是项困难的负担,常常需要几个月或几年来训练程序员/开发者达到足够的编码熟练度。
应用程序可由各种语言构成并且如果被部署在服务器上,则需要程序员学习前端语言、服务器语言和后端语言。前端技术也由若干不同的语言(HTML、Javascript等)构成以进一步增加了编程复杂度。
另外,更多的计算发生在网络和/或因特网上(即,“云计算”),用各种软件开发包(SDK)和应用编程接口(API)进行编程对开发者来说是繁琐的必要。新兴的服务,例如社交媒体(TWITTER、FACEBOOK等)、数据存储(DROPBOX、CLOUD DRIVE等)和金融交易(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被统称为CSC 210,类似地,虚拟代码提供器2451…245N被统称为VCP 245。平台200有效地使用定制SDK,所述定制SDK经由CLOUD客户205和VCP 245将来自用户设备102的远程进程调用链接至CSC 2101…210N
CSC 2101包括远程接口2061、应用层2081、虚拟化层2121和物理装备2151。每个CSC210代表由平台200提供的特定服务。例如,CSC2101可以是因特网服务和相应的服务器(例如,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生成定制SDK并且允许定制SDK可用于下载和安装至用户设备102N。VCP245还是允许虚拟沙箱、规范化、通用语言、结果解析、自动证书认证、简化的开放授权过程、平台维护和监视的增强的主机式代码库。通过附加包含在程序中的多个远程进程和服务,在将进程和应用/程序完全部署到远程服务器之前测试或“沙箱”程序变得越来越重要。VCP245通过使用被下载至用户设备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 2451包括片段生成器以生成片段,并且包括认证模块以验证访问CSC210N和VCP 245N的用户身份。
为了方便解释,每个VCP 245以一一对应关系对应于CSC 210。然而,替换实施方式可包括不同的比率,或者单个VCP 245代表由所有CSC 210提供的全部进程。根据本发明的一个或多个实施方式,VCP245被存储在远程服务器104a上。VCP 245将CSC 210的平台200上提供的远程服务减少至存储在进程池230中的有限数量的可执行的预定远程进程。
远程进程对应于可在给定CSC 210N上执行的期望动作。例如,用于FACEBOOK的CSC2101的进程将具有发评论、发图片、链接评论或图片、拒绝好友请求、发起好友请求、删除帖子和用户期望的其它动作的有限进程池2301。因此给定进程池2301中的进程数量受限于与CSC 2101相关联的服务可用的动作。继续此实例,平台200中可以没有用于将产品的评论置于FACEBOOK上的进程。然而,这种进程因在AMAZON上可用而由平台200处理。
进程代码解析器2281分析进程的本机代码以及所需的本机SDK和API以将代码部署到CSC 210N。进程代码解析器2281通过基于与其它参数的相对关联和在进程功能中的角色定义进程的参数分离和组织进程。进程代码解析器2281检查在CSC 210上通过接口连接和执行进程代码所必要的SDK或API。进程代码解析器2281将相关的信息和进程代码存储到进程池2301中。
定制SDK生成器1251接收选择数据,该选择数据指示由VCP 2451提供的由用户选择用于在用户设备1021上执行的进程/函数。定制SDK生成器1251检索部署选择的进程所必要的本机SDK。本机SDK可被存储在VCP 245或CSC 210上。在一些实施方式中,本机SDK根据定制SDK生成器1251的需要,按需从CSC 210检索。
定制SDK生成器1251提取仅与所选择的进程对应的SDK代码。所提取的SDK代码然后被集成使得跨多个本机SDK的多个进程可利用通过仅用于所选择的进程的执行/部署的代码定制的单个SDK。定制SDK生成器1251生成用于下载和安装至用户设备102N的定制SDK。
进程池2301存储与由远程平台200和相应的CSC 210提供的每个进程或函数相关联的所有预生成的代码。在一些实施方式中,预生成的代码是远程应用层2081所必要的本机语言以识别预生成的代码进程。在其它实施方式中,编程语言可以是对用于IDE的用户设备102a而言是本地的。
片段关联模块1241经由安装在用户设备102N上的定制SDK从用户设备102N接收对进程的调用。片段关联模块1241还协调与跨多个VCP 245的多个本机SDK和API的通信用于CSC 210N的跨平台和跨服务交互。例如,片段关联模块1241协调进程池230与相应的本机SDK(例如,EBAY SDK、TWITTER SDK、SMS SDK等)以在定制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进行进程调用并且在用户设备上具有相应的库以直接将片段插入预先存在的程序中。
在实施方式中,对于认证模块,该模块从用户接收证书或使用用户之前输入和存储的证书以访问与VCP 2451相关联的CSC 2101。认证模块也可认证到平台200。用户数据库2321是用于CSC 2101的给定服务的账户数据库。在其它实施方式中,用户数据库2321是用于认证到平台200的用户账户的集合。随后,平台200协调跨多个VCP 245和相关联的CSC 210的认证。例如,登录到远程服务器(例如,TEMBOO服务器)的平台200的用户将类似地通过使用由用户之前存储在远程服务器104a上的预定义的证书认证到邮件服务器和EBAY账户。
最后,执行引擎1261执行从进程池2301选择的进程,将进程部署到另一远程服务器104n或相应的CSC 2101以执行远程进程。在一些实施方式中,执行引擎1261还可将结果返回给用户数据库或用户设备102a。在另外的实施方式中,当片段用于在用户设备102a上用定制SDK调用被嵌入本地代码基或预先存在的程序中的进程时执行引擎1261也执行来自进程池2301的远程进程。
图3是根据本发明的一个或多个实施方式的使用与集成开发环境(IDE)305接口连接的图2中公开的定制SDK和虚拟代码提供器245的概述方法300的图示。方法300利用用户设备102n上的IDE 305和存储在远程服务器104n上的VCP 245。方法300将定制SDK下载至IDE 305以调用各种编程语言的远程进程和执行远程进程必要的相应CSC 210的平台。可选择的实施方式还包括下载片段。
IDE 305协调本地代码基与远程代码基,并且允许本地写程序和应用程序,但是通过使用定制SDK包括远程进程调用。在操作中,用户设备102a显示VCP 245上提供的所有可用进程包和用户选择的远程进程。基于选择,将定制SDK返回用于安装到用户设备102N
在用户设备102N上生成片段或者将片段下载至IDE 305。片段包括参数数据和排序的进程数据以执行远程服务器104N上的远程进程的调用。
IDE 305然后将片段部署到SDK链接模块225N。通过使用定制SDK部署片段以将片段的远程进程调用关联至相应的VCP 245。
片段关联模块124N检索与所选择的进程相关联的预生成的代码和关联的用于CSC210N的本机SDK代码。例如,对于与AMAZON服务器对应的CSC 210N,进程是购买物品,SDK链接模块225N通过使用从片段解析的用户提交的参数,以本机语言从进程池230N检索用于访问和执行在AMAZON服务器上购买的预生成的代码。继续此实例,解析的用于AMAZON购买的参数将包括产品名称和序列号、用户名、配送地址和信用卡信息。插入有参数的预生成的代码被发送给执行引擎126N,执行引擎126N随后将远程进程部署到相应的CSC2101
图4是根据本发明的一个或多个实施方式的生成定制SDK的方法的流程图。该方法可由上面图1中的系统100和图2中讨论的平台200实现。方法400生成远程进程调用和定制SDK以访问所选择的远程进程调用。
方法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,为进程池230中的所有进程检索用于CSC 210的本机SDK。平台200利用本机SDK将特定进程部署到CSC 2101。在步骤435,远程服务器104检索待从用户设备102N实现的期望进程的选择。
接下来,在步骤440,从用于每个所选进程的本机SDK解析SDK代码。在步骤445,将解析的SDK代码集成和链接至进程池中的进程以及其它的SDK和API以在CSC 210上部署进程。
在步骤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接收远程进程和编程语言选择。在一些实施方式中,所选择的语言对应于IDE 305的编程语言。在一些实施方式中,用户账户被认证且与之前存储的用于CSC 210的各种远程服务(例如,数据存储、邮件、网站、社交媒体、佣金、银行等)的密钥和证书相关联。在一些实施方式中,平台200包括共同使用的例程、进程、SDK和API的档案历史的集中用户账户。为平台200和与相关联的VCP 245和CSC210对应的用户数据库232记录和更新档案历史。
方法500继续进入步骤515,在步骤515,比较远程进程的选择与之前用于生成定制SDK的一列选择。如果在步骤520,进程的组合之前被选择,则方法500进入步骤525,检索之前生成的定制SDK。通过检索之前生成的定制SDK,不重复生成相同的定制SDK,并且将计算资源保存到VCP 245。然而,如果在步骤520,方法500确定选择的进程的组合之前未被用于生成定制SDK,则方法500进入步骤530。
在步骤545,基于上面讨论的方法400生成定制SDK。接下来,在步骤550,判断生成的定制SDK(替换地,检索的定制SDK)是否可与步骤510接收的编程语言选择兼容。如果在步骤550确定定制SDK不可兼容,则方法50进入步骤555。然而,如果方法500确定定制SDK可兼容,则方法500进入步骤560。
在步骤555,将定制SDK转换为可与编程语言选择兼容。转换可将定制SDK链接至用于所选语言的存储在VCP 245或替换地存储在基于用户设备102的本地代码中的附加支持库以可操作为通过使用定制SDK从用户设备102调用所选择的远程进程。方法然后进入步骤560。
作为一个实例,支持库被安装在本地代码基中以通过使用元数据(例如,XML)在编程语言之间转换以用JAVA标记用于进程的代码。元数据描述随后通过使用任意编程语言的相应元数据直接生成为代码片段的进程。在一些实施方式中,支持库位于定制SDK中。
在步骤560,存储定制SDK并将定制SDK呈现给用户设备102用于下载和安装到本地代码基。方法500在步骤565结束。
图6是根据本发明的一个或多个实施方式的使用定制SDK的用于各种编程语言的虚拟化进程调用代码生成器的方法600的流程图。方法600应用定制SDK并且通过利用为用户设备102a和/或IDE 305裁制的片段允许各种编程语言之间的转换以调用CSC 210上的远程进程。片段和定制SDK通过使用专用于用户选择的进程的减少的代码集占据用户设备上最小的内存空间。
方法600从步骤605开始,继续进入步骤610,在步骤610中为用户设备102a移植和显示远程进程的集合。在一些实施方式中,用户设备102a必须登录到远程平台200和认证模块使得用户账户访问远程进程。
接下来在步骤615,选择至少一个远程进程。在一些实施方式中,通过用户设备102a上的图形用户界面(GUI)选择远程进程。在其它实施方式中,通过以下载至用户设备102a的定制SDK中的函数来调用远程进程从而指定远程进程。
在步骤635,如上面描述的方法400详细所述,在远程服务器104N上生成定制SDK。定制SDK包括仅由用户选择的那些进程的SDK数据。在一些实施方式中,所选择的进程是那些待在用户设备上被调用的进程。在其它实施方式中,所选择的进程多于待被调用的进程,但是少于VCP 245所提供的进程/函数和进程包的总量。
在步骤640,将定制SDK下载至用户设备102N。在步骤645,将定制SDK安装到IDE305或用户设备102N上的本地开发环境。
在步骤650,用户设备102a上的程序(例如,IDE 305)本地触发将具有相关联的进程参数的所选远程进程部署到远程平台200。部署利用片段和定制SDK调用远程平台200上的合适的VCP 245和进程池230。
在步骤655,远程服务器104将进程部署到相应的CSC 210。为了部署,从片段解析参数。解析包括将参数引向通过定制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的名字。“package TembooDemoECOs”行通过导入特定类QueryArticles调用定制SDK。上面的实施例能够安装包括用于QueryArticle的代码的下面的示例性SDK:
通过安装上面的示例性定制SDK,片段现在可执行对远程进程的调用。代码片段链接至定制SDK代码以通过相关联的VCP 245调用远程服务器104a上的实际进程。在一些实施方式中,SDK包括确保输入的参数是正确的格式、然后调用相应的远程进程。在上面的实施例中,“choreo”是远程进程在用户设备102a和/或本地IDE 305上的图形表示。
在不同的实施方式中,本文描述的方法可以软件、硬件或它们的组合实现。另外,可改变方法的次序,可添加、重新排序、组合、省略或以其它方式修改各种元件。本文描述的所有实施例以非限制的方式给出。对本领域技术人员显而易见的是可对本公开进行各种修改和改变。已经在具体实施方式的背景下描述了根据实施方式的实现。这些实施方式是说明性的而非限制性的。许多变型、修改、添加和改进是可行的。由此,可为本文作为单个示例描述的组件提供多个示例。各个组件、操作和数据存储之间的边界一定程度上是任意的,具体的操作是在特定说明性配置的背景下被说明的。可预想到功能的其它分配,并且其落入下面权利要求的范围内。最后,示例性配置中的作为独立组件给出的结构和功能可作为组合结构或组件实现。这些和其它变型、修改、添加和改进可落入下面权利要求限定的实施方式的范围内。
尽管前面是针对本发明的实施方式,但是在不偏离本发明的基本范围的情况下可想到本发明的其它实施方式,本发明的范围由所附权利要求确定。

Claims (13)

1.一种被操作为在虚拟代码提供器中生成定制软件开发包的方法,包括:
分析与由至少两个经典服务组件提供的多个预定义的函数对应的多个进程代码;
检索用于所述多个函数的每个函数的本机软件开发包;
接收用于所述定制软件开发包的编程语言选择;
判断所述定制软件开发包是否与所述编程语言选择兼容,以及如果确定所述定制软件开发包无法兼容,则转换所述定制软件开发包;
从相对于所述虚拟代码提供器处于远程的用户设备接收在所述多个预定义的函数中的至少两个函数的选择;
从用于选择的至少两个函数的所述本机软件开发包解析软件开发包代码;
链接解析的软件开发包代码;以及
存储链接的解析软件开发包代码作为定制软件开发包,
其中,所述至少两个经典服务组件中的每个能够操作为向所述用户设备提供远程服务。
2.根据权利要求1所述的方法,还包括基于所述进程代码的至少一个相关联的函数和与其它参数的关系关联所述进程代码中的参数。
3.根据权利要求1所述的方法,还包括存储所述定制软件开发包以供下载至用户设备。
4.根据权利要求1所述的方法,其中链接所述解析的软件开发包代码还包括协调所述本机软件开发包的解析部分,使得所述部分被操作为在相应的经典服务组件上执行所述选择的至少两个函数。
5.根据权利要求1所述的方法,还包括认证到所述虚拟代码提供器以及对所接收的选择与用户之前的选择进行比较。
6.根据权利要求5所述的方法,还包括确定之前生成的定制软件开发包已经被生成以用于所接收的选择以及传输所述之前生成的定制软件开发包。
7.根据权利要求1所述的方法,还包括填充所述虚拟代码提供器的一列所有可用函数以用于显示在用户设备上。
8.根据权利要求1所述的方法,还包括利用所述定制软件开发包在所述虚拟代码提供器上执行所述至少两个函数并且将相关联的进程部署到所述至少两个经典服务组件中的经典服务组件上。
9.一种被操作为访问虚拟代码提供器中的定制软件开发包的方法,包括:
从所述虚拟代码提供器接收定制软件开发包;
在本地开发环境中将来自所述虚拟代码提供器的所述定制软件开发包安装到用户设备上;
执行具有针对所述定制软件开发包的进程调用的程序,所述定制软件开发包执行与由所述虚拟代码提供器提供的进程调用相对应的函数;
将来自所述虚拟代码提供器的函数部署到与所述函数相关联的经典服务组件上,其中,所述经典服务组件能够操作为向所述用户设备提供远程服务,并且其中,所述定制软件开发包包括来自与至少两个经典服务组件对应的本机软件开发包的代码。
10.根据权利要求9所述的方法,其中执行具有所述进程调用的所述程序还包括将用于片段中的函数的参数数据传输至所述虚拟代码提供器。
11.根据权利要求10所述的方法,还包括将片段关联至所述虚拟代码提供器中的存储的预定义的进程。
12.根据权利要求9所述的方法,其中部署函数还包括协调用于至少一个经典服务组件的所述虚拟代码提供器上的本机软件开发包。
13.一种用于远程进程调用生成的系统,包括:
a)至少一个处理器;
b)至少一个输入设备,耦接至至少一个网络;以及
c)至少一个存储设备,存储处理器可执行指令,所述处理器可执行指令在被所述至少一个处理器执行时执行权利要求1至5中的任一项权利要求所述的方法。
CN201480038518.2A 2013-06-18 2014-06-17 用于定制的软件开发包(sdk)的方法和装置 Active CN105765527B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361836628P 2013-06-18 2013-06-18
US61/836,628 2013-06-18
US201361842906P 2013-07-03 2013-07-03
US61/842,906 2013-07-03
US201361847819P 2013-07-18 2013-07-18
US61/847,819 2013-07-18
PCT/US2014/042780 WO2014204987A1 (en) 2013-06-18 2014-06-17 Method and apparatus for customized software development kit (sdk) generation

Publications (2)

Publication Number Publication Date
CN105765527A CN105765527A (zh) 2016-07-13
CN105765527B true CN105765527B (zh) 2019-04-26

Family

ID=52020417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480038518.2A Active CN105765527B (zh) 2013-06-18 2014-06-17 用于定制的软件开发包(sdk)的方法和装置

Country Status (10)

Country Link
US (1) US9239705B2 (zh)
EP (1) EP3011442B1 (zh)
JP (1) JP6494609B2 (zh)
KR (1) KR102220127B1 (zh)
CN (1) CN105765527B (zh)
CA (1) CA2915619C (zh)
DK (1) DK3011442T3 (zh)
HK (1) HK1225473A1 (zh)
SG (1) SG11201510302XA (zh)
WO (1) WO2014204987A1 (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997531B2 (en) 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
DK3011444T3 (en) 2013-06-18 2018-04-16 Ciambella Ltd METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS
US9830136B2 (en) 2013-07-12 2017-11-28 Ciambella Ltd. Method and apparatus for firmware virtualization
EP3161618A4 (en) * 2014-06-30 2017-06-28 Microsoft Technology Licensing, LLC Code recommendation
SG11201708743UA (en) 2015-05-08 2017-11-29 Ciambella Ltd Method and apparatus for automatic software development for a group of controller-based devices
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
CN104866972A (zh) * 2015-05-29 2015-08-26 四川长虹电器股份有限公司 一种基于开发者平台的产品开发方法
US9881144B2 (en) 2015-06-15 2018-01-30 International Business Machines Corporation Identifying usage of code
CN107851009B (zh) * 2015-07-09 2021-11-09 西安姆贝拉有限公司 用于修改基于控制器的设备的代码的行为的方法和装置
US10146512B1 (en) 2015-08-28 2018-12-04 Twitter, Inc. Feature switching kits
US9841969B2 (en) * 2015-09-02 2017-12-12 Google Inc. Software development and distribution platform
US10169018B2 (en) 2015-09-17 2019-01-01 International Business Machines Corporation Downloading a package of code
US10171627B2 (en) 2015-09-17 2019-01-01 International Business Machines Corporation Download of a package of code
CN108604186B (zh) 2015-12-21 2021-11-16 西安姆贝拉有限公司 用于创建和管理基于控制器的远程解决方案的方法和装置
US10821357B1 (en) * 2016-03-29 2020-11-03 Amazon Technologies Interacting using an electronic link
CN107291436B (zh) * 2016-04-13 2020-11-27 上海思立微电子科技有限公司 Sdk包产生方法、装置及终端
US11087249B2 (en) 2016-05-24 2021-08-10 Ciambella Ltd. Method and apparatus for triggering execution of a workflow over a network
US10798780B2 (en) 2016-08-22 2020-10-06 Ciambella Ltd. Method and apparatus for creating and managing controller based remote solutions
KR102393818B1 (ko) * 2017-02-02 2022-05-03 구글 엘엘씨 커스텀 디지털 컴포넌트
WO2018170079A1 (en) * 2017-03-14 2018-09-20 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
WO2018200135A1 (en) * 2017-04-25 2018-11-01 Intento, Inc. Intent-based organisation of apis
US20180329806A1 (en) * 2017-05-12 2018-11-15 Intuit Inc. Developer experience for application programming interfaces with variability
CN107329742B (zh) * 2017-06-14 2021-01-29 北京小米移动软件有限公司 软件开发工具包调用方法及装置
CN107678750A (zh) * 2017-10-27 2018-02-09 北京腾云天下科技有限公司 一种sdk打包方法、计算设备及sdk打包系统
EP3717976A4 (en) 2017-12-01 2021-08-04 Ciambella Ltd. METHOD AND DEVICE FOR GENERATING AND MANAGING INTELLIGENT SOLUTIONS FOR MEMORY PROGRAMMABLE CONTROLS (PLC)
KR102120956B1 (ko) 2018-10-22 2020-06-09 엔에이치엔 주식회사 게임 제작 엔진의 sdk 설치 및 sdk의 설정 정보를 셋팅하는 컴퓨터 구현 방법 및 방법을 실행하기 위한 시스템
CN110032568B (zh) * 2018-12-20 2020-05-12 阿里巴巴集团控股有限公司 数据结构的读取及更新方法、装置、电子设备
CN110286898A (zh) * 2019-05-31 2019-09-27 福建新大陆软件工程有限公司 无埋点的数据采集方法及装置
CN110399119A (zh) * 2019-06-18 2019-11-01 五八有限公司 一种组件化构建方法、装置、电子设备及存储介质
FR3097672A1 (fr) * 2019-06-21 2020-12-25 Aava Mobile Sas Système d’applications de service pour terminaux de paiement
US10972572B2 (en) * 2019-07-12 2021-04-06 Zycada Networks Programmable delivery network
US11741084B2 (en) * 2019-09-27 2023-08-29 Autodesk, Inc. High frequency data management (HFDM)
CN111562928B (zh) * 2020-04-28 2023-05-05 北京字节跳动网络技术有限公司 资源提供方法及装置、资源下载方法及装置
CN111611025A (zh) * 2020-05-20 2020-09-01 浩云科技股份有限公司 设备接入方法和装置
CN112035163B (zh) * 2020-09-03 2023-08-22 抖音视界有限公司 软件开发包配置方法、设备和存储介质
CN112363705B (zh) * 2020-11-10 2023-07-28 中国平安人寿保险股份有限公司 系统包生成方法、装置、计算机设备及存储介质
KR102324259B1 (ko) * 2021-07-02 2021-11-10 주식회사 페이크아이즈 복수의 플랫폼을 단일 소스코드로 개발 가능한 플랫폼 통합 sdk 제공 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1821964A (zh) * 2005-02-18 2006-08-23 国际商业机器公司 将本机函数内嵌到编译的Java代码中的方法和系统
CN101438299A (zh) * 2006-03-07 2009-05-20 韩国电子通信研究院 解析代码的设备、提供代码信息的设备及其方法
CN102479079A (zh) * 2010-11-29 2012-05-30 中兴通讯股份有限公司 应用生成方法和装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324681B1 (en) * 1998-10-01 2001-11-27 Unisys Corporation Automated development system for developing applications that interface with both distributed component object model (DCOM) and enterprise server environments
US6490723B1 (en) * 1999-11-30 2002-12-03 Dell Products L.P. Method and system for installing files in a computing system
US7043715B1 (en) * 2000-06-06 2006-05-09 Emc Corporation Method and apparatus for customizing software
US7127705B2 (en) * 2000-09-06 2006-10-24 Oracle International Corporation Developing applications online
US6993642B2 (en) * 2001-07-24 2006-01-31 Microsoft Corporation Method and system for creating and employing an operating system having selected functionality
US20030120707A1 (en) * 2001-12-21 2003-06-26 Sander Bogdan Systems and methods for exporting functionality of a modularized system
US7284010B2 (en) * 2003-10-23 2007-10-16 Microsoft Corporation System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined
US8468299B2 (en) * 2007-05-22 2013-06-18 International Business Machines Corporation Virtualized storage performance controller
JP5302397B2 (ja) * 2008-07-17 2013-10-02 エルエスアイ コーポレーション 仮想化されたサーバ・プラットフォーム上に起動可能な仮想ストレージ・アプライアンスをインストールするためのシステムおよび方法
CA2698066A1 (en) * 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
JP2011150430A (ja) * 2010-01-19 2011-08-04 Kyocera Mita Corp Sdk配布パッケージ生成装置、sdk配布パッケージ生成方法、およびsdk配布パッケージ生成プログラム
US8479154B1 (en) 2010-08-20 2013-07-02 Google Inc. Interaction with partially constructed mobile device applications
US8694954B2 (en) * 2010-11-29 2014-04-08 Norman Ortiz System and methods for mobile application development using mobile devices
US8504989B2 (en) 2011-03-10 2013-08-06 Infosys Limited Service definition document for providing blended services utilizing multiple service endpoints
US9372785B2 (en) * 2013-03-07 2016-06-21 Microsoft Technology Licensing, Llc Identifying implicit assumptions associated with a software product

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1821964A (zh) * 2005-02-18 2006-08-23 国际商业机器公司 将本机函数内嵌到编译的Java代码中的方法和系统
CN101438299A (zh) * 2006-03-07 2009-05-20 韩国电子通信研究院 解析代码的设备、提供代码信息的设备及其方法
CN102479079A (zh) * 2010-11-29 2012-05-30 中兴通讯股份有限公司 应用生成方法和装置

Also Published As

Publication number Publication date
SG11201510302XA (en) 2016-01-28
KR20160061305A (ko) 2016-05-31
EP3011442A1 (en) 2016-04-27
CN105765527A (zh) 2016-07-13
CA2915619C (en) 2021-11-23
DK3011442T3 (da) 2021-01-04
WO2014204987A1 (en) 2014-12-24
EP3011442A4 (en) 2017-05-03
JP6494609B2 (ja) 2019-04-03
EP3011442B1 (en) 2020-12-02
JP2016524765A (ja) 2016-08-18
HK1225473A1 (zh) 2017-09-08
US9239705B2 (en) 2016-01-19
KR102220127B1 (ko) 2021-03-02
CA2915619A1 (en) 2014-12-24
US20140372963A1 (en) 2014-12-18

Similar Documents

Publication Publication Date Title
CN105765527B (zh) 用于定制的软件开发包(sdk)的方法和装置
CN105849691B (zh) 用于代码虚拟化和远程进程调用生成的方法和装置
US10705942B1 (en) Simulated testing of API
US20170010902A1 (en) Api notebook tool
US20180081702A1 (en) Pre/post deployment customization
KR101161946B1 (ko) 스마트폰 어플리케이션 제작 시스템 및 그 방법
Zheng et al. Preparation
Buttigieg et al. Learning Node. js for Mobile Application Development

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1225473

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant