Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1997-08-12
2001-01-30
Hafiz, Tariq R. (Department: 2762)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000, C717S152000, C717S152000, C717S152000
Reexamination Certificate
active
06182279
ABSTRACT:
COPENDING APPLICATIONS
This application is the one of five U.S. patent applications filed on an even date herewith and commonly assigned, including:
Ser. No. 08/910,366, by Jeffrey J. Buxton, et. al. entitled “Architecture for customizable Component System”;
Ser. No. 08/910,144, by Jeffrey J. Buxton, et. al. entitled “Method and Apparatus for Building Templates in a Component System”;
Ser. No. 08/909,753, by Jeffrey J. Buxton, et. al. entitled “Method and Apparatus for Loading Components in a Component System”; and
Ser. No. 08/910,140, by Jeffrey J. Buxton entitled “Method and Apparatus for Distributing Templates in a Component System.
The subject matters of the above-identified copending patent applications are hereby incorporated herein by reference.
FIELD OF THE INVENTION
This invention relates generally to improvements in computer systems, and, more particularly, to a system for creating and distributing customized applications.
BACKGROUND OF THE INVENTION
In the evolution of data processing systems, much of the functionality which previously had been performed by hardware system components is now being constructed utilizing software programming instead. Such an approach disfavors proprietary hardware architectures and encourages open system architectures on which a multitude of software algorithms can be executed on a common hardware architecture. As a result, software programs or applications have become more powerful and increasingly complex. Unfortunately, numerous difficulties arise in the development and maintenance of such software applications. Traditional applications have become so large and complex that even minor changes may take several weeks or months to implement. Accordingly, the trend in both software development and program language development is towards more modular, self-contained software designs.
One of the major developments in the field of software design has been the emergence of object-oriented technology. As explained in greater detail hereinafter, object-oriented technology enables the analysis, design and implementation of software systems with intelligent, autonomous agents called objects. Such objects facilitate the design of modular software which more closely mimics the physical or logical entities within the real world.
Despite the emergence of object-oriented technology most end-users have been typically unable to directly utilize the efficient, more modular design of an application, even if the application has been designed using object-oriented technology. For example, users of applets, i.e., small applications such as spreadsheets and file viewers, typically wish to customize such applications for their own preferred tasks and to allow such applications to interact with one another to form larger customized applications without having to redesign or make extensive modifications to such applications. Further, even if such applications were modifiable, their inherent value is often directly related to the ability to distribute such customized applications with accompanying data in a manner which is both efficient and respects the intellectual property rights of the authors. Accordingly, a need exists for a system of intelligent, self-contained software modules which may be used to construct larger applications in a modular fashion. Further, a need exists for a technique in which software applications may be modified as desired by an end-user in the manner which is both simplified and efficient.
A further need exists for a technique in which such modifications to standard applications may be distributed and used in an efficient manner. In addition, a need exists for a technique in which use and distribution of such customized application may be performed only by those who are properly authorized by the software licensor.
SUMMARY OF THE INVENTION
The present invention provides a component system in which a number of base applications, i.e. components, such as file viewers, spreadsheets, draw/diagram utilities, etc. may be customized by a user and the customizations, i.e., the differences from the base applications, distributed in the form of a template to another user having the same base applications on his/her system. A special loader utility, when used in conjunction with the template and the base application from which the template was derived, enables the recipient system to recreate the behavior of the customized application.
The invention is contemplated for use in object-oriented system in which components are implemented as objects. A template builder utility allows a user to select a base component, modify the persistent data of the component, and store the modifications as a template in a predetermined format. The template builder utility further enables the user to package templates in a template distribution package format which enables the templates to be distributed to other users having the same base components installed on their systems. A component loader utility loads the template onto a recipient user system and utilizes the information contained within the template distribution pack to spoof the already installed base component. The method of spoofing is achieved using aggregation of object properties so that method calls to the templated component are selectively directed to the base component by the component loader utility. The component loader utility, however, reserves the right of changing, enhancing or disabling the results of the method call to recreate the behavior of the customized or templated component.
According to one aspect of the invention, a computer program product used with a computer system comprises a computer system useable medium having computer readable program code in the medium. The computer program code comprises program code for defining a storage file, program code for storing at least one template in the storage file, and program code for indexing the template within the storage file. In one embodiment, the template comprises initialization data associated with the template, the initialization data representing changes to the state of persistent data of the component from the template was derived. In another embodiment, the template comprises user-defined instruction associated with the template and information useful in registering the template with a file system registry of a computer system. Such information may include the path name of the component from which the template was derived, and information indicating whether the template is scriptable, and whether the template may be initialized from persistent data.
According to a second aspect of the invention, an apparatus for storing a plurality of templates in a computer system comprises a memory having one or more locations, means for indexing one or more locations within the memory, a template stored in at least one of the memory locations, initialization data associated with the template, key information associated with the template, and means coupling the memory to a central processing unit within the computer system.
In accordance with a third aspect of the invention, a method of generating a template of customizations to a component in an object-oriented computer system comprises the steps of storing as initialization data in a memory, modifications to the state of persistent data of a component, and associating with the initialization data an information key useful in registering the template with a file system registry of a computer system. In one embodiment, the method further comprises the step of associating with the initialization data user-defined instructions related to the template. In another embodiment, the information key may comprise information indicating the path name of the component from the template was derived, information indicating whether the template may be initialized from persistent data or information indicating a class identifier of the object on which the template is based.
REFERENCES:
patent: 4935888 (1990-06-01), Heston et al.
patent: 5189608 (1993-02-01), Lyons et al.
patent: 5353401 (1994-10-01
Hafiz Tariq R.
International Business Machines - Corporation
Kurdirka & Jobse LLP
Vo Ted T.
LandOfFree
Method and apparatus for storing templates in a component... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for storing templates in a component..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for storing templates in a component... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2444986