This invention relates to a method and apparatus of performing optimized browser session communications, and more particularly, to providing an administrator with optimized communication signaling for managing remote agents operating on a communications network.
Asynchronous JavaScript and XML are often combined into a workgroup suite of software development tools referred to as ‘AJAX.’ The term AJAX is often used to refer to a group of interrelated web development methods used on a client-side of a computing environment to create interactive web applications. When using AJAX, web applications can retrieve data from one or more servers asynchronously while operating within the operating system background and without interfering with the display and behavior of the existing user page (web page). Data is usually retrieved using a XML-HTTP-Request object. JavaScript and the XML-HTPP-Request object provide for exchanging data asynchronously between a client side browser and a server without requiring full-page sized data reloads.
A browser extension may be used as a computer program that extends the functionality of a web browser beyond its default capabilities. Modern web browsers used today allow browser extensions through native files and native extensions. The syntax for extensions may be different from browser to browser. When a communication service extension is installed in a browser it may be possible to establish a communication channel relayed through a central server or peer-to-peer type session to a remote system. Browser extensions provide the capability for the native code and Javascript running on a particular web page to interact together without using AJAX related tools. The combination of native code and Javascript together may lead to complicated and proprietary code that is complicated and difficult to utilize.
Conventionally, a transmission control protocol (TCP) server may be implemented on the agent side. This type of configuration requires additional native browser plug-ins to communicate between the browser (Administrator) side and the agent side. There may also be a large amount of communication signaling and a complex corresponding network setup configuration between the administrator side and the agent side to support such a configuration.
An example embodiment of the present invention may include a method establishing a communication session. The method may include receiving a request for information at an agent device and processing the request via an embedded web server module of the agent device and creating a response message including the requested information. The method may include transmitting the response to the requesting entity.
Another example embodiment of the present invention may include an apparatus configured to establish a communication session. The apparatus may include a receiver configured to receive a request for information at an agent device and a processor configured to process the request via an embedded web server module of the agent device and create a response message including the requested information. The apparatus may also include a transmitter configured to transmit the response to the requesting entity.
It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of a method, apparatus, and system, as represented in the attached figures, is not intended to limit the scope of the invention as claimed, but is merely representative of selected embodiments of the invention.
The features, structures, or characteristics of the invention described throughout this specification may be combined in any suitable manner in one or more embodiments. For example, the usage of the phrases “example embodiments”, “some embodiments”, or other similar language, throughout this specification refers to the fact that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “example embodiments”, “in some embodiments”, “in other embodiments”, or other similar language, throughout this specification do not necessarily all refer to the same group of embodiments, and the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
In addition, while the term “message” has been used in the description of embodiments of the present invention, the invention may be applied to many types of network data, such as, packet, frame, datagram, etc. For purposes of this invention, the term “message” also includes packet, frame, datagram, and any equivalents thereof. Furthermore, while certain types of messages and signaling are depicted in exemplary embodiments of the invention, the invention is not limited to a certain type of message, and the invention is not limited to a certain type of signaling.
Example embodiments of the present invention provide operations and/or procedures used with AJAX technologies to simplify the code on the browser side of a communication network configuration. Even when communicating with a remote system, the remote system may include servers or third party communication data forwarding and/or processing devices that may not be associated with an original web server. For example, a web application may initiate a communication session with multiple servers including those servers that are not public and which are operating on closed networks. The web application may use the same standard AJAX functionality for communication and data exchange purposes. AJAX requests may be sent to a server on the agent side through a communication service established with each of the network entities.
A virtual system administrator (VSA) may be used by contracted service providers to access a remote VSA, which is hosted and maintained by a third party service provider to install a specified number of customer agents. The service providers may be allocated on a unique tenant partition of a shared server and database. Within their assigned partition, service providers can only see their own organizations, machine groups, procedures, reports and tickets. Service providers in a tenant partition have full access to all functions of the VSA except system maintenance, which is the responsibility of a third party service provider. The HTML page of the administrator 140 may be downloaded from the VSA along with its corresponding Javascript. The agent 150 may represent any machine that has the agent application software installed. The agent 150 may be an endpoint on the network that the administrator 140 is configured to monitor, update or support.
Referring to
During the communication service setup procedure, the web page 114 initiates, loads and begins the communication service (B) browser extension 112. The communication service (B) 112 connects to the public communication service (S) 104, which connects to the remote communication service (M) 122. Communication service (B) 112 and communication service (M) 122 may establish a direct connection (optional). The web page requests are provided to the communication service to setup a communication channel that maps the listening port of the embedded web server on the remote system to a local port on the system running the browser 110. The web page 114 creates an I-FRAME (embedded web page), which is loaded from the embedded web server 124 on the remote system 120 through the new communication channel setup by the communication service. The embedded web page 116 uses AJAX technology to communicate with the embedded web server 124 without page reloads. The embedded web server 124 processes requests, collects data, and responds back with results to the requesting entity (administrator 140). After each web-based request and/or response there are no reloading operations performed for a webpage when rendering the response on the webpage. Once the I-FRAME is loaded from the embedded web page 116, the subsequent requests generated by the administrator 140 and the responses received from the agent 150 will not initiate a page reload for the browser 110, which saves time and processor utilization.
The communication services (B) and (A) may be considered TCP clients that process and communicate messages between the administrative side of a HTML page and the agent side of a HTTP (web) server 102. According to one example operation, assuming the agent is behind a firewall, a HTML page request on the administrative side may not be capable of obtaining a request to the server 102 directly. As a result, the communication service(s)/clients 104, 112, and 122 may be used to deliver commands and responses accordingly to the web page requests and related information request messages received. Communication server 104 (S) may be a server that includes a TCP based relay server that relays messages to the appropriate clients/services. The communication server 104 may be separate from server 102 and/or may be integrated as part of the same server device and/or local computing server group facility.
Operations and communications between the administrator 140 and the agent 150 may provide the administrator 140 with the capability to enter a command in a terminal/shell interface, which may be rendered using HTML. The administrator commands may be entered automatically without human intervention. For every command received via the administrative interface, an AJAX request is sent to the embedded web-server 124 on the agent that executes the received command request and provides the response to the administrator 140 to be rendered on a HTML page. In one example, the administrator 140 would transmit an AJAX request every “T” seconds to retrieve the agent screenshot on the agent machine 150, which would deliver the screen shot to the administrator 140 as a HTTP response.
According to another example method of operation, the browser 110 may be considered a network endpoint with a web browser that has an embedded webpage on an I-FRAME 116. The I-FRAME webpage 116 is an inline frame that contains another web page. If a user enters a command on the webpage interface 116, the command will be sent as an AJAX request (HTTP request) to the embedded web server 124. In response, the embedded web server 124 will process the HTTP request and transmit a response. The AJAX request from the I-FRAME webpage 116 is transmitted to the communication service 112, which operates by listening on port localhost: 1234. The communication service 112 will listen and relay data through the communication service 104 (relay server). The communication service 112 may instead relay data through a peer-to-peer connection to the communication service 122. Once the data is received, the communication service 122 may relay the request to the web server listening on the localhost: 5678. A response from the embedded web server 124 is sent back to the I-FRAME embedded web page 116 by passing through the communication service 122 of the agent 150 to the communication service 104 of the web server 102 and to the communication service 112 of the administrator 140.
In operation, the administrator endpoint 140 and the agent endpoint 150 may be located in two separate localities, subnets, etc. As a result, a relay server or peer-to-peer connection may be necessary to establish a communication session between the administrator 140 and the agent 150. The server 102 may be used to relay messages and/or serve web pages to the administrator 140 via the VSA.
The request received may be an asynchronous JavaScript and extensible markup language (AJAX) type request, and the response message may be a hypertext transfer protocol (HTTP) type response. The requesting device may transmit multiple AJAX requests to the agent device processing system every “T” seconds (i.e., 10 sec, 30 sec, 60 sec., etc.) to retrieve screenshots of present activity conducted on the agent device. The example method may also provide transmitting a plurality of HTTP responses via the communication service engine 320 and a corresponding communication network transmitter to include the screenshots. Once a communication channel is established from the agent device of the requesting entity, a listening port may be mapped from the embedded web server of the agent device to a local port of the requesting entity. In addition, an inline frame (I-FRAME) may be transmitted from the embedded web server of the agent device to the requesting entity. The method further provide loading the I-FRAME on the requesting entity to establish the communication channel and once the I-FRAME is loaded, the subsequent requests received from the requesting entity will not initiate a web page reload operation on the requesting entity.
The operations of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a computer program executed by a processor, or in a combination of the two. A computer program may be embodied on a computer readable medium, such as a storage medium. For example, a computer program may reside in random access memory (“RAM”), flash memory, read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), registers, hard disk, a removable disk, a compact disk read-only memory (“CD-ROM”), or any other form of storage medium known in the art.
An exemplary storage medium may be coupled to the processor such that the processor may read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an application specific integrated circuit (“ASIC”). In the alternative, the processor and the storage medium may reside as discrete components. For example
As illustrated in
It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. Although the present invention has been described with reference to specific exemplary embodiments, it will be recognized that the invention is not limited to the embodiments described, but can be practiced with modification and alteration within the spirit and scope of the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than a restrictive sense. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.