推迟的状态改变制造技术

技术编号:24019741 阅读:75 留言:0更新日期:2020-05-02 04:50
实施例提供了推迟的状态改变。接收定义实现客户端应用的一部分的动作链的信息。接收到的信息包括用于修改与每个动作链相关联的全局状态的显式计算机可执行指令。为每个动作链自动生成计算机可执行指令,以为每个动作链创建对全局状态的相应的私有视图。自动将单独的隐式计算机可执行指令与每个显式计算机可执行指令相关联。在客户端应用的运行时期间执行隐式计算机可执行指令而不是相应的显式计算机可执行指令。

Delayed status change

【技术实现步骤摘要】
【国外来华专利技术】推迟的状态改变相关申请的交叉引用本申请要求于2018年6月7日提交的题为DEFERREDSTATEMUTATION(ORACP0207/ORACP180299-US-NP)的美国专利申请序列No.16/003,016和于2017年9月28日提交的题为DEFERREDSTATEMUTATION(ORACP0207P-1/ORACP180299-US-PSP)的美国临时专利申请序列No.62/564,943和于2018年2月12日提交的题为DEFERREDSTATEMUTATION的美国临时专利申请序列No.62/629,520(ORACP0207P-2/ORACP180299-US-PSP-2)的优先权,这些专利申请通过引用并入本文,就像出于所有目的在本文完全阐述一样。
技术介绍
当进程正在使用共享变量或其它数据在计算环境中执行时,它可能在其它进程也使用该共享数据时难以确保正确的操作。当该进程与其它进程中的一个或多个并行操作时,或者当该进程无法保证具有不间断的执行时,可能会发生冲突。可能发生共享数据冲突的一个领域是web应用开发。一种类型的web应用的示例是基于浏览器的应用,其可以使用超文本标记语言(HTML)、JavascriptTM等语言来实现“无状态(stateless)”执行方法。基于浏览器的应用中存在各种协议和标准,诸如面向服务的体系架构(SOA)、表示性状态转移(REST)等,这些协议和标准允许将复杂的系统设计为web应用。随着更多的特征、功能和复杂性被引入到web应用中,数据冲突问题的可能性越来越大,但是这种间歇性错误可能难以重现和纠正。在web应用开发阶段尤其如此,在web开发阶段,多个不同的人类开发者独立创建功能,并且该功能旨在由单个用户在执行阶段作为连贯或集成的体验来执行。功能可以是例如用于在线购买商品或服务,其中产品浏览、比较、购买、记录保存和其它功能对于用户而言似乎可以同时执行,或者无需用户等待特定功能的完成。
技术实现思路
一个实施例提供了延迟的状态改变。定义实现客户端应用的一部分的动作链的信息被接收。接收到的信息包括用于修改与每个动作链相关联的全局状态的显式计算机可执行指令。为动作链中的每个动作链自动生成计算机可执行指令,以为动作链中的每个动作链创建对全局状态的相应的私有视图。自动将单独的隐式计算机可执行指令与显式计算机可执行指令中的每个指令相关联。在客户端应用的运行时期间执行隐式计算机可执行指令,而不是相应的显式计算机可执行指令。一个实施例提供了一种处理器可读的非暂态存储设备,其包括用于提供推迟的状态改变的方法的指令,该方法包括:接收定义实现客户端应用的一部分的动作链的信息,其中接收到的信息包括用于修改与每个动作链相关联的全局状态的显式计算机可执行指令;为动作链中的每个动作链自动生成计算机可执行指令,以为动作链中的每个动作链创建对全局状态的相应的私有视图;以及自动将单独的隐式计算机可执行指令与显式计算机可执行指令中的每个显式计算机可执行指令相关联,其中在客户端应用的运行时期间执行隐式计算机可执行指令,而不是相应的显式计算机可执行指令。可以通过参考说明书的其余部分和附图来实现对本文公开的特定实施例的性质和优点的进一步理解。附图说明图1描绘了根据一个实施例的并行执行的动作链。图2描绘了根据一个实施例的系统的框图。图3描绘了根据一个实施例的快照的实现方式。图4描绘了根据一个实施例的为将是用户界面的一部分的按钮创建动作链的页面的屏幕截图。图5描绘了根据一个实施例的开发者可以用来映射他们想要用于该动作链的输入参数的web页面。图6描绘了根据一个实施例的不熟练的开发者可以用来将UI部件绑定到部件事件的web页面。图7描绘了根据一个实施例的包括事件列表的web页面。图8描绘了根据一个实施例的用于提供推迟的状态改变的方法的流程图。图9描绘了根据一个实施例的系统。图10是根据一个实施例的可用于实现本文描绘的图的实施例的系统和附随的计算环境的总体框图。图11是根据一个实施例的可用于实现本文描述的实施例的计算设备的总体框图。具体实施方式在高度并行的系统中,多个进程可能同时更新共享状态,从而导致潜在的冲突。进程可以是被执行以执行预定功能的代码的一部分。虽然可能讨论了特定的功能,诸如用户与客户端应用的用户界面进行交互,但清楚的是本文描述的特征可以适于根据需要与任何其它功能一起使用。常规上,多个并行进程同时更新共享状态的问题或者根本没有解决,或者使用了复杂的编程机制,诸如锁、互斥(mutex)或关键区段(criticalsection)。编写使用这些复杂的编程机制的代码要求开发者具有复杂的编程技能。各种实施例在不使用复杂的编程机制的情况下以使得不熟练的开发者能够创建代码的方式解决这些问题。推迟的状态改变使得不熟练的开发者能够为客户端应用创建计算机可执行指令,同时避免潜在的冲突。这允许每个进程具有对共享状态的一致视图,并且具有在相应进程完成时更新该共享状态的可预测的方式。在事件驱动的应用中,进程对事件进行响应以执行某些操作。由于事件可能同时发生,并且对这些事件的处理可能异步发生,因此可能响应于事件而改变的任何状态都可能并通常将处于竞争中(incontention)。在设计和实现事件处置器(handler)时,考虑其它外部处置器可能对被同时使用的状态进行改变这一事实可能是困难的。例如,采用以下示例性伪代码:onAdditionButtonClick:setresult=sum(A,B)printA,“+”,B,“=”,result例如,假设当执行指令“setresult=sum(A,B)”(也称为“设置(theset)”)时,初始状态A具有值3,并且状态B具有值2,从而提供结果5。此外,假设状态A在设置(set)之后但在打印(print)之前被不同的处置器或进程例如从3更改或改变为2。在这种情况下,可能通过“printA,‘+’,B,‘=’,result”指令打印出无意义2+2=5。上面的示例在一个简单的示例中说明了共享变量A存在的问题,变量A可以由两个或更多个进程或处置器写入。首先,由于两个进程正在异步运行(例如,第一个进程:onAdditionButtonClick,以及第二个进程写入A),因此存在A当前值是什么的问题。第二个问题是:当进程检测到存在错误时(例如,我们打印出“2+2=5”而不是“3+2=5”),确定A和B在伪代码开始时的初始值是什么使得处理可以回滚到已知的起始点。在当前的开发环境中,可能存在非常多异步运行并访问许多共享变量的进程,或者换句话说,变量可以由两个或更多个进程异步共享。因此,出于调试目的,需要在对变量进行修改之前对其进行快照。在一个实施例,修改意味着被写入而不是仅被读取。在一个实施例中,可以通过不修改原始共享变量值而是为想要进行该修改的进程创建局部副本来实现这种快照。对于要对原始共享变量值做出异步更改的每本文档来自技高网
...

【技术保护点】
1.一种处理器可读的非暂态存储设备,包括用于提供推迟的状态改变的方法的指令,所述方法包括:/n接收定义实现客户端应用的一部分的动作链的信息,其中接收到的信息包括用于修改与每个动作链相关联的全局状态的显式计算机可执行指令;/n为动作链中的每个动作链自动生成计算机可执行指令以为动作链中的每个动作链创建对全局状态的相应的私有视图;以及/n自动将单独的隐式计算机可执行指令与显式计算机可执行指令中的每个显式计算机可执行指令相关联,其中,在客户端应用的运行时期间执行隐式计算机可执行指令而不是相应的显式计算机可执行指令。/n

【技术特征摘要】
【国外来华专利技术】20170928 US 62/564,943;20180212 US 62/629,520;20181.一种处理器可读的非暂态存储设备,包括用于提供推迟的状态改变的方法的指令,所述方法包括:
接收定义实现客户端应用的一部分的动作链的信息,其中接收到的信息包括用于修改与每个动作链相关联的全局状态的显式计算机可执行指令;
为动作链中的每个动作链自动生成计算机可执行指令以为动作链中的每个动作链创建对全局状态的相应的私有视图;以及
自动将单独的隐式计算机可执行指令与显式计算机可执行指令中的每个显式计算机可执行指令相关联,其中,在客户端应用的运行时期间执行隐式计算机可执行指令而不是相应的显式计算机可执行指令。


2.如权利要求1所述的处理器可读的非暂态存储设备,其中所述方法还包括:
将客户端应用配置为在运行时期间执行隐式计算机可执行指令而不是相关联的显式计算机可执行指令。


3.如权利要求1所述的处理器可读的非暂态存储设备,其中所述方法还包括:
响应于指定用户请求的信号,显示显式计算机可执行指令中的至少一个显式计算机可执行指令;以及
不显示与所述至少一个显式计算机可执行指令对应的隐式计算机可执行指令。


4.如权利要求1所述的处理器可读的非暂态存储设备,其中所述方法还包括:
在客户端应用的运行时期间,
在与客户端应用通信的客户端设备的浏览器中显示用于客户端应用的web页面;
响应于检测到对web页面中描绘的用户界面控件的用户选择而生成事件;以及
响应于所述事件而开始动作链中的特定动作链。


5.如权利要求4所述的处理器可读的非暂态存储设备,其中所述方法还包括:
响应于所述特定动作链的开始,为特定动作创建全局变量的快照,其中所述快照包括所述特定动作链局部的局部变量;以及
将全局变量的值分配给局部变量,其中局部变量中的每个局部变量被分配全局变量之一的值。


6.如权利要求5所述的处理器可读的非暂态存储设备,其中所述方法还包括:
用全局变量中的每个全局变量与局部变量之一之间的关联来创建包装器;以及
基于所述关联,将全局变量的值分配给局部变量。


7.如权利要求5所述的处理器可读的非暂态存储设备,其中所述方法还包括:
在动作链的执行期间修改局部变量而不是对应的全局变量。


8.如权利要求5所述的处理器可读的非暂态存储设备,其中所述方法还包括:
将动作链中的每个动作链与对应的局部变量隔离在相应的分区中,其中动作链中的每个动作链被隔离在单独的分区中。


9.如权利要求1所述的处理器可读的非暂态存储设备,其中所述方法还包括:
通过执行了接收、自动生成和自动关联的设计时工具来执行客户端应用。


10.如权利要求1所述的处理器可读的非暂态存储设备,其中所述方法还包括:
在显式计算机可执行指令的全局变量被写入时而不在全局变量被读取时,由智能包装器创建局部变量。


11....

【专利技术属性】
技术研发人员:C·斯图布
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1