mobile agents can be deployed to location aware mobile devices within specific regions of interest to achieve specific goals in respect of events occurring in the region of interest. In order to ensure that the agent can persist within the region of interest until the agent goals are achieved, the agent is configured to locate other devices within the region of interest and to propagate itself, by moving or copying itself, to those other devices. When a device hosting the agent exits the region of interest, the agent is terminated, thereby freeing device resources.
|
0. 24. A mobile management device, comprising a processor configured to:
propagate an agent to a first device in response to detecting the first device being located in a region of interest within a predetermined threshold;
receive an agent participation request from a second device, the agent participation request indicating a location of the second device;
provide an agent activation request comprising deploying the agent to the second device based at least in part on the second device being located in the region of interest; and
determine the predetermined threshold based at least in part on a battery power of the first device.
0. 25. A mobile device, comprising a processor to execute instructions stored in a memory to:
execute an agent on a first device in response to detecting the first device being located in a region of interest;
receive an agent participation request from a second device, the agent participation request indicating a location of the second device;
provide the agent to the second device based at least in part on the second device being located in the region of interest; and
record that the agent is executing successfully on the second device based at least in part on receiving an agent activation response from the second device within a predetermined amount of time.
0. 23. A mobile management device, comprising a processor configured to:
propagate an agent to a first device in response to detecting the first device being located in a region of interest within a predetermined threshold;
receive an agent participation request from a second device, the agent participation request indicating a location of the second device;
provide an agent activation request comprising deploying the agent to the second device based at least in part on the second device being located in the region of interest; and
determine the predetermined threshold based at least in part on a distance between the first device and a base station that serves the region of interest.
0. 21. A system, comprising:
a first processor configured to:
propagate an agent to a first mobile device in response to detecting the first mobile device being located in a region of interest;
receive an agent participation request from a second mobile device, the agent participation request indicating a location of the second mobile device; and
provide an agent activation request comprising deploying the agent to the second mobile device based at least in part on the second mobile device being located in the region of interest; and
a second processor configured to activate the agent on the second mobile device before providing an agent activation response to the first mobile device.
0. 18. A mobile management device, comprising a processor configured to:
propagate an agent to a first device in response to detecting the first device being located in a region of interest;
receive an agent participation request from a second device, the agent participation request indicating a location of the second device;
provide an agent activation request comprising deploying the agent to the second device based at least in part on the second device being located in the region of interest; and
terminate the agent executing on the first device based at least in part on the agent successfully executing on the second device or place the agent executing on the first device into a stand-by mode based at least in part on the agent successfully executing on the second device.
12. A method, comprising:
activating a first copy of an agent application based at least in part on receiving the first copy of the agent application from a first device;
transmitting, to the first device, an agent activation response based at least in part on successfully activating the first copy of the agent application;
transmitting, to the first device, a first agent activation response based at least in part on activating the first copy of the agent application;
receiving, from a second device, an agent participation request providing a location of the second device;
comparing the location of the second device to a region of interest;
providing, to the second device, a second copy of the agent application based at least in part on the comparison;
receiving, from the second device, a second agent activation response based at least in part on the second copy of the agent application executing on the second device; and
recording that the second copy of the agent application is executing successfully on the second device based at least in part on receiving the second agent activation response from the second device within a predetermined amount of time.
6. A mobile device, comprising:
a memory device configured to store instructions; and
a processing device configured to execute the instructions stored in the memory device to:
activate a first copy of an agent application based at least in part on receiving the first copy of the agent application in an agent activation request from a first device;
transmit, to the first device, a first agent activation response based at least in part on activating the first copy of the agent application;
receive, from a second device, an agent participation request providing a location of the second device;
compare the location of the second device to a region of interest;
provide, to the second device, a second copy of the agent application based at least in part on the comparison;
receive, from the second device, a second agent activation response based at least in part on the second copy of the agent application executing on the second device; and
record that the second copy of the agent application is executing successfully on the second device based at least in part on receiving the second agent activation response from the second device within a predetermined amount of time.
3. A device, comprising:
a memory configured to store a first copy of an agent application received from a first device; and
a processing device configured to:
execute the first copy of the agent application based at least in part on receiving an agent activation request from the first device, the agent activation request comprising the first copy of the agent application;
transmit, to the first device, a first agent activation response based at least in part on executing the first copy of the agent application;
receive, from a second device, an agent participation request providing a location of the second device;
compare the location of the second device to a region of interest;
provide, to the second device, a second copy of the agent application based at least in part on the comparison;
receive, from the second device, a second agent activation response based at least in part on the second copy of the agent application executing on the second device; and
record that the second copy of the agent application is executing successfully on the second device based at least in part on receiving the second agent activation response from the second device within a predetermined amount of time.
1. A computer-readable medium comprising computer-executable instructions, that when executed by a processing device, cause the processing device to:
receive, from a first device, an agent activation request comprising a first copy of an agent application executing on the first device;
execute the first copy of the agent application based at least in part on receiving the agent activation request;
transmit, to the first device, a first agent activation response based at least in part on executing the first copy of the agent application;
receive, from a second device, an agent participation request providing a location of the second device;
compare the location of the second device to a region of interest;
provide, to the second device, a second copy of the agent application based at least in part on the comparison;
receive, from the second device, a second agent activation response based at least in part on the second copy of the agent application executing on the second device; and
record that the second copy of the agent application is executing successfully on the second device based at least in part on receiving the second agent activation response from the second device within a predetermined amount of time.
2. The computer-readable medium of
4. The device of
5. The device of
7. The mobile device of
8. The mobile device of
9. The mobile device of
10. The mobile device of
11. The mobile device of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
0. 19. The mobile management device of claim 18, wherein the processor is further configured to:
compare a location of the second device to the region of interest; and
provide the agent to the second device based at least in part on the comparison.
0. 20. The mobile management device of claim 23, wherein the processor is further configured to:
terminate the agent executing on the first device based at least in part on detecting that the first device is no longer located in the region of interest.
0. 22. The mobile management device of claim 18, wherein the processor is further configured to:
propagate the agent to the first device in response to detecting the first device being located in the region of interest within a predetermined threshold.
0. 26. The mobile device of claim 25, wherein the processor is further configured to:
provide the agent to the second device comprised in an agent activation request.
0. 27. The mobile device of claim 25, wherein the processor is further configured to:
compare a location of the second device to the region of interest; and
provide the agent to the second device based at least in part on the comparison.
0. 28. The mobile device of claim 25, wherein the processor is further configured to:
terminate the agent executing on the first device based at least in part on the agent successfully executing on the second device.
0. 29. The mobile device of claim 25, wherein the processor is further configured to:
terminate the agent executing on the first device based at least in part on detecting that the first device is no longer located in the region of interest.
0. 30. The mobile device of claim 25, wherein the processor is further configured to:
activate the agent on the second device before providing the agent activation response.
0. 31. The mobile device of claim 25, wherein the processor is further configured to:
propagate the agent to the first device in response to detecting the first device being located in the region of interest within a predetermined threshold.
0. 32. The mobile device of claim 31, wherein the processor is further configured to:
determine the predetermined threshold based at least in part on a distance between the first device and a base station that serves the region of interest.
0. 33. The mobile device of claim 25, wherein the processor is further configured to:
determine the predetermined threshold based at least in part on a battery power of the first device.
0. 34. The mobile management device of claim 21, wherein the first processor is further configured to:
compare a location of the second device to the region of interest; and
provide the agent to the second device based at least in part on the comparison.
0. 35. The mobile management device of claim 24, wherein the processor is further configured to:
terminate the agent executing on the first device based at least in part on detecting that the first device is no longer located in the region of interest.
|
This application is a reissue of U.S. application Ser. No. 14/252,670, filed Apr. 14, 2014, now U.S. Pat. No. 8,965,408, which is a divisional of and claims priority benefit to U.S. patent application Ser. No. 12/629,926, filed Dec. 3, 2009, issued as now U.S. Pat. No. 8,744,490, all each of which is incorporated herein in its entirety.
This disclosure relates to the deployment and execution of agents to mobile devices.
In mobile communications, mobile devices may be configured to receive and support mobile agents for performing various tasks. However, the value of a ubiquitous network of mobile sensory input has yet to be leveraged in the marketplace. Today, there is an increase in low cost, low power micro-electronics, sensors and wireless technologies. For example, the user of a location-aware mobile device may encounter or identify a real-world event. The user can choose to download and execute an intelligent agent-based software application to the mobile device to achieve a specific goal with or for the user.
The user will need to eventually leave the event or have some other need that requires termination of the Agent on the device. This could happen before the Agent goal is completed. In prior art applications, this will typically mean that the agent software is not able to continue to achieve its goal.
What is required is an improved system and method that enables mobile agents to persist.
In one aspect of the disclosure, there is provided a method for deploying an agent to a mobile device comprising defining a region of interest (ROI), deploying an agent to a first mobile device, executing the agent on the first mobile device within the region of interest, and propagating the agent from the first mobile device to at least one second mobile device within the region of interest.
In one aspect of the disclosure, there is provided a server configured to deploy an agent application to at least one mobile device. The agent application may be configured to execute on the at least one mobile device when the at least one mobile device is within a region of interest, perform at least one agent function with respect to the region of interest, locate at least one other mobile device within the region of interest, and replicate the agent on the at least one other mobile device within the region of interest.
In one aspect of the disclosure, there is provided a computer-readable medium comprising computer-executable instructions for execution by a first processor of a first device, that, when executed, cause the first processor to execute an agent application, receive an agent participation request from a second processor of a second device, the agent participation request indicating a location of the second device, compare the location of the second device to a definition of a region of interest and provide the agent application to the second processor if the second device is within the region of interest.
Reference will now be made, by way of example only, to specific embodiments and to the accompanying drawings in which:
In
The mobile devices 12 are generally configured to support dynamic, executable content through the network and may receive content from the server 20. In particular, the server 20 may deploy an agent application 16 to a mobile device 12, for example in response to a request from the device 12. As described above, agents 16 may be made applicable to particular events within a region of interest. The server 20 is thus able to define a boundary of the region of interest in order to characterize where the event is taking place. In one embodiment, the region of interest may be defined by a series of latitude/longitude points or some similar array of coordinates. Alternatively, a region of interest may be defined as being within communication range of a particular base station 18 or set of base stations.
In the present embodiments, the agent 16 may require its host device to be location aware. Awareness of location may be determined by an in-built system, such as a GPS or similar, which is able to provide the device with its present location to a required degree of accuracy. Alternatively or in addition, a device may be location aware by receiving information from the server or via communications with the base stations 18.
A user at a mobile device 12 is able to download an agent 16 from the server 20 and to execute the agent 16 on the device 12 in order to achieve a particular goal. The goal may be in respect of a particular event occurring within a region of interest 15 covered by the network 10. Examples of applications and goals of the agent are provided in more detail below.
As described above, there can be contention when the user needs to leave the ROI or have some other need that requires termination of the agent on the device before the goals of the agent have been achieved. In order to strike a balance between the user's needs and the agent's needs on the device, the agent software should be deployed so that it is able to persist its presence within the ROI to service others who enter the ROI.
A method for deployment of the agent into the ROI is illustrated in the flowchart 100 of
Initially, the mobile device need not be in the ROI when it receives the agent but when the device 12 moves into the ROI the agent will detect that the device is within the event boundaries and begin execution. Similarly, when the device 12 leaves the event boundary defined by the ROI, the agent may terminate or place itself into a stand-by mode.
Agent propagation may occur by moving or copying the Agent between participating devices within the ROI. In either scenario, the Agent's motivation is to remain actively executing within the ROI. This serves to flood the ROI with Agents that act independently from each other and function toward the same goal.
Copying of the agent will now be described with reference to
At commencement, it is considered that Device_1 has had an agent 30 deployed to it, either from the server 20 (
Devices 32-34 which are executing the agent bootstrap code send participation requests (step 201), e.g. by broadcast, multicast or by direct communication to receptive devices, and then wait for agent activation requests (step 203). The agent participation request 41 provides the device identity and the current location of the device. At step 202, Device_1 31, which is currently hosting the agent 30, receives agent participation requests 41 from the various other devices 32-34. At step 204, Device_1 31 determines from the agent participation request whether the requesting device is within the ROI 40. For example, the agent on Device_1 would compare the location of Device_4 34 indicated in an agent participation request with the ROI defined within the agent 36 and determine that Device_4 34 is outside of the region of interest 40. In this case, the agent would return to step 202 and await a next agent participation request. Processing of an agent participation request from Device_2 32 however would show that Device_2 is located in the ROI and thus the agent 30 would proceed to step 206 and send an agent activation request 42 to Device_2 32. The agent activation request would return the device ID of Device_2 as well as an agent ID and a serialized version of the agent including both a definition of the ROI and a location of device history of the agent. Device_1 would then proceed to step 208 and await an agent activation response. At Device_2 32, if a timeout occurs (step 205) while awaiting the agent activation request, a failure is recorded (step 207) and Device_2 32 returns to step 201 to send another agent participation request. Otherwise, if no timeout occurs, the agent activation request is processed (step 209). That is, the agent is deserialized and activated and the ROI and agent history is stored prior to starting the agent (step 211). If the agent cannot be successfully started as determined at step 213, then a failure is recorded 207 and Device_2 32 returns to step 201. Otherwise, the copying of the agent is recorded (step 215), e.g. by adding Device_2 32 to the location and device history. Device_2 32 then sends an agent activation response 43 to Device_1 31 which indicates the device ID of Device_2 32, the agent ID and a success or fail indicator.
If Device_1 31 receives the agent activation response 43 before a timeout (step 210) and the agent activation response 43 indicates that the agent has been successfully started on Device_2 (step 212), then agent on Device_1 records the new agent (step 214). Otherwise, the agent on Device_1 records a failure (step 216).
At the conclusion of the process 200, the agent is actively executing on Device_1 31 and on Device_2 32. Either of Device_1 or Device_2 may then continue replicating the agent to other devices within the ROI, such as Device_3 33 following the process as described above.
The agent ID identifies the agent, and may be used by Device_2 to determine if the agent is already available on the device. If Device_2 doesn't have an agent with a matching agent ID, Device_2 must retrieve the correct agent from an external source, e.g., Device_1.
As an alternative to copying the agent, the agent 30 may be configured to move from one device to another. The process for moving may be similar to the process 200 shown in
Copying or moving of the agent may be triggered by the receipt of an agent activation request from another device within the ROI. Alternatively or in addition, the host device may only become receptive to moving or copying the agent under certain conditions, such as when the device is being shut down, low battery power conditions, exiting the ROI, reduced signal strength, a specific command from the user, and the like.
A real-world event could be an unplanned emergency event (such as a fire, flash flood, traffic accident, shooting, etc) or a planned non-emergency event (such as a concert, fair, road repair, sporting event, etc) or a combination (such as traffic congestion, road repair and a traffic accident). The origination of the agent and the ROI is not relevant to this disclosure but can differ based on each scenario. Individual examples are detailed in the following paragraphs.
Disaster search and rescue missions could drop in mobile Base Transceiver Stations (BTS) pre-programmed with a specific ROI and Agents to facilitate propagation to other mobiles that are in or enter the ROI. The agent copies itself to devices as they enter the ROI of the search and rescue effort. The agent might provide response leaders with command and control, enabling the command post to identify each participant, observe the location of each participant, assign search tasks to selected participants, and notify participants of status changes. The agent may change status or cease operating when a participant enters a rest area, departs the ROI, or in some other manner ceases to participate in the search and rescue mission. [0035] A 911 dispatcher could submit an Agent and a ROI to a caller's mobile in response to a traffic accident. The participant can use the camera or various other sensor inputs of the mobile device to indicate the type of injury (or injuries) involved. The police and medical responders can use this information, carried by the agent as it copies itself to additional devices as they enter the region, to quickly facilitate their actions (e.g., will Care-Flight be needed because of traffic congestion?, etc). When the agent determines that the participant has exited the ROI, e.g., by comparing the device's current location with the ROI boundary, the agent moves to another device that is entering the ROI, stops participating in the ROI related to the traffic accident and waits for the next event, or ceases operation. The act of copying or moving to a device that is entering the ROI is an example of the agent achieving the goal of persistence within the ROI. [0036] A mobile user can create an Agent and ROI at a crowded concession stand at a sporting event in order to quickly understand the demands for hot dogs drinks, etc based on the crowd's demands. As customers depart the service counter, the agent detects the movement and either moves to a device approaching the concession stand that isn't already running the agent, or if no such device is available, stops operating.
Other scenarios would be apparent to the skilled addressee from the foregoing embodiments and examples.
In the above examples, the point-to-point communication within a region of interest can help to promote a direct, expedient exchange of information between agents. When an agent detects that its host device has left the ROI, it may terminate the agent. An agent's motivation to stay within a specified ROI, e.g. by moving or copying itself to other agents, allows the device to free up resources acquired by the agent after a power cycle or once the device leaves the ROI boundary.
In one embodiment, there may be defined one or more threshold conditions that enable the agent to provide a graceful termination on a device. In one embodiment, a threshold of the ROI may be defined as a second series of coordinates that define a threshold boundary immediately outside of the ROI boundary. Devices at a location between the threshold boundary and the ROI boundary may be considered to be within the threshold.
In one embodiment, a threshold of the ROI may be defined by signal strength. For example, where a ROI is defined by proximity to base stations a device with a signal strength of less than 20% with a base station within the ROI may be considered to be operating within a threshold region. The signal strength may be used to as a threshold condition irrespective of how the ROI is defined, e.g. by coordinates, base stations or by other means. The choice of threshold signal strength, e.g. 20% is presented herein as an example with any suitable threshold being chosen dependent on the application and implementation.
In a further embodiment, a device may be considered to be operating in a threshold region if the battery life of the device is below a required level, e.g. 20%.
A process for terminating the agent on a device is shown in the flowchart 300 of
Upon expiry of the termination timer (step 308), or if the termination timer is disabled, a final check of the device location is made (step 309). If the device has re-entered the ROI as determined at step 310, then agent operation is resumed (step 311). If the agent has not re-entered the ROI but is within the ROI threshold, as determined at step 312, then the agent enters the standby mode (step 313). Otherwise, the agent is terminated (step 314), at which time a termination notification message may be broadcast/multicast/unicast to known agents within the ROI.
Where non-geographic threshold conditions are employed, such as based on signal strength and/or device battery power, the agent may enter a standby mode even if the device is within the ROI. Further, more stringent threshold conditions can be applied, such as battery power less than 5%, to cause the agent to enter a termination mode.
The components of the system 10 may be embodied in hardware, software, firmware or a combination of hardware, software and/or firmware. In a hardware embodiment, a mobile device such as Device_1 31 may include a processor 61 operatively associated with a memory 62 as shown in
Although embodiments of the present invention have been illustrated in the accompanied drawings and described in the foregoing description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit of the invention as set forth and defined by the following claims. For example, the capabilities of the invention can be performed fully and/or partially by one or more of the blocks, modules, processors or memories. Also, these capabilities may be performed in the current manner or in a distributed manner and on, or via, any device able to provide and/or receive information. Further, although depicted in a particular manner, various modules or blocks may be repositioned without departing from the scope of the current invention. Still further, although depicted in a particular manner, a greater or lesser number of modules and connections can be utilized with the present invention in order to accomplish the present invention, to provide additional known features to the present invention, and/or to make the present invention more efficient. Also, the information sent between various modules can be sent between the modules via at least one of a data network, the Internet, an Internet Protocol network, a wireless source, and a wired source and via plurality of protocols.
Peterson, Robert W., Gerard, Mark
Patent | Priority | Assignee | Title |
RE49003, | Dec 03 2009 | OL SECURITY LIMITED LIABILITY COMPANY | System and method for migrating agents between mobile devices |
Patent | Priority | Assignee | Title |
6078826, | May 29 1998 | Ericsson Inc. | Mobile telephone power savings method and apparatus responsive to mobile telephone location |
6212390, | Feb 20 1997 | Telefonaktiebolaget LM Ericsson | Restricted mobility area |
6219669, | Sep 17 1998 | Intellectual Ventures I LLC | File transfer system using dynamically assigned ports |
6646559, | Aug 29 2000 | USER-CENTRIC IP, L P | Method and apparatus for activating warning devices |
7020476, | Dec 23 2002 | CROWDSTRIKE, INC | Wireless network security |
7072672, | Nov 01 2002 | Nokia Technologies Oy | Disposable mini-applications |
7127613, | Feb 25 2002 | Oracle America, Inc | Secured peer-to-peer network data exchange |
7168089, | Dec 07 2000 | IGT | Secured virtual network in a gaming environment |
7221750, | Jan 20 2006 | Cisco Technology, Inc. | Intelligent association of nodes with pan coordinator |
7295831, | Aug 12 2003 | 3E Technologies International, Inc. | Method and system for wireless intrusion detection prevention and security management |
7346338, | Apr 04 2003 | Cisco Technology, Inc | Wireless network system including integrated rogue access point detection |
7448073, | Sep 23 2002 | Wimetrics Corporation | System and method for wireless local area network monitoring and intrusion detection |
7584470, | Apr 22 2004 | KYNDRYL, INC | Method and system for peer-to-peer software distribution with a package builder |
7637810, | Aug 09 2005 | INTERACTIVE GAMES LLC | System and method for wireless gaming system with alerts |
7761538, | Aug 30 2006 | Microsoft Technology Licensing, LLC | Dynamically configuring, allocating and deploying computing systems |
8104073, | Aug 10 2007 | Pulse Secure, LLC | Exchange of network access control information using tightly-constrained network access control protocols |
8171468, | Dec 22 2003 | Lenovo Innovations Limited | Downloading and upgrading terminal software over the air of a wireless device |
8225379, | Jul 11 2003 | CA, INC | System and method for securing networks |
8256003, | May 10 2007 | Microsoft Technology Licensing, LLC | Real-time network malware protection |
8522020, | Dec 03 2009 | OL SECURITY LIMITED LIABILITY COMPANY | System and method for validating a location of an untrusted device |
8744490, | Dec 03 2009 | OL SECURITY LIMITED LIABILITY COMPANY | System and method for migrating agents between mobile devices |
9338123, | Mar 31 2008 | Meta Platforms, Inc | Location based content aggregation and distribution systems and methods |
20030041238, | |||
20030064731, | |||
20040088348, | |||
20040121787, | |||
20050037733, | |||
20050172153, | |||
20060048141, | |||
20060116170, | |||
20060165030, | |||
20060200862, | |||
20070079113, | |||
20070171859, | |||
20070266169, | |||
20070291945, | |||
20070294747, | |||
20080268816, | |||
20080282347, | |||
20090041252, | |||
20090061890, | |||
20090172821, | |||
20090215402, | |||
20100024009, | |||
20110116442, | |||
20110136510, | |||
20110138443, | |||
20140274133, | |||
EP1596300, | |||
EP1919146, | |||
JP2001320778, | |||
JP2003271390, | |||
JP2004302959, | |||
JP2004364076, | |||
JP2008131594, | |||
TW569586, | |||
WO2006130845, | |||
WO2009027109, | |||
WO2011068626, | |||
WO2086714, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 26 2015 | Osocad Remote Limited Liability Company | OL SECURITY LIMITED LIABILITY COMPANY | MERGER SEE DOCUMENT FOR DETAILS | 047584 | /0904 | |
Feb 23 2017 | OL SECURITY LIMITED LIABILITY COMPANY | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 13 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 05 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 05 2022 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Sep 09 2022 | R1552: Refund - Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 09 2022 | R1555: Refund - 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Date | Maintenance Schedule |
Aug 27 2022 | 4 years fee payment window open |
Feb 27 2023 | 6 months grace period start (w surcharge) |
Aug 27 2023 | patent expiry (for year 4) |
Aug 27 2025 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 27 2026 | 8 years fee payment window open |
Feb 27 2027 | 6 months grace period start (w surcharge) |
Aug 27 2027 | patent expiry (for year 8) |
Aug 27 2029 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 27 2030 | 12 years fee payment window open |
Feb 27 2031 | 6 months grace period start (w surcharge) |
Aug 27 2031 | patent expiry (for year 12) |
Aug 27 2033 | 2 years to revive unintentionally abandoned end. (for year 12) |