CN105556505A - 遗产系统 - Google Patents
遗产系统 Download PDFInfo
- Publication number
- CN105556505A CN105556505A CN201380079679.1A CN201380079679A CN105556505A CN 105556505 A CN105556505 A CN 105556505A CN 201380079679 A CN201380079679 A CN 201380079679A CN 105556505 A CN105556505 A CN 105556505A
- Authority
- CN
- China
- Prior art keywords
- legacy system
- automatic script
- api
- mobile solution
- automatic
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
- Telephonic Communication Services (AREA)
Abstract
依照本公开的方面提供一种用于针对已有遗产系统创建和操作移动应用的示例方法。该方法包括:用与移动应用关联的应用编程接口(API)包装器封装已有遗产系统的多个用户界面(UI)自动脚本。响应于来自该移动应用的调用,该方法进一步包括:利用该API包装器中的记录的多个UI自动脚本中被选择的UI自动脚本,执行该遗产系统中的至少一个动作。该方法还包括:向该移动应用返回来自该遗产系统中的至少一个动作的结果。
Description
背景技术
移动技术近些年已看到极大改进。现在越来越多的移动用户携带一个或多个移动设备,他们使用该一个或多个移动设备来彼此通信、上网、或通过无线网络访问各种应用和服务。诸如支持互联网的平板、智能电话、便携式计算机、电视和游戏机之类的各种设备已变成将用户与朋友、工作和娱乐相连的基本个人随身物品。现在,用户具有更多选择,并且期望不论何时都有对所有服务、个人数据以及内容的移动访问权。不断增加的使用移动设备的用户的数量激励公司使这些移动用户可获得它们的服务,并且提供可以满足用户需求的增加、支持一系列已有的/新的服务以及提供可靠通信的改进通信选择。
附图说明
图1是根据本公开的实现方式的用于针对已有遗产系统创建移动应用的系统的示例的示意图。
图2图示根据本公开的实现方式的示出图1的系统的计算设备的示例的示意图。
图3是根据本公开的实现方式的示出用可由图1的系统的计算设备的处理器执行的指令编码的机器可读存储介质的示例的示意图。
图4图示根据本公开的实现方式的示出用于针对已有遗产系统创建和操作移动应用的方法的示例的流程图。
图4图示根据本公开的实现方式的示出用于记录已有遗产系统的多个用户界面(UI)自动脚本的方法的示例的流程图。
图6图示根据本公开的实现方式的示出用于通过使用应用编程接口(API)包装器中的记录的多个UI自动脚本中被选择的一个来执行遗产系统中的至少一个动作的方法的示例的流程图。
具体实施方式
随着近来技术的改进,移动通信设备(例如,智能电话、平板等)继续在人们的生活中扮演越来越重要的作用。不同用户依靠这样的移动设备来进行许多日常活动和工作相关任务。许多公司和大型企业目前具有多个已有遗产系统,该多个已有遗产系统可以由它们的用户经由万维网使用,但不可经由移动设备使用,因为这些机构未针对这些遗产系统开发专用移动应用。
由于移动设备的普及,这些机构可能期望使它们的已有遗产系统现代化并且使它们兼容移动通信设备。为了使移动设备可利用已有遗产系统,机构必须针对这些已有遗产系统中的每个开发新的移动应用。针对已有遗产系统创建移动应用的任务对于下面的任何公司而言是重要的:该公司想要与不论何时都期望具有对服务、个人数据和内容的移动访问权的移动用户保持接触。
需要通过使用遗产系统中的可用信息和遗产系统的已有应用编程接口(API)(例如,网页服务、RESTAPI等)来从头开发用于已有遗产系统的一些新移动应用。这些新创建的移动应用依赖与已有遗产系统的遗产后端服务器和后台办公系统的通信。特别地,运行移动应用的移动设备经常使用由遗产系统暴露的已有公共API。
许多时候,针对已有遗产系统创建移动应用可能不像映射已有遗产API来识别由移动应用需要的缺失的API以及在遗产系统中实现缺失的API那样容易。在许多情况下,给遗产系统增加缺失的API是非常长的过程,该非常长的过程推迟移动应用的实现,直至完成缺失的API。在遗产系统中增加缺失的API会比开发新的移动应用耗费更多时间是可能的。
此外,移动应用的开发者可能没有对遗产系统后端中的原始源代码或API的访问权。遗产系统的源代码可能过时并且是以不再支持的框架编写的。在许多情况下,已有遗产系统是如此过时,使得不存在关于系统是如何建立的以及使用了什么样的特定源代码的文档记录。因此,当尝试编写已有遗产系统的移动版本(例如,网页应用)时,编写全新的应用可能比尝试并使用遗产网页应用的API更容易。但是,编写全新的应用需要重写遗产应用已经使用的许多源代码。
移动应用开发者通常可以具有对已有遗产系统的统一资源定位符(URL)(即,他们能在其浏览器中看到现在运行的网页应用)的访问权。他们还可能知道遗产系统如何工作。例如,如果遗产系统是被设计用于找出员工的数据的“员工目录”网页应用,那么开发者可能知道他们必须输入员工名,以便从已有遗产系统接收一些返回数据(例如,职位描述、电话号码等)。
本说明书用于在加速移动应用奉献周期的同时针对已有遗产系统创建和操作移动应用的系统、方法和计算机可读介质。所提方案提出在已有遗产系统的用户界面(UI)层使用记录-重放引擎来记录遗产系统的函数(即,API)的UI自动脚本。用在移动应用需要执行遗产系统中的动作时由该移动应用调用的移动应用的API包装器对所记录的UI自动脚本进行包装。
因此,此新颖的且之前不可预见的方法允许移动应用开发者通过使用用户友好的UI层界面,在非常短的一段时间内创建缺失的API或包装遗产系统的已有API。移动应用开发者可以快速开发应用,而不用知道遗产API的详情,也不需要等待延迟开发直至遗产系统的后端服务器暴露遗产API。
此外,开发者可以通过测试UI自动脚本、确定是否存在故障的脚本、以及识别使用它们的移动应用,持续地并快速地验证移动应用的健康状况。在故障的情况下,开发者可以修复自动脚本本身,而不必对移动应用提供修复。由于UI自动脚本用作生产应用并且不仅是针对测试目的执行的,所以此验证技术可以用作可以在生产中每天验证和检查的移动应用的安全保障。
在示例实现方式中,提供一种用于创建和操作移动应用的方法。该方法包括:用与移动应用关联的应用编程接口(API)包装器封装已有遗产系统的多个用户界面(UI)自动脚本。如下面更详细解释的,多个UI自动脚本可以是已有的或可以是被记录的。响应于来自移动应用的调用,该方法进一步包括:使用API包装器中的记录的多个UI自动脚本中被选择的一个来执行遗产系统中的至少一个动作。该方法还包括:向移动应用返回来自遗产系统中的该至少一个动作的结果。
在另一示例实现方式中,提供一种包括移动集成开发环境(IDE)、与该IDE通信的记录-重放引擎、以及与该IDE通信的至少一个遗产系统的系统。该系统还包括具有控制单元计算设备,该控制单元用以执行在非暂时性的机器可读存储介质中存储的指令。该控制单元用于通过使用记录-重放引擎来创建已有遗产系统的至少一个UI自动脚本,用移动应用的API包装器包装或封装该至少一个UI自动脚本,以及通过调用API包装器中的至少一个UI自动脚本来执行遗产系统中的至少一个动作。此外,控制单元持续地确定该至少一个UI自动脚本中是否存在故障,并且基于遗产系统中的至少一个动作生成数据。
如本文所用的,术语“遗产系统”指已有的、可能过时的以及可以依赖互联网或可以不依赖互联网的已有方法、计算机系统、程序、网页应用或其它技术。这样的遗产系统可能在机构中长期存在,并且其仍然可以提供期望功能,即使实施遗产系统的任务的更新技术或更有效方法可以是可获得的。机构可以具有保持已有遗产系统的不同理由。例如,遗产系统令人满意地工作且没有理由改变它,重新设计或替换该系统的成本昂贵,等等。
本文所用的术语“移动设备”和“无线设备”可以互换地使用,并且指以下任一个:各种智能电话、蜂窝电话、平板、便携式计算机、个人数字助理(PDA)、VoIP电话、具有无线功能的电视、具有无线功能的娱乐系统、以及包括处理器且能够发送和接收无线或有线通信信号的其它类似电子设备。
在下面的详细描述中,参照附图,附图形成本说明书的一部分并且在附图中通过图示示出可以在其中实施所公开的主题的特定示例。将理解,可以使用其它示例,并且可以作出结构的或逻辑的改变而不脱离本公开的范围。因此,下面的详细描述不应从限制意义上去理解,并且本公开的范围由所附权利要求限定。此外,将理解,本文使用的措辞和术语用于描述目的,而不应被看做限制。本文中的“包括”、“包含”或“具有”及其变形的使用表示包含其后列出的项及其等同物以及其它项。还应注意,多个基于硬件和软件的设备以及多个不同的结构组件可以用于实现所公开的方法和系统。
图1是用于针对已有遗产系统创建和操作移动应用的系统10的示例的示意图。系统10包括由用户(未示出)操作的至少一个计算设备27、连接至计算设备27的集成开发环境(IDE)15(例如,移动IDE)、与IDE通信的记录-重放引擎17、与IDE通信的至少一个遗产系统20、以及网络25。在IDE上创建的移动应用(未示出)在可以包括智能电话、平板、便携式计算机、PDA、无线电视、无线娱乐系统和其它类似无线设备的至少一个移动设备28上运行。
移动设备28包括被配置为支持移动设备28的功能以及允许其与一个或多个外部系统(例如,计算设备27、IDE15等)或任意其它设备交互的软件、硬件(例如,处理器、存储器等(未示出))或软件和硬件的合适组合。例如,移动设备28包括用于与其它无线设备和/或网络连接的通信接口(例如,接口、 接口、3G接口、4G接口、近场通信(NFC)接口等)。
在一个示例中,IDE15与由开发者(未示出)操作的计算设备27通信,以开发或更新移动应用。计算设备27可以是开发者的工作站,并且可以包括个人计算机、便携式计算机、服务器、多个分布式计算设备、或任意其它合适的计算设备。在所图示的示例中,计算设备27包括处理器30、存储器35、UI自动脚本模块40、以及API包装器模块42,API包装器模块42用于创建遗产系统20的UI自动脚本以及用API包装器封装自动脚本来通过使用API包装器中的脚本在遗产系统20上执行动作。
至少一个遗产系统20可以是公司或机构中的已有遗产系统。遗产系统20包括可以被配置为支持遗产系统20的功能以及允许从网页浏览器(例如,通过使用计算设备27或移动设备28)访问系统20的可由硬件(例如,处理器、存储器等(未示出)操作的软件、或软件和硬件的任意适合组合。
移动IDE15是软件应用,该软件应用提供用于移动开发者或程序员开发移动应用的平台。IDE15可以包括源代码编辑器、构建自动工具、调试器、或任意其它组件(未示出IDE15的任一元件)。记录-重放引擎17是软件应用(例如,惠普出的或任意其它记录/重放系统),该软件应用允许开发者访问遗产系统20的网页接口以及记录实施遗产系统上的特定动作的UI自动脚本。IDE15和记录-重放引擎17可以存储在计算设备27上,或可以远离计算设备27。当IDE15和记录-重放引擎17未存储在计算设备27上时,可以经由网络25访问它们。
计算设备27经由网络25连接至遗产系统15、IDE15、记录-重放引擎17以及至少一个移动设备28。网络25允许这些设备中的每个与计算设备27通信以及与任意其它系统或设备通信。网络25可以包括允许系统10的设备之间进行通信的任意合适类型或构造的网络,。
例如,网络25可以包括广域网(“WAN”)(例如,基于TCP/IP的网络,蜂窝网,例如全球移动通信(“GSM”)网络、通用分组无线业务(“GPRS”)网络、码分多址(“CDMA”)网络、演进数据优化(“EV-DO”)网络、增强型数据速率GSM演进技术(“EDGE”)网络、3GSM网络、4GSM网络、数字增强无绳通信(“DECT”)网络、数字AMPS(“IS-136/TDMA”)网络、或集成数字增强型网络(“iDEN”)网络等)。网络25可以进一步包括局域网(“LAN”)、邻域网(“NAN”)、家域网(“HAN”)、个域网(“PAN”)、公共交换电话网络(“PSTN”)、内联网、互联网、或任意其它合适的网络。
计算设备27提供用于与系统10的元件通信的功能,以及用于接收和处理从遗产系统20、网络25和/或位于计算设备27外部的任意其它设备接收的信息或数据的功能。如下面更详细地解释的,计算设备27可操作来针对遗产系统20创建、操作和测试移动应用。此外,计算设备27可以向移动设备28或任意其它移动设备提供用于遗产系统20的移动应用。将理解,被描述为由与本说明书相关的计算设备27实施的操作可以在一些实现方式中由任意其它计算设备(例如,移动设备28中的计算设备)实施。
如下面更详细地描述的,在一个示例中,计算设备27通过使用记录-重放引擎17创建或记录已有遗产系统的至少一个UI自动脚本,以及用移动应用的API包装器包装该UI自动脚本。计算设备27通过调用该至少一个UI自动脚本来执行遗产系统20中的至少一个动作,持续地确定该自动脚本中是否存在故障,以及基于遗产系统中的该至少一个动作生成数据。
图2示出系统10的计算设备27的示意图。计算设备27可以是能够执行下面描述的技术的任意合适的计算设备或一组分布式计算设备。计算设备27包括处理器30(例如,中央处理单元、一组分布式处理器、微处理器、微控制器、或其它合适的可编程设备)、存储器35、输入接口45以及通信接口50。这些组件中的每个操作地耦接至总线55。在其它示例中,计算设备27包括用于执行本文描述的类似功能的更多的、更少的或不同的组件。
通信接口50使计算设备27能够与多个网络和通信链接通信。输入接口45可以接收来自遗产系统20、网络25、以及与计算设备27通信的一个或多个其它外部系统的信息。在一个示例中,输入接口45至少包括数据接口60。在其它示例中,输入接口45可以包括其它接口。在一个示例中,当计算设备27与遗产系统20通信时,数据接口60接收与在计算设备27上运行(即,用于开发或测试目的)的至少一个移动应用关联的信息。例如,当遗产系统20是允许找出基于公司员工的数据项(例如,员工名或员工ID)的“员工目录”网页应用时,数据接口60可以接收员工信息。
处理器30包括控制器33(也称为控制单元),并且可以使用任意合适类型的处理系统来实现,其中至少一个处理器执行在存储器35中存储的计算机可读指令。存储器35包括任意合适类型的、数量的和构造的易失性或非暂时性的机器可读存储介质37(图3中示出),以存储指令和数据。存储器35中的机器可读存储介质37的示例包括只读存储器(“ROM”),随机存取存储器(“RAM”)(例如,动态RAM[“DRAM”]、同步DRAM[“SDRAM”]等等),电可擦除可编程只读存储器(“EEPROM”),闪存,SD卡,以及其它合适的磁性存储设备、光存储设备、物理存储设备或电存储设备。存储器35还可以用于在执行指令期间存储待由处理器30执行的临时变量或其它中间信息。
存储器35还可以存储:操作系统70,如MacOS、MSWindows、Unix、或Linux;网络应用75;以及各种模块(例如,UI自动脚本模块40、API包装器模块42等)。操作系统70可以是多用户的、多处理的、多任务的、多线程的和实时的。操作系统70还可以实施基本任务,如识别来自诸如键盘、小键盘或鼠标之类的输入设备的输入;向投影仪和摄像头发送输出;追踪存储器35上的文件和目录;控制诸如打印机、图像采集设备之类的外围设备;以及管理总线55上的业务。网络应用75包括用于建立和维护网络连接的各种组件,如用于实现包括TCP/IP、HTTP、以太网、USB和火线的通信协议的计算机可读指令。
在机器可读存储介质上存储且由处理器30执行的软件包括例如固件、应用、程序数据、过滤器、规则、程序模块以及其它可执行的指令。控制单元33从机器可读存储介质获取并且执行与本文描述的控制过程和方法有关的指令等等。
图3图示用可由系统10的处理器30执行的指令编码的机器可读存储介质37的示例。在一个示例中,机器可读存储介质37包括数据获取模块(“DAQ”)80、UI自动脚本模块40以及API包装器模块42。在其它示例中,机器可读存储介质37可以包括更多或更少的模块(例如,与系统10的操作有关的各种其它模块)。如下面更详细地解释的,UI自动脚本模块40提供用于创建遗产系统20的UI自动脚本的各种计算机可读指令组件。此外,API包装器模块42提供用于用API包装器封装自动脚本以及通过用移动应用调用API包装器来执行遗产系统20中的动作的各种计算机可读指令组件。
可以存储、记录、处理和分析与系统10、移动设备15和其它系统/设备关联的信息和数据,以实现本文描述的控制方法和过程。除数据获取模块80之外,存储器35还包括至少一个数据库97。此外,系统10还可以包括计算设备27中(或当移动应用在移动设备28上运行时该移动设备中)或这些设备的远程存储的其它数据库(未示出)。DAQ模块80从与在计算设备27上运行的移动应用关联的遗产系统20接收UI自动脚本。
如之前提到的,所提出的方法、系统和计算机可读介质的目标是协助移动应用开发者针对已有遗产系统(例如,系统20)创建和操作移动应用。在一些情况下,这些遗产系统缺失由所开发的用于这些遗产系统的移动应用需要的API。通常,这样的遗产API被贫乏地记录或根本没有被记录。另一方面,开发新的API可能花费太长时间而难以开发,这将将减慢移动应用的开发和实现。
在一个示例中,新开发的移动应用可能需要来自遗产系统的以下API:a)遗产系统中存在的、被良好地记录的、以及可以容易地由移动应用使用的类型1API;b)遗产系统中存在的且被记录的,但属于该机构未控制的第三方服务的类型2API(例如,GoogleAPI);c)已有内部遗产系统中缺失的类型3API;以及d)类型4API是遗产系统中其它类型的API,如该机构未控制的第三方服务中缺失的API。类型4API使机构尝试开发移动通信的问题更严重,因为“强迫”第三方外部提供商暴露不存在的API通常是困难的、昂贵的,并且在许多情况下实际上是不可能的。
为了允许在上面提到的情况下进行移动应用的开发,本说明书提出一种方案:该方案允许基于已用遗产系统的UI层针对遗产系统迅速开发移动应用。所提出的方案不需要具体地了解遗产系统的源代码、遗产系统的API或由遗产系统的移动应用需要的任何缺失的API。特别地,遗产系统的缺失的遗产API的问题可以通过记录、编辑和包装(例如,用移动应用的API包装器)遗产系统的至少一个自动脚本来解决。用记录-重放引擎记录自动脚本,并且自动脚本包括所记录的位于UI层的遗产系统的函数/操作。当移动应用调用API包装器时,自动脚本基于遗产系统的已有API将遗产系统的函数重放给移动应用(即,在没有API的任何详情的情况下并且即使存在缺失的API)。
因此,在一些情况下,移动应用的新API包装器可以仅消耗遗产系统的一个已有API。在许多情况下,API包装器可能不得不消耗从所有四种遗产API中的几个API获取的大量信息。特别地,API包装器可能经常消耗来自不同应用(一些位于机构内部,而一些位于机构外部)的信息和服务。所提出的方案允许移动应用的开发者开发在一个UI动作中访问几个服务的商业过程,而不必依次访问各自具有其自己的UI和限制的每个已有网页应用。如果商业过程要求使用特定浏览器版本登录一个遗产应用,随后使用另一浏览器版本登录到另一遗产应用,那么所提出的方案允许从为其开发新应用的移动设备在一次点击中实施这两个动作。
在移动应用中使用封装遗产系统20的UI自动脚本的API包装器提供移动应用对返回的值和执行的命令的完全控制。所提出的方案允许开发者选择她可能已经知道和使用的任何记录-重放引擎,并且可能允许开发者为所提到的记录-重放引擎选择扩展,以便支持网页应用中使用的许多不同技术(ERM/CRM系统、Web、Web2.0、模拟器、.NET、Java等)。
图4图示流程图,该流程图示出用于针对已有遗产系统创建和操作移动应用的方法100的示例。在一个示例中,方法100可以由计算设备27的处理器的控制单元33执行。本文关于方法100描述的各个步骤能够同时地、并行地、或以所图示的执行顺序不同的顺序执行。还能够使用比所图示的示例中示出的步骤更多或更少的步骤来执行方法100。
方法100可以以可由计算设备27的处理器30执行的在非暂时性机器可读存储介质37上编码的指令的形式执行。在一个示例中,用于方法100的指令被存储在自动脚本模块40和API包装器模块42中。
方法100始于步骤110,在步骤110中,控制单元33用与移动应用关联的API包装器封装已有遗产系统(例如,系统20)的多个UI自动脚本。换句话说,用包装函数(即,API包装器)包装或封装记录的多个UI自动脚本,该包装函数可以用于调用所封装/所包装的脚本以实施遗产系统20中的特定动作。根据遗产系统20和由开发者记录的UI脚本,API包装器可以包括至少一个脚本或多个脚本。因此,所提出的方法向开发者提供一种用于创建可以实施遗产系统中的动作的包装函数的容易方案。
用于遗产系统的移动应用(未示出)可能已经存在或可能当前正由开发者开发。在一个示例中,开发者使用IDE15来开发移动应用。用于已有遗产系统20的多个UI自动脚本可以是之前记录的(例如,由开发者或另一系统)并且存储在存储器35中。可选地,可以使用IDE15和记录-重放引擎17、用控制单元33记录遗产系统20的多个UI自动脚本。如下面更详细地描述的,多个UI自动脚本包括遗产系统20的在UI层中已记录的函数/操作。将理解,在一些实现方式中,控制单元22可以仅记录一个自动脚本。用于记录自动脚本的指令被存储在自动脚本模块40中。
为了基于遗产API来创建包装函数,开发者不需要知道系统20中的遗产API如何工作或在哪儿找到遗产API。为了开发和操作移动应用,开发者需要的仅是访问系统20的UI层来记录遗产系统20的UI自动脚本并且封装这些脚本。此外,如下面更详细地描述的,移动应用可以使用UI自动脚本来执行遗产系统20上的新函数。
图5图示流程图,该流程图示出用于记录已有遗产系统20的多个UI自动脚本的方法200的示例。在一个示例中,可以由计算设备27的处理器的控制单元33执行方法200。方法200始于步骤205,在步骤205中开发者用控制单元33打开IDE15并且启动记录-重放引擎17。接着,开发者(在步骤210中)用控制单元33记录遗产系统20的至少一个UI自动脚本。在许多情况下,记录了已有遗产系统20的一个以上的UI自动脚本。记录-重放引擎17是直观的记录-重放工具,其允许开发者与遗产网页应用(即,遗产系统20)交互并且记录由网页应用实施的函数。
例如,当遗产系统20是上面描述的“员工目录”时,开发者可以键入系统20的URL,打开网页,在指定字段中键入员工名,并且获得以由系统20实施的搜索为基础的结果(例如,职位描述、电话号码)。由遗产系统20的不同API实施的所有这些操作或函数被记录在至少一个脚本中。在一些实现方式中,开发者可以记录实现遗产系统的与特定动作有关的不同函数的多个脚本。记录的多个UI自动脚本中的每个可以执行与遗产系统中的至少一个动作有关的多个步骤。动作可以包括遗产系统中的一个步骤或多个步骤,其中可以以特定顺序,也可以不以特定顺序实施这些步骤。
例如,如果待由系统20实施的动作是获取员工信息,那么记录的UI自动脚本执行上面描述的所有步骤,以便接收需要的信息。因此,移动应用中的一次点击可以相当于遗产系统中的多次点击或步骤。
在另一实现方式中,记录的UI自动脚本可以实施函数并且实现未由遗产系统20支持的结果。例如,用户可以通过使用两个打开浏览器来记录UI自动脚本,其中每个浏览器指向或显示不同的遗产系统。用户可以在第一遗产系统上实施如下操作:获取特定数据、向第二遗产系统(例如,系统20作为参数)转移(例如,粘贴)该数据、以及用新数据在第二遗产系统20上实施操作。所有这些步骤可以记录在单个UI自动脚本中,并且用API包装器进行包装。当接收来自移动应用的调用时,API包装器可以使用操作这两个遗产系统的被选择的UI自动脚本,并且可以执行动作。因此,移动应用中的单次点击引起在遗产系统20上执行可能未由遗产系统20支持的且可能涉及另一遗产系统或网页应用的函数。这对于开发者而言是强大的方案,并且允许开发者开发在一个UI动作中访问几个服务的应用,其中每个服务可以具有其自身的UI和限制。
继续参照图5,开发者(即,通过使用控制单元33)操控所创建的UI自动脚本。在一个示例中,控制单元将一个或多个脚本中的步骤转换成可执行的函数(在步骤215中)。随后,开发者为该函数限定或设置至少一个输入参数(在步骤220中)。例如,开发者用可以从移动应用输入的参数替换遗产系统20中的至少一个静态输入值(例如,“员工目录”中员工的输入名)。接着,开发者为该函数限定或设置可以向移动应用返回的输出参数(例如,员工的职位描述、电话号码等)(在步骤225中)。
因此,所提出的方法可以将数据插入遗产系统20中,并且可以通过使用由UI自动脚本设置的输入参数和输出参数,用多个UI自动脚本来从遗产系统20中获取数据。在步骤230中,开发者保存一个或多个脚本,并且将该脚本存储在数据库97中。在执行期间,几个用户可以同时使用相同的脚本。数据库97可以是存储由开发者针对不同遗产系统生成的多个脚本的脚本储存库。在一个实现方式中,用于每个遗产系统的移动应用可以具有其自己的储存库。
继续参照图4,控制单元33用移动应用调用API包装器。响应于来自移动应用的调用,控制单元33使用API包装器中的记录的多个UI自动脚本中被选择的一个来执行或实施遗产系统20中的至少一个动作(在步骤120中)。换句话说,控制单元33通过调用API包装器,用移动应用访问遗产系统20。开发者可以打开移动应用的UI,其中移动应用具有与遗产系统20的UI不同的UI。在一个示例中,开发者可以从移动应用的IDE15调用API包装器。例如,表述性状态转移(REST)API可以用于调用API包装器。可选地,可以从在移动设备28上运行的移动应用调用API包装器。
记录的UI自动脚本中的每个可以具有在记录脚本时创建的名字。控制单元33通过使用API包装器中的记录的多个UI自动脚本中的至少一个,执行遗产系统20中的至少一个动作。在调用API包装器时,触发重放记录的一个或多个脚本,并且基于遗产系统20的API在遗产系统20中实施所需要的动作。
当遗产系统20是上面描述的“员工目录”时,所执行的动作可以是通过使用用API包装器封装的UI脚本获取关于员工的信息。关于图6更详细地描述用于通过使用API包装器中的记录的多个UI自动脚本中被选择的一个执行遗产系统20中的至少一个动作的方法。在步骤130中,控制单元33将来自遗产系统中的至少一个动作的结果返回给移动应用。因此,被选择的一个或多个脚本重放的结果是由调用的API包装器请求的那组结果。例如,控制单元33基于遗产系统中的至少一个动作生成数据(例如,员工的职位描述、电话号码等)。随后在移动应用的UI上显示来自所返回的结果的数据。
在另一示例中,来自至少一个动作的结果可以不被立即返回给移动应用。例如,控制单元33可以将执行遗产系统20中的至少一个动作的请求放置在队列内,并且移动应用可以接收该动作的指令被接收到的初始确认。控制单元33于是可以通过稍后使用API包装器中的脚本来执行遗产系统20中的至少一个动作,并且可以在执行该动作时向移动应用发送确认。在发送确认之后,控制单元33可以向移动应用返回来自遗产系统中至少一个动作的结果。
图6图示流程图,该流程图示出用于通过使用API包装器中的记录的多个UI自动脚本中被选择的一个,执行遗产系统20中的至少一个动作的方法300的示例。在一个示例中,方法300可以由计算设备27的处理器的控制单元33执行。
方法300始于步骤305,在步骤305中,控制单元33选择由API包装器封装的记录的至少一个UI自动脚本或多个脚本,以执行遗产系统20中的至少一个动作。在一个示例中,控制单元33通过分析来自移动应用的调用并且确定要由遗产系统20执行的动作是什么,选择UI自动脚本。如上所述的,动作可以包括由遗产系统实施的一个步骤或多个步骤,其中可以以特定顺序,也可以不以特定顺序实施这些步骤。在一个示例中,控制单元33通过分析从移动应用调用的脚本的名称,确定待执行的动作(以及因此确定待选择的UI自动脚本)。在其它示例中,控制单元33仅基于移动应用调用来确定待选择的UI自动脚本。可选地,待选择的UI自动脚本可以与移动应用上的对象(例如,链接、控制按钮等)关联。
接着,控制单元33触发重放由API包装器封装的记录的一个或多个脚本(在步骤310中)。例如,脚本可以要求用户在移动应用的UI中输入至少一个参数。这可以是之前在记录脚本时限定的输入参数(例如,员工名)。随后,该脚本基于系统的API实施遗产系统20中被请求的一个或多个动作(在步骤315中)。换句话说,所调用或所选择的UI自动脚本基于遗产系统的至少一个API来重放遗产系统20中之前记录的所有函数。由于该脚本基于记录来实施遗产系统中的所有必要步骤或点击,所以移动应用不需要具有与实施遗产系统中的函数的实际遗产API有关的信息。换句话说,被选择的UI自动脚本基于之前由系统20的API记录的步骤,执行与遗产系统中的至少一个动作有关的多个步骤。在步骤315之后,方法可以返回方法100的步骤130。
在移动应用操作期间的任何特定时间,系统可以通过确定由移动应用使用的UI自动脚本是否正在正常运行来确定移动应用的健康状况。例如,在步骤320中,控制单元33确定在多个UI自动脚本中的至少一个中是否存在故障。应理解,在移动应用操作期间,可以由系统持续地实施步骤320,并且步骤320不一定在步骤315后。如果UI自动脚本中的至少一个具有故障,那么控制单元33在移动IDE上纠正多个UI自动脚本中的至少一个,而不改变移动应用中的任何代码(在步骤325中)。
例如,开发者可以简单地纠正坏脚本或创建新脚本。进行此纠正的时间量远少于改变移动应用的代码的时间量。允许移动应用的快速且可靠的维护,是所提出的系统的一种优点。另一方面,如果UI自动脚本都没有故障,那么控制单元可以返回步骤125。可以每天、在脚本在遗产系统20上执行动作之前使用、在脚本执行动作之后或在任意其它时间,使用该用于验证脚本和移动应用的健康状况的技术。
因此,所提出的用于创建移动应用的方案可以在移动应用的最终版本中使用。此外,该方案还可以在预生产阶段中用于验证移动使用案例。该方案可以在移动应用的测试/开发阶段中担当占位符(即,临时方案),直至遗产系统中缺失的API被开发出并且被曝露给移动应用。
Claims (15)
1.一种方法,包括:
使用控制器,用与移动应用关联的应用编程接口(API)包装器封装已有遗产系统的多个用户界面(UI)自动脚本;
响应于来自所述移动应用的调用,使用所述控制器,利用所述API包装器中的记录的多个UI自动脚本中被选择的UI自动脚本来执行所述遗产系统中的至少一个动作;以及
使用所述控制器,向所述移动应用返回来自所述遗产系统中的所述至少一个动作的结果。
2.根据权利要求1所述的方法,其中所述被选择的UI自动脚本基于所述遗产系统的至少一个API重放所述遗产系统的函数;并且利用包括:基于所述遗产系统的所述至少一个API,利用所述被选择的UI自动脚本重放所述遗产系统的所述函数。
3.根据权利要求1所述的方法,其中利用包括:将数据插入所述遗产系统中,以及通过使用由所述被选择的UI自动脚本设置的参数,用所述被选择的UI自动脚本从所述遗产系统获取数据。
4.根据权利要求1所述的方法,进一步包括:在移动集成开发环境(IDE)上使用记录-重放引擎记录所述遗产系统的所述多个UI自动脚本。
5.根据权利要求4所述的方法,进一步包括:确定在所述多个UI自动脚本的至少一个中是否存在故障。
6.根据权利要求5所述的方法,进一步包括:在所述移动IDE上纠正所述多个UI自动脚本中的所述至少一个,而不改变所述移动应用中的任何代码。
7.根据权利要求1所述的方法,其中所述被选择的UI自动脚本用于执行与所述遗产系统中的所述至少一个动作有关的多个步骤;并且利用包括:利用所述被选择的UI自动脚本来执行与所述遗产系统中的所述至少一个动作有关的所述多个步骤。
8.根据权利要求1所述的方法,其中所述被选择的UI自动脚本用于实施未由所述遗产系统支持的函数。
9.一种系统,包括:
移动集成开发环境(IDE),与至少一个遗产系统通信;
记录-重放引擎,与所述IDE通信;以及
计算设备,具有控制单元,所述控制单元用于
通过使用所述记录-重放引擎,创建所述遗产系统的至少一个用户界面(UI)自动脚本,
用所述移动应用的应用编程接口(API)包装器包装所述至少一个UI自动脚本,
通过调用所述API包装器中的所述至少一个UI自动脚本,执行所述遗产系统中的至少一个动作,
持续地确定所述至少一个UI自动脚本中是否存在故障,以及
基于所述遗产系统中的所述至少一个动作生成数据。
10.根据权利要求9所述的系统,其中所述控制单元用于将数据插入所述遗产系统中,并且用于通过使用由所述UI自动脚本设置的参数,用所述至少一个UI自动脚本从所述遗产系统获取数据。
11.根据权利要求9所述的系统,其中所述至少一个UI自动脚本可以执行与所述遗产系统中的所述至少一个动作有关的多个步骤。
12.根据权利要求9所述的系统,其中所述至少一个UI自动脚本基于所述遗产系统的至少一个API重放所述遗产系统的函数。
13.一种非暂时性的机器可读存储介质,编码有由处理器可执行的指令,所述机器可读存储介质包括用于执行以下步骤的指令:
用移动应用的应用编程接口(API)包装器封装已有遗产系统的多个用户界面(UI)自动脚本,其中所述多个UI自动脚本基于所述遗产系统的至少一个API重放所述遗产系统的函数;
通过调用所述API包装器,用所述移动应用访问所述遗产系统;
使用所述API包装器中的记录的多个UI自动脚本中被选择的UI自动脚本来执行所述遗产系统中的动作;以及
基于所述遗产系统中的至少一个动作,生成在所述移动应用上显示的数据。
14.根据权利要求12所述的非暂时性的机器可读存储介质,进一步包括用于执行以下步骤的指令:确定所述被选择的UI自动脚本中是否存在故障,以及用于执行以下步骤的指令:纠正所述被选择的UI自动脚本,而不改变所述移动应用中的任何代码。
15.根据权利要求12所述的非暂时性的机器可读存储介质,进一步包括用于执行以下步骤的指令:将数据插入所述遗产系统中,以及通过使用由所述UI自动脚本设置的参数,用所述被选择的UI自动脚本从所述遗产系统获取数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/062530 WO2015047365A1 (en) | 2013-09-30 | 2013-09-30 | Legacy system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105556505A true CN105556505A (zh) | 2016-05-04 |
Family
ID=52744247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380079679.1A Pending CN105556505A (zh) | 2013-09-30 | 2013-09-30 | 遗产系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10073761B2 (zh) |
EP (1) | EP3053056A4 (zh) |
CN (1) | CN105556505A (zh) |
WO (1) | WO2015047365A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104281518B (zh) * | 2013-07-02 | 2018-05-15 | 腾讯科技(深圳)有限公司 | 终端应用测试方法、装置、系统、平台及移动终端 |
CN105683938A (zh) * | 2013-10-30 | 2016-06-15 | 慧与发展有限责任合伙企业 | 记录应用测试 |
US10108744B2 (en) * | 2014-10-07 | 2018-10-23 | Oracle International Corporation | Administrative tool and physical execution plan interface for plug-in architecture of business intelligence platform using data source cartridges |
KR101774988B1 (ko) | 2015-06-15 | 2017-09-05 | 서울대학교산학협력단 | 전기자극 치료장치 및 이를 이용한 치료방법 |
US10409564B2 (en) * | 2015-08-03 | 2019-09-10 | Microsoft Technology Licensing, Llc | Recording and playback of development sessions |
US10031745B2 (en) * | 2016-02-02 | 2018-07-24 | International Business Machines Corporation | System and method for automatic API candidate generation |
US10331424B1 (en) | 2018-07-27 | 2019-06-25 | Modo Labs, Inc. | User interface development through web service data declarations |
US11481233B2 (en) * | 2019-09-13 | 2022-10-25 | Logistiview, Inc. | Augmenting legacy user interfaces using workflows |
US11789726B2 (en) * | 2020-02-24 | 2023-10-17 | Snowflake Inc. | Semantic functional wrappers of services |
US11153363B1 (en) | 2021-02-26 | 2021-10-19 | Modo Labs, Inc. | System and framework for developing and providing middleware for web-based and native applications |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040093580A1 (en) * | 2002-11-12 | 2004-05-13 | Carollyn Carson | System and methodology for mobile e-services |
US20040226027A1 (en) * | 2003-05-06 | 2004-11-11 | Winter Tony Jon | Application interface wrapper |
US20050257196A1 (en) * | 2004-05-17 | 2005-11-17 | Gideon Hollander | System and method for developing new services from legacy computer applications |
US20060168115A1 (en) * | 2004-12-23 | 2006-07-27 | International Business Machines Corporation | Method and system of encapsulating web site transactions for computer-aided generation of web services |
CN101126981A (zh) * | 2007-09-28 | 2008-02-20 | 华为技术有限公司 | 脚本命令注册方法、调用源程序代码的方法和装置 |
CN101136936A (zh) * | 2006-10-10 | 2008-03-05 | 华为技术有限公司 | 业务创建、执行、映射系统及方法 |
CN101266543A (zh) * | 2008-01-14 | 2008-09-17 | 中兴通讯股份有限公司 | 一种图形界面处理装置和方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE59712621D1 (de) | 1996-12-13 | 2006-05-24 | Rolic Ag Zug | Ferroelektrische Flüssigkristallzelle |
AU7342500A (en) | 1999-08-31 | 2001-03-26 | Accenture Llp | A system, method and article of manufacture for a legacy wrapper in a communication services patterns environment |
US7099926B1 (en) * | 2000-07-06 | 2006-08-29 | International Business Machines Corporation | Object caching and update queuing technique to improve performance and resource utilization |
US8160883B2 (en) * | 2004-01-10 | 2012-04-17 | Microsoft Corporation | Focus tracking in dialogs |
US7487494B2 (en) * | 2004-08-02 | 2009-02-03 | International Business Machines Corporation | Approach to monitor application states for self-managing systems |
WO2006042300A2 (en) | 2004-10-12 | 2006-04-20 | Mindego, Inc. | System and method for creating, distributing, and executing rich multimedia applications |
US7792792B2 (en) * | 2006-05-22 | 2010-09-07 | Microsoft Corporation | Synchronizing structured web site contents |
US8639743B1 (en) * | 2007-12-05 | 2014-01-28 | Appcelerator, Inc. | System and method for on-the-fly rewriting of JavaScript |
US8683554B2 (en) | 2009-03-27 | 2014-03-25 | Wavemarket, Inc. | System and method for managing third party application program access to user information via a native application program interface (API) |
US9104809B2 (en) * | 2010-03-24 | 2015-08-11 | Fujitsu Limited | Facilitating automated validation of a web application |
EP2748711A4 (en) | 2011-08-26 | 2016-03-02 | Aaron Gerard Franco | DATA INFRASTRUCTURE FOR THE PROVISION OF CONNECTIVITY BETWEEN PLATFORMS, DEVICES AND OPERATING SYSTEMS |
US10733238B2 (en) * | 2016-05-06 | 2020-08-04 | Amazon Technologies, Inc. | Script manager for distributed systems |
-
2013
- 2013-09-30 EP EP13894501.9A patent/EP3053056A4/en not_active Withdrawn
- 2013-09-30 US US14/915,341 patent/US10073761B2/en active Active
- 2013-09-30 CN CN201380079679.1A patent/CN105556505A/zh active Pending
- 2013-09-30 WO PCT/US2013/062530 patent/WO2015047365A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040093580A1 (en) * | 2002-11-12 | 2004-05-13 | Carollyn Carson | System and methodology for mobile e-services |
US20040226027A1 (en) * | 2003-05-06 | 2004-11-11 | Winter Tony Jon | Application interface wrapper |
US20050257196A1 (en) * | 2004-05-17 | 2005-11-17 | Gideon Hollander | System and method for developing new services from legacy computer applications |
US20060168115A1 (en) * | 2004-12-23 | 2006-07-27 | International Business Machines Corporation | Method and system of encapsulating web site transactions for computer-aided generation of web services |
CN101136936A (zh) * | 2006-10-10 | 2008-03-05 | 华为技术有限公司 | 业务创建、执行、映射系统及方法 |
CN101126981A (zh) * | 2007-09-28 | 2008-02-20 | 华为技术有限公司 | 脚本命令注册方法、调用源程序代码的方法和装置 |
CN101266543A (zh) * | 2008-01-14 | 2008-09-17 | 中兴通讯股份有限公司 | 一种图形界面处理装置和方法 |
Non-Patent Citations (1)
Title |
---|
张搏: "《基于图形用户界面的web服务移植技术研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2015047365A1 (en) | 2015-04-02 |
US10073761B2 (en) | 2018-09-11 |
EP3053056A1 (en) | 2016-08-10 |
EP3053056A4 (en) | 2017-08-02 |
US20160217058A1 (en) | 2016-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105556505A (zh) | 遗产系统 | |
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US10705942B1 (en) | Simulated testing of API | |
CN108319547B (zh) | 测试用例生成方法、装置和系统 | |
DK3011444T3 (en) | METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS | |
CA2915619C (en) | Method and apparatus for customized software development kit (sdk) generation | |
US7992127B2 (en) | Method and system of encapsulating web site transactions for computer-aided generation of web services | |
CN110046101B (zh) | 页面自动化测试方法、装置及计算机存储介质 | |
CN108228228B (zh) | 应用软件发布方法及装置 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN110347378A (zh) | 项目开发环境的搭建方法及装置 | |
JP2021039718A (ja) | 自動化されたアプリケーション・プログラミング・インターフェース(api)仕様作成 | |
Colombo-Mendoza et al. | MobiCloUP!: a PaaS for cloud services-based mobile applications | |
US10268490B2 (en) | Embedding user interface snippets from a producing application into a consuming application | |
Rajput | Hands-On Microservices–Monitoring and Testing: A performance engineer’s guide to the continuous testing and monitoring of microservices | |
CN117370203B (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN104461893B (zh) | 数据处理方法与数据处理装置 | |
CN110109684A (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
US10324692B2 (en) | Integration for next-generation applications | |
CN109634758A (zh) | 基于json文件控制事件和行为的方法及中间件平台 | |
US11169823B2 (en) | Process initiation | |
CN116185425B (zh) | 基于节点组合的事件流程编排方法、装置、设备及介质 | |
CN116382718A (zh) | 代码离线部署方法、装置、计算机设备及存储介质 | |
CN103294874B (zh) | 用于电磁仿真计算系统FEKO的Web服务封装方法以及系统 | |
KR101739854B1 (ko) | 배포용 계산과학 플랫폼, 그 플랫폼의 검사 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160504 |