EP-4295559-B1 - IMPROVED NETWORK BROWSER ENGINE
Inventors
- SIMONS, ERIC
- PAI, ALBERT
- ELM, DOMINIC
- PISMAN, KWINTEN
- SULKOWSKI, TOMEK
- DENTY, SAM
Dates
- Publication Date
- 20260513
- Application Date
- 20220212
Claims (13)
- An improved computing system, comprising: at least one processor (20); at least one networking module; memory (122) having stored thereon software instructions formatted for execution by the at least one processor (20), said software instructions arranged to: operate a local computing server resource (194b) on a first local domain; instantiate a relay mechanism that has an iFrame and an invisible window; instantiate a local web server on a second local domain; install a service worker (724, 824) on the invisible window; receive a request for information at the local web server; verify a presence of the local computing server resource (194b) on the first local domain; communicatively connect the second local domain to the iFrame; and directly communicate, via the at least one networking module, at least one message between the local computing server resource (194b) on the first local domain and the local web server on the second local domain using the relay mechanism, characterized in that the local computing resource is arranged with at least one kernel-level interface (198) arranged to direct operations of one or more kernel-level functions.
- The improved computing system of claim 1 wherein the local computing server resource (194b) is arranged as a transmission control protocol, TCP, server.
- The improved computing system of claim 1 wherein the local web server is instantiated inside a secure container.
- The improved computing system of claim 3, wherein at least a portion of the relay mechanism is included inside the secure container.
- The improved computing system of claim 3, wherein the secure container is arranged to host at least one Node.js process.
- The improved computing system of claim 1 wherein the local web server is arranged to process hypertext transfer protocol, HTTP, communications.
- The improved computing system of claim 1 wherein the local web server is arranged to process web socket communications.
- The improved computing system of claim 1 wherein the local web server is arranged to process JavaScript commands.
- The improved computing system of claim 1 wherein the local computing server resource (194b) is accessible via a first browser window and the local web server is accessible via a second browser window.
- An improved computing system method, comprising: providing a single local computing resource that has at least one networking module; operating, within the single local computing resource, a local computing server resource (194b) on a first local domain; instantiating, within the single local computing resource, a relay mechanism (198a) that has an iFrame and an invisible window; instantiating, within the single local computing resource, a local web server on a second local domain; installing a service worker (724, 824) on the invisible window; receiving a request for information at the local web server; verifying a presence of the local computing server resource (194b) on the first local domain; communicatively connecting the second local domain to the iFrame; and directly communicating, via the at least one networking module, at least one message between the local computing server resource (194b) on the first local domain and the local web server on the second local domain using the relay mechanism, characterized in that the method further comprises performing at least one kernel level act at the local web server, said kernel level act directed by a command received from the single local computing resource.
- The improved computing system method of claim 10 wherein providing the single local computing resource includes arranging the single local computing resource as a transmission control protocol, TCP, server.
- The improved computing system method of claim 10, further comprising: opening a first browser window on the first local domain, the first browser window associated with the local computing server resource (194b); opening a second browser window on the second local domain, the second browser window associated with the local web server; collecting certain data from one of the first and second browser windows; and displaying at least some of the certain data at the other one of the first and second browser windows, said at least some of the certain data passed with the at least one message.
- The improved computing system method of claim 12 wherein at least some of the certain data is a JavaScript command.
Description
BACKGROUND Technical Field The present disclosure generally relates to improved network computing. More particularly, but not exclusively, the present disclosure relates to an improved network browser engine arranged with server-side functionality that permits static information storage and retrieval via a single network link. Description of the Related Art Conventional network computing includes a local computing device operated by a user, a network, and one or more computing servers located remotely from the local computing device. The local computing device is often referred to as a desktop computer, a laptop computer, a tablet, a smartphone, or some other local computing device. The network is often referred to as a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a cellular network, a wired network, a wireless network, or any combination thereof. The remotely located computing server(s) are often referred to individually and collectively as a web server, a server farm, the cloud, or the like. In at least some cases, the combination of a network and a plurality of computing servers is referred to as the "world wide web," the "internet," or some other like term. The local-computing-device, network, and computing-server framework lends itself to a style of computing known as a server-based approach. Server-based approaches permit the execution of complex, computationally intensive operations in the cloud at the direction of, and for the benefit of, a less sophisticated local computing device. Along these lines, a local computing device may also be referred to as a "thin client." While a thin client may have any desired level of complexity, generally speaking, the thin client only requires rudimentary processing power, a suitable amount of memory, network connectivity, and a user interface. One common method of thin client, server-based computing is to run on a cloud server any code that requires a certain minimum level of operating system (O/S) access. Then, after the cloud server executes the code, the cloud server communicates the static results of such execution down to a web browser of the thin client. Certain online development environments provide O/S resources in this way, including, for example, GITHUB CODESPACES, REPL.IT, and CLOUD9. The web browser of the local computing device simply displays a user interface, which serves as a remote display and remote control interface for a physical computing server running remotely in the cloud. Commands entered via the user interface of the local computing device are not saved or executed using the local computing device's memory or processor. Instead, control information representing the desired commands are sent to a remote computing server of the cloud, and the remote computing server sends back static information (e.g., terminal output, filesystem listing, and the like). FIG. 1 is a block diagram illustrating a conventional server-based approach to computing 10. A local computing device 12 communicates through a computing network 14 with a cloud computing environment having a domain name server 16 and one or more remote computing servers 18. The local computing device 12 includes various hardware structures formed of analog and digital electronic circuitry. The hardware structures include a processor 20 and memory 22. The memory 22 is directly or indirectly coupled to the processor 20 via a memory interface 24. Wired, wireless, or wired and wireless communications circuitry 26 allows the local computing device 12 to communicate with the domain name server 16 and any one or more of the remote computing servers 18a-18n via the computing network 14. User interface circuitry 28 (e.g., display, keyboard, mouse, touch screen, microphone, speaker, tactile output, tactile sensor, biometric sensor, and the like) permits a user 98 to interact with the local computing device. The user 98 may be a human user 98a, another computing device 98b, or some other user. Other hardware 30 of the local computing device (power supply, data bus(ses), timing circuitry, security circuitry, and the like) known to those of skill in the art is not expressly identified to avoid unnecessarily cluttering the figure. The memory 22 of the local computing device 12 includes control information, fixed data, working data, and any other type of data generally found or created in a computing device. The memory 22 also includes software executable by the processor 20, Such software includes an operating system 32, a file system 34, a web browser 40, and user interface software 36. Other software and data 38 (e.g., power supply control software, security software, firmware, user applications, user data, and the like) known to those of skill in the art is not expressly identified to avoid unnecessarily cluttering the figure. In an exemplary case, a user 98 has a desire to interact with the world wide web. The user's local computer 12 operates as a thin client