US2021263788A1PendingUtilityA1

Service virtual machine

Assignee: YOUNG REXPriority: Jun 9, 2008Filed: May 5, 2021Published: Aug 26, 2021
Est. expiryJun 9, 2028(~1.9 yrs left)· nominal 20-yr term from priority
Inventors:Rex Young
G06F 9/45504G06F 9/4482G06F 9/541
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Technology is disclosed for processing in a computer program a request received by a service virtual machine (SVM). The technology can receive a request in either a first form or a second form, wherein the first form includes a target textual identifier, a reply-to textual identifier, and a parameter, and the second form includes a target textual identifier and a parameter, but not a reply-to textual identifier; identify, based on the received target textual identifier, a procedure; invoke the identified procedure and providing a value of the received parameter to the invoked procedure; in an event the received request is in the first form: receive a result from the invoked procedure; form a reply-to request in the second form, the second form including as a target textual identifier the reply-to textual identifier in the received request, and as a parameter the result received from the invoked procedure, further wherein the second form does not include a reply-to textual identifier; and send, to the SVM, the formed reply-to request.

Claims

exact text as granted — not AI-modified
1 . A method for processing in a computer program a request received by a service virtual machine (SVM), comprising:
 receiving a request, wherein the request includes a reference and a parameter;   identifying, based on the reference a native procedure;   invoking the native procedure and providing the parameter to the native procedure;   determining if the request comprises a target textual identifier and a reply-to service identifier;   in an event the request includes the reply-to service identifier:   receiving a result from the native procedure,   forming a reply-to request, the reply-to request including the reply-to service identifier, and the result received from the native procedure, and   sending, to the SVM, the reply-to request;   in an event the request does not include the target textual identifier, or the target textual identifier is associated with the SVM, processing the received request;   in an event the request includes the target textual identifier that identifies a neighbor SVM, submitting the request to the neighbor SVM; and   in an event the request includes the target textual identifier that does not identify a neighbor SVM, receiving a neighbor SVM textual identifier, and then submitting the request to the neighbor SVM identified by the neighbor SVM textual identifier.   
     
     
         2 . The method of  claim 1 , wherein the native procedure is a standalone procedure or a global procedure. 
     
     
         3 . The method of  claim 1 , wherein the native procedure is a method provided by an object. 
     
     
         4 . The method of  claim 1 , wherein the native procedure is a method provided by a class. 
     
     
         5 . (canceled) 
     
     
         6 . The method of  claim 1 , wherein the neighbor SVM textual identifier is a result of the SVM performing a routing algorithm. 
     
     
         7 . The method of  claim 1 , wherein the neighbor SVM textual identifier is a result of the SVM reading a memory configuration. 
     
     
         8 . The method of  claim 1 , wherein the neighbor SVM textual identifier is a result of the SVM reading a configuration file. 
     
     
         9 . The method of  claim 1 , wherein the neighbor SVM textual identifier is received by the SVM from outside the SVM. 
     
     
         10 . The method of  claim 1 , wherein the reference includes an object identifier and a method identifier identifying the native procedure. 
     
     
         11 . The method of  claim 10 , further comprising identifying a native object based on the object identifier. 
     
     
         12 . The method of  claim 11 , further comprising identifying a native method in the native object based on the method identifier, wherein the native procedure is the native method. 
     
     
         13 . The method of  claim 12 , wherein invoking the native procedure comprises invoking the native method. 
     
     
         14 . The method of  claim 10 , further comprising identifying multiple objects based on the object identifier. 
     
     
         15 . The method of  claim 14 , further comprising identifying a single object from the multiple objects. 
     
     
         16 . The method of  claim 15 , further comprising identifying a native method in the single object based on the method identifier, wherein the native procedure is the native method. 
     
     
         17 . The method of  claim 11 , further comprising allowing only one thread at a time to invoke a method in the native object. 
     
     
         18 . The method of  claim 1 , further comprising:
 receiving the request using a first thread; and   invoking the native procedure using a second thread.   
     
     
         19 . The method of  claim 18 , wherein the first thread is asynchronous of the second thread. 
     
     
         20 . The method of  claim 19 , wherein the first thread and the second thread are two different threads. 
     
     
         21 . The method of  claim 20 , wherein the first thread and the second thread are the same thread, but are asynchronous to each other due to thread scheduling. 
     
     
         22 . (canceled) 
     
     
         23 . (canceled) 
     
     
         24 . A method for processing, in a computer program, requests received by a source service virtual machine (SVM), comprising:
 receiving, by the source SVM, a first request from within the computer program, wherein the first request includes at least a first target reference and a first parameter;   if the first request does not comprise a target SVM identifier or the target SVM identifier is associated with the source SVM, then:
 identifying, based on the first target reference, a callable programming unit within the computer program, 
 invoking the callable programming unit and providing the first parameter to the callable programming unit, and 
 processing, by the source SVM, a next request if the first request does not include a reply-to reference; 
 in an event the first request also includes a reply-to reference:
 receiving a result from the callable programming unit, 
 wherein the result is based at least in part on a value of the first parameter, 
 forming a second request, wherein the second request includes a second target reference and a second parameter, the second target reference is the reply-to reference, and the second parameter is the result received from the callable programming unit, and 
 sending the second request to the source SVM from within the computer program such that the second request carries the result received from the callable programming unit to the source SVM as a subsequent request and the second request is only formed and sent to the source SVM after the callable programming unit generates the result for the second request to be processed by the source SVM; and 
 
   if the first request comprises a target SVM identifier not associated with the source SVM, then determining if the target SVM identifier is associated with a connected service virtual machine and sending the request to the connected service virtual machine if the target SVM identifier is associated with the connected service virtual machine.   
     
     
         25 . A computer-implemented method for providing a service virtual machine, the method comprising:
 receiving a request from a caller, the request comprising a reference to a virtual service;   if the request does not comprise a target identifier or the target identifier is associated with the service virtual machine, then invoking a native programming unit associated with the virtual service; and   if the request comprises a target identifier not associated with the service virtual machine, then determining if the target identifier is associated with a connected service virtual machine and sending the request to the connected service virtual machine if the target identifier is associated with the connected service virtual machine.   
     
     
         26 . The method of  claim 25 , wherein:
 determining if the target identifier is associated with a connected service virtual machine comprises determining if the target identifier is associated with a neighbor service virtual machine; and   sending the request comprises sending the request to the neighbor service virtual machine if the target identifier is associated with the neighbor service virtual machine.   
     
     
         27 . The method of  claim 25 , wherein:
 determining if the target identifier is associated with a connected service virtual machine comprises seeking routing information that indicates a neighbor service virtual machine is in or stores a route to the connected service virtual machine; and   sending the request to the neighbor service virtual machine if the routing information indicates the neighbor service virtual machine is in or stores a route to the connected service virtual machine.   
     
     
         28 . The method of  claim 25 , wherein:
 determining if the target identifier is associated with a connected service virtual machine comprises determining if the target identifier is associated with a neighbor service virtual machine;   sending the request comprises sending the request to the neighbor service virtual machine if the target identifier is associated with the neighbor service virtual machine;   if the target identifier is not associated with a neighbor service machine, seeking routing information that indicates a neighbor service virtual machine is in or stores a route to the connected service virtual machine; and   sending the request to the neighbor service virtual machine if the routing information indicates the neighbor service virtual machine is in or stores a route to the connected service virtual machine.   
     
     
         29 . The method of  claim 25 , further comprising:
 receiving a result from the native programming unit associated with the virtual service; and   if the request comprises a reference to a reply-to virtual service:
 forming a second request comprising a second target identifier associated with the reply-to virtual service, 
 if the second target identifier is associated with the service virtual machine, then invoking a second native programming unit associated with the reply-to virtual service, and 
 if the second target identifier is not associated with the service virtual machine, then determining if the second target identifier is associated with a connected service virtual machine and sending the request to the connected service virtual machine if the second target identifier is associated with the connected service virtual machine. 
   
     
     
         30 . A method for processing a request received by a service virtual machine, the method comprising:
 receiving a request, wherein the request includes a target reference and a parameter;   determining if the target reference comprises a service identifier;   if the target reference does not include the service identifier or the service identifier is associated with the service virtual machine, then:
 identifying a native procedure based on the target reference, 
 invoking the native procedure with the parameter, 
 determining if the request comprises a reply-to reference, and 
 in an event the request includes the reply-to reference:
 receiving a result from the native procedure, 
 forming a reply-to request, the reply-to request comprising the reply-to reference and the result received from the native procedure, and 
 sending the reply-to request to the service virtual machine; and 
 
 if the service identifier is not associated with the service virtual machine, forwarding the request. 
   
     
     
         31 . The method of  claim 30 , wherein forwarding the request comprises submitting the request to a neighbor service virtual machine if the service identifier identifies the neighbor service virtual machine. 
     
     
         32 . The method of  claim 30 , wherein forwarding the request comprises submitting the request to a router. 
     
     
         33 . The method of  claim 30 , wherein forwarding the request comprises receiving a neighbor service virtual machine identifier and submitting the request to a neighbor service virtual machine identified by the neighbor service virtual machine identifier if the service identifier does not identify a neighbor service virtual machine. 
     
     
         34 . The method of  claim 33 , wherein receiving the neighbor service virtual machine identifier is received from a routing algorithm executed by the service virtual machine. 
     
     
         35 . The method of  claim 33 , wherein the neighbor service virtual machine identifier is received from a memory configuration read by the service virtual machine. 
     
     
         36 . The method of  claim 33 , wherein the neighbor service virtual machine identifier is received from a configuration file read by the service virtual machine. 
     
     
         37 . The method of  claim 33 , wherein the neighbor service virtual machine identifier is received from outside the service virtual machine. 
     
     
         38 . The method of  claim 30 , wherein forwarding the request comprises:
 if the service identifier identifies a neighbor service virtual machine, submitting the request to the neighbor service virtual machine;   if the service identifier does not identify a neighbor service virtual machine, receiving a neighbor service virtual machine identifier and submitting the request to a neighbor service virtual machine identified by the neighbor service virtual machine identifier; and   if the service identifier does not identify a known service virtual machine, submitting the request to a router.   
     
     
         39 . A system for providing a virtual service to a calling program, the system comprising:
 a target service virtual machine; and   a source service virtual machine connected to the target service virtual machine, wherein the source service virtual machine is configured to:
 receive a request from the calling program, the request comprising a reference to the virtual service, 
 determine if the request includes a target identifier, 
 if the request does not comprise a target identifier or the target identifier is associated with the source service virtual machine, then invoking a native programming unit associated with the virtual service, and 
 if the target identifier is not associated with the source service virtual machine, then determining if the target identifier is associated with the target service virtual machine and sending the request to the target service virtual machine if the target identifier is associated with the target service virtual machine.

Join the waitlist — get patent alerts

Track US2021263788A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.