Container application for the microservices front-end desktop
By providing container applications in a contact center environment, it solves the problem that software developers have difficulty integrating new applications, and achieves efficient interaction and integration of applications, improving operational efficiency and user experience.
Patent Information
- Application Number
- CN202280044287.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-06-22
- Filing Date
- 2022-05-25
- Publication Date
- 2025-06-03
- Estimated Expiration
- 2042-05-25
AI Technical Summary
In a contact center environment, software developers have difficulty integrating newly developed applications with existing software suites, resulting in overall operational inefficiency.
Interaction and integration between applications are achieved by displaying user interfaces on multiple workstations, receiving and managing multiple software applications, and providing access to these applications through container applications.
It realizes container application integration of the microservice front-end desktop platform in the contact center environment, improves application access efficiency and user experience, and simplifies the software development and integration process.
Smart Images

Figure CN117561499B_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] This application claims priority to U.S. Patent Application No. 17 / 354,700, filed on June 22, 2021, which is incorporated herein by reference. Technical Field
[0003] The present disclosure generally relates to methods and systems for providing container applications, and more particularly, to methods and systems for providing container applications for a microservices front - end desktop platform in a contact center environment or any other environment where applications interact with each other and are centered around customer or user interactions. Background Art
[0004] For large enterprise organizations with numerous customers, customer service is an important aspect of business operations. Customers generally expect service requests to be processed promptly and accurately, and if an enterprise organization fails to provide such customer service, it may have a negative impact on the organization's reputation.
[0005] Many customer service requests are performed online via the Internet. Enterprise organizations can utilize a contact center to handle such requests, which can conveniently provide various service applications from different departments of the organization. However, due to the diversity of applications and the scale of overall operations, software developers may encounter difficulties in integrating newly developed applications with other parts of the software suite that serves the contact center.
[0006] Therefore, there is a need for methods and systems for providing container applications for a microservices front - end desktop platform in a contact center environment. Summary of the Invention
[0007] The present disclosure particularly provides various systems, servers, devices, methods, media, programs, and platforms for providing container applications for a microservices front - end desktop platform in a contact center environment through one or more of its various aspects, embodiments, and / or specific features or sub - components.
[0008] According to one aspect of the present disclosure, a method for providing container applications for a microservices front-end desktop platform in a contact center environment is provided. The method is implemented by at least one processor. The method includes: displaying a user interface on each of a plurality of workstations by the at least one processor; receiving a first software application from a first user via the user interface by the at least one processor; receiving a second software application from a second user via the user interface by the at least one processor; and facilitating, by the at least one processor, each of the first user, the second user, and at least one third user to use each of the first software application and the second software application via a container application, wherein the container application is capable of providing access to a plurality of software applications.
[0009] Displaying the user interface may include: displaying a micro front-end that is capable of implementing a plurality of microservices corresponding to a subset of the plurality of software applications.
[0010] The facilitating may include: providing access authentication to each of the first user, the second user, and the third user for each of the first software application and the second software application.
[0011] The facilitating may include: providing a communication context to enable a communication flow between the first software application and the second software application.
[0012] The method may further include: facilitating the communication flow using a JavaScript application programming interface and JavaScript events.
[0013] The container application may include a container software development kit that provides access to a JavaScript library and facilitates interaction between the plurality of software applications.
[0014] The plurality of software applications may include software applications having at least one of a Vue.js framework, a ReactJS framework, and an AngularJS framework.
[0015] The method may further include: when a customer call is received, routing information related to the received customer call to each of the plurality of software applications via the container application.
[0016] According to another exemplary embodiment, a computing device for providing container applications to a service platform is provided. The computing device includes a processor; a memory; and a communication interface coupled to each of the processor and the memory. The processor is configured to: display a user interface on each of a plurality of workstations; receive a first software application from a first user via the user interface and the communication interface; receive a second software application from a second user via the user interface and the communication interface; and facilitate each of the first user, the second user, and at least one third user to use each of the first software application and the second software application via a container application, where the container application is capable of providing access to a plurality of software applications.
[0017] The processor may further be configured to: display a micro front-end that can implement a plurality of microservices corresponding to a subset of the plurality of software applications.
[0018] The processor may further be configured to: provide access authentication to each of the first user, the second user, and the third user for each of the first software application and the second software application.
[0019] The processor may further be configured to: provide a communication context to enable a communication flow between the first software application and the second software application.
[0020] The processor may further be configured to: facilitate the communication flow using a JavaScript application programming interface and JavaScript events.
[0021] The container application may include a container software development kit configured to: provide access to a JavaScript library and facilitate interaction between the plurality of software applications.
[0022] The plurality of software applications may include software applications having at least one of a Vue.js framework, a ReactJS framework, and an AngularJS framework.
[0023] When a customer call is received, the processor may further be configured to: route information related to the received customer call to each of the plurality of software applications via the container application.
[0024] According to another exemplary embodiment, a non-transitory computer-readable storage medium is provided that stores instructions for providing container applications for a service platform. The non-transitory computer-readable storage medium includes executable code that, when executed by a processor, causes the processor to perform the following operations: display a user interface on each of a plurality of workstations; receive a first software application from a first user via the user interface; receive a second software application from a second user via the user interface; and facilitate each of the first user, the second user, and at least one third user to use each of the first software application and the second software application via a container application, where the container application is capable of providing access to a plurality of software applications.
[0025] The executable code may further be configured to cause the processor to display a micro front-end that is capable of implementing a plurality of microservices corresponding to a subset of the plurality of software applications.
[0026] The executable code may further be configured to provide access authentication to each of the first user, the second user, and the third user for each of the first software application and the second software application.
[0027] The container application may include a container software development kit that provides access to a JavaScript library and facilitates interaction between the plurality of software applications. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] In the following detailed description, reference is made to the numerous drawings which are indicated, and the present disclosure is further described by way of non-limiting examples of preferred embodiments of the present disclosure, wherein like reference characters represent like elements throughout the several views of the drawings.
[0029] Figure 1 An exemplary computer system is shown.
[0030] Figure 2 An exemplary schematic diagram of a network environment is shown.
[0031] Figure 3 An exemplary system for implementing a method of providing a container application for a microservices front-end desktop platform in a contact center environment is shown.
[0032] Figure 4 Is an exemplary flowchart of a method for implementing a container application for a microservices front-end desktop platform in a contact center environment. DETAILED DESCRIPTION
[0033] One or more different aspects, embodiments, and / or specific features or sub-components of the present disclosure are intended to exhibit one or more of the advantages specifically described above and pointed out below.
[0034] Embodiments may also be implemented as one or more non-transitory computer-readable media having stored thereon instructions for one or more aspects of the present disclosure described and illustrated herein for embodiments. The instructions in certain examples include executable code that, when executed by one or more processors, cause the processors to perform the necessary steps to implement the methods of the examples of the present disclosure described and illustrated herein.
[0035] Figure 1 is an exemplary system used in accordance with the embodiments described herein. As shown, system 100 may include computer system 102, which is shown as such.
[0036] Computer system 102 may include a set of instructions that, when executed, may cause computer system 102 to perform any one or more of the methods or computer-based functions disclosed herein, either alone or in combination with other devices described. Computer system 102 may operate as a stand-alone device or may be connected to other systems or peripheral devices. For example, computer system 102 may be included in or incorporated into any one or more computers, servers, systems, communication networks, or cloud environments. Even further, the instructions may operate in such cloud-based computing environments.
[0037] In a networked deployment, computer system 102 may operate as a server, or as a client user computer in a server-client user network environment, a client user computer in a cloud computing environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. Computer system 102 or portions thereof may be implemented as various devices or integrated into various devices, such as a personal computer, a tablet computer, a set-top box, a personal digital assistant, a mobile device, a handheld computer, a laptop computer, a desktop computer, a communication device, a wireless smart phone, a personal trusted device, a wearable device, a global positioning satellite (GPS) device, a network device, or any other machine capable of executing a set (sequential or otherwise) of instructions that specify actions to be taken by that machine. Additionally, while a single computer system 102 is shown in the figure, other embodiments may include any system or collection of subsystems that individually or jointly execute instructions or perform functions. In the present disclosure, the term "system" should be understood to include any system or collection of subsystems that individually or jointly execute a set or multiple sets of instructions to perform one or more computer functions.
[0038] As Figure 1As shown, computer system 102 may include at least one processor 104. Processor 104 is tangible and non-transitory. As used herein, the term "non-transitory" should not be construed as an eternal property of a state, but rather as a property of a state that will persist for a period of time. The term "non-transitory" specifically excludes transient properties such as those of a particular carrier or signal, or other forms that exist only briefly at any given time and place. Processor 104 is a manufactured article and / or a machine component. Processor 104 is configured to execute software instructions to perform the functions described in the various embodiments herein. Processor 104 may be a general-purpose processor or may be part of an application specific integrated circuit (ASIC). Processor 104 may also be a microprocessor, a microcomputer, a processor chip, a controller, a microcontroller, a digital signal processor (DSP), a state machine, or a programmable logic device. Processor 104 may also be a logic circuit, including a programmable gate array (PGA), such as a field programmable gate array (FPGA), or other types of circuits including discrete gates and / or transistor logic. Processor 104 may be a central processing unit (CPU), a graphics processing unit (GPU), or both. Additionally, any processor described herein may include multiple processors, parallel processors, or both. Multiple processors may be contained within a single device or multiple devices, or may be coupled to a single device or multiple devices.
[0039] The computer system 102 may further include a computer memory 106. The computer memory 106 may include static memory, dynamic memory, or both in communication. The memory described herein is a tangible storage medium that can store data and executable instructions and is non-transitory during instruction storage. Similarly, the term "non-transitory" as used herein should not be construed as an eternal property of a state, but rather as a state property that will persist for a period of time. The term "non-transitory" expressly excludes transient properties such as those of a particular carrier wave or signal, or other forms that exist only briefly at any given time and place. The memory is a manufactured article and / or a machine component. The memory described herein is a computer-readable medium from which a computer can read data and executable instructions. The memory described herein may be random access memory (RAM), read only memory (ROM), flash memory, electrically programmable read only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, caches, removable disks, magnetic tapes, compact disk read only memory (CD-ROM), digital versatile disk (DVD), floppy disks, Blu-ray disks, or any other form of storage medium known in the art. The memory may be volatile or non-volatile, may be secure and / or encrypted, or may be insecure and / or unencrypted. Of course, the computer memory 106 may include any combination of memories or a single memory.
[0040] The computer system 102 may further include a display 108, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, a cathode ray tube (CRT), a plasma display, or any other type of display, examples of which are well known to those skilled in the art.
[0041] The computer system 102 may also include at least one input device 110, such as a keyboard, a touch-sensitive input screen or tablet, voice input, a mouse, a remote control device with a wireless keyboard, a microphone coupled to a speech recognition engine, a camera (such as a video camera or a still camera), a cursor control device, a global positioning system device, an altimeter, a gyroscope, an accelerometer, a proximity sensor, or any combination thereof. Those skilled in the art should understand that various embodiments of the computer system 102 may include multiple input devices 110. In addition, those skilled in the art should further understand that the above exemplary input devices 110 are not exhaustive, and the computer system 102 may also include any other or alternative input devices 110.
[0042] The computer system 102 may also include a media reader 112 configured to read any set or sets of instructions, such as software, from any of the memories described herein. When executed by the processor, these instructions can be used to perform one or more of the methods and processes described herein. In a particular embodiment, during the execution of the computer system 102, the instructions may reside, wholly or at least partially, in the memory 106, the media reader 112, and / or the processor 110.
[0043] In addition, the computer system 102 may also include any other devices, components, parts, peripherals, hardware, software, or any combination thereof, which are generally well-known and understood to be associated with or included within the computer system, such as but not limited to a network interface 114 and an output device 116. The output device 116 may be, but is not limited to, a speaker, an audio output, a video output, a remote control output, a printer, or any combination thereof.
[0044] Each component of the computer system 102 may be interconnected and communicate via a bus 118 or other communication link. As Figure 1 shown, the components may be interconnected and communicate via an internal bus. However, those skilled in the art should understand that any component may also be connected via an expansion bus. In addition, the bus 118 may also communicate via any standard or other commonly known and understood specifications, such as but not limited to Peripheral Component Interconnect, Peripheral Component Interconnect Express, Parallel Advanced Technology Attachment, Serial Advanced Technology Attachment, etc. In an exemplary embodiment, the bus 118 may include an event bus between micro frontends, which is a JavaScript event handling technology called the Broadcast Channel supported by modern browsers. There may also be event handling between server microservices and container applications, such as websockets delivered to one or more micro frontends. In turn, server microservices may also use event handling technologies for other applications (such as Kafka).
[0045] The computer system 102 can communicate with one or more additional computer devices 120 via a network 122. The network 122 can be, but is not limited to, a local area network, a wide area network, the Internet, a telephone network, a short-range network, or any other network commonly known and understood in the art. For example, a short-range network can include Bluetooth, Zigbee, infrared, near field communication, ultra-wideband, or any combination thereof. Those skilled in the art should understand that other networks 122 that are known and understood can also be used, and the example networks 122 are not restrictive or exhaustive. In addition, although Figure 1 the network 122 is described as a wireless network in [description], those skilled in the art should understand that the network 122 can also be a wired network.
[0046] Figure 1 The additional computer devices 120 shown in [figure] are personal computers. However, those skilled in the art should understand that in other embodiments of the present disclosure, the computer device 120 can be a laptop computer, a tablet computer, a personal digital assistant, a mobile device, a palmtop computer, a desktop computer, a communication device, a wireless telephone, a personal trusted device, a network device, a server, or any other device capable of executing a set of (sequential or otherwise) instructions that specify the operations to be performed by the device. Of course, those skilled in the art understand that the above devices are only exemplary devices, and the device 120 can be any other device or apparatus commonly known and understood in the art without departing from the scope of the present disclosure. For example, the computer device 120 can be the same as or similar to the computer system 102. In addition, those skilled in the art also understand that the device can be any combination of devices and apparatuses.
[0047] Of course, those skilled in the art understand that the components of the computer system 102 listed above are merely exemplary and not exhaustive and / or all-inclusive. In addition, the component examples listed above are also exemplary and not exhaustive and / or all-inclusive.
[0048] According to various embodiments of the present disclosure, the methods described herein can be implemented using a hardware computer system that executes software programs. In addition, in exemplary, non-limiting embodiments, the implementation can include distributed processing, component / object distributed processing, and parallel processing. A virtual computer system processing can be constructed to implement one or more of the methods or functions described herein, and the processors described herein can be used to support the virtual processing environment.
[0049] As described herein, various embodiments provide optimized methods and systems for providing container applications for a microservices front-end desktop platform in a contact center environment.
[0050] Referring to Figure 2, which shows a schematic diagram of an exemplary network environment 200 for implementing a method of providing container applications for a microservices front - end desktop platform in a contact center environment. In an exemplary embodiment, the method can be executed on any network computer platform, such as a personal computer (PC).
[0051] The method for providing container applications for a microservices front - end desktop platform in a contact center environment can be implemented by a microservices servicing fabric container (MSFC) device 202. The MSFC device 202 can be the same as or similar to Figure 1 the computer system 102 described above. The MSFC device 202 can store one or more applications, which can include executable instructions that, when executed by the MSFC device 202, enable the MSFC device 202 to perform operations such as transmitting, receiving, or otherwise processing network messages, as well as other operations described and illustrated below with reference to the figures. The applications can be implemented as modules or components of other applications. Additionally, the applications can also be implemented as operating system extensions, modules, plugins, etc.
[0052] Even further, the applications can run in a cloud - based computing environment. The applications can be executed or run as virtual machines or virtual servers managed in a cloud - based computing environment. Additionally, the applications and even the MSFC device 202 itself can be located in a virtual server running in a cloud - based computing environment, rather than being bound to one or more specific physical network computing devices. Moreover, the applications can run in one or more virtual machines executed on the MSFC device 202. Additionally, in one or more embodiments of the present disclosure, the virtual machines running on the MSFC device 202 can be managed or monitored by a hypervisor. In an exemplary embodiment, the micro - front - end application can be a web component, an iframe, or a thick application running on the desktop.
[0053] In Figure 2 the network environment 200, the MSFC device 202 is coupled via a communication network 210 to a plurality of server devices 204(1) to 204(n) hosting a plurality of databases 206(1) to 206(n), and is also coupled to a plurality of client devices 208(1) to 208(n). The communication interface of the MSFC device 202 (such as Figure 1The network interface 114 of computer system 102 operatively couples and communicates between the MSFC device 202, server devices 204(1) to 204(n), and / or client devices 208(1) to 208(n), all of which are coupled together via a communication network 210, although other types or amounts of communication networks or systems with other types and / or amounts of connections and / or configurations for other devices and / or components may also be used.
[0054] Although the MSFC device 202, server devices 204(1) to 204(n), and / or client devices 208(1) to 208(n) may be coupled together via other topologies, the communication network 210 may be the same as or similar to Figure 1 the network 122 shown. Additionally, the network environment 200 may also include other network devices, such as one or more routers and / or switches, which are well known in the art and thus will not be described further herein. The present disclosure provides many advantages, including methods, non-transitory computer-readable media, and MSFC devices that can be effectively implemented as methods for providing container applications for a microservices front-end desktop platform in a contact center environment.
[0055] By way of example only, the communication network 210 may include a local area network (LAN) or a wide area network (WAN) and may use Ethernet TCP / IP and industry standard protocols, although other types and / or amounts of protocols and / or communication networks may also be used. The communication network 210 in this example may employ any suitable interface mechanism and network communication technology, such as including any suitable form (e.g., voice, modem, etc.) of telecommunications traffic, the public switched telephone network (PSTN), an Ethernet-based packet data network (PDN), combinations thereof, and the like. In an exemplary embodiment, the service fabric may abstract various types of customer communications (including voice calls, video calls, emails, chats, co-browsing, etc.) by using an event-driven architecture that interfaces with different telephone systems, and then normalize these different communication channels and communicate with the container application as omnichannel customer interactions.
[0056] The MSFC device 202 can be a stand-alone device or integrated with one or more other devices or apparatuses, such as one or more of the server devices 204(1) to 204(n). In a specific example, the MSFC device 202 can include or be hosted by one of the server devices 204(1) to 204(n), and other arrangements are also possible. In addition, one or more devices of the MSFC device 202 can be located in the same or different communication networks, such as including one or more public networks, private networks, or cloud networks.
[0057] The multiple server devices 204(1) to 204(n) can be the same as or similar to Figure 1 the computer system 102 or the computer device 120 described above, including any features or combinations of features associated therewith. For example, any one of the server devices 204(1) to 204(n) can include features such as one or more processors, a memory, and a communication interface, which are coupled together by a bus or other communication links. Of course, other quantities and / or types of network devices can also be used. The server devices 204(1) to 204(n) in this example can process requests received from the MSFC device 202 via the communication network 210 according to a method based on HTTP and / or JavaScript Object Notation (JSON), which is used to transmit objects via the REST protocol or the websocket protocol, etc. Of course, other protocols can also be used.
[0058] The server devices 204(1) to 204(n) can be hardware or software, and can also represent a system with multiple servers in a pool, which can include internal or external networks. The server devices 204(1) to 204(n) host the databases 206(1) to 206(n), and the databases 206(1) to 206(n) are configured to store data related to container-specific software compatibility and interactive service data related to the services provided to customers through the contact center. Container application persistence includes the container layout for each container administrator and the micro-frontend applications in the layout. In an exemplary embodiment, multiple container administrators can be supported to manage multiple layouts, similar to a multi-tenant application.
[0059] Although server devices 204(1) to 204(n) are illustrated as a single device, one or more operations of each of server devices 204(1) to 204(n) may be distributed across one or more different network computing devices that together include one or more of server devices 204(1) to 204(n). Additionally, server devices 204(1) to 204(n) are not limited to a particular configuration. Thus, server devices 204(1) to 204(n) may comprise multiple network computing devices operating in a master / slave manner, where one of the network computing devices among server devices 204(1) to 204(n) is responsible for managing and / or otherwise coordinating the operations of the other network computing devices.
[0060] For example, server devices 204(1) to 204(n) may operate as multiple network computing devices within a cluster architecture, a peer-to-peer architecture, a virtual machine, or a cloud architecture. Thus, the techniques disclosed herein should not be construed as limited to a single environment, and other configurations and architectures are also contemplated.
[0061] Multiple client devices 208(1) to 208(n) may also be the same as or similar to Figure 1 the computer system 102 or computer device 120 described, including any features or combinations of features associated therewith. For example, client devices 208(1) to 208(n) in this example may include any type of computing device capable of interacting with the MSFC device 202 via the communication network 210. Thus, client devices 208(1) to 208(n) may be mobile computing devices, desktop computing devices, laptop computing devices, tablet computing devices, virtual machines (including cloud-based computers), or similar devices, such as devices hosting chat, email, or voice-to-text applications. In an exemplary embodiment, at least one client device 208 is a wireless mobile communication device, i.e., a smartphone, a tablet, or a self-service terminal, which may be used in a bank branch or a retail store.
[0062] Client devices 208(1) to 208(n) can run interface applications, such as a standard web browser or a stand-alone client application, which can provide an interface for communicating with the MSFC device 202 via the communication network 210 to transfer user requests and information. The client devices 208(1) to 208(n) may further include a display device (such as a display screen or a touch screen) and / or an input device (such as a keyboard), etc. In an exemplary embodiment, the container application can support a web browser application and / or a local / thick application running on the client device 208(x), for example, any one or more of a Visual C# application, a Visual C++ application, a Visual Basic application, and / or a remotely hosted application (such as Sales Force).
[0063] Although an exemplary network environment 200 having an MSFC device 202, server devices 204(1) to 204(n), client devices 208(1) to 208(n), and a communication network 210 is described and illustrated herein, other types and / or numbers of systems, devices, components, and / or elements in other topologies may be used. It should be understood that the example systems described herein are for exemplary purposes only, and there can be various variations in the specific hardware and software for implementing the examples, which can be understood by those skilled in the relevant technical fields.
[0064] One or more of the devices described in the network environment 200, such as the MSFC device 202, the server devices 204(1) to 204(n), or the client devices 208(1) to 208(n), can be configured to run as virtual instances on the same physical machine. In other words, one or more of the MSFC device 202, the server devices 204(1) to 204(n), or the client devices 208(1) to 208(n) can run on the same physical device instead of communicating as separate devices via the communication network 210. In addition, the number of the MSFC device 202, the server devices 204(1) to 204(n), or the client devices 208(1) to 208(n) can be more or less than Figure 2 the number shown in
[0065] In addition, in any example, any one system or device can be replaced by two or more computing systems or devices. Thus, the principles and advantages of distributed processing, such as redundancy and replication, can also be implemented as needed to improve the robustness and performance of the example devices and systems. These examples can also be implemented on a computer system that can be scaled on any suitable network using any suitable interface mechanism and business technology, e.g., including only any suitable form (such as voice and modem) of telecommunications traffic, wireless traffic network, cellular traffic network, packet data network (PDN), Internet, intranet, and combinations thereof. The elasticity of the container application is provided in the following ways: 1) multiple instances of the container service, used in combination with a global load balancer as the front end, in multiple pools or availability zones and multiple data centers; 2) elastic processing in the container and a container software development kit (SDK) for event sources (such as from microservices in the interaction service fabric); 3) websocket elasticity and rest service resiliency.
[0066] The MSFC device 202 is described and illustrated in Figure 3 as including a contact center service fabric container module 302, although it can include other rules, policies, modules, databases, or applications, etc. As described below, the contact center service fabric container module 302 is configured to implement a method for providing a container application for a microservice front-end desktop platform in a contact center environment.
[0067] In an exemplary embodiment, the container application provides a series of container functions, including the following: 1) Accommodate any framework (Vue.js, React, Angular, etc.) as web components or iframes. 2) Provide OAUTH2 authentication and authorization. 3) A framework agnostic SDK for widgets for desktop widgets. 4) Lifecycle events: login / logout / timeout. 5) Seamless high availability (HA) / elasticity. 6) Seamless login across different seal identities. 7) Dynamically load layouts based on roles. 8) Dynamically load desktop widgets (i.e., Gaia-hosted applications). 9) Provide inter-component event handling. 10) Event handling for the Websocket protocol. 11) Access to Praesto interactive servicing fabric (ISF) (i.e., omnichannel target state contact center) functions. 12) Application ID for each microfrontend and roles for each layout and application.
[0068] In an exemplary embodiment, each application specification includes 1) "id": 1605716178245, (i.e., a random ID generated by the container administrator based on the chart library (epoch)). 2) "name": "oc-brand-bar", (i.e., the name provided by the user). 3) "description": "oc-brand-bar", (i.e., the description provided by the user). 4) "tag": "oc-brand-bar", (i.e., the name given to the web component in html tags). 5) "jsUrl": "https: / / oc-brandbar.apps.dev.domain.net / src / component / BrandBarComponent.js", (i.e., the uniform resource locator (URL) of the JS file). 6) "microfrontendUrl": "https: / / oc-brandbar.apps.dev.domain.net" (i.e., the URL where the component loads itself). 7) "mode" (mode).
[0069] In an exemplary embodiment, each layout has the following content and publish URL: The layout can also be extended through actions related to events, which can include changing to another layout (i.e., dynamic layout):
[0070]
[0071]
[0072] Figure 3 An exemplary process 300 is shown for implementing a mechanism for providing container applications for a microservices front-end desktop platform in a contact center environment by leveraging Figure 2 the network environment shown. Specifically, a first client device 208(1) and a second client device 208(2) communicating with an MSFC device 202 are shown in the figure. In this regard, the first client device 208(1) and the second client device 208(2) may be "clients" of the MSFC device 202 and are described as such herein. However, it should be known and understood that the first client device 208(1) and / or the second client device 208(2) are not necessarily "clients" of the MSFC device 202, nor any entity related thereto as described herein. Any additional or alternative relationship, or no relationship at all, may exist between any one or both of the first client device 208(1) and the second client device 208(2) and the MSFC device 202.
[0073] In addition, the MSFC device 202 is illustrated as being able to access a container-specific software compatibility data repository 206(1) and a customer interaction service database 206(2). The contact center service fabric container module 302 may be configured to access these databases to implement a method for providing container applications for a microservices front-end desktop platform in a contact center environment.
[0074] The first client device 208(1) may be a smart phone or the like. Of course, the first client device 208(1) may be any other device described herein. The second client device 208(2) may be a personal computer or the like. Of course, the second client device 208(2) may also be any other device described herein.
[0075] The process may be performed via a communication network 210, which may include multiple networks as described above. For example, in an exemplary embodiment, either or both of the first client device 208(1) and the second client device 208(2) may communicate with the MSFC device 202 via broadband or cellular communication. Of course, these embodiments are merely exemplary and are not restrictive or exhaustive.
[0076] After startup, the Contact Center Service Fabric Container Module 302 executes a process for providing container applications for the microservices front-end desktop platform in the contact center environment. In an exemplary embodiment, the starting point is to use the administrative aspect of the container application, through which the container manager administrator can create a layout and specify applications and various other details in the layout, and then publish the layout. In this way, users can load the layout through the published uniform resource identifier (URI), and then access a specific layout using the micro-frontend application loaded by the container application. An example process for providing container applications for the microservices front-end desktop platform in the contact center environment is generally as Figure 4 shown in the flowchart 400 of
[0077] In Figure 4 process 400, in step S402, the Contact Center Service Fabric Container Module 302 displays a user interface on each of a plurality of workstations corresponding to a user of the container application, and the container application provides access to a plurality of software applications used in the contact center environment. In an exemplary embodiment, each displayed user interface includes a micro-frontend that can implement a plurality of microservices corresponding to a subset of the plurality of software applications. A container is a runtime extensible loader that allows teams to develop applications with their own sealed identities and speeds.
[0078] In step S404, the Contact Center Service Fabric Container Module 302 receives software applications from users who wish to integrate these software applications into the container for subsequent use in the contact center environment. In an exemplary embodiment, the software application can have any one of the Vue.js framework, ReactJS framework, and / or AngularJS framework.
[0079] In step S406, the Contact Center Service Fabric Container Module 302 can facilitate the interactive use of the software applications integrated into the container. In this regard, all users who can access the container can effectively use the applications contained therein.
[0080] In step S408, the Contact Center Service Fabric Container Module 302 provides access authentication to authenticated users. In this regard, when a user wishes to access an application from within the container, the user can be prompted to provide credentials proving the user's right to access the application, and after the credentials have been confirmed, the user can receive access authentication. In an exemplary embodiment, the access authentication is related to the role specified in the container layout specification, and for any specific user, only the micro-frontends for which the specific user has the allowed role will be displayed to the specific user.
[0081] In step S410, the contact center service fabric container module 302 provides a communication context for the communication flow between the applications contained in the container. The communication flow can be facilitated by using JavaScript (JS) application programming interfaces (APIs) and JS events. In an exemplary embodiment, the context is the context of a customer communication. For example, a call that has been answered by a contact center agent, and then the contact center agent uses the container to interact with a number of micro front-ends, each of which requires corresponding communication metadata to appropriately load information related to the customer. The model can be extended to other use cases where the context can be used for past customer interactions, cases or accounts in other offices, or any other suitable situation. The communication context flow can arrive at the start of a call or during the call when a micro front-end starts and / or transitions to another micro front-end. For example, an expert can transition from assisting a customer with a credit card (i.e., the first micro front-end) to assisting the customer with a savings account (i.e., the second micro front-end).
[0082] In step S412, the contact center service fabric container module 302 provides a container software development kit (SDK), which provides access to JavaScript libraries. The container SDK can assist users who are developing new applications that may eventually introduce containers. The container SDK can facilitate the interaction between the applications in the container and can also facilitate the implementation of other functions, such as container lifecycle events, server-side application event delivery, and providing an interaction fabric to route customer calls to experts.
[0083] In step S414, the contact center service fabric container module 302 forwards customer call information to the applications contained in the container. In this regard, when a customer call is received, the information of the caller and the reason for the call can be determined and then the information can be routed to the respective applications to service the call. Similarly, a micro front-end can use the container SDK to send events to other micro front-ends, i.e., web components or embedded iframes or sub-windows or thick applications within the same browser that use an event bridge between the container and the various micro front-ends. Requests can also be sent from one micro front-end to another, i.e., the events are styled to represent a request-response sequence. This may cause a change in one micro front-end to cause a change in another micro front-end. These events can be exchanged between the container and the micro front-ends and vice versa. Events from the micro front-end to the container may also trigger a layout change.
[0084] Therefore, with this technology, an optimized process is provided for providing container applications for a micro-service front-end desktop platform in a contact center environment.
[0085] Although the present disclosure has been described with reference to several exemplary embodiments, it is to be understood that the words used are words of description and illustration and not of limitation. Within the scope of the appended claims, modifications may be made in the present state of the art without departing from the scope and spirit of the present disclosure. Although the present disclosure has been described with reference to specific means, materials and embodiments, the present disclosure is not intended to be limited to the specific details disclosed; rather, the present disclosure extends to all functionally equivalent structures, methods and uses falling within the scope of the appended claims.
[0086] For example, although a computer-readable medium may be described as a single medium, the term "computer-readable medium" includes a single medium or multiple media, such as a centralized or distributed database and / or associated caches and servers that store one or more sets of instructions. The term "computer-readable medium" also includes any medium that can store, encode or carry a set of instructions that can be executed by a processor or cause a computer system to execute any one or more of the embodiments disclosed herein.
[0087] A computer-readable medium may include a non-transitory computer-readable medium and / or may include a transitory computer-readable medium. In certain non-limiting exemplary embodiments, a computer-readable medium may include solid-state memory, such as a memory card or other enclosure that houses one or more non-volatile read-only memories. Additionally, a computer-readable medium may be random access memory or other volatile rewritable memory. Additionally, a computer-readable medium may include magneto-optical or optical media, such as a disk or tape or other storage device to capture carrier signals, such as signals transmitted through a transmission medium. Accordingly, the present disclosure is considered to include any computer-readable medium or other equivalents and successor media in which data or instructions may be stored.
[0088] Although the present disclosure describes certain embodiments that may be implemented as computer programs or code segments in a computer-readable medium, it should be understood that dedicated hardware implementations, such as application-specific integrated circuits, programmable logic arrays and other hardware devices, may be configured to implement one or more of the embodiments described herein. Applications including various embodiments set forth herein may broadly include a variety of electronic and computer systems. Accordingly, the present disclosure may include software, firmware and hardware implementations, or combinations thereof. Nothing in the present disclosure should be construed as being implementable or achievable only in software rather than hardware.
[0089] Although this specification describes components and functions that may be implemented in specific embodiments with reference to specific standards and protocols, the present disclosure is not limited to these standards and protocols. Such standards are periodically replaced by faster or more efficient equivalents having substantially the same functionality. Accordingly, replacement standards and protocols having the same or similar functionality are considered to be equivalents thereof.
[0090] The accompanying drawings of the embodiments described herein are intended to provide a general understanding of the various embodiments. These drawings are not intended to serve as a complete description of all elements and features of the devices and systems that utilize the structures or methods described herein. After reading this disclosure, those skilled in the art may find many other embodiments. Other embodiments may also utilize this disclosure and be derived therefrom, and thus structural and logical substitutions and changes may be made without departing from the scope of this disclosure. In addition, the drawings are only schematic and may not be drawn to scale. Some of the scales in the drawings may be exaggerated while others may be reduced. Therefore, this disclosure and the drawings should be regarded as illustrative rather than restrictive.
[0091] One or more embodiments of this disclosure may be referred to, individually and / or collectively, by the term "invention" for convenience only, and are not intended to voluntarily limit the scope of this disclosure to any particular invention or creative concept. In addition, although specific embodiments have been shown and described herein, it should be understood that any subsequent arrangement designed to achieve the same or similar purpose may replace the specific embodiments shown. This disclosure is intended to cover any and all subsequent adaptations or variations of the various embodiments. Combinations of the above embodiments and other embodiments not specifically described herein will be apparent to those skilled in the art upon review of the description.
[0092] When submitting the abstract of this disclosure, it should be understood that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing detailed description, for the purpose of simplifying this disclosure, various features may be grouped together or described in a single embodiment. This disclosure should not be construed as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. On the contrary, as reflected by the claims, the subject matter of this disclosure may be less than all the features of any disclosed embodiment. Accordingly, the claims are incorporated into the detailed description, with each claim defining the claimed subject matter individually.
[0093] The subject matter disclosed above should be regarded as illustrative rather than restrictive, and the appended claims are intended to cover all such modifications, improvements, and other embodiments that fall within the true spirit and scope of this disclosure. Therefore, to the fullest extent permitted by law, the scope of this disclosure shall be determined by the broadest interpretation of the claims and their equivalents, and shall not be limited or constrained by the foregoing detailed description.
Claims
1. A method for providing container applications to a service platform, the method being implemented by at least one processor, the method comprising: displaying, by the at least one processor, a user interface on each of a plurality of workstations, wherein the plurality of workstations correspond to users who use container applications in a contact center environment; receiving, by the at least one processor via the user interface, a first software application from a first workstation of a first user, wherein the first software application is configured to integrate with the container application used in the contact center environment; receiving, by the at least one processor via the user interface, a second software application from a second workstation of a second user, wherein the second software application is configured to integrate with the container application used in the contact center environment; receiving, by the at least one processor via the user interface, a request from a third user to access at least one of the first software application provided by the first user and the second software application provided by the second user; configuring, by the at least one processor, the container application to allow access to the first software application and the second software application via the container application, wherein the container application allows access to multiple software applications; routing, by the at least one processor, the third user to the container application to access one of the first software application and the second software application; facilitating, by the at least one processor, each of the first user, the second user, and the third user to use each of the first software application and the second software application via the container application; and displaying, by the at least one processor, one or more micro front-ends of one of the first software application and the second software application to the third user; wherein only the micro front-ends that the third user has a permitted role for are displayed, wherein the container application is a single application and includes each of a plurality of container functions, the plurality of container functions including: (1) accommodating any framework as a network component; (2) providing OAUTH2 authentication and authorization; (3) a framework-independent software development kit for desktop widgets; (4) lifecycle events; (5) seamless high availability or elasticity; (6) seamless login across different seal identities; (7) dynamically loading layouts according to roles; (8) dynamically loading the desktop widgets; (9) providing inter-component event handling; (10) event handling of the Websocket protocol; (11) accessing Praesto interactive service fabric functions; and (12) the application ID of each micro front-end and the role of each layout and application.
2. The method according to claim 1, wherein, displaying the user interface includes: displaying a micro front-end that can implement a plurality of microservices corresponding to a subset of the plurality of software applications.
3. The method according to claim 1, wherein, the facilitation includes: for each of the first software application and the second software application, providing access authentication to each of the first user, the second user, and the third user.
4. The method according to claim 1, wherein, the facilitation includes: providing a communication context to enable a communication flow between the first software application and the second software application.
5. The method according to claim 4, further including: using a programming language application programming interface and programming language events to facilitate the communication flow.
6. The method according to claim 1, wherein, the container application includes a container software development kit that provides access to a programming language library and facilitates interaction between the multiple software applications.
7. The method according to claim 1, wherein, the multiple software applications include software applications having a programming framework.
8. The method according to claim 1, further including: when a customer call is received, routing information related to the received customer call to each of the multiple software applications through the container application.
9. A computing device for providing a container application to a service platform, comprising: a processor; a memory storing instructions; and a communication interface coupled to each of the processor and the memory; wherein the processor executes the instructions to perform the following operations: displaying a user interface on each of a plurality of workstations, wherein the plurality of workstations correspond to users using the container application in a contact center environment; receiving, via the user interface and the communication interface, a first software application from a first workstation of a first user, wherein the first software application is configured to be integrated with the container application used in the contact center environment; receiving, via the user interface and the communication interface, a second software application from a second workstation of a second user, wherein the second software application is configured to be integrated with the container application used in the contact center environment; receiving, via the user interface by the processor, a request from a third user to access at least one of the first software application provided by the first user and the second software application provided by the second user; configuring, by the processor, the container application to allow access to the first software application and the second software application via the container application, wherein the container application allows access to multiple software applications; routing, by the processor, the third user to the container application to access one of the first software application and the second software application; and facilitating use of each of the first software application and the second software application by each of the first user, the second user, and the third user via the container application; and Display, to the third user via the processor, one or more micro front-ends of one of the first software application and the second software application; wherein, only the micro front-ends that the third user has a permitted role for are displayed; wherein, the container application is a single application and includes each of a plurality of container functions, the plurality of container functions including: (1) accommodating any framework as a web component; (2) providing OAUTH2 authentication and authorization; (3) a framework-independent software development kit for desktop widgets; (4) life cycle events; (5) seamless high availability or resilience; (6) seamless login across different seal identities; (7) dynamically loading a layout according to a role; (8) dynamically loading the desktop widgets; (9) providing inter-component event handling; (10) event handling for the Websocket protocol; (11) accessing Praesto interactive service fabric functions; and (12) the application ID of each micro front-end and the role of each layout and application.
10. The computing device according to claim 9, wherein, the processor further performs the following operations: Display a micro front-end that can implement a plurality of microservices corresponding to a subset of the plurality of software applications.
11. The computing device according to claim 9, wherein, the processor further performs the following operations: For each of the first software application and the second software application, provide access authentication to each of the first user, the second user, and the third user.
12. The computing device according to claim 9, wherein, the processor further performs the following operations: Provide a communication context to enable a communication flow between the first software application and the second software application.
13. The computing device according to claim 12, wherein, the processor further performs the following operations: Use a programming language application programming interface and programming language events to facilitate the communication flow.
14. The computing device according to claim 9, wherein, The container application includes a container software development kit configured to: provide access to a programming language library and facilitate interaction between the plurality of software applications.
15. The computing device according to claim 9, wherein, The plurality of software applications includes software applications having a programming framework.
16. The computing device according to claim 9, wherein, When a customer call is received, the processor further performs the following operations: Route information related to the received customer call to each of the plurality of software applications via the container application.
17. A non-transitory computer-readable storage medium storing instructions for providing a container application for a service platform, the non-transitory computer-readable storage medium including executable code that, when executed by a processor, causes the processor to perform the following operations: Display a user interface on each of a plurality of workstations, wherein, the plurality of workstations correspond to users using container applications in a contact center environment; Receive a first software application from a first workstation of a first user via the user interface, wherein the first software application is configured to integrate with the container application used in the contact center environment; Receive a second software application from a second workstation of a second user via the user interface, wherein the second software application is configured to integrate with the container application used in the contact center environment; Receive, via the user interface, a request from a third user to access at least one of the first software application provided by the first user and the second software application provided by the second user; Configure the container application to allow access to the first software application and the second software application via the container application, wherein the container application allows access to multiple software applications; Route the third user to the container application to access one of the first software application and the second software application; Facilitate each of the first user, the second user, and the third user to use each of the first software application and the second software application via the container application; and Display one or more micro front-ends of one of the first software application and the second software application to the third user; wherein only the micro front-ends for which the third user has an allowed role are displayed, wherein the container application is a single application and includes each of a plurality of container functions, the plurality of container functions including: (1) accommodating any framework as a network component; (2) providing OAUTH2 authentication and authorization; (3) a framework-independent software development kit for desktop widgets; (4) lifecycle events; (5) seamless high availability or resiliency; (6) seamless login across different seal identities; (7) dynamically loading layouts based on roles; (8) dynamically loading the desktop widgets; (9) providing inter-component event handling; (10) event handling for the Websocket protocol; (11) accessing Praesto interactive service fabric functions; and (12) the application ID of each micro front-end and the role of each layout and application.
18. The non-transitory computer-readable storage medium according to claim 17, wherein, the executable code is further configured to: cause the processor to display a micro front-end that can implement a plurality of microservices corresponding to a subset of the plurality of software applications.
19. The non-transitory computer-readable storage medium according to claim 17, wherein, the executable code is further configured to: provide access authentication to each of the first user, the second user, and the third user for each of the first software application and the second software application.
20. The non-transitory computer-readable storage medium according to claim 17, wherein, the container application program includes a container software development kit that provides access to programming language libraries and facilitates interaction between the plurality of software applications.
Citation Information
Patent Citations
Facilitating build and deploy runtime memory encrypted cloud applications and containers
US20190180006A1
Validating containers on a microservice framework
US20200296089A1