Process and system for developing an application program for...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06330717

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 process for compiling an application program for a distributed adaptive run-time platform and comprising the steps of: parsing a application source file of the application program to locate predefined keywords for identifying an adaptive class; provided that the adaptive class includes an adaptive method, extending a constructor of the adaptive class such that a selector for the adaptive method is created when the adaptive class is instantiated; and provided that the adaptive class includes a reflective method, extending the constructor of the adaptive class such that a reflector for the reflective method is created when the adaptive class is instantiated.


REFERENCES:
patent: 4893199 (1990-01-01), Okada
patent: 5420573 (1995-05-01), Tanaka et al.
patent: 5509123 (1996-04-01), Dobbins et al.
patent: 5537605 (1996-07-01), Teece
patent: 5920725 (1999-07-01), Ma et al.
patent: 2767795 (1989-03-01), None
Sony et al., Specification of the Home Audio/Video Interoperability (HAVi) Architecture, May 11, 1998.
Sony et al., Specification of the Home Audio/Video Interoperability (HAVi) Architecture, Nov. 19, 1998.

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 developing an application program 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 developing an application program for..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Process and system for developing an application program for... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2577306

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