system and method for managing and communicating state changes of a complex system. The system includes a plurality of configuration items, wherein each configuration item is a functional component of the system and has an associated state value that is one of a set of state values describing operational characteristics of the configuration item. A data structure that represents transitions between the state values is constructed in each of the configuration items. Each of the configuration items receives notification requests that include a first set of state values, a second set of state values, a requester identifier, and a message value. The requester identifier and message value of each notification request are associated with a transition of the configuration item for a transition from a state in the first set of state values to a state value in the second set of state values. In response to a transition of a configuration item between state values, a message value(s) and requester identifier(s) that are associated with the transition are selected, and the message value(s) is sent to the requester(s) referenced by the requester identifier(s).
|
0. 28. A method, comprising:
receiving a notification request at a configuration item in a system comprising a plurality of configuration items, wherein the notification request includes a requester identifier and a first set of meta-state values and a second set of meta-state values, wherein at least one of the first set and the second set includes two or more meta-state values; and
in response to a subsequent transition of the configuration item between a meta-state corresponding to any meta-state value in the first set and a meta-state corresponding to any meta-state value in the second set, the configuration item sending a message to a requester corresponding to the requester identifier in the notification request;
wherein the subsequent transition of the configuration item is not caused by the receiving of the notification request.
0. 16. An article of manufacture including a computer-readable storage medium having instructions stored thereon that, if executed by a computing device, cause the computing device to perform a method comprising:
receiving a notification request at the computing device, wherein the computing device is in a system, wherein the notification request includes a requester identifier and a first set of state values and a second set of state values, and wherein at least one of the first set and the second set includes two or more state values; and
in response to a subsequent transition of the computing device between a state corresponding to any state value in the first set and a state corresponding to any state value in the second set, sending a message to a requester corresponding to the requester identifier;
wherein the subsequent transition of the computing device is not caused by the receiving of the notification request.
14. A state management arrangement for an electronic system, comprising a plurality of configuration items, wherein each configuration item is a functional component of the system and has an associated state value that is one of a set of state values describing operational characteristics of the configuration item, each configuration item configured and arranged to receive notification requests from one or more other configuration items, each notification request including a first set of state values, a second set of state values, a requester identifier, and a message value, associate the requester identifier and message value of each notification request with a transition from a state in the first set of state values to a state value in the second set of state values, and in response to a transition of a configuration item between state values, select the message value and requester identifier associated with the transition and send the message value to the requester referenced by the requester identifier.
13. An apparatus for managing state changes of a system that includes a plurality of configuration items, wherein each configuration item is a functional component of the system and has an associated state value that is one of a set of state values describing operational characteristics of the configuration item, comprising:
means for representing transitions between the state values in each of the configuration items;
means for processing notification requests at the configuration items, each notification request including a first set of state values, a second set of state values, a requester identifier, and a message value;
means for associating the requester identifier and message value of each notification request with a transition from a state in the first set of state values to a state value in the second set of state values; and
means, responsive to a transition of a configuration item between state values, for selecting the message value and requester identifier associated with the transition and sending the message value to the requester referenced by the requester identifier.
1. A computer-implemented method for managing state changes of a system that includes a plurality of configuration items, wherein each configuration item is a functional component of the system and has an associated state value that is one of a set of state values describing operational characteristics of the configuration item, comprising:
constructing a data structure in each of the configuration items representing transitions between the state values;
receiving notification requests at the configuration items, each notification request including a first set of state values, a second set of state values, a requester identifier, and a message value;
associating the requester identifier and message value of each notification request with a transition from a state in the first set of state values to a state value in the second set of state values; and
in response to a transition of a configuration item between state values, selecting the message value and requester identifier associated with the transition and sending the message value to the requester referenced by the requester identifier.
2. The method of
defining at the system monitor a system mode as a Boolean function of one or more state values in the set of state values of one or more selected configuration items;
sending notification requests from the system monitor to each of the selected configuration items, the message value in each notification request indicating a transition to a state in the second set of state values in the notification request, and the requester identifier indicating the system monitor;
receiving message values from the selected configuration items at the system monitor; and
evaluating the system mode in response to the message values.
3. The method of
generating a registration key for each notification request and associating each registration key with the requester identifier and message for each state transition in the notification request; and
for each notification request, returning the registration key to the requester.
4. The method of
receiving a cancellation request at a configuration item, the cancellation request including a selected registration key; and
for each state transition having an associated registration key that matches the registration key in the cancellation request, disassociating the requester identifier and message value.
5. The method of
6. The method of
defining at the system monitor a system mode as a Boolean function of one or more state values in the set of state values of one or more selected configuration items, C1−Cn;
reducing the one or more state values to a set of meta-states, wherein each meta-state includes one or more state values associated with one of the selected configuration items, C1, and the system mode is equal for every combination state values within the meta-state and state values of configuration items other than C1,
sending notification requests from the system monitor to each of the selected configuration items, the notification request including a first set of meta-states and a second set of meta-states, the message value in each notification request indicating a transition to a state in the second set of meta-states, and the requester identifier indicating the system monitor;
receiving message values from the selected configuration items at the system monitor; and
evaluating the system mode in response to the message values.
7. The method of
generating a registration key for each notification request and associating each registration key with the requester identifier and message for each state transition in the notification request; and
for each notification request, returning the registration key to the requester.
8. The method of
receiving a cancellation request at a configuration item, the cancellation request including a selected registration key; and
for each state transition having an associated registration key that matches the registration key in the cancellation request, disassociating the requester identifier and message value.
9. The method of
10. The method of
generating a registration key for each notification request and associating each registration key with the requester identifier and message for each state transition in the notification request; and
for each notification request, returning the registration key to the requester.
11. The method of
receiving a cancellation request at a configuration item, the cancellation request including a selected registration key; and
for each state transition having an associated registration key that matches the registration key in the cancellation request, disassociating the requester identifier and message value.
12. The method of
15. The arrangement of
0. 17. An article of manufacture as claimed in
0. 18. An article of manufacture as claimed in
registering the notification request at the computing device.
0. 19. An article of manufacture as claimed in
receiving a cancellation request corresponding to the notification request; and
responsive to receiving the cancellation request, cancelling the registration of the notification request.
0. 20. An article of manufacture as claimed in
0. 21. An article of manufacture as claimed in
wherein a third state of the computing device corresponds to a third state value included in the second set; and
wherein a value of the message sent by the computing device is the same for both (A) a transition of the computing device between the first and third states and (B) a transition of the computing device between the second and third states.
0. 22. An article of manufacture as claimed in of
0. 23. An article of manufacture as claimed in
receiving a cancellation request corresponding to the notification request; and
responsive to receiving the cancellation request, cancelling the registration of the notification request.
0. 24. An article of manufacture as claimed in
0. 25. An article of manufacture as claimed in
0. 26. An article of manufacture as claimed in
receiving a cancellation request corresponding to the notification request; and
responsive to receiving the cancellation request, cancelling the registration of the notification request.
0. 27. An article of manufacture as claimed in
0. 29. The method of
0. 30. The method of
registering the notification request at the configuration item.
0. 31. The method of
the configuration item receiving a cancellation request corresponding to the notification request; and
responsive to receiving the cancellation request, the configuration item cancelling the registration of the notification request.
0. 32. The method of
0. 33. The method of
registering the notification request at the configuration item;
the configuration item receiving a cancellation request corresponding to the notification request; and
responsive to the cancellation request, canceling the registration of the notification request at the configuration item.
0. 34. The method of
0. 35. The method of
0. 36. The method of
0. 37. The method of
registering the notification request at the configuration item.
0. 38. The method of
the configuration item receiving a cancellation request corresponding to the notification request; and
responsive to the cancellation request, cancelling the registration of the notification request at the configuration item.
0. 39. The method of
|
The instant application is a reissue of U.S. Pat. No. 6,832,346, which was filed as U.S. application Ser. No. 09/834,393 on Apr. 13, 2001.
The present invention generally relates to monitoring the operating state of a complex electronic system.
Monitoring the operational state of electronic systems is commonly performed to detect problems, take precautionary measures before problems occur, or inform users, for example. Systems that include many distributed components present unique challenges for managing the operational state of the system and the various components. Example operational states include starting up, standby, shutting down, and other states governed by the particular system. Based on transitions among the operational states, the system may take various actions. For example, the system may perform various automated actions, alert an operator for manual intervention, or generate informational messages.
For large systems that include many components, managing the state-related interactions between components and monitoring the states of all the components can be complicated. For example, in a system having a large number of components, the number of different combinations of states of the different components can be very large, thereby complicating monitoring the different states. In addition, the system may be comprised of a hierarchy of constituent components. The constituent components may need to respond to state changes in other components at various levels in the hierarchy.
In addition, the system may be geographically dispersed. In this case it may be important to minimize that amount of data traffic among components required to satisfy the monitoring requirements.
Thus, an arrangement that supports monitoring the system state, the states of the individual ones of the constituent components, as well as inter-component state monitoring tends to be complex.
A system and a method that addresses the aforementioned problems, as well as other related problems, are therefore desirable.
In various embodiments, the invention provides a system and method for managing and communicating state changes of a complex system. The system includes a plurality of configuration items, wherein each configuration item is a functional component of the system and has an associated state value that is one of a set of state values describing operational characteristics of the configuration item. A data structure that represents transitions between the state values is constructed in each of the configuration items. Each of the configuration items receives notification requests that include a first set of state values, a second set of state values, a requester identifier, and a message value. The requester identifier and message value of each notification request are associated with a transition in the data structure of the configuration item from a state in the first set of state values to a state value in the second set of state values. In response to such a transition of a configuration item between state values, a message value(s) and requester identifier(s) that are associated with the transition are selected, and the message value(s) is sent to the requester(s) referenced by the requester identifier(s).
It will be appreciated that various other embodiments are set forth in the Detailed Description and Claims which follow.
Various aspects and advantages of the invention will become apparent upon review of the following detailed description and upon reference to the drawings in which:
In various embodiments, the invention provides a method and system for monitoring the operational state of a complex system as defined by the constituent states of the elements comprising the system. The system operates efficiently for large complex systems and is suitable for systems in which the elements are geographically dispersed.
Each configuration item has associated therewith a non-empty, finite set of values, or states. Every state is associated with one configuration item. The invention assumes that for the purpose of state monitoring, a state change is possible in each of the configuration items. A state change may be in response to an external (relative to the system) or an internal signal. For example, state changes may occur in response to user commands or control settings or in response to system-programmed resource monitors. In the examples presented herein, the states are represented as uppercase letters. The particular representation of a state in a system depends on system requirements and may include, for example, numerical values or sequences of codes.
The pre-condition and post-condition are sets of states of the configuration item. If the configuration item changes from a state in the pre-condition to a state in the post-condition, then the message in the notification request is sent to the requester identified by the requester identifier. Upon registration, the configuration item generates and returns a key to the requester. The key can be used to cancel the registration.
Each configuration item maintains an n by n table to track registrations for state changes of that configuration item, where n is the number of possible states of the configuration item. The rows of the table 150 represent states from which the configuration item transitions, and the columns of the table represent the states to which the configuration item transitions. Each cell in the table contains a list of triples, and each triple includes a requester identifier, a message, and a registration key. The lists of triples supports multiple registrations for a single state change.
Where a system is comprised of multiple configuration items, a mode of the system is defined to be a selected Boolean function of the state of the constituent configuration items. The system is in a mode when the function evaluates to true and enters a mode when the value of the function changes from false to true. The notation, CI(A, B, C) denotes the predicate that configuration item, CI, is in one of the states A, B, or C. If a system includes three configuration items, CI1, CI2, and CI3 where CI1 has states A, B, and C; CI2 has states M and N, and CI3 has states X, Y, and Z; then an example mode is:
CI1 (B) and (not CI2 (M) or CI3 (X, Y))
This example mode is referred to as ExampleMode from this point forward. If the function evaluates to true, then the system in ExampleMode.
In another embodiment of the invention, the states in the registration table are consolidated in accordance with a system-defined mode to reduce the message traffic in reporting state changes of configuration items.
In an example embodiment, mode monitor 172 and configuration items 174, 176, 178, and 180 are implemented as computer processes, for example, executing on one or more nodes on a network. It will be appreciated that each of configuration items 174, 176, 178, and 180 may in turn be coupled to other configuration items depending on the particular application.
At step 202, memory is allocated for a registration table 150, and the entries in the table are initialized to null values. A notification request is received at step 204. As described above, a notification request includes a pre-condition, a post-condition, requester identifier, and a message value. Step 206 generates a unique registration key that is associated with the notification request and returned to the requester. The registration key allows the requester to cancel the registration at a later time.
At step 208, the triple consisting of the requester identifier, message value, and key is added to selected entries in the registration table 150. The entries are selected according to the pre-condition and post-condition in the notification request. In one embodiment, the row indices of the registration table represent the states from which the configuration item may transition, and the column indices represent the states to which the configuration may transition. Thus, for each state, si, in the pre-condition set and each state, sj, in the post-condition set, the triple is added to the entries in the registration table as indexed by i and j.
At step 210, the registration key is returned to the requester, and the process returns to step 204 to receive and process another notification request. It will be appreciated that, depending on system requirements, the registration process may be either limited to an initialization phase of system operation or active while the system is operational.
The techniques described above for managing state changes of configuration items of a system can be used at a system level for system-level mode monitoring. By using modes to detect and react to the operational state of a system, the system mode monitor can be configured to register with selected configuration items in order to detect mode changes. As explained above, a mode is a Boolean function of selected states of selected ones of the configuration items. The mode monitor registers with each configuration item in the mode and in response to notifications of state changes, evaluates the mode to determine a suitable action.
A system may have defined different modes for different scenarios. For example, the system may have a need to react to entry into a mode; that is, when the value of the Boolean function changes from false to true in response to a change in state of one of the configuration items. In another scenario, the system may have a need to react to exit from a mode (mode value changes from true to false). In still another scenario, the system may need to react to a transition between modes; that is, when the value of a first mode changes from true to false, and the value of a second mode changes from false to true. In one embodiment, the mode transitions are represented as a state machine.
TABLE 1
Pre-condition
Post-condition
Message
not A
A
“CI1 enters A”
not B
B
“CI2 enters B”
not C
C
“CI3 enters C”
The requester identifier of each registration references the mode monitor. The mode monitor registers with configuration items CI2 and CI3 in a similar manner.
At step 304, a finite state machine is constructed to support detection of the mode transition. The state machine includes states for the combinations of states of the configuration items in the mode and actions associated with the state transitions. For example, Table 2 below illustrates a portion of the state machine for entry into ExampleMode. The states of the system state machine are denoted as a concatenation of the states of the three configuration elements that comprise ExampleMode. For example, “ANX” denotes the state of the machine when CI1 is in state A, CI2 is in state N, and CI3 is in state X. The ExampleMode state columns in the table are included to assist in understanding the state transitions and are not part of the actual state machine.
TABLE 2
Current
ExampleMode
Next
ExampleMode
Action on
state
in current state
Message
state
in next state
transition
AMX
false
“CI1
BMX
true
notify
enters B”
BMX
true
“CI3
BMY
true
none
enters Y”
BMY
true
“CI3
BMZ
false
none
enters Z”
The first row of the table shows that the “notify” action is performed when the state machine is in the AMX state (ExampleMode=false) and the message “CI1 enters B” is received after CI1 transitions to state B (ExampleMode=true).
Continuing now with step 306, the finite state machine is initialized to a selected state, which is dependent on the particular application. At step 308, a state change message is received from a configuration item, and the state machine is transitioned to the next state in response to the state change message at step 310. If there is any action associated with the transition, the action is performed at step 312. The process is then returned to step 308 to receive the next state change message.
The mode transition notification process of
TABLE 3
Configuration item
Meta-states
CI1
{A, C}, {B}
CI2
{M}, {N}
CI3
{X, Y}, {Z}
It will be appreciated that the mode is well-defined on meta-states. For example, ExampleMode has a well-defined value knowing only that CI1 is in meta-state{A, C} (i.e., that CI1 is in either state A or C), that CI2 is in meta-state {M}, and that CI3 is in meta-state {X, Y}.
At step 352, the mode monitor registers with each configuration item in the mode for notification of entry into each meta-state of the configuration item. Continuing with the previous example, Table 4 below illustrates the registration of the mode monitor with CI1.
TABLE 4
Pre-condition
Post-condition
Message
B
A or C
“CI1 enters {A, C}”
not B
B
“CI1 enters {B}”
The mode transition notification process similarly registers for meta-state change notifications with configuration items CI2 and CI3.
Table 1 illustrates the notification registrations made to configuration CI1 in the non-optimized process, and Table 4 illustrates the notification registrations made to CI1 in the optimized process (using meta-states). The reduction in the number of notification messages can be seen from the registrations listed in Tables 1 and 4. Specifically, the registrations from Table 1 show that configuration item CI1 has the potential for sending 6 notification messages: “CI1 enters A” in response to B-to-A and C-to-A transitions; “CI1 enters B” in response to A-to-B and C-to-B transitions; and “CI1 enters C” in response to A-to-C and B-to-C transitions. In contrast, the optimized version reduces the number potential notification messages to 4: “CI1 enters {A, C}” in response to B-to-A and B-to-C transitions; and “CI1 enters {B}” in response to A-to-B and C-to-B transitions.
Continuing now with the optimized mode transition notification process, at step 354 a finite state machine is constructed using the combinations of meta-states in the mode. At step 356, the state machine is initialized to a selected state that is suitable for the application. Before completing the description of the process of
After the finite state machine is initialized, the process continues with steps 358, 360, and 362, which function similar to steps 308, 310, and 312 of FIG. 7A.
Those skilled in the art will appreciate that the example embodiments described here are suitable for applications that require actions in response to exiting a mode as well as those for transitioning between modes. The mode-exit and mode-transition applications can be implemented by constructing finite state machines consistent with the teachings set forth above.
The present invention is believed to be applicable to a variety of systems that require certain actions in response to changes in the state of the system. The invention is believed to be particularly applicable to large, complex, and geographically dispersed systems. Other aspects and embodiments of the present invention beyond those specifically described herein will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and illustrated embodiments be considered as examples only, with a true scope and spirit of the invention being indicated by the following claims.
Patent | Priority | Assignee | Title |
8504687, | Nov 26 2008 | TELECOM ITALIA S P A | Application data flow management in an IP network |
Patent | Priority | Assignee | Title |
5729765, | Dec 07 1995 | SAMSUNG ELECTRONICS CO , LTD | Method and apparatus for determining the status of a shared resource |
5870561, | Mar 15 1996 | Oracle International Corporation | Network traffic manager server for providing policy-based recommendations to clients |
6088816, | Oct 01 1997 | Round Rock Research, LLC | Method of displaying system status |
6108699, | Jun 27 1997 | Oracle America, Inc | System and method for modifying membership in a clustered distributed computer system and updating system configuration |
6134676, | Apr 30 1998 | Intel Corporation | Programmable hardware event monitoring method |
6182249, | May 12 1997 | Oracle America, Inc | Remote alert monitoring and trend analysis |
6324492, | Jan 20 1998 | Microsoft Technology Licensing, LLC | Server stress testing using multiple concurrent client simulation |
6446134, | Apr 19 1995 | FUJI XEROX CO , LTD | Network management system |
6477172, | May 25 1999 | Intellectual Ventures I LLC | Distributed telephony resource management method |
6480955, | Jul 09 1999 | NetApp, Inc | Methods and apparatus for committing configuration changes to managed devices prior to completion of the configuration change |
6574197, | Jul 03 1998 | Mitsubishi Denki Kabushiki Kaisha | Network monitoring device |
6584502, | Jun 29 1999 | Cisco Technology, Inc | Technique for providing automatic event notification of changing network conditions to network elements in an adaptive, feedback-based data network |
6591373, | Dec 15 1999 | WSOU Investments, LLC | Uniform configuration controller for replicated component systems |
6609195, | Dec 29 1999 | Intel Corporation | Configuring integrated circuit devices in a data processing system |
6751753, | Feb 27 2001 | Oracle America, Inc | Method, system, and program for monitoring system components |
6765864, | Jun 29 1999 | Cisco Technology, Inc | Technique for providing dynamic modification of application specific policies in a feedback-based, adaptive data network |
6816896, | Nov 30 1998 | Computer Associates Think, Inc | Method and apparatus for detecting changes to network elements |
6917979, | Oct 03 2000 | NET2PHONE, INC | System and method for managing compliance with service level agreements |
6966015, | Mar 22 2001 | International Business Machines Corporation | Method and system for reducing false alarms in network fault management systems |
6976065, | Feb 23 2001 | Oracle America, Inc | Mechanism for reconfiguring a server without incurring server down time |
7003569, | Mar 20 2001 | CRYSTAL MOUNTAIN COMMUNICATIONS, LLC | Follow-up notification of availability of requested application service and bandwidth between client(s) and server(s) over any network |
7046263, | Dec 18 1998 | Microsoft Technology Licensing, LLC | Requesting computer user's context data |
7149725, | Sep 21 2001 | KNAPP INVESTMENT COMPANY LIMITED | Apparatus and method of communicating changes in states of contractual responsibilities |
7178065, | Apr 02 2003 | Oracle America, Inc | System and method for measuring performance with distributed agents |
20020013711, | |||
20020026605, | |||
20020120724, | |||
20020120886, | |||
20020170002, | |||
20030014491, | |||
20030120760, | |||
20030126422, | |||
20030212646, | |||
20040153869, | |||
20060015609, | |||
20070011314, | |||
20070174448, | |||
20080186529, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 08 2006 | Lockheed Martin Corporation | Reena Optics LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 019079 | /0676 | |
Feb 08 2006 | LOCKHEED MARTIN CORPORATIN | Reena Optics LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 019965 | /0888 | |
Jun 07 2006 | CROSS, JOSEPH K | Lockheed Martin Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 019079 | /0651 | |
Jul 20 2011 | Lockheed Martin Corporation | Reena Optics LLC | NUNC PRO TUNC ASSIGNMENT SEE DOCUMENT FOR DETAILS | 026755 | /0487 | |
Aug 15 2013 | Reena Optics LLC | INTELLECTUAL VENTURES HOLDING 46 LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031084 | /0956 | |
Aug 30 2013 | INTELLECTUAL VENTURES HOLDING 46 LLC | NEST LABS INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 031368 | /0406 | |
Aug 30 2013 | INTELLECTUAL VENTURES HOLDING 46 LLC | Nest Labs, Inc | CORRECTIVE ASSIGNMENT TO CORRECT THE TYPOGRAPHICAL ERROR IN NAME OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 031368 FRAME 0406 ASSIGNOR S HEREBY CONFIRMS THE TRANSFER OF RIGHTS FROM THE ASSIGNORS TO THE ASSIGNEE | 031635 | /0810 | |
Jan 30 2015 | Nest Labs, Inc | Google Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035667 | /0780 | |
Sep 29 2017 | Google Inc | GOOGLE LLC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 044101 | /0610 |
Date | Maintenance Fee Events |
May 25 2012 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Nov 21 2013 | ASPN: Payor Number Assigned. |
Feb 06 2014 | LTOS: Pat Holder Claims Small Entity Status. |
Mar 21 2014 | STOL: Pat Hldr no Longer Claims Small Ent Stat |
Jun 14 2016 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Dec 07 2013 | 4 years fee payment window open |
Jun 07 2014 | 6 months grace period start (w surcharge) |
Dec 07 2014 | patent expiry (for year 4) |
Dec 07 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 07 2017 | 8 years fee payment window open |
Jun 07 2018 | 6 months grace period start (w surcharge) |
Dec 07 2018 | patent expiry (for year 8) |
Dec 07 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 07 2021 | 12 years fee payment window open |
Jun 07 2022 | 6 months grace period start (w surcharge) |
Dec 07 2022 | patent expiry (for year 12) |
Dec 07 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |