CN1822556A - 用于应用灵活属性来执行异步网络请求的系统和方法 - Google Patents

用于应用灵活属性来执行异步网络请求的系统和方法 Download PDF

Info

Publication number
CN1822556A
CN1822556A CNA2006100054469A CN200610005446A CN1822556A CN 1822556 A CN1822556 A CN 1822556A CN A2006100054469 A CNA2006100054469 A CN A2006100054469A CN 200610005446 A CN200610005446 A CN 200610005446A CN 1822556 A CN1822556 A CN 1822556A
Authority
CN
China
Prior art keywords
criterion
network requests
application program
network
request
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
CNA2006100054469A
Other languages
English (en)
Other versions
CN1822556B (zh
Inventor
A·F·P·盖弗劳特
F·凡麦根
I·W·萨尔姆瑞
W·玛诺赛克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1822556A publication Critical patent/CN1822556A/zh
Application granted granted Critical
Publication of CN1822556B publication Critical patent/CN1822556B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

灵活属性被附加于可被异步地执行的网络请求。任意个数的准则可被附加于网络请求。请求被排队,直至满足了相关联的准则。一旦准则被满足,请求即被执行。向作出请求的应用程序提供简单的成功和失败通知,它们可用各种逻辑来响应于这些通知。任何类型的准则可被附加于请求。可使用图形用户界面,在应用程序设计时将准则与请求相关联。

Description

用于应用灵活属性来执行异步网络请求的系统和方法
背景技术
移动设备已经成为工作和家庭中个人生活中不可或缺的一部分。如台式和膝上型计算机一样,如今有丰富的应用程序可在移动设备上运行。
与台式计算机不同,且远甚于膝上型计算机,移动设备不断地移入和移出区域网络连接。此外,这些移动设备,尤其是移动电话,通常总是开启的,并且一直陪伴着它们的用户。
通常,这些设备中的大多数被优化为主要用于一种类型的无线网络,诸如CDMA网络、GSM或UMTS网络、Wi-Fi网络等等。但是与这些移动设备所建立的网络连接不是恒定的。
例如,移动电话用户整天移入和移出连接区。个人可能整天上下地面或出入建筑物。这些移动导致当他们在各点移动时丢失从偶尔几秒钟到较长时间段的网络访问。不仅网络访问可能是断断续续的,而且可用网络的类型可能在各个位置之间改变。
许多场所还有不存在网络连接的“死点”。例如,死点可能出现在建筑物中心以及电梯中。此外,许多现代的工作场所在公共移动电话网络以外还提供其自己的专用无线网络(例如,Wi-Fi)。在这些不同的网络选项之间切换和稳健地处理网络连接的暂时缺失对于在这些设备上运行的软件应用程序而言是有问题的。
作为一种策略,一些场所被配置成阻止对无线网络的访问。这些受限区域包括诸如以下场所:飞机;全世界的政府大使馆和办公室;以及其它安全区域。最终结果是不存在移动设备的普遍连接。这与台式或膝上型计算机连接明显不同。连接可能总是在用户附近,但是在用户的确切位置却常常丢失。
发明内容
本发明的实施例涉及应用灵活属性来执行异步网络请求。
根据本发明的一方面,任意个数的准则可被附加于网络请求。一提交请求,该请求即被排队,直至满足其相关联的准则。一旦准则被满足,该请求即被执行。向作出请求的应用程序提供成功和失败通知,它们可用各种逻辑来响应于这些通知。例如,当请求成功时,成功事件被返回给应用程序,而当请求失败时,失败事件被返回给应用程序。
根据本发明的另一个方面,任何类型的准则可被附加于请求。例如,准则可以是网络相关的(带宽、链路质量、链路类型、等等)、位置相关的、时间相关的(在特定时间执行请求)、等等。
根据本发明的又一个方面,可以使用图形用户界面,在应用程序设计时将准则与请求相关联。或者,可使用API将准则与请求相关联。用户界面旨在提供一种作出关于如何处理网络请求的声明性语句的简单方法。
附图说明
图1和2示出可在本发明的示例性实施例中使用的一种示例性计算设备;
图3是概括地示出网络请求准则系统的功能框图;
图4示出可应用于排队的网络请求的示例性准则的树状结构;
图5示出具有与其相关联的不同准则属性的若干智能网络请求;
图6示出网络请求管理器的运行时行为;
图7示出用于配置智能请求的示例性用户界面;以及
图8根据本发明的各个方面,示出详细的设计者视图,该视图示出将准则属性附加于智能网络请求。
具体实施方式
一般而言,本发明的实施例涉及应用灵活属性来执行异步网络请求。准则可被附加于网络请求。一提交请求,该请求即被排队,直至满足其相关联的准则。一旦准则被满足,请求即被执行。向作出请求的应用程序提供成功和失败通知,它们可用各种逻辑来响应于这些通知。例如,当请求成功时,成功事件被返回给应用程序,而当请求失败时,失败事件被返回给应用程序。
任何类型的准则都可被附加于请求。例如,准则可以是网络相关的(带宽、链路质量、链路类型、等等)、位置相关的、时间相关的(在特定时间执行请求)、等等。可能的准则集合被设计成可由程序员扩展。
可使用图形用户界面,在应用程序设计时将准则与请求相关联。或者,可使用API将准则与请求相关联。用户界面旨在提供一种作出关于如何处理网络请求的声明性语句的简单方法。
示例性网络准则系统
图3是根据本发明的各个方面,概括地示出网络请求准则系统300的功能框图。一般而言,系统300旨在允许任意个数的准则被附加于网络请求、将请求排队、以及当满足所需准则时有效地执行它们。
计算设备331是诸如结合图1所描述的计算设备,而移动设备311和移动设备315是诸如结合图2所描述的移动计算设备。
计算设备331被配置成运行一种应用程序设计环境(332),它旨在配置准则并将其与诸如在设备311和315上运行的应用程序312和316、317内所使用的网络请求等网络请求相关联。一般而言,应用程序设计环境332允许用户图形地配置其通信需求,设置准则,然后编写通信代码以响应于网络请求。用于处理排队的网络请求并获取通信成功和失败的事件通知的事件驱动的运行时模型。根据本发明的实施例,设计环境332是一种允许用户配置准则并将其与网络请求相关联的图形用户界面(见图7和8及有关讨论)。
应用程序312、316和317可有零个或多个与其相关联的准则(320、321)。这些准则可表示任何所期望的条件。例如,准则可以是诸如在试图发送或检索信息以前信号强度必须大于预定等级等低级要求,或者诸如移动设备必须物理地位于特定位置内、用户必须具有附加于设备的安全令牌、时间必须在上午9点到下午5点之间且名为“MYSERVER-14”的服务器必须可访问等复杂的高级要求。通过能够定义涉及不同要求和对应于低级和高级技术抽象的任意复杂程度的准则,给予了应用程序开发者在声明性地使用这些准则时的灵活性。
应用程序312、316和317还可动态地查看排队的请求,并作出哪些准则已被满足而哪些仍未被满足的简单确定;此信息可被用来指导程序动作或终端用户动作来补救这些情况。例如:应用程序可通知用户因为信号强度过低不能进行可靠和有效的通信,所以其请求尚未被处理。基于此信息,用户可决定移至具有较佳信号强度的位置,并使请求在满足所需准则时自动运行。准则(320、321)的集合是可扩展的。程序员可创建其它准则,且和预定义准则一样地使用这些准则并将它们附加于请求。
这些声明性准则(320、321)可动态地响应于改变的条件。由用户建立的给定准则(例如,“服务器XXXX必须为可及”,“带宽必须大于512千比特”)可被绑定到多个网络请求。如果在一个测试中发现准则不为真,则无需重复地或为每个请求测试该条件即可将其应用于附加了该准则的所有请求。以此方式,公共准则仅需被检查一次。
类似地,如果准则被网络请求管理器312确定为真,则无需为每个请求再三重新测试该准则。该准则可被简单地假定为真,直至证明相反。一般而言,智能准则可区别间歇和最终的失败/成功,而应用程序可利用此信息来作出智能的通信决策。
如以上所讨论,准则可被分组。准则的分组不仅允许用户创建更复杂的表达式,而且还允许用户链接准则。例如,考虑声明10Mbs的所请求的链路速度准则,和声明“非Wi-Fi”的链路类型准则。如果设备当前具有GPRS连接和Wi-Fi连接,则Wi-Fi适配器将满足10Mbs的链路速度准则,但GPRS连接将不满足“非Wi-Fi”准则。能够将准则分组和链接允许作出关于可接受的连接条件的丰富语句。
某些准则可在应用程序之间共享,而其它准则可能是每个应用程序所独有的(见图4-6和有关讨论)。
一般而言,网络请求管理器312被配置成在满足与请求相关联的任何准则时执行网络请求。网络请求管理器312获得与准则相关联的属性,并确定它们何时被满足(见图6和有关讨论)。
网络请求管理器(312)通过各种协议与网络服务交互。例如,网络请求管理器312可使用套接字、HTTP请求、或Web服务请求。
通过利用网络请求管理器312,应用程序(312和316、317)可使用一种异步通信模型。套接字、HTTP和Web服务通信模型已被开发和改进以供在台式和服务器计算机上使用。“试图打开通信套接字”的应用程序开发者依赖于同步编程模型,并一般假定网络基础结构是就位且可操作的。这对于台式和服务器计算机而言一般为真,但对移动设备而言可能性就大大降低。
蜂窝/寻呼网络350是负责向使用蜂窝网络的无线设备传递消息和从其接收消息的网络。蜂窝/寻呼网络350可包括无线和有线组件。例如,蜂窝/寻呼网络可包括链接到有线电话网络的蜂窝塔。通常,蜂窝塔承载往返蜂窝电话的通信、长距离通信链路等。
网关360在蜂窝/寻呼网络350和无线网络340之间路由消息。例如,计算机用户可发送定址到蜂窝电话的消息。网关360提供一种用于将该消息从网络340传输到蜂窝/寻呼网络350的手段。反过来,带有连接到蜂窝网络的设备的用户可浏览Web。网关360允许超链接文本协议(HTTP)消息在网络340和蜂窝/寻呼网络350之间传送。
以下示例性情形示出该系统的各种用途。假定用户John依靠其移动电话按需传递信息和服务来生活。John在日间常常在他的城市中穿梭,赶往市中心各处开会,还常常出差。他总是遵照时间表并用移动电话进行联系,并且想要智能的服务来帮助他的生活。John还信息缠身并讨厌浪费时间。他想要他的移动电话跟上他的节奏,并整天满足他的信息和服务需求。为协助他,他的移动电话开启了一系列自定义应用程序以向他提供所需的信息和服务。
John在早晨醒来,并在上班以前扫一眼他移动电话上的日程表。在上班路上阅读新闻:John进入地铁,并在途中出入网络连接。在等待地铁列车时,他取出移动电话并运行“新闻剪辑”应用程序。因为John在家里有Wi-Fi,还有可利用Wi-Fi的智能移动应用程序,所以John所感兴趣的最新头条已被下载到他的电话中。他浏览各条新闻项,并阅读已高速缓存的文章。他发现一指向他所感兴趣的“新兴数字宠物”的文章的链接,并注意到该文章具有绿色链接,这表示该内容尚未被高速缓存。他点击该链接以指示他想要在可能时为他下载此文章。当John作出此请求时,网络请求管理器将该请求排队,并确定是否满足与该请求相关联的准则。当满足与该新闻剪辑应用程序相关联的准则时,只要网络条件允许,该请求即被处理。因为John处于无连接的区域中,所以此时可能没有满足该请求。一旦John的地铁列车从地下出来,并在露天在地面上行驶数分钟,该设备即可为John建立GPRS连接,而网络请求管理器执行排队的请求,且该应用程序将所请求的新闻项下载到新闻剪辑队列中。当该工作完成时,应用程序从网络请求管理器接收该排队的工作已被成功完成的程序事件。响应于此事件,应用程序在新闻阅读器的底部显示不显眼的“新闻下载完毕”图标,以指示所请求的文章已被下载。John读完他目前正在阅读的文章,然后切换到新闻下载,并阅读关于“新兴数字宠物”和“南美滑雪度假”的文章。同时地铁列车已回到地面下,而网络连接再次丢失——John对此一无所知并且不受其影响。读了这篇关于“新兴数字宠物”的文章之后,John决定他想要去看看实物。该文章提供“点击此处搜索您附近的商店”链接。John点击该链接,使用John当前的位置,一个请求被记录。因为John离线,所以该请求被本地高速缓存,并将在他回到可接受的网络地区时被发送。John只知道该请求已被记录,并且只要能被处理时就会被处理;他无需亲自重新记录该请求。John的地铁列车很快到达工作地点。
工作中时间表的改变:在工作中John接到电话呼叫。基于此电话交谈,他同意那天下午稍后在市中心的另一边进行会议。该会议的组织者向他发送了包含会议场所的SMS消息。John的调度应用程序了解到数小时后他在市中心的另一边有一个新的会议,并将下载会议区域的详细地图的网络请求排队。因为John的电话在工作地点,所以它可访问Wi-Fi网络,从而它可立即开始下载所请求的地图并将它们高速缓存在该设备上。此工作包括一系列网络请求(例如,一系列对于各个地图和方向的个别请求);此工作的所有内容被排队,并在网络请求管理器确定其要求被满足时开始运行。在请求和下载地图的中间,John走进了电梯,门关上了,他的网络连接丢失了。网络失败被网络请求管理器检测到,当恢复了合适的网络连接时,被中断的工作被放回到所要处理的网络请求队列上(连同那里的其它工作一起)。数分钟后,在John出了电梯且他的电话再次有了Wi-Fi网络访问以后,该电话只需从其低能耗模式唤醒并下载其余的所请求的地图。
另一个示例是用户想要下载音乐文件。当用户在其移动电话上购买音乐并将他们想要下载的乐曲排队时,下载可在后台发生。如果在由于用户移动的原因丢失连接以前不能完成所有歌曲的下载,则下载将在稍后继续。用户甚至可以在断开时继续购买音乐,并将所请求的下载排队。
图4根据本发明的各个方面示出可被应用于排队的网络请求的准则的树状结构。根据一个实施例,准则是从抽象的SmartRequestAttribute(智能请求属性)类(402)派生而来。如以上所讨论,准则可涉及许多不同的项。例如,一个准则集合可以是网络链路准则(408)。一些网络链路准则包括,但不限于,链路速度、链路类型、可用带宽、IP地址等等。应用层准则(410)包括诸如特定服务器是否可及等项。杂项准则(412)可包括各种项,诸如物理位置、一天中的时间、先前所完成的请求的结果(成功或失败)、成本、安全性、等等。任何类型的准则都可被附加于请求。程序员可基于各种因素来添加准则。例如,程序员可添加涉及网卡的特征、所使用的网络、所访问的位置等的准则集合。
如以上所讨论的,公共准则可由请求管理器一次性检查,由此节约了可用的资源。所收集的准则还可被聚合(406)。不同的准则还可被分组在一起以创建各种准则之间的关系(404)。
图5根据本发明的各个方面,示出具有与其相关联的不同准则的数个智能网络请求。
这些准则属性可在各请求之间共享,这意味着可假定对一个请求为真的属性对其它请求也为真,反过来,如果该属性对一个请求为假,则可对所有请求假定其为假。就此而言,属性可被共享并可被锁存。此锁存行为对于测试成本很高的属性准则而言特别有价值。此类准则的一个示例是测试服务器上的给定服务是否可及的属性。确定地知道网络上的特定服务器服务是否可及的唯一方式是试图联系该服务器并确定可接受的响应何时被返回。在移动网络上,此类请求在被执行时可能等待时间很长,要求大量电池电力,并且可能招致费用成本。出于这些原因,如果一属性准则被确定为真,则它被锁存到真位置中,直至被证明为假或由应用程序逻辑重置。共享此属性的请求可得益于此智能行为。
参考图5中的第一请求,请求510不包括任何需要被满足的准则。由此,请求510预备好立即运行。
请求520包括必须在其运行以前被满足的3个不同的准则。在请求520被运行以前必须被满足的准则包括服务器“XX”可及,连接的带宽大于300Kb/s,以及满足一物理位置约束。当满足所有这些准则时,请求520被运行。
请求530示出共享公共准则的两个不同的工作请求(未决工作3和未决工作4)。共享的准则是物理位置准则和带宽准则。尽管两个未决工作单元包括一些公共准则,但它们还可包括每一个所独有的准则。例如,未决工作3要求服务器“XX”可及,而未决工作4要求服务器“YYY”可及,以及链路类型为“Wi-Fi”链路。
图6根据本发明的各个方面,示出网络请求管理器的运行时行为。诸如应用程序602等耦合到网络请求管理器604的每个应用程序将工作放到未决请求队列610上。根据一个实施例,每个网络请求最初都被放到未决请求队列上。如图所示,未决请求队列610包括5个工作请求,包括工作7、工作2、工作3、工作1和工作9。每个工作项包括零个或多个“准则属性”(见标签605-609)。请求管理器(604)周期性地查看队列中的工作项,并确定哪些项已预备好执行。如果一工作项的所有准则属性都为真,则它已预备好被执行。当准则属性为真,该项从未决请求队列610中移除,且其代码在可检测失败的受控环境中执行。根据一个实施例,一旦满足与请求相关联的准则,请求即被执行。当工作被启动时,向客户机应用程序(602)激发一异步事件,以使该应用程序可执行某个动作,诸如通知用户或采取一些其它适当的动作。所执行的工作或将成功或将失败。在执行以后,该工作被放到成功队列(612)或失败队列(614)上,并经由异步事件向应用程序(602)通知成功或失败。根据一个实施例,这些事件包括工作进行中、工作成功和工作失败。
当请求在系统600内时,应用程序(602)可检查哪个工作当前在未决请求队列610上,以及每个工作项的属性的状态是什么。例如,提交了工作2请求的应用程序可查询第2号准则属性的状态。
如果工作对运行任务而言不再有意义,则应用程序还可将它从未决工作队列中移除。例如,用户可能请求了取代已被请求的现有工作的新的通信任务。可使用简单的功能调用来将该工作从队列中移除。
类似于未决请求队列,应用程序还可检查哪个工作在成功队列(612)或失败队列(614)中。当需要时,应用程序可将当前在失败队列(614)中的工作移回到未决请求队列(610)中。
图7根据本发明的各个方面,示出一种用于配置智能请求的示例性用户界面。
如参考椭圆710可见,SmartNetworkRequests(智能网络请求)和SmartNetworkRequestManager(智能网络请求管理器)都可被添加到应用程序设计表面(730),并由软件开发者在用户界面的属性部分(720)中配置。使用用户界面700,开发者可配置网络请求管理器的运行时行为。例如,可配置诸如在后台可并行地运行多少个请求等行为。
开发者还可编写代码以响应于请求管理器所提供的事件。例如,可编写代码以响应于诸如以下事件:SmartNetworkRequest被从“未决请求队列”中取下并被运行,SmartNetworkRequest成功,以及SmartNetworkRequest失败。
用户可通过将SnartNetworkRequests拖放到设计表面(730)上来对其进行配置。每个SmartNetworkRequest表示开发者想要在指定准则被满足时运行的通信任务。类似于为网络请求管理器开发代码,开发者可双击SmartNetworkRequest并为该请求编写代码。这与双击表单设计器上的按钮控件并编写在运行时将在该按钮被按下时运行的代码的非常常见的实践相类似。此处,开发者所编写的代码将在满足SmartNetworkRequest的准则属性时由RequestManager(请求管理器)调用。此代码对应于开发者想要在满足准则时执行的工作。
图8根据本发明的各个方面,示出一种详细的设计者视图,该视图显示将准则属性附加于智能网络请求。
可将任意个数的准则与智能网络请求相关联。如椭圆810所示,当前两个准则与网络请求相关联。开发者可通过图形界面830向网络请求添加和删除准则。下拉列表830包括12个示例性准则。如以上所讨论的,可有许多其它类型的准则。该用户界面还可被用来链接准则。
说明性操作环境
参考图1,一种用于实现本发明的示例性系统包括诸如计算设备100等计算设备。在最基本的配置中,计算设备100通常包括至少处理单元102和系统存储器104。取决于计算设备的确切配置和类型,系统存储器104可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)或这两者的某种组合。系统存储器104通常包括操作系统105、一个或多个应用程序106,并可包括程序数据107。在一个实施例中,应用程序106可包括智能网络请求设计工具120,它旨在配置网络请求准则。此基本配置在图1中由虚线108内的那些组件示出。
计算设备100可具有其它特征或功能。例如,计算设备100还可包括附加的数据存储设备(可移动和/或不可移动),诸如磁盘、光盘或磁带。此类附加存储在图1中由可移动存储109和不可移动存储110示出。计算存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器104、可移动存储109和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光存储,磁带盒、磁带、磁盘存储或其它磁存储设备,或可用于存储所需信息并可由计算设备100访问的任何其它介质。任何此类计算机存储介质都可以是设备100的部件。计算设备100还可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等输入设备112。也可包括诸如显示器、扬声器、打印机等输出设备。
计算设备100还可包含通信连接116,它允许设备诸如通过网络与其它计算设备118通信。通信连接116是通信介质的一个示例。通信介质通常可被具体化为诸如载波或其它传输介质等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传递介质。术语“已调制数据信号”是指以在信号中将信息编码的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、RF、红外或其它无线介质等无线介质。如本文中所使用的术语计算机可读介质包括存储介质和通信介质。
图2示出可在本发明的一个示例性实施例中使用的移动计算设备。参考图2,用于实现本发明的示例性系统包括诸如移动计算设备200等移动计算设备。移动计算设备200包括处理器260、存储器262、显示器228以及键盘232。存储器262一般包括易失性存储器(例如,RAM)和非易失性存储器(例如,ROM、闪存等)。移动计算设备200包括驻留在存储器262中并在处理器260上执行的操作系统264,诸如来自微软公司的Windows CE或另一个操作系统。键盘232可以是按键数字拨号盘(诸如典型电话上的)、多键键盘(诸如常规键盘等)。显示器228可以是液晶显示器、或通常在移动计算设备中所使用的任何其它类型的显示器。显示器228可以是触敏式的,从而也可起到输入设备的作用。
一个或多个应用程序266被加载到存储器262中并在操作系统264上运行。使用智能网络请求的应用程序驻留在移动计算设备200上,并被编程为与网络请求管理器交互以异步地执行网络请求。该应用程序可驻留在设备的硬件或软件中。移动计算设备200在存储器262内还包括非易失性存储268。非易失性存储268可被用来存储在移动计算设备200被断电的情况下不应被丢失的持久性信息。
移动计算设备200包括电源270,它可被实现为一个或多个电池。电源270还可包括外部电源,诸如AC适配器或者对电池进行补充或重新充电的加电底座。
图示移动计算设备200带有两种类型的可任选外部通知机制:LED 240和音频接口274。这些设备可被直接耦合到电源270,从而在被激活时即使处理器260和其它组件可能关闭以保存电池电力,它们仍在由通知机制所指示的持续时间内保持开启动。音频接口274被用来向用户提供可听信号并从用户接收可听信号。例如,音频接口274可被耦合到用于提供可听输出的扬声器,和被耦合到用于接收可听输入的话筒,以便于进行诸如电话交谈。
移动计算设备200还包括诸如无线接口层等执行发送和接收通信的功能的通信连接。通信连接272便于移动计算设备200和外部世界之间的无线连接。通信连接可被配置成连接到任何类型的无线网络。根据一个实施例,往来于通信连接272的传输是在操作系统264的控制下进行的。
以上说明书、示例和数据提供了制造和使用本发明的组成部分的完整描述。因为可作出本发明的许多实施例而不会偏离本发明的精神和范围,所以本发明驻留在所附权利要求书中。

Claims (20)

1.一种用于以准则来归属网络请求的计算机实现的方法,包括:
创建与应用程序相关联的网络请求;
在所述网络请求被提交以执行以前将准则与所述网络请求相关联;
配置所述准则,其中配置所述准则包括调整涉及所述准则的属性;
提交要执行的所述网络请求;以及
确定与所述网络请求相关联的准则何时被满足;并且当满足所述准则时试图执行所述请求。
2.如权利要求1所述的方法,其特征在于,还包括确定所述网络请求的执行何时成功,以及向所述应用程序提供指示所述请求的成功执行的事件。
3.如权利要求2所述的方法,其特征在于,还包括将响应于所提供的事件而执行的事件驱动代码与所述应用程序相关联。
4.如权利要求3所述的方法,其特征在于,所述准则是从网络链路准则和应用程序准则中的至少一个中选择的。
5.如权利要求4所述的方法,其特征在于,所述准则包括以下各项中的至少一个:带宽;链路类型;时间;位置;可及的服务器;IP地址;信号强度;安全令牌。
6.如权利要求2所述的方法,其特征在于,所述准则可被逻辑地链接。
7.如权利要求2所述的方法,其特征在于,所述网络请求可使用不同网络类型来执行。
8.一种计算机可读介质,具有用于以准则来归属网络请求的计算机可执行指令,所述指令包括:
创建与应用程序相关联的网络请求;
在所述网络请求被提交以执行以前将准则与所述网络请求相关联并配置所述准则,其中所述准则涉及网络链路准则;
提交要执行的所述网络请求;
确定与所述网络请求相关联的准则何时被满足;并且当满足所述准则时:试图执行所述请求;确定所述网络请求的执行何时成功并向所述应用程序提供指示所述请求的成功执行的事件。
9.如权利要求8所述的计算机可读介质,其特征在于,链接了所述准则中的至少两个。
10.如权利要求8所述的计算机可读介质,其特征在于,确定所述准则何时被满足包括在所述准则与一个以上应用程序相关联时一次性确定每个准则是否被满足。
11.如权利要求10所述的计算机可读介质,其特征在于,所述准则包括以下各项中的至少一个:带宽;链路类型;时间;位置;可及的服务器;IP地址;信号强度;安全令牌。
12.如权利要求10所述的计算机可读介质,其特征在于,所述网络请求可使用一种以上类型的网络来执行。
13.一种用于处理网络请求的系统,包括:
被耦合到网络并被配置成提交网络请求以执行的应用程序,其中所述网络请求具有零个或多个相关联的准则;
被耦合到所述应用程序并被配置成执行动作的网络请求管理器,包括:
接收来自所述应用程序的网络请提交;
确定与所述网络请求相关联的准则何时被满足;并且当满足所述准则时异步地执行所述网络请求;确定所述执行的结果;以及向所述应用程序提供指示所述执行的结果的事件。
14.如权利要求13所述的系统,其特征在于,所述网络请求管理器还被配置成将所述网络请求放在未决请求队列中,直至确定了所述准则被满足。
15.如权利要求14所述的系统,其特征在于,所述网络请求管理器还被配置成在所述执行的结果指示成功时将所述网络请求移至成功队列,以及在所述执行的结果指示失败时将所述网络请求移至失败队列。
16.如权利要求13所述的系统,其特征在于,所述应用程序还被配置成激活与所述网络请求的结果相关联的事件驱动代码。
17.如权利要求13所述的系统,其特征在于,与所述网络请求相关联的准则是从以下各项中的至少一个中选择的:带宽;链路类型;位置;可及的服务器;IP地址;信号强度;安全令牌。
18.如权利要求14所述的系统,其特征在于,所述网络请求管理器还被配置成确定准则范围何时与多个应用程序相关联,并且当所述准则与一个以上应用程序相关联时,仅一次确定所述准则是否被满足。
19.如权利要求13所述的系统,其特征在于,还包括被配置成将所述准则与网络请求相关联的图形用户界面。
20.如权利要求19所述的系统,其特征在于,所述图形用户界面还被配置成将响应于所述网络请求的执行结果而要执行的代码与所述准则相关联。
CN2006100054469A 2005-02-15 2006-01-16 用于应用灵活属性来执行异步网络请求的系统和方法 Active CN1822556B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/058,949 2005-02-15
US11/058,949 US8171138B2 (en) 2005-02-15 2005-02-15 System and method for applying flexible attributes to execute asynchronous network requests

Publications (2)

Publication Number Publication Date
CN1822556A true CN1822556A (zh) 2006-08-23
CN1822556B CN1822556B (zh) 2012-07-18

Family

ID=36282843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100054469A Active CN1822556B (zh) 2005-02-15 2006-01-16 用于应用灵活属性来执行异步网络请求的系统和方法

Country Status (7)

Country Link
US (1) US8171138B2 (zh)
EP (1) EP1699207B1 (zh)
JP (1) JP4945141B2 (zh)
KR (1) KR101159361B1 (zh)
CN (1) CN1822556B (zh)
AT (1) ATE555586T1 (zh)
BR (1) BRPI0600042A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103518361A (zh) * 2011-03-11 2014-01-15 谷歌公司 机会性网络更新
CN111479334A (zh) * 2020-03-20 2020-07-31 平安国际智慧城市科技股份有限公司 一种网络请求重试方法、装置及终端设备

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869186B2 (en) * 2005-07-29 2014-10-21 Dell Products L.P. Automated acquisition of discovered content
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
US9317179B2 (en) 2007-01-08 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for providing recommendations to a user of a cloud computing service
US8544083B2 (en) * 2009-02-19 2013-09-24 Microsoft Corporation Identification security elevation
US9105009B2 (en) 2011-03-21 2015-08-11 Microsoft Technology Licensing, Llc Email-based automated recovery action in a hosted environment
US8839257B2 (en) * 2011-11-22 2014-09-16 Microsoft Corporation Superseding of recovery actions based on aggregation of requests for automated sequencing and cancellation
US9460303B2 (en) 2012-03-06 2016-10-04 Microsoft Technology Licensing, Llc Operating large scale systems and cloud services with zero-standing elevated permissions
US8881249B2 (en) 2012-12-12 2014-11-04 Microsoft Corporation Scalable and automated secret management
CN103874175A (zh) * 2012-12-18 2014-06-18 中国移动通信集团公司 一种移动终端网络连接控制方法、装置、设备和移动终端
US9672114B2 (en) * 2014-04-16 2017-06-06 Microsoft Technology Licensing, Llc Conditional saving of input data
US9762585B2 (en) 2015-03-19 2017-09-12 Microsoft Technology Licensing, Llc Tenant lockbox
US10931682B2 (en) 2015-06-30 2021-02-23 Microsoft Technology Licensing, Llc Privileged identity management
US11057288B2 (en) 2016-09-15 2021-07-06 Sap Se Tracking of document status through multiple computer networks
CN115914337A (zh) * 2022-10-10 2023-04-04 深圳优美创新科技有限公司 一种app网络连接失败处理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749818A (ja) 1993-08-06 1995-02-21 Hitachi Ltd 計算機間のファイル自動転送方式
US6993582B2 (en) * 1996-07-30 2006-01-31 Micron Technology Inc. Mixed enclave operation in a computer network
US6003082A (en) * 1998-04-22 1999-12-14 International Business Machines Corporation Selective internet request caching and execution system
JP2000305796A (ja) * 1999-04-22 2000-11-02 Hitachi Ltd 電子計算機間のジョブ転送方法およびジョブ転送システム
US6330719B1 (en) * 1999-06-30 2001-12-11 Webtv Networks, Inc. Interactive television receiver unit browser that waits to send requests
US7233787B2 (en) 2000-03-27 2007-06-19 Sanyo Electric Co., Ltd. Data distribution terminal, menu server, and distribution reservation system using them
US6954751B2 (en) * 2000-09-06 2005-10-11 Oracle International Corporation Accessing data stored at an intermediary from a service
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
JP4563607B2 (ja) 2001-03-30 2010-10-13 京セラ株式会社 携帯通信端末
US7207041B2 (en) * 2001-06-28 2007-04-17 Tranzeo Wireless Technologies, Inc. Open platform architecture for shared resource access management
US20030097443A1 (en) * 2001-11-21 2003-05-22 Richard Gillett Systems and methods for delivering content over a network
JP3828444B2 (ja) 2002-03-26 2006-10-04 株式会社日立製作所 データ通信中継装置及びシステム
US7136895B2 (en) * 2002-07-24 2006-11-14 Sun Microsystems, Inc. System and method for forward chaining web-based procedure calls
JP2004274324A (ja) 2003-03-07 2004-09-30 Ntt Comware Corp 通信種別選択装置、通信種別選択方法及び通信種別選択プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103518361A (zh) * 2011-03-11 2014-01-15 谷歌公司 机会性网络更新
CN108337326A (zh) * 2011-03-11 2018-07-27 谷歌有限责任公司 机会性网络更新
US10103994B2 (en) 2011-03-11 2018-10-16 Google Llc Opportunistic network updates
CN111479334A (zh) * 2020-03-20 2020-07-31 平安国际智慧城市科技股份有限公司 一种网络请求重试方法、装置及终端设备
CN111479334B (zh) * 2020-03-20 2023-08-11 深圳赛安特技术服务有限公司 一种网络请求重试方法、装置及终端设备

Also Published As

Publication number Publication date
KR20060091710A (ko) 2006-08-21
CN1822556B (zh) 2012-07-18
EP1699207B1 (en) 2012-04-25
JP4945141B2 (ja) 2012-06-06
US8171138B2 (en) 2012-05-01
KR101159361B1 (ko) 2012-06-25
JP2006229953A (ja) 2006-08-31
EP1699207A1 (en) 2006-09-06
US20060184675A1 (en) 2006-08-17
BRPI0600042A (pt) 2007-03-20
ATE555586T1 (de) 2012-05-15

Similar Documents

Publication Publication Date Title
CN1822556B (zh) 用于应用灵活属性来执行异步网络请求的系统和方法
US9842316B2 (en) Cloud-based broker service for digital assistants
US10848614B2 (en) Personalized cloud of mobile tasks
CN103455389A (zh) 内容备份方法及其电子设备
Anhalt et al. Toward context-aware computing: experiences and lessons
US9075495B2 (en) System and method for functional elements
CN103473039A (zh) 为了响应通知而生成基于上下文的选项
EP1402389A2 (en) Data object mark and send procedure
CN1476221A (zh) 在坐标航向点访问和记录消息的系统和方法
US9195499B2 (en) Batch jobs using positional scheduling policies of mobile devices
JP2006172440A (ja) アプリケーション状態情報転送システム
JP6788501B2 (ja) 使用量データを収集して複数の通信デバイス上でのユーザのアベイラビリティを決定するための方法、システム、およびコンピュータ・プログラム
CN106250014A (zh) 应用程序的推荐方法及装置
CN102456235A (zh) 一种信息处理方法及服务器
CN106230919A (zh) 一种文件上传的方法和装置
CN113780975A (zh) 日程信息智能提醒方法、设备、存储介质和软件程序产品
MXPA06000648A (en) System and method for applying flexible attributes to execute asynchronous network requests
CN1773496A (zh) 用于文档组装的方法和系统
CN118118538A (zh) 一种数据接入方法及电子设备
CN117650829A (zh) 一种通信系统、方法以及终端设备
TWI331284B (en) Mobile agent-based systems and methods for device discovery
WO2023191917A1 (en) Cross-platform multi-transport remote code activation
JP2022032736A (ja) プログラム、方法、情報処理装置、及びシステム
Diya et al. A Framework for Mobile Collaborative Environments.
Kim et al. The implementation of adaptive user interface migration based on ubiquitous mobile agents

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.