Uniform access to and interchange between objects employing...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06182155

ABSTRACT:

FIELD OF THE INVENTION
1. Technical Field
This invention relates generally to the field of multi-language, distributed programming environments, and provides, in particular, a mechanism for transparently issuing remote and local cross-language, and local same language calls from an object oriented environment.
2. Prior Art
Object oriented (OO) technology is significantly different, on design level, from the more conventional process-based technology. The latter is often called procedural technology, and programming in such technology generally results in hierarchies of nested computer programs or procedures.
By contrast, the focus of OO design is on how the problem can be broken down into a set of autonomous entities that can work together to provide a solution. The autonomous entities of OO technology are called objects.
Essentially, an object oriented program is created using a set of language tools, abstractions and constructs that support a particular form of user-defined types, called “classes”. Each such type associates a collection of declared data with a set of operations on that data. Variables, or instances, of such types in the running programs are the objects.
Classes can be related to one another by inheritance. The properties, behaviours, data, and operations of a parent, or “base”, class may be inherited without modification by some child, or “derived” class, or the behaviours, properties, and operations may be selectively refined under control of the programmer. When defining a derived class, one may start by building on an existing base class which is similar to the one to be created. The derived class inherits the implementation and behaviour of the base class, except as modified by amendments detailed in the derived class definition. Several classes can inherit the behaviours of a common parent, and a derived class may inherit from more than one base class.
A member function is a function or operation defined as a behaviour of some user-defined type where that type participates in a hierarchy of other types. Functions are not directly called out, but are invoked on an object.
Since the first development of OO technology concepts in the 1970's and the invention of the C++ programming language in the 1980's, OO programming languages have proliferated, many directed to specialty applications.
The concept of reusable objects has a number of advantages in terms reducing programming development time and cost. However, use of a specific OO programming language may have draw backs. For example, C++ lacks inherent concurrency.
This can be addressed in a distributed programming environment that provides the appearance of concurrency in performing multiple operations simultaneously. One system described in Canadian Patent Application No. 2,097,540 to IBM Canada Ltd., laid open Dec. 2, 1994, provides transparent access to data objects located in the memory address spaces of remote processors of the same type. The memory space of each of the multiple processors in the distributed environment is segmented; a data object is referenced at parallel segments in each processor. Where the data object resides in the local memory of a processor, the memory segment referencing it contains a variable record identifying its actual address in the processor's memory. Where the data object resides in the memory of a remote processor, the memory segment contains a variable record simply identifying the remote processor. The reference points directly to the parallel memory segment containing the data objects actual address in the remote processor. The application also describes a mechanism to handle data object migration within the processor cluster.
Another way to represent remote objects locally is through the use of “proxies”. An early approach to the use of proxies is found in M. Shapiro, “Structure and Encapsulation of Distributed Systems: The Proxy Principle”, Proceedings of Sixth International Conference of Distributed Computer Systems, May 1986, pp. 198-204, where proxies are described as being of the nature of “stubs” introduced as interfaces between clients and services.
Proxies are often used to allow access to remote objects transparently, so that the interface of the proxy that is accessible to the client is indistinguishable from a similar interface of the actual implementation. This “local-remote transparency” allows the use of a consistent programming style in the client, and permits common code to deal with both local and remote objects. IBM's DSOM and IONA Orbix, which conform to the Object Management Group's Common Object Request Broker Architecture (OMG CORBA), are examples of this use of proxies. These environments also offer symmetry, in that a mixture of implementations and proxies can exist on both sides of a remote connection. The use of proxies enables the support of complex interfaces involving complicated data types, exceptions, and inheritance.
In addition to the value added by distributed processing, access to functions provided in other programming languages can enhance the usability of object oriented languages such as C++. For example, the Java programming language provides a particularly useful format for Internet transmission, COBOL provides an efficient way to extract and combine fields from complex business records, etc.
Proxies are used to provide cross-language access to local objects. The TwinPeaks project at SunSoft and ILOG Corporations is developing a tool to construct a Java language proxy automatically from a C++ class declaration, although the result is not symmetric. Microsoft's COM and Java virtual machine technology provide a symmetric capability between C++ and Java, utilizing dynamically generated proxies on the Java side.
At present, there are no solutions that provide a combination of these features: remote access, transparency, symmetry, complex interfaces, and high-performance local cross-language access.
Remote technology can be used to achieve many of these features, for example by using a C++ Object Request Broker (ORB) in communication with a Java ORB, but can support only limited forms of a high-performance path for local cross-language use.
Microsoft Distributed COM has some similar capabilities. However its support for navigation among related interfaces is obtrusive, and expensive because it implies an interaction between a client and a, possibly remote, implementation. Local COM provides a high-performance local cross-language alternative, but it is not transparent because the data types handled are only a subset of those available in the distributed or cross-process case.
At present, no solution supports symmetric and transparent cross-language calls in a local or remote processing environment, with complex interfaces and inheritance, and a high-performance optimization of local access.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a uniform programming interface for remote and local cross-language, as well as for local same-language calls, while optimizing each one.
It is also an object of the present invention to provide a symmetric programming capability in which references to objects in a remote environment, local objects in one programming language environment, and local objects in a second programming language environment may be exchanged among the environments.
Accordingly, the present invention provides a method for constructing implementations and proxies, permitting a client to access an object directly, or through a proxy, without awareness on the part of the client as to which is used. This is achieved by providing, in a multi-language computing environment supporting interface composition through inheritance and implementation inheritance from common base classes, a mechanism to give apparently transparent access to objects.
The mechanism consists of a pure interface base class adapted to generate a hierarchy of pure interface classes containing only method implementations and instance data

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

Uniform access to and interchange between objects employing... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Uniform access to and interchange between objects employing..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Uniform access to and interchange between objects employing... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2530571

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