Process and system for managing run-time adaptation for...

Electrical computers and digital processing systems: memory – Addressing combined with specific memory configuration or... – Addressing cache memories

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06324619

ABSTRACT:

BACKGROUND OF THE INVENTION
(1) Field of the Invention
The present invention relates generally to the field of computer software. More particularly, the present invention relates to the field of software platforms for distributed applications.
(2) Background Art
Development in software technology has allowed computers to perform a wide variety of useful operations. Depending on the software which is installed within their particular memory storage devices, computers can be used for many purposes. For example, they can be used to manage numerous financial transactions of a bank, control the fabrication of items ranging from automobiles down to integrated circuit chips, store addresses and telephone numbers of acquaintances, analyze scientific and engineering data, produce and edit documents, along with transmitting and receiving data. The functionality and usefulness of a computer system is further enhanced by networking computer systems together.
The Internet has also been made possible by recent advances in hardware and software technology. The Internet is a worldwide collection of computer networks and gateways that use the TCP/IP suite of protocols to communicate with one another. Millions of people use the Internet for communication and entertainment. The Internet is also rapidly evolving as new kinds of networks (e.g., wireless networks, home networks) are added to the Internet to provide new functionalities such as digital broadcast and telephony. The continuous growth in popularity and functionality of the Internet appears promising for large-scale distributed software applications. However, strong barriers prevent their deployment.
Developing large-scale distributed software applications is an intricate and time-consuming process that often requires software designers to develop a full set of services for managing distributed processes such as synchronization and communication between software modules. In addition, when developing a distributed application, it is difficult to predict the latency and communications medium in which it will be used. It is also impossible to predict the number of people that will use the distributed application. Properties like persistency, fault-tolerance and replication, which are typically present in distributed applications, are complex software procedures that are inherently difficult to implement.
In recent years, a number of technologies have been developed to ease the development process in this field. These technologies, such as distributed objects and distributed systems (e.g., Common Object Request Broker Architecture CORBA), simplify the process of creating distributed software applications by abstracting away the complexities of a distributed network environment from the programmer. Nevertheless, many issues in developing distributed applications remain unaddressed. One of the problems applications designers still face is that it is difficult to control the performance of a distributed application. Numerous factors such as format, content and size of an audio/video stream, or the effective mobility and connectivity of a mobile computer, may greatly affect the speed and efficiency of the application. Other factors, such as undocking a mobile computer, may prompt an associated distributed application to perform communication encryption and to adjust its consistency protocols. Changes in one or several of these factors require a quick and appropriate adaptation of the application to deliver the performance expected by the user.
In order to meet these requirements, distributed applications need to be adaptive. Their adaptability should address a wide range of areas and should be sufficiently flexible to allow quick adaptation. One solution is to build adaptive behaviors into individual applications. However, that solution is not feasible because the burden imposed on programmers would be too great. Rather, what is needed is a general application framework that allows an application to provide quick and appropriate adaptation. What is further needed is a method of developing adaptive distributed applications in a relatively abstract and intuitive manner.
SUMMARY OF THE DISCLOSURE
Accordingly, an adaptive software platform for general purpose distributed applications is provided in accordance with the present invention. According to one embodiment of the present invention, adaptive mechanisms are built into the run-time environment along with a set of services that support aspects of distributed programming. Particularly, the built-in adaptive mechanisms of the run-time environment allow a distributed application to react to changing system, network and application characteristics. These and other advantages of the present invention not specifically mentioned above will become clear within discussions of the present invention presented herein.
According to one embodiment of the present invention, the software platform provides support for two adaptation mechanisms: reflective methods and adaptive methods. Reflective methods allow a designer to customize the execution environment of an object at run-time, and adaptive methods allow a designer to provide several implementations for the same method and choose the most effective implementation at run-time. By supporting both reflective methods and adaptive methods, large-scale distributed applications can be readily developed on the software platform used by the present invention.
In furtherance of the present invention, the software platform further includes an adaptation manager for configuring and managing the distributed application's execution environment. In addition, the adaptation manager coordinates the adaptation of multiple objects in a coherent manner by keeping track of instances of the adaptive classes and the platform services that they are using. The adaptation manager also records the adaptation policies and monitors the system state and user preferences. Based on the adaptation polices and the system state, the adaptation manager executes related policies and decides which, how, and when objects should be adapted.
In order to offer application designers a straight forward and intuitive access to the platform services, the present invention further comprises a compiler for assisting application designers in writing the complex code required by the platform, and for providing an easy access to services provided by the platform. Particularly, the compiler parses the source codes of an application and translates pre-defined keywords into codes that are necessary for carrying out reflective and adaptive methods.
Embodiments of the present invention include the above and further include a system for managing run-time adaptation in distributed adaptive software applications and comprising: means for generating a software selector for a first adaptive object of the adaptive software application, the first adaptive object having an adaptive method, wherein the adaptive method comprises a plurality of implementations; means for selecting one of the implementations with the software selector according to predetermined adaptation policies; means for executing the selected implementation provided that the adaptive method is called; means for generating a reflector for a second adaptive object of the adaptive software application, the second adaptive object having a reflective method and a plurality of meta-objects; means for selecting one of the meta-objects with the reflector according to predetermined adaptation policies; and means for executing the selected meta-object provided that the reflective method is called.


REFERENCES:
patent: 4893199 (1990-01-01), Okada
patent: 5420573 (1995-05-01), Tanaka et al.
patent: 5537605 (1996-07-01), Teece
patent: 5857197 (1999-01-01), Mullins
patent: 2767795 (1989-03-01), None
Oikawa S. et al., “Adaptive Object Management For A Reconfigurable Microkernel”, Proceedings Int'l Workshop On Object Orientation in Operating Systems, Oct. 27, 1996, pp. 67-71.
E. Shokir et al., “Architecture of ROAFTS/Soaris: A Solaris-Based Middleware for

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

Process and system for managing run-time adaptation for... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Process and system for managing run-time adaptation for..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Process and system for managing run-time adaptation for... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2602369

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