Technique for automatically and transparently transforming...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000, C709S241000

Reexamination Certificate

active

06542908

ABSTRACT:

RELATED INVENTION
The present invention is related to the IBM invention having Ser. No. 09/533,314, entitled “On-Demand Generation, Packaging, and Delivery of Archive Files”, filed concurrently herewith on Mar. 22, 2000.
1. Field of the Invention
The present invention relates to computer programming, and deals more particularly with a method, system, and computer program product for automatically transforming software components written for stand-alone execution such that they can be executed as client/server components in a distributed network computing model.
2. Description of the Related Art
The client-server model for distributed computing has been in use for a number of years. In this model, a program called the “client” makes a request for service from another program called the “server”. Typically, the machines on which the client and server programs execute are different and are connected through a network such as the Internet, or a corporate intranet or extranet. Some of the code for performing the application is resident on, and executes on, the client machine while other code resides on, and executes on, the server machine.
A client/server application (that is, an application intended to be executed in a client/server distributed computing environment) is developed in a particular manner to enable the code to execute properly at run-time. An agreed-upon communications protocol must be used by both the client and server code, in order to exchange each request for service and its response.
An early protocol used with client/server computing is the Remote Procedure Call (“RPC”). With RPC, a programmer codes a module invocation (i.e. a procedure call) in the normal manner for the programming language in which he is writing, but only a “stub” for that module is generated during program compilation (where a “stub” is a special construct enabling the program to successfully compile without resolving the address of the referenced procedure). If the procedure is actually called during runtime, a request to execute the code will be forwarded to a server where the module is available (hence, the procedure call is a “remote” procedure call). That server will perform the function of the procedure, and return the results to the client workstation, transparently to the user. (For a detailed description of RPC, refer to international standard ISO/IEC 11578, “Remote Procedure Call (RPC)”, dated 1996.)
Another technique that enables this type of distributed computing, which is usable in object-oriented environments, is known as DSOM, or “Distributed System Object Model”. SOM®, or “System Object Model”, is an International Business Machines Corporation (“IBM”) implementation of the CORBA® (Common Object Request Broker Architecture) standard developed by the Object Management Group. (“SOM” is a registered trademark of IBM, and “CORBA” is a registered trademark of Object Management Group, Inc.) SOM defines a way to create objects that can be accessed by programs without regard to the programming language in which the program is written, the specific compiler used to compile the programs, etc. DSOM, also from IBM, extends the SOM by defining a way to distribute SOM objects, so that they can be accessed by remotely executing applications. In addition, Microsoft has developed the Component Object Model, or COM, technology as an alternative to DSOM and CORBA. (The details of CORBA, SOM, DSOM, and COM are beyond the scope of this discussion. Reference may be made to “The Common Object Request Broker: Architecture and Specification”, OMG Document Number 91.12.1 Revision 1.1, for more information on CORBA, and to “SOMobjects Publications”, IBM document number S96F-8649, for more information on SOM and DSOM.)
The Java™ programming language provides yet another technique for operating with only some portion of the executable program being loaded on the client workstation. (“Java” is a trademark of Sun Microsystems, Inc.) Whereas RPC, DSOM, CORBA, and COM provide for accessing remotely-stored procedures and objects, Java provides a different approach through use of Java applets. A Java applet is a special type of software component which is intended to be dynamically downloaded at run-time to a client machine along with a Web page which invokes the code in the applet. The Java applet code modules (referred to as “classes”) are loaded from their remote storage onto the client workstation if and when they are needed (i.e. if they are actually invoked during execution), so that execution occurs locally. Another Java technique is Remote Method Invocation, or “RMI”, which provides for execution of remotely-located Java methods, in a similar manner to that described above for remote execution using RPC, DSOM, CORBA, and COM. RMI is a technique for use in distributed Java applications, whereby the methods of a remote Java object can be invoked from other Java virtual machines, even though the virtual machine may be operating on a different server than the one on which the object is located. This is accomplished by making a reference to the object available to the application that wishes to invoke one of the object's methods. The reference can be made available either by the application program looking up the object's location (using a method invocation) in a bootstrap naming service provided by RMI, or by passing the reference information for the object as a parameter to the application. This reference is then used when invoking the object's method, and serves to automatically route the request to the proper location.
The prior art techniques which have been described all provide for accessing remotely-stored code—whether by executing the code at the remote server (as described for RPC, DSOM, CORBA, COM, and RMI), or by downloading a copy for execution on the client machine (as described for Java applets). The remote execution techniques all have in common a requirement to provide special programming considerations, a priori, to enable the remote execution capability of each individual component. RMI, DSOM, CORBA, and COM, for example, require that a “proxy” version of each remotely-stored software component is generated and then distributed to the client machine(s) which will access the components. At run-time, client software using these techniques must call a search routine to locate the proxy versions. In addition, when using RMI, the remotely-stored components must be pre-registered with the RMI bootstrap naming service.
There are a number of drawbacks to these existing techniques for distributed computing. First, the special preparations which are required for remote execution make writing distributed programs more complex. In addition, once a program has been created for execution in this way, its flexibility is constrained in that it must continue to be executed in a distributed fashion (or else must be rewritten for other execution modes, such as stand-alone execution). Similarly, there is currently no convenient way for a program which is written to operate outside the distributed computing environment (as a locally-executed, stand-alone component, for example) to take advantage of the distributed model without some amount of manually rewriting the code.
Furthermore, the existing techniques for distributed computing are unsuitable in some scenarios. RPC, for example, is not adapted to object-oriented computing. And while use of applets is a very popular and powerful technique for dynamic distribution of code, there are situations in which this technique cannot operate as currently defined. In the legacy host environment, for example, software components written as objects are being developed to access legacy host data (where these objects enable, inter alia, replacing procedural language data access software developed for prior computing architectures such as the 3270 data stream architecture). For reasons which are not pertinent to the present invention, is it not possible to execute certain of these objects remotely. Instead, they must execute at a server. (The HostPublisher

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

Technique for automatically and transparently transforming... does not yet have a rating. At this time, there are no reviews or comments for this patent.

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

Rate now

     

Profile ID: LFUS-PAI-O-3052599

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