Determining a current machine state of software

Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C713S100000, C709S220000, C710S008000, C710S104000, C714S005110

Reexamination Certificate

active

06442684

ABSTRACT:

Historically, software applications were typically batch-processed on a mainframe at a centralized computing center. More recently, the availability of inexpensive, yet powerful personal computers has displaced the batch-processing mode of the past. The availability of a wide range of user-friendly, productivity enhancement software has made personal computing ubiquitous. Although more easily customized to users' specific requirements, the proliferation of personal computers is making the job of managing large scale computing more difficult. In the past, the mainframe in the computing center performed centralized system management tasks, including library and configuration management and software version control, among others. However, in a modem network with diverse processors, peripherals, and software applications, the range of possible configurations is staggering.
Some of the configuration information is hardware specific, such as disk controller port addresses, communication port addresses and video port addresses. Further, software specific configuration parameters may be set within configuration files for each application. For example, a configuration file stored within an IBM-compatible personal computer known as an autoexec.bat file may include path statements. Additionally, specific application software may require specific initialization information to run effectively. Typically, this information may be set in an initialization (.ini) file.
Once installed, the computer configuration does not remain static, however. The user may update configurable preferences while operating the software, such as updating file open/save paths. Additionally, the user may “personalize” the software by adding new information such as bookmark data in the case of World-Wide-Web browser software, for example. Moreover, due to the constant competitive pressure to build a better product, by the time a software release is delivered to the user, software developers are already working on the next release. To cope with rising demands on friendlier and more functional applications, software developers have increasingly adopted a component model where an application is reduced into a plurality of modules or components. Modifications may be made to a single component to enhance its performance or implement new features not previously available without compromising the status of the remaining components. In this paradigm, a software application is a collection of many separate files, each of which may be generated by unrelated software developers who may be more aware of each component's integrity than the integrity of the assembled package. Although software reuse is promoted, the paradigm necessitates a higher level of inter-component integrity. Not surprisingly, although more frequent updates bring more functional software to users, the complexity of managing the release installation increases disproportionally with the number of changes.
Historically, relationships between components have been manually detected and component states recorded in a log. This information is external of the components themselves and must be updated whenever the components change. As state information is recorded only at the time of development, changes made subsequent to the time of development may be lost. As the pace of changes increases and complexity of the software assembly process grows, the external representation of the correct state relationship between components becomes prone to error.
Moreover, during use, users may personalize the software and thus change the state information. The difference in state information between software installation and software operation leads to an unpredictable operation and may require more support from information system (IS) personnel.
Maintenance of the current states of software applications in commercial operations is needed in a variety of applications, including software installation, synchronization, backup, recovery, analysis and repair. A detailed knowledge of a computer's dynamic environment and its system configuration is needed to prevent situations where modifications to one component to correct one problem may introduce other errors if improperly installed. Moreover, an accurate knowledge of system configuration is required in order to verify compatibility and to ensure integrity across multiple operating environments and across diverse processors.
SUMMARY
The present invention determines an application state by determining entities which provide predetermined functionalities for a user, determining items that depend from the determined entities, grouping entities by pruning overlapping entities and combining similar entities, and packaging the group of entities using a predetermined format. The system provides automatic relationship resolution based on a current machine state to enumerate in a deterministic manner fundamental data, metadata and dependencies necessary for correct application function. A complete, persistent run-time state information about the application is generated which may be used in installation, synchronization, backup, recovery, analysis and repair of a computer system.
In one aspect, the entities are analyzed by determining tiers of user accessibility. Further, for each tier, root entities are enumerated based on predetermined criteria. For each enumerated entity, one or more dependencies of the entity are determined.
In another aspect, the item dependency is determined by generating one or more candidates, analyzing the candidates, confirming the candidates, and packaging items associated with the candidate.
In yet another aspect, the entity grouping and packaging is accomplished by determining an inter-entity relationship, processing the entities based on the inter-entity relationship, and placing the entities into a predetermined format.
In another aspect, the format contains detailed information about each item and each entity. The format has zero or one information block and one or more entity blocks. Multiple information blocks with their associated entity blocks may be grouped together.
Advantages of the present invention include the following. The invention dynamically rebuilds an external representation of correct state from the components themselves. Moreover, because the state construction process is dynamic, the invention can follow software through its entire life cycle and provide information for many management tasks that need detailed information about the application during execution.


REFERENCES:
patent: 4536791 (1985-08-01), Campbell et al.
patent: 5164941 (1992-11-01), Delaney et al.
patent: 5247683 (1993-09-01), Holmes et al.
patent: 5283864 (1994-02-01), Knowlton
patent: 5291490 (1994-03-01), Conti et al.
patent: 5499357 (1996-03-01), Sonty et al.
patent: 5504879 (1996-04-01), Eisenberg et al.
patent: 5509116 (1996-04-01), Hiraga et al.
patent: 5581764 (1996-12-01), Fitzgerald et al.
patent: 5600565 (1997-02-01), Wagner et al.
patent: 5666501 (1997-09-01), Jones et al.
patent: 5721824 (1998-02-01), Taylor
patent: 5752042 (1998-05-01), Cole et al.
patent: 5828878 (1998-10-01), Bennett
patent: 5835777 (1998-11-01), Staelin
patent: 5987636 (1999-11-01), Bommu et al.
patent: 5996073 (1999-11-01), Lee et al.
patent: 6052483 (2000-04-01), Baired et al.
patent: 6158001 (2000-12-01), Lee et al.
patent: 6163859 (2000-12-01), Lee et al.
patent: 0 458 495 (1991-11-01), None
patent: 0 632 371 (1995-01-01), None
patent: 0 707 264 (1996-04-01), None
Gulla et al., “Change-oriented Version Descriptions in EPOS,”Software Engineering Journal, 1991, 6:378-386.
Kath, “The Portable Executable File Format from T Bottom,” Microsoft article from http://microsoft.com/win32dev/base/pefile.htm, 1997.

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

Determining a current machine state of software does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Determining a current machine state of software, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Determining a current machine state of software will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2884613

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