用于使用基于上下文的规则在不可靠网络上对交易和数据进行交换的自适应网关的制作方法

文档序号:6568705阅读:161来源:国知局
专利名称:用于使用基于上下文的规则在不可靠网络上对交易和数据进行交换的自适应网关的制作方法
用于使用基于上下文的规则在不可靠网络上对交易和数据进行交换的自适应网关 相关申请的交叉引用
本申请涉及共同提交的题为"SCHEMA-BASED DYNAMIC PARSE/BUILD ENGINE FOR PARSING MULTI-FORMAT MESSAGES (用于解析多格式消息
的基于模式的动态解析/构建引擎)"的美国申请No._ (律师案号
16222U-020300US),并且出于通用目的通过引用结合于此。
背景技术
本发明一般涉及电信,尤其涉及用于基于交易内容、传送环境的动态上下文 信息和/或交换交易的动态规则在应用级上智能地对交易进行交换的技术。
当在客户端执行诸如信用卡授权、借记卡交易、电子支票交易等的交易时, 客户端向服务提供商发送交易。服务提供商向客户端提供诸如信用卡授权、交易的 清算等的服务。通常,客户端使交易路由到服务提供商的交易处理器以进行处理。 交易可通过各种网络来路由。各种网络可以是可能可靠或不可靠的不同网络。
通常,交易要求快速响应和高可靠性。例如,用户可使用客户端执行信用卡 交易。在此交易中,可能需要向交易处理器发送信用卡授权请求以进行处理,该交 易处理器可有助于该交易的授权。交易可能由于发送交易所使用的各种网络之一或 者用于为客户端处理交易的交易处理器发生故障而失败或被延迟。如果发生任何失 败,则客户端处于丢失交易以及从完成该交易而获得的任何利益的风险之中。
按照惯例,交易可被分解成一系列分组。本发明的实施例在应用级上对交易 进行操作,而大多数现有技术针对在网络级上路由、对分组进行操作。每个单独的 分组可在分组级上路由,或者基于该分组中诸如报头中信息之类的信息来路由。以 下专利描述了分组的网络级路由(与本发明的实施例的应用级交换相反)。IBM 专利5,974,460描述了通过首先在站点选择时确定哪个站点展现了最佳的传输 速率以在因特网上许多镜像站点中选择一个来下载数据。DEC专利5,341,477 是类似的。阿尔卡特(Alcatel)专利5,754,543描述了在网络上考虑发送传输成本的路由。其它考虑了传输成本的专利是专利6,535,488和北电网络(Nortel) 专利6,487,286。 DEC专利5,459,837示出了用于在网络上监视服务器的性能和 用于确定哪个服务器具有最多的用以处理请求的带宽的系统。Cabletron系统专 利5,521,910示出了规范帧格式的分组,并使用各种量度确定通过网络的最佳 路径。专利6,839,700描述了基于文档生成成本的内容请求的负载平衡。专利 6,754,188描述了基于分组内容(不管是语音、视频还是文本传递)对分组进行 路由。
IBM美国专利No. 6,460,120示出了具有OSI模型的前三层的网络处理器。 顶层网络(Top Layer Networks)美国专利No. 6,430,184描述了对层4及以上 层进行访问以进行流量控制的、基于服务质量作出路由判定的处理器。这允许 在基于优先级的电子邮件和基于带宽保证的多媒体之间进行区分。
英特尔(Intel)专利6,732,175示出了基于检查分组内容以确定业务交易的 类型(例如订购单)并将其转发到用以处理该类服务的适当服务器来在网络中 进行交换。在消息经由网络发送到网站目的地之后进行,而非在通过网络发送 之前。在目的地服务器存在基于内容路由消息的许多示例,诸如智能负载均衡 器。迪堡(Diebold)专利6,302,326示出了将金融消息转换成通用格式,然后 将它们路由到系统中的适当程序。EDS专利5,805,798描述了监视金融处理服 务器的状态并在不可用的情况下将消息路由到备用设备的网络节点。
上述专利不是关注在分组级路由单个分组就是基于静态规则路由数据。这 可分组提供有效的路由;然而,基于传送环境的动态上下文和动态规则在应用 级上对交易进行交换并未被解决。另外,在处理器之间进行的选择通常发生在 网络与目的地之间的节点处,诸如负载均衡器。因此,期望提供用以在应用级 智能地对交易进行交换的技术。
应用级的当前的技术要求客户端处理应用级交互。要求客户端响应于交易 处理器处的变化而改变其软件系统,并且还要求其支持不同的交易处理器所期 望的不同的消息格式。客户端还需要处理服务器系统和网络上的失败,并且故 障转移(failover)到替代服务器处理器,从而向客户端用户提供连续的操作。
发明的简要概述
本发明的实施例一般涉及基于交易的应用级内容、传送环境的动态上下文信 息和/或用于对交易进行交换的动态规则来在该应用级对交易进行交换。应用路由
8器可被设置在网络的客户端边缘以(1)基于应用级信息提供智能路由;(2)在 转发到服务器之前执行预处理服务;或(3)在没有路由到服务器并对客户端返回
回复的情况下执行已卸载服务。
在一个实施例中,提供了交易的一种智能交换。客户端向网关发送交易,该 网关随后被配置成智能地将该交易交换到交易处理器。该网关被配置成基于应用级 内容、传送环境的当前状态和/或用于对交易进行交换的动态规则来交换交易。例 如,可针对交易类型选择若干可能的服务提供商,并且网关不仅可监视通过网络到 不同的可能服务提供商的往返时间,还可监视服务提供商用以在应用级完成交易并 返回响应所需的时间。
根据本发明的实施例的交换在网络的发送侧而非接收侧进行。交易不仅被格 式化以在特定网络上进行路由,它们还被格式化以便由网络的目的地端处的特定处 理器进行处理,而非在接收节点进行这些格式化。因此,网络的发送侧上的节点包 括网络的接收侧上的处理器的工作流上的信息。在一个实施例中,通过与特定格式 中的仅为有限数目的字段一起工作是可能且实用的,诸如金融交易批准所需的有限 数目的字段。在一个实施例中,在因特网与专用商业网络之间选择路由以便路由金 融交易已待批准。然而,本发明的实施例还可应用于任何类型的交易和内容,诸如 订购和分发音乐、视频等。
在一个实施例中,应用级服务提供商可经由网络公布、广告或注册其服务。 根据本发明的实施例的网关可接收并存储这些所公布服务的全部或所选的若干。网 关可验证公布者为可信实体(诸如注册银行或零售商),并确定公布者的服务是否 与网关的客户端的交易相关。这些服务可被动态地注册和更新,而无需等到日期结 束或人类操作员介入。
在一个实施例中,使用所存储的、由服务提供商所提供的服务的细节,网关 不仅可选择要发送交易到哪个服务,还可在应用级格式化适用于服务提供商的交 易。另外,在经由网络向服务提供商发送交易之前,可在网关处执行特定的预处理 或调节步骤。或者,在某些或全部情况中,所有交易处理可根据从服务提供商接收 到的规则来在网关处进行。例如,可批准低于阈值量的信用卡交易而即无需去银行 获得批准也无需经由网络访问信用卡公司。
在一个实施例中,客户端可指定用于确定要选择哪个服务提供商的规则或标 准。这些规则和标准可被存储在网关中。这些客户端标准可在交易之前被加载,或 者在交易消息被发送之前或之后被立即加载。在一个实施例中,根据本发明的网关的能力可分布在大量网关中。每个网关
被物理地定位在网络的边缘、客户端接入点处,并且甚至可处于客户端的场所上。
网关存储与连接到其的客户端相关的信息,并且依赖于其它网关来提供关于其它网
关所连接的服务的信息。除本发明的实施例处理应用级服务之外,这多少类似于路
由器从其连接的其它路由器获得用于网络分组传输的表信息。每个网关仅需要存储 其或其客户端感兴趣的广播服务提供商信息,并且仅需要存储其建立连接所通过的
其它网关的地址,尽管可能需要除这些之外的其它连接。
在此公开的本发明的特性和优点的进一步的理解可通过参考说明书的剩余部 分及附图来认知。
附图的简要描述


图1示出了根据本发明的一个实施例的用于处理交易的系统。 图2示出了根据本发明的一个实施例的网关的更详细实施例。 图3示出了根据本发明的一个实施例的用于处理交易的方法的简化流程图。 图4示出了根据本发明的一个实施例的用于对由交易处理器所提供的服务生 成配置信息的简化流程图。
图5示出了根据本发明的一个实施例的用于预订一服务的方法的简化流程图。 图6示出了根据本发明的一个实施例的多个网关的分散型系统。 图7示出了根据本发明的一个实施例的一种系统,该系统示出了作为前端网 关的网关。
图8示出了根据本发明的一个实施例的其中网关是因特网网关的系统。
图9示出了根据本发明的一个实施例的其中网关被用作无线网关的系统。
图IO示出了根据本发明的一个实施例的用于处理ISO 8583交易的系统。
图11示出了根据本发明的一个实施例的用于解析消息的系统。
图12公开了根据本发明的一个实施例的网关的实施例。
图13A示出了根据本发明的一个实施例的IMF对象的结构。
图13B示出了根据本发明的一个实施例的消息定义的属性。
图14A、 14B和14C示出了根据本发明的一个实施例的可能的消息、具有对
象ID码的分层格式、以及该消息的IMF对象。
图15示出了根据本发明的一个实施例的用于初始化解析/构建引擎以处理消
息流的方法的简化流程图。图16示出了根据本发明的一个实施例的用于动态添加或更新解析/构建引擎 中的模式的方法的简化流程图。
图17示出了根据本发明的一个实施例的用于解析输入消息的方法的简化流程图。
图18示出了根据本发明的一个实施例的用于从IMF对象构建输出消息的方法 的简化流程图。
发明的详细描述 处理概述
在一个实施例中,提供对交易的智能交换。交易可以是信用卡授权、借记卡 交易或电子支票交易。交易的其它示例包括奖励程序中的积分或其它奖品的授予、 核对Visa认证所验证的口令、进行货币转账、从诸如Visa Buxx卡或工资卡的预 付卡扣除支付、从蜂窝电话、寻呼机、PDA等处理邻近支付(proximity payment)、 确定健康、汽车保险、或其它保险业务等的覆盖范围。客户端向网关发送交易, 该网关随后被配置成向服务提供商的交易处理器智能地交换该交易。客户端可 以是POS、联网至POS设备或ECR (电子收银机)的商业计算机、kiosk (诸 如赠券或货币转账)、因特网web站点服务器等。
网关被配置成基于交易的应用级内容、传送环境的当前状态和/或动态规则 在应用级作出交换决定。应用级内容可以是由交易处理器在处理交易时处理或 使用的信息。在一个实施例中,该信息可以是OSI层7的信息。该层直接向交 易处理器和终端用户提供服务。它包括诸如交易卡授权、借记卡交易应用等。 示例应用层协议是FTP (文件传输协议)、NFS (网络文件系统)、CIFS (通 用因特网文件系统)、HTTP (超文本传输协议)、数据库査询、SQL (标准査 询语言)、和XML (可扩展标记语言)。例如,在信用卡授权中,应用级内容 可包括信用卡号、个人账号(PAN)、客户账号、交易总量等。交易处理器可 使用这些信息以便处理交易。
传送环境的当前状态包括与可传送交易的网络以及可处理交易的交易处 理器相关联的实时信息。该实时信息可包括网络或交易处理器的健康状态、网 络或交易处理器的可用性、交易处理器的应用处理速度等。
动态规则可以是用于决定如何智能地交换交易的信息。这些规则用于根据 应用级内容和传送环境的当前状态来交换交易。例如,取决于应用级内容和传
11送环境的当前状态,规则可指定由服务提供商所提供的特定服务应当被选择。 此外,这些规则可用于选择服务提供商的交易处理器以处理交易。例如,某些 国家可能要求对本国交易进行本地处理,从而需要路由到区域性处理中心。这 些规则还可包括诸如网络成本、服务成本等的静态信息以作出选择。这些规则 可以动态改变而无需拆卸网关。
网关还可根据这些规则对交易执行服务。这些服务可包括处理应用级内 容。例如,交易处理器可被配置成处理不同格式的交易。所选择的交易处理器 可被配置成将交易中的当前应用级内容处理成不同格式的应用级内容。因而, 网关可将应用级内容变成新的格式,使得所选择的交易处理器可对其进行处 理。因此,网关可在应用级改变交易中的信息。这不同于在分组级检查信息。 按照惯例,交易可分解成分组。路由器可检査分组中的信息并相应地路由分组。 然而,在分组级检查信息不允许路由器使用交易的应用级内容来执行服务。例 如,通过检査整个交易的应用级内容,可使用应用到该交易的适当服务来智能 地路由该交易。如果承载交易信息的各个分组被单独处理,则交易的应用级内 容将不作为整体来处理。
因此,提供了一种基于应用级内容、传送环境的当前状态和/或动态规则来 智能地交换交易的网关。该网关还可提供基于交换决定来使用的服务。
系统概述
图1示出了根据本发明一实施例的用于处理交易的系统100。如所示,系
统100包括一个或多个客户端102、 一个或多个网关104、 一个或多个网络106 以及一个或多个交易处理器108。以下描述将参照单个网关104来进行,但应 当理解,可提供多个网关来执行以下所述的任何功能。而且,尽管这些网关被 示为邻近客户端,但是这些网关还可被部署成邻近交易处理器,在交易处理器 与网络106之间。
客户端102包括配置成发送交易的任何系统。例如,客户端102可包括与 用户执行交易的计算设备的系统。在一个示例中,客户端102可包括接收信用 卡授权、支票卡交易等的诸如信用卡信息、pin码、姓名等的用户信息的销售 点(POS)设备。客户端还可以是商店中用于核对点或赠券信息的kiosk、或用 于货币转账的kiosk、或用于从蜂窝电话或其它设备接收无线用户输入的节点、 或web站点服务器等。客户端还可以是商业服务器,POS设备可通过其联网。客户端(例如POS设备)可随后发送要求从交易处理器108请求交易服务 的交易。交易服务可以是可由交易处理器108执行的任何动作。在一个实施例 中,这些交易服务对正由客户端102执行的交易添加值。交易服务的示例包括 方便信用卡授权、借记卡交易、电子支票交易等。交易服务还可包括处理交易 或交换数据。
网关104包括配置成从客户端102接收交易并通过网络106将该交易路由 到交易处理器108的系统。在一个实施例中,网关104位于网络106的边缘。 例如,网关104可处于客户端102的接入点处,或处于客户端102的场所上。 网络106的边缘可以是其中交易可被配置成通过该网络106进行路由的点。例 如,网关104可选择交易处理器108并将请求发送到网络106的路由器。交易 可分解成许多分组。路由器可随后通过网络106将交易的分组路由到交易处理 器106。
网络106可以是配置成传输数据的任何网络。例如,网络106可包括任何 基于分组的网络、公共交换电话网(PSTN)、无线网络、因特网、专用金融网 络等。
在一个实施例中,网络106可以是不同和/或不可靠的网络。网络的不同之 处在于它们可由不同的实体来控制、可使用不同的协议和格式来路由数据、可 使用不同的传送方法来路由数据等。例如,网络106可有不同的实体来控制。 在一个示例中,第一因特网服务提供商(ISP)可维护网络106-1,而第二因特 网服务提供商可维护网络106-2。在一个实施例中,交易可通过网络106-1或网 络106-2来路由。
而且,网络106可以具有不同类型。例如,网络106-1可以是路由数据分 组的异步传输模式(ATM)。另一网络106-2可以是无线地发送数据的无线网 络。此外,另一网络106可以针对一实体的专用网络,诸如VisaNet网络。尽 管仅示出两个网络106,但是应当理解,可提供大量网络106。而且,应当理 解,交易可通过多个网络106来路由。例如,交易可通过网络106-1、接着网 络106-2路由到交易处理器108。
网络106还可以是不可靠的。由于网络的特性,它们可能随时故障。因而, 需要故障转移处理来避免交易处理的中断。
服务提供商还可注册和公布可提供给客户端102的服务。客户端102可注 册服务并且可将交易交换给服务提供商。服务提供商可具有任何数量的交易处
13理器108,这些处理器可被设置成向客户端102提供服务。在一个实施例中,
交易处理器108处理金融交易。例如,交易处理器108可与发行方、受让方、 贸易商或任何其它服务提供商相关联。在一个示例中,交易处理器108方便信 用卡交易的授权。
服务可以是通过多于一个的交易处理器108来提供的。例如,服务提供商 可具有可向客户端102提供服务的许多数据中心。因而,针对服务的交易可被 交换到可提供该服务的交易处理器108中的任一个。交易处理器108可由网关 104基于都可动态变化的应用级内容、传送环境的上下文信息和/或动态规则来 选择。
应用级服务可被动态地改变。可用服务可被更改、移动至另一处理器、或 者由于维护或故障而不可用等等。
交易环境的上下文信息也可被动态地改变。网关104由此在确定如何交换 交易时确定传送环境的上下文信息。例如,可确定网络106的当前健康状态、 网络106的可用性、交易处理器108的可用性、数据经由网络106传输的速度、 通过网络106传输交易的成本、处理交易的成本、应用需要多久来在应用级处 理交易等。
除传送环境的上下文信息的动态信息之外,可确定某些相对静态的信息。 例如,静态信息可以是交易的成本、交易处理器108处理交易所需的格式等。 网关106在确定如何路由交易时可使用动态和静态信息。
动态规则可以是用于确定如何智能地交换交易的信息。这些规则可被动态 地加载。例如,服务提供商可注册服务的规则,这些规则可被动态地加载到网 关104上。而且,客户端可预订用于将其交易交换到服务提供商的服务和提供 商规则。这些规则也可被动态地加载到网关104上。
因此,网关104可针对服务动态地选择可处理交易的交易处理器108。还 可对交易执行所选交易处理器所特有的商业服务,诸如该交易被格式化成所选 交易处理器108可对其进行处理。该交易随后可通过所选网络106发送到所选 交易处理器108。通过动态地选择交易处理器108和/或网络106,网关104使 客户端102与交易处理器108和/或网络106的任何故障相隔离。因此,这提供 了极高的服务可用性。网关104使客户端102与需要进行的、可能导致交易处 理器108的停工的任何变化相隔离。网关104的概述
图2示出了根据本发明一实施例的网关104的更详细描述。如图所示,网 关104包括一个或多个请求处理机202、入站消息流解析器204、安全管理器 206、自适应路由选择器208、流程处理机210、出站消息流构建器212、消息 分配器214、协调器216、管理模块218、配置加载器220、规则数据库222、 上下文信息数据库224和动态信息监视器226。
请求处理机202被配置成从客户端102接收交易。客户端102可以用诸如 超文本传输协议(HTTP)、文件传输协议(FTP)、可扩展标记语言(XML)、 ISO 8583标准等的不同协议和格式发送交易。请求处理机202为以各种协议和 格式发送的交易提供接口,并向入站消息流解析器204提供这些交易。例如, ISO消息处理机被配置成从客户端102接收ISO 8583请求,并将它们传递给入 站消息流解析器204。而且,XML消息处理机、HTTP请求处理机、FTP请求 处理机可处理XML、 HTTP和FTP消息和/或请求。因此,请求处理机202允 许网关104接收不同协议和格式的消息。尽管描述了以上格式和协议,但是应 当理解,本领域技术人员将认识到请求处理机202可处理的其它格式和协议。
入站消息流解析器204被配置成从请求处理机202接收交易,并将该请求 转换成规范形式。入站消息流解析器204可接收不同格式的消息并将这些请求 处理成可随后由网关104的其它组件处理的规范格式。因此,许多不同格式的 交易请求可由网关104来处理。入站消息流解析器204由于可启用可由网关104 处理的新的格式而提供可扩展的体系结构。如果添加了新的格式,则将从新的 格式到规范格式的变换添加到入站消息流处理器104。因而,由于使用规范格 式,在添加新的格式时,无需对网关104中的所有组件进行改变。相反,入站 消息流解析器204被配置成将请求解析成可由网关104的其它组件处理的规范 格式。可在下文中找到入站消息流处理器204的其它细节。
安全管理器206被配置成为交易提供安全特征。例如,可提供诸如可插入 认证和授权、基于角色的访问控制(RBAC)、加密、文件完整性等的安全特 征。可插入认证和授权特征为认证和授权提供了标准接口,由此在不对现有方 法产生影响的情况下允许添加更新的认证和访问控制方法。本领域技术人员将 会认识到可被添加到交易的其它安全特征。
自适应路由选择器208被配置成通过网络106将交易交换至交易处理器 108。自适应路由选择器208基于应用级内容、传送环境的当前状态和/或动态规则来交换交易。
自适应路由选择器208使用在规则数据库222中找到的规则和在上下文信 息数据库224中找到的动态上下文信息来路由交易。如上所述,上下文信息可 被存储在上下文信息数据库224中。在一个实施例中,上下文信息可以是动态 的。动态信息监视器226可监视和确定上下文信息。该动态信息随后被存储在 上下文数据库224中。上下文信息的示例可包括网络106的可用性、交易处理 器108的健康、单次交易的成本、应用在应用级处理先前交易所用的时间等。 在一个实施例中,当接收到交易时,动态信息监视器226可在运行时确定动态 上下文信息。在另一实施例中,动态信息监视器226可按特定时间间隔确定动 态上下文信息。
由交易处理器108执行的每个不同服务可指定可由动态信息监视器226执 行的探査(probe)。这些探查可被发送,并且允许基于交易处理器108和/或 网络106的状态来收集信息。例如,动态信息监视器226可査验(ping)网络 以便确定该网络是否可用。如果无法到达交易处理器108或网络106,则将其 视为不可用,并且将状态信息反映在上下文信息数据库224中。如果服务的所 有交易处理器都无法到达,则可将该服务视为不可用。在这种情况中,网关104 可确定提供该服务的另一服务提供商。而且,可以测量一应用在交易处理器108 上处理交易所用的时间。例如,测量该应用授权信用卡授权所用的时间。这种 测量提供了可用于交换交易的应用级上下文。
除了用以处理交易的网络106和处理器108之外,规则数据库222包括用 于确定针对该交易的服务的规则。这些规则还可表示客户端的标准。例如,为 了使一服务被选择,特定上下文信息和应用级内容应当满足这些规则。客户端 可提供可用于选择该交易的服务的客户端专用规则。在一个示例中,当接收到 客户端102的交易时,自适应路由选择器208可确定客户端的指定规则并确定 可处理该交易的服务。为了将交易交换到提供该服务的服务提供商,从交易确 定应用级内容和/或从上下文信息数据库224确定动态上下文信息。应用级内容 和/或上下文信息被应用于规则,以确定可根据这些规则处理交易的服务提供 商。例如,基于诸如成本的某些因素,客户端102可指定首先应当选择最廉价 的服务,但是如果其不可用,则应当选择更昂贵的第二服务。而且,基于诸如 账号的应用级内容,交易可被交换至特定信用卡服务。例如,特定账号可指示 对应于借记卡的信用,或者指示特定积分或奖励系统的应用。其它账号或字段
16可指示需要诸如货币转账或口令验证(例如Visa验证)的其它服务。而且,应
用级内容可包括客户端的位置和任何地区或国家专用规定,这些规定指示交易
是需要本地处理还是发送到位于不同国家的处理器108。
服务还可包括说明这些服务的规则的服务规范。例如,规则可指定交易所
要求的消息格式、提供服务的交易处理器108的网络地址、用于将交易交换到 交易处理器108的优先级、有资格获得服务的账号的范围等。这些规则由服务 提供商在注册时提供,如以下更详细讨论的。这些服务提供商可直接将规则加 载到网关104上,该网关随后将向其它感兴趣的网关公布这些规则。
这些规则可指定可处理交易的流程。这些流程管理对交易的处理以发送到 交易处理器108。然后,消息被发送到所选流程处理机210。在交易处理机和 网络106被选择之后,流程处理机210可对交易执行商业服务。例如,不同的 交易处理器108可处理不同格式的交易。流程处理机210可对所选交易处理器 108确定适当的格式,并按这种格式对交易进行格式化。其它商业服务可包括 通货兑换、对敏感字段加密、针对低于特定阈值的交易值进行的客户端代替处 理(stand-inprocessing)等。
流程处理机210可包括多个流程。每个流程可处理一组商业服务,该组商 业服务处理一类消息。每个流程包括在流程中协调所有商业服务的流程处理 机。流程内的服务序列由流程规范来指定,这些服务可在运行时使用配置加载 器220加载。流程规范是确定如何处理传入消息的服务序列。每个服务是执行 特定功能的软件应用程序代码。新的服务和流程规范可被动态地加载到网关 104。
在流程处理机210处理了流程中的交易之后,消息被发送到出站消息流构 建器212。构建器212被配置成基于确定的交易处理器108所期望的消息形式 从规范格式构建出站消息。构建器212由此被配置成基于规范消息格式生成任 何消息格式的消息。在以下更详细地描述出站消息流构建器212。
消息分配器212被配置成向交易处理器108发送交易。分配器214可确保 交易到达所选择的交易处理器108。它可以管理到各个交易处理器108的连接、 尝试重新连接到故障的交易处理器108、并还向动态信息监视器226提供交易 处理器108和网络106的状态。在一个实施例中,交易可分包,即分解成一系 列分组,并发送到路由器。路由器可通过网络106将这些分组路由到交易处理 器108。提供协调器216来协调网关104的处理和确保交易被适当地处理。而且,
协调器216向网关104提供应用管理、软件分发、系统监视和故障转移能力的 服务。应用管理支持本地或远程地启动或停止应用和服务。它还允许新的应用 和服务被添加到网关104。软件分发使得软件更新被安装到网关104上,并包 括支持退回更新(如果需要)。系统监视服务监视诸如存储器、CPU、网络接 口和进程之类系统组件的关键参数,并在所配置参数偏离阈值时生成警报。如 果检测到进程失败,则还可重新启动该进程。协调器216还使用心搏机制监视 对等网关104的健康(在多个网关群集部署的情形中),并且在对等网关104 故障的情况下接管该对等网关104的处理负担。
规则的动态加载
在服务的最初注册之后(在以下描述),由网关104执行的规则和商业服 务可被动态地改变。管理模块218和配置加载器220可被配置成将变化动态地 加载到规则数据库222和流程处理机210。
配置加载器220被配置成在运行时将配置变化、路由规则、新的流程规范 等加载到规则数据库222。因此,配置加载器220允许动态地配置规则数据库 222中的路由规则。规则库维护多个版本的规则对象并具有针对规则库中的当 前版本的同步引用。在配置加载器220将更新加载到规则库之前,创建有效规 则库的巻影副本(shadow copy)并对其进行版本控制。然后,对于被更新的每 个对象,它创建该对象的新实例并更新新版规则库中的引用。当所有更新都完 成时,它将引用变成指向新版规则库。
管理模块218被配置成允许执行管理动作。管理模块218可被用户代理用 于管理一个或多个网关104。例如,管理模块218可用于将新的规则定义到规 则数据库222中或动态地改变路由规则。而且,管理模块218还可用于加载和 卸载流程处理机210的新流程规范、启动和停止商业服务、以及加载和卸载配 置。配置加载器220随后被配置成执行这些改变。
本发明的实施例的动态改变可通过将服务的模块化以及用于通过流程(例 如参见以上的流程描述)处理消息的服务的运行时调用相组合来实现。当自适 应路由选择器208接收到新的交易时,它读取当前版本的规则库并应用这些规 则以选择适当的流程。因为流程处理机210在整个交易期间使用特定版本的流 程,并且每个流程规范涉及特定版本的服务、流程和规则。因此,这时它们可在不妨碍现有交易的情况下进行更新,因为这些更新在与当前由现有交易当前 使用的版本不同的版本中才起作用。
交易的处理
图3示出了根据本发明的一个实施例的用于处理交易的方法的简化流程图
300。在步骤302,从客户端102接收到交易。该交易可以是诸如信用卡授权、 支票卡交易等的任何类型交易。
在步骤304中,为交易确定应用级内容。如上所述,应用级内容用于处理 交易。例如,应用级内容可以是信用卡号、PIN、会员银行的名字(收单方或 发行方)等。应用级内容可被视为整体。例如,如果交易被分包成多个分组, 则该应用级内容可在多个分组的有效载荷中找到。这些信息可被重编成交易的 应用级内容。
在步骤306中,确定传送环境的当前状态。例如,确定可提供服务的交易 处理器的健康。此外,还可确定可路由交易的网络106的网络健康。这些信息 可实时地进行确定以提供传送环境的当前状态。
在步骤308中,规则被应用到应用级信息和/或传送环境的当前状态以确定 服务。例如,特定客户端102可与特定服务相关联。诸如Visa的处理器主机可 能期望其交易被交换至Visa所拥有的交易处理机108。此外,其它处理器主机 可能期望它们的交易被交换至诸如Vital的二级交易处理器。
在步骤310中,应用规则来确定交易处理器和/或网络106用以为交换交易 的网络106。此确定可基于应用于规则的应用级内容和/或传送环境的当前状态 来确定。例如,确定用以处理交易的服务。然后,基于网络可用性去确定可应 用的交易处理器108。
而且,服务还可与各个交易处理器108和网络106相关联。例如,信用卡 授权可被配置成被发送到特定交易处理器108。此外,支票卡交易可被配置成 被发送到第二组交易处理器108。为客户端和/或交易服务确定这些规则。
在步骤312中,可在应用级上按需对交易执行商业服务。例如,交易可被 格式化成所选交易处理器108所期望的格式、应用级上的任何信息可被添加到 该交易、或任何其它商业服务可被执行。
在步骤314中,交易可通过网络106交换到所选交易处理器108。
或者,在另一实施例中,网关104被配置成在无需将交易交换至服务提供
19商的情况下处理该交易。服务提供商可指定这样的规则如果特定标准得到满 足,则指定网关可处理交易。例如,如果交易低于特定量。在一个示例中,少 于阈值量的信用卡交易被批准,不仅无需去银行获得批准,也无需经由网络106 访问信用卡公司。这提供了许多优点,因为交易可在网络的边缘得到处理。这消除 了网络瓶颈并提供了分散型处理系统。
服务创建和预订
如上所述,规则可被动态地加载到规则数据库222。图4示出了根据本发明的 一个实施例的用于为由交易处理器108提供的服务在网关104中加载的简化流程图 400。在步骤402中,接收服务创建请求。例如,服务提供商可尝试通过发送服务 创建请求来注册服务,该请求指定正由该服务提供商所提供的服务。或者,与交易 处理器或其它服务供应商相关联的网关104可动态地告知新的服务,而与客户端相 关联的网关可确定是否启动对这些新服务的注册。新服务可以是货币转账服务、新 的积分程序等。
在步骤404中,接收服务的规则。例如,规则可指定可处理服务的交易处理 器108的地址。网络地址可以是IP地址或可用于将交易路由至交易处理器108的 任何其它标识符。另外,可以接收可用于将请求路由到交易处理器108的网络106 的信息。这些规则还可指定使用服务的标准。例如,期望接收到指定格式消息的标 准,可接收使用服务的成本(固定和每次交易的成本)和使用服务的任何其它标准。 这些规则可指定,对于该服务,哪种类型的卡或哪种类型的账户或账号范围有资格 或者被注册。
在步骤406中,服务的规则可通过管理模块218使用配置加载器220动态地 加载到规则数据库222。此外,处理该服务的交易所需的任何流程规范可被加载到 流程处理机202。
因此,当服务已被创建和公布时,客户端108可预订服务。图5示出了根据 本发明的一个实施例的用于预订服务的方法的简化流程图500。在步骤502中,从 客户端108接收预订所创建的服务的请求。该请求可通过网络入口或通过任何其它 方法接收。客户端102可直接联系和访问网关104。
在步骤504中,从客户端108接收关于使用服务的规则和标准的规范。此规 范可指示为从客户端108收到的交易选择服务所需的标准。该标准可以是客户端专 用或许多客户端108统一的(例如,对于针对一实体的所有POS设备)。而且,
20规范可以采用客户端108所预订的每个服务的优先权的形式。例如,客户端可指定, 对于一交易选择第一服务,但是如果该服务不工作,则应当选择第二服务等。标准 还可以更加复杂,并且包括网络成本、服务成本之类更复杂的规则。在步骤506中,生成对该服务的请求的路由规则。这些规则可基于应用级内容和/或网络传送环境的当前状态来指定需要满足的标准,以便选择该服务。在步骤508中,这些规则被动态地加载到规则数据库222中。因此,对于预 订服务的客户端108,该服务可立即可用。在步骤510中,生成服务的流程定义。流程定义可被配置成支持该服务。在 一个实施例中,服务的流程定义可能已存在,并且可能无需生成。然而,如果需要 对客户端108执行专用的商业服务,则可生成新的流程定义。在步骤512中,步骤510中生成的流程定义可通过配置加载器220动态地加载。在一个实施例中,在交易被发送之前,可从客户端102接收规则。例如,客 户端102可预订服务并提供使用该服务的规则。在另一实施例中,这些规则可在交 易被发送之前或之后被立即发送。例如,客户端102可指定在交易之前或之后发送 的消息中使用的规则。这些规则随后被动态地加载到网关104上。这允许客户端 102在运行时动态地配置网关104。服务规则的分散化多个网关104可被部署在系统中。每个网关104可向其所耦合的客户端102 提供其自身的服务。网关104可被定位在网络106的边缘、在客户端的接入点处、 以及可能在客户端102的场所上。在一个实施例中,网关104仅存储由网关104 提供的服务的信息。不同的网关104可具有不同服务组的信息。因此,用于提供由 服务提供商注册或者由客户端102预订的各种服务的信息可被分布在网关104上或 被分散化。由于信息的分散化,网关104被配置成联系其它网关104以査询服务的 信息或提供服务的信息。图6示出了根据本发明的一个实施例的一种系统550,该系统示出了网关104 的分散化系统。如图所示,示出了多个客户端102和网关104。网关104位于一个 或多个网络106的边缘。每个网关104可耦合到一个或多个客户端102。出于讨论的目的,示出了耦合 到网关104的单个客户端102,但是应当理解,许多客户端102可被耦合到网关104。而且,应当理解,网关104可被耦合到交易处理器108而非客户端102。网关104被配置成为在网络106的边缘与之耦合的客户端102处理交易。例 如,网关104-1被配置成处理客户端102-1的交易,而网关104-2被配置成处理客 户端102-2的交易。网关104-1存储被提供到客户端102-1的服务的信息,以及关 于客户端102-1的优先级的信息。对其它网关104和客户端102同样如此。网关104维护其它网关104的联系信息以便于分发服务的信息。例如,当第 一网关104需要当前第一网关104并不提供的服务的信息时,其可联系提供该服务 的第二网关104来将诸如该服务的规则的信息发送给它。在另一实施例中,第一网 关104可将服务的交易发送到第二网关104,其中第二网关104可处理该交易。在 此情形中,第二网关104可将该交易交换至交易处理器108、接收响应、并且随后 将该响应发送回第一网关104。联系信息也可用于将服务的信息分发到其它网关104。例如,服务提供商可在 第一网关104上传新的服务。服务的规则可随后被分发到其它网关104。例如,如 果客户端102对一服务感兴趣,则向在边缘耦合到客户端102的网关发送规则。客 户端102还可上传其自身的规则。每个客户端可仅加载其所期望的服务的规则,从而减少所需的存储和更新, 进而改进网关的处理速度。例如,旅馆客户端可能希望积分或奖励服务,而非货币 转账服务。通过只下载所需服务,旅馆可在其网关上获得更多信息而不影响性能。 例如,积分程序中的账号或账号范围可被存储在网关上,从而可在本地进行确定用 户是否有资格取得积分的处理。另一方面,网站客户端可能更关心Visa验证服务。 类似地,可在本地存储专属于Visa验证的信息和规则,诸如卡号是否被预订以及 是否具有口令,从而允许提示口令而无需经网络联出以确定用户是否是订户。与特 定公司进行大量贸易的特定贸易商可能更关心Visa名片,并且希望对在该特定贸 易商处购买获批的采购卡账号的本地列表。这样,客户端102和服务提供商可直接与网关104交互以加载或请求服务。 对于客户端102而言,这可能是有益的,因为网关可按客户端的需要来定制。此外, 由于可在客户端的站点维护网关104,所以网关104易于访问且无延迟。因此,系统500提供了分散型服务集。与具有中央处理器不同,处理被分布 到网络的边缘。这消除了瓶颈并提供了故障转移保护。例如,按照贯例,如果中央 处理器被使用并且当机,则整个系统的交易处理会受到影响。然而,如果网关104 当机,则整个系统550的处理不会受到影响,并且交易可被重新路由至其它网关104。部署环境网关104可被部署在许多不同的环境中。例如,网关104可作为前端网关被 部署在专用网络上,如同因特网网关和/或无线网关一样。图7示出了根据本发明 的实施例的一种系统600,该系统示出了作为前端网关的网关104。系统600将一 个或多个客户端102连接到不同网络106上的一个或多个交易处理器108。交易处 理器108可以是可处理来自客户端102的交易的任何系统。例如,Visa、 MasterCard 等可拥有针对信用卡和借记卡交易的交易处理器,而会员银行(收单方或发行方) 可以是客户端102。客户端数据中心602可从客户端102接收交易。交易可以是信用卡授权或 借记卡交易。该数据中心可以是例如经由客户端的专用网络连接到多个POS设 备的中央计算机。网关104处理交易并智能地将交易交换至交易处理器数据中 心108。例如,如果交易是Visa交易,则交易处理器数据中心A和B可与Visa 相关联。如果交易是MasterCard交易,则处理器数据中心C可被选择,因为它 们与MasterCard相关联。网关104确定适当的交易处理器108和在其中路由交易的网络106。交易 随后被发送到路由器604,该路由器可在随后路由该交易。在一个实施例中, 路由器604可经由网络106将分组路由到所选交易处理器108。图8示出了根据本发明的一个实施例的一种系统700,其中网关104是因 特网。因特网客户端702包括客户端102。客户端102可通过因特网704向网 关104发送交易。可针对在线购物所需的特定服务来配置网关104,这些服务 诸如常规信用卡授权、口令认证(Visa验证)、奖励或积分处理等。网关104为客户端102提供了到不同的交易处理器108的连通性。网关104 可接受HTTP和其它基于XML的请求。基于应用级内容和传送环境的当前状 态,可选择服务和交易处理器108。因为交易可能在HTTP或任何其它基于XML 的请求中发送,所以网关104可在对交易进行交换之前将消息转换成交易处理 器108所期望的格式。例如,交易处理器108可能要求将消息处理成ISO 8583 格式。通常,当POS设备处理交易时,交易可以ISO 8583格式发送。然而, 当交易通过因特网网关处理时,因特网客户端702可能未被配置成发送ISO 8583消息。因而,网关104被配置成将消息格式化成交易处理器所需的ISO 8583格式。在一个示例中,网关104可处理来自因特网客户端702的因特网交易。因 特网客户端702将HTTP请求发送到网关104。网关104将HTTP请求翻译成 规范的内部消息格式。可在随后对交易执行任何商业服务。在一个示例中,可 以改变应用级数据,以符合交易处理器108所需的格式。例如,XML交易可被 转换成ISO 8583格式。网关104随后智能地将交易交换至交易处理器108。交易处理器108处理该交易并将响应发送回网关104。此响应可以采用交 易处理器专用格式。网关104随后可构建HTTP响应并将其发送到因特网客户 端702。因此,可用网关104来处理通过因特网的交易。图9示出了根据本发明的一个实施例的其中网关104用作无线网关的系统 800。网关可从用户的移动电话、PDA、寻呼机等接收无线消息。网关104可 被配置成支持不同的无线格式,诸如无线应用协议(WAP)、移动信息设备协 议(MIDP) 、 JQME等。MIDlet在诸如全球移动通信系统(GSM)或通用分 组无线业务(GPRS)的网络上发送XML格式请求。网关104可将入站请求有 效载荷转换成规范的内部消息格式。该内部消息格式(IMF)可在随后由商业 服务来处理。入站消息流构建器212将IMF转换成响应有效载荷以发送到交易 处理器108。因此,无线交易可由网关104来处理。现在将描述无线交易。在一个实施例中,无线客户端808通过经由 HTTP/GSM/GPRS发送XML请求来初始化无线支付交易。网关104接收该XML 请求并在处理该请求之前将其转换成规范的内部消息格式。除传送环境的当前 状态之外,还使用交易中的应用级内容来将交易交换至交易处理器108。取决 于所选择的交易处理器108,流程处理机210可对交易执行商业服务。然后, 交易被发送到交易处理器108。交易处理器108确定客户端银行(或发行方)802并将消息路由至发行方 802。发行方802处理该请求并将响应发送回交易处理器108。交易处理器108 随后将响应(以交易处理器专用格式)发送回收单方804。网关104接收该响 应、将其翻译成XML格式并将其发送到无线客户端808。因此,网关104被配 置成路由无线交易支付。图10示出了根据本发明的一个实施例的用于处理ISO 8583交易的系统 900。如图所示,发行银行902和收单银行卯4参与交易。收单银行904处的 客户端计算机102向网关104发送ISO 8583请求。网关104使用应用级内容和传送环境的当前状态以便选择用以处理该请求的交易处理器108。在对该请求 执行了任何商业服务之后,消息随后被发送到所选交易处理器108。交易处理器108处理交易并将其交换至适当的发行方902以便授权。发行 方将ISO 8583发送回交易处理器108。交易处理器108随后将响应发送回网关 104,该响应随后被发送到收单银行102的客户端102。在一个示例中,交易处理器108可能是不可用的。在此情况中,例如,处 理器A、数据中心01可能是不可用的。对于客户端102而言,它可能是针对服 务的优选处理器。网关104随后将交易发送到第二处理器,处理器A、数据中 心02。网关104可保持核对初级数据中心的可用性,并且一旦其变为可用,则 可开始将消息路由至该初级数据中心。交易的重新路由可以通过对客户端102 透明的方式进行。因此,使用网关104的智能交换避免了任何交易处理器108 的停工时间。在另一实施例中,处理器A的数据中心可能当机,则可能需要使用诸如处 理器B和C的其它处理器的其它数据中心。处理器B和C可处理与处理器A 的格式不同的格式的交易。在此情况中,网关104可将交易的格式转换成与处 理器B或处理器C的格式相对应的格式。经格式化的交易随后被发送到处理器 B和处理器C。因此,不同的处理器可通过对客户端102透明的方式来使用。 即使处理器使用不同的格式,网关104仍被配置成以该格式路由交易。消息的解析/构建 解释构建引擎的概述图11示出了根据本发明的一个实施例的用于解析消息的系统1000。系统 1000被配置将诸如ISO 8583消息的多格式消息流解析成称为内部消息格式 (IMF)的规范消息格式,以及从该IMF构建诸如ISO 8583消息流的多格式消 息流。尽管描述了金融消息流,但是应当理解,可使用系统1000来解析和构 建任何多格式消息流。解析/构建引擎1004对应于图2的入站消息流解析器204和出站消息流构 建器212。尽管并未在图11中示出如图2中所示的所有组件,但是应当理解, 这些组件也可包含在系统1000中。另外,解析/构建引擎1004可包括在网关 104中,但是还可包括在其它组件中。例如,解析/构建引擎1004可与任何软 件应用程序相兼容,该软件应用程序处理与其它异类系统不同的数据格式的数据。解析/构建引擎1004被配置成从系统1006接收输入消息流1010,并将该 消息解析成内部消息格式。内部消息格式(IMF)可随便由诸如网关104中所 示的商业服务应用的其它组件来处理。在网关104中的组件处理了 IMF的消息 之后,解析/构建引擎1004从经处理的IMF构建输出消息流1012。输出消息流 1012随后被发送到系统1008或返回到始发系统1006。系统1006和1008可以是可被配置成向解析/构建引擎1004 (或网关104) 发送消息1010和/或从其接收消息1012的任何系统。在一个实施例中,系统 1006和1008可以是销售点设备、智能卡设备、交易处理器108、配置成处理 交易的任何系统,诸如收单方、发行方、服务提供商、交易认证方等。系统1006 和1008可发送许多不同格式的消息,诸如ISO 8583消息、可扩展标记语言 (XML) 、 HTML等。输入消息流还可以采用诸如ASCII、 EBCDIC、 BCD等 的多种编码方案的任一种,并具有诸如数字、串、字节数组等的不同数据类型。图11的解析/构建引擎使用模式表1028。每个模式是提供元数据的数据结 构,包括所收到格式的语法结构以及指向处理机表1030中处理机的指针。处 理机对应于消息中的特定字段并使用语法结构将该消息的不同字段转换成内 部消息格式。处理机是可被单独编译的代码。因而,与编译整个系统不同,处 理机可单独被编译,从而提供已编译软件的速度同时保持可易于升级而无需干 扰引擎的其它元件的模块化系统。解析/构建引擎1004加载所标识的模式并调用与该模式相关联的处理机的 功能。处理机随后将消息的字段解析成IMF对象。可使用模式加载器1024将还未被加载的模式和任何相关联的处理机从模 式定义文件1026加载到模式表1028和处理机表1030。模式表1026包括标记 为模式名1、模式名2、...、模式名N的各种模式。对于可由解析/构建引擎1004 解析和构建的每个消息格式,可提供相应的模式。每个模式名与定义了"语法" 一外部格式中的消息流的组成一的模式对象相关联。这种组成可包括字段序 列、字段类型、长度、字符编码、以及其它任选(optional)或必要(required) 的字段。新的模式和已编译处理机可被加载并由解析/构建引擎1004使用而无 需重新编译解析/构建引擎1004。解析/构建流程现在描述一示例流程。如图11所示,当收到消息时,商业服务程序调用 解析/构建引擎1004。消息1010 (线格式的消息流)被发送到解析/构建引擎,其中它首先被解析器组件1016接收。商业服务应用还向解析器组件1016提供 了模式名1011。解析器组件创建内部消息格式(IMF)对象, 一旦来自消息字 段的值被翻译成IMF就将其存储在该对象中。在一个实施例中,解析器组件 1016识别消息1010的起源并确定从该起源发送的消息1010需要哪个模式。在 另一实施例中,消息1010中的信息可被解析以确定数据格式以及因此的应被 使用的对应模式。此外,消息1010可指示哪个模式对应于该数据格式。在一个示例中,解析器组件1016首先査找对应于诸如ISO 8583金融消息 的所检测到的消息的格式的根模式。这种ISO消息在开始时可具有位图,该位 图标识存在哪些字段。根模式将指向处理机,该处理机被调用并解析类型字段 以确定已收到何种类型的消息(例如授权消息、调节消息等)。解析器组件随 后为所标识的消息类型査找模式,该模式进而提供特定的语法并指向该消息类 型的处理机。仅对消息中实际存在的字段査找和调用模式和处理机。当标识并 指向新的字段时,新的模式可被査找并且相应的处理机可被调用。特定字段是 具有一个或多个条件的复合字段,并且取决于条件的结果,这些条件的翻译或 解析可指向附加模式以及所需的关联处理机。IMF对象1018 (以下更详细描述)由所调用的处理机填充。被填充的字段 仅是对应于包括在传入消息中的字段的那些字段。IMF对象1018随后可由网关104的商业软件应用来处理。在被处理之后, IMF对象1018连同用于出站消息流的模式名被发送到构建组件1020。由于经 处理的IMF对象1018的处理可按不同的数据格式来执行,所以构建器组件1020 被配置成从经处理的IMF对象1018构建输出消息流1012。反向重复上述过程, 其中构建器组件1020査找根模式、调用所指向的处理机以便在可重复数次的 过程中构建类型信息。所调用的处理机将在IMF对象1018中找到的值构建成 应当被包括在输出消息流1012中的字段。输出消息流1012随后可被发送到系 统1008,该系统处理该输出消息流1012。图12示出了使用IMF对象1018来执行由网关104提供的任何服务的商业 服务应用1102。商业服务应用1102对IMF对象1018进行操作。这些操作可 包括应用层路由,诸如确定要对其发送消息的发行银行或处理中心。另外,可 对消息执行服务,诸如消息流的应用层格式化、记录日志、加时间戳、创建回复或进一步的处理所需的新字段等。商业服务应用应当对收单方或商业网络进 行预处理,或者它可执行已被卸载的本地处理。例如,可批准针对少于$50的 购买的授权消息,并且发送回复消息而无需将消息转发到商业机构以获得准 许。商业服务应用1102被配置成处理内部消息格式而非外部格式的数据。因此,商业服务应用1102通过将消息解析成IMF而与由其它系统所用的任何外部格式相隔离。IMF结构图13A示出了根据本发明的一个实施例的IMF 1018的结构。如图所示, 在IMF 1018中设置了N个字段。这些字段可以是字段数组,在分层结构中, 其中每个字段还可包括任何数量的孩子字段,这些孩子字段又可包括孙子字段 等。例如,字段l包括孩子字段1.1、 1.2..... l.N。字段1.2..... l.N也可包括任何数量的孩子字段(未示出)。当接收到消息时,仅用数据来填充实际使 用的字段。图14B示出了具有对象ID码、以及指向图13A中所示字段的字段定义的 索引的分层格式。OID允许对IMF对象1018中的各个字段进行索引。针对IMF 对象1018中字段,使用OID来访问字段定义。在一个实施例中,OID是由所 示点分十进制表示来表示的八字节数字。第一字段的OID被编码为1.0.0。任 何子字段被编码为l丄O、 1.2.0等等。第二字段被编码为2.0.0,并且任何子字 段被编码为2丄0、 2.2.0等。模式结构图13B示出了示例模式。模式的地址是第一行,即消息定义(MessageDef)。 模式包括语法和指向消息中的每个字段的处理机的指针。在所示示例中,消息 的第一字段由索引为1.0.0的字段定义对象(FieldDef) 1202来标识。这也被称 为OID属性1202。此字段随后的索引是要调用的处理机1024的标识(HDR)。 该行中的剩余元素是此特定字段的语法定义。这些字段定义描述了字段的特 性,诸如字段次序、字段类型、长度、字符编码、所需处理机名等。字段定义 可用于对以如ASCII、 EBCDIC、 BCD等不同编码以及如数字、串、字节数组 等不同数字类型来编码的字段进行解析/构建。因而,多格式消息流可使用消息 定义来处理。在一个实施例中,模式是XML模式的形式的元数据。字段定义可包括多个属性。应当认识到,图13B中所示的属性并非穷尽的, 而本领域技术人员可认识到其它属性可被使用。
处理机属性1204是字段名。必要/任选属性1206指示该字段在消息中是必 要的还是任选的。第一数据格式属性1208是如同在外部格式(也称为线格式) 中找到的一样的字段值的数据格式。第二数据格式属性1210是其中字段可被 存储在IMF中并由商业服务处理的内部格式。
定制(custom) /非定制(notcustom)属性1212指示字段是使用定制处理 机还是通用处理机来解析和构建字段。
第七属性1214指示处理消息字段中的值所需的处理机名。处理机获取接 收到的消息中所标识字段中的值,并且或是将其解析成IMF(对于解析器模式) 或是将该值从IMF构建成外部格式(对于构建器模式)。
第八属性1216指示字段内的子字段的数目。
在IMF (内部消息格式)中使用的示例消息字段
图14A示出了用于特定消息对象1010的字段的示例,该对象包括不同字 段的大量对象ID (OID) , OID 1.0.0、 l丄0、 l丄l、 2.0.0、 2.2.0、 4.0.0和4.1.0。
这些是由图13B的模式所指向的字段。因而,对于此示例消息,在消息对象中 只有图14C中所标识的字段被填充,在图13A中示出了该消息对象。图14B 以内部消息格式示出了字段的全集中的全部分层对象ID的一部分。如图中所 见,消息1010仅包括这些字段中其需要的部分。例如,对象ID 1.2.0、 3.0.0 和4.2.0未被使用。注意,这些字段可具有任何数量的孩子字段。
对象ID提供了指向图13A中所示消息对象的分层内部消息格式的快速索 引系统。这种索引系统使用经编码的对象ID (1.0.0等),对于收到的格式中 所用的每个字段,该对象ID索引(指向)内部消息格式中的对应字段。这些 索引可直接指向在分层结构中向下若干层的字段。
当网关104的组件处理IMF对象1018时,未执行对非必要字段的处理。 因而,处理速度得到增加。
必要字段也可被添加到IMF对象1018。某些字段可能是商业服务模块1102 或交易处理器108所需要的。如果确定必需使用的字段未被包括在接收到的消 息1010中,则字段可由商业服务模块来填充以包括在要构建用于重新传送的 消息中。因而,图13B的模式中的'必要,字段如果未被包括在消息1010中则可被添加到IMF对象1018。
初始化解析/构建引擎
图15示出了在启动商业服务应用时用于初始化解析/构建引擎1004的方法 的简化流程图1400。在步骤1402中,从该应用接收到初始化请求。该请求包 括一个或多个模式定义文件1026的位置。
在步骤1404中,验证在模式定义文件1026中找到的模式。这些模式通过 大量程序来验证,诸如证明引用正确类型的数据、模式所标识的处理机实际存 在等。
在步骤1406中,使用模式加载器1024将模式定义文件1026中的模式从 磁盘加载到注册表1022或者从其它存储库加载到DRAM存储器。
在步骤1408中,模式中所指定的任何处理机被加载到注册表1022中。例 如,消息定义对象中由字段定义所指定的处理机被加载到处理机表1030中。 在一个实施例中,处理机作为由处理机名连接的对象来存储。
在步骤1410中,处理机被绑定到相应的消息定义对象。例如,消息定义 对象中由字段定义所指定的所有处理机被绑定到该消息定义对象。
现在己为模式对解析/构建引擎1004进行了初始化。在一个实施例中,解 析/构建引擎1004的编译并非必需。这是因为使用了用于解析/构建字段值的己 编译处理机。
在运行时,模式可被动态地更新并添加到解析/构建引擎1004。这些模式 可通过改变消息定义对象来更新或可通过添加新的消息定义对象来添加。如果 需要新的处理机,则它们也可被动态地添加到解析/构建引擎1004作为已编译 对象。
模式可被添加而无需重新编译解析/构建引擎1004,也无需拆卸它。因而, 即使在模式被更新时,解析/构建引擎1004可继续解析/构建消息。
添加或更新模式
图16示出了根据本发明的一个实施例的用于动态地添加或更新解析/构建 引擎1004中模式的方法的简化流程图。在步骤1502中,从应用接收到动态添
加或更新模式的请求。该请求包括一个或多个模式定义文件1026的位置,这 些文件包括新或已更新模式。在步骤1504中,验证在模式定义文件1026中找到的模式。 在步骤1506中,模式定义文件1026中的模式被加载到注册表1022中。 如果已更新模式设有一组新的字段定义或经更改的字段定义,则只有新的或经 更改的字段定义可被加载到注册表1022中。在添加或更新模式时,适当的数 据结构可被写锁定,以确保正被处理的操作中消息不会因模式改变而变质。在 模式加载器1024加载已更新版本的模式时,操作中消息继续使用先前版本的 模式。
在步骤1508中,消息定义对象中所指定的任何处理机被加载到注册表1022 中。解析/构建引擎1004可进行核对以确定在注册表1022中是否已存在任何处 理机,并且可不将这些处理机重新加载到注册表1022中。然而,如果任何处 理机被改变,则经更改的处理机被加载。
在步骤1510中,处理机被绑定到相应消息定义对象。在一个实施例中, 只有新的或经更改的处理机被绑定到已被更新的消息定义对象。现在解析/构建 引擎1004已被动态更新。
解析进程的流程图
图17示出了根据本发明的一个实施例的用于解析输入消息流1010的方法 的简化流程图1600。在步骤1602中,确定消息的模式。该模式对应于构成输 入消息流IOIO所用的数据格式。
在步骤1604中,从模式中的指针确定消息定义对象的任何处理机。
在步骤1606中,每个字段的处理机被附连到该字段。
在步骤1608中,处理机翻译消息的字段。每个字段的处理机被调用。处 理机使用模式中的字段定义来将字段的值翻译成IMF。字段的OID指向模式中 针对该字段的字段定义,并指向IMF对象1018中的相应字段。
在一个实施例中,解析器组件1016维护在消息IOIO中读取字段的偏移量。 例如,所读取的字节数被存储为偏移量。在每个处理机被调用时,解析器组件 递增此偏移量。当处理机到达消息1010的末端(例如,当偏移量等于某个长 度时)或者消息定义对象中的最后字段定义时,解析器组件知道翻译完成。
在步骤1610中,已翻译的字段被存储在IMF对象1018的相应分层结构中。 字段的OID可用于将己翻译的值存储到IMF对象1018的分层结构中的相应位 置。如果以上翻译在任何时刻失败,则错误被返回到网关104。解析可继续进
行并且IMF对象1018可被返回。然而,错误标记可被记录在IMF对象1018 中。
构建进程的流程图
现在参照图18描述构建进程。图18示出了根据本发明的一个实施例的从 IMF对象1018构建输出消息流1012的方法的简化流程图1700。在步骤1702 中,确定模式名和IMF对象1018。在一个实施例中,首先确定IMF对象1018。 模式名可基于IMF对象1018中的信息来确定。例如,模式名可被存储在IMF 对象1018中的信息中。而且,模式名由通道系统或目的系统来确定,其中将 向该系统发送IMF对象1018中的信息。
在步骤1704中,消息定义对象用于在注册表1022中寻址该模式。在步骤 1706中,还确定该模式所需的任何处理机。
在步骤1708中,对于在IMF对象1018中找到的每个字段,从IMF对象 1018中的层次结构中的相应字段加载值。字段的OID用于访问字段定义。
在步骤1710中,根据字段的字段定义属性从IMF对象1018中的字段翻译 该值。因此,IMF格式的值被翻译成与另一系统兼容的格式。
在步骤1712中,将所构建的值安排在所生成的输出消息流1012的相应字 段中。
如果对于外部格式所需的字段,并未找到IMF对象1018中的字段值,则 该字段在外部消息中的值可被设置成空或者所生成的消息可简单地在该消息 中不具有此字段。此外,如果确定IMF对象1018应当具有此字段,则可返回 指示未在IMF对象1018中找到字段的错误。
本发明的实施例提供了许多优点。例如,应用级内容、网络传送环境的当 前状态和/或配置信息的组合可用于智能地交换交易。这使由客户端发送的任何 交易增加了价值。例如,如果在网络或交易处理器中存在任何故障,则交易可 通过其它网络路由到其它交易处理器。这避免了停工时间以及任何交易丢失。
此外,商业服务可应用于应用级内容。这增加了网关104智能地路由交易 的灵活性。例如,数据处理器108可处理不同格式的交易。网关104可被配置 成基于交易处理器所需的格式改变应用级内容的格式。此外,可应用于交易的 商业服务可允许网关104接收多种格式或协议的交易。例如,无线交易支付、
32因特网交易、POS交易等可被处理。这增加了处理交易的灵活性。
虽然本发明的实施例被描述为处理交易以及在某些情况中为金融交易,但 是应当理解,可处理各种领域的交易。例如,可为音乐共享服务处理交易。这 些交易包括对音乐下载请求,这样网关104随后智能地将该请求交换至服务提 供商并将所请求的内容路由回客户端。而且,可提供视频服务。或为按需的或
为按次计费的视频请求可由网关104接收并处理。请求和后续下载可根据本发
明的实施例智能地交换。
可以在软件或硬件或者两者组合中以控制逻辑的形式来实现本发明。该控 制逻辑可被存储在信息存储介质中作为适于引导信息处理设备执行本发明的 实施例中所公开的一组步骤的多个指令。基于在此提供的公开和示教,本领域 技术人员将认识到实现本发明的其它方式和/或方法。
以上描述是示例性而非限制性的。对于本领域技术人员而言,基于对本公 开的回顾,本发明的许多变化将变得显而易见。因此,本发明的范围不应当参 照以上描述来确定,相反,而是应当参照所附权利要求以及它们的全部范围或 等效方案来确定。
权利要求
1. 一种用于使用位于网络边缘的网关交换交易的方法,所述方法包括在所述网关处接收交易;确定所述交易的应用级内容;确定路由所述交易所处的传送环境的应用级动态上下文信息,所述传送环境包括可将所述交易路由到一个或多个交易处理器的一个或多个网络,所述交易处理器可处理所述交易;以及基于所述动态上下文信息和所述交易的所述应用级内容,将所述交易交换至所述一个或多个交易处理器中的交易处理器和所述一个或多个网络中的网络。
2. 如权利要求1所述的方法,其特征在于,还包括 从发送所述交易的客户端确定客户端规则;以及使用所述客户端规则来确定可基于所述动态上下文信息处理所述交易的服 务,所述交易处理器或网络是所述服务的一部分。
3. 如权利要求1所述的方法,其特征在于,还包括 确定服务提供商规则;以及使用服务提供商规则来基于所述动态上下文信息确定所述交易处理器或在其 中交换所述交易的网络。
4. 如权利要求1所述的方法,其特征在于,还包括在所述应用级对所述交易的所述应用级内容执行服务。
5. 如权利要求4所述的方法,其特征在于,所述服务是基于所确定的所述交 易处理器或网络来执行的。
6. 如权利要求4所述的方法,其特征在于,所述服务包括将所述应用级的内 容格式化成所确定的交易处理器所需的格式。
7. 如权利要求4所述的方法,其特征在于,所述服务包括将所述应用级的内 容格式化成所确定的网络所需的格式。
8. 如权利要求1所述的方法,其特征在于,所述传送环境的所述动态上下文 信息包括用以在所述应用级处理先前交易所用的时间。
9. 如权利要求1所述的方法,其特征在于,所述内容采用包括可能数量的字 段的数据格式,其中所述应用级内容是所述可能数量的字段的子集,所述方法还包括在所述交易中仅处理所述字段的子集。
10. 如权利要求l所述的方法,其特征在于,还包括通过使用用于处理所述交 换的动态创建代码实例在不影响所述网关上的交易交换的情况下将规则动态地加 载到所述网关。
11. 如权利要求l所述的方法,其特征在于,还包括在所述网关处处理所述交 易而无需将所述交易发送到所述交易处理器。
12. —种用于使用连接到网络的网关交换交易的方法,所述方法包括 在所述网关处接收交易;在应用级确定可通过所述网络访问的适当交易处理器; 确定所述适当的交易处理器所需的应用级格式化; 按照所述应用级格式化来格式化所述交易;以及 通过所述网络将所述交易发送到所述适当交易处理器。
13. —种用于使用位于网络边缘的网关来交换交易的方法,所述方法包括 在所述网关处接收交易;确定所述交易的应用级内容;基于所述应用级内容通过所述网络确定适当的应用级交易处理器;以及 通过所述网络将所述交易发送到所述适当的应用级交易处理器。
14. 一种用于使用网络上的网关交换交易的方法,所述方法包括 针对来自客户端的应用服务选择在所述网关处接收一应用级规则的集合; 在所述网关处存储所述规则集合;在所述网关处从所述客户端接收交易; 确定所述交易的应用级内容;基于所述规则集合处理所述交易并将所述交易发送到交易处理器。
15. —种用于使用网络上的网关交换交易的方法,所述方法包括 公布服务提供商的服务,使得客户端可预订所述服务;通过用于将所述服务的交易交换到所述服务提供商的服务提供商规则动态地 更新所述网关,其中在所述动态更新之后所述网关被配置成将交易交换到所述所述 服务的所述服务提供商;从客户端接收对所述服务的预订请求;从所述客户端接收交易;以及确定所述交易是否应当被交换到所述服务提供商以便对所述交易执行所述服务,其中所述确定通过将所述交易的动态上下文信息应用于所述服务提供商规则来 作出。
16. 如权利要求15所述的方法,其特征在于,还包括确定所述交易应当在所述网关处处理,并且不将所述交易交换到所述服务提 供商;以及在所述网关处处理所述交易。
17. 如权利要求15所述的方法,其特征在于,所述服务提供商规则包括关于 所述服务提供商所需的交易格式、发送所述交易的地址、或者到不同交易处理器的 交换优先级的信息。
18. —种用于交换来自客户端的交易的系统,所述系统包括在网络边缘的多个网关,配置成在应用级处理交易,其中由所述多个网关提 供的应用级服务被分散化成每个网关存储由其提供的一组服务,其中每个网关包括所述一组服务的规则,用于交换连接到所述网关的客户端的交易;以及 所述多个网关中其它网关的联系信息,其中所述联系信息用于将所述一组服 务中一服务的规则发送到另一网关以使得该网关能提供所述服务,或者用于从另一 网关査询所述一组服务中一服务的规则以使得所述网关能提供所述服务。
19. 如权利要求18所述的系统,其特征在于,服务的规则通过服务提供商或客户端加载到所述多个网关中的第一网关,其中所述规则可被分布到多个网关中除 所述第一网关之外的网关。
20. 如权利要求18所述的系统,其特征在于,所述多个网关中的第一网关包括第一组服务,而所述多个网关中的第二网关第二包括第二组服务,其中所述第一 组服务包括并不包括在所述第二组服务中的至少一个服务。
21. —种用于在网络边缘交换交易的网络,所述网关包括 规则数据库,包括由服务提供商所提供的服务的规则; 上下文信息数据库,包括所述网络和服务提供商的动态上下文信息; 接收器,配置成从客户端接收交易;规则应用器,配置成将规则应用于上下文信息以便为所述交易确定服务和服 务提供商;格式化装置,配置成如果所述交易需要格式化,则基于所确定的所述服务和服务提供商在所述应用级格式化所述交易;以及发送器,配置成将所述交易发送到所述服务提供商。
22. 如权利要求21所述的网关,其特征在于,还包括规则加载器,配置成将 规则动态地加载到所述规则数据库。
23. 如权利要求22所述的网关,其特征在于,所述规则被动态地加载而不影 响所述网关上的交易交换。
24. 如权利要求22所述的网关,其特征在于,从客户端或服务提供商动态地 加载所述规则。
25. 如权利要求21所述的网关,其特征在于,还包括网关交易处理器,配置 成在所述网关处处理所述交易而不将所述交易发送到所述服务提供商。
26. 如权利要求21所述的网关,其特征在于,所述动态上下文信息包括所述 网络的健康、所述服务提供商的可用性、在应用级处理先前交易所用的时间、或将 所述交易发送到所述服务提供商的成本。
27. —种位于网络边缘的用于交换交易的网关,包括 配置成接收交易的端口;处理器,配置成确定所述交易的应用级内容以及路由所述交易所处的传送环 境的应用级动态上下文信息,所述传送环境包括可将所述交易路由至可处理所述交 易的一个或多个交易处理器的一个或多个网络;以及交换机,配置成基于所述动态上下文信息和所述交易的所述应用级内容将所 述交易交换至所述一个或多个交易处理器中的交易处理器以及一个或多个网络中 的网络。
28. —种连接到网络的用于交换交易的网关,包括 配置成接收交易的端口;处理器,配置成在应用级确定可通过所述网络访问的适当交易处理器以及确 定所述适当交易处理器所需的应用级格式化;格式化装置,配置成根据所述应用级格式化对所述交易进行格式化;以及 发送器,配置成通过所述网络将所述交易发送到所述适当交易处理器。
29. —种用于在网络上交换交易的网关,包括存储器,用于在所述网关处存储针对来自客户端的应用级服务选择的应用级 规则集合;端口,配置成在所述网关处从所述客户端接收交易;处理器,配置成确定所述交易的应用级内容以及基于所述规则集合处理所述交易并将所述交易发送到交易处理器。
30. —种用于在网络上交换交易的网关,包括存储器,用于在所述网关处存储针对来自客户端的应用级服务选择的应用级 规则集合;端口,配置成在所述网关处从所述客户端接收交易;以及 处理器,配置成确定所述交易的应用级内容以及基于所述规则集合处理所述 交易并将所述交易返回到所述客户端而无需将所述交易转发到远程交易处理器。
全文摘要
提供了交易在网关处的应用级交换。网关被配置成基于应用级内容、传送环境的当前状态和/或交换交易的动态规则来交换交易。例如,可针对交易的类型选择若干可能的服务提供商,并且网关不仅可监视通过网络到达可能的不同服务提供商的往返时间,还可监视在应用级完成交易所需的时间,并返回响应。在网络的发送侧选择应用,而且也在该发送侧进行应用级格式化。网关使用模块化代码和数据,并分离处理代码的实例以允许动态更新。应用服务选择的规则可被选择性地从客户端上传到网关。不同的可用应用服务的规则可分布在不同的网关上。
文档编号G06F15/16GK101535975SQ200680031304
公开日2009年9月16日 申请日期2006年6月29日 优先权日2005年6月29日
发明者K·辛格, M·卡尔森, R·E·玛纳萨拉, S·K·加里森, T·辛格 申请人:维萨美国股份有限公司;维萨国际服务协会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1