Transparent node runtime and management layer
First Claim
1. A server computer, comprising:
- a processor;
a non-transitory memory, wherein the non-transitory memory stores a plurality of security rules;
an application comprising JavaScript instructions stored in the non-transitory memory;
a runtime stored in the non-transitory memory that, when executed by the processor,provides a JavaScript execution environment for executing the application and an instrumentation application programming interface (API),reads the security rules from the non-transitory memory, andprovides the JavaScript execution environment for executing the application according to constraints defined by the security rules; and
a native agent module stored in the non-transitory memory that, when executed by the processor outside of the runtimemonitors memory buffers allocated to the application based on accessing the instrumentation API of the runtime,executes an event loop that sends an interrupt to the runtime, andprovides reporting based on monitoring the memory buffers and the interrupt sent to the runtime to a management layer external to the server computer.
0 Assignments
0 Petitions
Accused Products
Abstract
A server computer. The server computer comprises a processor, a non-transitory memory, a application comprising JavaScript instructions stored in the non-transitory memory, a runtime stored in the non-transitory memory, and a native agent module stored in the non-transitory memory. When executed by the processor, the runtime provides a JavaScript execution environment for executing the application and an instrumentation application programming interface (API). When executed by the processor outside of the runtime, the native agent module monitors memory buffers allocated to the application based on accessing the instrumentation API of the runtime, executes an event loop that sends an interrupt to the runtime, and provides reporting based on monitoring the memory buffers and the interrupt sent to the runtime to a management layer external to the server computer.
31 Citations
17 Claims
-
1. A server computer, comprising:
-
a processor; a non-transitory memory, wherein the non-transitory memory stores a plurality of security rules; an application comprising JavaScript instructions stored in the non-transitory memory; a runtime stored in the non-transitory memory that, when executed by the processor, provides a JavaScript execution environment for executing the application and an instrumentation application programming interface (API), reads the security rules from the non-transitory memory, and provides the JavaScript execution environment for executing the application according to constraints defined by the security rules; and a native agent module stored in the non-transitory memory that, when executed by the processor outside of the runtime monitors memory buffers allocated to the application based on accessing the instrumentation API of the runtime, executes an event loop that sends an interrupt to the runtime, and provides reporting based on monitoring the memory buffers and the interrupt sent to the runtime to a management layer external to the server computer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of executing a JavaScript application, comprising:
-
initiating a process on a first computer, where the process comprises a runtime that provides a JavaScript execution environment for a JavaScript application and an instrumentation application programming interface (API) for a native agent module, the JavaScript application that executes in the runtime, and the native agent module that executes on the first computer outside of the runtime and accesses the instrumentation API of the runtime to monitor the runtime and the JavaScript application; monitoring, by the native agent module, memory buffers allocated to the Javascript application at a time of a dynamic allocation of the memory buffers based on accessing the instrumentation API of the runtime, wherein the memory buffers are outside of a heap memory; sending a request from a console application executing on a second computer to the native agent module, where the request identifies information monitored by the native agent module, wherein the information comprises information on the memory buffers; receiving the information from the native agent module by the console application; analyzing the received information by the console application to determine a current performance of the JavaScript application; based on the analysis of performance of the JavaScript application, sending a command to the native agent module by the console application; and providing a command input to the runtime by the native agent module based on the command sent by the console application, whereby the runtime and the JavaScript application are monitored and controlled by the console application. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method of managing a plurality of JavaScript processes, comprising:
-
initiating a plurality of processes on a first computer system, where each process comprises a runtime that provides a JavaScript execution environment for a JavaScript application and an instrumentation application programming interface (API) for a native agent module, the JavaScript application that executes in the runtime, and the native agent module that executes on the computer system outside of the runtime and accesses the instrumentation API of the runtime to monitor the runtime and the JavaScript application; receiving registrations of the native agent modules of the plurality of processes by a hub application that executes on a second computer system; in response to each native agent module registration, creating by the hub application an entry in a hub registry data store associated with the native agent module that identifies at least one identifier associated with the native agent module and a communication address of the native agent module; receiving heartbeat messages from native agent modules by the hub application; removing an entry from the hub registry data store in response to determining that a heartbeat message has not been received from a native agent module associated with an entry in the hub registry data store for at least a predefined length of time; identifying a cluster comprising a plurality of JavaScript applications, wherein each JavaScript application of the plurality of JavaScript applications share a common property; receiving a message from a management console by the hub application, where the message from the management console identifies the cluster; looking up, by the hub application, a communication address of the each native agent module associated with each JavaScript application of the plurality of JavaScript applications in the cluster based on the cluster identified in the message from the management console; and sending the message from the management console by the hub application to each identified native agent module at the looked-up communication address of each native agent module, whereby the processes on the first computer system are managed and monitored by the management console. - View Dependent Claims (15, 16, 17)
-
Specification