Method and apparatus for automatically optimizing execution...

Electrical computers and digital processing systems: multicomput – Distributed data processing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06230184

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to the field of computer software and more specifically to a method and apparatus for automatically optimizing execution of a computer program.
Portions of the disclosure of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever. Sun, Sun Microsystems, the Sun logo, Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
2. Background Art
The use of networks for the distribution of computer programs has grown dramatically, particularly in the case of the Internet and the World Wide Web. A problem with distributing large computer programs over a network is that a large amount of time is required to download and initialize the program. This problem can be understood by reviewing the current methods for distributing computer program and documents over computer networks.
Internet
Computer programs and documents can both be distributed over the Internet. The Internet is a worldwide network of interconnected computers. A client, or Internet client, typically refers to the computer that a person uses to access the Internet. An Internet client accesses other computers on the Internet via an Internet provider. An Internet provider is an organization that provides a client with access to the Internet (via an analog telephone line or Integrated Services Digital Network (ISDN) line, for example).
Distributing Documents Over a Network
A client can, for example, download a document from or send an electronic mail message to another computer/client using the Internet. One type of file a client can download is known as a web page. A web page contains text, pictures, or other types of files that are displayed on the client using a web browser. A web browser is a software program that executes on the client and uses the Hypertext Transfer Protocol (HTTP) to request web pages from servers throughout the Internet. HTTP is a set of rules for exchanging files (text files, image files, sound files, video files, and other data files). Netscape Navigator and Internet Explorer are both examples of widely used web browsers that use the HTTP protocol. (Note that HTTP is only one protocol available to exchange files. Any of several other protocols may also be used.)
Displaying Documents (or files) Using a Web Browser
The Hypertext Markup Language (HTML) is used to describe how to display a web page. An HTML description is typically comprised of a set of “markup” symbols. An HTML document or file that contains the “markup” symbols for a web page is transmitted to the client computer. The web browser executing at the client parses the “markup” symbols in the HTML document and produces and displays a web page based on the information in the HTML document. Consequently, the HTML document defines the web page that is rendered at runtime on the browser. For example, the following set of “markup” symbols directs the browser to place a title, a heading, and an image called “image.jpg” on a web page:
<HTML>
<HEAD>
<TITLE>This is the documents title</TITLE>
</HEAD>
<BODY>
<H1>This text displayed using heading level one</H1>
<IMG SRC=“http:/ /(active domain name address)/image.jpg”>
</BODY>
</HTML>
where (active domain name address) comprises a URL (or Uniform Resource Locator) or an IP (or Internet Protocol) address. The “markup” symbols typically surround an HTML command. The “<” symbol indicates the start of an HTML command and the “</” symbol indicates the end of an HTML command. Each start or end command has a corresponding “>” to indicate the close of that particular command. The information the HTML command is issued on is typically contained between the “>” symbol of the start command and the “</” symbol of the end command. An HTML command describes to the web browser what to do with the block of information located between the two commands. In the above example, “<HTML>”, “</HTML>”, “<TITLE>” and “</TITLE>” are examples of HTML commands surrounded by “markup” symbols.
When a web browser receives an HTML document it displays the information contained between each set of “markup” symbols in a manner that coincides with the HTML commands issued. For example, the text “<TITLE>This is the document title</TITLE>” directs the web browser to place the text “This is the document title” in the title bar of the web browser.
Some HTML commands have attributes. The HTML command “<IMG>”, for example, has a “SRC=” attribute. The <IMG> command tells the web browser to display an image and the “SRC=” attribute identifies the location and name of the image to be displayed. For example, the statement <IMG SRC=“http://(active domain name address)/image.jpg”> tells the web browser to display an image named image.jpg that can be obtained from the web server located at the address http://(active domain name address).
Distributing Computer Programs Over a Network
In addition to retrieving documents containing “markup” symbols a client can also use the Internet to obtain other files such as a computer program from another computer located on the same network. Various mechanisms exist for retrieving computer programs using the Internet or other types of computer networks. To understand the problems and disadvantages associated with current approaches to distributing computer programs over a network, a review of programming environments is helpful.
The Programming Environment Utilized by the Java Programming Language
Java is an object-oriented programming language and thus programs written in the Java programming language are comprised of a number of different classes and interfaces. Unlike many programming languages, in which a program is compiled into machine-dependent, executable program code, programs written in the Java programming language are compiled into machine-independent bytecode classfiles. Each classfile contains code and data in a platform-independent format called the classfile format. The computer system acting as the execution vehicle contains a program called a virtual machine, which is responsible for executing the bytecode. The virtual machine provides a level of abstraction between the machine-independent bytecode classes and the machine-dependent instruction set of the underlying computer hardware. Virtual machines exist for a variety of different operating systems. A “class loader” within the virtual machine is responsible for loading the bytecode classfiles as needed, and either an interpreter executes the bytecodes directly, or a “just-in-time” (JIT) compiler transforms the bytecodes into machine code, so that they can be executed by the processor.
FIG. 1A
provides an example of the programming environment utilized by the Java programming language. When this programming environment is installed on a client computer
111
-
113
, (
FIG. 1B
) that computer can run programs. Programs are run in a Java Runtime Environment
103
(JRE). The JRE
103
is comprised of a class loader
104
, a bytecode verifier
105
, and one or more classes
106
. The JRE utilizes a Java Virtual Machine (JVM)
107
comprised of a bytecode interpreter
108
and a peer interface
109
. The JVM
107
interprets the bytecode using a bytecode interpreter
108
. (Note that in some architectures (e.g. JavaStation), the bytecodes can be executed directly, requiring neither interpreter nor JIT.)
The programming environment utilized by the Java programming language can optionally include additional components. For example, a Just In Time (JIT) compiler
110
can also be added to the programming environment if desired. The JIT is a compiler that convert

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for automatically optimizing execution... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for automatically optimizing execution..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for automatically optimizing execution... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2565126

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.