Disclosure of Invention
The application aims to provide a contact center system based on a multi-cloud architecture and an implementation method thereof, and aims to solve the technical problem that the reliability and the availability of a contact center deployed on a single foundation cloud are insufficient.
According to one aspect of the application, a method implemented by a contact center system based on a multi-cloud architecture is provided, wherein the method comprises the following steps:
respectively deploying contact centers on a plurality of basic clouds, wherein the contact center deployed on each basic cloud independently provides services for tenants;
creating a first information comparison table and a second information comparison table, wherein the first information comparison table comprises a position identifier of each contact center and a network access address corresponding to the position identifier, the second information comparison table comprises information of all tenants and position identifiers of the contact centers corresponding to the tenants, and the position identifiers of the contact centers are used for uniquely identifying the contact centers;
and synchronizing the first information comparison table and the second information comparison table to each contact center so as to realize the deployment of the contact center system based on a plurality of basic cloud architectures.
Optionally, the method implemented by the contact center system based on the multi-cloud architecture further includes:
and determining one of the contact centers as a first contact center, and migrating the tenant served by the first contact center to a contact center normally serving the tenant through the first contact center when any one of the contact centers except the first contact center cannot serve the tenant.
Optionally, the method further comprises:
determining one of the contact centers as a second contact center, determining the second contact center as a new first contact center when the first contact center can not provide services, determining the new second contact center, and migrating the tenants served by the original first contact center to the contact center normally providing services through the new first contact center so as to continuously provide services for the tenants.
Optionally, the method further comprises:
when a contact center is deployed on a new base cloud, the position identification of the contact center and the network access address corresponding to the position identification are added in the first information comparison table, and the tenant information provided with services by the contact center and the position identification of the contact center corresponding to the tenant information are added in the second information comparison table.
Optionally, the method further comprises:
when any contact center is newly added with a tenant, the tenant information and the position identification of the contact center corresponding to the tenant information are added in the second information comparison table.
Optionally, the method further comprises:
when any contact center receives an access request, acquiring tenant information from the access request;
acquiring a position identifier of a contact center corresponding to the tenant on the basis of the tenant information and the second information comparison table;
and judging whether the position identifier of the contact center corresponding to the tenant is the same as the position identifier of the contact center, if so, allowing the access request to pass and returning an execution result.
Optionally, the method further comprises:
if the position identification of the contact center corresponding to the tenant is different from the position identification of the contact center, determining the network access address of the contact center corresponding to the tenant based on the first information comparison table;
redirecting the access request to a contact center corresponding to the tenant based on the network access address.
According to another aspect of the present application, there is also provided a contact center system based on a multi-cloud architecture, wherein the system includes:
respectively deploying contact centers independently providing services for tenants on a plurality of basic clouds, wherein each contact center comprises:
the access gateway is used for receiving an access request, acquiring tenant information from the access request and sending the tenant information to the tenant position locator, acquiring a position identifier of a contact center corresponding to the tenant, which is returned by the tenant position locator, judging whether the position identifier of the contact center corresponding to the tenant is the same as the position identifier of the contact center or not, if the position identifier of the contact center corresponding to the tenant is the same as the position identifier of the contact center, allowing the access request to pass through and returning an execution result of a service system, and if the position identifier of the contact center corresponding to the tenant is different from the position identifier of the tenant, acquiring a network access address of the contact center corresponding to the tenant from the tenant position locator, so that the access request is redirected to the contact center corresponding to the tenant;
the tenant position locator is used for receiving a query request of the access gateway, querying information from the database and returning a query result to the access gateway;
the service system is used for processing the access request forwarded by the access gateway and responding;
the database is used for synchronously storing a first information comparison table and a second information comparison table, wherein the first information comparison table comprises the position identifier of each contact center and the network access address corresponding to the position identifier, the second information comparison table comprises all tenant information and the position identifier of the contact center corresponding to each tenant, and the position identifier of the contact center is used for uniquely identifying the contact center.
Optionally, wherein the access gateway comprises at least one of:
an access gateway for receiving a network access request using an HTTP protocol;
an access gateway receiving a multimedia access request using the SIP protocol.
Optionally, the contact center system based on a multi-cloud architecture further includes:
and the scheduling system is used for determining one of the contact centers respectively deployed on the plurality of basic clouds as a first contact center, and migrating the tenant served by the contact center to the contact center normally serving the service through the first contact center when any one of the contact centers except the first contact center cannot serve the service so as to continuously serve the tenant.
Optionally, wherein the scheduling system is further configured to:
and determining one of the contact centers respectively deployed on the plurality of basic clouds as a second contact center, determining the second contact center as a new first contact center and determining a new second contact center when the first contact center cannot provide services, and migrating the tenants served by the original first contact center to the contact center normally providing services through the new first contact center so as to continuously provide services for the tenants.
Compared with the prior art, the contact center system based on the multi-cloud architecture and the implementation method thereof are provided, and contact centers which can independently provide services for tenants are respectively deployed on a plurality of basic clouds; creating a first information comparison table and a second information comparison table, wherein the first information comparison table comprises a position identifier of each contact center and a network access address corresponding to the position identifier, the second information comparison table comprises information of all tenants and position identifiers of the contact centers corresponding to the tenants, and the position identifiers of the contact centers are used for uniquely identifying the contact centers; and synchronizing the first information comparison table and the second information comparison table to each contact center so as to realize the deployment of the contact center system based on a plurality of basic cloud architectures. By the contact center system based on the multi-cloud architecture, the reliability and the usability of the operation of the contact center can be improved, contact center services with smaller time delay and better cost can be provided by adopting an active migration mode, SaaS (software as a service) providers providing the contact center services do not need to be locked by a single foundation cloud IaaS provider, and the system and the cost can be optimized.
Detailed Description
The present invention is described in further detail below with reference to the attached drawing figures.
In a typical configuration of the present application, the devices, apparatuses, or modules involved in the system components each include one or more processors (CPUs), input/output interfaces, network interfaces, and memories.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include non-transitory computer readable media (transient media), such as modulated data signals and carrier waves.
In order to further explain the technical means and effects adopted by the present application, the following description clearly and completely describes the technical solution of the present application with reference to the accompanying drawings and preferred embodiments.
Fig. 1 is a flowchart illustrating a method implemented by a contact center system based on a multi-cloud architecture according to an aspect of the present application, where the method of an embodiment includes:
s11 contact centers are respectively deployed on a plurality of basic clouds, wherein the contact centers deployed on each basic cloud independently provide services for tenants;
s12, creating a first information comparison table and a second information comparison table, wherein the first information comparison table comprises the position identification of each contact center and the network access address corresponding to the position identification, the second information comparison table comprises all tenant information and the position identification of the contact center corresponding to each tenant, and the position identification of the contact center is used for uniquely identifying the contact center;
s13, synchronizing the first information comparison table and the second information comparison table to each contact center so as to realize the deployment of the contact center system based on a plurality of basic cloud architectures.
In the present application, the base cloud is provided by an IaaS provider, the contact center is a software service running on the base cloud, and is provided by a SaaS provider, and the SaaS provider can rent the base cloud of the IaaS provider, on which the contact center is deployed. The tenant can rent a contact center deployed on a basic cloud according to needs, and provide multi-channel communication services such as voice, video, internet application apps, social media and the like for the client/user of the tenant, so that the tenant can realize multi-channel interaction with the client/user of the tenant through the contact center. Wherein the base Cloud is composed of a large number of computers or network servers based on Cloud Computing (Cloud Computing), wherein Cloud Computing is a kind of distributed Computing, and a virtual super computer is composed of a group of loosely coupled computers.
The cloud is merely an example, and other existing or future devices and/or resource sharing platforms, as applicable to the present application, are also intended to be included within the scope of the present application and are hereby incorporated by reference.
In this embodiment, in step S11, the SaaS provider may rent IaaS services to several IaaS providers, and deploy contact centers on several base clouds respectively, where the contact center deployed on each base cloud may provide various services to tenants independently.
Wherein, each contact center deployed on the basic cloud has a position identification (SiteID) and a network access address. Each tenant of a leased contact center providing service to its customers/users has a corresponding location information identifier (HomeSiteID) to mark which base cloud the contact center deployed currently provides contact center service to the tenant.
In this embodiment, after the SaaS provider completes the deployment of the contact centers on the respective base clouds, in step S12, a first information comparison table and a second information comparison table are created, where the first information comparison table includes siteids of all contact centers deployed on the base clouds and a network access address corresponding to a location identifier of each contact center, and the SiteID of each contact center is used to uniquely identify the contact center; the second information look-up table contains all tenant information served by each contact center. The tenant is an enterprise or an organization object which provides services to its customers/users by using a contact center, and the tenant information generally includes a tenant ID, an organization name, physical location information, a domain name, a contact, an entity type, an organization architecture, personnel information, and the like, and a homesited ID corresponding to each tenant, that is, a sited ID of the contact center which currently provides services to the tenant.
In this embodiment, after the SaaS provider completes the creation of the first information comparison table and the second information comparison table, in step S13, the first information comparison table and the second information comparison table are synchronized to each contact center, so as to implement the deployment of the contact center system based on a plurality of infrastructure cloud architectures.
Wherein the data of the contact centers deployed on each base cloud are synchronized with each other. After the first information comparison table and the second information comparison table are synchronized to each contact center, the contact centers are transparent to access, namely, a tenant does not need to confirm which contact center provides service currently, and when the current contact center providing service to the tenant needs to be switched, the address of an access point, the account number or the service is not needed to be switched manually.
For example, after the SaaS provider completes the contact center system deployment based on the multi-cloud architecture according to the steps from S11 to S13, the SaaS provider can rent a contact center to a tenant according to the tenant needs, and provide a contact center service to the tenant. When a client/user of a tenant accesses the contact center through the DNS by the client, the DNS provides network access address resolution of one or more basic clouds to the client according to a preset mechanism, and the client determines one basic cloud access. If the basic cloud cannot be accessed at all due to reasons, the client selects from the network access address resolution returned by the DNS and accesses another basic cloud. If the access request is available, the gateway of the contact center deployed on the basic cloud determines the HomeSiteID corresponding to the tenant according to the tenant information in the access request and the second information comparison table, and judges whether the HomeSiteID is the same as the SiteID of the contact center deployed on the basic cloud. If the two contact centers are the same, the gateway of the contact center deployed on the basic cloud transmits the access request to the contact center for internal response and processing, otherwise, according to the record in the first information comparison table, the network access address corresponding to the SiteID of the contact center deployed on the other basic cloud which is consistent with the HomeSiteID corresponding to the tenant is returned to the client, and the client redirects the network access address according to the network access address and sends the access request to the redirected network access address.
Optionally, the method implemented by the contact center system based on the multi-cloud architecture further includes:
s14 (not shown) determines one of the contact centers as a first contact center, and when any contact center other than the first contact center cannot provide the service, migrates the tenant served by the first contact center to a contact center normally providing the service, so as to continuously provide the service to the tenant.
For example, after factors such as reliability and availability of each base cloud are integrated, the contact center deployed on the base cloud with the highest reliability and availability is selected as the first contact center; one of the contact centers deployed on the base clouds is set as the first contact center (i.e., Leader) by an election algorithm, such as the election function of the etcd software. When any contact center except the first contact center can not provide service, the first contact center synchronously updates the HomeSiteID of the contact center which can not provide service and corresponds to the corresponding tenant in the second information comparison table to the SiteID of the contact center which can normally provide service according to a preset strategy, and the tenant on the contact center which can not provide service is migrated to the contact center which normally provides service so as to continuously provide service for the tenant. The preset policy may be to determine a migration path according to a preset condition, for example: and determining to temporarily and automatically allocate an alternative contact center or appoint the alternative contact center according to the scale and type of resources such as operator lines leased by the tenants, the geographic positions of the tenants, the service level definition of the tenants and the like.
For example, although the current contact center corresponding to the tenant does not have a fault, the physical distance is long, the line quality is not the best, and the contact center does not provide the tenant with better service, so that the first contact center can actively transfer the tenant to the contact center which can provide the tenant with the best service according to the preset condition, and provide the tenant with the contact center service with smaller time delay and higher cost.
Optionally, the method further comprises:
s15 (not shown) determines one of the contact centers as a second contact center, and when the first contact center fails to provide service, determines the second contact center as a new first contact center, and determines a new second contact center, and migrates the tenants served by the original first contact center to the contact center normally providing service through the new first contact center, so as to continuously provide service to the tenants.
Wherein after one of the contact centers deployed on the plurality of base clouds is determined to be the first contact center, a second contact center can be selected from the remaining contact centers. When the first contact center can not provide service for reasons, the second contact center can be determined as a new first contact center, the new second contact center is determined according to a preset strategy, the tenants served by the original first contact center are migrated to the contact center which normally provides service through the new first contact center, and the HomeSiteID of the original first contact center corresponding to the corresponding tenants in the second information comparison table is synchronously updated to the SiteID of the contact center which can normally provide service, so that the service is continuously provided for the tenants.
Optionally, the method further comprises:
s16 (not shown), when a contact center is deployed on a new base cloud, the location identifier of the contact center and the network access address corresponding to the location identifier are added to the first information comparison table, and the tenant information served by the contact center and the location identifier of the contact center corresponding to the tenant information are added to the second information comparison table.
Wherein, if the service needs, the SaaS provider needs to rent a new basic cloud to the new IaaS provider, and deploy a contact center on the new basic cloud. After the contact center is deployed on the new base cloud, the SiteID of the contact center and the network access address corresponding to the SiteID are added into a first information comparison table, tenant information provided by the contact center and the SiteID of the contact center serving as the HomeSiteID of the contact center are added into a second information comparison table, and then data synchronization is completed with the contact centers deployed on the original base clouds, so that deployment of the contact center on the new base cloud is completed.
Optionally, the method further comprises:
s17 (not shown), when a tenant is newly added to any contact center, adding the tenant information and the location identifier of the contact center corresponding to the tenant information to the second information comparison table.
If a new tenant is added to a contact center deployed on a certain basic cloud, the Home Site ID corresponding to the tenant can be defaulted to be the Site ID of the contact center, and Site IDs of contact centers deployed on other basic clouds can also be designated as the Home Site ID corresponding to the tenant. The new tenant information and the HomeSiteID corresponding to the tenant should be added to the second information comparison table, and data synchronization with the contact centers deployed on the base clouds is completed.
Optionally, the method further comprises:
s18 (not shown), when any contact center receives the access request, obtaining tenant information from the access request;
s19 (not shown), acquiring a location identifier of a contact center corresponding to the tenant based on the tenant information and the second information look-up table;
s110 (not shown) determines whether the location identifier of the contact center corresponding to the tenant is the same as the location identifier of the contact center, and if so, allows the access request to pass through and returns an execution result.
When a client sends an access request to a contact center deployed on a certain basic cloud according to network access address resolution returned by a DNS, a gateway of the contact center receives the access request and acquires tenant information from the access request, wherein the access request can be based on a standard protocol (such as an HTTP protocol and/or an SIP protocol); according to the tenant information, the Home Site ID corresponding to the tenant is searched out from the second information comparison table; and then comparing whether the Home Site ID is the same as the Site ID of the contact center, if so, indicating that the contact center is the current contact center providing service for the tenant, allowing the access request to pass through by a gateway of the contact center, and returning an execution result to the client after internal processing of the contact center.
Optionally, the step S110 further includes:
if the position identification of the contact center corresponding to the tenant is different from the position identification of the contact center, determining the network access address of the contact center corresponding to the tenant based on the first information comparison table;
redirecting the access request to a contact center corresponding to the tenant based on the network access address.
If the Home Site ID is different from the Site ID of the contact center, it indicates that the contact center is not the current contact center providing services to the tenant, and the gateway of the contact center can find the network access address corresponding to the contact center that is the same as the Home Site ID from the first information comparison table according to the Home Site ID of the tenant acquired from the access request, and redirect the access request to the network access address.
Fig. 2 illustrates a schematic diagram of a contact center system based on a multi-cloud architecture according to another aspect of the present application, wherein the system of an embodiment comprises:
respectively deploying contact centers independently providing services for tenants on N basic clouds, wherein each contact center comprises:
the access gateway 21 is configured to receive an access request, acquire tenant information from the access request, send the tenant information to a tenant position locator, acquire a position identifier of a contact center corresponding to the tenant, which is returned by the tenant position locator, and determine whether the position identifier of the contact center corresponding to the tenant is the same as the position identifier of the contact center, if the position identifier of the contact center is the same as the position identifier of the contact center, allow the access request to pass through and return an execution result of the service system, and if the position identifier of the contact center is not the same as the position identifier of the contact center corresponding to the tenant, acquire a network access address of the contact center corresponding to the tenant from the tenant position locator, so as to redirect the access request to the;
the tenant position locator 22 is used for receiving a query request of the access gateway, querying information from the database and returning a query result to the access gateway;
the service system 23 is used for processing the access request forwarded by the access gateway and responding;
and the database 24 is configured to synchronously store a first information comparison table and a second information comparison table, where the first information comparison table includes a location identifier of each contact center and a network access address corresponding to the location identifier, and the second information comparison table includes information of all tenants and a location identifier of a contact center corresponding to each tenant, where the location identifier of the contact center is used to uniquely identify the contact center.
When an access gateway 21 of a contact center deployed on a certain basic cloud receives an access request sent by a client/user of a tenant through a client, the access gateway 21 acquires tenant information from the access request and sends an inquiry request containing the tenant information to a tenant position locator 22, the tenant position locator 22 receives the inquiry request sent from the access gateway 21, inquires a database 24 about a homesite id corresponding to the tenant information (i.e., the site id of the contact center which is to provide service to the tenant), and returns the homesite id corresponding to the tenant information to the access gateway 21, the access gateway 21 determines whether the homesite id is the same as the site id of the contact center, if the homesite id is the same as the site id of the contact center, the access request is allowed to pass through, and an execution result of the service system is returned, namely, the access gateway 21 sends the access request to a service system 23, the service system processes the access request and returns the execution result to the access gateway 21, and the access gateway 21 sends the execution result to the client.
In this application, the access request sent by the client may be an HTTP (hypertext transfer Protocol) Protocol providing internet application, or may also be an SIP (Session Initiation Protocol) Protocol providing internet voice communication, where both the HTTP Protocol and the SIP Protocol support a redirection function of the access request. Thus, the access gateway of the contact center deployed on each base cloud supports access requests employing different protocols.
Optionally, wherein the access gateway comprises at least one of:
an access gateway for receiving a network access request using an HTTP protocol;
an access gateway receiving a multimedia access request using the SIP protocol.
For example, in a contact center deployed on each base cloud, an access request related to internet application is processed through an access gateway AG, and an access request related to network voice such as VoIP is processed through an access gateway EDGE.
Optionally, as an embodiment shown in fig. 3, the system further includes:
and the scheduling system 31 is configured to determine one of the contact centers respectively deployed on the multiple base clouds as a first contact center, and when any one of the contact centers except the first contact center cannot provide services, migrate a tenant served by the first contact center to a contact center normally providing the services through the first contact center so as to continuously provide the services to the tenant.
In a distributed system, a RAFT consensus protocol is usually adopted to elect one of the sites as a leader (leader), the leader performs important functions such as data update, and then other sites follow up to achieve data synchronization with the leader.
The scheduling system 31 is deployed across the multiple base clouds, for example, a highly available key value storage system (etcd) based on a RAFT protocol is deployed, one of the contact centers respectively deployed on the multiple base clouds can be elected as a first contact center (i.e., leader) in advance, a migration policy is preset, and when the scheduling system 31 confirms that any contact center other than the first contact center cannot provide services based on changes of etcd data, tenants served by the contact center are automatically migrated to a contact center normally providing services through the first contact center according to the migration policy, so as to continuously provide services to the tenants.
Optionally, the scheduling system 31 is further configured to determine one of the contact centers respectively deployed on the multiple base clouds as a second contact center, determine the second contact center as a new first contact center when the first contact center cannot provide services, determine a new second contact center, and migrate the tenant served by the original first contact center to a contact center normally providing services through the new first contact center, so as to continuously provide services to the tenant.
Based on deployed etcd, the scheduling system 31 elects one of the contact centers deployed on the plurality of foundation clouds as a first contact center in advance, and elects the other contact center as a second contact center in advance, and presets a migration policy, when the scheduling system 31 confirms that the first contact center cannot provide services based on change of etcd data, the second contact center is determined as a new first contact center, the new second contact center is determined, and tenants served by the original first contact center are automatically migrated to the contact center which normally provides services through the new first contact center according to the migration policy, so that the tenants are continuously provided with services.
By adopting the method of the embodiment, the deployment of the contact center system based on the multi-cloud architecture can be realized at relatively low cost, the technical transformation difficulty is small, only the access gateway of the contact center deployed on the basic cloud is needed to judge whether the HomeSiteID corresponding to the tenant is the same as the SiteID of the contact center, and the transparent access to the contact center is realized by utilizing the redirection function of the existing standard protocol. The contact center system based on the multi-cloud architecture further improves the reliability and the availability of the contact center for providing services, can be used for disaster backup, can automatically realize the migration of all tenants of the contact center services after a certain basic cloud or the contact center deployed on the certain basic cloud fails, and has the advantages that the data among the contact centers deployed on the basic clouds are completely synchronous, the migration process of the tenants is simple and quick, and the contact center services provided for the tenants are almost not influenced.
The contact center system based on the multi-cloud architecture can also improve the access response speed, and the contact centers distributed on a plurality of basic clouds in different physical positions can provide services with shorter distance and shorter delay for tenants nearby, so that better media service quality is achieved.
According to yet another aspect of the present application, there is also provided a computer readable medium having computer readable instructions stored thereon which are executable by a processor to implement the foregoing method.
According to another aspect of the present application, there is also provided a contact center system based on a multi-cloud architecture, wherein the system includes:
one or more processors; and
a memory storing computer readable instructions that, when executed, cause the processor to perform operations of the method as previously described.
For example, the computer readable instructions, when executed, cause the one or more processors to: respectively deploying contact centers on a plurality of basic clouds; creating a first information comparison table and a second information comparison table; and synchronizing the first information comparison table and the second information comparison table to each contact center.
It will be evident to those skilled in the art that the invention is not limited to the details of the foregoing illustrative embodiments, and that the present invention may be embodied in other specific forms without departing from the spirit or essential attributes thereof. The present embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims rather than by the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein. Any reference sign in a claim should not be construed as limiting the claim concerned. Furthermore, it is obvious that the word "comprising" does not exclude other elements or steps, and the singular does not exclude the plural. A plurality of units or means recited in the apparatus claims may also be implemented by one unit or means in software or hardware. The terms first, second, etc. are used to denote names, but not any particular order.