Container applications for microservices front-end desktops
Patent Information
- Application Number
- JP2023579004
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-06-22
- Filing Date
- 2022-05-25
- Publication Date
- 2025-05-19
- Estimated Expiration
- 2042-05-25
AI Technical Summary
Software developers face challenges in integrating newly developed applications with the existing software suite in contact centers due to the diversity of applications and the size of large business organizations, which can negatively impact customer service quality and organizational reputation.
A method and system for providing container applications for a microservices front-end desktop platform in a contact center environment, utilizing a container software development kit (SDK) to facilitate interaction between multiple software applications, including user authentication, communication flow, and integration of customer calls, through a micro-front end implementation and JavaScript APIs.
Enables seamless integration and efficient use of multiple software applications, ensuring timely and accurate customer service by facilitating communication flows and user access, thereby enhancing the overall performance and reliability of contact center operations.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Related Applications
[0001] This application claims priority to U.S. Patent Application No. 17 / 354,700, filed June 22, 2021, which is incorporated by reference in its entirety. [Technical field]
[0002] The present technology relates generally to a method and system for providing container applications, and more particularly to a method and system for providing container applications for a microservices front-end desktop platform in any environment, such as a contact center environment, involving application-to-application interactions where customer or user interaction is central. [Background technology]
[0003] For large enterprise organizations with many customers, customer service is a critical aspect of business operations. Customers generally expect that their service requests will be handled on time and accurately. If an enterprise organization does not provide such customer service, the organization's reputation can be adversely affected.
[0004] Many service requests by customers are made online via the Internet. To accommodate such requests, business organizations may utilize contact centers that facilitate the delivery of various servicing applications from various parts of the organization. Summary of the Invention [Problem to be solved by the invention]
[0005] However, due to the diversity of applications and the overall scale of the business, software developers can face challenges in integrating newly developed applications with other parts of the software suite that delivers contact center services.
[0006] Therefore, there is a need for a method and system for providing container applications for a microservices front-end desktop platform in a contact center environment. [Means for solving the problem]
[0007] The present disclosure, through one or more various aspects and / or embodiments and / or specific configurations or subcomponents, provides various systems, servers, devices, methods, media, programs, and platforms that provide container applications for a microservices front-end desktop platform in a contact center environment.
[0008] In one aspect of the disclosure, a method is provided for providing a container application for a front-end desktop platform of microservices in a contact center environment, the method being implemented on at least one processor and comprising: displaying, by the at least one processor, a user interface on each of a plurality of workstations; receiving, by the at least one processor, a first software application from a first user via the user interface; receiving, by the at least one processor, a second software application from a second user via the user interface; and facilitating or enabling use of each of the first and second software applications by each of the first, second and at least a third user via a container application that provides access to a plurality of software applications.
[0009] The step of displaying the user interface may include a substep of displaying micro-frontends that implement a plurality of microservices corresponding to some of the plurality of software applications.
[0010] The step of enabling may include the substep of performing access authentication of each of the first, second and third users for each of the first and second software applications.
[0011] The step of enabling may include a substep of providing a communication context that enables a communication flow between the first software application and the second software application.
[0012] The method may further comprise effecting or facilitating the communication flow through a JavaScript application programming interface (API) and JavaScript events.
[0013] The container application may include a container software development kit (SDK) that provides access to a JavaScript library to facilitate interaction between the multiple software applications.
[0014] The plurality of software applications may include a software application having at least one of a Vue.js framework, a ReactJS framework, and an AngularJS framework.
[0015] The method may further include, upon receipt of a customer call, forwarding information relating to the received customer call via the container application to each of the plurality of software applications.
[0016] In another exemplary embodiment, a computing device for providing a container application for a servicing platform is provided, the computing device comprising: a processor, a memory, and a communications interface coupled to each of the processor and the memory, the processor 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 communications interface; receive a second software application from a second user via the user interface and the communications interface; and facilitate or enable utilization of each of the first and second software applications by each of the first, second, and at least a third user via a container application that provides access to a plurality of software applications.
[0017] The processor may be further configured to display micro-frontends that implement a plurality of microservices corresponding to portions of the plurality of software applications.
[0018] The processor may be further configured to perform access authentication of the first, second and third users for each of the first and second software applications.
[0019] The processor may be further configured to provide a communication context that enables a communication flow between the first software application and the second software application.
[0020] The processor may be further configured to effect or facilitate the communication flow through a JavaScript application programming interface (API) and JavaScript events.
[0021] The container application may include a container software development kit (SDK) configured to provide access to a JavaScript library to facilitate interaction between the multiple software applications.
[0022] The plurality of software applications may include a software application having at least one of a Vue.js framework, a ReactJS framework, and an AngularJS framework.
[0023] The processor may be further configured, upon receipt of a customer call, to forward information relating to the received customer call to each of the plurality of software applications via the container application.
[0024] In yet another exemplary embodiment, a non-transitory computer-readable storage medium having stored thereon instructions for providing a container application for a servicing platform, the storage medium comprising executable code that, when executed by a processor, causes the processor 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, receive a second software application from a second user via the user interface, and facilitate or enable utilization of each of the first, second, and at least a third user by a container application that provides access to a plurality of software applications.
[0025] The executable code may be further configured to cause the processor to: display micro-frontends that implement a plurality of microservices corresponding to portions of the plurality of software applications.
[0026] The executable code may further be configured to cause the processor to perform: performing access authentication of each of the first, second and third users for each of the first and second software applications.
[0027] The container application may include a container software development kit (SDK) that provides access to a JavaScript library to facilitate interaction between the multiple software applications.
[0028] In the following detailed description, the present disclosure will be further explained by way of non-limiting examples of preferred embodiments thereof with reference to the following figures, in which like reference numerals refer to like structures / components throughout: [Brief description of the drawings]
[0029] [Figure 1] FIG. 1 illustrates an example of a computer system. [Diagram 2] FIG. 1 illustrates an example of a network environment. [Diagram 3] FIG. 1 illustrates an example of a system implementing a method for providing a container application for a front-end desktop platform for microservices in a contact center environment. [Figure 4] 1 is a flow chart illustrating an example of a process for implementing a method for providing a container application for a front-end desktop platform for microservices in a contact center environment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0030] The present disclosure, through one or more of its various aspects and / or embodiments and / or specific configurations or subcomponents, provides at least one of the advantages detailed above and / or hereinafter.
[0031] Also, the examples may be embodied as one or more non-transitory computer-readable mediums having stored thereon instructions for one or more aspects of the technology illustratively shown and described herein, including executable code that, in some examples, when executed by at least one processor, causes the processor to perform the steps necessary to implement the method of the examples of the technology illustrated and described herein.
[0032] 1 is an example of a system that may be used in accordance with embodiments described herein. The system 100 is depicted generally and may include a computer system 102, which is also depicted generally.
[0033] The computer system 102 may include instructions that, when executed, may cause the computer system 102 to perform any one or more of the methods or computer-based functions disclosed herein, either alone or in cooperation with other devices described herein. The computer system 102 may operate as a stand-alone device or may be connected to other systems or peripherals. For example, the computer system 102 may comprise or be included within any one or more computers, servers, systems, communication networks, or cloud environments. Moreover, the instructions may operate within such a cloud-based computing environment.
[0034] When deployed in a network, computer system 102 may operate in the capacity of a server or as a client user's computer in a server-client user network environment, as a client user's 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 or incorporated into a variety of devices, such as personal computers, tablet computers, set-top boxes, personal digital assistants, mobile devices, palmtop computers, laptop computers, stationary computers, communications devices, wireless smart phones, personal trusted devices, wearable devices, global positioning satellite (GPS) devices, web appliances, or any other machine capable of executing instructions (e.g., sequential instructions) that define operations to be performed by the computer system. Although only one computer system 102 is shown, alternative embodiments may include any collection of systems or subsystems that individually or collectively execute instructions or perform functions. Throughout this disclosure, the term "system" should be interpreted to encompass any collection of systems or subsystems that individually or collectively execute one or more instructions to perform one or more computer functions.
[0035] As shown in FIG. 1, the computer system 102 may include at least one processor 104. The processor 104 is tangible and non-transient. The term "non-transient" as used herein should be interpreted as referring to a state that persists for a period of time, rather than a state that is permanent. Specifically, the term "non-transient" denies a fleeting nature, such as a particular carrier or signal, which exists only transiently at any time and place. The processor 104 is a component of an article of manufacture and / or machine. The processor 104 is configured to execute software instructions to perform functions as described in the embodiments herein. The processor 104 may be a general-purpose processor or may be part of an application specific integrated circuit (ASIC). The 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. The processor 104 may also be a logic circuit, such as a programmable gate array (PGA), such as a field programmable gate array (FPGA), or other type of circuitry consisting of discrete gates and / or transistor logic. The processor 104 may be a central processing unit (CPU), a graphics processing unit (GPU), or both. Any of the processors described herein may also be multiple processors, parallel processors, or both. Multiple processors may be included in or connected to a single device, or multiple devices may be included in or connected to multiple devices.
[0036] The computer system 102 may further include a computer memory 106. The computer memory 106 may be a communicable static memory, a dynamic memory, or both. A memory, as described herein, is a tangible storage medium capable of storing data and executable instructions, and is non-transient as long as the instructions are stored therein. Again, the term "non-transient" as used herein should be interpreted as referring to the nature of a state that persists for some period of time, rather than the nature of a state that is permanent. Specifically, the term "non-transient" negates the nature of a temporary state, such as a particular carrier wave or signal, which exists only transiently at any time and place. The memory is a component of an article of manufacture and / or a machine. A memory, as described herein, is a computer-readable medium from which data and executable instructions can be read by a computer. The memory described herein may be any form of storage medium known in the art, such as 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 disk, cache, removable disk, tape, compact disk read only memory (CD-ROM), digital versatile disk (DVD), floppy disk, Blu-ray disk, etc. The memory may be volatile or non-volatile memory, and may be secure and / or encrypted, or non-secure and / or unencrypted. Of course, the computer memory 106 may be any combination of memories or may be a single storage.
[0037] The computer system 102 may further include a display 108. The display 108 may be any type of display, 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, etc. Examples of such displays are well known to those skilled in the art.
[0038] The computer system 102 may further include one or more input devices 110, such as a keyboard, a touch input screen or pad, voice input, a mouse, a remote control device consisting of a wireless keypad, a microphone coupled to a voice recognition engine, a camera such as a video camera or a still camera, a cursor control device, a global positioning system (GPS) device, an altimeter, a gyroscope, an accelerometer, a proximity sensor, or any combination thereof. Those skilled in the art will appreciate that embodiments of the computer system 102 may include more than one input device 110. Additionally, those skilled in the art will appreciate that the above examples of input devices 110 are not exhaustive and that the computer system 102 may include any additional or alternative input device 110.
[0039] Computer system 102 may further include a media reader 112 configured to read any one or more instructions (e.g., software, etc.) from any memory described herein. The instructions may be used to implement one or more methods or processes described herein when executed by a processor. In a particular embodiment, the instructions may reside, in whole or at least in part, in memory 106 and / or in media reader 112 and / or in processor 110 while executing on computer system 102.
[0040] Computer system 102 may further include any additional devices, components, parts, peripherals, hardware, software, or any combination thereof, that are commonly understood and known to be included with or within a computer system, such as, but not limited to, a network interface 114, output device(s) 116, etc. Output device(s) 116 may be, but is not limited to, speakers, audio output, video output, remote control output, printer, or any combination thereof.
[0041] The components of the computer system 102 may be interconnected and communicate with each other through a communication link, such as a bus 118. As shown in FIG. 1, the components may be interconnected and communicate with each other through an internal bus. However, one skilled in the art would recognize that any of the components may be connected with an expansion bus. The bus 118 may also enable communication according to any commonly understood and known standard, such as, but not limited to, peripheral component interconnect, peripheral component interconnect express, parallel advanced technology attachment, serial advanced technology attachment, or other standards. In an exemplary embodiment, the bus 118 may comprise an event bus between micro-frontends, a JavaScript eventing technology supported by modern browsers called a broadcast channel. There may also be eventing between a server microservice and a container application, such as, for example, websockets that feed one or more micro frontends. The server microservice itself may also utilize an eventing technology from another application, such as, for example, Kafka.
[0042] The computer system 102 may communicate with one or more additional computer devices 120 via a network 122. The network 122 may be any network commonly understood and known in the art, such as, but not limited to, a local area network, a wide area network, the Internet, a telephone network, a short-range network, etc. The short-range network may be, for example, Bluetooth, Zigbee, infrared, short-range communication, ultraband, or any combination thereof. Those skilled in the art will appreciate that additional understood and known networks 122 may be used in addition or instead, and furthermore, the examples of the network 122 are not limited to or exhaustively described above. Also, although the network 122 is depicted as a wireless network in FIG. 1, those skilled in the art will appreciate that the network 122 may be a wired network.
[0043] The further computing device 120 is depicted in FIG. 1 as a personal computer. However, those skilled in the art will appreciate that in alternative embodiments of the present application, the computing device 120 may be any device capable of executing a set of instructions (e.g., sequential instructions) that define the operations it is to perform, such as a laptop computer, a tablet PC, a personal digital assistant, a mobile device, a palmtop computer, a stationary computer, a communication device, a wireless phone, a personal trusted device, a web appliance, a server, and the like. Of course, those skilled in the art will appreciate that the above devices are merely exemplary, and that the device 120 may be any further device or apparatus that is commonly understood and known in the art and does not depart from the scope of the present application. For example, the computing device 120 may be the same as or similar to the computer system 102. Those skilled in the art will also appreciate that the device may be any combination of devices or apparatuses.
[0044] Of course, those skilled in the art will appreciate that the above-described components of computer system 102 are merely exemplary and not intended to be all-inclusive and / or comprehensive, and the above examples of such components are also merely exemplary and not intended to be all-inclusive and / or comprehensive.
[0045] In embodiments of the present disclosure, the methods described herein may be implemented by a hardware computer system executing a software program. Also, as a non-limiting example embodiment, the implementation may comprise distributed processing, component / object distributed processing, or parallel processing. A virtual computer system processing may be constructed to implement one or more of the methods or functions described herein, and the processors described herein may be used to support a virtual processing environment.
[0046] As described herein, embodiments provide an optimized method and system for providing container applications for a microservices front-end desktop platform in a contact center environment.
[0047] Referring to Figure 2, there is shown a schematic diagram of an example of a network environment 200 for implementing the method for providing a container application for a front-end desktop platform for microservices in a contact center environment. In an exemplary embodiment, the method can be implemented on any networked computing platform, such as a personal computer (PC).
[0048] The method of providing a container application for a microservices front-end desktop platform in a contact center environment may be performed by a Microservices Servicing Fabric Container (MSFC) device 202. The MSFC device 202 may be the same as or similar to the computer system 102 described in connection with FIG. 1. The MSFC device 202 may store one or more applications that may include instructions executable by the MSFC device 202 to cause the MSFC device 202 to perform operations, such as sending and receiving network messages, or other operations as shown and described below with reference to the figures. The applications may be implemented as modules or components of another application. The applications may also be implemented as operating system extensions, modules, plug-ins, etc.
[0049] Moreover, the application may run in a cloud-based computing environment. The application may run in or as one or more virtual machines or one or more virtual servers that may be operated in the cloud-based computing environment. The application, and even the MSFC device 202 itself, may be provided in one or more virtual servers operating in the cloud-based computing environment, rather than being tied to one or more specific physical network computing devices. The application may run in one or more virtual machines (VMs) that run on the MSFC device 202. In one or more embodiments of the present technology, the one or more virtual machines that run on the MSFC device 202 may be maintained or managed by a hypervisor. In an exemplary embodiment, the micro-frontend application may be a web component, an inline frame (Iframe), or a thick application that runs on a desktop.
[0050] In the network environment 200 of Figure 2, an MSFC device 202 is connected to a number of server devices 204(1)-204(n), which host a number of databases 206(1)-206(n), as well as a number of client devices 208(1)-208(n), via one or more communications networks 210. A communications interface (such as, for example, network interface 114 of computer system 102 of Figure 1) of MSFC device 202 is operatively connected to and communicates with MSFC device 202 and / or server devices 204(1)-204(n) and / or client devices 208(1)-208(n), all of which are connected to one another via communications network 210. However, other types and / or numbers of communications networks or systems, with other types and / or numbers of connections and / or configurations between other devices and / or elements, may be used.
[0051] The communication network 210 may be the same as or similar to the network 122 described in connection with FIG. 1. However, the MSFC device 202 and / or the server devices 204(1)-204(n) and / or the client devices 208(1)-208(n) may be connected to each other in a different topology. The network environment 200 may also include other network devices known in the art (and thus not described herein), such as, for example, one or more routers and / or switches. The present technology provides numerous advantages, such as an efficient method for providing container applications for a microservices front-end desktop platform in a contact center environment, a non-transient computer-readable medium, an MSFC device, and the like.
[0052] By way of example only, the communications network 210 may include one or more local area networks (LANs) or one or more wide area networks (WANs) and may utilize Ethernet or industry standard protocol TCP / IP, although other types and / or numbers of protocols and / or communications networks may be utilized. The communications network 210 of this example may utilize any suitable interface mechanism or network communications technology, such as, for example, any suitable form of communications traffic (e.g., voice, modem, etc.), the Public Switched Telephone Network (PSTN), an Ethernet-based Packet Data Network (PDN), or combinations thereof. In an exemplary embodiment, the Servicing Fabric may abstract various types of customer interactions, such as voice calls, video calls, email, chat, co-browsing, etc., through an event-driven architecture that interfaces with various telephony systems, and normalize these various communication channels into omni-channel customer interactions and deliver them to container applications.
[0053] MSFC device 202 may be a standalone device or may be integrated with one or more other devices or apparatuses (e.g., one or more of server devices 204(1)-204(n)). In one particular example, MSFC device 202 may consist of or be hosted by one of server devices 204(1)-204(n), or other configurations are possible. Also, one or more of MSFC device 202 may be in the same or separate communications networks, such as one or more public, private, or cloud networks.
[0054] The server devices 204(1)-204(n) may be the same as or similar to the computer system 102 and the computer device 120 described in connection with FIG. 1 and may have any configuration or combination of configurations described in connection with FIG. 1. For example, any of the server devices 204(1)-204(n) may have one or more processors, memories, communication interfaces, etc., which are connected to each other by a communication link such as a bus. However, other numbers and / or types of network devices may be used. The server devices 204(1)-204(n) of this example may process requests received from the MSFC device 202 over the communication network 210 according to, for example, an HTTP-based and / or JavaScript Object Notation (JSON) method of carrying objects over a REST protocol or a websocket protocol. However, other protocols may be used.
[0055] The server devices 204(1)-204(n) may be hardware or software, and may form a system with multiple servers in a pool that may consist of an internal network or an external network. The server devices 204(1)-204(n) host databases 206(1)-206(n). The databases 206(1)-206(n) are configured to store data related to software compatibility by container and interactive servicing data related to services provided to customers through the contact center. The container application persistence includes container layouts and micro-front-end applications within the layouts for each container administrator. In an exemplary embodiment, a configuration in which multiple container administrators maintain multiple layouts, such as a multi-tenant application, may be supported.
[0056] Although server devices 204(1)-204(n) are depicted as individual devices, one or more of the processes of each of server devices 204(1)-204(n) may be distributed to one or more separate network computing devices that collectively constitute one or more of server devices 204(1)-204(n). Furthermore, server devices 204(1)-204(n) are not limited to any particular configuration. That is, server devices 204(1)-204(n) may be comprised of multiple network computing devices operating in a master / slave approach, where any of server devices 204(1)-204(n) operates to manage and / or coordinate the operation of the remaining network computing devices.
[0057] The server devices 204(1)-204(n) may operate as multiple network computing devices in, for example, a cluster architecture, a peer-to-peer architecture, a virtual machine, or a cloud architecture. In other words, the technology disclosed in this specification should not be construed as being limited to a single environment, and other configurations and architectures are also contemplated.
[0058] The client devices 208(1)-208(n) may also be the same as or similar to the computer system 102 or computer device 120 described in connection with FIG. 1 and may have any of the configurations or combinations of configurations described in connection with FIG. 1. For example, the client devices 208(1)-208(n) in this example may comprise any type of computing device capable of interacting with the MSFC device 202 via the communications network 210. That is, the client devices 208(1)-208(n) may be mobile computing devices, stationary computing devices, laptop computing devices, tablet computing devices, virtual machines (including cloud-based computers), etc., hosting, for example, chat applications, email applications, voice-to-text applications, etc. In an exemplary embodiment, at least one client device 208 is a wireless mobile communications device, i.e., a smartphone, tablet, or kiosk such as may be used in a bank branch or retail store.
[0059] The client devices 208(1)-208(n) may execute an interface application, such as a standard web browser, a standalone client application, etc., that may communicate with the MSFC device 202 over the communications network 210 to provide an interface for communicating with the MSFC device 202 to receive user requests and information. The client devices 208(1)-208(n) may further include a display device (e.g., a display screen, a touch screen, etc.) and / or an input device (e.g., a keyboard, etc.). In an exemplary embodiment, the container application may support a web browser application and / or a native / thick application, such as any one or more of a VisualC# application and / or a VisualC++ application and / or a VisualBasic application and / or a remotely hosted application, such as SalesForce, executing on any of the client devices 208(x).
[0060] Although an exemplary network environment 200 is shown and described herein, which includes an MSFC device 202, server devices 204(1)-204(n), client devices 208(1)-208(n), and communication network 210, other types and / or numbers of systems and / or devices and / or components and / or elements having other topologies may be used. Those skilled in the relevant art will appreciate that the example systems described herein are merely exemplary, as numerous variations are possible in the specific hardware and software used to implement the examples.
[0061] One or more of the devices depicted in network environment 200, such as MSFC device 202, server devices 204(1)-204(n), and client devices 208(1)-208(n), may be configured to operate as virtual instances on the same physical machine. That is, one or more of MSFC device 202, server devices 204(1)-204(n), and client devices 208(1)-208(n) may operate on the same physical machine rather than as separate devices communicating over communications network 210. Also, there may be more or less MSFC devices 202, server devices 204(1)-204(n), or client devices 208(1)-208(n) than are depicted in FIG. 2.
[0062] Also, any system or device of any example may be replaced by two or more computing systems or devices. That is, principles and advantages of distributed processing, such as redundancy and replication, may be realized as appropriate, and the robustness and performance of the device or system of each example may be increased. By way of example only, each example may be realized by one or more computer systems extending across any suitable network, such as any suitable form of communication traffic (e.g., voice, modem, etc.) alone, wireless traffic network, cellular traffic network, packet data network (PDN), Internet, intranet, combinations thereof, etc., by any suitable interface mechanism or traffic technology. Container application resilience is provided by: 1) multiple instances of container services in multiple pools or availability zones, and multiple data centers used in combination with a Global Load Balancer acting as a front end; 2) container software development kits (SDKs) and container resiliency handling for event sources such as Interactive Servicing Fabric microservices; and 3) websocket resilience and REST service resilience.
[0063] 3, the MSFC device 202 is shown and described as including a contact center servicing fabric container module 302, however, the MSFC device 202 may include, for example, additional rules, policies, modules, databases, applications, etc. As described below, the contact center servicing fabric container module 302 is configured to implement a method for providing a container application for a microservices front-end desktop platform in a contact center environment.
[0064] In an exemplary embodiment, the container application provides a set of container capabilities such as: 1) accepting any framework (e.g., Vue.js, React, Angular, etc.) as web components or iframes; 2) providing OAUTH2 authentication and authorization; 3) framework agnostic SDK for widgets; 4) lifecycle events: login / logout / timeout; 5) seamless high availability (HA) / resilience; 6) seamless login across different seal identities; 7) dynamic layout loading based on role; 8) dynamic loading of widgets (i.e., Gaia hosted applications); 9) providing inter-component eventing; 10) websocket eventing; 11) access to Praesto's Interaction Servicing Fabric (ISF) (i.e., Omni-Channel Target State Contact Center) capabilities; and 12) application ID for each micro-frontend and role for each layout and application.
[0065] In an exemplary embodiment, the specification for each application includes: 1) ID: 1605716178245 (i.e., a random ID generated by the container administrator based on the epoch); 2) Name: "oc-brand-bar" (i.e., a user-provided name); 3) Display: "oc-brand-bar" (i.e., a user-provided display); 4) Tag: "oc-brand-bar" (i.e., a name given to the web component in the html tag); 5) JS URL: "https: / / oc-brandbar.apps.dev.domain.net / src / component / BrandBarComponent.js" (i.e., a URL to the JS file); 6) Micro-frontend URL: "https: / / oc-brandbar.apps.dev.domain.net" (i.e., a web URL where the component loads itself); and 7) "mode".
[0066] In one exemplary embodiment, each layout has the following content and public URL: Layouts may be extended with event-related actions (i.e., dynamic layouts) that may include changes to another layout:
[0067] [Table 1]
[0068] 3 illustrates an example process 300 for providing a container application for a microservices front-end desktop platform in a contact center environment using the network environment of FIG. 2. Specifically, a first client device 208(1) and a second client device 208(2) are illustrated as being capable of communicating with MSFC device 202. In this regard, first client device 208(1) and second client device 208(2) may be “clients” of MSFC device 202 and are described as such herein. However, it is understood and known that first client device 208(1) and / or second client device 208(2) are not necessarily “clients” of MSFC device 202 or any of the entities described herein in association with MSFC device 202. There may be additional or alternative relationships, or no relationships at all, between either or both of first client device 208(1) and second client device 208(2) and MSFC device 202.
[0069] Additionally, the MSFC device 202 is depicted as having access to a per-container software compatibility data repository 206(1) and a customer interaction servicing database 206(2). The contact center servicing 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.
[0070] The first client device 208(1) may be, for example, a smartphone, etc. Of course, the first client device 208(1) may be any other device described herein. The second client device 208(2) may be, for example, a personal computer (PC), etc. Of course, the second client device 208(2) may also be any other device described herein.
[0071] The process may be performed over communication network 210, which may be comprised of multiple networks as described above. For example, in one exemplary embodiment, first client device 208(1) and / or second client device 208(2) may communicate with MSFC device 202 via broadband or cellular communications. Of course, these embodiments are merely illustrative and not limiting or exhaustive.
[0072] The contact center servicing fabric container module 302 is initiated to execute a process for providing a container application for a front-end desktop platform for microservices in a contact center environment. In an exemplary embodiment, the starting point is to utilize the management aspect of the container application, where a container management administrator can create a layout, define the applications in the layout and various other details, and then publish the layout. Users can then load the layout from the published Uniform Resource Indicator (URI) and access the specific layout through the micro front-end application loaded by the container application. Flowchart 400 of FIG. 4 illustrates an example of a process for providing a container application for a front-end desktop platform for microservices in a contact center environment.
[0073] In process 400 of FIG. 4, in step S402, the contact center servicing fabric container module 302 displays a user interface on each of a plurality of workstations corresponding to users of a container application. The user interface provides access to a plurality of software applications used in the contact center environment. In an exemplary embodiment, each displayed user interface comprises a micro front end that realizes a plurality of microservices corresponding to some of the plurality of software applications. A container is an extensible runtime loader that allows each team to develop an application with their own seal identity and at their own pace.
[0074] At step S404, the contact center servicing fabric container module 302 receives a software application from a user who wishes to have the software application integrated into the container for use in the contact center environment. In an exemplary embodiment, the software application may have any of the Vue.js framework, the ReactJS framework, and the AngularJS framework.
[0075] In step S406, the contact center servicing fabric container module 302 enables or facilitates interaction between the software applications integrated into the container, such that all users with access to the container can take advantage of each application included in the container.
[0076] In step S408, the contact center servicing fabric container module 302 performs access authentication of the entitled user. In this embodiment, when a user wants to access an application from within the container, the user may be required to present credentials that prove that the user is authorized to access the application, and if the presentation of the credentials is confirmed, the user may be granted access authentication. In an exemplary embodiment, the access authentication is with respect to roles specified in the layout specification of the container, and only micro-frontends that allow the role that the particular user has are displayed to the particular user.
[0077] In step S410, the contact center servicing fabric container module 302 provides a communication context for communication flows between applications contained in the container. The communication flows can be driven or facilitated by JavaScript (JS) Application Programming Interfaces (APIs) and JS events. In an exemplary embodiment, the context is a customer interaction, such as a call handled by a contact center agent. The agent uses the container to interact with multiple micro-frontends. Each micro-frontend appropriately retrieves information related to the customer through the corresponding communication metadata. This model can be extended to other use cases, where the context can be any suitable situation, such as past customer interactions, cases or accounts in different branches, etc. The communication context flow can come at the beginning of a call or can occur during a call when one micro-frontend is launched and / or transitions to another micro-frontend. For example, someone with expertise can move from helping a customer with their credit card (i.e., a first micro-frontend) to helping the customer with their savings account (i.e., a second micro-frontend).
[0078] In step S412, the contact center servicing fabric container module 302 provides a container software development kit (SDK) that provides access to a JavaScript library to assist users in developing new applications that may ultimately be deployed in the container. The container SDK facilitates interaction between applications within the container and also enables or facilitates further functionality such as container lifecycle events, event passing from server-side applications, providing an interaction servicing fabric that routes customer calls to experts, etc.
[0079] In step S414, the contact center servicing fabric container module 302 forwards the customer call information to the applications contained in the container. In this regard, when a customer call is received, information about the caller and the reason for the call can be determined. The information is then forwarded to various applications to service the call. Similarly, the container SDK may be used to send events from one micro frontend to another, i.e., a web component, embedded inline frame, child window, or thick application in the same browser, by an event bridge between the container and various micro frontends. It is also possible to send requests from one micro frontend to another, i.e., a request-response style event. As a result, a change may be triggered from one micro frontend to another. Events may be sent from the container to the micro frontend, or from the micro frontend to the container. Events from the micro frontend to the container may also trigger a layout change.
[0080] Thus, the present technology provides an optimized process for delivering container applications for a microservices front-end desktop platform in a contact center environment.
[0081] While the present invention has been described with reference to certain exemplary embodiments, it is to be understood that the language used is intended to be descriptive and illustrative rather than limiting. Changes may be made within the scope of the appended claims, as amended, without departing from the scope and spirit of each aspect of the present disclosure. Although the present invention has been described with reference to specific means, materials, and embodiments, the present invention is not limited to the specific disclosures, but rather extends to all functionally equivalent structures, methods, and uses, as fall within the scope of the appended claims.
[0082] For example, although a computer-readable medium may be described as being a single medium, the term "computer-readable medium" encompasses a single medium or multiple media, such as a centralized or distributed database and / or associated caches or servers that store one or more instructions. Additionally, the term "computer-readable medium" encompasses any medium capable of storing, encoding or retaining instructions for execution by a processor or that causes a computer system to implement any one or more of the embodiments disclosed herein.
[0083] The computer readable medium may be comprised of one or more non-transitory computer readable media and / or one or more transitory computer readable media. In one non-limiting embodiment, the computer readable medium may be comprised of a solid-state memory, such as a package, such as a memory card, that contains one or more non-volatile read-only memories. The computer readable medium may also be a volatile re-writable memory, such as a random access memory. The computer readable medium may also include magneto-optical or optical media, such as a storage device, such as a disk, tape, etc., that collects carrier signals, such as signals transmitted over a transmission medium. Thus, the present disclosure should be construed to encompass any computer readable medium on which data or instructions may be stored, as well as other equivalents and successor media.
[0084] Although the present application describes certain embodiments that may be embodied 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 (ASICs), programmable logic arrays (PLAs), or other hardware devices, may also be constructed to perform one or more of the embodiments described herein. Potential applications of the various embodiments described herein may broadly include various electronic and computer systems. Thus, the present application may encompass software implementations, firmware implementations, hardware implementations, or combinations thereof. Nothing in the present application should be interpreted as being implemented or capable of being implemented solely in software and not hardware.
[0085] Although components and functions that may be implemented in particular embodiments are described herein with reference to particular standards and protocols, the present disclosure is not limited to such standards and protocols. Such standards are over time superseded by faster or more efficient equivalents of essentially the same functionality. Thus, replacement standards or protocols having the same or similar functionality are considered equivalents.
[0086] The drawings of the embodiments described herein are intended to provide a basic understanding of each embodiment. The drawings are not intended to serve as a complete description of all of the features and components of an apparatus or system utilizing the structures and methods described herein. Numerous alternative embodiments may become apparent to those skilled in the art upon review of the present disclosure. Other embodiments may be derived and utilized from the present disclosure, and substitutions or changes may be made in structure and logic without departing from the scope of the present disclosure. Additionally, the drawings are merely symbolic and may not be drawn to scale. Proportions in the drawings may be exaggerated or reduced. Thus, the present disclosure and drawings are to be considered illustrative rather than limiting.
[0087] One or more embodiments of the present disclosure may be referred to herein, singly and / or collectively, as the "present invention." This is for convenience only, and is not intended to voluntarily limit the scope of the present application to any particular invention or inventive concept. In addition, while specific embodiments are shown and described herein, it is understood that the specific embodiments shown may be replaced by any subsequent arrangements designed to accomplish the same or similar purpose. The present disclosure is intended to encompass any and all subsequent adjustments and modifications of each embodiment. Combinations of the above embodiments and other embodiments not specifically described herein will be apparent to those of skill in the art upon review of this specification.
[0088] The Abstract of the Disclosure is submitted with the understanding that it will not interpret or limit the scope or meaning of the claims. In addition, the foregoing Detailed Description may group or describe various configurations in a single embodiment for the purpose of streamlining the disclosure. The embodiments described in each claim should not be interpreted as reflecting an intention that more configurations are required than are expressly recited in each claim, because of this disclosure. Rather, as the appended claims suggest, the subject matter of the invention may be directed to fewer configurations / components than are disclosed for any embodiment. In other words, the appended claims are incorporated into the Detailed Description with each claim defining an independent subject matter in its own right.
[0089] The subject matter disclosed hereinabove is illustrative and not limiting, and the appended claims are intended to embrace all such modifications, improvements and other embodiments that fall within the true spirit and scope of the present disclosure. Accordingly, to the maximum extent permitted by law, the scope of the present disclosure shall be determined by the broadest interpretation of the appended claims and their equivalents, and shall not be limited or restricted by the foregoing detailed description.
Claims
1. 1. A method implemented on at least one processor for providing a container application for a servicing platform, the method comprising: displaying, by the at least one processor, a user interface on each of a plurality of workstations corresponding to users of a container application for use in a contact center environment; receiving, from a first workstation of a first user via the user interface, by the at least one processor, a first software application configured to be integrated with the container application for use in the contact center environment; receiving, by the at least one processor via the user interface from a second workstation of a second user, a second software application configured to be integrated with the container application for use in the contact center environment, the second software application being received simultaneously with the first software application; receiving, by the at least one processor via the user interface, a request from a third user for access to 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 and second software applications via the container application, the container application allowing access to a plurality of software applications; routing, by the at least one processor, the third user to the container application for access to one of the first or second software applications; enabling, by the at least one processor, utilization of each of the first and second software applications by each of the first, second and third users via the container application; displaying, by the at least one processor, to the third user, one or more micro-frontends for one of the first or second software applications; A method comprising: Only micro-frontends that allow the role that the third user has are displayed, The method, wherein the container application is a single application and is configured to include each of a number of container features, such as: (1) acceptance of any framework as a web component; (2) providing OAUTH2 authentication and authorization; (3) a framework-independent software development kit (SDK) for widgets; (4) lifecycle events; (5) seamless high availability (HA) / resilience; (6) seamless login across different seal IDs; (7) dynamic layout loading based on role; (8) dynamic widget loading; (9) providing inter-component eventing; (10) websocket eventing; (11) access to Praesto's Interaction Servicing Fabric (ISF) capabilities; and (12) an application ID for each micro-frontend and a role for each layout and application.
2. 2. The method of claim 1, wherein the step of displaying the user interface includes a substep of displaying micro-frontends that implement a plurality of microservices corresponding to portions of the plurality of software applications.
3. 2. The method of claim 1, wherein the step of enabling includes the substep of performing access authentication of each of the first, second and third users for each of the first and second software applications.
4. 2. The method of claim 1, wherein the step of enabling includes the substep of providing a communication context that enables a communication flow between the first software application and the second software application.
5. The method of claim 4 further comprising: implementing said communication flow through a scripting language application programming interface (API) and scripting language events; A method comprising:
6. 2. The method of claim 1, wherein the container application includes a container software development kit (SDK) that provides access to a library of scripting languages to facilitate interaction between the multiple software applications.
7. The method of claim 1 , wherein the plurality of software applications includes a software application having a scripting framework.
8. The method of claim 1 further comprising: upon receipt of a customer call, transmitting information relating to the received customer call via said container application to each of said plurality of software applications; A method comprising:
9. 1. A computing device for providing a container application for a servicing platform, comprising: A processor; A memory for storing instructions; a communication interface coupled to each of the processor and the memory; wherein the processor: displaying a user interface on each of a plurality of workstations corresponding to users of the container application in a contact center environment; receiving, from a first workstation of a first user via the user interface and the communications interface, a first software application configured to be integrated with the container application for use in the contact center environment; receiving, from a second workstation of a second user via the user interface and the communications interface, a second software application configured to be integrated with the container application for use in the contact center environment, the second software application being received simultaneously with the first software application; receiving, by the at least one processor via the user interface, from a third user a request for access to 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 and second software applications via the container application, the container application allowing access to a plurality of software applications; routing, by the at least one processor, the third user to the container application for access to one of the first or second software applications; enabling utilization of each of the first and second software applications by each of the first, second and third users via the container application; displaying, by the at least one processor, to the third user, one or more micro-frontends for one of the first or second software applications.
1. A computing device in which a processor executes instructions such as: Only micro-frontends that allow the role that the third user has are displayed, The container application is a single application and is configured to include each of a number of container functions, such as: (1) acceptance of any framework as a web component; (2) providing OAUTH2 authentication and authorization; (3) a framework-independent software development kit (SDK) for widgets; (4) lifecycle events; (5) seamless high availability (HA) / resilience; (6) seamless login across different seal IDs; (7) dynamic layout loading based on role; (8) dynamic widget loading; (9) providing inter-component eventing; (10) websocket eventing; (11) access to Praesto's Interaction Servicing Fabric (ISF) capabilities; and (12) an application ID for each micro-frontend and a role for each layout and application.
10. 10. The computing device of claim 9, wherein the processor further displays micro-frontends implementing a plurality of microservices corresponding to portions of the plurality of software applications.
11. 10. The computing device of claim 9, wherein the processor is further configured to perform access authentication of the first, second and third users for each of the first and second software applications.
12. 10. The computing device of claim 9, wherein the processor is further configured to provide a communication context that enables a communication flow between the first software application and the second software application.
13. 13. The computing device of claim 12, wherein the processor is further configured to effect the communication flow through a scripting language application programming interface (API) and a scripting language event.
14. 10. The computing device of claim 9, wherein the container application includes a container software development kit (SDK) configured to provide access to a library of scripting languages to facilitate interaction between the multiple software applications.
15. 10. The computing device of claim 9, wherein the plurality of software applications includes a software application having a scripting framework.
16. 10. The computing device of claim 9, wherein the processor is further configured to, upon receipt of a customer call, forward information relating to the received customer call to each of the plurality of software applications via the container application.
17. 1. A non-transitory computer readable storage medium having stored thereon instructions for providing a container application for a servicing platform, the storage medium comprising executable code that, when executed by a processor, causes the processor to: displaying a user interface on each of a plurality of workstations corresponding to users of the container application for use in a contact center environment; receiving, from a first workstation of a first user via the user interface, a first software application configured to be integrated with the container application for use in the contact center environment; receiving, from a second workstation of a second user via the user interface, a second software application configured to be integrated with the container application for use in the contact center environment, the second software application being received simultaneously with the first software application; receiving, via the user interface, a request from a third user for access to at least one of the first software application provided by the first user and the second software application provided by the second user; configuring the container application to allow access to the first and second software applications via the container application, the container application allowing access to multiple software applications; routing the third user to the container application for access to one of the first or second software applications; enabling the first, second and third users to utilize each of the first and second software applications via the container application; and displaying to the third user one or more micro-frontends for one of the first or second software applications; A storage medium for causing a program to execute the program, Only micro-frontends that allow the role that the third user has are displayed, The container application is a single application and is configured to include each of multiple container functions, such as (1) acceptance of any framework as a web component, (2) providing OAUTH2 authentication and authorization, (3) a framework-independent software development kit (SDK) for widgets, (4) lifecycle events, (5) seamless high availability (HA) / resilience, (6) seamless login across different seal IDs, (7) dynamic layout loading based on role, (8) dynamic widget loading, (9) providing inter-component eventing, (10) websocket eventing, (11) access to Praesto's Interaction Servicing Fabric (ISF) functions, and (12) application ID for each micro-frontend, and role for each layout and application.
18. 20. The storage medium of claim 17, wherein the executable code further comprises: displaying micro-frontends implementing a plurality of microservices corresponding to portions of the plurality of software applications; A storage medium configured to cause
19. 20. The storage medium of claim 17, wherein the executable code further comprises: performing access authentication for each of the first, second and third users for each of the first and second software applications; A storage medium configured to cause
20. 20. The storage medium of claim 17, wherein the container application includes a container software development kit (SDK) that provides access to a library of scripting languages to facilitate interaction between the multiple software applications.