首页> 中国专利> 利用同步通信协议来实现异步应用和业务线行为

利用同步通信协议来实现异步应用和业务线行为

摘要

本发明的实施方式提供利用同步通信协议来实现异步应用和业务线行为。应用平台(AP)可被提供并配置成对任何同步操作提供挂起状态,指示该操作还未完成。如果应用知道如何追踪具有挂起状态的操作,应用可以控制该操作何时进入和退出挂起状态,与AP通信以拖延取决于挂起操作的其它操作。如果应用不知道如何追踪具有挂起状态的操作,AP可以忽略挂起状态并前进至其它操作。同步用户体验被保留,其中简明、下级UI和体验是适当的。当应用知道如何处理各种底层系统的异步特性时,UI和体验也得到扩展。

著录项

  • 公开/公告号CN102150149A

    专利类型发明专利

  • 公开/公告日2011-08-10

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200980135905.7

  • 申请日2009-08-24

  • 分类号G06F15/16(20060101);G06F9/44(20060101);G06F21/00(20060101);G06F9/06(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 03:04:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F9/445 变更前: 变更后: 登记生效日:20150504 申请日:20090824

    专利申请权、专利权的转移

  • 2013-09-04

    授权

    授权

  • 2011-09-21

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20090824

    实质审查的生效

  • 2011-08-10

    公开

    公开

说明书

背景技术

当在软件应用中执行操作时,该操作通常会立即成功或失败。这一行为被称为同步应用行为。然而,在软件应用中还存在许多异步应用行为的情形。在这些情形中,应用可能不会在用户进行某项操作后立刻同步地完成。例如,当与协作系统或业务线(LOB)系统一同工作时,软件应用往往采用更复杂的方式来构成。该应用可以触发经由协作服务器路由到多个用户的工作流。该应用还可以在LOB系统上触发工作流。此外,LOB系统上的许多操作固有地会耗费“较长”时间,因为许多互连系统需要串行地工作以使整个LOB系统表现适当。

可能存在一些LOB和协作系统/应用,它们理解所处理的信息和进程的固有异步特性并且将异步行为内置到其用户体验中。然而,发觉这些系统/应用使用起来复杂而困难。因此,需要通过在固有同步的现有底层通信协议之上进行构建并对其进行扩展来实现异步数据交换和业务进程。

本发明正是对于这些和其它考虑事项而做出的。

发明内容

提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

本发明的实施方式通过利用同步通信协议来实现异步应用和业务线行为而解决以上和其它问题。根据一个实施方式,可以提供应用平台,并将其配置成为任何同步操作提供挂起状态。挂起状态指示该操作还未完成。对于知道如何追踪具有挂起状态的操作的应用,该应用可以控制该操作何时进入和退出挂起状态。应用可以与应用平台通信以拖延取决于挂起的操作的那些操作,因为挂起的操作并未完成。对于不知道如何追踪具有挂起状态的操作的应用,应用平台可以忽略该操作的挂起状态并前进至其它操作。因此,同步用户体验被保留,其中简明、下级用户接口和体验是适当的。此外,当应用知道如何解释和呈现各种底层系统的异步特性时,用户接口和体验被扩展。

根据一个实施方式,当应用获知可能影响权威数据的事件时以及当来自LOB系统的权威数据可用时,可以为应用提供数据提供者接口以更新本地高速缓存的权威数据。

根据另一实施方式,应用可被配置成引入与带外变化相对应的异常。带外变化是应用或应用平台的控制之外的变化或事件。带外异常可以具有定制异常处理逻辑以处理带外变化。可以为异常提供异常处理器代码,使得即使在整个应用自身当前并未运行时也能调用异常处理器。

通过阅读以下详细描述并查阅相关联的附图,表征本发明的这些和其他特征和优点将是显而易见的。可以理解,前述一般描述和以下详细描述均仅是说明性的,且不限制所要求保护的本发明。

附图说明

图1是可在其中可实践本发明的各实施方式的示例计算操作环境的简化框图。

图2是利用同步通信协议来实现异步应用和LOB行为的简图。

图3-4是利用同步通信协议来实现异步应用和LOB行为的简图,其中应用和应用平台可以在客户机器上运行。

图5是允许应用控制应用平台与LOB系统之间的权威数据交换的简图。

图6是将带外异常引入到应用中的正常请求-回复处理信道中的简图。

具体实施方式

如以上所简要描述的,本发明的实施方式涉及利用同步通信协议来实现异步应用和业务线行为。在以下详细描述中,参考了构成了详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。可组合这些实施方式,可利用其他实施方式,并且可作出结构上的改变,而不背离本发明的精神或范围。以下详细描述从而不取限定性含义,且本发明的范围由所附权利要求书及其等效实施方式来定义。

现在参照附图,其中相似的附图标记在多个附图中指代相似的元素,描述本发明的诸方面以及示例性计算操作环境。图1和以下描述旨在提供对可以在其中实施本发明实施方式的合适计算环境的简要、一般描述。尽管将在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述本发明,但本领域的技术人员可以认识到,本发明也可结合其他类型的计算系统和程序模块实现。

一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。而且,本领域的技术人员可以理解,本发明方法可以使用其他计算机系统配置来实现,包括手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。此外,本发明还可以在因特网基于web的环境中实施,其中本文描述和示出的包括富客户机用户接口组件在内的本发明组件可以被托管在本发明任何给定实施方式的组件的用户远程的网站中。

现在参考图1,将描述用于本发明的各实施方式的说明性操作环境。如图1所示,计算机100包括通用台式计算机、膝上型计算机、手持式计算机、移动计算机或能够执行一个或多个应用程序的其他类型的计算机(计算设备)。计算机100包括至少一个中央处理单元108(“CPU”)、包括随机存取存储器118(“RAM”)和只读存储器(“ROM”)120的系统存储器112、以及将存储器耦合至CPU 108的系统总线110。基本输入/输出系统存储在ROM 120中,它包含帮助在诸如启动期间在计算机内元件之间传递信息的基本例程。计算机102还包括用于储存操作系统132、应用程序、以及其他程序模块的大容量存储设备114。

大容量存储设备114通过连接至总线110的大容量存储控制器(未示出)连接到CPU 108。大容量存储设备114及其相关联的计算机可读介质为计算机100提供非易失性存储。尽管此处包含的计算机可读介质的描述指的是大容量存储设备,诸如硬盘或CD-ROM驱动器,但本领域的技术人员应理解,计算机可读介质可以是可由计算机100访问或利用的任何可用介质。

作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机100访问的任何其他介质。

根据本发明的各个实施例,计算机100可使用通过诸如局域网、因特网等的网络104与远程计算机的逻辑连接在联网环境中操作。计算机100可以通过连接至总线110的网络接口单元116来连接到网络104。应该理解,网络接口单元116也可用于连接至其他类型的网络和远程计算系统。计算机100也可包括输入/输出控制器122,用于接收和处理来自多个其他设备,包括键盘、鼠标等(未示出)的输入。类似地,输入/输出控制器122可以为显示屏、打印机或其他类型的输出设备提供输出。

如上文简要地提及的,许多程序模块和数据文件可以存储在计算机100的大容量存储设备114和RAM 118中,包括适于控制联网的个人计算机的操作的操作系统132,诸如位于华盛顿州雷德蒙市的微软公司的WINDOWS操作系统。大容量存储设备114和RAM 118还可以存储一个或多个程序模块。具体地,大容量存储设备114和RAM118可存储诸如软件应用程序124等应用程序,例如文字处理应用程序、电子表格应用程序、幻灯片演示应用程序、数据库应用程序等。

大容量存储设备114和RAM 118可以存储应用平台210。大容量存储设备114和RAM 118还可以存储应用220。根据本发明的实施方式,合适应用220的示例是由微软公司和SAP开发的DUET。

本发明的实施方式可被实现为计算机进程(方法)、计算系统或制品,诸如计算机程序产品或计算机可读介质。计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读并编码了用于执行计算机进程的指令的计算机程序的载体上的传播信号。

图2是利用同步通信协议来实现异步应用和LOB行为的简图。示例系统200用于示出本发明的使用实例。存在可以应用于本发明的异步应用和LOB行为的许多其它使用实例。应当理解,按照具体示例对本发明进行的描述只是出于说明目的,并非是对利用本发明的各实施方式的大量应用和系统的限制。

在示例系统200中,应用平台210可以被安排和配置成向软件开发者提供生产性服务和工具以构建和部署应用220来呈现并访问LOB系统230的信息和进程。

可以在应用平台210上构建应用220。应用220可以是提供一个或多个有用的软件应用模块的软件应用,或者应用220可以是提供一个或多个有用的软件应用模块(或多个独立软件应用)的软件应用套件。合适应用220的示例是由微软公司制造的、提供诸如WORD(文档对象)、EXCEL(电子数据表对象)、POWERPOINT(幻灯片演示对象)、以及ACCESS(数据库对象)的多个软件应用模块/应用的OFFICE。合适应用200的另一示例是由微软公司制造的、提供用于创建和编辑诸如电子邮件任务、联系人和约会的各种对象的多个软件应用模块/应用的OUTLOOK。合适应用220可以是提供一个或多个有用的应用模块的单个应用。例如,应用220可以是提供用于准备和编辑不同类型对象(例如简历文档模块、书信文档模块、备忘录文档模块等)的一个或多个模块的文字处理应用,诸如微软WORD。

应用220可以被开发成将应用平台210中的生产性工具与LOB系统232中定义的信息和进程相组合,使得用户可以在应用平台210的熟悉的用户界面和环境中呈现和访问信息和进程。例如,应用220可以被开发成用于将诸如微软EXCEL的电子数据表应用的生产性工具与相关联的LOB 230(例如季度销售管理模块)相组合,以便在电子数据表应用及其相关联的用户界面中访问和呈现来自LOB 230的信息。合适应用220的示例可以是由微软公司和SAP开发的DUET。

应用220可以启动要在LOB系统230中运行的操作。LOB系统230上的许多操作,诸如改变产品线项目/SKU的折扣百分比或改变雇员的地址等,固有地花费“长”时间,因为许多互连系统需要串行地进行工作以使整个LOB系统230表现适当。此外,批处理是LOB系统230中使用的公知技术。可以分批处理来自各种源的请求,并且也可以分批发送响应。因此,响应可能长时间后才能返回,并非立即。LOB系统230还可以展示触发分析计算的动作,并创建向用户呈现的结果汇总。分析计算和报表生成固有地具有昂贵的计算成本,并且通常被调度成只以特定间隔运行。因此,分析计算和报表生成会花费长时间才能返回给应用220。

当与协作或LOB系统一起工作时,应用220自身可以按更复杂的方式来构造。应用220可以触发或参与经由协作服务器路由到多个用户的工作流。应用220还可以在LOB系统230上触发工作流。在所有这些情形中,天然地理解整个工作的应用220可能无法在用户一对某个客户机采取某个动作就同步地完成。

应用220有时可以改变其处理的对象的版本。版本改变是重大步骤,因为它可能要求代价昂贵的数据/元数据更新或迁移。在这一过程中,对该对象的改变可能不得不被阻止或保持挂起。

某些应用220可能需要在作出许多相关改变之后获取整个系统的综合视图。例如,一个应用可以提交许多购物订单,另一个应用可以更新多个线项目/SKU的折扣百分比,而且再一个应用可以改变总的组织预算,等等。在这些情形中,对应用而言有意义的是,在所有以上挂起改变被协调之后获取系统状态的快照,并禁止任何进一步的改变,直到整个系统达到稳态。

应用平台210可以为应用平台210中的任何同步操作生成挂起状态。挂起状态可以指示操作还未完成。应用220可以控制操作何时进入挂起状态。应用220可以在希望发生进入挂起状态时与应用平台210通信。应用平台210没有必要自己解决。应用220还可以控制操作何时退出挂起状态以及变为成功或失败。最终,应用220可以指定关于同步操作能够保持在挂起状态多久的预定超时时段。在预定超时时段过期之后,应用平台210可以自动使挂起的操作失败。这主要是针对错误处理和清除,以便使应用平台201不会被大量未完成挂起操作淹没。

有利的是,系统200可以通过在固有地同步的现有底层通信协议之上进行构建并对其进行扩展来实现异步数据交换和业务进程。具体而言,根据一个实施方式,对于知道如何追踪具有挂起状态的操作的应用220,应用220可以与应用平台210通信以拖延取决于挂起操作的那些操作。应用220可以允许应用平台210阻止取决于挂起操作的特定操作,并且进行不取决于挂起操作的其它操作。对于不知道如何追踪具有挂起状态的操作的应用220,应用平台210则可以忽略该操作的挂起状态并前进至其它操作。因此,同步用户体验被保留,其中简明、下级用户接口和体验是适当的。此外,当应用知道如何解释和呈现各种底层系统的异步特性时,用户接口和体验被扩展。

图3-4是利用同步通信协议来实现异步应用和LOB行为的简图,其中应用220和应用平台210可以在客户机器240上运行。根据一个实施方式,应用220和应用平台210可以在客户机220上运行。LOB系统230可以在服务器机器240上运行。作为替代,应用平台210可以在客户机器240和服务器机器250两者上运行。

参照图3,应用220可以启动对LOB系统230的操作。应用操作可以在客户机器240离线时在客户机器240的操作队列中排队,并且在客户机器240恢复在线时被同步或向LOB系统230重放。根据一个实施方式,在图3所示的步骤1中,应用平台210中的同步组件214可以从操作队列212检索操作信息。

然后在步骤2,同步组件214可以请求相对于LOB系统230执行操作队列212中的操作。LOB系统230可以只返回技术确认。此时,操作可能并未完成。

在步骤3,同步组件214可以将操作队列212中该操作的状态更新为挂起状态。挂起状态可以指示操作还未完成。应用220可以知道对操作的请求已被提交并且该操作并未完成。

在步骤4,应用220可以从LOB系统230获知操作何时已完成,并且应用220随后从LOB系统230检索合适的数据。

在步骤5,应用220可以根据来自LOB系统230的响应来更新操作队列212。更新可以包括更新操作状态和权威数据。对于追踪和理解挂起状态的应用,该应用可以将步骤5中的结果与步骤1中的请求相关联。对于不追踪或理解挂起状态的应用220,该应用可以只向应用平台递送在步骤3提交的请求并且只将步骤5中的响应示出为不相关、无关联的事件。

参照图4,在步骤6,同步组件214可以从操作队列212检索与处于挂起状态超过预定超时时段的操作相关的信息。在步骤7,同步组件214可以在操作队列中的操作处于挂起状态超过预定超时时段之后将该操作的状态更新为“失败”状态。

图5是允许应用220控制应用平台210与LOB系统230之间的权威数据交换的简图。当来自LOB系统230的权威数据可用时,应用220可以与应用平台210通信并且更新本地高速缓存的权威数据214。权威数据可以是应用220和应用平台210工作所需的LOB系统230中的数据。取代权威对象及其内容的周期性刷新,应用220可以在权威数据可用时与应用平台210通信。

根据一个实施方式,应用平台210可以包括用于本地高速缓存的权威数据216的数据提供者接口502。数据提供者接口502可以被安排和配置成访问和更新本地高速缓存的权威数据216。应用平台210可以假定通过数据提供者接口502提供的数据是权威LOB数据。

应用220可以通过数据提供者接口502异步地更新本地高速缓存的权威数据216。应用220可以基于在应用级在应用平台210外发生的事件来异步地更新本地高速缓存的权威数据216。应用220可以在LOB系统230中相关权威数据可用时立即提供LOB数据。应用平台210可以不必经历周期性高速缓存刷新以填充权威数据。当应用220知道能够影响权威数据的事件时,应用220可以与应用平台210通信并直接通过数据提供者接口502更新权威数据。权威数据本身可以直接经由事件或其它手段、通过LOB系统203来获得。根据另一实施方式,本地高速缓存的权威数据216也可以通过使用周期性高速缓存刷新而同步更新。

图6是将带外异常引入到应用220中的正常请求-回复处理信道中的简图。参照图2和图6,应用220可以引入对应于带外变化的异常。带外变化是应用220或应用平台210的控制之外的变化或事件。带外异常可以具有定制异常处理逻辑以处理这些变化。

根据一个实施方式,应用220可以在不执行操作的情况下创建异常,并且将其引入到应用平台210中,就如同它是作为真实操作调用的结果的异常一样。因此,异常的引入可以向应用220和应用平台210提供将带外变化如同它们是在客户机上调用的操作的结果一样来处理的能力。

应用220可以为异常提供异常处理器,使得即使在整个应用本身当前并未运行时也能调用该处理器。这向应用220和应用平台210给予了具有定制处理逻辑的能力,该定制处理逻辑由知道如何应付具体LOB异常的应用来创建。此外,由于定制处理逻辑可以在应用的剩余业务逻辑不运行的情况下运行,因此下级应用有可能理解应用平台210为何采取某些操作,而不是仅仅看到最终结果而不知道其发生的缘由。

参照图6,操作队列212可以具有待提交的各种操作。操作Op 1 602是已被成功提交的操作。操作Op2 604是正在提交的操作。带外异常OOB606是引入带外变化的异常。操作Op3 608是还未提交的操作。根据一个实施方式,可以存在三种可能的方式来向应用220以及操作队列212添加OOB异常606。第一种方式是可恢复失败状态5的结果。第二种方式是后成功操作完成动作状态7的结果,其中请求处理信道常规地检查被执行的当前操作之外的异常状况。第三种方式是状态8中真正异步事件的结果,该异步事件例如经由某种业务警报或其它种类的即时通信、关于异常状况与应用220进行通信。

一旦OOB异常606被引入,它通常首先在状态1中被拾取用于执行。接下来,OOB异常606可以立即直接移动到可恢复错误状态5。无须实际向LOB系统230发送带外异常OOB 606。除此之外,应用220和应用平台210照常继续操作,包括添加其它OOB异常。在处理了所有OOB异常之后,可以到达状态7以进行后执行动作,这可以照常进行。

图6所建模并示出的OOB异常执行有利地实现了直接向LOB系统230提交操作,而且利用在客户机操作执行流水线中内置的所有错误处理和后处理能力。根据一个实施方式,OOB异常606可以在执行当前操作之后被引入到操作流水线的中间。OOB异常606还可以被引入到独立于输出队列中的OOB异常的所有操作之后。

应当了解,本发明的各种实施方式可被实现为(1)运行于计算机系统上的一系列计算机实现的动作或程序模块,以及/或者(2)计算机系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求来选择的。因此,包括相关算法的逻辑操作可被不同地称为操作、结构设备、动作或模块。本领域技术人员将认识到,这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑、及其任意组合实现,而不背离如本文中阐述的权利要求内陈述的本发明精神和范围。

尽管已结合各个实施方式描述了本发明,但本领域普通技术人员将理解,可在所附权利要求的范围内对其作出许多修改。因此,并非旨在以任何方式将本发明的范围限于以上的说明,而是应该完全参照所附权利要求书来确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号