The present invention relates to communication technologies, and in particular, to a method, an apparatus, and a system for selecting a service.
With the development and maturity of packet technologies, the telecom network evolves from the traditional circuit switched network to a broadband packet switched network. In the evolution from circuit switching to soft-switching, and from soft-switching to IP Multimedia Subsystem (IMS), the telecom network has absorbed many excellent IT technologies such as the Internet Protocol (IP) technologies, distributed networking technologies, and Session Initiation Protocol (SIP) technologies. Currently, the convergence of IMS and Internet becomes a focus of research and development. Web services relate to a technology intended to serve different platforms and enable different application systems of different platforms to work collaboratively. The technology has become one of the popular topics in the convergence of IMS and Internet. Web services are accessed through an IMS network, and the IMS network can use various services provided by the Web services. However, Web services need to collaborate with various services provided by the IMS to provide integrated services, and the services or capabilities of an IMS network or another communication network need to be opened to a third-party developer by means of Web services, which have attracted a lot of attention and efforts of research in the telecom field currently.
The Open Service Architecture (OSA)/Parlay is an organization that researches on how to open telecom capabilities through a standard Web service interface in the conventional art.
Embodiments of the present invention provide a method, an apparatus, and a system for selecting a service, with a view to selecting a proper service for an external application according to a policy and invoking services of a communication network more conveniently and accurately.
To achieve the above objective, an embodiment of the present invention provides a service selection method, where the service selection method is applied in an OSA and includes:
receiving a service invoking request message sent by an external application, where the service invoking request message carries service information about a service to be invoked;
obtaining, according to the service information, policy information corresponding to the service to be invoked; and
selecting, according to the policy information, a service provision entity to invoke the service.
An embodiment of the present invention also provides an open service entity, where the open service entity is applied in an OSA and includes:
a receiving module, configured to receive a service invoking request message sent by an external application, where the service invoking request message carries service information about a service to be invoked;
an obtaining module, configured to obtain, according to the service information received by the receiving module, policy information corresponding to the service to be invoked; and
a selecting module, configured to select, according to the policy information obtained by the obtaining module, a service provision entity to invoke the service.
An embodiment of the present invention provides a policy provision entity, where the policy provision entity is applied in an OSA and includes:
a providing module, configured to provide policy information for an open service entity.
An embodiment of the present invention provides a service selection system, where the service selection system is applied in an OSA and includes:
an open service entity, configured to: obtain, from a policy provision entity and according to service information, policy information corresponding to a service to be invoked, select, according to the policy information corresponding to the service to be invoked, a service provision entity, and instruct the service provision entity to invoke the service; and
the policy provision entity, configured to provide the policy information for the open service entity.
With the method, apparatus, and system for selecting a service according to embodiments of the present invention, the policy information corresponding to the service to be invoked is obtained according to the service information carried in the received service invoking request message, and a service provision entity for invoking the service is selected according to the policy information, and therefore, a proper service is selected for an external application according to the policy, and the services of the communication network are invoked more conveniently and accurately.
The technical solution under the present invention is detailed below with reference to the accompanying drawings and exemplary embodiments.
Step 101: Receive a service invoking request message sent by an external application, wherein the service invoking request message carries service information about a service to be invoked.
When an external application accesses a service or capability of a communication network through Web services, the external application sends a service invoking request message to the open service entity first. The open service entity receives the service invoking request message sent by the external application. The service invoking request message carries service information about the service to be invoked. The external application may be any application that needs to access the open service or capability of the communication network through Web services. The external application may be a device, a system, or an application program, such as a Web page, in a device or system. The open service entity may be an open service functional unit, or an open capability gateway defined by the OSA/Parlay, or a Service Delivery Platform (SDP) defined by the BEA/Oracle, or another device that provides telecom network capabilities or services through an open Web service interface. The service to be invoked may be a service or capability, which is to be invoked, of a communication network. The service invoking request message is a SOAP message compliant with the Web service interface, or a message that takes on a Representation State Transfer (REST) style, for example, an HTTP Get request sent by a subscriber to the Web server when the subscriber browses a Web page. The service information carried in the service invoking request message may be any information about the service to be invoked. For example, when an external application expects to invoke a call service, the service invoking request message sent by the external application to the open service entity carries call service information and identifiers of the calling party and the called party.
Step 102: Obtain, according to the service information, policy information corresponding to the service to be invoked.
After receiving the service invoking request message sent by the external application, the open service entity obtains, according to the service information carried in the request, the policy information corresponding to the service to be invoked. The open service entity may obtain the policy information before invoking the service or at the time of invoking the service. The open service entity may obtain the policy information actively or passively. The policy information may be preset by the policy provision entity. Nevertheless, the policy provision entity may also not preset policy information. Specifically, the policy provision entity may be a policy provision functional unit. In the case that the open service entity obtains the policy information before invoking the service, if the policy information is preset by the policy provision entity, the open service entity may receive the policy information from the policy provision entity passively; if no policy information is preset by the policy provision entity, the open service entity may send a policy request to the policy provision entity to obtain the policy information actively. In the case that the open service entity obtains the policy information at the time of invoking the service, if the policy information is preset by the policy provision entity, the open service entity may receive the policy information from the policy provision entity passively; if no policy information is preset by the policy provision entity, the open service entity may send a policy request to the policy provision entity to obtain the policy information actively.
Policy information includes subscription information of the initiator of the external application, information about the home network of the communication network subscriber involved in the service, and information about differences between service provision entities. That is, the policy information may be subscription information of the initiator of the external application that invokes the service, or service home information of the session parties involved in the service in the communication network, or information about differences between service provision entities, for example, charging information and load information. In the case that the policy information is the subscription information of the initiator of the external application, the open service entity may subscribe to a specific type of service of a specific network (such as a network of a specific operator or a specific type) for the external application that invokes the service. In the case that the policy information is the information about the home network of the communication network subscriber involved in the service, the home network of the session parties may be used as a service provision entity according to the service home information of the session parties involved in the service in the communication network. If the policy information is the information about differences between the service provision entities, the open service entity may subscribe to the service selected according to the difference information or dynamically specify such a service for the external application, for example, subscribe to the cheapest service or dynamically specify the service with the lightest load. The policy mentioned in this embodiment may be in any of the following forms:
Invoke the service provided by XXX, if the initiator of the external application is XXX and the invoked service is XXX;
Invoke the service provided by XXX, if the invoked service is XXX and the home domain of the session parties involved in the invoking input parameters is XXX;
Invoke the service provided by XXX which involves the cheapest charge in service provision, if the invoked service is XXX;
If the initiator of the external application is XXX, the invoked service is XXX, and the history record of the external application invoking this service is “use the service provided by XXX”, still invoke the service provided by XXX; or
Invoke the service provided by the XXX which involves the lightest load in the service provision, if the invoked service is XXX.
It should be noted that, the policy mentioned in this embodiment includes but is not limited to the above mentioned examples.
The following is an example of creating a session when the external application invokes a call service: If the external application expects to invoke the call service, a call from subscriber A to subscriber B is created, but multiple different networks such as the IMS network and other NGN networks are available for invoking the call service, or multiple networks of the same nature but in different geographic areas are available. With the OSA/Parlay architecture in the conventional art, it is impossible to select the network for invoking the service. After the subscriber originates a call, a local call may be changed as a toll call or even an international toll call, which generates extra charges for the subscriber. With the method according to an embodiment of the present invention, the service invoking request message sent by the external application carries the information about the call service to be invoked, the identifier of the calling party, and the identifier of the called party. According to the policy information in Example 2 as stated above, the open service entity may select the home network of subscriber A or subscriber B for providing the call service, and route the service invoking request message to this network. In this way, the most proper service is selected for the external application to complete the call service. In another example, when the external application invokes a group service, the external application uses the group service to create a group, and then expects to use the group service maintenance function to maintain the group. With the OSA/Parlay architecture in the conventional art, no policy is available for the selection. At the time of maintaining the group through an open service interface, it is probable that a group service provided by another network is selected, and the service continuity cannot be ensured. With the method provided in this embodiment, however, the open service entity may select the service provision entity that previously invokes the service in view of the history record of invoking the group service of the external application according to the policy information in Example 4 as stated above, thus the service continuity will be ensured.
Step 103: Select, according to the policy information, a service provision entity to invoke the service.
After obtaining the policy information corresponding to the service to be invoked, the open service entity selects, according to the policy information, a service provision entity to invoke the service. Although this embodiment supposes that at least two service provision entities corresponding to the service invoked by the external application exist, it should be noted that the technical solution according to embodiments of the present invention is also applicable to the scenario where only one service provision entity exists. In the case that only one service provision entity exists, the open service entity judges, according to the policy information provided by the policy provision entity, whether the service provision entity corresponds to the policy information. If the service provision entity corresponds to the policy information, the open service entity selects this service provision entity to invoke the current service; if the service provision entity does not correspond to the policy information, the open service entity does not select this service provision entity to invoke the service. It is assumed that a call service is invoked. When the external application creates a call between subscriber A and subscriber B, the service invoking request message sent by the external application carries the information about the call service to be invoked, the identifier of the calling party, and the identifier of the called party. The open service entity obtains, according to the service information, the policy information corresponding to the call service. The policy information may be “the invoked service is a call service and the home domain of the session parties involved in the invoking input parameters is the home network of subscriber B”. Therefore, the open service entity selects, according to the policy information, the home network of subscriber B for providing the call service, and then routes the service invoking request message to this network. In this way, the call service between subscriber A and subscriber B is invoked.
The following step may also be performed after step 103: Sending a service invoking interface protocol message defined by the service provision entity to the service provision entity, and the service provision entity invokes the service according to the received service invoking interface protocol message. After selecting a service provision entity to invoke a service, the open service entity sends a service invoking interface protocol message to this service provision entity. This message is a message that complies with the service invoking interface protocol of the service provision entity, for example, an HTTP request or an SIP request. According to the received service invoking interface protocol message, the service provision entity selects the corresponding interface, and completes the service invoking process.
In this embodiment, the open service entity obtains, according to the service information carried in the service invoking request message, policy information corresponding to the service to be invoked, and selects, according to the policy information, a service provision entity to invoke the service, and therefore, a proper service is selected for the external application according to the policy, and the services or capabilities of the communication network are invoked more conveniently and accurately.
It can be known from the contents introduced above that, the policy information corresponding to the service to be invoked may be provided by the policy provision entity for the open service entity beforehand, or be requested by the open service entity actively, from the policy provision entity, after the open service entity receives the service invoking request message. That is, the policy information corresponding to the service to be invoked may be obtained by using two methods. The two methods are different in terms of specific operations.
When the open service entity obtains beforehand, according to the policy information provided by the policy provision entity, the policy information corresponding to the service to be invoked, the following step may also be performed before step 101: Loading the policy information preset by the policy provision entity. That is, before the open service entity receives the service invoking request message sent by the external application, the open service entity loads the policy information preset by the policy provision entity, and stores the loaded policy information. After receiving the service invoking request message, the open service entity can retrieve the stored policy information at any time, and select, among the retrieved policy information, the policy information corresponding to the service to be invoked.
The policy provision entity may preset multiple policies for the service to be invoked by the external application. In this case, the above mentioned step 102 may specifically be: obtaining, according to the set priority of policies and the service information, the policy information corresponding to the service to be invoked. The preset information about multiple policies includes the set priority of the policies. After receiving the service invoking request message, the open service entity retrieves the stored policy information corresponding to the service to be invoked. If the policy information includes multiple policies, the open service entity selects, according to the set priority of policies, the service provision entity by applying the policy of the highest priority first. If more than one service provision entity is selected according to the policy of the highest priority, the open service entity applies the policy of the next priority until a unique service provision entity is selected. The call service is still taken as an example here. It is assumed that at the time of selecting the service provision entity according to the home network of subscriber A, multiple service provision entities of the same type (for example, in Shenzhen, the service may be provided by networks of China Telecom, China Mobile, and China Unicom, or even may be provided by different types of networks such as CDMA, GSM, and PSTN) exist in the home network. The open service entity applies the policy of the next priority until a unique service provision entity is selected. For example, the open service entity may select the service provision entity more precisely according to the information about the initiator of the external application or the information about the invoked service.
The open service entity may obtain the policy information by sending a policy request message to the policy provision entity. In this case, step 102 above may specifically be:
Sending a policy request message to the policy provision entity according to the service information, where the policy request message carries invoking information and service information. If multiple service provision entities of the same type are available for invoking the service, and no policy for selection exists in the open service entity, or, if the policy for selection is not related to the currently invoked service, the open service entity sends a policy request to the policy provision entity actively after receiving the service invoking request message. That is, according to the service information carried in the request, the open service entity sends a policy request message to the policy provision entity. The policy request message carries invoking information and service information. The invoking information may be information about the initiator of the external application that invokes this service, or information about the session parties involved in the service.
The open service entity receives a policy response message sent by the policy provision entity. The policy response message carries the policy information corresponding to the service to be invoked. After receiving the policy request message, the policy provision entity responds to the policy request message sent by the open service entity. That is, the policy provision entity selects, according to the invoking information and the service information in the request, a proper policy for the service to be invoked, and then encapsulates the provided policy information into the policy response message sent to the open service entity. The open service entity receives the policy response message returned by the policy provision entity, where the policy response message carries the policy information corresponding to the service to be invoked.
The open service entity obtains the policy information according to the received policy response message. After receiving the policy response message, the open service entity obtains the policy information carried in the policy response message. The policy information may be based on the subscription information of the initiator of the external application, or the service home information of session parties involved in the service in the communication network, or information about differences between service provision entities.
It should be noted that when the open service entity obtains the policy information passively or actively, the policy information may also be obtained at different time. That is, the open service entity may obtain the policy information before the service is invoked or at the time of invoking the service. If the policy provision entity has set the policy information before the open service entity invokes the service, the open service entity applies the first obtaining method mentioned above, namely, receives the policy information from the policy provision entity passively. If the policy provision entity has not set the policy information before the open service entity invokes the service, the open service entity applies the second obtaining method mentioned above, namely, sends a policy request to the policy provision entity to obtain the policy information actively. If the policy provision entity sets the policy information when the open service entity invokes the service, the open service entity applies the first obtaining method mentioned above, namely, receives the policy information from the policy provision entity passively. If the policy provision entity does not set the policy information when the open service entity invokes the service, the open service entity applies the second obtaining method above mentioned, namely, sends a policy request to the policy provision entity to obtain the policy information actively.
With the service selection method provided in this embodiment, the open service entity obtains, according to the service information carried in the service invoking request message, policy information corresponding to the service to be invoked, and selects, according to the policy information, a service provision entity to invoke the service, and therefore, a proper service is selected for the external application according to the policy, the services or capabilities of the communication network are invoked more conveniently and accurately, and the service continuity is ensured.
Step 201: The external application sends a service invoking request message to an open service functional unit.
When the external application accesses the services or capabilities of the communication network through Web services, the external application sends a service invoking request message to the open service functional unit first. The service invoking request message carries service information about the service to be invoked. The service invoking request message is a SOAP message compliant with the Web service interface, or a message that takes on a REST style, for example, an HTTP Get request sent by a subscriber to the Web server when the subscriber browses a Web page.
Step 202: The open service functional unit sends a policy request message to the policy provision functional unit.
After receiving the service invoking request message, the open service functional unit judges that no policy information is preset by the policy provision functional unit or delivered to the open service functional unit. Therefore, the open service functional unit sends a policy request message to the policy provision functional unit, requesting policy information. If it is judged that the policy information is already preset by the policy provision functional unit and delivered to the open service functional unit actively, steps 202-203 are skipped, and the process proceeds to step 204 directly. The policy request message sent by the open service functional unit carries invoking information and service information. The invoking information may be information about the initiator of the external application that invokes the service, or information about the session parties involved in the service.
Step 203: The policy provision functional unit returns a policy response message to the open service functional unit.
The policy provision functional unit responds to the policy request message after receiving the policy request message. That is, the policy provision functional unit selects, according to the invoking information and the service information in the request, a proper policy for the service to be invoked, and then encapsulates the policy information into a policy response message and returns the policy response message to the open service functional unit.
Step 204: The open service functional unit selects a service provision functional unit according to the policy information.
The open service functional unit receives the policy response message returned by the policy provision functional unit. The policy response message carries the policy information corresponding to the service to be invoked. The open service functional unit selects a service provision functional unit according to the policy information. There may be more than one service provision functional unit. According to the policy information, the open service functional unit selects one of the service provision functional units to invoke the service. It should be noted that, there may be a special scenario that only one service provision functional unit exists, and the technical solution under the present invention is also applicable to this special scenario.
Step 205: The open service functional unit sends a service invoking interface protocol message to the service provision functional unit.
The open service functional unit selects one of the service provision functional units, and sends a service invoking interface protocol message to this service provision functional unit. The service invoking interface protocol message is defined by the service provision functional unit. A service invoking indication message carries service information.
Step 206: The service provision functional unit invokes the service according to the service invoking interface protocol message.
According to the received service invoking interface protocol message, the service provision functional unit selects the interface corresponding to the service provision functional unit, and completes the process of invoking the service indicated in the service information.
With the service selection method provided in this embodiment, the open service functional unit obtains, according to the service information carried in the service invoking request message, policy information corresponding to the service to be invoked, and selects, according to the policy information, a service provision functional unit to invoke the service, and therefore, a proper service is selected for the external application according to the policy, the services or capabilities of the communication network are invoked more conveniently and accurately, and the service continuity is ensured.
The policy information may be preset by the policy provision entity. Before receiving the service invoking request message sent by the external application, the open service entity pre-stores the policies actively delivered by the policy provision entity as static policy information, which will be retrieved when necessary. If no policy information is preset by the policy provision entity and no policy is available for selection, the open service entity sends a policy request to the policy provision entity to obtain the policy information. The selecting module 303 is configured to select, according to the policy information obtained by the obtaining module 302, a service provision entity to invoke the service.
In the case that the policy information is preset by the policy provision entity and delivered to the open service entity actively, the open service entity has another structure.
In the case that the service provision entity requests the policy information from the policy provision entity actively, the open service entity has another structure.
Further, the interface protocol between the open service entity and the policy provision entity is the Simple Object Access Protocol (SOAP), the Extensible Markup Language Application Programming Interface (XML API) protocol, the Diameter protocol, or the Hyper Text Markup Language (HTML) protocol.
In an open service entity provided in this embodiment, the obtaining module obtains, according to the service information carried in the service invoking request message, policy information corresponding to the service to be invoked, and the selecting module selects, according to the policy information, a service provision entity to invoke the service, and therefore, a proper service is selected for the external application according to the policy, the services or capabilities of the communication network are invoked more conveniently and accurately, and the service continuity is ensured.
In the case that the policy provision entity presets the policy information and delivers the policy information to the open service entity actively, the policy provision entity may have another structure.
It should be noted that, in the service selection system provided in this embodiment, the open service entity may include any open service entity shown in
The interface protocol between the open service entity 1 and the policy provision entity 2 is SOAP, XML API, Diameter, or HTTP. The interface between the open service entity 1 and the policy provision entity 2 may be a direct interface or an indirect interface or even an internal interface, namely, the policy provision entity 2 and the open service entity 1 are located in the same physical entity. The interface may be a SOAP interface, an XML API interface, a Diameter interface, or an HTTP interface.
The interface protocol between the open service entity 1 and the service provision entity 3 is the protocol corresponding to the network that provides the service to be invoked, namely, the interface protocol depends on the network that provides the service to be invoked. The interface between the service provision entity 3 and the open service entity 1 depends on the service provision network. For example, if the service provision network is a PSTN, the interface is an INAP interface; if the service provision network is a PSTN or IMS network, the interface is a SIP or HTTP interface.
The interface protocol between the open service entity 1 and the external application 4 is SOAP or a protocol compliant with the REST style. This interface is a Web service interface, such as a SOAP interface, or a REST interface.
With the service selection system provided in this embodiment, the external application sends a service invoking request message that carries service information; the open service entity obtains, from the policy provision entity and according to the received service information, policy information corresponding to the service to be invoked, and selects, according to the policy information, a service provision entity to invoke the service, and therefore, a proper service is selected for the external application according to the policy, the services or capabilities of the communication network are invoked more conveniently and accurately, and the service continuity is ensured.
Finally, it should be noted that, the above embodiments are merely provided for describing the technical solutions of the present invention, but not intended to limit the present invention. It is apparent that persons skilled in the art can make various modifications and variations to the invention without departing from the spirit and scope of the invention. The present invention is intended to cover the modifications and variations provided that they fall within the scope of protection defined by the following claims or their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
200810222933.X | Sep 2008 | CN | national |
This application is a continuation of International Application No. PCT/CN2009/071987, filed on May 26, 2009, which claims priority to Chinese Patent Application No. 200810222933.X, filed on Sep. 23, 2008, both of which are hereby incorporated by reference in their entireties.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2009/071987 | May 2009 | US |
Child | 13069857 | US |