本申请是美国专利申请序列号10/180,360一部分内容的继续申请,该美国专利申请序列号10/180,360于2002年7月26日提交,标题为用于提供通告的系统和方法,其全部内容在此合并以援引。
发明的详细说明
本发明涉及一种系统和方法,它借助于通告平台的帧结构而工作的各种应用程序来促进自动递送。这些应用程序是通过模块进行描述的,这些模块能使用户容易/便利地与该通告平台产生交互作用。这样一个模块包括:代理模块,充当第三方以接收要求服务的用户定义,然后链接这种服务,以便按照该平台递送捆绑(bundle)服务。能够提供一个动态定价模块,以根据各种因素诸如通告服务的容量标价折扣来促进递送服务。提供一个预定接入模块,以便能使用户方便地预订和不预订服务,反之,可以采用一个推出/拉回(push/pull)模块,给予用户有关递送可选服务的一个或多个选择权。能够提供一种上下文环境模块,能使用户根据当前的环境状态(例如在假期中停止服务直到回来为止)改变他们的订阅。一种设备滤波器模块向用户提供了用于控制通告的类型和数量变化的方式(例如只允许预订的通告、允许早晨来自用户A和B的通告、允许下午来自用户A和C的通告)。一个计费模块包括,在自动计费和订阅服务之间描述性的交互作用以及这些通告平台的一个或多个交互作用,其中在这些计费系统中,涉及一个或多个用户的事件/消息能够经由通告平台交付给该用户(例如,服务已经停止后,你的账面为你上月的订阅使用记了$10.00)。
正如本应用程序所使用的,术语″部件″、″模块″、″协议″、″系统″等等是用来指与计算机有关的实体,或者硬件和软件的结合、软件、或执行中的软件。例如,部件可以是但不局限于在处理机上运行的程序、处理器、对象、可执行的、执行进程(thread)、程序和/或计算机。作为例证,在服务器上运行的应用程序和该服务器两者都可以是部件。一个或多个部件可以位于一个程序和/或执行进程的内部,部件可以定位在计算机上和/或分布在两个或更多个计算机之间。
正如此处所用的,术语″推理″通常涉及推导过程或系统推断状态、环境和/或经过事件和/或数据捕获的来自一组观察的用户的推断。例如,推理可以被利用到识别一个具体环境或行为,或可以通过一些状态产生一个概率分布。该推理可以是随机的-也就是说,对所关心的状态的概率分布计算是基于数据和事件的考虑。推理还可以指用于从一组事件和/或数据中组成高级事件所采用的方法。这种推理从一组监视的事件和/或存储的事件数据中导致新事件或行为的构建,不管该事件是否与当前最靠近的事物密切相关,也不管该事件和数据是否来自一个或几个事件和数据源。
先参考图1,根据本发明的一个方面说明通告递送系统100。该系统100采用一个通告平台110向一个或多个通告接收器(sinks)120分送来自一个或多个事件源114的信息,事件源114产生通告,通告接收器120接收来自信息源的信息。为了从事件源114接收信息,要获得一个或多个预定信息124以便确定哪个事件源应该在通告接收器120产生自动通告。例如,新闻订阅可能包括来自三个不同的新闻来源的通告,诸如重要新闻来源、体育新闻来源和商业新闻来源。如果用户已经适宜地预订了此类新闻预定,那么从该三个来源的任何一个所产生的通告可以到达该通告接收器120,其中通告平台110选择什么时候以及是否来自事件源114的信息通过或发送到该接收器。在另一例子中,根据向接收器120递送股票通告的金融服务,可以传送从各种股票来源收集的信息。
人们注意到通告平台110可以包括各种部件,诸如一个SQL server,它整理来自多个事件源114的数据,并执行联合操作以便将通告分配给吸收器120,其中该通告平台110执行各种数据库和通信操作。该通告平台110因此可以从一个或多个事件源114中集中或集合信息并分配该收集的信息到通告吸收器120中。还注意到,可以提供各种系统和部件,以便促进在通告平台110、事件源114和通告吸收器120之间的操作,这在下面将具体描述。
提供一个或多个应用程序模块130以便于高效和及时递送通告。例如,该应用程序模块能够在该通告平台110内部合并和/或与本通告平台关联,以便向用户提供一个可改编的和可配置的接口或平台以用于调整通告类型、时间和/或数量。另外,应用程序模块130可以与事件源114、通告吸收器120和/或预定124相联和/或内部合并。如果需要当接收通告时,可以从通告吸收器120中驱动该模块,其中用户可以配置定义一个或多个递送原则的多个参数。此外,本原则能够在平台末端110(或其他部件)被存储/驱动用于保持全部参数,以免例如设备受能力所限时造成麻烦。正如举例说明的,可以提供用户分布图和/或参数134,捕获/推导该用户要求什么时候接收通告。这些分布/参数134被保留为一个文件或对在系统100中说明的一个或多个部件保留为结构化相关数据。
该应用程序模块130能够被应用以增加用户的订阅经验,在此,用户能够容易和经济/自动地预定和不订阅一个或多个通告服务。另外,能够基于来自用户的明确命令、用户陈述的上下文推测和/或基于用户呈交的推断或其他因素来动态地调整这些订阅信息124,正如下面将要更详细描述的。
根据本发明的一方面,应用程序模块134包括一个代理模块140,接收来自用户的通告规约并根据该规约,代理或链接通告服务/提供者以便符合或满足这样的规约(例如,我需要体育订阅,我要接收来自ESPN和三个拉斯维加斯饭店通告)。代理模块140然后搜索供给所要求服务的服务提供者,将该规约捆绑为一个订阅群124,并传递预订信息给该通告平台110(例如通知通告平台从指定的通告服务向用户发送那个通告的信息或数据)。
可以根据本发明的另一方面提供一个动态定价模块144,其中根据团体类型和用户数量给与团体订阅折扣(例如来自公司A的所有用户得到10%的折扣)。其他类型的价格可以包括基于使用的价格,其中服务折扣或价格受所消费服务的时间或容量的影响。正如可以意识到的,该动态的定价模型144可以利用多个因素和要素组合来改变和变更认购价格。例如,在一天的某个时间段或根据其接收通告的场所给与用户折扣。折扣可以是非金钱的形式,诸如采用一种使用种类的用户对于另一种订购给与一个信用(credit)(例如,保健通告的所有用户也接收营养通告))))))。在另一模型中,能够采用订阅接入模块150来促成对该业务的有效订阅或不订阅。例如,用户只在诸如股票市场崩溃的重要事件期间订阅多个提供者新闻来源,而过一段时间或其他因素之后希望停止该服务。这样的模块150可以便于分散的或间歇使用的服务,即更加与用户的通告要求一致(例如,我只不过想订购两个小时,我想在早晨订购不想在晚上订购,我需要订阅17天))))))。
其他类型应用程序模块134包括推出和拉回块154,能使用户根据奖励(incentive)或其他因素调整通告的种类和数量。在一个例子中,可以向用户提供一个奖励(例如,从平台110推出的通告),诸如如果愿意禁止一个选择的通告服务,那么给与一个月的免费邮件通告。其他奖励可以广泛地基于诸如假如你每月接受10个广告通告,那么你对于你当前的一个或多个服务可以采用赊帐方式。在另一例子中,用户可以控制是否接收和何时接收订阅消息以外的消息。因此,在用户需求文件和参数134中,用户可以启动表明该用户希望从该平台110中收回比当前正在接收的信息更多的附加信息。
可以采用一个上下文环境模块160来动态地改变订阅124和/或造成通告平台110自动行为的改变。例如,用户可能希望仅在一特殊背景环境下预订一种服务和用户在不同环境下不预订其他服务(例如,在工作期间,我希望我的私人爱好订阅取消,当我不忙时,我愿意订阅三个娱乐通告服务。还可以提供设备和过滤模块164,使用户能够控制怎样接收通知。有时,用户可以根据设备种类的配置情况要求不同的递送环境或条件(例如,当我只想接入我的蜂窝电话时,我希望撤消我的桌上型电脑的订阅)。可以根据多种筛选选择权(诸如junk/SPAM邮件筛选和/或用户定义的规则)提供筛选以便减轻不需要的通告量。本发明的另一方面包括与自动计费和订阅服务交互/作用(interactions/functions)的计费模块170。因此,能够根据与计费模块170有关的订阅信息产生通告,并能够包括这样一些方面:通过通告平台110产生的经通告后的大量或重点计费情况,其中该计费模块确定要收费/联系的数量、用户、实体和/或其他因素。注意到还可以应用和适用一个或多个应用程序模块134以根据本发明的多种组合情况进行协作。例如,一方面可以适应该推出/拉回模块154以与该订阅接入模块150共同操作。在另一例子,代理模块140可以适应上下文环境模块160、收费模块170等等。
现在参考图2,说明根据本发明的一个方面的代理系统200。在本发明的这个方面,在参考数字224,通告代理210查询远程设备220(或装置)(还可以包括直接从远程设备到代理的查询)。查询224可以包括通告服务的形式,诸如电子邮件、网络邮局、蜂窝电话语音消息、发射窗等等。远程设备220实质上能够包括任何种类的通告吸收器(下面将详细描述),将查询224引导到一个接口(不显示)(例如,显示屏、电文),其中该设备的用户确定是否支持该查询(例如,web查询请求用户从目录中选择业务或子业务)。因此,在查询230中,通过远程设备220产生一个查询响应230,表明该用户是否希望订阅查询230提供的一个或多个通告服务(例如表明是与否、目录选择的标志响应,表明不提供(counteroffer)或其他条件的方案响应)。在本发明的另一方面中,用户引导远程设备220向代理210传递一个非请求响应或查询234,请求/指定订购的一个或多个服务。
代理210接收通告服务响应之后,接着(或该查询之前)组合通告订阅。例如,代理210能够与一个或多个服务提供者240商定以便确定该服务提供者是否能够递送要求的通告服务。在一个例子中,该远程设备220的用户可以指定″我希望一种通告服务能够递送通用商业通知、具体给公司X的通知、影响我储蓄帐户的银行告示和当地的或国内的重要新闻″。接着代理210请求或确定哪个服务提供者240能产生有关该用户的响应230和/或未经请求的要求234的通告或通告事件。
在本发明的另一方面中,代理210能够提供通告代理242,借此代理将有关该用户的请求通告排队,并且在一个通告包244中递送该通告给通告平台250,通告平台250接着将该通告传播给位于远程设备220(或装置)处的用户。另一方面,代理210执行订阅代理252并且确定能够递送所要求的通告服务的可利用的服务提供者240。确定之后,代理210产生服务包254(例如描述通告服务部件的方案或文件以及供给部件的服务提供者)并且递送该作为订阅的包给通告平台250。通告平台250然后对服务包254中表明的任何事件设置一个响应,其中如果通告是从该包中产生的,那么通告平台250接着传送这样的通告到远程设备220和/或与该包有关的通告吸收器中。正如能够意识到的,用户除了能够描述或定义他们希望从中接收通告的业务类型之外,还能够指定哪个设备接收通告。此外,由代理210、通告平台250和/或根据自动计费和订阅业务/系统,能够提供递送服务的帐号管理(例如用于被递送通告的收费用户帐户),这将在下面进行更详细的描述。
转向图3,说明根据本发明一个方面的动态定价系统。在此方面,通告平台310与动态定价部件320进行交互,动态定价部件320是包含能够改变或变更认购价格或交货条件的规则或原则的一个文件或存储介质。为了确定包含在该动态定价部件320中的价格选项是否适用于一个用户、用户子集合和/或团体,提供一个用户情况文件330,它与这样的用户/群有关(例如与通告吸收器/平台有关的情况),即一个或多个属性340,表明有关用户的信息,诸如所选组中的会员以及有关使用通告业务的图形信息。接着通告平台310使用一个执行部件350来确定该属性340是否有资格享受该动态订价部件320描述的价格促销或折扣。例如,如果价格折扣提供给团体会员,属性340表明用户是某团体会员,那么相应的用户经过该执行部件350可以有资格享受团体折扣(假定定价部件是如此配置的)。
该动态定价部件320包括能使用户在订阅通告服务时接收价格调整的一个或多个原则。如上所述,这些可以包括团体折扣,其中通告平台310向有资格获得该团体会员的用户提供折扣(例如金钱/信用)。另一方面,还可以给出总额折扣。因此,如果一个或更多的用户订阅预订数目的服务时,可以根据完成或订阅的该预定数或获得的最低订阅量来申请总额折扣。该动态定价部件320提供的其他折扣包括基于时间考虑的折扣。例如,用户可以根据一天中的时刻、星期、或其他诸如月,对订阅的服务享受折扣。因此,某些通告服务可能奖励用户使用某一选定时间段的服务。还可以基于用户场所的考虑提供类似折扣。例如:居住于加州/IP地址(或其他地方)的所有用户得到一个星期的免费服务(或其他奖励)。
另一种考虑或准则可以是基于状态环境的折扣或调整(例如,当前处于非忙状态的所有用户接收一个休假提示(vacation notice))。下面参考图6将更详细地描述有关状态环境的其他考虑和订阅。另一价格考虑可以是基于使用的考虑(例如利用通告平台多于X分钟/月的所有用户得到折扣)。其他其他价格考虑还包括基于相关联系的调整。这样的调整可以包括根据使用或订阅其他标识服务来提供服务或折扣(例如签署了新闻服务的所有用户给予体育新闻服务而不需额外花费)。
图4说明根据本发明一个方面的订阅控制系统400。依据此方面,提供一个或多个订阅控制410以便于订购和/或不订购由通告平台420提供的通告服务。该通告平台420包括一预定部件424用于能使或禁止这些订阅发往一个或多个通告吸收器430。还可以提供一个帐目部件434以便根据操作该通告吸收器430的用户和该通告平台420之间的相关服务协议或合同跟踪服务用途和信用量以及帐单。
该订阅控制410(例如文件或方案)提供用于订购和不订购服务的多种机制。在一方面,可以提供订阅开关或标志440,通过放置在通告吸收器430上的按键或图形用户界面部件进行接通或断开(例如,如果选择了绿色按键,则现在预订财经服务,声音编码的或触发标志表明我不想预订服务。在另一方面,可以表明短期订阅444。这样的订阅包括选项,诸如我想订购一个小时或两天或其他时间,其中该期限可以从该通告吸收器430输入。另一种控制包括450处的间歇性订阅(例如,我想订阅星期一和星期二的内容,至周日再订阅。另一类型的控制包括位于454处的能使用户选择试订(例如我想试订一段时间,这一段时间我的订阅费自动终止)。在460,可以选中一个或多个变换选项。这样的选项包括将一种订阅转为另一种(例如将我的体育新闻订阅替换为健康通告订阅)和将一种期限转换为另一种(例如,将长期订阅转换为短期订阅,将试订阅转换为永久订阅)。正如可以意识到的,借助于订阅控制410可以提供各种组合和选项以便预订和/或不预定服务。
图5说明根据本发明一个方面的推出/拉回(push/pull)系统500。在此方面,可以在通告平台510(可以包括代理)和远程设备520之间交换其他通告(订购通告之外的)。一方面,由远程设备520产生一个拉回(pull)请求530以便确定通告平台510提供什么样的服务。这能够包括在用户文件534内部的设置控制,这些设置控制允许通告平台510发送非订购通告或消息。例如,远程设备520可以希望得到平台510内部的推销多种服务的未经请求的通知或广告(直到用户文件中的控制发生变更)。例如这样的信息能够包括为对其他服务的标价和比较信息。这还可以包括从多个不同的或类似的/竞争的资源中得到样本通告。
在本发明的另一方面中,在540,可以将奖励和/或其他类信息向该用户推出。在一个例子中,在540可以给用户提供试图引导用户使用相应服务的多种供应,奖励和/或选择权。例如,一种奖励可以写为″如果你预订体育服务,那么你的新闻服务额将扣除50%″。另一例子包括″如果你同意在6:00的一个小时期间经由通告接收未经请求的广告,你会得到持续一个月的免费服务″。正如能够意识到的,能够提供多个这样的奖励。如果操作远程设备520的用户决定接收/拒绝一个供给服务,那么该用户能够选定一个菜单选项或设备机构,该设备机构将一个答复发回给通告平台510。注意,用户能够设置用户文件534中的控制功能,以能够减少或除去任何推出式通告。
图6说明根据本发明一个方面的订阅和状态环境部件600。在此方面,能够使用用户状态环境来控制订阅活动。例如,订阅部件604能够根据来源于环境模块610的环境信息使一个或多个订阅激活或撤消。在一方面,根据环境状态或其他环境数据,能够根据状态环境模型610提供的一个或多个方面预订或不预订订阅服务。举例来说,某些用户基于一检测环境可能想要某一种通告,但他们不想在其外部环境不能允许(由于其当前活动)接收这些通告的期间预定这项服务(例如当我工作时,不订阅爱好类通告源而预订专业的通告源)。正如能够意识到的,订阅部件604事实上不能激活和撤消一种订阅服务,而是仅仅在其环境或指定环境规则不能允许接收足够的通告期间给用户的帐目赊帐。以下描述与状态环境模块610有关的其他方面以及可以变更或影响该订阅部件610的其他方面。
状态环境信息(或状态环境)是有关用户和该用户的活动的信息,这些信息能使系统对用户行为智能地产生和发送通告。状态环境信息的例子包括:
.即时投递存在信息
.交换日历信息
.由蜂窝电话网络或GPS接收器报告的物理位置信息
.用户系统收集的信息,诸如用户是否正在键盘打字、点击鼠标或以全屏幕模式运行一个应用程序。
状态环境信息典型地来源于环境源620并由状态环境消费者诸如订阅部件604使用。状态环境信息可以通过环境服务从环境源620传播到环境消费者。环境源620的位置是环境数据源(或发端)。环境消费者的场所是环境目的地(或目的地)。
环境信息可以由大量的环境源620提供,包括:
硬件状态环境源
该系统通过监视硬件设备状态能够集合环境信息。
1.键盘活动。
2.鼠标活动。
3.电话活动(电话通/断,电话会话进行中等等)。
4.个人数字助理活动。
5.蜂窝电话网络内部的物理位置。
6.GPS接收器报告的物理位置。
7.与图像识别连接的Web摄影机。
8.与声音识别链接的麦克风。
9.运动传感器。
10.红外传感器。
软件运行环境源
该系统能够从操作系统和从指令化的应用程序中集合环境信息。
1.视窗
a.用户已登录。
b.用户正在运行全屏幕应用程序。
2.交换
a.交换机正在被用于阅读电子邮件。
b.交换日历数据。
c.交换″不在办公室″状态。
3.IM
a.该IM客户正在发送和接收IM消息。
b.用户进入IM状态
4.internet探索器或其他浏览器
a.IE正在用于浏览web。
5.办公室
a.正在使用Powerpoint给出演示模式
b.正在使用Outlook浏览电子邮件。
C.正在使用Word或Excel操作另一文件。
6.视窗媒体播放机
a.正在使用视窗媒体播放机播放音乐或影像。
7.第三方应用程序可以提供环境信息。
模式检测状态环境源
该系统和应用程序能够通过分辨行为模式来推导出环境信息。例如,该系统可以认识到一个用户在每周的预定时间正常地登录和不登录。
在630,能够出现状态环境特征。
环境信息能够被表征如下。
状态环境源
指定谁提供该环境。
状态境使用者
指定谁使用该状态环境。
实用性
详细说明在产生或发送通告时,状态环境信息是多么有用。实用性被指定为∷高、中或低(或其他指示)。
准确度
详细说明在该环境信息中该系统能够给予多大可信度。某些状态环境信息是绝对精确和可信赖的;其他状态环境信息也许是启发式或只不过部分可靠。准确度被指定为∷高、中或低(或其他指示)。
灵敏度
详细说明该系统必须付出多少努力来保护该环境信息不被公开。灵敏度被指定为∷高、中或低(或其他指示)。
发端/目的/传播距离
发端确定该状态环境信息发生的场所。发端被指定为:桌上型电脑、设备、企业服务器、网络服务器、载波通信网、等等。目的地确定该状态环境信息被耗费的场所。目的地被指定为:桌上型电脑、设备、企业服务器、网络服务器、载波通信网、等等。传播距离确定该状态环境信息必须传送多远才能从发端传播到目的地。传播距离可以被指定为:当地的(或内部系统)、内联网,或国际互联网络。该传播距离可以影响环境信息传播的性能、可靠性和安全。
变化性(Volatility)
确定在环境源环境信息的变化频率。变化性是按照每秒、分钟、小时、天、星期、月或年的变化指定的。
接入次数
确定环境使用者访问该环境信息的次数。接入次数是按照每秒、分钟、小时、天、星期、月或年的接入指定的。
规模
确定提供、传送、贮藏和耗费了多少环境信息。规模是按照字节指定的。
用户维护的花费
确定用户必须消耗多少努力来维护精确的环境信息。能够认为,用户更可能愿意维护系统自动持有而且不须用户努力的那种环境信息,而不是用户必须人工地维护的环境信息。这样也可能是更加精确的。用户维护的花费被指定为:高、中或低。
在640,环境使用者能够被表征为:
环境使用者能够被表征如下。
状态环境使用者
谁是该状态环境使用者?
状态环境使用者场所
该状态环境使用者在该环境源当地或移出当地?
状态环境条件
状态环境使用者要求什么样的环境?状态环境使用者要求什么样的环境形式?来自一个或多个独立环境源的当前环境、从一个或多个独立环境源中改变的状态环境、从多个环境源中综合的状态环境?
状态环境接入次数
状态环境使用者多久接入状态环境?
环境不同性(Freshness)
该状态环境有多新?
环境等待时间(Latency)
状态环境使用者得负担多久才能获得新环境?
在650,状态环境模块描述从状态环境源中获得状态环境。
状态环境源能够以以下方式为状态环境服务提供状态环境信息:
按变化推出
每当状态环境信息变化时,(或每当环境信息的变化不比确定间隔更频繁时),环境源能够向环境服务推出环境信息。
按时间表推出
状态环境源能够在规定时间为状态环境服务推出状态环境信息。
按时间表收回
状态环境服务能够在规定时间从状态环境源收回转台环境信息。
按要求收回
只有当状态环境使用者要求状态环境信息时,状态环境服务能够从状态环境源中收回状态环境信息。
在660考虑环境传播。
当状态环境服务接收状态环境信息时,能够以以下方式将状态环境信息从发端传送到目的地。注意到状态环境源能够使用一种模块向状态环境服务提供状态环境信息,同时状态环境服务能够使用不同的模块从发端向目的地传送状态环境信息。
按改变推出
每当状态环境信息变化时,(或每当状态环境信息的变化不比确定间隔更频繁时),位于发端的状态环境服务能够向目的地推出状态环境信息。
按时间表推出
位于发端的状态环境服务能够在规定时间为目的地推出状态环境信息。
按时间表收回
位于目的地的状态环境服务能够在规定时间从发端收回状态环境信息。
按要求收回
当状态环境使用者要求状态环境信息时,处于目的地的状态环境服务能够从发端收回状态环境信息。
如果发端包含通告服务情况,那么状态环境服务能够利用事件触发器或通告服务订阅时间表实施上述模块。按改变推出能够由一个事件触发的订阅所实施。按时间表推出和按时间表收回能够按照订阅时间表执行。按要求收回能够实施为″曾经的″计划订阅。
在670,模块向状态环境使用者公开exposes状态环境信息。按照通告服务发生器或信息代理路由器内部运行的规则使用状态环境。这些规则通过访问状态环境功能检索状态环境信息,所述状态环境功能指从环境信息类的状态环境表中将所状态环境信息恢复。考虑到上述,当确定是否激活或撤消相应的订阅时,订阅部件604能够使用状态环境模块610的一个或多个方面。
图7说明根据本发明一个方面的用于接收通告的设备配置700。在此方面,通告吸收器装配一个或多个通告部分,这些部分能使用户调试或调整通告是怎样被交付给吸收器的。正如所说明的,这些部分能够保存在用户文件720中,当确定怎样给吸收器710递送通告时,通告平台或代理要阅读用户文件720。在730,确定接收通告的设备。例如,用户希望信息通知呈交给蜂窝电话和无线膝上型计算机,而只给台式计算机发送高品质通告。换句话说,用户可以确定服务A和服务B应该直接将通告发给桌上型电脑,而服务C应该将通告直接发给本地电子邮件地址。在734,确定一个或多个设备性能。在这些方面,根据确定的容量,通告服务可能基于设备容量变更或调整通告输出或订阅(例如,用于蜂窝电话显示屏,激活消息块规则)。
在740,可以选择一个或多个设备过滤器选项。这能够包括激活junk或SPAM过滤器选项,以减少接收不需要的通告量。其他选项包括只对来源于订购通告服务和/或指定的通告源的通告允许设定控制()。其他选项包括一个或更多个规则的详细说明,可以用来限制或减少通告(例如如果在工作时间期间接收到个人爱好通告服务消息,则丢弃通告或排队信息,直至回家后)。在744,能够确定一个或多个递送条件(例如,如果我只有蜂窝电话可用,那么将我的订购通告在我的桌上型电脑上排队等候,如果在非午餐期间,我位于桌上型电脑旁,那么在工作时间之后发送通告)。在750,能够确定一个或多个设备的条件(例如只发送紧急事件通知给蜂窝电话,发送个人通告给膝上计算机和桌上型电脑,如果远离桌上电子计算机,则不订阅商业通告)。
图8和9说明自动计费和订阅服务,这可以借助于一种通告平台和/或与本发明关联的部件来使用。参考图8,系统810说明根据本发明一个方面的分布计算环境下的计费和设备配置处理体系结构。系统810提供一个基础结构以支持在与通告平台有关的各方和实体之间的计费关系。提供一个或多个处理引擎812,它响应外部计费和设备配置(provisioning)事件814并根据与相应的处理引擎812有关的多个规则816操作。事件814内部包括处理引擎812内部的确定事件(不显示)并通常符合订阅事件模块。该模块表示一订阅可以经过订阅循环的状态转移(例如用于在线服务,如电子邮件阅读)。这种事件814的一个例子可以包括:订阅预购买、订阅购买、订阅倡议、订阅取消、订阅中止、订阅起动、订阅从中转换、订阅转化成、期刊续订、订阅用途事件报告、订阅期满、用户业务记录变化、订阅满期、服务配置、服务去配置、服务中止和服务起动。将意识到,可以根据本发明定义其他这种事件。
规则816可以包括服务递送规则、资格规则、额定规则、和/或其他类便于根据处理引擎812进行计费和规定处理的规则。根据事件814的性质,处理引擎812运用与事件有关的整套或分套规则816。例如,服务递送规则定义要递送的服务的原子单位,包括有关业务类型、服务水准递送、和/或涉及服务性能和支付的关联资源平衡的数据。资格规则定义用于购买相应服务的适当必要条件。可以创建这些规则以限制和/或变更购买服务,使之为有限的用户、用户语言、货币、国家、租户、服务提供者、现有业务和/或自己的提供的、特定租赁人的附属、经由特别的方法支付等等。额定规则便于确定对造成费用的货币余额的余额影响(balance impacts),和/或包括监视消费和分配服务的非货币的余额影响。可以将这些规则定义在独立提供的在订阅事件模块环境中处理的范畴内,如上所述。正如以下将详细描述的,提供一个或多个数据存储器818以由处理引擎812支持系统810内部的计费和配置,以及相关订阅/事件处理。
提供一个订阅平台服务(SPS)820,包括一个或多个订阅平台对象(SPO)824以便建立和维护一个或多个租户830,一个或多个服务提供者834和一个或多个顾客840之间的记帐、规定和帐目关系。通常,租户830经销的服务是通过服务提供者834为顾客840执行的,其中使用SPS 820创建和经营用于这种服务的相应的计费帐户。租户830向顾客840或该服务消费者提供服务或服务包(相关或不相关的)。′一个提供报价可以包括与系统810内服务有关的适于销售项目的一个原子单位。提供的报价可以包含业务递送集合、资格和额定规则,加上多种语言和相应语言的定价描述,并包括系统810使用的附加元数据。订阅提供与各自最终用户或订户840有关的一个即时报价情况。
如果要求了预定该服务,那么租户830检索顾客840的信用卡信息或其他种类的计费设备,与顾客交换法律上的或合同信息,并以定期方式或周期地确定顾客对于服务的收费统计量。租户830使用SPS 820创建一个计费帐户,认可顾客的信用卡或具有相关金融机构的其他仪器,并通知服务提供者834开始向顾客840提供服务。由于这种服务由服务提供者834执行,SPS820对该客户账户计费。将意识到,根据该本发明,在系统810中说明的其他部件能够向顾客840提供或经销服务。例如,服务提供者834能够对顾客840提供和经销服务而不必与相应的租户830进行交互。
涉及SPS 820的其他当事方或实体包括位于844处的客户服务部件,以提供正在进行的工作支持和客户帐目管理。在850的付款提供者(例如银行、金融机构)促成客户帐目支付,而金融的、商业和产品操作方面将在854加以说明。金融和商业操作能够使用SPS 820进行数据操作和分析,如果期望,而产品操作能够利用利用SPS确定和提供产品目录报价诸如包装服务。
根据本发明的一个方面,提供了应用程序接口装置(APl)860-870,其中相应的实体830-854能够与SPS 820进行交互。该APl装置860-870通常执行为与该SPS 820的接口。正是通过该APl装置860-870,租户830、服务提供者834、客户840、客户服务代表844、付款提供者850和/或商业/其他操作854才接入一个或多个订阅平台服务820的功能部件。例如,该APl装置860-870能够公开一个或多个以下方面,诸如帐号管理、产品目录搜索和操作、订阅管理、用户授权、应用事件、在线说明/自助、客户服务实用、商业和产品操作、实用性、事件和通告和/或规定支持。
可以提供可扩充标注语言(XML)方案,用来定义配置、计费和/或顾客关注的平台对象824。例如,该对象824能够包括帐目、支付凭证、报价、服务部件、订阅、服务情况、角色分配、允许、资源、票据结算期信息、票据声明付款信息、票据语句行项目、注解、和/或结算信息以便命名最大可能的目标。该实体830-854还可以在经网络870和协议874联系的实体之间与SPS820进行交互。
协议874能够包括一种简单目标存取协议(SOAP)、虽然能够意识到可以选择其他协议。SOAP通过使用作为信息交换部件的超文本传输协议(HTTP)和/或XML促使在一种操作系统下运行的程序与在相同或另一种操作系统下运行的程序进行通信。如示例。能够为830-854装备一个任选的伙伴支持目标(PSO)880以易于在实体和SPS 820之间通信。例如,该PSO 880能够提供一个助手接口,用于确立与SPS 820的连接和/或提供目标连接共享以便于执行。PSO 880通常公开单个API诸如一个连接接口。在安装PSO 880之后,该相应的实体830-854能够利用该PSO进行认证、授权和/或其他通信,如果要求的话。
注意,在系统810描述的部件可以分离地运行在不同的机构或计算机上,其中相应的一个独立部件可以在多个机构或计算机上运行-因此在分布计算环境中提供多级部件分配。根据本发明的一个方面,能够提供一个路由机构或协议,以便对几个机构处理订阅和计费信息的分割(例如分割partitions)。这便于通过系统810处理较高层次话务,以及保持系统中的容错级别。例如,能够经由综合散列算法和数据库(例如塔)将信息分割,以便确定哪个部分可以位于特别的信息项中。
现在参阅图9,系统900说明根据本发明的一个事件处理体系。系统900能够被组织为一个多层的体系,通过订阅平台Services(SPS)层910控制运行时刻与外部方通信。SPS 910包括一个伙伴许可管理(Partner Permissions Manager PPM914,在与系统900通信的伙伴为分层的方式以便于实施每个伙伴许可。使用PPM 914对每个事务基础执行伙伴权限模式,能使具有适当权限的伙伴变更个体订阅和服务状态。伙伴权限模块描述与注册的伙伴(例如,租户和/或服务提供者)有关的权利,这种权利定义其在系统900内部变更专用订阅、帐目和/或服务状态的能力。
SPS 910通过系统900内部的多种引擎920进行联合处理并通常将写入和更新数据控制为多种数据存储924。提供一种产品目录930,它可以包括包括一个定义的结构化查询语言服务器SQL Server数据库,存储服务部件定义的目录、伙伴权限和/或报价元数据。该产品目录930还可以包括与专用报价有关的额定、资格和/或服务递送规则。产品目录930支持的附加特点包括服务部件注册(例如部件ID分配、伙伴IDs、URLs、支持信息),包括多个服务部件报价的交叉伙伴报价和交叉伙伴包。该目录930可以包括全球化的报价,按照多个国家、语言、相关的货币、习惯和税,此外还提供实质上映射任何综合服务的组报价。
报价信息还可以保存在产品目录930中。此信息可以包括服务信息之间的基本、升级、降级、更新、附加和相互专用性。另外,可以提供涉及销售日期、伙伴、语言、国家、货币、每个帐户的最大所有权和有效支付凭证。其他报价信息涉及票据循环数(例如、按月、多月,28天,转帐/欠账循环报表)。这还可以包括涉及更新的信息,诸如自动或确认的更新和涉及结算宽限期的信息。其他目录项目可以包括支配映射入口的事件,定义一套规则以便在一个关联事件发生时执行。
在可以保存在订阅存储器940的订阅状态环境和关联订阅事件中,余额影响额定引擎934处理分别来自产品目录930和列入事件存储932中的一个可扩充额定规则组和/或额定事件,此引擎934可以处理多个余额影响事件(例如影响付款的事件和服务的利用),这是为多重服务提供者、租户、客户和/或其他实体提供的。在944可以在计费影响储器中存储和处理余额影响事件。源余额存储器150保持相应帐目的总额,这些相应的帐目是由该余额影响额定引擎934按定额规则处理造成。差额可以是″键入的″以表明所述服务的单位值、一个或多个服务递送规则的范围。例如,这可以包括处理货币和非货币资源,处理响应用户驱动事件(UDE)诸如采购、取消、周期、应用报告、转换、更新、中止和恢复活动的额定规则。另外,可估价的事件可以按照时间周期分隔开,并提供直接结算和/或每个选取支付的结算工具。注意到实质上引擎920和/或系统900部件可以以任意对象模块帧结构形式执行(例如,COM、DCOM,CORBA、.NET)。
一个资格引擎954评价个体用户购买、取消和/或转换联机服务订阅的资格。例如此引擎954处理资格规则(保存在该产品目录930),该规则与给定报价、用户的应用属性、和相关约定有关。一个设备配置引擎960对公共服务提供者协调定义的配置方法的事务处理,以响应正如订阅事件模块提供的适当的事件,如上所述。此引擎960便于精确并及时地将服务递送给终端用户。配置方法包括设置状态的行为(例如,根据未付款的票据设置一个标志或条件),这些状态指要求递送或阻止给该服务指定的用户递送规定的服务。该配置引擎960还控制对服务提供者934,租户930或使用一个或多个APls 960,970响应规定事件的其他实体((不显示)进行通信的流量。
伙伴配置工具(PCT)970和伙伴配置负载器974可以通过带外处理与产品种类930通信,如果需要的话。通信应该与具有适当安全凭证的管理者一致,用于装配和/或加载产品目录数据。PCT 970可以按照图形用户界面(GUI)工具实施,以便配置服务递送规则、报价、资格规则和/或每个租户权限以及其他参数。该伙伴配置负载器974加载一个或多个伙伴配置文件(PCF)978到多机系统环境,便于共享开发/测试-交叉伙伴的测试和调度,加载到多次操作生产和试制环境。该伙伴配置加载器974还便于创建系统900内部的一个伙伴帐目以便实质上向相应的伙伴提供保护数据的安全传输。例如可以带外传输一个保护密钥以便减少对该系统的非法使用企图。如果要求,PCF 978可以是一个暂态模式文件,包括XML格式的报价界定和关联的资格、额定、服务递送规则和/或伙伴权限。此格式可以包括通过PCT 970使用的设计时间属性和/或通过系统900中的多种引擎920使用的运行时刻属性。
将意识到,至此描述和如下所述的系统、部件和/或流程可以实施为个体部件和程序,和/或可以组合为各种组合。另外,如果要求,一个或多个所描述的部件和/或流程可以按照多种其他部件和/或流程进行组合-包括在单个部件中提供所有部件和/或流程,或组合部件。
图10说明根据本发明的用于通告递送处理的方法。虽然,为了单纯说明,该方法被表示和描述为一系列动作,但能够理解和意识到的是,本发明不局限于其动作顺序,根据本发明,某些动作可以以不同的次序出现,和/或与这里表示和描述的其他动作同时出现。例如,本领域技术人员能够理解和意识到该方法可以表述为诸如在一状态图中的一系列相互联系的状态和事件。此外,并不是所有所说明的动作都可以被要求执行根据本发明的方法。
图10说明根据本发明一个方面的通告递送处理1000。进行到1010,定义了可以与一个通告平台进行交互的一个或多个应用程序模块。如上所述,这种模块可以包括代理模块,定价模块,订阅接入模块,推出/拉回模块,状态环境模块,和/或计费模块。在1014,该应用程序模块与该通告平台接口。换句话说,根据通告平台的操作帧结构能够起动一个或多个应用程序模块以便便于给用户和/或机构递送通告。在1018,用户文件被定义为描述的期望通告性能。在1022,该用户文件按照用户、设备和/或系统能力进行调整。这可以包括提供接口和控制以便于调整一个或多个应用程序模块、通告平台、关联的部件和/或系统动力学。在1026,使用应用程序模块订购和/或不订购通告服务。
参考图11,系统1100说明根据本发明一个方面的通告应用程序体系。该通告系统1100便于递送信息给已经订阅了一个应用程序的实体。该系统1100按照具体用户的偏爱以要求的方式提供高度可升级的和给予用户宣传信息。用户是已经对该通告系统1100进行预定的一个实体(例如,一个人或应用程序)。根据本发明的订阅可以是某感兴趣的信息(例如股票价格或体育事件结果),和递送模式的规约(e-mail、语音邮件、经由PDA、台式计算机、蜂窝式电话、电视等递送)。此外,本发明还提供了一个个体的当前状态和根据该当前状态的递送偏爱。因此,该通告系统对上述其他参数供给的递送的信息类型、有关该信息的危急程度、该用户的现阶段的状况和该递送偏爱提供了动态变更的递送模式。便于系统1100提供这种高度可升级的通告服务的本发明之一方面在于使用了正如数据般的订阅模块化。这种订阅模块化减少了个别运行查询每个事件每个用户的需要。从而,可以以相同的方式根据个体用户偏爱,对于多个用户和提供给该相应用户的相关通告,能够进行许多事件的同时处理。
用户感兴趣的信息被集合为一个事件,例如具体时间的股票价格、体育得分或一产品递送消息-几乎现实世界的任何适当情况都可以被表示为根据本主题发明的一个或多个事件。通告是被交托给用户指定设备的一个消息,包含与订阅有关的信息。例如一个通告可能包含关于一具体股票的最高价值或体育事件的最后得分消息。该服务器通告服务提供接口用于集合订阅和事件,然后根据此数据生产通告。
对于不同于查询方式的个体订阅,通告系统1100视个体订阅为参数数据对待(例如,一个应用程序开发者可以定义一套参数查询,每个查询可以是一个订阅分类)大量订阅的计算变成一套面向数据处理问题,对此数据库引擎(例如SQLserver)是非常适合的。这是该通告系统的基础-本发明的编程帧结构。在此模块中,通过在事件和可能的大量订阅之间简单地执行数据库连接来计算事件触发的订阅。通常,订阅模块化为数据的概念是根据一种假定——如果通告系统1100定义多个域,那么许多查询将具有公共结构。例如,许多用户感兴趣股票价格,但小量用户要求介绍不同股票在不同价值时的有关信息。因此,一个特定股票的利息可以表示为″STOCKSYMBOL″和″TRIGGERPRICE″,以致于为这种信息提供一个公共帧结构或参数。这些参数值怎样翻译为事件数据的语义可以由该应用程序来定义。因此,该应用程序固定了订阅参数怎样翻译的逻辑(例如,当当前价格大于触发价格时,一种仪器会发出警报,当当前价格小于触发价格时另一个仪器将发出警报)-这种语义可以通过应用开发者提前分析,并设计为用户不能引入新的语义。
正如以下更详细描述的,本发明主题还包含用于建立订阅应用程序的一个编程模块。在订阅应用程序中,用户对某一种目标信息的兴趣建立订阅或宣告。此后,当该信息变为可用时,订阅应用程序向该用户发送一个通告。订阅应用程序的一个功能是匹配来话数据与一组用户订阅,以便确定需要发送什么样的通告。本主题编程模块允许应用程序开发者写入少量的应用程序指定代码(例如,适于支持该NET帧结构的XML、SQL、C#、C++,VB和其他语言的组合来建立一个全功能的,丰富的订阅应用程序)。为起动这种功能性,可以在SQLServer顶端建立一个执行引擎和.NET帧结构,例如,它执行基本数据结构和执行订阅应用程序公用的语义。因此,本主题编程模块减少了开发时间,通过平衡服务器例如SQL Server的能量来进行订阅和事件相配,便于应用保持和增加应用效率。
本主题发明包括一个用于建立订阅应用程序的宣言编程模块。该程序设计模块提供用于该应用程序结构的基础帧结构;开发者可以改编该基础帧结构以建立专门应用。
关于系统1100的高级示意图,通告服务的五个部件相配合以便提供如上所述的功能。订阅管理应用程序1110提供一个接口,用于用户递交订阅,作为向系统1100的输入。特别是,订阅管理应用程序1110提供众多的应用程序设计员接口(API),易于实体经由系统1100提供订阅服务-下面将更详细描述。事件数据还可以从外部资源由一个事件提供者1120收集。例如,根据本发明的一个事件提供者可以从多个资源(例如报纸、杂志、网址、图书馆、个体、雇主、政府等等)集合或推出相关事件。数据库引擎1140在数据存储器1142中存储事件和/或订阅,以及运行指令,就像处理SQL语句那样并存储过程。将意识到,数据库引擎1140还可以实时处理事件与订阅而不必持续地存储信息。通告应用服务器1130根据一组事件处理订阅并最终产生递送给用户的通告,如果需要,这个通告可以保存在数据库1142中。最后,递送信道1150向递送服务1160发送该产生的通告,可以包括但是不局限于交换服务器、SMS服务器和.NET警报Web服务。
图12说明根据本发明一个方面的通告创建和分配系统1200。系统1200包括一个订阅管理系统(一个或多个订阅管理应用程序)1210、通告服务1220、一个数据引擎1230、数据库1232、递送服务1240和由该通告系统1200作为主机的一个或多个订阅服务1250。服务器数据库引擎1230提供实例和应用数据的处理和存储。特别是,服务器数据库引擎1230从数据库1232中存储和检索实例和应用程序信息。该数据引擎1230还提供由通告服务1220使用的其他服务。例如,通告服务1220可以使用Transact-SQL语言经由该数据引擎1230来连接事件和订阅数据。这种集中方式提供了可缩放性能增益,因为该数据引擎1230很可能高度优化连接作为由SQL服务给予的信息处理能力结果。该订阅管理系统1210,提供一个主机环境,用于收集用户和订阅数据以及调节各种独特订阅服务1250的用户界面。该订阅管理系统可以使用Windows应用程序,用于递交用户和订阅数据,或可以使用一个自动处理程序用于从另一系统加载用户和订阅数据。递送服务1240(例如.NET警报和微软公司交换服务器)从通告服务1220中接收通告并发送该通告到适当的用户。
功能上,事件通过通告服务1220中的主事件提供者或通过通告服务之外的非主事件提供者递交给服务器数据引擎1230。如果使用非主事件提供者,可以使用支持该事件提供者的另一系统诸如网络服务器。另外,意识到通告服务1220可以配置在单个服务器服务器上或级别交叉的多重服务器上。
接着参考图13,说明根据本发明的一个方面的通告服务结构1300。该体系结构1300包括一个通告服务系统1302,1302包括一个事件提供者1304、一个中央数据库1306、一个特定应用程序-数据库1308、通告引擎1310、环境分析器1312、通告分配器1314和用户1316。通告服务系统1302接收以事件和用户数据形式的输入,并向用户1316提供输出或通告。
事件提供者1304从用于通告服务系统1302的事件源中获得事件。事件表示外界的数据变化。例如,在具体时间的股票价格是一个事件,体育得分或产品递送消息也是事件。换句话说,事件是潜在地对某些用户有利的目,这些用户通过订阅,定义特别的输入数据。使用事件提供者1304从用于通告服务1302的事件源中收集选择的事件。此外,事件提供者1304可以从多个的不同的源中收集事件数据,这些不同的源包括然而并非限于通信诸如基于Intenet和网络的通信,电话通信以及软件服务、XML文件、应用程序和数据库。
事件源通常被定义为产生事件、还可以被认为是通告或警报、打算警告用户或用于该用户的委托书、相关信息、服务和/或系统或世界事件。一个事件源还可以被认为是一个通告源。此外,事件提供者1304可以通过多种方法监视和集合数据。收集数据的例子包括但不局限于监视文件附加目录、检查某种入口的系统和应用程序日志文件、从应用程序中截留警告、监视网页、跟踪数据库表格改变和评论web服务提供的数据。大多数情况下,一个事件提供者可以从任何适当的资源中集合数据,假定准备一个应用程序从该资源中检索事件。通常,存在可以由事件提供者1304使用的各种不同的模块来收集数据。这些模块可以影响多长时间和在什么环境下事件提供者1304会从事件源中收集事件。
另外,可以以至少两种方式中的一种通知事件提供者1304或提供数据。事件提供者1304可以等待″被推出″或要发送给它的信息,或事件提供者1304可以通过轮询该信息源和收集任何新或更新数据,从信息源中″收回″信息。例如如果一个用户希望每当喜爱的新闻页上标题故事更改时则通知他,那么可以这样实现事件提供者1304以致它监视那页并搜索标题更改的正文,例如。当正文变化时,事件提供者1304可以为通告服务系统1302摘录该新的标题数据。上述例子中,事件提供者1304对集合必须的数据负责,因为该数据不从事件信息源提供到事件提供者,这正如推出方法的使用一样。
此外,事件提供者1304可以根据时间表或者根据符合前定义标准的一个事件情况为该通告系统1302获得新建数据。一个预定事件提供者可以根据应用开发者实现的设置周期地运行。安排的事件提供者将开始运行、检索和递交新的事件数据,然后休眠,直到下一计划的触发时间。一个事件-驱动事件提供者可以通过连续地运行来监视一个事件源。其后,当符合收集的特别标准的数据变为可用时,事件提供者将收集和递交该事件。换句话说,一个事件驱动事件提供者只可以运行以响应收回功能或其它的外界奖励。此外部功能于是将确定是否存在有效收集的事件数据,并使用事件提供者作为收集这种数据的手段。
一旦事件提供者1304从外部事件源收集数据,会把该数据分批地写在事件表上并将事件表格保存到数据库1308。
为效率缘故,最好分批地处理数据---事件数据和通告数据两个都分批。正如此处通常定义的,一批可以是作为批处理的的一串数据。例如,一批事件可以是曾经提交给通告服务1302的一组事件。事件可以或者一个一个单独地或者作为一批写入系统。当单个事件写入该系统并且没有开放一批事件,那么可以自动地创建一个。那么该新事件和随后的事件与此自动分批创建关联。对提供这些事件的事件提供者进行编程来周期地接近该当前分批事件,递交此批事件用于通告阶段使用。第一个新事件提交时创建一个新的批事件,并且循环又开始。此外,当事件作为整体被写给系统时,每个创建组被自动地分配一批事件。当该写入过程完成时,该批事件结束以致这些事件在通告处理阶段生效。在本发明的特别实施例中,该批是原子的(例如,或者整个一批或者没有一个被递交)。
转向图14,描绘根据本发明一个方面的ADF 1400和其部件的方框图。该ADF 1400定义应用程序的中心逻辑并且包含事件、订阅和通告方案;匹配事件与订阅的规则;并且可以提供用于产生通告格式的文件的名字。该ADF 1400通常包括五个部件:事件界定1410、通告界定1420、订阅逻辑1430、订阅方案1440和执行设置1450。将意识到的,该各种部件的功能可以结合成一个较少数目部件或推知为一个大型集合。
事件界定1410确定事件数据结构、收集该数据的事件提供者和该应用程序使用的任何事件纪录的结构。该通告界定1420确定未加工的通告数据的结构、将要发送给用户的消息的格式和用于发送该消息的递送协议。该订阅逻辑1430定义怎样计算订阅(预约费)。例如Transact-SQL语句可以匹配事件订阅或在某重现时间计算订阅。此外,订阅逻辑1430可以以定义明确的方式被参数化,以致个体订阅可以使该订阅逻辑个人化。更进一步的,该订阅方案1440定义该订阅参数的结构和当计算订阅时计算定义的次数。最后,当通过通告服务执行时,该执行设置1450准许应用程序开发者增加该应用程序的特性和性能。
此外,应用开发者可以在应用程序界定文件(ADF)的几个部分中定义应用程序设置。这些设置确定这种项目为主机通告服务的机构,和执行预定的通告服务职能-他们还证明关于ADF本身的元数据。这包括事件的结构和应用程序作为输入的的订阅,和生产通告的结构。以下详细描写的这种元数据例子包括但不局限于发生器设置、分配器设置、真空装置、版本设置、通告历史、应用数据库信息、应用程序执行设置和分配器信息。
该通告服务部件1220(图12)包括通告引擎1310(图13)内部的一个发生器部件(不显示),其匹配订阅事件并最终生产通告。发生器设置理由可以定义在ADF中的一个<Generator>节点中。应该考虑的一个理由是该发生器可以使用多少进程活动来处理一批事件。这种因素可以被认为是改善应用程序速度和和独占系统资源之间的一个折中部分,这种考虑是来估价通过增加更多的进程活动可以获得多少利益。意识到某些操作不能经过并行达到最佳效率,并有时可能低效。为了表明这些信息,在<Generator>节点中的一个<ThreadPoolSize>单元里指定一个值。
功能上,该通告服务发生器试图并行执行事件纪录规则,后面是订阅规则(两个事件规则和时间表规则)。该发生器将试图利用进程活动池内部可用的进程活动,同时执行规则。然而,应当注意到该发生器将不会并行执行事件记录。
参考图15,系统1500说明根据本发明一方面的优先系统1512和通告体系。该优先系统1512接收一个或多个消息或通告1514、为关联的消息产生有关重要性的优先权或量度(例如,该消息重要性程度的概率值)并在输出1516提供与优先值关联的一个或更多个消息。正如以下更详细描述的,分类机可以被构造和训练为对消息1514自动地分配优先权测量。例如,输出1516可以被格式化以致该消息被分配给一种可能性,这种可能性属于高、中低或其他重要程度。根据确定的重要程度类别,该消息可以在电子邮件程序邮箱(不显示)中被自动地分类。该分类排序还可以包括对已经定义了重要标记的系统文件夹直接存取文件。这包括已经标记诸如低、中和高重要度的文件夹,其中确定为特别重要的消息被排序在该关联文件夹中。同样地,一个或多个音频或可视显示(例如,图标,符号)可以适合于警告该用户要求了优先权的一个消息已经接到(例如三声嘟嘟响为高优先消息,两个嘟嘟响为中等优先,一个嘟嘟响为低优先级,红色或闪烁警告符号为高优先级,绿色和非闪烁警告符号表明中优先级消息已经接到)。
根据本发明的另一方面,通告平台1517可以用于连接优先系统1512以便引导按优先次序列出的消息到用户可接入的一个或多个通告吸收器。正如以下更详细描述的,该通告平台1517可以适合于接收按优先次序列出的消息1516和作出有关何时、在哪里和怎样通知该用户的决定。例如,该通告平台1517可以确定一种通信方式(例如用户当前的通告吸收器1518诸如蜂窝电话或个人数字助理(PDA))和用户可能的场所和/或可能的注意力。例如如果收到高度重要的电子邮件,该通告平台1517可以确定用户位置/聚集点并将该消息引导/再格式化给相关用户的通告吸收器1518。如果低优先级信息1516被接到,通告平台1517可以被配置为将该电子邮件留在该用户的邮箱中以在今后需要时观看,例如。正如以下更详细描述的,可以利用其他路由和/或警报系统1519引导按优先次序列出的消息1516到用户和/或其他系统。
现在转到图16,系统1600说明根据本发明的一方面的该通告引擎和环境分析器怎样共同作用。该系统1600包括一环境分析器1622,一通告引擎1624,一个或多个通告信息源1到N,1626、1627、1628、一优先系统1630(可以作为通告信息源)、和一个或多个通告吸收器1到M,1636、1637、1638、其中N和M分别为整数。该信息源还被认为是事件公布者,同时吸收器还被认为是事件用户。可以存在任何数量的吸收器和信息源。通常,通告引擎1624根据存储在和/或由状态环境分析仪1622访问的部分参数信息,将通告(也被成为事件或报警)从源1626-1628传送到吸收器1636-1638。
该环境分析器1622存储/分析有关影响用户决定通告的变量和参数信息。例如,该参数可以包括上下文信息,诸如用户的典型场所和注意焦点或每周每天每时刻的活动,和取决于这种参数的附加参数,诸如设备用户在不同的场所倾向性接入。这种参数还可以经由一个或多个传感器自发地完成观测的作用。例如可以根据通过全球定位系统(GPS)子系统提供的用户场所信息、对有关使用设备种类和/或该设备应用的模式、以及用户最后一次访问的特别设备类型,选择或变更一个或多个分布图(不显示),此外,正如以下更详细描述的,可以同时使用自动推理以便动态地推断参数或状态诸如场所和注意信号。该分布参数可以存储为该用户可以编辑的一个用户文件。不依赖于预定义的轮廓设置或动态推理,该通告体系可以起动用户实时确定其状态,诸如除了下一″x″小时的重要通告外,其他通告均不生效,直至给定时间为止。
该参数还可以包括有关用户偏爱的默认参数,以在不同的设置中由不同类型通告所打扰,这可以作为通告引擎1624从中完成通告决定的基础,并且用户可以在其上开始变化。该参数可以包括默认参数如用户怎样在不同环境下希望被通知(被电话机或寻呼机)。该参数可能包括这种估算,即在不同设置下用不同的模式被打扰的成本。可以包括上下状态环境参数(表明用户在不同位置的可能性、使用不同设备的可能性,在给定时间关注事项的可能性)以及通告参数(表明在给定时间用户希望被怎样通知)。
根据本发明的一个方面,被该环境分析器1622存储的信息包括在被环境分析仪确定的环境信息之内。该环境信息由环境分析仪1622通过根据一个或多个环境源(未示出)分析用户场所和关注状态进行确定的,以下更详细地描述。例如环境分析器1622经由作为用户移动或蜂窝电话一部分的全球定位系统(GPS),也许能精确地确定该用户的实际场所。该分析器还可能使用统计模式来确定用户在给定状态下的可能性,可以通过考虑背景评估和/或经过考虑这种信息收集的观察情况,天数、时刻、用户日历上的数据、和观察用户的活动来确定这种可能性。注意信号的供给状态可以包括该用户是否公开接收通告、由于忙而未接收通告、并可以包括其他理由诸如平日、周末、假日和/或其他时机/周期。
该信息源1626-1628、1630产生用户和/或其他实体希望的通告。例如,信息源1626-1628可以包括与诸如Intenet和基于网络的通信,以及电话通信和软件服务。通告信息源通常被定义为产生事件、还可以被认为是通告和警报、打算警告用户和用于该用户的委托书、关于信息、服务和/和系统和世界事件。通告信息源还可以被认为是事件源。
例如,电子邮件可以在由优先系统1630产生为通告,以致它被优先考虑,其中一应用程序或产生该通告的系统分配该电子邮件相对优先权,相当于给与该用户或重要或紧急的电子邮件。该电子邮件可能同时被发送而不考虑对该用户的相对重要性。涉及Intenet的服务可以包括收入其用户已经订阅的信息的通告,诸如不时的时事标题和股票行情。
通告信息源1626-1628本身可以是推出式或收回式信息源。推出式信息源是自动产生和发送信息而没有通信请求,诸如标题新闻及其他涉及Intenet的服务,在订阅之后被自动发送。收回式信息源是响应请求的发送信息,诸如邮件服务器被轮询之后才接收电子邮件。还有其他通告信息源包括以下:
~电子邮件桌上型电脑应用程序,比如日历系统;
~计算机系统(例如,可以警告用户有关系统活动或问题的信息);
~涉及Inteet的服务,约会信息,日程表查询;
~文档或在一个或更多共享文件夹中的某种文档的变化;
~新建文档有效,以响应固定的或持久性信息查询,;和/或
~情报源,有关人们存在的信息,其位置变化、其邻近(例如,让我知道当我旅行时,我的另一同事或朋友是否在距我10英里之内)、或其有效性(例如,让我知道何时史蒂夫能够对话,并接近可以支持完全电视会议的高速链接)。
该通告吸收器1636-1638能向用户提供通告。例如,这种通告吸收器1636-1638可以包括计算机,诸如桌上型电脑和/或膝上型计算机、便携计算机、蜂窝电话、陆上通信线电话、传呼机、基于移动的计算机以及其他可以意识到的系统/器械。注意到一些吸收器1636-1638可以比其他吸收器更加充分地传达通告。例如,台式计算机典型地具有扬声器和相对大的与此耦合的彩色显示器,以及具有高带宽用于当连接到局部网或Internet时接收信息。因此,台式计算机可以以相对丰富的方式将通告传送到用户。反之,许多蜂窝电话具有小的黑白显示屏,接收相对低带宽的信息。相对地,蜂窝电话传送的与通告关联的信息通常可能较短,并要符合电话机接口能力。通告内容根据发送到蜂窝电话或桌上计算机的不同而不同。根据本发明的一个方面,通告吸收器可以指经由事件订阅服务订购事件或通告。
该通告引擎1624访问存储或由环境分析器确定的信息,并确定从哪个信息源1626-1628接受的通告要传送到哪个吸收器1636-1638。此外,该通告引擎1624可以确定该通告怎样被传送,根据哪个吸收器1636-1638已经选择为发送该信息。例如,可以决定通告应该在提供到选择的吸收器1636-1638之前进行汇总。
该发明不局限于引擎1624作出有关哪个通告要传送给通告吸收器,以什么方式传送的决定。根据一个方面,可以利用理论上的分析决定。例如,通告引擎1624可以适合于推断重要的误差,包括用户场所、注意信号、设备效率和时间量,直到如果不被警告用户将访问该信息。通告引擎1624接着作出关于是否警告用户有通告的通告决定,如果有,确定整体种类和设备来中转该通告。通常,通告引擎1624决定网络希望的通告值。这样做时,考虑如下情况;
每个可用通告吸收器的保真度和传输可靠性;
干扰用户的关注成本;
给用户信息的新颖性;
直到用户自己检索信息的时间;
信息潜在的上下文灵敏值;和/或
包含在通告之内的信息时间的增加和减少。
干扰造成不确定性,因此可以产生希望的相似值,诸如利用用户注意状态的特定设备的特定模式,干扰用户的成本。通告引擎1624可以对以下情况作出决定:
用户当前希望和正在做的是什么?(基于上下文信息)
用户当前在何处?
该信息有多主要?
推迟该通告的代价是什么?
一个通告会怎样转移?
从用户取得的可能性是什么?
什么是与使用给定通告吸收器的指定模式有关的正确性损失?
因此,通告引擎1624能够进行未定的和积极的通告分析,诸如理论上的决定分析,评价信息吸收器和资源提供的上下文从属变量,推导出选择的不确定性,诸如直至用户可能检索信息的时间,以及用户的位置和当前关注的状态。
此外,通告引擎1624能够通过场所中的分析仪访问存储在用户分布图中的信息,或支持个人的理论分析决定。
例如,用户分布可以表示在给定时间用户更愿意以寻呼方式通知,只要该通知具有预定的重要级别。这种信息可以被使用为基本的信息,从中开始进行理论分析决定,或者可以是这样一种方式即通告引擎1624决定是否和怎样通知用户。
根据本发明的一个方面,通知平台体系1600可以配置为层状的,驻留在事件的或消息结构之上。然而,该发明不局限于事件结构。这种eventing ormessaging infrastructure包括:
-Hyper Text Transport Protocol(HTTP),或本领域公知的HTTP扩展
-Simple Object Access Protocol(SOAP),正如本领域公知的;
-Windows Management Instrumentation(WMI),正如本领域公知的;
-Jini,正如本领域公知的;
-基本上是任何一种通信协议,诸如基于分组交换协议;
此外,该体系可以配置为位于灵活分布的计算结构之上的一层,正如本领域技术人员可以意识到的。因此,该通告平台结构可以使用基本的结构,作为资源发送通告、报警和事件的方式,并作为吸收器接收通告、报警和事件的方式。然而本发明不局限于此。
参看图17,用于实现本发明各个方面的示例环境1710包括一个计算机1712。该计算机1712包括一个处理单元1714、一个系统存储器1716和系统总线1718。系统总线1718将系统存储器1712耦合到,包括但不局限于到处理单元1714。处理单元1714可以是任何各种可用的处理器。双处理器和其他多处理器体系也可以用做处理单元1714。
系统总线1718可以是任何几种类型的总线结构,包括存储总线或存储控制器,并行总线或外部总线,和/或使用任何各种可用总线结构的本地总线,所述可以总线包括但不局限于llbit总线、工业标准体系(ISA)Industrial StandardArchitecture、MICRO信道体系Micro-Channel Architecture(MSA),扩展ISAExtended
ISA(EISA),智能驱动电子Intelligent Drive Electronics(DE),VESA本地总线VESA Local Bus(VLB),外设连接Peripheral Component Interconnect(PCI),通用串行总线Universal Serial Bus(USB),高级图象口Advanced Graphics Port(AGP),个人计算机存储卡国际协会总线Personal Computer Memory Card IntemationalAssociation bus(PCMC1A),和小型计算机接口Small Computer Systems Interface(SCSI).
系统存储器1716包括易失性存储器1720和非易失性存储器1722。基本输入/输出系统(BIOS)存储在非易失存储器1722中,输入/输出系统包括计算机1712内部元件之间传送信息的基本例程,例如在启动期间。通过例图,而不是限定,非易失存储器1722可以包括只读存储器(ROM)、可编程序只读存储器(PROM)、电可编程序ROM(EPROM)、电可擦除只读存储器(EEPROM)或闪速存储器。易失性存储器1720包括随机存取存储器(RAM),作为外部超高速缓冲存储器。利用例证但不局限于,RAM可以在用于很多情形中,例如同步RAM(SRAM)、动态随机存储器(DRAM)、同步DRAM(SDRAM)、双倍数据率SDRAM(DDRSDRAM),增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)和引层Rambus RAM(DRRAM)。
计算机1712还包括可移动的/固定的、易失的/非易失性的计算机储存器介质。图17图解了例如硬盘存储器1724。硬盘存储器1724包括但不局限于,像磁盘驱动设备、软盘驱动器、磁带机、Jaz驱动器、压缩驱动器、LS-100驱动器、闪存卡记忆或存储条。此外,磁盘存储器1724可以与其他存储介质分离或结合在一起,包括但不限于光盘驱动器,例如高密度磁盘ROM设备(CD-ROMCD-ROM CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多用途磁盘ROM驱动器(DVD-ROM)。T为便于1724与系统总线1718的连接,典型地使用可移动的或固定的接口例如接口1726。
意识到图17描述的软件担当在用户和在相配操作环境1710中描述的计算机主体资源之间的一个仲裁者。这种软件包括操作系统1728。操作系统1728可以存储在磁盘存储器1724上,担当控制和分配计算机系统1712资源的角色。系统应用程序1730经过利用程序模块1732和存储在系统存储器1716或存储在1724上的程序数据1734,通过操作系统1728来利用资源管理,还将会意识到本发明可以利用各种操作系统或操作系统的组合来实现。
用户经由输入设备1736将命令或信息键入计算机1712。输入设备1736包括但不局限于一个定点设备例如鼠标、跟踪球、触针、触垫、键盘、麦克风、操纵杆、游戏垫、卫星反射器(satellite dish)、扫描器、TV调谐器卡、数字式摄象机、数字视频摄影机、web摄影机等等。这些和其他输入设备由接口1738经由系统总线1718连接到处理部件1714。接口1738包括例如一个串行口、一个并行口、一个游戏端口和一个通用的串行总线(USB)。输出设备1740使用一些相同类型的端口作为输入设备1736。因此,例如USB口可能用来提供对计算机1712的输入,并从计算机1712向输出设备1740输出信息。提供输出适配器1742以说明存在有某些输出设备1740,像监视器、扬声器、和打印机、连同要求专用转接座的其他输出设备1740。T输出适配器1742包括(利用例图但不限定于)视频和声卡,它提供输出设备1740和系统总线1718之间的连接装置。其他设备和/或设备系统提供了输入和输出能力例如远程计算机1744。
计算机1712可以在运用逻辑连接到一个或多个远程计算机(远程计算机1744)的网络环境下操作。远程计算机1744可以是个人计算机、服务器、路由器、网络PC、工作站、以微处理机为基础的设备、同级设备或其他公用网络节点等等,典型地包括涉及1712所述的许多或全部元素。为简明起见,仅以远程计算机1744来说明存储器设备1746。远程计算机1744逻辑上经由网络接口1748连接到计算机1712,然后物理地经由通信接线1750连接。网络接口1748拥有通信网络例如局域网(LAN))和广域网(WAN)。LLAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网/IEEE 1102.3、令牌环/IEEE1102.5等等。WAN技术包括但不局限于点到点链路、电路交换网像综合业务数字网(ISDN)和其变体、分组交换网络和数字用户线路(DSL)。
通信接线1750指用于将网络接口1748连接到总线1718的硬件/软件。虽然为了清楚地说明起见,以内部计算机1712表示通信接线1750,但通信接线还可以是外部计算机1712。连接到网络接口1748所必需的硬件/软件包括(只用于说明目的)内部和外部技术例如,含有常规电话类别的调制解调器、电缆调制解调器和DSL调制解调器、ISDN适配器和以太网卡。
图18是本发明与之交互的一个样本-计算环境1800的图解方框图。该系统1800含有一个或多个客户1810。客户1810可以是硬件和/或软件(例如、进程活动、流程、计算装置)。系统1800还含有一个或多个服务器1830。服务器1830是硬件和/或软件(例如进程活动、流程、计算装置)。服务器1830可以收容进程活动以便通过使用本发明执行转换,例如。在客户1810和服务器1830之间一种合理的通信可以是适合在两个或更多计算机处理之间进行传输的数据分组的形式。该系统1800含有通信帧结构1850,可以用于促进客户1810和服务器1830之间的通信。客户1810可操作地连接到客户数据存储器1860,用于存入本地客户1810的信息。类似地,服务器1830可操作地连接到服务器数据存储器1840,它可以用于存入本地服务器1830的信息。
如上所述的包括本发明例子。当然,为了描述本发明起见,不可能描述到每个可想到的部件组合或方法,而是本领域普通技术人员可以承认本发明的许多更进一步组合和置换是可能的。从而,本发明希望包含所有这种变更、修改和变型,这些都落入附加权利要求书的精神和范围之内。此外,对于术语″包括″或者在说明书或者在权利要求书中使用的程度来说,当用于权利要求书中的暂时词语时,这个术语希望具有如同术语″包含comprising″的解释。