Method and System for Dynamically Composing Distributed Interactive Applications from High-Level Programming Languages
Abstract
The present application is directed to a method and system for dynamic composition of distributed interactive applications from high-level programming languages. A typical system includes a system processor and a system data store (SDS) in communication with the system processor ( 120 ). The methods described herein may execute upon any suitable hardware platform such as the system processor and SDS. The methods may further be embodied in computer executable instructions stored upon one or more computer readable media. Alternatively, some, or all, the steps of such methods can be implemented in suitable hardware such as field programmable gate arrays or application specific integrated circuits; other steps, or all steps, can be implemented via instructions executable by a general purpose processor. An exemplary method includes the steps of: (1) receiving a request for an interactive application from a client, ( 210 ), (2) selecting an input program ( 850 ) in an input program language based upon the received request. (3) Parsing the selected input program into an abstract syntax tree ( 420 ), (4) updating the abstract syntax tree based upon one or more deferred binding requests ( 430 ), and (5) generating ( 470 ) the interactive application in a target language from the updated abstract syntax tree.
Claims
exact text as granted — not AI-modified1 . A method of generating an interactive program from an input program, the method comprising the steps of:
a) receiving a request for an interactive application from a client, b) selecting an input program in an input program language based upon the received request, c) parsing the selected input program into an abstract syntax tree, d) updating the abstract syntax tree based upon one or more deferred binding requests, and e) generating the interactive application in a target language from the updated abstract syntax tree.
2 . The method of claims 1 , and further comprising the step of optimizing the abstract syntax tree.
3 . The method of claims 1 , wherein the step of updating the abstract syntax tree comprises the steps of:
i) making a deferred binding decision for a requested class to produce a substitute class, and ii) modifying the abstract syntax tree by replacing deferred binding instantiations of the requested class with the substitute class.
4 . The method of any of claims 3 , wherein the step of making a deferred binding decision comprises the steps of:
(1) retrieving context information, and (2) selecting or generating the substitute class based upon the retrieved context information.
5 . The method of any of claims 4 , wherein the step of making a deferred binding decision further comprises the step of retrieving rule information and wherein the step of selecting or generating the substitute class is further based upon the retrieved rule information.
6 . The method of any of claims 3 , wherein the step of making a deferred binding decision comprises the steps of:
(1) retrieving rule information, and (2) selecting or generating the substitute class based upon the retrieved rule information.
7 . The method of any of claims 3 - 6 , and further comprising the step of optimizing the abstract syntax tree.
8 . The method of any of claims 1 - 6 , wherein the input program comprises embedded code in the target language and wherein the step of generating the interactive application comprises incorporating the embedded code.
9 . The method of any of claims 1 - 6 , wherein the step of generating the interactive application comprises incorporating a server license key into the interactive application.
10 . The method of claim 9 , wherein the server license key is encodes identification information associated with a server component.
11 . The method of any of claims 1 - 6 , wherein the input program comprises embedded hints in the input program language and wherein the step of generating the interactive application is based at least in part on the embedded hints.
12 . The method of any of claims 1 - 6 , wherein the step of generating the interactive application comprises generating the interactive application with embedded information that facilitates correct caching of the interactive application at one or more caching levels.
13 . The method of any of claims 1 - 6 , wherein the input program comprises at least one portion of exception handling code and wherein the step of generating the interactive application comprises adapting the exception handling code into functionally similar exception handling code in the target language.
14 . One or more computer readable media storing instructions that upon execution by a computer cause the computer to execute any of the methods of claims 1 - 6 .
15 . A method of verifying license compliance for a Web application, the method comprising the steps of:
a) generating a Web application comprising a broadcast key and a license tag; b) making the generated Web application available for review by a Web search engine; c) querying the search engine for a selected license tag, thereby generating a list of reviewed Web applications; and d) evaluating the broadcast keys associated with each Web application in the list of reviewed Web application to identify duplicate broadcast license keys.
16 . The method of claim 15 , and further comprising the step of generating a license tag.
17 . The method of claim 16 , wherein the step of generating a license tag comprises assigning a globally unique identifier.
18 . The method of any of claims 15 - 17 , and further comprising the step of generating a broadcast key.
19 . The method of claim 18 , wherein the step of generating a broadcast key comprises the steps of:
i) retrieving a raw key; ii) applying a symmetric encryption to the raw key, thereby generating a user key; and iii) applying a symmetric encryption to the user key, thereby resulting in the broadcast key.
20 . The method of step 19 , wherein the step of retrieving a raw key comprises the step of generating the raw key based upon information associated with a user.
21 . The method of claim 20 , wherein the step of generating the raw key is further based upon information associated with a licensed hardware platform.
22 . One or more computer readable media storing instructions that upon execution by a computer cause the computer to execute any of the methods of claims 15 - 17 .
23 . A system for generating an interactive program from an input program, the system comprising:
a) means for selecting an input program in an input program language, b) means for parsing the selected input program into an abstract syntax tree, c) means for updating the abstract syntax tree based upon one or more deferred binding requests, and d) means for generating the interactive application in a target language from the updated abstract syntax tree.Join the waitlist — get patent alerts
Track US2008022267A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.