CN103874998A - 生成预测数据结构 - Google Patents

生成预测数据结构 Download PDF

Info

Publication number
CN103874998A
CN103874998A CN201280050218.7A CN201280050218A CN103874998A CN 103874998 A CN103874998 A CN 103874998A CN 201280050218 A CN201280050218 A CN 201280050218A CN 103874998 A CN103874998 A CN 103874998A
Authority
CN
China
Prior art keywords
source code
data structure
application
network
data
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.)
Granted
Application number
CN201280050218.7A
Other languages
English (en)
Other versions
CN103874998B (zh
Inventor
B·J·弗莱彻
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103874998A publication Critical patent/CN103874998A/zh
Application granted granted Critical
Publication of CN103874998B publication Critical patent/CN103874998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • 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
    • 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/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种用于在应用在网络连接的数据处理系统中离线操作时为该应用生成预测数据结构的方法,该应用包括具有执行路径的源代码,该方法包括以下步骤:确定在应用的源代码内的退出点;根据退出点确定包括至少一个条件语句的执行路径;标识至少一个被标识条件语句的一个或者多个分支,并且为每个被标识分支确定预期响应;为每个确定的预期响应根据响应生成数据结构;从退出点沿着源代码的执行路径继续,并且用指向生成的数据结构的指针替换源代码中的对于资源的每个请求;以及从确定的退出点用指向生成的数据结构的指针执行源代码。

Description

生成预测数据结构
技术领域
本发明涉及联网数据处理系统领域。具体而言,本发明涉及一种用于在应用离线操作时生成用于应用的预测数据结构的方法和装置。
背景技术
因特网用户访问因特网服务提供者提供的服务用于执行交互、比如个人银行、在线购物、信息取回或者用于从服务提供者的在线环境内起动其它服务。
为了访问在线服务,用户操作客户端设备用于向服务器发送请求以便请求访问由一个或者多个应用提供的资源。
服务器接收对于资源的请求并且向请求客户端设备返回请求的资源。通常部署超文本传送协议(HTTP),该协议定义如下手段,在该手段中,客户端设备跨因特网与一个或者多个服务器交互。HTTP是‘请求-答复’协议,在该协议中,客户端向服务器发送包含所需资源的URL的请求消息。服务器查找路径名并且如果它存在则在答复中向客户端发送回资源。HTTP允许内容协商和认证。
只要客户端和服务器可以相互连续通信、即发送对于资源的请求和从服务器接收回请求的资源,以上类型的交互就良好工作。这一请求答复交互依赖于跨网络的开放和连续通信路径。
在网络(无论出于什么原因)暂时不可用时出现问题。网络不可用的结果是事务不能完成。经常在这一点,用来请求一个或者多个资源的应用、通常为web浏览器移入称为‘离线工作’的操作状态。当在‘离线’模式中工作时,在网页中嵌入的脚本和/或HTML不能执行,因为软件需要向服务器进行调用以便加载进一步数据。
一种对于以上问题的典型解决方案是高速缓存请求的资源、即网页。然而这一方式的缺点是资源的高速缓存的副本可能包括‘过时’数据、因此产生不正确结果,或者可能由于安全或者私密原因而无高速缓存的版本。
发明内容
从第一方面来看,本发明提供一种用于在应用在网络连接的数据处理系统中离线操作时为所述应用生成预测数据结构的方法,该应用包括具有执行路径的源代码,该方法包括以下步骤:确定在应用的源代码内的退出点;根据退出点确定包括至少一个条件语句的执行路径;标识至少一个被标识条件语句的一个或者多个分支,并且为每个被标识分支确定预期响应;为每个确定的预期响应根据响应生成数据结构;从退出点沿着源代码的执行路径继续并且用指向生成的数据结构的指针替换源代码中的对于资源的每个请求;以及从确定的退出点用指向生成的数据结构的指针执行源代码。
优选地,本发明提供一种方法,其中确定预期响应包括用一个或者多个逻辑规则测试条件语句的每个分支以便确定预期响应的步骤。
优选地,本发明提供一种方法,其中每个逻辑规则包括用于映射到在应用的源代码中的变量的数据集,并且数据集包括响应于变量的输入而将在网络应用的视窗中显示的数据
优选地,本发明提供一种方法,其中退出点是源代码由于确定失去网络活动而不能执行的代码行。
优选地,本发明提供一种方法,其中替换对于资源的请求包括修改在源代码中标识的对在服务器上的资源的引用以引用生成的数据结构。
优选地,本发明提供一种方法,该方法还包括执行具有修改的引用的源代码。
优选地,本发明提供一种方法,该方法还包括确定客户端和服务器是否被网络连接,以及响应于肯定确定而向服务器发送数据分组,并且服务器从源代码的、客户端交接处理的位置继续执行应用的源代码。
优选地,本发明提供一种方法,该方法还包括监视客户端的对来自服务器的资源的请求,并且根据请求确定用于在历史数据存储库中存储的数据结构。
优选地,本发明提供一种方法,该方法从存储的数据结构去除任何个人数据。
从另一方面来看,本发明提供一种用于在应用在网络连接的数据处理系统中离线操作时为所述应用生成预测数据结构的装置,该应用包括具有执行路径的源代码,该方法包括以下步骤:用于确定在应用的源代码内的退出点的拦截器部件;用于根据退出点确定包括至少一个条件语句的执行路径的脚本引擎;用于标识至少一个被标识条件语句的一个或者多个分支并且为每个被标识分支确定预期响应的脚本引擎;用于为每个确定的预期响应根据响应生成数据结构的脚本引擎;用于从退出点沿着源代码的执行路径继续并且用指向生成的数据结构的指针替换源代码中的对于资源的每个请求的脚本引擎;以及用于从确定的退出点用指向生成的数据结构的指针执行源代码的构建部件。
优选地,本发明提供一种装置,其中确定预期响应包括用一个或者多个逻辑规则测试条件语句的每个分支以便确定预期响应的步骤。
优选地,本发明提供一种装置,其中每个逻辑规则包括用于映射到在应用的源代码中的变量的数据集,并且数据集包括将响应于变量的输入而在网络应用的视窗中显示的数据。
优选地,本发明提供一种装置,其中退出点是源代码由于确定失去网络活动而不能执行的代码行。
优选地,本发明提供一种装置,其中替换对于资源的请求包括修改在源代码中标识的对在服务器上的资源的引用以引用生成的数据结构。
优选地,本发明提供一种装置,该装置还包括执行具有修改的引用的源代码。
优选地,本发明提供一种装置,该装置还包括:网络连通性检测器,用于确定客户端和服务器是否被网络连接并且响应于肯定确定而向服务器发送数据分组,并且服务器从源代码的、客户端交接处理的位置继续执行应用的源代码。
优选地,本发明提供一种装置,该装置还包括:监视部件,用于监视客户端的对来自服务器的资源的请求,并且根据请求确定用于在历史数据存储库中存储的数据结构。
优选地,本发明提供一种装置,该装置还包括从存储的数据结构去除任何个人数据。
从另一方面来看,本发明提供一种用于在网络应用未连接到网络时测试网络应用的方法,该网络应用可操作用于跨网络与服务器通信,该应用包括具有执行路径的源代码,该方法包括以下步骤:确定在应用的源代码内的退出点;根据退出点确定包括至少一个条件语句的执行路径;标识至少一个被标识条件语句的一个或者多个分支并且为每个被标识分支确定预期响应;为每个确定的预期响应根据响应生成数据结构;从退出点沿着源代码的执行路径继续并且用指向生成的数据结构的指针替换源代码中的对于资源的每个请求;从确定的退出点用指向生成的数据结构的指针执行源代码。
从另一方面来看,本发明提供一种包括计算机程序代码的计算机程序,该计算机程序代码用于在向计算机系统中加载和执行时执行如以上描述的本发明的所有步骤。
附图说明
现在将参照附图仅通过示例描述本发明的优选实施例,在附图中:
图1是详述联网数据处理环境的框图,可以在该联网数据处理环境中实施本发明的优选实施例;
图2是详述数据处理系统的框图,可以在该数据处理系统中实施本发明的一个优选实施例;
图3是详述根据本发明的优选实施例的离线应用的示例的框图;
图4是描绘根据本发明的优选实施例的预测数据结构部件的框图;
图5是详述根据本发明的优选实施例的图4的预测数据结构部件的前瞻数据结构部件的部件的框图;
图6是根据本发明的优选实施例的执行路径的图示;
图7是详述根据本发明的优选实施例的图4的预测数据结构创建器的空数据结构部件的部件的框图;
图8是详述根据本发明的优选实施例的前瞻数据结构部件的过程步骤的流程图;并且
图9是详述根据本发明的优选实施例的空数据结构创建器的过程步骤的流程图。
具体实施方式
现在参照各图,图1描绘网络数据处理系统100的图解表示,可以在该网络数据处理系统中实施本发明的优选实施例。网络数据处理系统100包括网络135,该网络是用来提供在网络数据处理系统100内连接在一起的各种设备之间的通信链路的介质。网络135可以包括通信结构、比如有线链路(以太网)、无线通信链路或者光纤等。
在图1描绘的示例中,服务器105与存储装置130一起连接到网络135。服务器105可以是任何类型的服务器、例如应用服务器或者web服务器等。客户端设备115也连接到网络135。这些客户端115可以例如是个人计算机、移动设备、手持设备、网络连接的终端设备或者能够发送对于资源140的请求并且从网络连接的服务器105接收资源140的任何类型的设备。资源140可以采用网页、信息资源、数据、在线应用及其下层格式、比如标记语言、即HTML文件、XML文件和脚本语言如JavaScript文件、数据文件和净荷等的形式。客户端115通常部署网络应用120、比如web浏览器以便请求来自一个或者多个服务器105的资源140。存储装置130存储用于向请求客户端115发送的资源。
在各图中未描绘的另一实施例中,客户端设备以对等方式连接,并且因此客户端本身可以变成服务器。
网络数据处理系统100可以包括在各图中未图示的附加服务器、客户端和其它通信设备。
网络数据处理系统100可以采用具有网络130的因特网的形式,这一形式代表网络和网关的全球汇集,这些网络和网关使用传输控制协议/网际协议(TCP/IP)协议套件以相互通信。类似地,网络135也可以采用局域网或者广域网等的形式。图1旨在于仅作为示例而不是作为对于不同实施例的架构限制。
图2图示数据处理系统200的图解图示。数据处理系统200是计算机、比如图1的服务器105或者客户端115的示例。
数据处理系统200包括中央处理单元265,该中央处理单元具有存储器205(RAM和ROM)这一形式的主存储装置。存储器205存储应用程序作用于或者创建的程序信息和数据。程序信息包括用于数据处理系统200的操作系统代码和用于在数据处理系统200上运行的应用的应用代码。次存储装置235例如包括光盘存储装置和磁盘存储装置。也可以从次存储装置235存储和访问数据和程序信息。
数据处理系统200包括用于将数据处理系统200对接到网络135的网络连接装置230。数据处理系统200也可以具有其它外部源通信装置、比如传真调制解调器或者电话连接。
中央处理单元265包括用于输入文本、图像、图形等的作为示例的键盘260、鼠标255、语音输入250和扫描器245这一形式的输入。来自中央处理单元265的输出可以包括显示装置210、打印机215、声音输出220、视频输出225等。应用可以从存储装置235或者经由网络连接230在数据处理系统200上运行。
在一个优选实施例中,应用代码包括用于运行网络应用120的代码,该网络应用用于访问在线应用110、比如wikis、社交联网站点和通信工具等。为了清楚,网络应用120是任何可操作用于请求、接收、呈现和遍历来自网络135的信息资源140的应用。网络应用120可以采用在客户端上运行的浏览器应用的形式、但是不限于这样的应用。为了清楚,术语在线应用旨在于涵盖任何在客户端115与服务器105之间的交互中从网络135访问的信息资源140。这一形式的交互可以采用HTTP请求或者其它相似协议的形式。本领域技术人员将认识到在线应用110可以由于一个或者多个资源未从一个或者多个服务器105可用而离线。因此造成应用110仅部分在线,因为一些资源140可用而一些资源140不可用,这归因于一个或者多个服务105的选择性的可用。
在使用网络应用120作为用于运行在线应用的平台时遇到的关键问题是在执行在线应用110期间失去网络连通性。因此,在客户端115访问要求客户端的用户输入数据的在线应用110并且客户端释放与在线应用110的连通性时,客户端115不再能够完成事务,并且在线应用在离线模式中操作。请求的资源可以是客户端115从服务器105请求的的任何数据项。
失去连通性的影响经常造成失去数据和失去功能。这造成客户端115必须退出在线应用110并且在已经恢复与服务器105的连通性时重试。经常在网络应用在离线模式中操作时,应用的源代码仍然不能执行,因为不能向服务器进行对于被源代码中的调用请求的资源的HTTP请求。
图3是web浏览器应用120的示例。Web浏览器应用包括菜单300,在该菜单中,用户可以访问专属于web浏览器应用120的功能。Web浏览器应用也包括导航工具栏305,在该导航工具栏中,用户可以录入将访问的资源的地址(URL)。在这一示例中,用户已经录入URL www.pensioncalculator.com。每个URL转译成服务器的资源的位置的IP地址。使用HTTP协议,向请求访问养老金计算器应用(‘资源’)的服务器发送请求。只要客户端115和服务器105处于网络通信中,服务器105就可以a)从客户端115接收请求并且b)向客户端115发送回请求的资源。如果客户端115和服务器105未连接,则网络应用显示‘404未找到’消息。
本领域技术人员将认识到接收请求的服务器105可以是在‘一对一’关系中连接到客户端115、因此可以向客户端发送回请求的资源的网络。然而如果服务器105未保持请求的资源并且请求的资源驻留于第二服务器105上并且第二服务器已经失去与服务器的网络连通性,则不能满足客户端的请求。
为了解决以上问题并且根据一个优选实施例,图4描绘预测数据结构部件400。预测数据结构部件400如本领域所知可与网络应用120操作。预测数据结构部件400可以嵌入于网络应用120内或者可以作为插件安装到现有网络应用120。
预测数据结构部件400包括用于检测客户端115和服务器105何时不再被网络连接的逻辑。响应于检测到失去网络连通性,预测数据结构部件生成如下数据结构,应用的源代码需要该数据结构以便源代码继续执行并且提供既定功能。创建的数据结构是如下数据结构的副本,该副本在服务器105和客户端115通过网络135通信的情况下本来应由源代码创建。预测数据结构部件400确定源代码需要什么资源以便源代码执行和完成。通过预测需要哪些数据结构,预测数据结构部件400可以创建数据结构并且修改对服务器侧资源的源代码引用以指向在客户端115上存储的创建的数据结构。因此,在已经在源代码中修改源代码引用之后,源代码可以沿着它的执行路径继续并且执行如同它被网络连接一样。因此,对于用户来说,表现的如同客户端115和服务器105仍然被网络连接一样。
根据第一实施例,位于客户端115上的数据连通性检测器部件415连续监视对于资源140的HTTP请求。在检测到客户端115请求已经超时或者客户端115接收HTTP404错误代码时,数据连通性检测器部件415向预测数据结构部件400发送消息。
预测数据结构部件400包括多个部件,这些部件相互交互以便向离线应用提供进行中的功能、即因此给予应用在线的印象。
预测数据结构部件400运用两种技术以实现这一点。一种是‘空’数据结构创建器410,而另一种是‘前瞻’数据结构创建器405。两个预测数据结构部件405、410的目的是在已经在客户端115与服务器105之间失去连通性时通过重建离线应用需要的数据结构来提供进行中的功能。
参照图5、6和8,前瞻数据结构创建器部件405经由消息接收器部件500接收通知失去网络连通性的消息(步骤800)。这一消息可以采用‘资源故障’消息、比如HTTP404响应的形式。
拦截器部件505访问和拦截在客户端115上运行的应用110的源代码。拦截器部件505通过确定逻辑已经在执行路径中何处请求网络(例如哪个具体代码行)来开始。这一点称为‘退出点’615(步骤805),因为执行流程可能由于缺乏网络连通性而不再能够继续。执行路径是如下顺序,应用的源代码行按照该顺序执行以便提供在线应用的功能。例如网络应用120发送对于访问www.pensioncalculator.com的请求。服务器105取读请求的资源140并且向客户端115发送资源。客户端115接收资源140,并且网络应用120显示需要用户的数据输入的问题(请录入你的性别)。用户录入他们的性别‘女性’,并且执行路径规定基于响应‘女性’应当向用户呈现具体问题集。如果在这一点在客户端115与服务器105之间失去执行路径网络连通性,则这称为‘退出点’。
在执行路径中的退出点的位置,拦截器部件505修改并且向存储器存储库中复制源代码并且向脚本引擎510发送调用。脚本引擎510与解析部件515组合解析从在退出点之前的第一个标识的数据结构开始的在存储器中存储的源代码。这是因为脚本引擎必须标识a)什么是正在向用户显示的当前数据结构和b)数据结构需要按照用户输入而遵循的执行路径。脚本引擎510通过标识在源代码中的第一条件语句(步骤810)来开始。条件语句可以采用“如果这样,则……;否则……(if this,then else)”的形式,例如如果X的值大于Y的值,则执行具体动作、基于肯定确定来执行动作等。
在标识条件语句、比如‘IF’语句时,脚本引擎生成数据元,该数据元将满足IF语句的分支(步骤815)。为了进一步说明这一概念,将使用称为‘养老金计算器’的在线应用的示例。
在用户起动称为‘养老金计算器’的在线应用时,可以向用户呈现‘主页’。主页提供关于在线应用的细节和如下信息,在线应用需要来自用户的该信息以便计算最终计算。在这一时间点,从其访问在线应用的客户端115具有与服务器105的网络连通性。
用户选择主页上的用于起动养老金计算器的选项。向服务器105发送对于取读将在客户端115上向用户显示的下一页面的HTTP请求。拦截器部件505在后台中连续工作从而监视在客户端115与服务器105之间的网络连通性的状态。
只要有网络连通性,客户端115将接收请求的资源140,并且服务器105将接收对于资源140的请求并且从资源140在网络135中取读资源140,无论其位于哪里。如果在这一点,拦截器部件505标识无连通性,则向脚本引擎510发送消息,该消息指令它开始解析离线应用110的源代码。
作为示例,如果将向用户显示的下一页面是指令用户选择他们的性别的‘下拉’框,则用户通常将选择下拉框并且录入他们的性别,并且将向服务器105发送请求取读‘个人.性别’数据集的请求。然而如果无网络连通性,则服务器105未接收对于‘个人.性别’数据集的请求,不能满足客户端的请求,并且请求超时。
因此,根据本发明的一个实施例,脚本引擎510标识逻辑流程中的退出点并且备注需要‘个人.性别’数据集。
脚本引擎510生成数据元,这些数据元将满足条件语句以便生成数据结构如同客户端和服务器被网络连接一样。脚本引擎510与逻辑部件520接口,该逻辑部件本身包括规则这一形式的条件语句以便测试和验证条件语句的每个分支。通过测试和验证具有变量的条件语句的每个分支,可以生成数据结构(即确定预期响应)。例如,如果条件语句是‘如果个人年龄=>65,则显示数据集‘X’’。
逻辑部件515测试和验证条件语句以标识数据集‘X’(预期响应)。一旦验证,变量(variable)数据集‘X’就变成生成的数据结构的部分。通过修改应用的源代码,使用生成的数据结构而不是必须请求来自与客户端115无网络连通性的服务器105的资源。因此,脚本引擎510测试和验证条件语句的每个可能分支,例如如果有五个可能执行路径,每个执行路径具有执行源代码,则将有五个数据结构集。本领域技术人员将认识五个数据结构集中的每个数据结构集可以具有五个数据集中的每个数据集公共的重叠数据。
又一示例如下:
数据结构
个人={性别:???}
条件语句可以陈述如下:
如果(个人.性别====“女性”&&个人.年龄>60){
呈现养老金问题();
}否则如果(个人.性别====“男性”&&个人.年龄>65){
呈现养老金问题();
}
脚本引擎510与逻辑部件515交互以创建和标识条件语句的每个可能响应(步骤815)。例如,如果性别为女性并且个人的年龄大于年龄六十岁,则呈现具体养老金问题,这些问题涉及年龄大于六十岁的女性(图6的605、610)。取条件语句的不同分支,例如如果性别是男性并且个人的年龄大于六十五岁,则呈现具体养老金问题,这些问题涉及年龄大于六十五岁的男性(图6的615、620)。
在完成创建条件语句的答案的每一个可能排列时,脚本引擎510构造在线应用110为了继续操作而需要的整个数据结构(步骤820)。注意在这一点,已经生成、但是尚未执行数据结构。
拦截器部件505将消息修改成‘成功’消息以便源代码继续执行(步骤825)。源代码可以采用例如XML、HTML或者JavaScript等的形式。
解析部件515解析脚本引擎510已经创建的整个数据结构并且向用户呈现相关数据结构。例如:
个人
录入性别
录入年龄
根据用户的答案,解析部件510取回适当数据集并且向用户呈现适当数据集用于录入进一步信息。用户的输入的答案中的每个答案作为变量存储于数据存储库525中。在向用户呈现每个数据结构时,用户录入他们的答案,并且答案中的每个答案定义接着向用户呈现哪个数据结构、因此定义将遵循哪个执行路径。构建部件530沿着这一相同执行路径执行从而向问题中的每个问题填充用户输入的变量,并且离线应用继续以如同它离线一样的相同方式执行(步骤830)。
数据存储库525存储用户向应用10中输入的数据。数据映射到源代码中的变量。数据存储库525包括映射以便将从用户接收的数据映射到源代码中列举的变量以便标识哪个数据与源代码中的变量关联。因此,从确定的退出点用指向如下指针的指针执行源代码,该指针指向生成的数据结构。
在另一实施例中,概率部件535确定是否将在执行路径内到达特定源代码块的概率。例如基于用户对特定问题的响应,可以认为不可能到达条件语句的特定分支。在这一场景中,如果不可能到达代码块,则用户将无需录入数据。因此,用户将仅需输入用于最可能执行的代码块的数据。
在一个备选实施例中并且参照图7和9,空数据结构410部件监视用户的在线活动以便构建用于在拦截器部件检测到在客户端与服务器之间失去网络连通性时执行的数据结构的历史记录。
在这一示例实施例中,监视部件705监视用户的在线活动并且记录何时访问在线应用110。在数据存储库720中存储标识信息、比如在线应用110的URL、在线应用110的名称、版本号和访问日期(步骤900)。这一信息用来在检测到无网络连通性的情况下确定是否之前已经访问在线应用110。
资源取回部件725监视用户与在线应用110的交互并且检查源代码以标识向用户呈现的或者用户与之交互的每个数据结构。同前,监视部件监视每个条件语句并且在存储器中暂时存储在返回什么数据集方面对条件语句中的每个条件语句的响应(步骤905)。
并行地,脚本引擎715解析数据结构和输入数据并且从数据结构去除输入数据并且在数据存储库730中存储空数据结构(步骤915)。
因此,数据存储库730包括空数据结构的存储库以及指向数据结构中的依赖空数据结构的链接和与这些依赖空数据结构的交互。
在一个备选实施例中,也存储用户的输入数据。
本领域技术人员将认识在时间段内增进空数据结构的数据存储库的创建。这是因为用户仅可以使用组成在线应用的功能集的子集。因此,如果在线应用包括功能集F1至Fn,则在第一交互时,用户仅可以使用子集F1和F2。因此,在数据存储库中存储子集F1和F2的空数据结构。在后续交互时,可以访问相同子集或者可以访问其它先前未访问的子集、例如F7至F12。在数据存储库中存储这些新子集。
在用户在以后时间访问在线应用110时,拦截器部件710不断监视在客户端与服务器之间的网络连通性的状态。在拦截器部件710检测到已经失去网络连通性时,拦截器部件710向脚本引擎715发送用于开始表现和生成应用110的预期执行流程的消息(步骤925)。脚本引擎710通过检查URL和其它标识信息来确定用户以前是否已经访问在线应用110。
脚本引擎715使用数据存储库730中存储的空数据结构来确定用户在执行流程中的哪个点与服务器105失去网络连通性(步骤935)并且通过执行源代码并且用生成的数据结构填充执行源代码来重建执行路径(步骤940至950)。
在以上示例中的任一示例中,在网络连通性检测器部件检测到已经恢复网络连通性时,向脚本引擎发送用于创建数据分组的消息,该数据分组包括信息、比如处理已经在执行路径中到达哪一点。服务器能够使用这一信息以继续执行源代码直至它的结束。
预测数据结构部件也可以用来在向联网数据处理系统中部署应用之前测试基于web的应用。预测数据结构部件能够生成源代码为了在应用未被部署网络并且不能从网络连接的服务器取读请求的资源时继续沿着执行路径执行而需要的数据结构。因此,可以在离线环境中验证和测试应用为了完成请求的事务而需要完成的事务序列。在这一示例中,可以生成报告以向开发者通知由于在源代码中的引用中的错误而不能完成的执行路径。
本发明可以采用全硬件实施例、全软件实施例或者包含硬件和软件单元二者的实施例的形式。在一个优选实施例中,在包括但不限于固件、常驻软件、微代码等的软件中实施本发明。
本发明可以采用从计算机可用或者计算机可读介质可访问的计算机程序产品的形式,该计算机可用或者计算机可读介质提供用于由计算机或者任何指令执行系统使用或者与计算机或者任何指令执行系统结合使用的程序代码。出于本说明书的目的,计算机可用或者计算机可读介质可以是任何可以包含、存储、传达、传播或者传送用于由指令执行系统、装置或者设备使用或者与该指令执行系统、装置或者设备结合使用的程序的装置。
介质可以是任何电子、磁、光、电磁、红外线或者半导体系统(或者装置或者设备)或者传播介质。计算机可读介质的示例包括半导体或者固态存储器、磁带、可去除计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括紧致盘只读存储器(CD-ROM)、紧致盘读/写(CD-R/W)和DVD。
可以对前文进行改进和修改而未脱离本发明的范围。

Claims (20)

1.一种用于在应用在网络连接的数据处理系统中离线操作时为所述应用生成预测数据结构的方法,所述应用包括具有执行路径的源代码,所述方法包括以下步骤:
确定在所述应用的所述源代码内的退出点;
根据所述退出点确定包括至少一个条件语句的执行路径;
标识所述至少一个被标识条件语句的一个或者多个分支,并且为每个被标识分支确定预期响应;
为每个确定的预期响应根据所述响应生成数据结构;
从所述退出点沿着所述源代码的所述执行路径继续,并且用指向生成的所述数据结构的指针替换所述源代码中的对于资源的每个请求;以及
从所述确定的退出点用指向生成的所述数据结构的所述指针执行所述源代码。
2.如权利要求1所述的方法,其中确定预期响应包括用一个或者多个逻辑规则测试所述条件语句的每个分支以便确定所述预期响应的步骤。
3.如权利要求2所述的方法,其中每个逻辑规则包括用于映射到在所述应用的所述源代码中的变量的数据集,并且所述数据集包括响应于所述变量的所述输入而将在所述网络应用的视窗中显示的数据。
4.如权利要求1所述的方法,其中所述退出点是所述源代码由于确定失去网络活动而不能执行的代码行。
5.如权利要求1所述的方法,其中替换对于资源的请求包括修改在所述源代码中标识的对在所述服务器上的资源的引用,以引用生成的所述数据结构。
6.如权利要求5所述的方法,还包括执行具有所述修改的引用的所述源代码。
7.如权利要求1所述的方法,还包括确定所述客户端和所述服务器是否被网络连接,以及响应于肯定确定而向所述服务器发送数据分组,并且所述服务器从所述源代码的、所述客户端交接处理的位置继续执行所述应用的所述源代码。
8.如权利要求1所述的方法,还包括监视客户端的对来自服务器的资源的请求,并且根据所述请求确定用于在历史数据存储库中存储的数据结构。
9.如权利要求7所述的方法,还包括从所述存储的数据结构去除任何个人数据。
10.一种用于在应用在网络连接的数据处理系统中离线操作时为所述应用生成预测数据结构的装置,所述应用包括具有执行路径的源代码,所述方法包括以下步骤:
用于确定在所述应用的所述源代码内的退出点的拦截器部件;
用于根据所述退出点确定包括至少一个条件语句的执行路径的脚本引擎;
用于标识所述至少一个被标识条件语句的一个或者多个分支并且为每个被标识分支确定预期响应的脚本引擎;
用于为每个确定的预期响应根据所述响应生成数据结构的脚本引擎;
用于从所述退出点沿着所述源代码的所述执行路径继续、并且用指向生成的所述数据结构的指针替换所述源代码中的对于资源的每个请求的脚本引擎;以及
用于从所述确定的退出点用指向生成的所述数据结构的所述指针执行所述源代码的构建部件。
11.如权利要求10所述的装置,其中确定预期响应包括用一个或者多个逻辑规则测试所述条件语句的每个分支以便确定所述预期响应的步骤。
12.如权利要求11所述的装置,其中每个逻辑规则包括用于映射到在所述应用的所述源代码中的变量的数据集,并且所述数据集包括将响应于所述变量的所述输入而在所述网络应用的视窗中显示的数据。
13.如权利要求10所述的装置,其中所述退出点是所述源代码由于确定失去网络活动而不能执行的代码行。
14.如权利要求10所述的装置,其中替换对于资源的请求包括修改在所述源代码中标识的对在所述服务器上的资源的引用,以引用生成的所述数据结构。
15.如权利要求14所述的装置,还包括执行具有所述修改的引用的所述源代码。
16.如权利要求10所述的装置,还包括:网络连通性检测器,用于确定所述客户端和所述服务器是否被网络连接,以及响应于肯定确定而向所述服务器发送数据分组,并且所述服务器从所述源代码的、所述客户端交接处理的位置继续执行所述应用的所述源代码。
17.如权利要求10所述的装置,还包括:监视部件,用于监视客户端的对来自服务器的资源的请求,并且根据所述请求确定用于在历史数据存储库中存储的数据结构。
18.如权利要求16所述的装置,还包括从所述存储的数据结构去除任何个人数据。
19.一种用于在网络应用未连接到网络时测试所述网络应用的方法,所述网络应用可操作用于跨网络与服务器通信,所述应用包括具有执行路径的源代码,所述方法包括以下步骤:
确定在所述应用的所述源代码内的退出点;
根据所述退出点确定包括至少一个条件语句的执行路径;
标识所述至少一个被标识条件语句的一个或者多个分支,并且为每个被标识分支确定预期响应;
为每个确定的预期响应根据所述响应生成数据结构;
从所述退出点沿着所述源代码的所述执行路径继续,并且用指向生成的所述数据结构的指针替换所述源代码中的对于资源的每个请求;
从所述确定的退出点用指向生成的所述数据结构的所述指针执行所述源代码。
20.一种包括计算机程序代码的计算机程序,所述计算机程序代码用于在向计算机系统中加载和执行时执行根据权利要求1至9中的任一权利要求所述的方法的所有步骤。
CN201280050218.7A 2011-10-12 2012-10-08 生成预测数据结构 Active CN103874998B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11184879.2 2011-10-12
EP11184879 2011-10-12
PCT/IB2012/055429 WO2013054248A1 (en) 2011-10-12 2012-10-08 Generating a predictive data structure

Publications (2)

Publication Number Publication Date
CN103874998A true CN103874998A (zh) 2014-06-18
CN103874998B CN103874998B (zh) 2017-02-15

Family

ID=48081445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280050218.7A Active CN103874998B (zh) 2011-10-12 2012-10-08 生成预测数据结构

Country Status (4)

Country Link
US (3) US9557966B2 (zh)
CN (1) CN103874998B (zh)
DE (1) DE112012004301T5 (zh)
WO (1) WO2013054248A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200210162A1 (en) * 2018-12-31 2020-07-02 Kevin D. Howard Computer Processing and Outcome Prediction Systems and Methods
US10725751B2 (en) 2011-10-12 2020-07-28 International Business Machines Corporation Generating a predictive data structure

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100450B2 (en) * 2016-02-26 2021-08-24 International Business Machines Corporation Document quality inspection
US10817272B2 (en) * 2016-12-12 2020-10-27 Sap Se Generation and usage of language-converted script
US10957195B2 (en) * 2018-06-29 2021-03-23 Lyft, Inc. Apparatuses, systems, and methods for graphical progress interfaces for dynamic transportation networks
CN109324792B (zh) * 2018-10-09 2022-03-11 深圳点猫科技有限公司 一种基于编程语言的路由构建自动化方法及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126134A1 (en) * 2002-01-03 2003-07-03 Roy Messing Method and apparatus for retrieving and processing data
US20040243587A1 (en) * 2003-05-29 2004-12-02 Nuyens Erik D. Method and system for externalizing conditional logic for collecting multi-purpose objects
CN1758246A (zh) * 2004-05-03 2006-04-12 微软公司 用于脱机显示和辅助信息导航的数据缓存
US20070033155A1 (en) * 2005-08-02 2007-02-08 Landsman Richard A Client/server web application architectures for offline usage, data structures, and related methods
US20080222628A1 (en) * 2007-03-05 2008-09-11 Nikhil Kumar Batra Method and Apparatus for a Browser with Offline Web-Application Architecture
CN101529415A (zh) * 2006-10-30 2009-09-09 微软公司 基于web的应用程序的离线执行

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7222161B2 (en) 1999-11-24 2007-05-22 Yen Robert C Method and system for facilitating usage of local content at client machine
US20020073076A1 (en) 2000-12-11 2002-06-13 Yongjie Xu System and method for enabling off-line database functionality
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US8141052B2 (en) * 2003-05-09 2012-03-20 Microsoft Corporation Instrumenting software for enhanced diagnosability
JP4616035B2 (ja) 2005-02-25 2011-01-19 富士通株式会社 サーバ負荷分散プログラム,装置および方法
US7953861B2 (en) 2006-08-10 2011-05-31 International Business Machines Corporation Managing session state for web applications
US7631214B2 (en) 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
DE602007004587D1 (de) 2007-06-29 2010-03-18 Ericsson Telefon Ab L M Verschleierung von Ausführungsspuren eines Computerprogrammcodes
WO2010065796A1 (en) 2008-12-03 2010-06-10 Mobophiles, Inc. System and method for providing virtual web access
US8359574B1 (en) * 2009-01-16 2013-01-22 Adobe Systems Incorporated Offline mode in IDE for seamless service-oriented-architecture-based application development
CN101876934B (zh) 2009-04-30 2013-08-21 国际商业机器公司 一种用于对输入数据进行采样的方法和系统
WO2010127216A2 (en) 2009-05-01 2010-11-04 Telcodia Technologies, Inc. Automated determination of quasi-identifiers using program analysis
US9557966B2 (en) 2011-10-12 2017-01-31 International Business Machines Corporation Generating a predictive data structure

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126134A1 (en) * 2002-01-03 2003-07-03 Roy Messing Method and apparatus for retrieving and processing data
US20040243587A1 (en) * 2003-05-29 2004-12-02 Nuyens Erik D. Method and system for externalizing conditional logic for collecting multi-purpose objects
CN1758246A (zh) * 2004-05-03 2006-04-12 微软公司 用于脱机显示和辅助信息导航的数据缓存
US20070033155A1 (en) * 2005-08-02 2007-02-08 Landsman Richard A Client/server web application architectures for offline usage, data structures, and related methods
CN101529415A (zh) * 2006-10-30 2009-09-09 微软公司 基于web的应用程序的离线执行
US20080222628A1 (en) * 2007-03-05 2008-09-11 Nikhil Kumar Batra Method and Apparatus for a Browser with Offline Web-Application Architecture

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
潘大四: "基于FLEX技术构建可离线Web应用程序的研究与实现", 《计算机科学》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725751B2 (en) 2011-10-12 2020-07-28 International Business Machines Corporation Generating a predictive data structure
US20200210162A1 (en) * 2018-12-31 2020-07-02 Kevin D. Howard Computer Processing and Outcome Prediction Systems and Methods
US11520560B2 (en) * 2018-12-31 2022-12-06 Kevin D. Howard Computer processing and outcome prediction systems and methods
US20230127715A1 (en) * 2018-12-31 2023-04-27 Kevin D. Howard Computer Processing and Outcome Prediction Systems and Methods
US11789698B2 (en) * 2018-12-31 2023-10-17 Kevin D. Howard Computer processing and outcome prediction systems and methods

Also Published As

Publication number Publication date
US10235143B2 (en) 2019-03-19
US20170060549A1 (en) 2017-03-02
US20190073199A1 (en) 2019-03-07
US20140282374A1 (en) 2014-09-18
CN103874998B (zh) 2017-02-15
US10725751B2 (en) 2020-07-28
DE112012004301T5 (de) 2014-07-31
US9557966B2 (en) 2017-01-31
WO2013054248A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
CN105940654B (zh) 特权静态被托管的web应用
US9465725B2 (en) Software defect reporting
CN103874998A (zh) 生成预测数据结构
CN100580672C (zh) 基于上下文的导航组件和方法
Hallé et al. Runtime Verification of Web Service Interface Contracts.
US8219687B2 (en) Implementing browser based hypertext transfer protocol session storage
CN110083455B (zh) 图计算处理方法、装置、介质及电子设备
CN101997903A (zh) 用于处理超文本传输协议请求的方法和系统
JP2019500680A (ja) データ処理方法及び装置
CN1937532A (zh) 用于处理网络服务器故障的方法和健康监控器
US11294740B2 (en) Event to serverless function workflow instance mapping mechanism
CN111651347B (zh) 测试系统的跳转验证方法、装置、设备及存储介质
CN100550015C (zh) 改进的用户界面
US11144930B2 (en) System and method for managing service requests
CN115189964A (zh) 一种违规外联检测方法、装置、设备、存储介质
CN1953403A (zh) 用于呈现监控报告的方法和系统
US8312075B1 (en) System, method and computer program product for reconstructing data received by a computer in a manner that is independent of the computer
Passini et al. Developing self-adaptive service-oriented mobile applications: a framework based on dynamic deployment
CN112583891B (zh) 接口文档获取方法、装置和服务器
CN114610732A (zh) 兜底数据处理方法及装置
US11334420B2 (en) Remote recovery and support using chat messages
CN112799957A (zh) 基于用户行为的故障处理方法、系统、设备和介质
Mahmoud et al. Toward a reliable service-based approach to software application development
Jayashree Trapping Runtime Faults from Web Service Fault Ontology
CN106095946A (zh) 页面的处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant