CN105814539B - 用于代码虚拟化和远程进程调用生成的方法和装置 - Google Patents

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

Info

Publication number
CN105814539B
CN105814539B CN201480037319.XA CN201480037319A CN105814539B CN 105814539 B CN105814539 B CN 105814539B CN 201480037319 A CN201480037319 A CN 201480037319A CN 105814539 B CN105814539 B CN 105814539B
Authority
CN
China
Prior art keywords
sdk
code
remote
user equipment
vcp
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
CN201480037319.XA
Other languages
English (en)
Other versions
CN105814539A (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 CN105814539A publication Critical patent/CN105814539A/zh
Application granted granted Critical
Publication of CN105814539B publication Critical patent/CN105814539B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

用于用户设备上代码虚拟化和远程进程调用代码的系统和方法。所述方法包括:选择远程服务器上的远程进程,该远程进程与至少一个远程服务相关;以及从所述远程服务器上的至少一个虚拟代码供应商(VCP)接收具有来自预定义字段的参数的代码片段以调用所述远程进程。所述方法将从所述远程服务器下载的软件开发包(SDK)安装到所述用户设备。所述方法基于所述SDK将所述代码片段插入到用户设备上的本地代码基中,并且将参数值插入所述代码片段且部署所述代码片段使得所述代码片段从所述用户设备通过所述SDK调用所述远程进程。

Description

用于代码虚拟化和远程进程调用生成的方法和装置
技术领域
本发明的实施方式一般涉及用于进程调用代码生成的方法和系统。
背景技术
计算机编程语言的发展和集成扩展了现有语言的许多能力。每种语言提供了相应大小、执行速度和在平台和设备中的各种功能的具体优点和缺点。正因为如此,一些特定语言只能利用相应的设备进行工作并且用户常常必须熟悉或甚至精通多种编程语言。另外,构建现代应用程序的本质迫使开发者学习多种语言。从而写应用程序不再限于使用一种编程语言。集成和学习多种语言是项困难的负担,常常需要几个月或几年来训练程序员/开发者达到足够的编码熟练度。
应用程序可由各种语言构成并且如果被部署在服务器上,则需要程序员学习前端语言、服务器语言和后端语言。前端技术也由若干不同的语言(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。每个CSC210代表由平台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的CSC2101的进程将具有发评论、发图片、链接评论或图片、拒绝好友请求、发起好友请求、删除帖子和用户期望的其它动作的有限进程池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从用户接收证书或使用用户之前输入和存储的证书以访问与VCP2451相关联的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而言本机的编程语言的语言片段以调用各种编程语言的远程进程和执行远程进程必要的相应CSC210的平台。在所描述的实施方式中示出了与单个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中输入用于所选进程的参数。参数可包括用于服务的认证密钥、时序信息、负荷数据、文件扩展名和成功执行远程进程所必要的其它信息。参数被插入到与远程进程相关生成的片段中。在一些实施方式中,参数由用户经由本地IDE305输入,在其它实施方式中,一些参数输入可通过使用远程服务器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实时显示结果。在一些实施方式中,被部署在CSC210上的进程调用的结果还通过使用远程平台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上的图形表示。
在不同的实施方式中,本文描述的方法可以软件、硬件或它们的组合实现。另外,可改变方法的次序,可添加、重新排序、组合、省略或以其它方式修改各种元件。本文描述的所有实施例以非限制的方式给出。对本领域技术人员显而易见的是可对本公开进行各种修改和改变。已经在具体实施方式的背景下描述了根据实施方式的实现。这些实施方式是说明性的而非限制性的。许多变型、修改、添加和改进是可行的。由此,可为本文作为单个示例描述的组件提供多个示例。各个组件、操作和数据存储之间的边界一定程度上是任意的,具体的操作是在特定说明性配置的背景下被说明的。可预想到功能的其它分配,并且其落入下面权利要求的范围内。最后,示例性配置中的作为独立组件给出的结构和功能可作为组合结构或组件实现。这些和其它变型、修改、添加和改进可落入下面权利要求限定的实施方式的范围内。
尽管前面是针对本发明的实施方式,但是在不偏离本发明的基本范围的情况下可想到本发明的其它实施方式,本发明的范围由所附权利要求确定。

Claims (15)

1.一种用于用户设备上的代码虚拟化的方法,包括:
选择远程服务器上的远程进程,所述远程进程与至少一个远程服务相关;
从所述远程服务器上的至少一个虚拟代码供应商(VCP)接收具有来自预定义字段的参数的代码片段以调用所述远程进程;
将从所述远程服务器下载的软件开发包(SDK)安装到所述用户设备上;
基于所述SDK将所述代码片段插入到用户设备上的本地代码基中;以及
将参数值插入所述代码片段并且部署所述代码片段,使得所述代码片段从所述用户设备通过所述SDK调用所述远程进程。
2.根据权利要求1所述的方法,其中所述代码片段以与所述本地代码基的编程语言相同的编程语言在所述VCP上生成。
3.根据权利要求1所述的方法,其中安装所述SDK还包括将所述SDK安装到所述用户设备上的集成开发环境(IDE)中。
4.根据权利要求1所述的方法,其中所述代码片段通过将具有参数值的所述片段部署到所述远程服务器上的所述至少一个VCP来调用所述远程进程。
5.根据权利要求1所述的方法,还包括认证到托管所述至少一个VCP的远程平台。
6.根据权利要求1所述的方法,在所述用户设备上显示部署所述片段以调用所述远程进程的实时结果。
7.根据权利要求1所述的方法,其中选择所述远程进程还包括选择用于生成所述代码片段的编程语言。
8.根据权利要求1所述的方法,其中所述代码片段在所述用户设备上生成。
9.根据权利要求1所述的方法,其中部署所述代码片段还包括与安装的SDK协调以访问所述VCP。
10.根据权利要求9所述的方法,其中所安装的SDK还与对应于经典服务组件(CSC)的SDK协调。
11.根据权利要求1所述的方法,其中插入的来自预定义字段的参数值被显示在所述用户设备上。
12.一种用于用户设备上的远程进程调用虚拟化的系统,包括:
a)至少一个处理器;
b)至少一个输入设备,耦接至至少一个网络;以及
c)至少一个存储设备,存储处理器可执行指令,所述处理器可执行指令在被所述至少一个处理器执行时执行一种方法,所述方法包括:
i.选择远程服务器上的远程进程,所述远程进程与至少一个远程服务相关;
ii.从所述远程服务器上的至少一个虚拟代码供应商(VCP)接收具有来自预定义字段的参数的代码片段以调用所述远程进程;
iii.将从所述远程服务器下载的软件开发包(SDK)安装到所述用户设备;
iv.基于所述SDK将所述代码片段插入到用户设备上的本地代码基中;以及
v.将参数值插入所述代码片段并且部署所述代码片段,使得所述代码片段从所述用户设备通过所述SDK调用所述远程进程。
13.根据权利要求12所述的系统,其中所述代码片段以与所述本地代码基的编程语言相同的编程语言在所述VCP上生成。
14.根据权利要求12所述的系统,其中安装所述SDK还包括将所述SDK安装到所述用户设备上的集成开发环境(IDE)中。
15.根据权利要求12所述的系统,其中所述代码片段通过将具有参数值的所述片段部署到所述远程服务器上的所述至少一个VCP来调用所述远程进程。
CN201480037319.XA 2013-06-18 2014-06-17 用于代码虚拟化和远程进程调用生成的方法和装置 Active CN105814539B (zh)

Applications Claiming Priority (5)

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
PCT/US2014/042783 WO2014204989A1 (en) 2013-06-18 2014-06-17 Method and apparatus for code virtualization and remote process call generation

Publications (2)

Publication Number Publication Date
CN105814539A CN105814539A (zh) 2016-07-27
CN105814539B true CN105814539B (zh) 2019-09-13

Family

ID=52020422

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480035186.2A Active CN105849691B (zh) 2013-06-18 2014-06-17 用于代码虚拟化和远程进程调用生成的方法和装置
CN201480037319.XA Active CN105814539B (zh) 2013-06-18 2014-06-17 用于代码虚拟化和远程进程调用生成的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201480035186.2A Active CN105849691B (zh) 2013-06-18 2014-06-17 用于代码虚拟化和远程进程调用生成的方法和装置

Country Status (10)

Country Link
US (4) US9235383B2 (zh)
EP (2) EP3011443A4 (zh)
JP (2) JP6494610B2 (zh)
KR (2) KR102218995B1 (zh)
CN (2) CN105849691B (zh)
CA (2) CA2912852C (zh)
DK (1) DK3011444T3 (zh)
HK (2) HK1225474A1 (zh)
SG (2) SG11201510304TA (zh)
WO (2) WO2014204984A1 (zh)

Families Citing this family (23)

* 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
US10981371B2 (en) 2008-01-19 2021-04-20 Entrotech, Inc. Protected graphics and related methods
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
US9697374B2 (en) * 2014-02-19 2017-07-04 Microsoft Technology Licensing, Llc Data proxy service
SG11201708743UA (en) 2015-05-08 2017-11-29 Ciambella Ltd Method and apparatus for automatic software development for a group of controller-based devices
CN108604186B (zh) 2015-12-21 2021-11-16 西安姆贝拉有限公司 用于创建和管理基于控制器的远程解决方案的方法和装置
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
CN106789740B (zh) * 2016-11-11 2019-12-10 中国人民解放军海军航空大学 按任务优先级序贯拍卖的多平台传感器协同管理方法
WO2018170079A1 (en) 2017-03-14 2018-09-20 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
WO2018236691A1 (en) * 2017-06-20 2018-12-27 Vfunction, Inc. SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
CN108091384B (zh) * 2017-11-09 2021-07-09 南京耐久软件科技有限公司 一种基于微服务框架的医学影像处理系统
EP3717976A4 (en) 2017-12-01 2021-08-04 Ciambella Ltd. METHOD AND DEVICE FOR GENERATING AND MANAGING INTELLIGENT SOLUTIONS FOR MEMORY PROGRAMMABLE CONTROLS (PLC)
CN110032454A (zh) * 2018-01-12 2019-07-19 北京京东尚科信息技术有限公司 远程调用方法、系统和相关设备及计算机可读存储介质
CN110837378B (zh) * 2018-08-16 2021-07-02 腾讯科技(深圳)有限公司 软件开发工具包sdk功能的调用方法及装置
US11468158B2 (en) * 2019-04-10 2022-10-11 At&T Intellectual Property I, L.P. Authentication for functions as a service
US10628244B1 (en) * 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
CN111158777B (zh) * 2019-12-12 2023-10-27 中移(杭州)信息技术有限公司 组件调用方法、装置及计算机可读存储介质
CN111949421B (zh) * 2020-08-12 2023-09-05 北京奇艺世纪科技有限公司 Sdk调用方法、装置、电子设备和计算机可读存储介质
US20230177143A1 (en) * 2021-12-03 2023-06-08 International Business Machines Corporation Operating a secure code segment on a processor core of a processing unit
KR102407940B1 (ko) * 2021-12-06 2022-06-13 주식회사 플랜티넷 Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 rpc 서비스를 사용하기 위한 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치
KR102407941B1 (ko) * 2021-12-06 2022-06-13 주식회사 플랜티넷 Rpc에 기반하여 외부 장치의 함수 또는 프로시저를 호출하는 전자 장치가 사용자 인터페이스를 생성하는 방법, 그 컴퓨터 프로그램 및 그 전자 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US8352903B1 (en) * 2010-08-20 2013-01-08 Google Inc. Interaction with partially constructed mobile device applications

Family Cites Families (163)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623604A (en) 1992-11-18 1997-04-22 Canon Information Systems, Inc. Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral
US6108715A (en) * 1994-12-13 2000-08-22 Microsoft Corporation Method and system for invoking remote procedure calls
US5887172A (en) * 1996-01-10 1999-03-23 Sun Microsystems, Inc. Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends
US5852733A (en) 1996-12-16 1998-12-22 Chien; Yung-Ping S. Microcontroller development tool using software programs
CN1219252A (zh) 1997-03-11 1999-06-09 三菱电机株式会社 直观编程方法及其系统
US6266809B1 (en) 1997-08-15 2001-07-24 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
US6065053A (en) 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6158031A (en) 1998-09-08 2000-12-05 Lucent Technologies, Inc. Automated code generating translator for testing telecommunication system devices and method
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
US6401156B1 (en) 1999-08-23 2002-06-04 Advanced Micro Devices, Inc. Flexible PC/AT-compatible microcontroller
US6490723B1 (en) * 1999-11-30 2002-12-03 Dell Products L.P. Method and system for installing files in a computing system
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7043715B1 (en) * 2000-06-06 2006-05-09 Emc Corporation Method and apparatus for customizing software
US7376904B2 (en) 2000-06-13 2008-05-20 National Instruments Corporation Automatic generation of programs with GUI controls for interactively setting or viewing values
AU2001275874A1 (en) * 2000-07-07 2002-01-21 Consilient, Inc. Method and apparatus for providing process-container platforms
US7127705B2 (en) 2000-09-06 2006-10-24 Oracle International Corporation Developing applications online
US6907446B1 (en) 2000-10-16 2005-06-14 Implicit Networks, Inc. Method and system for dynamic delivery of beads
US20020111995A1 (en) 2001-02-14 2002-08-15 Mansour Peter M. Platform-independent distributed user interface system architecture
US6931288B1 (en) 2001-04-16 2005-08-16 Rockwell Automation Technologies, Inc. User interface and system for creating function block diagrams
US20020194608A1 (en) 2001-04-26 2002-12-19 Goldhor Richard S. Method and apparatus for a playback enhancement system implementing a "Say Again" feature
US8131827B2 (en) 2001-05-09 2012-03-06 Rockwell Automation Technologies, Inc. PLC with web-accessible program development software
US7103641B2 (en) 2001-06-18 2006-09-05 Intel Corporation Method and apparatus for distributing computer platform firmware across a network
US7039892B2 (en) 2001-07-24 2006-05-02 Hewlett-Packard Development Company, L.P. Systems and methods for ensuring correct connectivity between circuit designs
US6993642B2 (en) * 2001-07-24 2006-01-31 Microsoft Corporation Method and system for creating and employing an operating system having selected functionality
US8086664B2 (en) 2001-09-24 2011-12-27 Siemens Industry, Inc. Method and apparatus for programming programmable controllers and generating configuration data from a centralized server
EP1454234A2 (en) * 2001-09-28 2004-09-08 British Telecommunications Public Limited Company Client server model
US6895573B2 (en) 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
US7143360B1 (en) 2001-10-29 2006-11-28 Cypress Semiconductor Corporation Pin-out connections/drive levels direct-set by drop down list
US7320126B2 (en) 2001-11-06 2008-01-15 Sandisk Corporation Implementation of in system programming to update firmware on memory cards
US6715132B1 (en) 2001-11-19 2004-03-30 Cypress Semiconductor Corporation Datasheet browsing and creation with data-driven datasheet tabs within a microcontroller design tool
US6966039B1 (en) 2001-11-19 2005-11-15 Cypress Semiconductor Corp. Method for facilitating microcontroller programming
US7086014B1 (en) 2001-11-19 2006-08-01 Cypress Semiconductor Corporation Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming
US7010773B1 (en) 2001-11-19 2006-03-07 Cypress Semiconductor Corp. Method for designing a circuit for programmable microcontrollers
US20030120707A1 (en) * 2001-12-21 2003-06-26 Sander Bogdan Systems and methods for exporting functionality of a modularized system
US7346672B2 (en) 2002-03-12 2008-03-18 Hewlett-Packard Development Company, L.P. Automatic TFTP firmware download
US20030204560A1 (en) 2002-04-26 2003-10-30 Chen Thomas C.H. Programmable Logic Controller with embedded Intelligent Web Server
JP4635121B2 (ja) 2002-07-03 2011-02-16 東京エレクトロン株式会社 動的センサ構築およびランタイム実行のための方法
US8074201B2 (en) 2002-07-10 2011-12-06 National Instruments Corporation Deployment and execution of a program on an embedded device
FR2841998B1 (fr) * 2002-07-04 2004-10-22 Canon Kk Procede d'execution sur une station d'un reseau de communication d'un programme informatique represente dans un langage de balisage
SE524627C2 (sv) 2002-10-07 2004-09-07 Abb Research Ltd Trådlös regulator och förfarande för styrning av en anordning anordnad relativt en robot
US7457815B2 (en) 2003-03-27 2008-11-25 Apple Inc. Method and apparatus for automatically providing network services
US7478141B2 (en) 2003-06-26 2009-01-13 Intel Corporation Accessing firmware of a remote computer system using a remote firmware interface
WO2005020021A2 (en) 2003-08-22 2005-03-03 Idx Systems Corporation Information system supporting customizable user interfaces and process flows
EP1530139A1 (en) 2003-11-05 2005-05-11 Sap Ag Method and computer system for workflow management
US8104043B2 (en) 2003-11-24 2012-01-24 Microsoft Corporation System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
US7331047B2 (en) 2003-11-25 2008-02-12 Microsoft Corporation Deterministic system and method for implementing software distributed between a desktop and a remote device
GB2411495A (en) 2004-02-27 2005-08-31 Cyan Holdings Ltd Method and apparatus for generating configuration data
US20050198624A1 (en) * 2004-03-02 2005-09-08 Chipman Timothy W. Method and system for program transformation
US7574512B2 (en) 2004-04-15 2009-08-11 Schneider Automation Sas MODBUS encapsulated transport interface
US20060036755A1 (en) 2004-05-07 2006-02-16 Abdullah Ibrahim S Meta-protocol
US7810099B2 (en) 2004-06-17 2010-10-05 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology
US7526534B2 (en) * 2004-07-16 2009-04-28 Cassatt Corporation Unified system services layer for a distributed processing system
US20060020910A1 (en) 2004-07-22 2006-01-26 Steven Schlanger Devices and methods for communicating with a microcontroller
US20060041854A1 (en) 2004-07-22 2006-02-23 Steven Schlanger Devices and methods for programming microcontrollers
WO2006015441A1 (en) * 2004-08-13 2006-02-16 Remasys Pty Ltd Monitoring and management of distributed information systems
JP2006079447A (ja) 2004-09-10 2006-03-23 Fujitsu Ltd 集積回路設計支援装置、集積回路設計支援方法及び集積回路設計支援プログラム
US20060090154A1 (en) * 2004-10-07 2006-04-27 International Business Machines Corp. System and method for contributing remote object content to an integrated development environment type-ahead
US7774596B2 (en) 2005-02-02 2010-08-10 Insyde Software Corporation System and method for updating firmware in a secure manner
US7530059B2 (en) 2005-02-18 2009-05-05 International Business Machines Corporation Method for inlining native functions into compiled java code
AU2006247999A1 (en) * 2005-04-20 2006-11-23 Videoegg, Inc. Browser enabled video manipulation
US9317259B2 (en) 2005-05-12 2016-04-19 International Business Machines Corporation Apparatus, system, and method for automatically generating a reusable software component for interfacing with a web service
US7716388B2 (en) 2005-05-13 2010-05-11 Texas Instruments Incorporated Command re-ordering in hub interface unit based on priority
US7558915B2 (en) 2005-06-06 2009-07-07 Dell Products L.P. System and method for updating the firmware of a device in a storage network
KR100714693B1 (ko) * 2005-06-07 2007-05-04 삼성전자주식회사 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법
EP1938184A4 (en) * 2005-08-19 2009-12-02 Google Inc SOFTWARE ARCHITECTURE FOR DISPLAYING INFORMATION CONTENT FROM PLUG-IN MODULES ON A USER INTERFACE
US8055386B2 (en) 2005-08-22 2011-11-08 Trane International Inc. Building automation system data management
US20070073771A1 (en) * 2005-09-28 2007-03-29 Baikov Chavdar S Method and system for directly mapping web services interfaces and java interfaces
US7481361B2 (en) 2005-09-29 2009-01-27 International Business Machines Corporation Method and system for identifying unsafe synthetic transactions and modifying parameters for automated playback
US20070174037A1 (en) 2005-11-10 2007-07-26 Chuan-Po Ling Multiple-microcontroller emulation system, multiple-microcontroller integrated development environment, and method for the same
US7836303B2 (en) * 2005-12-09 2010-11-16 University Of Washington Web browser operating system
US20070142929A1 (en) * 2005-12-16 2007-06-21 Microsoft Corporation Specifying optional and default values for method parameters
US8572560B2 (en) * 2006-01-10 2013-10-29 International Business Machines Corporation Collaborative software development systems and methods providing automated programming assistance
US7813909B2 (en) 2006-05-03 2010-10-12 Sony Computer Entertainment Inc. Register mapping in emulation of a target system on a host system
US7741920B2 (en) 2006-02-10 2010-06-22 Broadcom Corporation Quadrature oscillator with simplified amplitude, phase and frequency control
US8028258B1 (en) 2006-02-16 2011-09-27 Cypress Semiconductor Corporation Interactive graphical pin assignment
KR100687762B1 (ko) 2006-03-07 2007-02-27 한국전자통신연구원 코드 해석 장치, 코드정보 제공 장치 및 이를 이용한 방법
US7627838B2 (en) 2006-04-25 2009-12-01 Cypress Semiconductor Corporation Automated integrated circuit development
JP4808558B2 (ja) * 2006-07-12 2011-11-02 日本電信電話株式会社 連携シナリオ作成支援システム及びその方法並びにプログラム
US7886234B2 (en) 2006-10-13 2011-02-08 Mediatek Inc. Systems and methods for creating embedded target images
US20080109782A1 (en) 2006-10-18 2008-05-08 Utstarcom, Inc. Method and system for pin assignment
KR20080044576A (ko) 2006-11-17 2008-05-21 오종택 애드혹 통신 네트워크를 이용한 전력분산 장치 및 시스템과그 방법
JP2008165340A (ja) * 2006-12-27 2008-07-17 Fujitsu Ltd 遠隔手続呼出方式
US8645148B2 (en) * 2006-12-29 2014-02-04 The Boeing Company Methods and apparatus providing an E-enabled ground architecture
US8316427B2 (en) * 2007-03-09 2012-11-20 International Business Machines Corporation Enhanced personal firewall for dynamic computing environments
CN201017215Y (zh) 2007-03-29 2008-02-06 王忠伟 一种终端控制器
US8612972B2 (en) * 2007-06-27 2013-12-17 Microsoft Corporation Running add-on components in virtual environments
US10997531B2 (en) * 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
WO2009073932A1 (en) 2007-12-13 2009-06-18 Labtronics Technology Pty Ltd Application specific virtual real-time operating system compiler
US8230113B2 (en) * 2007-12-29 2012-07-24 Amx Llc System, method, and computer-readable medium for development and deployment of self-describing controlled device modules in a control system
US20090198770A1 (en) 2008-02-04 2009-08-06 Universal Scientific Industrial Co., Ltd. System and method of updating codes in controller
US8793662B2 (en) * 2008-03-25 2014-07-29 Microsoft Corporation Runtime code hooking for print driver and functionality testing
US8245186B2 (en) * 2008-04-03 2012-08-14 Microsoft Corporation Techniques for offering and applying code modifications
US9454390B2 (en) * 2008-04-04 2016-09-27 Intuit Inc. Executable code generated from common source code
US20090265719A1 (en) * 2008-04-18 2009-10-22 Microsoft Corporation Application macro recording utilizing method interception
US9311115B2 (en) 2008-05-13 2016-04-12 Apple Inc. Pushing a graphical user interface to a remote device with display rules provided by the remote device
US8099332B2 (en) 2008-06-06 2012-01-17 Apple Inc. User interface for application management for a mobile device
US8249950B2 (en) * 2008-07-11 2012-08-21 Ebay Inc. Payment mechanism integration wizard
US8321226B2 (en) * 2008-08-08 2012-11-27 Hewlett-Packard Development Company, L.P. Generating speech-enabled user interfaces
CN102177501B (zh) 2008-08-25 2015-08-12 宝威电源意大利股份公司 电子设备及其管理方法
US9411864B2 (en) * 2008-08-26 2016-08-09 Zeewise, Inc. Systems and methods for collection and consolidation of heterogeneous remote business data using dynamic data handling
CN101373441B (zh) 2008-09-19 2012-04-18 苏州壹世通科技有限公司 一种基于固件的虚拟化平台系统
US8271958B2 (en) 2008-12-12 2012-09-18 Microsoft Corporation Remapping debuggable code
KR101042908B1 (ko) * 2009-02-12 2011-06-21 엔에이치엔(주) 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체
DE102009011679A1 (de) 2009-02-23 2010-08-26 Pilz Gmbh & Co. Kg Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung
US8948067B2 (en) 2009-04-23 2015-02-03 Honeywell International Inc. Wireless controller grids for process control and other systems and related apparatus and method
WO2010129909A1 (en) 2009-05-07 2010-11-11 Cypress Semiconductor Corporation Development, programming, and debugging environment
EP2433257A4 (en) 2009-05-19 2014-07-30 Nholdings Sa PROVIDING A LOCAL DEVICE OF COMPUTER SERVICES FROM A REMOTE HOST
CA2698066A1 (en) 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
US8949792B2 (en) * 2009-08-18 2015-02-03 Adobe Systems Incorporated Methods and systems for data service development
US8214653B1 (en) 2009-09-04 2012-07-03 Amazon Technologies, Inc. Secured firmware updates
US8707161B2 (en) * 2009-09-30 2014-04-22 Facebook, Inc. Executing server side script code specified using PHP on a server to generate dynamic web pages
CN101697125B (zh) 2009-11-04 2013-05-08 中兴通讯股份有限公司 一种开发环境转换的方法及装置
US8533667B2 (en) * 2009-12-30 2013-09-10 International Business Machines Corporation Call wizard for information management system (IMS) applications
JP2011150430A (ja) 2010-01-19 2011-08-04 Kyocera Mita Corp Sdk配布パッケージ生成装置、sdk配布パッケージ生成方法、およびsdk配布パッケージ生成プログラム
US8869138B2 (en) 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US8775781B2 (en) 2010-03-25 2014-07-08 Microsoft Corporation Intelligent boot device selection and recovery
US8655461B2 (en) 2010-05-25 2014-02-18 Siemens Product Lifecycle Management Software Inc. Method, system, and non-transitory computer readable storage medium for generating code for a closed-loop controller
US8959363B2 (en) 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
US9063753B2 (en) * 2010-06-22 2015-06-23 Sap Se Scripting framework for business objects
US8938721B2 (en) * 2010-07-21 2015-01-20 Microsoft Corporation Measuring actual end user performance and availability of web applications
US8694954B2 (en) 2010-11-29 2014-04-08 Norman Ortiz System and methods for mobile application development using mobile devices
CN102479079B (zh) 2010-11-29 2015-04-01 中兴通讯股份有限公司 应用生成方法和装置
RU2550531C2 (ru) * 2010-12-30 2015-05-10 Инсайтен, Инк. Управление онлайновой конфиденциальностью
US9678747B2 (en) * 2011-02-08 2017-06-13 Openspan, Inc. Code injection and code interception in an operating system with multiple subsystem environments
US20120204161A1 (en) * 2011-02-09 2012-08-09 Particle Code, Inc. Automated Code Map Generation for an Application Programming Interface of a Programming Language
US8621442B2 (en) * 2011-02-09 2013-12-31 Beek Fund B.V. L.L.C. Quicker translation of a computer program source code
US8903943B2 (en) * 2011-02-15 2014-12-02 Salesforce.Com, Inc. Integrating cloud applications and remote jobs
US8504989B2 (en) 2011-03-10 2013-08-06 Infosys Limited Service definition document for providing blended services utilizing multiple service endpoints
US20120233588A1 (en) * 2011-03-10 2012-09-13 Infosys Technologies Ltd. Blended service creation, test, and deployment environment for multiple service endpoints
CN102999322A (zh) 2011-09-16 2013-03-27 深圳市吉阳自动化科技有限公司 一种工业控制器软件界面设计方法
US8554150B2 (en) 2011-10-18 2013-10-08 Thomas Benjamin Smith Multi-wan module
US8959477B2 (en) * 2011-10-21 2015-02-17 Sap Se Scripting language for business applications
US8997070B2 (en) * 2011-12-15 2015-03-31 Sap Se Extension mechanism for scripting language compiler
US9571591B2 (en) * 2011-12-28 2017-02-14 Dynatrace Llc Method and system for tracing end-to-end transaction which accounts for content update requests
US20130201316A1 (en) 2012-01-09 2013-08-08 May Patents Ltd. System and method for server based control
IN2014DN06956A (zh) 2012-01-23 2015-04-10 Scl Elements Inc
US9294577B2 (en) 2012-04-11 2016-03-22 Taboola.Com Ltd Click through rate estimation in varying display situations
CA2870359C (en) 2012-04-12 2015-10-13 Absolute Software Corporation Configuration of third party applications in a sandboxed environment
KR20130115729A (ko) 2012-04-13 2013-10-22 삼성전자주식회사 디스플레이장치, 리모컨 및 그 제어방법
US20140013299A1 (en) * 2012-07-06 2014-01-09 Microsoft Corporation Generalization and/or specialization of code fragments
WO2014041623A1 (ja) 2012-09-12 2014-03-20 株式会社日立システムズ 施設ユーザインタフェース配信システム
ES2599374T3 (es) 2012-10-08 2017-02-01 Huawei Device Co., Ltd. Método de procesamiento de la interfaz de usuario de un dispositivo de pantalla táctil y dispositivo de pantalla táctil
US9292416B2 (en) * 2012-10-12 2016-03-22 Vmware, Inc. Software development kit testing
US9015694B2 (en) 2012-10-31 2015-04-21 Aruba Networks, Inc Cloud-based firmware distribution service
CN103914018A (zh) 2012-12-31 2014-07-09 施耐德电器工业公司 可编程控制器的编程辅助系统及方法
US9104525B2 (en) * 2013-01-22 2015-08-11 Microsoft Technology Licensing, Llc API usage pattern mining
US20140215433A1 (en) * 2013-01-30 2014-07-31 Oracle International Corporation Class oriented file format for modeling and persisting bpmn scripting code
US9509745B2 (en) * 2013-02-04 2016-11-29 Oracle International Corporation Java API for programming web real-time communication applications
US9372785B2 (en) * 2013-03-07 2016-06-21 Microsoft Technology Licensing, Llc Identifying implicit assumptions associated with a software product
US9465717B2 (en) * 2013-03-14 2016-10-11 Riverbed Technology, Inc. Native code profiler framework
US20140372983A1 (en) 2013-06-14 2014-12-18 Microsoft Corporation Identifying the introduction of a software failure
DK3011444T3 (en) 2013-06-18 2018-04-16 Ciambella Ltd METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS
DK3011442T3 (da) 2013-06-18 2021-01-04 Ciambella Ltd Fremgangsmåde og anordning til generering af et brugerdefineret softwareudviklingskit (sdk)
US10296297B2 (en) * 2013-08-09 2019-05-21 Oracle International Corporation Execution semantics for sub-processes in BPEL
US9451043B2 (en) * 2013-09-13 2016-09-20 Evie Labs, Inc. Remote virtualization of mobile apps
US20150127192A1 (en) 2013-11-06 2015-05-07 Hitachi, Ltd Wireless vehicle control system
US9619122B2 (en) 2014-01-10 2017-04-11 Ciambella Ltd. Method and apparatus for automatic device program generation
SG11201605563YA (en) 2014-01-10 2016-08-30 Ciambella Ltd Method and apparatus for automatic device program generation
KR101872751B1 (ko) 2014-06-20 2018-06-29 후아웨이 테크놀러지 컴퍼니 리미티드 애플리케이션 인터페이스를 디스플레이하는 방법 및 장치, 그리고 전자 장치
JP6441061B2 (ja) 2014-12-16 2018-12-19 株式会社ダイヘン 機械制御システム及び機械制御システムのユーザインタフェース設定方法
US20170045981A1 (en) 2015-08-10 2017-02-16 Apple Inc. Devices and Methods for Processing Touch Inputs Based on Their Intensities
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
US9547482B2 (en) 2015-06-02 2017-01-17 Sap Portals Israel Ltd. Declarative design-time experience platform for code generation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US8352903B1 (en) * 2010-08-20 2013-01-08 Google Inc. Interaction with partially constructed mobile device applications

Also Published As

Publication number Publication date
KR20160058744A (ko) 2016-05-25
CN105814539A (zh) 2016-07-27
WO2014204984A1 (en) 2014-12-24
JP6494608B2 (ja) 2019-04-03
US9235383B2 (en) 2016-01-12
JP2016527610A (ja) 2016-09-08
HK1225474A1 (zh) 2017-09-08
EP3011443A4 (en) 2017-03-08
US10853108B2 (en) 2020-12-01
CA2912852A1 (en) 2014-12-24
DK3011444T3 (en) 2018-04-16
KR102243793B1 (ko) 2021-04-26
EP3011444A1 (en) 2016-04-27
US9436439B2 (en) 2016-09-06
US20140372972A1 (en) 2014-12-18
US20160124719A1 (en) 2016-05-05
KR20160060023A (ko) 2016-05-27
JP6494610B2 (ja) 2019-04-03
SG11201510304TA (en) 2016-01-28
EP3011443A1 (en) 2016-04-27
JP2016525742A (ja) 2016-08-25
US20160364254A1 (en) 2016-12-15
SG11201510303QA (en) 2016-01-28
CN105849691A (zh) 2016-08-10
CN105849691B (zh) 2019-09-13
HK1225472A1 (zh) 2017-09-08
CA2915620A1 (en) 2014-12-24
CA2915620C (en) 2022-12-13
EP3011444B1 (en) 2018-02-21
WO2014204989A1 (en) 2014-12-24
EP3011444A4 (en) 2017-01-25
US10055238B2 (en) 2018-08-21
KR102218995B1 (ko) 2021-02-25
US20140372975A1 (en) 2014-12-18
CA2912852C (en) 2023-09-26

Similar Documents

Publication Publication Date Title
CN105814539B (zh) 用于代码虚拟化和远程进程调用生成的方法和装置
CN105765527B (zh) 用于定制的软件开发包(sdk)的方法和装置
US10705942B1 (en) Simulated testing of API
US10521243B2 (en) Pre/post deployment customization
KR101161946B1 (ko) 스마트폰 어플리케이션 제작 시스템 및 그 방법
Khanna et al. Ionic: Hybrid Mobile App Development
Zheng et al. Preparation
Kurtz et al. Pro Drupal as an Enterprise Development Platform
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: 1225472

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant