The present invention relates generally to computer processing, and more particularly to techniques for upgrading software objects using inherency.
Many complex software applications have been created to assist business enterprises manage and operate their businesses. An important class of such software applications focuses in the area of customer relationship management (CRM). A CRM application allows an enterprise to maintain track of various entities such as contacts, products, activities, and so on, and to define the relationships between the entities with defined sets of rules (e.g., business opportunities). The CRM application typically provides a set of screens, menus, forms, and so on that allow a user to enter, modify, and view information related to these different entities. For example, different forms may be provided to present information for different entities, and each form typically includes a number of fields for various attributes associated with the entity being displayed.
A software application may include a repository of objects at various architecture layers. The objects in the repository may be referred to as “meta objects” or “repository objects” or simply “objects”. For example, the forms may represent a class of objects at a user interface layer. Other objects may also be provided at an object layer and a data layer. These objects are used to support the functions and features for the software application.
Different business enterprises typically have different requirements and preferences. This may necessitate the need to modify some of the objects (e.g., forms and fields) provided with an out-of-the-box (OOTB) software application. A software vendor may recognize this need and provide the necessary tools (e.g., as part of the software application) to allow an enterprise to customize the objects (e.g., forms and fields) in accordance with its needs and preferences.
Complex software applications may also be revised or upgraded over time to provide enhanced features and functionality, and to possibly remedy any prior deficiencies. A revised application may include upgraded versions of certain objects. In the upgrade process, it is often preferable to retain prior customizations performed by the enterprise while at the same time upgrade the objects to obtain the benefits of the upgrade features and functionality.
The upgrade process can be quite complicated since a complex software application may include a large number of objects (e.g., possibly thousands or even millions). Moreover, customization may have been performed by an enterprise on any or all objects shipped with an OOTB software application. Thus, techniques that facilitate the upgrade of these objects while retaining prior customizations are highly desirable.