对服务进行计费的方法、集中控制设备和系统的制作方法

文档序号:7692349阅读:92来源:国知局
专利名称:对服务进行计费的方法、集中控制设备和系统的制作方法
技术领域
本发明涉及面向服务架构(SOA, Service Oriented Architecture)技术领 域,尤其涉及一种对服务进行计费的方法、SOA中的集中控制设备以及计费 系统。
背景技术
SOA ( Service Oriented Architecture,面向服务架构)的主要结构是服务 消费方通过集中控制线调用服务提供者提供的服务。实现SOA架构的方式有 多种,例如采用WebService实现SOA架构。采用Web Service方式实现SOA架 构时, 一个核心的部件是ESB (Enterprise Service Bus,企业服务总线),ESB 是SOA中的一种集中控制点。在ESB上连接各个以Web Service方式实现的服 务。服务消费方通过ESB完成对服务提供方提供的服务的调用。例如,作为服 务消费方的企业一方面可以调用自己企业内部的月l务,另一方面也可以通过 ESB调用独立服务提供商提供的服务。发明人在实现本发明过程中发现,在目前的SOA架构中,不能实现服务 提供方对使用其服务的情况进行计费。发明内容本发明实施例提供了 一种对服务进行计费方法、计费系统以及SOA中的 集中控制设备,能够实现对SOA下的服务使用进行计费。本发明实施例提供了一种对服务进行计费的方法,包括面向服务架构 SOA中的集中控制点接收服务消费方的服务请求;所述集中控制点根据所述 服务请求为所述服务消费方调用被请求的服务;所述集中控制点根据所述服 务的被调用结果生成计费话单。本发明实施例还提供了一种SOA中的集中控制设备,包括请求接收单元,用于接收服务消费方的服务请求;服务调用单元,用于根据所述服务请 求为所述服务消费方调用被请求的服务;计费单元,用于根据所述服务的被 调用结果生成计费话单。本发明实施例还提供了一种计费系统,包括上述的集中控制设备,以及 与所述集中控制设备连接的计费服务器,其中,所述计费服务器用于存储所 述集中控制设备传送的计费话单。本发明实施例还提供一种服务提供系统,包括服务提供对象,还包括上 述的集中控制设备,所述服务提供对象用于为所述集中控制设备提供被请求 的服务。通过以上本发明实施例可以看出,由于服务消费方调用服务提供方的服 务需要通过SOA中的集中控制点,因此使用集中控制点对服务的调用情况进 行计费,可以实现对SOA中的服务使用进行计费。


图l为现有技术中的一种SOA架构示意图;图2为本发明对服务进行计费的方法第一实施例流程图;图3为本发明对服务进行计费的方法第二实施例流程图;图4为本发明SOA中的集中控制设备第一实施例结构图;图5为本发明SOA中的集中控制设备第二实施例结构图;图6为本发明计费系统实施例结构图;图7为本发明服务提供系统实施例结构图。
具体实施方式
下面结合附图对本发明各实施例以及具体实施方式
进行详细说明。首先 请参阅图1,其为现有技术中的一种SOA架构实施例示意图。本发明实施例 的技术方案是在上述SOA架构下进行的改进,在描述下述本发明实施例时可 以参考该SOA架构示意图。图中的SOA架构包括服务消费方和服务提供方,位于服务提供方的集中控制点上连接着多个服务提供对象(通常是服务器来 实现),每个服务提供对象负责提供对应的服务。请参阅图2,其为本发明对服务进行计费的方法第一实施例流程图。步骤210: SOA中的集中控制点接收服务消费方的服务请求,所述服务 请求中的请求内容是直接服务,为后续描述方便,将请求内容是直接服务的 服务请求称为直接服务请求;简单介绍一下SOA中直接服务和代理服务的区别。直接服务(Direct Service)是服务提供方实现的具体服务,集中控制点在调用直接服务时,就 是给实现该服务的服务器地址直接发送消息进行服务的调用。部署到集中控 制点的服务可以聚合,代理服务(Proxy Service)是通过聚合向外发布的服务, 由于聚合, 一个代理服务可以分解为至少一个直接服务。步骤220:集中控制点将上述直接服务请求转发给服务提供对象;简单介绍一下集中控制点的功能。集中控制点主要完成对服务的连接和 路由、将服务的调用结果返回给服务消费方,进而完成服务消费方对服务的 调用。以WebService实现时,服务的接口已经标准化,服务(如软件服务) 以WSDL ( Web Services Description Language,网络服务描述语言)文件描述 服务应如何被调用。从功能上讲,集中控制点一般可以实现如下功能连接 功能、传输功能、路由功能、转换功能。其中,连接功能是指将各种服务接 入集中控制点;传输功能是指集中控制点能支持各种传输协议或者消息承载 协议,如HTTP (Hypertext Transfer Protocol,超文体传输协议)协议等;路由 功能是指集中控制点能将消息路由到正确的服务提供对象;转换功能包括协 议转换和消息格式转换。集中控制点在接收到来自服务消费方的服务请求消息后,通常根据一定 的策略进行消息路由和格式转换、传输协议转换,进而将服务请求消息发送 给服务提供对象。步骤230:集中控制点接收服务提供对象返回的直接服务应答消息;服务提供对象在收到集中控制点转发的服务请求后,可以进行服务计算, 如信息查询等功能,然后可以根据查询结果返回直接服务应答消息给集中控制点。服务的消费是消息机制,直接服务应答消息的内容可以表明该直接服 务是否被调用成功。
一般而言,如果直接服务被调用成功,那么直接服务应答消息中通常就是被请求的直接服务;如果直接服务被调用失败,则直接服 务应答消息的内容通常是调用失败的信息和失败原因。步骤240:集中控制点将所述直接服务应答消息转发给所述服务消费方; 例如,集中控制点收到该直接服务应答消息后,进行格式转换、传输协 议转换,然后将直接服务应答消息发送给请求该项服务的服务消费方。步骤250:集中控制点根据所述直接服务应答消息的内容生成计费话单;例如,如果直接服务应答消息的内容表明服务被调用成功,则集中控制 点生成计费话单,并在其中记录所述服务消费方的用户标识、被调用的所述 直接服务名称以及所述服务被调用成功的信息。如果直接服务应答消息的内 容是表明所述直接服务被调用失败,则集中控制点生成计费话单,并在其中 记录所述服务消费方的用户标识、被调用的所述直接服务名称以及所述服务 被调用失败的信息。需要说明的是,本实施例中生成计费话单的时间可以根 据实际需要灵活操作。例如,集中控制点可以在收到直接服务应答消息时就 生成计费话单,也可以将直接服务应答消息转发给服务消费方之后再生成计 费话单。对于后者,如果直接服务应答消息的内容表明服务调用成功,但是 在将直接服务应答消息转发给服务消费方时出现故障,导致应答消息转发失 败,则生成的计费话单可以记录服务调用失败。由于一个用户可能有多个应用程序,因此可能出现一个服务消费方的多 个应用程序均需要调用服务提供方的服务,于是,为了使计费话单更详细, 还可以在计费话单中记录调用服务的服务消费方的具体应用程序的标识。当 然,计费话单中除了记录上述内容外,还可以根据具体需要记录其他内容, 比如调用时间、消息大小以及协议版本等内容。需要说明的是,如果为了使得生成的计费话单比较完善,那么可以既在 直接服务被调用成功时生成计费话单,也在直接服务被调用失败时生成计费 话单。如果为了节约生成计费话单的资源,那么也可以只在直接服务被调用成功时生成计费话单,在直接服务被调用失败时不生成计费话单。此外,还需要说明的是,本实施例中的步骤240和步骤250之间没有必 然的先后顺序。步骤260:存储生成的计费话单。由于服务提供方一般不会实时查询计费话单,而通常是每隔一段时间汇 总一下计费话单,然后根据一定的收费策略以及计费话单向服务消费方收取 费用,因此,可以将集中控制节点实时生成的计费话单存储起来,留给服务 提供方在需要的时候使用。当然,也不排除服务提供方实时查询计费话单的 情况。当服务提供方实时查询计费话单时,所述步骤260可省略。当需要存储所述计费话单时,实现计费话单的存储可以有多种方式,例 如,可以将集中控制点生成的计费话单存储在本地,这样比较方便。还可以 将生成的计费话单传送至远端的计费服务器(Billing Server)进行存储,这样 可以减轻集中控制点的存储负担。如果采用将生成的计费话单传送至远端的计费服务器进行存储的方式, 那么集中控制点需要支持标准的计费话单传输协议,如FTP ( File Transfer Protocol,文件传输协i义)或FTPS ( FTP over Secure socket layer,基于的安全 套接字层的文件传输协议)。为了使得计费服务器可以清楚的存储各种计费 话单,集中控制点可以为每个计费话单命名,计费话单的文件名要唯一。此 外,当集中控制点和计费服务器之间的连接中断时,集中控制点最好能暂存 所生成的计费话单,当连接恢复后,集中控制点主动向计费服务器重传计费 话单。在传送计费话单时有多种传送方式,例如l)定期传送方式。集中控制 点以每隔固定时间间隔将生成的计费话单文件向计费服务器传送。这种传送 方式的优点是比较规律,有利于服务提供方定期汇总计费话单。2)定长传送 方式。集中控制点上生成的计费话单,每达到一定大小后,集中控制点就将 已经生成的计费话单向计费服务器传送。这种传送方式的优点是发送一次计 费话单时的文件容量比较满,可以节约传递资源。需要补充说明的是,虽然在上述第一实施例中,SOA的集中控制点是通 过转发服务请求以及应答消息来实现服务的调用,但是在实际应用中并不局限于此。只要集中控制点能够为服务消费方完成服务调用的技术方案均可以 应用在本发明实施例中,进而集中控制点根据该服务的被调用结果生成计费 话单。进一步,集中控制点根据服务的被调用结果生成计费话单的具体实现方 式,也不限于上述实施例中所述根据应答消息的内容生成计费话单。例如, 服务提供方和服务消费方可以预先约定,服务消费方在接收到集中控制点转 发的应答消息后,需要给集中控制点回复确认是否成功收到相应服务的确认 信息,进而集中控制点根据服务消费方返回的确认信息生成计费话单。从上述实施例及其补充说明可以看出,由于SOA中的集中控制点在为服务消费方进行服务调用后,根据该服务的被调用结果生成计费话单,因此使服务提供方对服务消费方使用其服务的状况能够准确掌握谁在使用其服务 以及使用了哪些服务等,进而为服务提供方有偿提供服务奠定了基础。上述实施例的集中控制节点在不同的应用环境有不同的实现方式,只要 一个服务提供方通过某个点集中控制对外提供的服务,那么这个控制点就可 以称为SOA中的集中控制点,例如集中控制点可以是SOA中的ESB总线, 还可以是CORBA ( Common Object Request Broker Architecture,公用对象请 求代理程序体系结构)总线。为了更进一步的介绍本发明实施例,下面给出 上述本发明实施例的几种具体实施方式
。在下述本发明的几种具体实施方式
中,均以ESB总线为例进行更详细的说明,对于其他类型的集中控制点的实 现方案雷同,故不再赘述。首先,介绍本发明对服务进行计费的方法第一具体实施方式
。在第一具 体实施方式中,软件服务消费方通过ESB调用的方式进行软件服务的调用。(1 )服务消费者给ESB发送请求消息,请求某个软件服务(本具体实施 方式中以所述软件服务是一种直接服务为例进行说明)。该请求消息可以是同步消息,也可以是异步消息。请求消息的名称通常 是由服务提供方在进行服务发布时确定的。(2 ) ESB收到该请求消息后,根据一定的策略进行消息路由和格式转换、 传输协议转换,最终将请求消息发送给软件服务的提供对象。(3) 软件服务提供对象进行服务计算,如信息查询等,最后返回应答消息给ESB。(4) ESB收到该应答消息后,进行格式转换、传输协议转换,将应答消 息发送给最初的服务请求方。(5) ESB根据该服务是否成功被调用,生成计费话单。不论是否成功都 会记录计费话单,只是记录的内容不同,如果调用成功,那么计费话单中记 录调用操作成功,如果调用失败,那么计费话单中记录调用操作失败。计费话单的内容可以根据实际需要灵活配置,例如,基于Web Service的 使用信息进行计费的计费话单中可以包括如下内容1、 时间戳使用Web Service的详细时间。2、 用户标识使用Web Service的用户,即软件服务消费方的用户标识。3、 应用程序标识 一个服务消费方可能有多个应用程序,多个程序可 能均需要调用软件服务提供方(比如独立软件提供商)的Web Service,因此, 为了更详细的在计费话单中体现服务消费方的信息,可以给出服务消费方的 应用程序标识,来表明究竟是服务消费方的哪个或哪些应用程序使用了服务。4、 服务操作名也就是被请求的服务名称,来标识被调用的是哪种服务。5、 端口名在SOA架构中,软件服务方在发布服务时,是以WSDL文 档发布的,端口是WSDL文件中一个属性,描述了服务提供方的绑定信息。6、 操作结果表明服务是否被成功调用,在不成功的情况下还可以给出 失败原因。7、 消息大小由于在SOA架构中,服务的提供基本是通过消息实现的, 因此可以给出提供服务的消息的大小。8、 协议版本。可以看出,在本发明具体实施方式
中,ESB生成的计费话单可以根据实 际需要包括多种内容,本领域技术人员可以理解,这些内容ESB通过从服务 消费方接收到的服务请求以及从服务提供对象接收到的应答消息中是可以获 得的。(6 ) ESB根据预先配置传送方式(如定期方式或者定长方式)传送话单给计费服务器进行存储,进而服务提供方根据自己的收费策略以及计费服务器 中存储的各种计费话单,就可以对服务消费方进行计费,收取相应的费用了。 其次,在介绍本发明对服务进行计费的方法第二具体实施方式
。在第二具 体实施方式中,软件服务消费方通过ESB采用订阅/通知的方式进行软件服务 的调用。(1)服务消费方给ESB发送订阅请求消息,请求订阅某个软件服务(本具体实施方式
中以所述软件服务是一种直接服务为例进行说明)。(2 ) ESB收到该服务的订阅请求消息后,根据一定的策略进行消息路由 和格式转换、传输协议转换,最终将请求消息发送给软件服务的提供对象。(3 )服务提供对象确认订阅,返回订阅是否成功的订阅应答消息给ESB。(4) ESB给订阅该服务的服务消费方发送订阅是否成功的订阅应答消 息,并且ESB根据该应答消息的内容生成服务订阅的计费话单。(5) 由于服务消费方需要的服务已经订阅成功,因此服务提供方就会在 适当的时机向服务消费方提供相应的服务(这个服务可能是分多次提供的), 即向ESB发送服务通知消息,该服务通知消息的内容是服务消费方所请求的 服务。(6 ) ESB转发服务通知消息给服务消费方,并且根据服务通知消息的内容 生成服务通知的计费话单。可以看出,在上述第二实施方式中对于服务消费方的订阅请求消息,实 质上可以理解为产生了两种应答消息订阅应答消息和服务通知消息,进而, ESB可以产生两种计费话单服务订阅的计费话单和服务通知的计费话单,至 于后续服务提供方根据哪种计费话单对服务消费方进行计费,则可以根据实 际需要而定。如果服务提供方只需要根据某一种计费话单(服务订阅的计费 话单或服务通知的计费话单)对服务进行计费,那么ESB也可以只根据订阅应 答消息产生服务订阅的计费话单,或者只根据服务通知消息产生服务通知的 计费话单。请参阅图3,其为本发明对服务进行计费的方法第二实施例流程图。本实 施例与第 一 实施例的区别之处在于,本实施例中集中控制点接收到的服务请 求所请求的服务是代理服务,而不是直接服务。在这种情况下,集中控制点需要先将接收到的服务请求中所请求的代理服务分解为至少一个直接服务, 然后向可以提供直接服务的服务提供对象转发直接服务请求消息,详见下述 各步骤。本实施例着重描述与第一实施例不同之处,对于相同之处不再赘述。步骤310: SOA中的集中控制点接收服务消费方的服务请求,所述服务 请求中的请求内容是代理服务,为后续描述方便,将请求内容为代理服务的 服务请求称为代理服务请求;步骤320:集中控制点将所述代理服务请求分解为至少一个直接服务请 求,每个直接服务请求中的请求内容便是直接服务;根据具体的实际情况不同, 一个代理服务请求可能只能分解为一个直接服务请求,也可能一个代理服务请求分解为至少两个直接服务请求。例如, 某个代理服务请求的请求内容是代理服务C,而代理服务C实质上包含了服 务A和服务B两种服务,那么这种情况下,集中控制点就将请求内容为代理 服务C的服务请求分解为两个直接服务请求 一个是请求内容为服务A的直 接服务请求;另外一个是请求内容为服务B的直接服务请求。步骤330:集中控制点将分解后的直接服务请求转发给对应的服务提供对象;例如,如果步骤320中将代理服务请求分解为了两个直接服务请求第一 直接服务请求(请求服务A)和第二直接服务请求(请求服务B),那么,集 中控制点就将第 一直接服务请求发送给可以提供服务A的第 一服务提供对象, 将第二直接服务请求发送给可以提供服务B的第二服务提供对象。步骤340:集中控制点接收服务提供对象返回的直接服务应答消息;例如,接收第一服务提供对象返回的第一直接服务应答消息,以及第二 服务提供对象返回的第二直接服务应答消息。当然,如果步骤320中将代理 服务请求只分解为了 一个直接服务请求,那么本步骤中的集中控制点也会相 应的只接收到 一个直接服务应答消息。步骤350:集中控制点将所述直接服务应答消息转发给所述服务消费方; 具体而言,集中控制点将直接服务应答消息转换为代理服务应答消息, 然后将代理服务应答消息发送给服务消费方。本步骤的具体过程根据具体实际情况(如消息的类型不同)可以有多种实现方式,例如,可以是将某一个直接服务应答消息转换为代理服务应答消息,然后发给服务消费方;也可以 是将两个以上的直接服务应答消息聚合生成一个代理服务应答消息,然后再 发送给服务消费方。本步骤的具体实现方式,本领域技术人员可以参看现有 SOA架构中的相关技术,不再赘述。步骤360:集中控制点根据所述应答消息的内容生成计费话单。本步骤的 具体实现根据实际需要可以有多种方式。例如,集中控制点可以根据每个直接服务应答消息的内容分别生成计费 话单。具体而言,集中控制点根据第一直接服务应答消息的内容生成针对调 用服务A的计费话单,根据第二直接服务应答消息的内容生成针对调用服务 B的计费话单,可以理解这种计费话单实质上是根据直接服务的被调用结果 得到的,即本质上是根据直接服务应答消息的内容得到的计费话单。根据直 接服务应答消息的内容得到的计费话单的内容,与前面第一实施例相同,固 不再赘述。又例如,集中控制点根据所述代理服务应答消息的内容生成计费话单。 具体而言,集中控制点根据代理服务应答消息的内容生成一个针对整个代理 服务(如既包括服务A也包括服务B)的计费话单。可以理解,虽然从表面 上看,这种计费话单针是基于代理服务应答消息而言的,但是,由于这种计 费话单依据的是代理服务应答消息的内容,而代理服务应答消息的内容实质 上是根据各直接服务应答消息的内容得到的,因此,这种计费话单实质上依 据的也是直接服务的调用结果。由于集中控制点接收到的应答消息的内容可能表明服务调用成功(如应 答消息的内容就是被请求调用的服务),也有可能表明服务调用失败,因此可 以在代理服务应答消息的内容表明该代理服务被调用成功时生成计费话单, 并在其中记录所述服务消费方的用户标识、被调用的所述代理服务名称以及 所述服务被调用成功的信息。可选的,如果为了使得计费话单更全面,也可 以在代理服务被调用失败时也生成计费话单。例如,在代理服务应答消息的 内容表明所述代理服务被调用失败时生成计费话单,并在其中记录所述服务消费方的用户标识、被调用的所述代理服务名称以及所述服务被调用失败的 信息。如果一个代理服务包括至少两个直接服务,那么在基于代理服务应答消 息的内容生成计费话单时,该计费话单记录的代理服务是否被调用成功则根 据服务提供方的计费策略需要具有多种实现方式。例如,可以规定只有该代理服务包括的所有直接服务都被调用成功,才记录该代理服务被调用成功; 也可以在计费话单记录的代理服务是否被调用成功的部分,对各直接服务的 被调用情况分别记录。与前述第一实施例同理,SOA的集中控制点为服务消费方调用服务的具 体实现方式,包括但不限于通过转发服务请求以及应答消息来实现。只要集 中控制点能够为服务消费方完成服务调用的技术方案均可以应用在本发明实 施例中,进而集中控制点根据该服务的被调用结果生成计费话单。集中控制点根据服务的被调用结果生成计费话单的具体实现方式,也不 限于上述根据应答消息的内容生成计费话单。例如,服务提供方和服务消费 方可以预先约定,服务消费方在接收到集中控制点转发的应答消息后,需要 给集中控制点回复确认是否成功收到相应服务的确认信息,进而集中控制点 根据服务消费方返回的确认信息生成计费话单。从上述实施例及其替代方案可以看出,由于SOA中的集中控制点在为服 务消费方进行服务调用后,根据该服务的被调用结果生成计费话单,因此使 服务提供方对服务消费方使用其服务的状况能够准确掌握谁在使用其服务 以及使用了哪些服务等,进而为服务提供方有偿提供服务奠定了基础。进一 步,由于集中控制点可以将一个代理服务请求分解为多个直接服务请求,进 而调用相应的直接服务,并根据直接服务的调用结果生成计费话单,因此本 实施例可以不仅适用于单纯直接服务调用的应用环境,还适用于涉及代理服 务调用的应用环境。本领域4支术人员应当理解,实现上述本发明实施例的方法可以通过石更件 和/或软件来实现。软件可以存储于一计算机可读介质中,所述软件在执行时, 包括如下步骤面向服务架构SOA中的集中控制点接收服务消费方的服务请求;所述集中控制点根据所述服务请求为所述服务消费方调用被请求的服务; 所述集中控制点根据所述服务的被调用结果生成计费话单。上述的可读介质 可以是ROM/RAM、磁碟、光盘等。请参阅图4,其为本发明实施例SOA中的集中控制设备的一种结构图。本 实施例中的集中控制设备包括请求接收单元41 、服务调用单元42以及直接服 务计费单元43,下面结合该集中设备的工作原理对其内部结构以及连接关系 进行更详细的介绍。请求接收单元41用于接收服务消费方的服务请求,本实施例以该服务请 求是直接服务请求为例进行说明。进而,服务调用单元42用于根据该直接服 务请求为服务消费方调用被请求的服务。服务调用单元42的具体实现方式有 多种,包括但不限于下述具体的实现方式服务调用单元42包括请求转发单 元421、应答接收单元422以及应答转发单元423。其中,请求转发单元421 用于将该直接服务请求转发给服务提供对象,例如,将该直接服务请求进行 常规的格式转换、传输协议转换后发送给服务提供对象;当服务提供对象进 行相应的处理后,会向集中控制点发送应答消息,于是,应答接收单元422 用于接收服务提供对象返回的直接服务应答消息;进而,应答转发单元423 用于将所述直接应答消息转发给所述服务消费方,具体而言,对该直接应答 消息进行常规的格式转换、传输协议转换后发送给服务消费方。由于服务调用单元42根据直接服务请求为服务消费方调用对应的直接服 务,因此,直接服务计费单元43可以根据直接服务的被调用结果生成计费话 单。直接服务计费单元43的具体实现方式有多种,例如直接服务计费单元43 可以包括第一直接服务计费单元431和第二直接服务计费单元432。其中,第一直接服务计费单元431用于在所述直接服务被调用成功的情 况下生成计费话单,并在其中记录所述服务消费方的用户标识、被调用的所 述直接服务名称以及所述服务被调用成功的信息。例如,第一直接服务计费 单元431在直接服务应答消息的内容表明该直接服务被调用成功的情况下, 生成计费话单。至于生成计费话单的时间点可以根据需要灵活操作。例如,第一直接服务计费单元431可以在应答接收单元422收到直接服务应答消息时就生成计 费话单,也可以在应答转发单元423将直接服务应答消息转发给服务消费方 后生成计费话单。对于后者,如果直接服务应答消息的内容表明服务调用成 功,但是在将直接服务应答消息转发给服务消费方时出现故障,导致应答消 息转发失败,则生成的计费话单可以记录服务调用失败。再例如,服务提供方和服务消费方可以预先约定,服务消费方在接收到 集中控制点转发的应答消息后,需要给集中控制点回复确认是否成功收到相 应服务的确认信息,进而第一直接服务计费单元431根据服务消费方返回的 确认信息生成计费话单,在其中记录被请求的服务是否被成功调用。第二直接服务计费单元432用于在所述直接服务被调用失败的情况下, 生成计费话单,并在其中记录所述服务消费方的用户标识、被调用的所述直 接服务名称以及所述服务被调用失败的信息。当然,如果为了节约资源,也 可以只在服务被调用成功时才生成计费话单,这种情况下,直接服务计费单 元43可以只包括第一直接服务计费单元431。计费话单的具体内容可以包括 但不限于服务消费方的用户标识、被调用的所述直接服务名称以及所述服务 被调用成功或失败的信息,还可以包括时间戳、服务消费方的应用程序标识 等多种内容。通过上述实施例可以看出,由于直接服务计费单元43根据服务调用单元 42提供的服务调用结果生成计费话单,因此使服务提供方对服务消费方使用 其服务的状况能够准确掌握谁在使用其服务以及使用了哪些服务等,进而 为服务提供方有偿提供服务奠定了基础。请参阅图5所示,其为本发明SOA中的集中控制设备的第二实施例结构 图。本实施例中的集中控制设备不但可以处理直接服务请求,还可以处理代 理服务请求。本实施例中的集中控制设备包括请求接收单元51、服务调用单 元52以及计费单元53。其中,请求接收单元51用于接收服务消费方的服务请求,由于在图4所 示的实施例中已经详细介绍过处理直接服务请求的技术方案,因此本实施例 中以该服务请求是代理服务请求为例进行说明。方式有多种,包括但不限于下述具体的实现 方式服务调用单元52包括请求转发单元521、应答接收单元522以及应答 转发单元523。具体而言,请求转发单元521包括分解单元5211和请求发送单元5212。 其中,分解单元5211用于将所述代理服务请求分解为至少一个直接服务请求; 请求发送单元5212用于将所述分解后的直接服务请求发送给服务提供对象。在请求发送单元5212将直接服务请求发送给对应的服务^^是供对象后,集 中控制设备会接收到服务提供对象返回的直接服务应答消息。具体而言,应 答接收单元522用于接收服务提供对象返回的直接服务应答消息。应答接收 单元522接收到的直接服务应答消息可能是一个,也可能是两个以上。此后,应答转发单元523用于将接收到的直接服务应答消息转发给服务 消费方。具体而言,应答转发单元523包括转换单元5231和应答发送单元 5232。转换单元5231用于将直接服务应答消息转换为代理服务应答消息,例 如,可能将一个直接服务应答消息转换为一个代理服务应答消息,也可能将 两个以上的直接服务应答消息聚合生成一个代理服务应答消息。应答发送单 元5232用于将转换后的代理服务应答消息发送给服务消费方。由于服务调用单元52对服务消费方请求的服务进行了调用,并可以获知 被请求服务的调用结果,因此计费单元53可以根据服务调用单元52提供的 服务被调用的结果生成计费话单。计费单元53的具体实现形式也多种情况, 例如,计费单元53可以既包括直接服务计费单元531又包括代理服务计费单 元532,也可以只包括其中的任意一种计费单元。例如,直接服务计费单元531用于根据服务调用单元52接收到的每个直 接服务应答消息的内容分别生成计费话单。直接服务计费单元531包括第一 直接服务计费单元5311和第二直接服务计费单元5312,由于直接服务计费单 元531的结构和图4中的直接服务计费单元43的结构相同,因此不再赘述。 需要说明的是,由于在本实施例中的应答接收单元522可能基于服务消费方 的一个代理服务请求而接收到服务提供对象的多个直接服务应答消息,因此, 直接服务计费单元531可以基于每个直接服务应答消息都生成一个计费话单。息的内容生成计费话单。与直接服务代理单元531同理,代理服务计费单元 532可以包括第一代理服务单元5321和第二代理服务单元5322 (可选)。其 中,第一代理服务单元5321用于在所述代理服务应答消息的内容表明该代理 服务被调用成功时生成计费话单,并在其中记录所述服务消费方的用户标识、计费单元5322用于在所述代理服务应答消息的内容表明所述代理服务被调用 失败时生成计费话单,并在其中记录所述服务消费方的用户标识、被调用的 所述代理服务名称以及所述服务被调用失败的信息。需要说明的是,如果一个代理服务包括至少两个直接服务,那么在基于 代理服务应答消息的内容生成计费话单时,该计费话单记录的代理服务是否 被调用成功则根据服务提供方的计费策略需要具有多种实现方式。例如,可 以规定只有该代理服务包括的所有直接服务都被调用成功,才记录该代理服 务被调用成功;也可以在计费话单中记录的代理服务是否被调用成功的部分, 对各直接服务的被调用情况分别记录。还需要说明的是,如果请求接收单元51接收到的服务请求是直接服务请 求时,那么就不需要分解单元5211、转换单元5231以及代理服务计费单元 532的处理。此外,如果服务提供方不是实时查看计费话单,而是每隔一段时间才汇 总一下计费话单,那么就需要将计费单元53生成的计费话单存储起来。具体 的存储方式也多种,既可以在本地存储,也可以在与集中控制设备相通信的 计费服务器中存储。如果选择在本地存储,那么集中控制设备还包括存储单 元,用于将计费单元53生成的计费话单存储在本地。如果选择在计费服务器 中存储,那么集中控制设备还包括话单传送单元,用于将计费单元53生成的 计费话单传送至与其连接的计费服务器。当然,如果服务提供方是实时查看 计费话单,则不需要将计费话单进行存储,即不需要前述的存储单元或者话 单传送单元。从上述图5所示的实施例可以看出,由于计费单元53可以根据服务调用 单元52提供的服务调用结果生成计费话单,因此可以使服务提供方对服务消费方使用其服务的状况能够准确掌握谁在使用其服务以及使用了哪些服务等,进而为服务提供方有偿提供服务奠定了基础。进一步,由于服务调用单元52可以将一个代理服务请求分解为多个直接服务请求,进而调用相应的直 接服务,计费单元53可以根据服务调用单元52提供的服务调用结果生成计 费话单,因此本实施例所示的集中控制设备不仅适用于单纯直接服务调用的 应用环境,还适用于涉及代理服务调用的应用环境。此外,本发明实施例还提供了一种计费系统,请参阅图6所示。本实施 例中的计费系统包括SOA中的集中控制设备61和与集中控制设备61连接的 计费服务器62,计费服务器62用于存储集中控制设备传送的计费话单,至于 集中控制设备61的内部结构可以参看前文所述的集中控制设备第一实施例和 第二实施例,此处不再赘述。本实施例中的计费系统可以将集中控制设备61 生成的计费话单在远端统一存储, 一方面可以减轻集中控制设备的负荷,另 一方面也方便服务提供方对计费话单进行统一管理。本发明实施例还提供了一种服务提供系统,请参阅图7所示。本实施例 中的服务提供系统包括SOA中的集中控制设备71和服务提供对象72。服务 提供对象72用于为集中控制设备71提供被请求的服务,该服务提供对象72 既可以是单独的服务器等设备,也可以集成在集中控制设备71内部。由于集 中控制设备71的内部结构可以参看前文所述的集中控制设备各实施例,因而 此处不再赘述。服务提供对象的具体实现方式可以参看相关的现有技术,因 此也不再赘述。需要说明的是,前述各设备或系统实施例中的结构划分,均是基于逻辑 角度而言的。在实际应用中,各单元可以根据需要组合,任一个单元也可以 根据需要进行拆分。从上述各实施例明可以看出,由于SOA中的集中控制点在为服务消费方 进行服务调用后,根据该服务的被调用结果生成计费话单,因此使服务提供 方对服务消费方使用其服务的状况能够准确掌握谁在使用其服务以及使用 了哪些服务等,进而为服务提供方有偿提供服务奠定了基础。进一步,如果通过转发服务请求以及应答消息来实现服务的调用,并且 由集中控制点根据应答消息的内容来生成计费话单,则可以保证所生成的计费话单的准确性。更进一步,由于集中控制点可以将一个代理服务请求分解为多个直接服 务请求,进而调用相应的直接服务,并根据直接服务的调用结果生成计费话 单,因此不仅适用于单纯直接服务调用的应用环境,还适用于涉及代理服务 调用的应用环境。以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何 在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本 发明的权利要求保护范围之内。
权利要求
1. 一种对服务进行计费的方法,其特征在于,包括面向服务架构SOA中的集中控制点接收服务消费方的服务请求;所述集中控制点根据所述服务请求为所述服务消费方调用被请求的服务;所述集中控制点根据所述服务的被调用结果生成计费话单。
2、 根据权利要求1所述的方法,其特征在于,所述服务请求是请求内容 为代理服务的代理服务请求,所述集中控制点根据所述服务请求为所述服务 消费方调用被请求的服务包括所述集中控制点将所述代理服务请求分解为 至少一个直接服务请求;根据所述直接服务请求为所述服务消费方调用被请 求的直接服务;所述集中控制点根据所述服务的被调用结果生成计费话单包括所述集 中控制点根据所述直接服务的被调用结果生成计费话单。
3、 根据权利要求1所述的方法,其特征在于,所述集中控制点根据所述 服务的被调用结果生成计费话单包括如果所述服务被调用成功,则所述集中控制点生成计费话单,并在其中 记录所述服务消费方的用户标识、被调用的所述服务名称以及所述服务被调 用成功的信息。
4、 根据权利要求3所述的方法,其特征在于,所述集中控制点根据所述 服务的被调用结果生成计费话单还包括如果所述服务被调用失败,则所述集中控制点生成计费话单,并在其中 记录所述服务消费方的用户标识、被调用的所述服务名称以及所述服务被调 用失败的信息。
5、 根据权利要求1至4中任意一项所述的方法,其特征在于,在所述生 成计费话单之后还包括存储所述生成的计费话单。
6、 根据权利要求5所述的方法,其特征在于,所述存储生成的计费话单 包括将所述生成的计费话单传送至计费服务器进行存储;或者将所述生成的计费话单存储在本地。
7、 根据权利要求1至4中任意一项所述的方法,其特征在于,所述集中控制点根据所述服务请求为所述服务消费方调用被请求的服务 包括所述集中控制点将所述服务请求转发给服务提供对象;接收所述服务 提供对象返回的应答消息;将所述应答消息转发给所述服务消费方;所述集中控制点根据所述服务的被调用结果生成计费话单包括所述集 中控制点根据所述应答消息的内容生成计费话单。
8、 一种SOA中的集中控制设备,其特征在于,包括请求接收单元,用于接收服务消费方的服务请求;服务调用单元,用于根据所述服务请求为所述服务消费方调用被请求的 服务;计费单元,用于根据所述服务的^皮调用结果生成计费话单。
9、 才艮据权利要求8所述的集中控制设备,其特征在于,所述接收单元接 收到的服务请求是请求内容为代理服务的代理服务请求,所述服务调用单元 包括分解单元,用于将所述代理服务请求分解为直接服务请求;以及调用 单元,用于根据所述直接服务请求为所述服务消费方调用被请求的直接服务;所述计费单元,具体用于根据所述直接服务的被调用结果生成计费话单。
10、 根据权利要求8所述的集中控制设备,其特征在于,所述计费单元 包括第一计费单元,用于在所述服务被调用成功的情况下生成计费话单,并 在其中记录所述服务消费方的用户标识、被调用的所述服务名称以及所述服 务被调用成功的信息。
11、 根据权利要求10所述的集中控制设备,其特征在于,所述计费单元还包括第二计费单元,用于在所述服务被调用失败的情况下生成计费话单,并 在其中记录所述服务消费方的用户标识、被调用的所述服务名称以及所述服 务被调用失败的信息。
12、 根据权利要求8至11中任意一项所述的集中控制设备,其特征在于, 还包括存储单元,用于将所述生成的计费话单存储在本地。
13、 根据权利要求8至11中任意一项所述的集中控制设备,其特征在于, 还包括话单传送单元,用于将所述生成的计费话单传送至远端的计费服务器。
14、 根据权利要求8至11中任意一项所述的集中控制设备,其特征在于, 所述服务调用单元包括请求转发单元,用于将所述服务请求转发给服务提 供对象;应答接收单元,用于接收所述服务提供对象返回的应答消息;应答 转发单元,用于将所述应答消息转发给所述服务消费方;所述计费单元,具体用于根据所述应答消息的内容生成计费话单。
15、 一种计费系统,其特征在于,包括权利要求13所述的集中控制设备, 以及与所述集中控制设备连接的计费服务器,其中,所述计费服务器用于存 储所述集中控制设备传送的计费话单。
16、 一种服务提供系统,包括服务提供对象,其特征在于,还包括权利 要求8至11中任一项所述的集中控制设备,所述服务提供对象用于为所述集 中控制设备提供被请求的服务。
全文摘要
本发明公开了一种对服务进行计费的方法,包括面向服务架构SOA中的集中控制点接收服务消费方的服务请求;所述集中控制点根据所述服务请求为所述服务消费方调用被请求的服务;所述集中控制点根据所述服务的被调用结果生成计费话单。本发明还公开了一种SOA中的集中控制设备,以及一种实现服务计费的方法。采用本发明提供的技术方案,能够实现对SOA下的服务使用进行计费,为有偿为外部企业提供服务奠定基础。
文档编号H04L12/14GK101282227SQ200810098129
公开日2008年10月8日 申请日期2008年5月13日 优先权日2008年5月13日
发明者任宜军, 张永苍 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1