Comparative updates tracking to synchronize local operating parameters with centrally maintained reference parameters in a multiprocessing system6167408Abstract In a multiprocessing system, a configuration manager maintains various reference parameters that are selectively copied by subordinate managed units to form local operating parameters, which subsequently govern operation of these managed units. A comparative technique is employed to track reference parameter updates, and synchronize each local operating parameter counterpart accordingly. At the configuration manager, reference parameters include reference profiles and reference characteristics. Each reference profile specifies one or more of the reference characteristics. At each managed unit, the operating parameters include subcribed-to profiles and operating characteristics; both are initially copied from the configuration manager's reference profiles/characteristics. Each local operating profile specifies one or more of the operating characteristics. Each managed unit operates according to its locally maintained operating characteristics. When certain update criteria are satisfied, a managed unit and the configuration manager cooperatively synchronize the manage unit's local operating profiles and characteristics with the configuration manager's reference profiles and characteristics. This involves comparing the reference and operating profiles to identify new, updated, or deleted operating characteristics. Also, the local operating profiles and operating characteristics may be cross-referenced to identify any "orphan" characteristics for deletion. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
TABLE 1
______________________________________
Reference Profiles
PROFILE NAME
ASSOCIATED REFERENCE CHARACTERISTICS
______________________________________
Profile A 1, 3, 4, 8
Profile B 1, 2
Profile C 1
Profile D 5
______________________________________
Managed Unit FIG. 4 shows the subcomponents of an exemplary managed unit 400 in more detail. The managed unit 400 includes a processor 402, an interface 404, and a storage 406. The processor 402 may include one or more microprocessors, an application-specific integrated circuit, or any other suitable digital data processing element. The interface 404 facilitates communications between the processor 402 and an attached communications link (not shown). The interface 404 may comprise a modem, intelligent input/output channel, bus, or any other suitable structure. The storage 406 comprises writable non-volatile storage such as magnetic disk storage media, magnetic tape, optical media, battery-supported random access memory (RAM), and the like. The storage 406 includes operating characteristics 408, subscribed-to profiles 410, and a profile master view 409. Generally, the subscribed-to profiles 410 contain the names of zero, one, or more reference profiles 308 (FIG. 3), to which the managed unit 400 subscribes. Each subscribed-to profile also includes a version code, as explained below. The content of the reference profiles to which the managed unit 400 subscribes are contained in the profile master view 409, along with the content of all reference profiles 308, as discussed below. The significance of subscription for the managed unit 400 is that the managed unit 400 maintains its own copy of all reference characteristics 314 specified by its subscribed-to profiles 410. This local copy of the reference characteristics 314 is embodied by the operating characteristics 408. The managed unit 400 operates in compliance with the locally stored operating characteristics 408. The operating characteristics 408 may also include other operational characteristics unrelated to the subscribed-to profiles. These additional characteristics, called "local" operating characteristics, may originate from a system administrator, local application program, or another source. Since a configuration manager's centrally stored reference characteristics 314 and reference profiles 308 may be changed from time to time, the invention provides means to distribute the changes among all affected subordinate managed units. This technique is discussed in greater detail below. The profile master view 409 is a copy of the configuration manager's reference profiles 308, which the managed unit employs in various ways as discussed below. As explained below, the profile master view may be used to query profile information without any network overhead, i.e., communication with the configuration manager. Another benefit of locally storing the profile master view is that managed units can identify which profiles or associated characteristics have been deleted since the last refresh by comparing profile contents. The configuration manager does not need to maintain historical information such as lists of deleted operational characteristics. Exemplary Digital Data Processing Apparatus Another aspect of the invention concerns a digital data processing apparatus, provided to implement one or more managed units or configuration manager. This apparatus may be embodied by various hardware components and interconnections, as discussed below. FIG. 5 shows an example of one digital data processing apparatus 500. The apparatus 500 includes a processor 502, such as a microprocessor or other processing machine, coupled to a storage 504. In the present example, the storage 504 includes a fast-access storage 506, as well as nonvolatile storage 508. The fast-access storage 506 may comprise RAM, and may be used to store the programming instructions executed by the processor 502. The nonvolatile storage 508 may comprise, for example, one or more magnetic data storage disks such as a "hard drive," a tape drive, or any other suitable storage device. The apparatus 500 also includes an input/output 510, such as a line, bus, cable, electromagnetic link, or other means for the processor 502 to exchange data with other hardware external to the apparatus. Despite the specific foregoing description, ordinarily skilled artisans (having the benefit of this disclosure) will recognize that the apparatus discussed above may be implemented in a machine of different construction, without departing from the scope of the invention. As a specific example, one of the components 506, 508 may be eliminated; furthermore, the storage 504 may be provided on-board the processor 502, or even provided externally to the apparatus 500. OPERATION In addition to the various hardware embodiments described above, a different aspect of the invention concerns a method for operating a multiprocessing system in which hierarchically superior configuration managers maintain various reference parameters that are selectively copied by subordinate managed units to form local operating parameters that subsequently guide the operation of these managed units. The invention includes a comparative technique for tracking updates to the reference parameters, and synchronizing each local operating parameter counterpart accordingly. Signal-Bearing Media In the context of FIGS. 1-5, such a method may be implemented, for example, by operating the configuration managers and managed units, as embodied by digital data processing apparatuses 500, to execute respective sequences of machine-readable instructions. These instructions may reside in various types of signal-bearing media. In this respect, one aspect of the present invention concerns a programmed product, comprising signal-bearing media tangibly embodying a program of machine-readable instructions executable by a digital data processor to perform the functions of configuration manager or managed unit as explained herein. This signal-bearing media may comprise, for example, RAM (not shown) contained within storage of the configuration manager or managed unit, as represented by the fast-access storage 506 for example. Alternatively, the instructions may be contained in another signal-bearing media, such as a magnetic data storage diskette 600 (FIG. 6), directly or indirectly accessible by the processor 502. Whether contained in the storage 506, diskette 600, or elsewhere, the instructions may be stored on a variety of machine-readable data storage media, such as direct access storage (e.g., a conventional "hard drive" or a RAID array), magnetic tape, electronic read-only memory (e.g., ROM, EPROM, or EEPROM), an optical storage device (e.g. CD-ROM, WORM, DVD, digital optical tape), paper "punch" cards, or other suitable signal-bearing media including transmission media such as digital and analog and communication links and wireless. In an illustrative embodiment of the invention, the machine-readable instructions may comprise software object code, compiled from a language such as "C," etc. Configuration Manager: Operation As mentioned above, configuration managers maintain various reference profiles to which subordinate managed units selectively subscribe. Whenever the profiles or their reference characteristics change, the configuration managers propagate the changes down to all affected managed units. FIG. 7 shows an exemplary process sequence 700 to describe the operation of an exemplary configuration manager in a multiprocessing system according to the invention. For ease of explanation, but without any intended limitation, the example of FIG. 7 is described in the context of the hardware environment described above in FIGS. 1-4. The operations 700 are initiated in step 702, which may be performed when the configuration manager 300 is powered-up, re-started, or otherwise begins operation. Following step 702, the configuration manager 300 may (optionally) conduct other operations 704, aside from its role as a configuration manager. For instance, in the data storage system embodiment used presently, the configuration manager 300 may operate as a data server, as shown by step 704. Concurrently with these non-manager operations (step 704), the configuration manager 300 performs tasks involved in overseeing the managed units (steps 706-716). Specifically, in step 706 the configuration manager installs an initial set of reference profiles 308 and reference characteristics 314. As an example, these initial settings may be manually set by a system administrator. After step 706, the configuration manager 300 begins the concurrent processes of (1) receiving and processing managed units' subscriptions, and (2) accumulating and propagating changes to reference profiles and/or reference characteristics that affect subscribing managed units. Step 708 starts the subscription process. Namely, in step 708 the configuration manager 300 waits until it receives a subscription message from a managed unit. Subscription messages comprise requests from managed units to subscribe to one of the pre-defined reference profiles 308. As such, a subscription includes the name of the desired reference profile, and the identity of the managed unit requesting subscription. When the configuration manager 300 receives a subscription message in step 708, the configuration manager 300 updates the subscription list 312 to show the subscribed-to profile in association with the subscribing managed unit (step 710). Following step 710, step 708 waits for another subscription. In parallel with steps 708-710, the configuration manager 300 collects and distributes changes to the reference parameters. As an example, these changes may originate from a system administrator (not shown) accessing the configuration manager. To provide another example, these changes may originate from another configuration manager that is hierarchically superior to the present configuration manager 300, where this superior configuration manager propagates the changes downward to the present configuration manager 300. The configuration manager 300 receives and accumulates the changes in step 712. These changes may include changes to the reference characteristics 314 and/or the reference profiles 308. The accumulation of the changes in step 712 may involve (1) buffering changes and then implementing them in storage 306, (2) not buffering any changes but marking the changed profiles and/or characteristics in a directory such as a table, list, bitmap, etc., or (3) another approach. In step 714, the configuration manager 300 determines whether certain prescribed update criteria have been met to start distributing the accumulated changes. The update criteria may be set by a system administrator or other user, permanently incorporated into the firmware or other programming of the processor 302 upon manufacture of the configuration manager 300, or established in another way. As mentioned above, the update criteria determine when the configuration manager 300 propagates changes in the reference parameters down to the subordinate managed servers. The criteria may take various embodiments in accordance with this invention, such as: Threshold Number of Changes: As one example, the configuration manager 300 may deem the criteria met whenever it receives a threshold number of changes, such as five changes. Fixed Time Period: As another example, the configuration manager 300 may deem the criteria met on a periodic basis, such as one hour. In this embodiment, the criteria may be met, for example, each time a repeating timer expires. Request by Subordinate Managed Units: As still another example, the configuration manager 300 may deem the criteria met whenever one or more subordinate managed units submit requests to download accumulated changes. The managed units may submit such requests on any appropriate basis, such as periodically. If step 714 finds that the update criteria are not met, step 712 continues to accumulate incoming changes. When the update criteria of step 714 are finally met, the configuration manager 300 in step 716 distributes or "propagates" the accumulated changes. To distribute the changes, the configuration manager 300 cross-references the accumulated changes with the subscription list 312 to identify all managed units requiring update propagation. If an accumulated change concerns a change to a reference profile, the configuration manager transmits the changed profile to all managed units, as discussed in greater detail below. According to one embodiment of the invention, update criteria may be chosen so that they are met individually on a managed-unit-by-managed-unit basis, or more universally for all managed units together. Therefore, in step 716 the configuration manager 300 may propagate updates to all subscribing managed units, or to certain individual managed units requiring updates, depending on which update criteria are used. If a reference profile has changed the configuration manager 300 also examines the changed profile to determine whether the profile includes any reference characteristics that were not previously in that profile. If there have been any added reference characteristics the configuration manager 300 also transmits these new reference characteristics to the subscribing managed units. As an additional feature, the configuration manager 300 may determine whether subscribing managed units already have such reference characteristics due to a subscription to a different profile; in this event, the configuration manager 300 may skip sending the duplicate reference characteristics. When the accumulated changes have been distributed, completing step 716, the routine 700 returns to step 712 to accumulate more changes. Managed Unit: Operation As mentioned above, managed units selectively subscribe to various reference profiles of constituent reference characteristics maintained by hierarchically superior configuration managers. Whenever the reference profiles or their reference characteristics change, the configuration managers automatically propagate the changes down to all managed units, which store and implement and then operate pursuant to the changes. FIG. 8 shows an exemplary process sequence 800 to describe the operation of an exemplary managed unit in a multiprocessing system according to the invention. For ease of explanation, but without any intended limitation, the example of FIG. 8 is described in the context of the hardware environment described above in FIGS. 1-4. The operations are initiated in step 802, which may be performed when the managed unit 400 is powered-up, re-started, or otherwise begins operation. Following step 802, the managed unit 400 starts normal operations (step 804). In the illustrated example, where the managed unit is a storage server, these operations may involve satisfying storage access requests of one or more hosts, clients, or other machines (not shown) coupled to the managed unit 400. While these operations continue, the managed unit 400 receives certain input in step 806, for the purpose of initially configuring the managed unit 400. In the illustrated example, this input is received from a system administrator (not shown), who accesses the configuration manager 400 via an attached console, remote terminal, another computer, or another suitable mechanism (not shown). This initial administrator input may include manual entry of one or more locally-set operating characteristics, such as those configuration settings needed to enable communication with the configuration manager, perform basic local operations, etc. During subsequent post-initial performance of step 806, the administrator input may include items such as the following: New Subscription: The input may include a request to subscribe to a profile, to which the managed unit 400 does not already subscribe. Deleted Subscription: The input may specify deletion of a subscription to a profile that the managed unit subscribes to. Local Operating Characteristics: The input may also include addition or deletion of one or more "locally-set" operating characteristics, added by manual input, 5 rather than the managed unit receiving them via subscription. As a result, these operating characteristics are not updated by subscription. As on optional embodiment, the settings of local operating characteristics may automatically yield to any conflicting operating characteristics arising from subscribed-to profiles. This conflict resolution may be set by default, by administration election, or another appropriate means. After the initial input is received in step 806, several things occur concurrently. Namely, the managed unit 400 updates the storage 406 according to the new input (step 808). In the case of request to add or delete subscribed-to profiles, the managed unit 400 adds (or deletes) the profiles to (or from) the list of subscribed-to profiles 410. In the case of a locally-set operating characteristics, the managed unit 400 adds (or deletes) the operating characteristics from the list 408. After step 808, the configuration manager 400 determines whether it has received any more input (step 812), such as administrator input in the present example. When the managed unit 400 receives further input, step 812 returns to step 806 to receive this input, as discussed above. Concurrently with step 808, the managed unit 400 sends any necessary subscription requests (step 810), in order to implement the input of step 806. For instance, if the step 806 input requested subscription to a new profile, the managed unit 400 in step 810 sends a subscription message to the configuration manager 300 to subscribe to that profile. The subscription message includes an identification of the profile and the managed unit 400 requesting subscription. If the input of step 806 requested removal of a subscribed-to profile, the managed unit 400 may send an appropriate message to the configuration manager 300 requesting withdrawal from subscription to that profile. Alternatively, the managed unit 400 may add or delete profiles to/from the list of subscribed-to profiles 410, and wait for the configuration manager 300 to initiate updating of its subscription list 312 to match the managed units' lists of subscribed-to profiles 410. In either case, processing of subscriptions by the configuration manager 400 is discussed above in step 708, FIG. 7. Concurrently with steps 808, 810, and 812, the managed unit 400 determines whether the prescribed criteria have been met (step 814) to obtain reference parameter updates accumulated by the configuration manager 300. The update criteria may be set by a system administrator or other user, permanently incorporated into the firmware or other programming of the processor 402 upon manufacture of the managed unit 400, or established in another way. As mentioned above, these criteria determine when the managed unit 400 obtains changes in the reference parameters from the configuration manager 300. The criteria may take various embodiments in accordance with this invention, such as: Locally-Determined Criteria: In one example, the managed unit may deem the criteria met upon any appropriate local condition, such as (1) expiration of a periodic local timer, (2) according to a non-periodic local schedule, or (3) another basis. Propagation By Configuration Manager: In another example, the configuration manager alone may determine when to propagate changes to subordinate managed units. As mentioned above, this decision may be made on the basis of receiving a threshold number of changes, expiration of a fixed time period, etc. In this embodiment, the managed unit 400 deems the update criteria to be met (step 814) when changes are propagated from the configuration manager. Step 814 repeats until the update criteria are met, and then progresses to step 816. In step 816, the managed unit obtains the updated reference parameters. If the update criteria were met by local criteria (e.g., local timer expiration, prescribed local schedule, etc.), then step 816 involves the managed unit 400 requesting and receiving updated reference parameters (if any) from the configuration manager 300. In contrast, if the update criteria were met by the configuration manager propagating changes according to its own schedule, then step 816 involves the managed unit 400 receiving the propagated changes sent by the configuration manager 300. In either case, each update of steps 816-818 always includes a change to a master profile, and may also include changes to the operating characteristics 408. In either of the foregoing embodiments, step 816 is followed by step 818, where the managed unit 400 stores the received updates in the storage 406. Following step 818, the routine 800 returns to step 814, awaiting satisfaction of the update criteria again. Partial Reference Characteristic Propagation As illustrated, when changes to a reference characteristic are propagated (step 716, FIG. 7), the entire content of that reference characteristic is transmitted. Alternatively, the configuration manager 300 may limit propagation to the changed parts of the reference characteristic. This saves transmission time, and expedites the update process. To support partial reference characteristic propagation, the configuration manager 300 is programmed to track the contents of the reference characteristics involved in each managed unit's subscriptions. Then, before distributing updates (step 716, FIG. 7), the configuration manager 300 compares the tracked contents to the current contents to specifically identify the changes. As one example, this process may be achieved by the configuration manager 300 logging changes to reference characteristics in a change log. As a further expansion to reference characteristic propagation, it may be useful to permit hierarchically arranged reference characteristics. In this embodiment, a "parent" reference characteristic may include, among other things, one or more lower-level reference characteristics. When any lower-level reference characteristic is changed, the "parent" reference characteristic is also considered to be changed. Changes to lower-level reference characteristics are accumulated in step 712, resulting in the subsequent distribution of the entire parent reference characteristic, in the manner discussed above. As an alternative, the propagation of changes to lower-level reference characteristics of a parent reference characteristic may be limited to the changed lower characteristics only, rather than the entire parent. COMPARATIVE UPDATE TRACKING Characteristic & Profile Versions Introduction FIG. 9 shows the components of an exemplary master profile 900 maintained by a managed unit (in the profile master view 409), and an exemplary reference profile 950 maintained by the configuration manager (in the reference profiles 308). Although other arrangements may be used without departing from the invention, the present example helps to illustrate one embodiment of the invention, and also provides a useful foundation for the comparative update tracking process, which is described below. The reference profile 950 includes multiple reference characteristics (953-957) and a profile version code (952). The profile version code 952 is incremented once whenever the profile 950 is manually changed. Such manual changes may occur, for example, when the profile 950 is changed by a system administrator The profile version code 952 is also incremented by one wherever any of the profile's constituent reference characteristics 953-957 experience an update. The characteristic version codes 960-964 of the individual reference characteristics 953-957 represent the reference profile's version code at the respective times when the individual reference characteristics 953-957 were last added or updated. For example, the reference characteristic 953 was added upon the adoption of version number one of the profile 950, as shown by the characteristic version code 960. Similarly, the reference characteristic 956 was added upon the adoption of version number six of the profile 950, as shown by the characteristic version code 963. Versions--Master Profile Similar to the reference profile 950, each profile in the profile master view 409 includes multiple operating characteristics and a profile version code. An example is shown by the master profile 900, which includes multiple operating characteristics 903-907 and a profile version code 902. As explained below (step 1116, FIG. 11), each master profile is updated to match its counterpart reference profile, which serves as the source for that master profile. Specifically, the version code of a master profile is copied exactly from the version code of its reference profile counterpart. For example, if a master profile is updated according to reference profile version twelve, that master profile will assume version twelve itself. Versions--Subscribed-to Profile Although not shown in FIG. 9, each profile in the list of subscribed-to profiles 410 contains the name and version code of a reference profile that the managed unit 400 subscribes to. In the illustrated embodiment, subscribed-to profiles do not list their constituent operating characteristics. These are shown by the expanded profile contained in the profile master view 409, as shown above. Identifiers Rather than the actual content of the constituent operating characteristics themselves, the master profile 900 may list suitable identifiers 903-907 of the constituent reference characteristics. Similarly, rather than the content of the constituent reference characteristics themselves, the reference profile 950 may list suitable identifiers 953-957 of the corresponding reference characteristics. In one embodiment, These identifiers comprise reference characteristic names; however, the identifiers may comprise table or other indices, address pointers, or other suitable identifiers instead The reference profiles 308 identify (e.g., by name) corresponding reference characteristics 314, all of which are stored together in the configuration manager's storage 306. In contrast, the constituent reference characteristics of the master profiles 409 may not all reside in the managed units storage 406; those reference characteristics named by subscribed-to profiles are stored in the list of operating characteristics 408, but the remaining referenced characteristics named by the master profiles 409 are stored only back at the configuration manager's list 314. Changing a Reference Profile FIG. 10 shows several illustrative update operations occurring to an exemplary reference profile 1000 stored in the list 308 at the configuration manager 300. Reference profiles may be changed under various circumstances, such as (1) a system administrator accessing the configuration manager, (2) downloading of changes from another, hierarchically superior, configuration manager, or (3) other situations. In this example, the profile 1000 has a profile version code 1002 of three, and includes constituent reference characteristics 1003-1005. The transition 1050 shows how the reference profile 1000 in the list 308 is updated by deleting a constituent reference characteristic. Namely, the reference characteristic 1005 is deleted, yielding an updated reference profile 1011. Since the original reference profile 1000 had a profile version code 1002 of three, the new reference profile 1010 has a profile version code 1011 of four. As an alternative to the transition 1050, the reference profile 1000 may instead be modified by adding another constituent reference characteristic as shown by the transition 1060. Namely, the reference characteristic 1023 is added, yielding an updated profile 1020. Since the original profile 1000 had a profile version code 1002 of three, the new reference profile 1020 has a profile version code 1021 of four. Moreover, the added reference characteristic 1023 shows a characteristics version code 1022 of four, since it was added upon adoption of the reference profile having a profile version code of four. As an alternative to the transitions 1050, 1060, the reference profile 1000 may instead be modified by updating one of its constituent reference characteristics, as shown by the transition 1070. Namely, the reference characteristic 1003 is updated by introduction of a newer version of the same reference characteristic. In this example, the reference characteristic 1003 is replaced by the newer reference characteristic 1033. This yields an updated reference profile 1030. Since the original reference profile 1000 had a profile version code 1002 of three, the new reference profile 1030 has a profile version code 1031 of four. Moreover, the updated reference characteristic 1033 shows a characteristic version code 1032 of four, since it was added at the adoption of the reference profile having a profile version code of four. As an alternative to the transitions 1050, 1060, 1070, the reference profile 11300 may instead be entirely deleted. In this case, the reference profile 1000 is removed from the list 308 by deleting its profile version number 1002, the constituent reference characteristic identifiers 1003-1005, and the characteristic version codes. As explained below, deletion of the profile 1000 does not delete the constituent reference characteristics themselves, only the identifiers (e.g., pointers) present in the profile 1000. Comparative Update Tracking: Operating Sequence Introduction The foregoing illustrations show the structure of reference and master profiles and their constituent reference characteristics (FIG. 9), and several illustrative update sequences (FIG. 10). With this foundation, reference is made to FIG. 11 to describe the operations of an exemplary update sequence 1100. For ease of explanation, I but without any intended limitation, the example of FIG. 11 is described in the context of the hardware environment described above in FIGS. 1-4. The sequence 1100 further embellishes the operations involved in updating a managed unit's operating characteristics, subscribed-to profiles, and master profiles. In one flow diagram, the sequence 1100 explains the duties of both configuration manager and managed unit involved in an update; thus, the routine 1100 expands previously described operations shown in step 716 (performed by the configuration manager) and steps 816-818 (performed by the managed unit). Accordingly, the routine 1100 starts in step 1102, which occurs when the update criteria are satisfied, as illustrated in step 714 (FIG. 7) and step 814 (FIG. 8). Identifying Stale Subcribed-to Profiles After step 1102, the managed unit 400 transmits its list of subscribed-to profiles 410 to the configuration manager 300. The reason for sending the subscribed-to profiles 410 is to permit the configuration manager 300 to compare the subscribed-to profiles 410 to the reference profiles 308, and detect any "stale" subscribed-to profiles. "Stale" subscribed-to profiles are defined as any subscribed-to profiles that are older than their counterparts in the list of reference profiles 308. Staleness is detected by comparing version codes of each subscribed-to profile and the reference profile counterpart with the same name. As explained below, the configuration manager detects stale subscribed-to profiles in step 1106, and this fact is used to update the operating characteristics of subscribed-to profiles (step 1108-1112, 1113) and to update the subscribed-to profiles themselves (step 1121). As an alternative to steps 1104-1106 as illustrated, the configuration manager 300 may send the managed unit 400 its list of reference profiles 308 (step 1104). In this embodiment, the managed unit 400 compares the configuration manager's reference profiles 308 to the locally-stored subscribed-to profiles 410 (step 1106). For explanatory purposes, the current illustration depicts comparison by the configuration manager 300. Whether performed by the configuration manager or the managed unit, comparison of subscribed-to profiles to reference profiles is performed as follows. Each subscribed-to profile's version code is compared to the version code of its reference profile counterpart to determine whether the subscribed-to profile is current. If the subscribed profile's version code is older than the reference profile's version code, the subscribed-to profile is "stale." If the comparison of step 1106 shows that a subscribed-to profile's reference profile counterpart no longer exists in the list 308, then the subscribed-to profile is an "orphan" profile. In this event, the managed unit prompts a system administrator for input on how to proceed. Detecting and Implementing New or Updated Operating Characteristics Having made the necessary comparison to identify any stale subscribed-to profiles, step 1108 asks whether any stale subscribed-to profiles were found. If so, steps 1110-1112 proceed to analyze the differences in each subscribed-to profile to identify any new or updated operating characteristics that must be downloaded to the managed unit. Steps 1110-1112 are performed for each stale subscribed-to profile. Steps 1110-1112 are performed to ensure that the managed unit 400 contains the latest versions of the operating characteristic versions in its list 408. The detailed comparison of profile contents is performed by comparing the reference profile against the version code of the subscribed-to profile (which was sent to the configuration manager 300 in step 1104). In step 1110, the configuration manager 300 compares the version code of the stale subscribed-to profile to that of its reference profile counterpart. Particularly, step 1110 examines the characteristic version codes 960-964 (FIG. 9) of each reference characteristic 953-957 to determine whether any version code is more recent than the version code of the stale subscribed-to profile. If so, this means the subcribed-to profile refers to a stale operating characteristic version. For each stale operating characteristic, the configuration manager 400 sends an up-to-date version of the counterpart reference characteristic to the managed unit 400 (step 1112). In response, the managed unit 400 stores the received reference characteristic in its list 408 in replacement of the stale operating characteristic. Step 1110 also identifies any "new" reference characteristics that have been added to the reference profile without addition to the master profile yet (step 1110). For each added reference characteristic, the configuration manager 400 sends the reference characteristic to the managed unit 400 (step 1112). Downloading Profile Master View After step 1112, the configuration manager 300 downloads all reference profiles to the managed unit 400 (step 1114). This is performed so that (1) the managed unit can compare its profile master view to the up-to-date reference profiles to detect any deleted reference characteristics, and also (2) for use in updating the managed unit's profile master view (as discussed below). The downloaded reference profiles are stored without deleting or changing contents of the existing, but possibly out-of-date, profile master view 409. Detecting and Purging Orphan Operating Characteristics After step 1114, step 1118 asks whether there are any stale subscribed-to profiles; this was determined in step 1106, discussed above. If not, there is no need to search for deleted reference characteristics, because none of the subscribed-to profiles are stale. In this case, the routine 1100 advances to step 1116, which is discussed below. If step 1118 finds any stale subscribed-to profiles, then the routine 1100 proceeds to step 1113, which begins the operation of analyzing the master profiles to detect any reference characteristics that have been deleted from the reference profiles 308, but remain in the master profiles 409. The comparison of step 1113 searches for any operating characteristics that are present in the stale master profile but missing from the counterpart reference profile. When the stale master profile is later updated (as described below), this operating characteristic will be deleted from the master profile. Also, if no other reference profiles contain the operating characteristic, it is an "orphan." In this event, the managed unit step 1113 deletes the orphan operating characteristic from the list 408. Updating Version of Subscribed-to Profile After step 1113, the managed unit 400 updates the version codes of each stale subscribed-to profile in the list 410 (step 1121). This may be performed, for example, by copying the version code 902 of the corresponding reference profile, which was sent in step 1114. Also in step 1121, the managed unit reports the new version codes to the configuration manager. Updating the Subscription List After step 1121, the configuration manager 300 in step 1122 updates its subscription list 312 in accordance with the new version codes of subscribed-to profiles, which were sent in step 1121. Updating Profile Master View After step 1122 (or a negative answer to step 1118), step 1116 updates the managed unit's profile master view 409 in accordance with the up-to-date reference profiles that were downloaded in step 1114. As an example, step 1116 may be performed by deleting contents of the storage 409, and storing the downloaded reference profiles 308 there. As discussed below, the local presence of the profile master view helps the managed unit more efficiently analyze and update its subscribed-to profiles 410. After step 1116, the routine 1100 ends in step 1126. At this point, the managed unit returns to step 814 (FIG. 8) of its operating sequence 800, whereas the configuration manager returns to step 712 (FIG. 7). Handling New Subscription Requests With comparative update tracking as described above, the invention may employ an alternative process for subscription by a managed unit. As described above, a managed unit subscribes to a reference profile by submitting a subscription message in step 810 (FIG. 8). As an alternative, the managed unit may store a subscribed-to profile having a version code of zero in the list 410 without sending any subscription to the configuration manager. This subscribed-to profile identifies the name of a reference profile for which subscription is desired, and lists a version code of zero. In this embodiment, the configuration manager always uses positive integers when adding new reference profiles. Thus, during the routine 1100, any subscribed-to profiles with version code zero are found (steps 1106, 1108) to be stale. In the manner discussed above, this triggers the configuration manager to send the managed unit all reference characteristics of the subscribed-to profile, which the managed unit proceeds to store in its list 408 (step 1112). The managed unit also updates the corresponding master profile according to the latest version of the reference profile, and stores the new master profile in the list 409 (step 1116). Also, the managed unit updates its subscribed-to profile to bear the up-to-date reference profile's version code (step 1121). Thus, in this embodiment, subscription is incorporated into the existing update process. OTHER EMBODIMENTS While the foregoing disclosure shows a number of illustrative embodiments of the invention, it will be apparent to those skilled in the art that various changes and modifications can be made herein without departing from the scope of the invention as defined by the appended claims. Furthermore, although elements of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
|
Same subclass Same class Consider this |
||||||||||
