Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR REAL-TIME COMMUNICATION BETWEEN MULTIPLE BROWSER WINDOWS
Document Type and Number:
WIPO Patent Application WO/2024/010599
Kind Code:
A1
Abstract:
Embodiment herein provides a method for real-time communication between multiple browser windows by a system (100). The method includes opening, by the processor (180), a parent browser window and determining, by the processor (180), child browser window needs to be opened by the parent browser window. The method also includes receiving, by the processor (180), an input for creating a communication channel between the parent browser window and the child browser window and opening, by the processor (180), the child browser window from the parent browser window. Further, the method includes creating, by the processor (180), the communication channel between the parent browser window and the child browser window based on the received input; and receiving, by the processor (180), data by the child browser window from the parent browser window through the created communication channel.

Inventors:
RAO ANKIT (IN)
SINGH YATENDRA (IN)
SHARMA KESHAV (IN)
PAL RAJESH (IN)
Application Number:
PCT/US2022/043410
Publication Date:
January 11, 2024
Filing Date:
September 14, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
RAKUTEN MOBILE INC (JP)
RAKUTEN MOBILE USA LLC (US)
International Classes:
G06F9/451; G06F9/54; G06F16/957; G09G5/14; H04L65/401
Foreign References:
US20180121217A12018-05-03
US20140109041A12014-04-17
US20180260270A12018-09-13
US20060031404A12006-02-09
Attorney, Agent or Firm:
KIBLAWI, Fadi N. et al. (US)
Download PDF:
Claims:
CLAIMS

We claim:

1. A method for communication between multiple browser windows in real-time by an system (100), wherein the method comprises: opening, by a processor (180) of the system (100), a parent browser window (1002); determining, by the processor (180), at least one child browser window (1004) needs to be opened by the parent browser window (1002) while the parent browser window (1002) is opened; receiving, by the processor (180), an input for creating a communication channel between the parent browser window (1002) and the at least one child browser window (1004); opening, by the processor (180), the at least one child browser window (1004) from the parent browser window (1002); creating, by the processor (180), the communication channel between the parent browser window (1002) and the at least one child browser window (1004) based on the received input; and receiving, by the processor (180), data by the at least one child browser window (1004) from the parent browser window (1002) through the created communication channel.

2. The method as claimed in claim 1, wherein the input for creating the communication channel comprises at least one of a uniform resource locator (URL) for the at least one child browser window (1004), a communication channel name indicating the communication channel between the parent browser window (1002) and the at least one child browser window (1004), a parameter for indicating whether the at least one child browser window (1004) is one of a new browser window and a new tab in the parent browser window (1002) and a plurality of parameters indicating dimensions of the at least one child browser window (1004). The method as claimed in claim 1, wherein opening, by the processor (180), the at least one child browser window (1004) from the parent browser window (1002) comprises: determining, by the processor (180), that the at least one child browser window (1004) comprising a same child browser window (1004) name does not exist already with the parent browser window (1002); and opening, by the processor (180), the at least one child browser window (1004) from the parent browser window (1002). The method as claimed in claim 1, wherein receiving, by the processor (180), the data by the at least one child browser window (1004) from the parent browser window (1002) through the created communication channel comprises: sending by the at least one child browser window (1004) an initialization event to the parent browser window (1002) for performing a handshake; accepting by the parent browser window (1002) the initialization event sent by the at least one child browser window (1004) and performing the handshake; authenticating the handshake received from the parent browser window (1002) by the at least one child browser window (1004) based on a communication channel name of the communication channel created between the parent browser window (1002) and the at least one child browser window (1004); sending the data by the parent browser window (1002) to the at least one child browser window (1004) through the created communication channel; and receiving the data by the at least one child browser window (1004) through the created communication channel from the parent browser window (1002). The method as claimed in claim 1, further comprises: determining, by the processor (180), that the at least one child browser window (1004) needs to be closed; automatically sending, by the processor (180), a response comprising output data from the at least one child browser window (1004) to the parent browser window (1002) to reallocate a dump memory (120) associated with the at least one child browser window (1004). The method as claimed in claim 1, further comprises: determining, by the processor (180), that the parent browser window (1002) is closed when the at least one child browser window (1004) is still open; sending, by the processor (180), a notification to the at least one child browser window (1004) that the parent browser window (1002) is closed; and automatically closing, by the processor (180), the at least one child browser window (1004). A system (100) for communication between multiple browser windows in real-time, wherein the system (100) comprises: a memory (120); a processor (180) coupled to the memory (120); a communicator (140) coupled to the memory (120) and the processor (180); and wherein the processor (180) is configured to: open a parent browser window (1002), determine at least one child browser window (1004) needs to be opened by the parent browser window (1002) while the parent browser window (1002) is opened, receive an input for creating a communication channel between the parent browser window (1002) and the at least one child browser window (1004), open the at least one child browser window (1004) from the parent browser window (1002), create the communication channel between the parent browser window (1002) and the at least one child browser window (1004) based on the received input, and receive data by the at least one child browser window (1004) from the parent browser window (1002) through the created communication channel.

8. The system (100) as claimed in claim 7, wherein the input for creating the communication channel comprises at least one of a URL for the at least one child browser window (1004), a communication channel name indicating the communication channel between the parent browser window (1002) and the at least one child browser window (1004), a parameter for indicating whether the at least one child browser window (1004) is one of a new browser window and a new tab in the parent browser window (1002) and a plurality of parameters indicating dimensions of the at least one child browser window (1004).

9. The system (100) as claimed in claim 7, wherein the processor (180) is configured to open the at least one child browser window (1004) from the parent browser window (1002) comprises: determine that the at least one child browser window (1004) comprising a same child browser window (1004) name does not exists already with the parent browser window (1002); and open the at least one child browser window (1004) from the parent browser window (1002). The system (100) as claimed in claim 7, wherein the processor (180) is configured to receive the data by the at least one child browser window (1004) from the parent browser window (1002) through the created communication channel comprises: send by the at least one child browser window (1004) an initialization event to the parent browser window (1002) for performing a handshake; accept by the parent browser window (1002) the initialization event sent by the at least one child browser window (1004) and performing the handshake; authenticate the handshake received from the parent browser window (1002) by the at least one child browser window (1004) based on a communication channel name of the communication channel created between the parent browser window (1002) and the at least one child browser window (1004); send the data by the parent browser window (1002) to the at least one child browser window (1004) through the created communication channel; and receive the data by the at least one child browser window (1004) through the created communication channel from the parent browser window (1002). The system (100) as claimed in claim 7, wherein the processor (180) is further configured to: determine that the at least one child browser window (1004) needs to be closed; automatically send a response comprising output data from the at least one child browser window (1004) to the parent browser window (1002) to reallocate a dump memory (120) associated with the at least one child browser window (1004). The system (100) as claimed in claim 7, wherein the processor (180) is further configured to: determine that the parent browser window (1002) is closed when the at least one child browser window (1004) is still open; send a notification to the at least one child browser window (1004) that the parent browser window (1002) is closed; and automatically close the at least one child browser window (1004).

Description:
METHOD AND SYSTEM FOR REAL-TIME COMMUNICATION BETWEEN MULTIPLE BROWSER WINDOWS

FIELD OF INVENTION

[0001] The present invention relates to application browsers and more specifically related to a method and a system for real-time communication between multiple browser windows.

BACKGROUND

[0002] In general, multiple browser windows are used as an interface to manage a user's various activities on a system, such as e-mail, social networking, blogging, posting photos, watching videos, editing documents, and so on. As a result, the system should be able to manage multiple activities as well as switch between multiple browser windows. One of the most important aspects of using multiple browser windows is communication between them. Since there are multiple browser windows being used for various activities at a same time, a speed at which a browser window retrieves and presents information from a server may be reduced. Therefore, the reduced speed degrades user experience.

[0003] Conventionally, localStorage property is used for data communication between the multiple browser windows, which allows the system to save key-value pairs of the browser windows with no expiration date. The localStorage is used as a shared and synchronized storage of the multiple browser windows to store information about events such as notifications, execution of some functions, etc. from each of the multiple browser windows along with a timestamp indicating when the information about the events was retrieved from a concerned server. However, the use of the localStorage includes various drawbacks. The localStorage has data storage limits which eventually limit a number of browser windows that can communicate at any time. Also, the localstorage may overflow if the information about events is plenty. Also, the localstorage works on browser windows having a same origin (example browser windows with same scheme or same hostname or a same and port), and hence cross tab communication between the multiple browser windows of different origins is not possible. Thus, it is desired to address the aforementioned disadvantages or other shortcomings or at least provide a useful alternative.

OBJECT OF INVENTION

[0004] The principal object of the embodiments herein is to provide a method and a system for communication between multiple browser windows in real-time by creating a communication channel between a parent browser window and a child browser window. Therefore, the proposed method provides for live communication and data transfer between the parent browser window and the child browser window, and hence there is no limit for amount of data that gets exchanged between the parent browser window and the child browser window. Therefore, the system is not limited by storage capacity and also will be able to access and process a large number of browser windows in real-time, with an increased processing capacity.

SUMMARY

[0005] Accordingly, the embodiment herein is to provide a method for communication between multiple browser windows in real-time by a system. The method includes opening, by a processor, a parent browser window and determining, by the processor, that a child browser window needs to be opened by the parent browser window while the parent browser window is opened. The method also includes receiving, by the processor, an input for creating a communication channel between the parent browser window and the child browser window and opening, by the processor, the child browser window from the parent browser window. Further, the method includes creating, by the processor, the channel between the parent browser window and the child browser window based on the received input; and receiving, by the processor, data by the child browser window from the parent browser window through the created channel.

[0006] In an embodiment, the input for creating the channel includes a uniform resource locator (URL) for the child browser window, a channel name indicating the channel between the parent browser window and the child browser window, a parameter for indicating whether the child browser window is one of a new browser window and a new tab in the parent browser window and a plurality of parameters indicating dimensions of the child browser window.

[0007] In an embodiment, opening, by the processor, the child browser window from the parent browser window includes determining, by the processor, that the child browser window comprising a same child browser window name does not exist already with the parent browser window; and opening, by the processor, the child browser window from the parent browser window.

[0008] In an embodiment, receiving, by the processor, the data by the child browser window from the parent browser window through the created channel includes sending by the child browser window an initialization event to the parent browser window for performing a handshake and accepting by the parent browser window the initialization event sent by the child browser window and performing the handshake. The method also includes authenticating the handshake received from the parent browser window by the child browser window based on a channel name of the channel created between the parent browser window and the child browser window and sending the data by the parent browser window to the child browser window through the created channel and receiving the data by the child browser window through the created channel from the parent browser window.

[0009] In an embodiment, the method further includes determining, by the processor, that the child browser window needs to be closed and automatically sending, by the processor, a response comprising output data from the child browser window to the parent browser window to reallocate a dump memory associated with the child browser window.

[0010] In an embodiment, the method further includes determining, by the processor, that the parent browser window is closed when the child browser window is still open; sending, by the processor, a notification to the child browser window that the parent browser window is closed; and automatically closing, by the processor, the child browser window.

[0011] Accordingly, the embodiments herein provide a system for communication between multiple browser windows in real-time. The system includes a memory, a processor, a communicator, and a display. The processor is configured to open a parent browser window and determine the child browser window needs to be opened by the parent browser window while the parent browser window is opened. The processor is also configured to receive an input for creating a communication channel between the parent browser window and the child browser window and open the child browser window from the parent browser window. Further, the processor is configured to create the channel between the parent browser window and the child browser window based on the received input; and receive data by the child browser window from the parent browser window through the created channel.

[0012] These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following descriptions, while indicating preferred embodiments and numerous specific details thereof, are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the scope thereof, and the embodiments herein include all such modifications.

BRIEF DESCRIPTION OF FIGURES

[0013] This invention is illustrated in the accompanying drawings, throughout which like reference letters indicate corresponding parts in the various figures. The embodiments herein will be better understood from the following description with reference to the drawings, in which:

[0014] FIG. 1 is a block diagram of an system for communication between multiple browser windows in real-time, according to an embodiment as disclosed herein;

[0015] FIG. 2 is a flow diagram illustrating a method for communication between the multiple browser windows in real-time by the system, according to an embodiment as disclosed herein; and

[0016] FIG. 3 is a signalling diagram illustrating communication between a parent browser window and a child browser window, according to an embodiment as disclosed herein;

[0017] FIG. 4 is an example illustrating the communication between the parent browser window and the child browser window of same origin, according to an embodiment as disclosed herein; and

[0018] FIG. 5 is an example illustrating the communication between the parent browser window and the child browser window of different origin, according to an embodiment as disclosed herein. DETAILED DESCRIPTION OF INVENTION

[0019] The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted to not unnecessarily obscure the embodiments herein. Also, the various embodiments described herein are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments. The term “or” as used herein, refers to a non-exclusive or, unless otherwise indicated. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein can be practiced and to further enable those skilled in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.

[0020] As is traditional in the field, embodiments may be described and illustrated in terms of blocks which carry out a described function or functions. These blocks, which may be referred to herein as managers, units, modules, hardware components or the like, are physically implemented by analog and/or digital circuits such as logic gates, integrated circuits, microprocessors, microcontrollers, memory circuits, passive electronic components, active electronic components, optical components, hardwired circuits, and the like, and may optionally be driven by firmware. The circuits may, for example, be embodied in one or more semiconductor chips, or on substrate supports such as printed circuit boards and the like. The circuits constituting a block may be implemented by dedicated hardware, or by a processor (e.g., one or more programmed microprocessors and associated circuitry), or by a combination of dedicated hardware to perform some functions of the block and a processor to perform other functions of the block. Each block of the embodiments may be physically separated into two or more interacting and discrete blocks without departing from the scope of the disclosure. Likewise, the blocks of the embodiments may be physically combined into more complex blocks without departing from the scope of the disclosure.

[0021] The accompanying drawings are used to help easily understand various technical features and it should be understood that the embodiments presented herein are not limited by the accompanying drawings. As such, the present disclosure should be construed to extend to any alterations, equivalents, and substitutes in addition to those which are particularly set out in the accompanying drawings.

[0022] Accordingly, the embodiment herein is to provide a method for communication between multiple browser windows in real-time by a system. The method includes opening, by the processor, a parent browser window and determining, by the processor, a child browser window needs to be opened by the parent browser window while the parent browser window is opened. The method also includes receiving, by the processor, an input for creating a communication channel between the parent browser window and the child browser window and opening, by the processor, the child browser window from the parent browser window. Further, the method includes creating, by the processor, the channel between the parent browser window and the child browser window based on the received input; and receiving, by the processor, data by the child browser window from the parent browser window through the created channel.

[0023] Accordingly, the embodiments herein provide a system for communication between multiple browser windows in real-time. The system includes a memory, a processor, a communicator, and a display. The processor is configured to open a parent browser window and determine the child browser window needs to be opened by the parent browser window while the parent browser window is opened. The processor is also configured to receive an input for creating a communication channel between the parent browser window and the child browser window and open the child browser window from the parent browser window. Further, the processor is configured to create the channel between the parent browser window and the child browser window based on the received input; and receive data by the child browser window from the parent browser window through the created channel.

[0024] Conventional methods and systems for data communication between browser tabs uses localstorage. However, the localstorage includes multiple limitations i.e., the localStorage comprises storage limits which limits capacity of the system. Also, the localStorage only works on browser windows of same origin due to which cross browser window communication between browser windows of different origins is not possible.

[0025] Unlike the conventional methods and systems, the proposed method includes creating a communication channel using application program interface (APIs) between multiple browser windows and enabling live communication and data transfer between the browser windows. As a result, the proposed method makes the communication between the browser windows easy and enhances capabilities of the system. The proposed method also allows communication between the browser windows of cross origin.

[0026] Unlike the conventional methods and systems, the proposed method includes using live events such as for example an email notification, to automatically close or open the browser windows.

[0027] Unlike the conventional methods and systems, the proposed method includes the existence of the child browser windows is determined based on the existence of the parent browser window. If the parent browser window is closed, then the child browser window is notified and destroyed within a specific amount of time for example 2 seconds. [0028] Unlike the conventional methods and systems, the proposed method includes using PostMessage (Javascipt API to enable cross origin communication safely between the multiple browser windows such as pages, pop-ups, and iframes) and to send data between the multiple browser windows whenever needed.

[0029] Referring now to the drawings and more particularly to FIGS. 1 through 5, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments.

[0030] FIG. 1 illustrates a block diagram of an system (100) for communication between multiple browser windows in real-time, according to an embodiment as disclosed herein.

[0031] Referring to the FIG. 1, the system (100) can be for example but is not limited to an electronic device, a laptop, a palmtop, a desktop, a mobile phone, a smart phone, Personal Digital Assistant (PDA), a tablet, a wearable device, an Internet of Things (loT) device, a virtual reality device, a foldable device, a flexible device, a display device, an immersive system, and a server device. In an embodiment, the system (100) includes a memory (120), a communicator (140), a display (160) and a processor (180).

[0032] The memory (120) stores various application program interface (API) s for the communication between multiple browser windows in real-time. Further, the memory (120) also stores instructions to be executed by the processor (140). The memory (120) may include nonvolatile storage elements. Examples of such non-volatile storage elements may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. In addition, the memory (120) may, in some examples, be considered a non-transitory storage medium. The term “non-transitory” may indicate that the storage medium is not embodied in a carrier wave or a propagated signal. However, the term “non-transitory” should not be interpreted that the memory (120) is nonmovable. In some examples, the memory (120) can be configured to store larger amounts of information. In certain examples, a non-transitory storage medium may store data that can, over time, change (e.g., in Random Access Memory (RAM) or cache).

[0033] The communicator (140) includes an electronic circuit specific to a standard that enables wired or wireless communication. The communicator (140) is configured to communicate internally between internal hardware components of the system (100) and with external devices via one or more networks.

[0034] In an embodiment, the display (160) is a user interface (UI) configured to display an opened parent browser window (1002) and an opened child browser window (1004) each of which comprises actionable elements related to events occurring on each of the opened parent browser window (1002) and the opened child browser window (1004). The display (160) can receive inputs and is made of one of liquid crystal display (LCD), light emitting diode (LED), organic light-emitting diode (OLED), etc. The user inputs may be provided for example but are not limited to touch, swipe, drag, gesture, voice command, etc. The parent browser window (1002) and the child browser window (1004) are for example but are not limited to: a pair of browser windows, a pair of tabs, or a browser window and a tab.

[0035] The processor (140) communicates with the memory (120), the communicator (140), the display (160) and the processor (180). The processor (180) is configured to execute instructions stored in the memory (120) and to perform various processes. The processor may include one or a plurality of processors, may be a general-purpose processor, such as a central processing unit (CPU), an application processor (AP), or the like, a graphics- only processing unit such as a graphics processing unit (GPU), a visual processing unit (VPU), and/or an Artificial intelligence (Al) dedicated processor such as a neural processing unit (NPU).

[0036] In an embodiment, the processor (180) is implemented by processing circuitry such as logic gates, integrated circuits, microprocessors, microcontrollers, memory circuits, passive electronic components, active electronic components, optical components, hardwired circuits, or the like, and may optionally be driven by firmware. The circuits may, for example, be embodied in one or more semiconductors. The processor (180) can be for example but not limited to a browser management controller, etc. The processor (180) includes a parent browser management controller (182), a channel management controller (184), and a child browser management controller (186).

[0037] In an embodiment, the parent browser management controller (182) is configured to open the parent browser window (1002) and manage various events associated with the parent browser window (1002). Further, the parent browser management controller (182) is configured to determine that child browser window (1004) needs to be opened by the parent browser window (1002) while the parent browser window (1002) is still opened. Here, the parent browser management controller (182) is configured to determine whether the child browser window (1004) with a same child browser window (1004) name already exists or not with the parent browser window (1002). If the child browser window (1004) having the same child browser window (1004) name already exists then the child browser window (1004) is not opened. If the child browser window (1004) having the same child browser window (1004) name does not exists already then the parent browser management controller (182) opens the child browser window (1004) from the parent browser window (1002). Therefore, the proposed method also eliminates duplication of the child browser window (1004)s. The opening of the child browser window (1004) can be triggered by an event associated with the parent browser window (1002). For example, consider a ticket created on the parent browser window (1002) for an event on a sub-application. Then the parent browser window (1002) automatically opens the child browser window (1004) for execution of the event on the sub-application.

[0038] In another example, consider that the user is viewing a grid comprising a plurality of events on the parent browser window (1002). At the same time, the user is also required to view certain content in the subapplication which requires the creation of the child browser window (1004). Therefore, here the requirement to view the certain content is the subapplication becomes the event that triggers the creation of the child browser window (1004).

[0039] The parent browser window (1002) and the child browser window (1004) can be of same origin for example http://abc.com/foo.html and http://abc.com/page.html, etc. The parent browser window (1002) and the child browser window (1004) can also be of different origins for example http://www.example.com and http://www.abc.com; such as with different security levels for example http://abc.com and https://www.abc.com, etc.

[0040] In another embodiment, the parent browser management controller (182) is configured to determine that the parent browser window (1002) is closed when the child browser window (1004) is still open, send a notification to the child browser window (1004) that the parent browser window (1002) is closed, and automatically close the child browser window (1004). The child browser window (1004) may be destroyed within for example 2 seconds. For example, consider that the user accidentally closes the parent browser window (1002). Then, the closing of the parent browser window (1002) is notified to the child browser window (1004) and the child browser window (1004) is also closed. [0041] In an embodiment, the channel management controller (184) is configured to receive an input for creating a communication channel between the parent browser window (1002) and the child browser window (1004) and open the child browser window (1004) from the parent browser window (1002). The communication channel between the parent browser window (1002) and the child browser window (1004) using for example but not limited to a PostMessage feature of the parent browser window (1002). The input for creating the channel includes but is not limited to: a Uniform Resource Locator (URL) for the child browser window (1004), a channel name indicating the channel between the parent browser window (1002) and the child browser window (1004), a parameter for indicating whether the child browser window (1004) is one of a new browser window and a new tab in the parent browser window (1002). Here, the user is allowed to provide multiple parameters indicating dimensions of the child browser window (1004) as well. Therefore, the user can create customized child browser window (1004)s.

[0042] Further, the channel management controller (184) is configured to create the channel between the parent browser window (1002) and the child browser window (1004) based on the received input. Therefore, the channel between the parent browser window (1002) and the child browser window (1004) enables live communication and not at events such as for example, closing or opening of the parent browser window (1002) and the child browser window (1004).

[0043] In an embodiment, the child browser management controller (186) is configured to send an initialization event to the parent browser window (1002) for performing a handshake. The parent browser window (1002) accepts the initialization event sent by the child browser window (1004) and performs the handshake. The child browser window (1004) then authenticates the handshake received from the parent browser window (1002) based on a channel name of the channel created between the parent browser window (1002) and the child browser window (1004). Further, the child browser management controller (186) is configured to receive the data by the child browser window (1004) through the created channel from the parent browser window (1002). In the proposed method the communication of the data between the parent browser window (1002) and the child browser window (1004) happens continuously and in real-time. The communication is not restricted to the beginning or end of the communication session as is done in conventional methods.

[0044] Furthermore, the child browser management controller (186) is configured to continuously monitor and determine that the child browser window (1004) needs to be closed and automatically send a response comprising output data from the child browser window (1004) to the parent browser window (1002) to reallocate a dump memory (120) associated with the child browser window (1004).

[0045] At least one of the plurality of modules/ components of the processor (180) may be implemented through an Al model. A function associated with the Al model may be performed through memory (120). The one or a plurality of processors controls the processing of the input data in accordance with a predefined operating rule or the Al model stored in the non-volatile memory and the volatile memory. The predefined operating rule or artificial intelligence model is provided through training or learning.

[0046] Here, being provided through learning means that, by applying a learning process to a plurality of learning data, a predefined operating rule or Al model of a desired characteristic is made. The learning may be performed in a device itself in which Al according to an embodiment is performed, and/or may be implemented through a separate server/system.

[0047] The Al model may consist of a plurality of neural network layers. Each layer has a plurality of weight values and performs a layer operation through calculation of a previous layer and an operation of a plurality of weights. Examples of neural networks include, but are not limited to, convolutional neural network (CNN), deep neural network (DNN), recurrent neural network (RNN), restricted Boltzmann Machine (RBM), deep belief network (DBN), bidirectional recurrent deep neural network (BRDNN), generative adversarial networks (GAN), and deep Q-networks.

[0048] The learning process is a method for training a predetermined target device (for example, a robot) using a plurality of learning data to cause, allow, or control the target device to make a determination or prediction. Examples of learning processes include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.

[0049] Although the FIG. 1 shows various hardware components of the system (100), but it is to be understood that other embodiments are not limited thereon. In other embodiments, the system (100) may include less or a greater number of components. Further, the labels or names of the components are used only for illustrative purpose and does not limit the scope of the invention. One or more components can be combined to perform same or substantially similar function for communication between the multiple browser windows in real-time.

[0050] FIG. 2 is a flow diagram (200) illustrating a method for communication between the multiple browser windows in real-time, according to an embodiment as disclosed herein.

[0051] Referring to the FIG. 2, at step 202, the method includes the system (100) opening the parent browser window (1002). For example, in the system (100) as illustrated in the FIG. 1, the processor (180) is configured to open the parent browser window (1002).

[0052] At step 204, the method includes the system (100) determining that the child browser window (1004) needs to be opened by the parent browser window (1002) while the parent browser window (1002) is opened. For example, in the system (100) as illustrated in the FIG. 1, the processor (180) is configured to determine that the child browser window (1004) needs to be opened by the parent browser window (1002) while the parent browser window (1002) is opened.

[0053] At step 206, the method includes the system (100) receiving the input for creating the communication channel between the parent browser window (1002) and the child browser window (1004). For example, in the system (100) as illustrated in the FIG. 1, the processor (180) is configured to receive the input for creating the communication channel between the parent browser window (1002) and the child browser window (1004).

[0054] At step 208, the method includes the system (100) opening the child browser window (1004) from the parent browser window (1002). For example, in the system (100) as illustrated in the FIG. 1, the processor (180) is configured to open the child browser window (1004) from the parent browser window (1002).

[0055] At step 210, the method includes the system (100) creating the channel between the parent browser window (1002) and the child browser window (1004) based on the received input. For example, in the system (100) as illustrated in the FIG. 1, the processor (180) is configured to create the channel between the parent browser window (1002) and the child browser window (1004) based on the received input.

[0056] At step 212, the method includes the system (100) receiving the data at the child browser window (1004) from the parent browser window (1002) through the created channel. For example, in the system (100) as illustrated in the FIG. 1, the processor (180) is configured to receive the data at the child browser window (1004) from the parent browser window (1002) through the created channel. [0057] The various actions, acts, blocks, steps, or the like in the flow diagram (200) may be performed in the order presented, in a different order or simultaneously. Further, in some embodiments, some of the actions, acts, blocks, steps, or the like may be omitted, added, modified, skipped, or the like without departing from the scope of the invention.

[0058] FIG. 3 is a signaling diagram (300) illustrating the communication between the parent browser window (1002) and the child browser window (1004), according to an embodiment as disclosed herein. Referring to the FIG. 3, at step S302, a Tab count associated with the parent browser window (1002) is 0 i.e., there are no child browser window (1004)s associated with the parent browser window (1002). At step S304 the parent browser window (1002) receives the inputs to create the channel with the child browser window (1004). The inputs used are as follows:

1. Uniform resource locator (URL): string - URL for the child browser window (1004).

2. channelName: string - Specific to the child browser window (1004) and the channelName should be a unique id. There should not be any other child browser window (1004) existing with the same channelName.

3. openlnNewWindow: Boolean - If a child browser window (1004) is required or just a child browser tab in the same window.

4. windowHeight and windowWidth: number - In case of requirements of the child browser window (1004) setting dimensions such as the height and width of the child browser window (1004) can be customized by the user.

[0059] On receiving the inputs the parent browser window (1002) at step S306 starts the channel between the parent browser window (1002) and a new child browser window (1004). To start the channel between the parent browser window (1002) and the child browser window (1004), the parent browser window (1002) (referred to as client Pl) calls CreateChannel API. Here, initially an instance is created on channelcommunicator in a constructor of the system (100) or any initialization method. The CreateChannel API (API 1) is as below:

AppChannelService.createChannel(

Document. baseURL + 7newurlpath/create', ‘channelName’

) API 1

[0060] When the CreateChannel API is called, the child browser window (1004) is created and the channel between the parent browser window (1002) (Pl) and the child browser window (1004) (Cl) is also created. The CreateChannel API accepts the inputs provided to the parent browser window (1002) while creating the child browser window (1004). At step S308, the parent browser window (1002) sends the event and data related to the starting of the communication channel between the parent browser window (1002) and the child browser window (1004). At step S310, the child browser window (1004) (Tl) opening process is initiated. If the child browser window (1004) with same name is already opened then the requested child browser window (1004) will not be opened. The request for the initial handshake to the Pl and determining the existence of the child browser window (1004) with same name is checked using the below mentioned API 2: this. channel = AppChannelService.getChannel(‘SamechannelName as passed from Pl ’) API 2

[0061] At step S312, once the channel setup is completed, an event for initializing a handshake with the Pl is triggered by the Tl. At step S314 the initializing event is sent over the created channel between the Pl and the Tl. At step S316, the Pl gets the initialization event from the Tl for the handshake and at step S318 the Pl accepts the handshake and then sends message and data to the Tl over the created channel between the Pl and the T1. The Pl uses API 3 mentioned below to send the data to the T1 : this, channel. observable.next( { data: { event: 'SENDING DATA',

}) API 3

[0062] At step S320 the initialized data packets are sent over the created channel between the Pl and the Tl. At step S322 the Tl receives the initial data sent by the Pl and sends it further based on the event requirement. After SENDING_DATA is triggered the Tl subscribes to getChannel method to get the data using API 4 mentioned below: this. channel. observable. subscribe((sourceData) => { console.log('Receiving Source Data', sourceData);

}) API 4

[0063] The API 3 can be used to send data from any tab and the API 4 can be used to receive data from any tab. At step S324, it may be noted that the data sent by the Pl is received at the Tl and the Tl is now open which is indicated at S326 with Tab count = 1. The normal flow of data continues between the Pl and the Tl using the channel created between the Pl and the Tl.

[0064] Consider that at some point the event associated with the Tl is completed or the user wants to close the Tl, therefore the Tl has to be closed. Then, at step S328 a Close trigger is sent by the Tl to the Pl which passes through the channel as indicated by CLOSE Tl at step S330. The CLOSE Tl trigger will include the closing data associated with the Tl which is a default response. At step S332 the Pl receives the closing data from the Tl and provides a Close command at step S334. This is done using API 5 provided below: this, channel. observable.next( { data: { ‘send data here’ event: 'CLOSE',

}) API 5

[0065] The API5 can be used in any of the tabs want to send some custom data at closing. Therefore, at step S336 the Close will lead to closure of all related child browsers (T1 and other related browsers). After the close event, a destroyChannel Api is automatically initialized to reallocate dump memory. The destroyChannel Api takes, channel name as input.

[0066] The output of the communication between the Pl and the T1 will be a json that is been sent from the T1 to the Pl while closing all Child tabs. The json will consist of two parts as follows:

1. Data which signifies any data that the T1 can send to the Pl

2. Event which signifies if the T1 or the Pl are closing then of initializing. In output case, the event will be ‘CLOSE’

• Output json

"data": {

"configld": "value",

"subConfigs": [

"datavalues",

]

"event": "CLOSE"

[0067] Therefore, unlike to the conventional methods and systems, in the proposed method the memory is allocated when needed by any new browser window (here the child browser window (1004) Tl). The T1 then uses the allocated memory to perform write and read operations. When the T1 is no longer in use (i.e. , when it is closed), the memory allocated to the T1 is released. Further, the use of PostMessage enables to work with different origin or same origin browser windows.

[0068] FIG. 4 is an example illustrating the communication between the parent browser window (1002) and the child browser window (1004) of same origin, according to an embodiment as disclosed herein. Referring to the FIG. 4, consider that the parent browser window (1002) has an origin with URL http://abc.com/foo.html. Consider that a latest headline is added to a list of headlines as Headlines 1. Further, the system (100) detects that the child browser window (1004) needs to be opened to provide user access to a content of the Headlines 1. The system (100) then automatically opens the child browser window (1004) having an origin with URL http://abc.com/page.html. Here, the parent browser window (1002) and the child browser window (1004) are of the same origin. Further, the system (100) also creates the channel for communication between the parent browser window (1002) and the child browser window (1004) which enables realtime exchange of data between the parent browser window (1002) and the child browser window (1004). The system (100) also allows the user to customize the child browser window (1004) by providing various inputs such as dimensions of the child browser window (1004). Then, the child browser window (1004) which is automatically opened will have the customized dimensions.

[0069] In case the parent browser window (1002) is closed then the child browser window (1004) is notified and automatically closed.

[0070] In case the child browser window (1004) needs to be closed after a certain duration of time automatically then the child browser window (1004) sends the last set of output data to the parent browser window (1002) before closing. [0071] FIG. 5 is an example illustrating the communication between the parent browser window (1002) and the child browser window (1004) of different origins, according to an embodiment as disclosed herein. Referring to the FIG. 5, consider that the parent browser window (1002) has an origin with the URL http://www.example.com. Consider that a ticket is created for a specific event. The ticket acts as the trigger for the creation of the child browser window (1004). The trigger for the creation of the child browser window (1004) can include but is not limited to e-mail notifications, social network activity, etc.

|0072] [The system ( 100) detects that the child browser window (1004) needs to be opened to accommodate the event associated with the ticket and then automatically opens the child browser window (1004) having an origin with the URL http://www.XXX.com. Here, the parent browser window (1002) and the child browser window (1004) are of different origins. Further, the system (100) also creates the channel for communication between the parent browser window (1002) and the child browser window (1004) which enables real-time exchange of data between the parent browser window (1002) and the child browser window (1004). The system (100) also allows the user to customize the child browser window (1004) by providing various inputs such as the dimensions of the child browser window (1004). Then, the child browser window (1004) which is automatically opened will have the customized dimensions.

[0073] The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments herein have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the scope of the embodiments as described herein.