Container applications for microservices front-end desktops

The method and system for container applications on a microservices front-end desktop platform address integration challenges by using a container SDK to facilitate communication and authentication between diverse applications, improving customer service efficiency.

JP7819218B2Active Publication Date: 2026-02-24JPMORGAN CHASE BANK NA
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023579004
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-06-22
Filing Date
2022-05-25
Publication Date
2026-02-24
Estimated Expiration
2042-05-25

AI Technical Summary

Technical Problem

Large enterprise organizations face challenges in integrating newly developed applications with their existing software suite in contact centers due to application diversity and scale, affecting customer service efficiency.

Method used

A method and system for providing container applications on a microservices front-end desktop platform, utilizing a container software development kit (SDK) to facilitate interaction between multiple software applications, including user authentication and communication flows, and supporting frameworks like Vue.js, ReactJS, and AngularJS.

Benefits of technology

Enables seamless integration and efficient handling of customer interactions by allowing multiple software applications to communicate effectively, enhancing customer service quality and organizational reputation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000024_0000
    Figure 00000024_0000
  • Figure 00000024_0001
    Figure 00000024_0001
  • Figure 00000024_0002
    Figure 00000024_0002
Patent Text Reader

Abstract

A method and system for providing a container application for a servicing platform is provided. The method includes the steps of: displaying a user interface on each of a plurality of workstations, receiving a first software application from a first user via the user interface, receiving a second software application from a second user via the user interface, and enabling each of the first, second and at least a third users to utilize the first and second software applications via a container application that provides access to the plurality of software applications, the user interface comprising a micro frontend that realizes a plurality of microservices corresponding to portions of the plurality of software applications.
Need to check novelty before this filing date? Find Prior Art

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 their service requests to be handled on time and accurately. If an organization does not provide such customer service, the organization's reputation can be adversely affected.

[0004] Many customer service requests are made online via the Internet, and for these requests, business organizations may utilize contact centers, which 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 the rest 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 front-end desktop platform for microservices 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 present disclosure, a method for providing a container application for a microservices front-end desktop platform in a contact center environment is provided, the method being implemented on at least one processor and including the steps of: 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, second, and at least a third user by a container application that provides access to the 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 JavaScript libraries 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 regarding the received customer call to each of the plurality of software applications via the container application.

[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 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 communications interface; receive a second software application from a second user via the user interface and the communications interface; and facilitate or enable use of 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 some of the plurality of software applications.

[0018] The processor may be further configured to perform access authentication of each 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 use of each of the first, second, and at least a third user via 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 some of the plurality of software applications.

[0026] The executable code may further be configured to cause the processor to perform: a procedure for 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 JavaScript libraries to facilitate interaction between the multiple software applications.

[0028] The following detailed description further illustrates the present disclosure 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 explanation of the drawings]

[0029] [Figure 1] FIG. 1 illustrates an example of a computer system. [Figure 2] FIG. 1 illustrates an example of a network environment. [Figure 3] FIG. 1 illustrates an example of a system implementing a method for providing a container application for a microservices front-end desktop platform in a contact center environment. [Figure 4] 1 is a flowchart 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 INVENTION

[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, examples may be embodied as one or more non-transitory computer-readable media storing 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 each example of the technology illustrated and described herein.

[0032] 1 illustrates an example of a system 100 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, alone or in cooperation with other devices described herein, to perform any one or more of the methods or computer-based functions disclosed herein. The computer system 102 may operate as a standalone device or may be connected to other systems or peripherals. For example, the computer system 102 may consist of 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 role 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 embodied as or incorporated into a variety of devices, such as a personal computer, tablet computer, set-top box, personal digital assistant, mobile device, palmtop computer, laptop computer, stationary computer, communication device, wireless smartphone, personal trusted device, wearable device, global positioning satellite (GPS) device, web appliance, or any machine capable of executing instructions (e.g., sequential instructions) that define the operations to be performed by the computer system. Also, while 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. As used herein, the term "non-transient" should be interpreted as referring to a state that persists for a certain period of time, rather than a state that is permanent. Specifically, the term "non-transient" negates the notion of a fleeting nature, such as a particular carrier wave or signal, which exists only transiently at any time and in any 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 part of an application-specific integrated circuit (ASIC). The processor 104 may also be a microprocessor, microcomputer, processor chip, controller, microcontroller, digital signal processor (DSP), state machine, or programmable logic device. Processor 104 may also be a logic circuit, such as a programmable gate array (PGA) like a field programmable gate array (FPGA), or other type of circuitry comprised of discrete gate and / or transistor logic. Processor 104 may also be a central processing unit (CPU), a graphics processing unit (GPU), or both. Any processor described herein may also comprise multiple processors, parallel processors, or both. Multiple processors may be contained in or connected to a single device, or may be contained in or connected to multiple devices.

[0036] The computer system 102 may further include computer memory 106. The computer memory 106 may be a communicable static memory, a dynamic memory, or both. 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 a state that persists for a period of time, rather than a state that is permanent. Specifically, the term "non-transient" negates the notion of a temporary state, such as a particular carrier wave or signal, which exists only transiently at any time and in any place. The memory is a component of an article of manufacture and / or machine. Memory, as described herein, is a computer-readable medium from which data and executable instructions can be read by a computer. Memory as 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. Memory may be volatile or non-volatile memory, and may be secure and / or encrypted, or non-secure and / or unencrypted. Of course, computer memory 106 may be any combination of memories or may consist of 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. Furthermore, those skilled in the art will also 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 devices 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 executed by a processor to implement one or more of the methods or processes described herein. 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, 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 communicate with each other via a communication link, such as a bus 118. As shown in FIG. 1, the components may communicate with each other via an internal bus. However, one skilled in the art will recognize that any of the components may be connected via an expansion bus. The bus 118 may also enable communication via any commonly understood and known standard, such as, but not limited to, peripheral component interconnect, peripheral component interconnect express, parallel advanced technology attachment, or 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 called a broadcast channel supported by modern browsers. There may also be eventing between a server microservice and a container application, such as websockets that are fed to one or more micro-frontends. The server microservice itself may utilize an eventing technology from another application, such as 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, or a short-range network. The short-range network may be, for example, Bluetooth, Zigbee, infrared, near-field communication, ultraband, or any combination thereof. Those skilled in the art will recognize that additional understood and known networks 122 may be used in addition or instead, and further, that the above examples of the network 122 are not limited to or exhaustive. Also, while FIG. 1 depicts the network 122 as a wireless network, those skilled in the art will recognize that the network 122 may also be a wired network.

[0043] The additional 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 instructions (e.g., sequential instructions) that define the operations the computing device 120 is to perform, such as a laptop computer, a tablet PC, a personal digital assistant, a mobile device, a palmtop computer, a desktop computer, a communications device, a wireless telephone, a personal trusted device, a web appliance, or a server. Of course, those skilled in the art will appreciate that the above-described devices are merely exemplary, and that the device 120 may be any additional device or arrangement commonly understood and known in the art without departing 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.

[0044] Of course, those skilled in the art will recognize that the above-described components of computer system 102 are merely exemplary and not intended to be all-inclusive and / or comprehensive, and that the above examples of such components are also merely exemplary and not intended to be all-inclusive and / or comprehensive.

[0045] In various 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. 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 network environment 200 for implementing a method for providing a container application for a microservices front-end desktop platform in a contact center environment. In an exemplary embodiment, the method can be performed on any networked computer platform, such as a personal computer (PC).

[0048] The method for 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 executable instructions that, when executed by the MSFC device 202, 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 other applications. 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 within 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 on 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 on one or more virtual machines (VMs) running on the MSFC device 202. In one or more embodiments of the present technology, the one or more virtual machines running 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 running on a desktop.

[0050] 2, network environment 200 includes MSFC device 202 connected to multiple server devices 204(1)-204(n), which host multiple databases 206(1)-206(n), as well as multiple client devices 208(1)-208(n), via one or more communications networks 210. A communications interface (e.g., network interface 114 of computer system 102 of FIG. 1) of MSFC device 202 operatively connects 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 interconnected 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 one another 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, etc.

[0052] By way of example only, 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 the industry-standard TCP / IP protocol; however, other types and / or numbers of protocols and / or communications networks may be utilized. Communications network 210 in 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 a combination thereof. In an exemplary embodiment, a 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 omnichannel customer interactions for delivery 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 apparatuses 204(1)-204(n)). In one particular example, MSFC device 202 may consist of or be hosted by one of server apparatuses 204(1)-204(n), although other configurations are also possible. One or more of MSFC device 202 may reside within 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 or the 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, any of the server devices 204(1)-204(n) may include one or more processors, memory, communication interfaces, etc., which are connected to one another by a communication link such as a bus. However, other numbers and / or types of network devices may be used. In this example, the server devices 204(1)-204(n) 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 for carrying objects via the REST protocol or websocket protocol. However, other protocols may be used.

[0055] 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. Server devices 204(1)-204(n) host databases 206(1)-206(n). Databases 206(1)-206(n) are configured to store data related to software compatibility per container and interactive servicing data related to services provided to customers through the contact center. Container application persistence includes container layouts and micro-frontend applications within those 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 server device 204(1)-204(n) may be distributed to one or more separate network computing devices, which then 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 one 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 within, for example, a cluster architecture, a peer-to-peer architecture, a virtual machine, or a cloud architecture. In other words, the technology disclosed herein should not be construed as being limited to a single environment, and other configurations and architectures are also contemplated.

[0058] 1 and may have any of the configurations or combinations of configurations described therein. For example, client devices 208(1)-208(n) in this example may comprise any type of computing device capable of interacting with MSFC device 202 via communications network 210. That is, 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 one 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] Client devices 208(1)-208(n) may run an interface application, such as a standard web browser or a standalone client application, that communicates with MSFC device 202 over communications network 210 to provide an interface for user requests and information exchange. Client devices 208(1)-208(n) may also 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 Visual C# application, a Visual C++ application, a Visual Basic application, and / or a remotely hosted application such as Salesforce, running on any client device 208(x).

[0060] Although an exemplary network environment 200 is shown and described herein, including an MSFC device 202, server devices 204(1)-204(n), client devices 208(1)-208(n), and communication network 210, other topologies and other types and / or numbers of systems and / or devices and / or components and / or elements may be used. Those skilled in the relevant art will recognize that the exemplary systems described herein are merely exemplary, as numerous variations are possible in the specific hardware and software used to implement the exemplary systems.

[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. Additionally, there may be more or fewer MSFC devices 202, server devices 204(1)-204(n), or client devices 208(1)-208(n) than depicted in FIG. 2.

[0062] Additionally, any system or device in any example may be replaced with two or more computing systems or devices. This means that principles and benefits of distributed processing, such as redundancy and replication, may also be implemented, where appropriate, to enhance the robustness and performance of the device or system in each example. By way of example only, each example may be implemented by one or more computer systems extending across any suitable network, such as any suitable form of communications traffic (e.g., voice, modem, etc.) alone, wireless traffic networks, cellular traffic networks, packet data networks (PDNs), the Internet, intranets, or any combination thereof, using any suitable interface mechanism or traffic technology. Resilience for container applications is provided by: 1) multiple instances of container services in multiple pools or availability zones and multiple data centers combined with a global load balancer serving as a front end; 2) container software development kits (SDKs) and container resiliency handling for event sources such as interaction servicing fabric microservices; and 3) websocket resilience and REST service resilience.

[0063] 3 illustrates and describes MSFC device 202 as including contact center servicing fabric container module 302, MSFC device 202 may include, for example, additional rules, policies, modules, databases, applications, etc. As described below, 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) 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., omnichannel, 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 specifications for each application include: 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., the 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., the URL to the JS file); 6) Micro-frontend URL: "https: / / oc-brandbar.apps.dev.domain.net" (i.e., the web URL from which the component loads itself); and 7) "mode".

[0066] In one exemplary embodiment, each layout has the following content and public URL: Layouts may also 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 implementing a mechanism for providing container applications 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 depicted 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. Additional, alternative, or no relationships may exist between either or both of first client device 208(1) and second client device 208(2) and MSFC device 202.

[0069] Additionally, MSFC device 202 is depicted as having access to container-specific software compatibility data repository 206(1) and customer interaction servicing database 206(2). 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 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, for example, a personal computer (PC) or the like. 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 intended to be illustrative and not limiting or exhaustive.

[0072] The Contact Center Servicing Fabric container module 302 is invoked 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 the administrative aspects of the container application. Here, a container administrative administrator can create a layout, define the applications within the layout, and various other details, and then publish the layout. Users can then load the layout from a published uniform resource indicator (URI) and access the specific layout through the micro-front-end applications loaded by the container application. Flowchart 400 in FIG. 4 outlines an example process for providing a container application for a front-end desktop platform for microservices in a contact center environment.

[0073] In process 400 of Figure 4, in step S402, the contact center servicing fabric container module 302 displays a user interface on each of multiple workstations corresponding to users of the container application. The user interface provides access to multiple software applications used in the contact center environment. In an exemplary embodiment, each displayed user interface comprises a micro front-end that implements multiple microservices corresponding to portions of the multiple software applications. The container is an extensible runtime loader that allows each team to develop an application at their own pace, with their own seal identity.

[0074] In step S404, the contact center servicing fabric container module 302 receives a software application from a user who wants 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 rights to the container can effectively utilize each application included in the container.

[0076] In step S408, the contact center servicing fabric container module 302 performs access authentication of the qualified 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 verified, 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 a particular user is only shown micro frontends that allow the particular user to have the roles that the particular user has.

[0077] In step S410, the contact center servicing fabric container module 302 provides a communication context for the communication flow between applications contained in the container. The communication flow can be initiated 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 corresponding communication metadata. This model can be extended to other use cases, where the context can be any suitable situation, such as a previous customer interaction, a case or account at another branch, or the like. The communication context flow can occur at the start of a call or during a call when one micro-frontend is launched and / or transitions to another. For example, someone with expertise can move from helping a customer with their credit card (i.e., a first micro-frontend) to helping them 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 JavaScript libraries 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 additional functionality such as container lifecycle events, event passing from server-side applications, and providing an interaction servicing fabric for routing customer calls to experts.

[0079] In step S414, the Contact Center Servicing Fabric container module 302 forwards customer call information to 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. This information is then forwarded to various applications to service the call. Similarly, the container SDK can also be used to send events from one micro frontend to another, i.e., a web component, embedded iframe, child window, or thick application within the same browser, via an event bridge between the container and various micro frontends. It is also possible for one micro frontend to send requests to another, i.e., a request-response style event. As a result, one micro frontend can trigger changes to another micro frontend. Events can be sent from the container to the micro frontend, or from the micro frontend to the container. Events from a micro frontend to the container can also trigger layout changes.

[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 several 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 present and as amended, without departing from the scope and spirit of each aspect of the present disclosure. While the present invention has been described with reference to particular 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, such as fall within the scope of the appended claims.

[0082] For example, while a computer-readable medium may be described as 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 cache or server that stores one or more instructions. The term "computer-readable medium" also 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 comprise one or more non-transitory computer-readable media and / or one or more transient computer-readable media. In one non-limiting embodiment, the computer-readable medium may comprise solid-state memory, such as a memory card or other package containing one or more non-volatile read-only memories. The computer-readable medium may also comprise volatile rewritable memory, such as random access memory. The computer-readable medium may also include magneto-optical or optical media, such as disks, tapes, or other storage devices that collect carrier signals, such as signals transmitted over a transmission medium. Accordingly, the present disclosure should be construed to encompass all computer-readable media on which data or instructions may be stored, as well as other equivalents and successor media.

[0084] While this application describes certain embodiments that may be embodied as a computer program 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 similar 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, this application may encompass software implementations, firmware implementations, hardware implementations, or combinations thereof. Nothing in this application should be interpreted as being implemented or capable of being implemented solely in software rather than hardware.

[0085] Although components and functions that may be implemented in particular embodiments are described herein with reference to particular standards or protocols, the present disclosure is not limited to such standards or protocols. Such standards are superseded over time by faster or more efficient equivalents of essentially the same functionality. Accordingly, 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 structural and logical substitutions and changes may be made 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. Therefore, the present disclosure and the drawings should be considered illustrative and not limiting.

[0087] Although one or more embodiments of the present disclosure may be referred to herein, singly and / or collectively, as the "present invention," this is done for convenience only and is not intended to intentionally limit the scope of the present application to any particular invention or inventive concept. Furthermore, while specific embodiments are shown and described herein, it should be understood that the specific illustrated embodiments may be replaced by any subsequent arrangements designed to achieve the same or similar purposes. The present disclosure is intended to encompass any and all subsequent adaptations and variations of each embodiment. Combinations of the above embodiments, as well as other embodiments not specifically described herein, will be apparent to those skilled 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. Moreover, the foregoing Detailed Description may group or describe various features in a single embodiment for the purpose of streamlining the disclosure. This disclosure should not be interpreted as reflecting an intention that the recited embodiments in each claim require more features than are expressly recited in each claim. Rather, as the appended claims suggest, inventive subject matter may be directed to fewer features / components than are disclosed in any embodiment. In other words, the appended claims are hereby incorporated into the Detailed Description, with each claim defining independent subject matter in its own right.

[0089] The foregoing disclosed subject matter is intended to be 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, Therefore, the scope of the present disclosure is to be determined by the broadest interpretation of the appended claims and their equivalents, and is not to be restricted or limited by the above detailed description. The present invention includes the following embodiments. [Aspect 1] 1. A method implemented on at least one processor for providing a container application for a servicing platform, the method comprising: displaying, by said at least one processor, a user interface on each of the 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; enabling, by the at least one processor, each of the first user, the second user, and at least a third user to utilize each of the first and second software applications via a container application that provides access to a plurality of software applications; A method comprising: [Aspect 2] 10. 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 some of the plurality of software applications. [Aspect 3] In the method of aspect 1, the enabling step includes a substep of performing access authentication for each of the first, second, and third users for each of the first and second software applications. [Aspect 4] 2. The method of claim 1, wherein the enabling step includes a substep of providing a communication context that enables a communication flow between the first software application and the second software application. [Aspect 5] The method of embodiment 4, further comprising: implementing said communication flow through a JavaScript application programming interface (API) and JavaScript events; A method comprising: [Aspect 6] 2. The method of claim 1, wherein the container application includes a container software development kit (SDK) that provides access to a JavaScript library to facilitate interaction between the multiple software applications. [Aspect 7] 2. The method of claim 1, wherein the plurality of software applications includes a software application having at least one of a Vue.js framework, a ReactJS framework, and an AngularJS framework. [Aspect 8] The method of embodiment 1, further comprising: upon receiving a customer call, forwarding information relating to the received customer call to each of the plurality of software applications via the container application; A method comprising: [Aspect 9] 1. A computing device for providing a container application for a servicing platform, comprising: a processor; Memory and a communication interface connected to each of the processor and the memory; wherein the processor: Displaying a user interface on each of the plurality of workstations; receiving a first software application from a first user via the user interface and the communications interface; receiving a second software application from a second user via the user interface and the communications interface; 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 the plurality of software applications; 1. A computing device configured to: [Aspect 10] 10. The computing device of claim 9, wherein the processor is further configured to display micro-frontends that implement a plurality of microservices corresponding to some of the plurality of software applications. [Aspect 11] In a computing device as described in aspect 9, the processor is further configured to perform access authentication for each of the first, second, and third users for each of the first and second software applications. [Aspect 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. [Aspect 13] 13. The computing device of claim 12, wherein the processor is further configured to perform the communication flow through a JavaScript application programming interface (API) and JavaScript events. [Aspect 14] In a computing device as described in aspect 9, the container application includes a container software development kit (SDK) configured to provide access to JavaScript libraries to facilitate interaction between the multiple software applications. [Aspect 15] 10. The computing device of claim 9, wherein the plurality of software applications includes a software application having at least one of the Vue.js framework, the ReactJS framework, and the AngularJS framework. [Aspect 16] In a computing device as described in aspect 9, the processor is further configured, upon receiving a customer call, to transfer information regarding the received customer call to each of the plurality of software applications via the container application. [Aspect 17] 1. A non-transitory computer-readable storage medium storing 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 the plurality of workstations; receiving a first software application from a first user via the user interface; receiving a second software application from a second user via the user interface; and enabling each of the first and second software applications to be utilized by each of the first, second, and at least a third user via a container application that provides access to the plurality of software applications; A storage medium that executes the above. [Aspect 18] In the storage medium of aspect 17, the executable code further causes the processor to: displaying micro-frontends that implement a plurality of microservices corresponding to portions of the plurality of software applications; A storage medium configured to cause execution of [Aspect 19] In the storage medium of aspect 17, the executable code further causes the processor to: 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 execution of [Aspect 20] 18. The storage medium of claim 17, wherein the container application includes a container software development kit (SDK) that provides access to a JavaScript library to facilitate interaction between the multiple software applications.

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, by the at least one processor via the user interface from a first workstation of a first user, 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 multiple 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 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 held by the third user are displayed, The method, wherein the container application is a single application configured to include all of the following container features: (1) accepting any framework as a web component, (2) providing OAUTH2 authentication and authorization, (3) a framework-agnostic 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) providing an application ID for each micro-frontend and the role of each layout and the role of the micro-frontend specified within each layout.

2. 10. 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. 10. 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 receiving a customer call, forwarding information relating to the received customer call to each of the plurality of software applications via the container application; 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 connected 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 use in a contact center environment; receiving, from a first workstation of a first user via the user interface and the communication 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 communication 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 multiple 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 use 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 that: Only micro-frontends that allow the role held by the third user are displayed, The container application is a single application configured to include all of the following container functions: (1) accepting 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) providing an application ID for each micro-frontend and the role of each layout and the role of the micro-frontend specified within each layout.

10. 10. The computing device of claim 9, wherein the processor further displays micro-frontends that implement a plurality of microservices corresponding to portions of the plurality of software applications.

11. 10. The computing device of claim 9, wherein the processor further performs access authentication of each 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 further provides 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 further effects the communication flow through a scripting language application programming interface (API) and scripting language events.

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, transfer information about 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 storing 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 use 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 executing Only micro-frontends that allow the role held by the third user are displayed, The container application is a single application configured to include all of the following container functions: (1) accepting 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) providing an application ID for each micro-frontend and the role of each layout and the role of the micro-frontend specified within each layout.

18. 18. The storage medium of claim 17, wherein the executable code further causes the processor to: displaying micro-frontends that implement a plurality of microservices corresponding to portions of the plurality of software applications; A storage medium configured to cause execution of

19. 18. The storage medium of claim 17, wherein the executable code further causes the processor to: 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 execution of

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.

Citation Information

Patent Citations

  • Service middle station front-end system based on micro front-end architecture

    CN111078204A

  • Customer service representative dashboard application

    US20200226615A1

  • Microservice Deployment

    US20200396225A1