DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claims 1-20 are pending in this application.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP § 2146 et seq. for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The filing of a terminal disclaimer by itself is not a complete reply to a nonstatutory double patenting (NSDP) rejection. A complete reply requires that the terminal disclaimer be accompanied by a reply requesting reconsideration of the prior Office action. Even where the NSDP rejection is provisional the reply must be complete. See MPEP § 804, subsection I.B.1. For a reply to a non-final Office action, see 37 CFR 1.111(a). For a reply to final Office action, see 37 CFR 1.113(c). A request for reconsideration while not provided for in 37 CFR 1.113(c) may be filed after final for consideration. See MPEP §§ 706.07(e) and 714.13.
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The actual filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/apply/applying-online/eterminal-disclaimer.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over 1-8 and 10-19 of U.S. Patent No.12,314,223, hereinafter Pat‘223, in view of Nagaralu et al. (US 8,566,298 B1) as set forth in the table with corresponding remarks below.
Instant Application
US Pat. No. 12,314,223
1. A method for locking a number portability database during a database operation performed on one or more records stored within the number portability database, the method comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
1. A method for locking a number portability database during a database operation performed on one or more records stored within the number portability database, the method comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
locking a further record within the number portability database that does not include the extracted object identifier and the value;
upon locking the further record, creating an initial entry comprising the extracted object identifier and the value;
wherein the one or more records stored form a hierarchy and wherein the locking is performed based on the hierarchy;
tracking the database operation of the plurality of applications; and
in response to a crashed application, releasing the shared lock.
The claims of Pat’223 do not disclose receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
2. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
2. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
3. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
3. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
4. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
4. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
5. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
5. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
6. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
6. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
7. The method of claim 1, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
7. The method of claim 1, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
8. The method of claim 1, further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
8. The method of claim 1, further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
9. A non-transitory computer-readable medium with instructions stored thereon that, when executed by a system for locking a number portability database during a database operation performed on one or more records stored within the number portability database, cause the system to perform operations comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
10. A non-transitory computer-readable medium with instructions stored thereon that, when executed by a system for locking a number portability database during a database operation performed on one or more records stored within the number portability database, cause the system to perform operations comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
locking a further record within the number portability database that does not include the extracted object identifier and the value;
upon locking the further record, creating an initial entry comprising the extracted object identifier and the value;
wherein the one or more records stored form a hierarchy and wherein the locking is performed based on the hierarchy;
tracking the database operation of the plurality of applications; and
in response to a crashed application, releasing the shared lock.
The claims of Pat’223 do not disclose receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
10. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
11. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
2. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 2 performs similar functions to that of claim 11, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 11. Accordingly, it would have been obvious to said artisan to modify claim 11 to also perform the steps of claim 2 so as to utilize the telephone number extracted for the purpose of porting numbers like in claim 2 with a reasonable expectation of success.
11. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
12. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
3. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 3 performs similar functions to that of claim 12, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 12. Accordingly, it would have been obvious to said artisan to modify claim 12 to also perform the steps of claim 3 so as to utilize the LRN extracted for the purpose of porting numbers like in claim 3 with a reasonable expectation of success.
12. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
13. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
4. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 4 performs similar functions to that of claim 13, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 13. Accordingly, it would have been obvious to said artisan to modify claim 13 to also perform the steps of claim 4 so as to utilize the SP extracted for the purpose of porting numbers like in claim 4 with a reasonable expectation of success.
13. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
14. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
5. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 5 performs similar functions to that of claim 14, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 14. Accordingly, it would have been obvious to said artisan to modify claim 14 to also perform the steps of claim 5 so as to utilize the NPA-NXX extracted for the purpose of porting numbers like in claim 5 with a reasonable expectation of success.
14. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
15. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
6. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 6 performs similar functions to that of claim 15, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 15. Accordingly, it would have been obvious to said artisan to modify claim 15 to also perform the steps of claim 6 so as to utilize the information therein for the purpose of porting numbers like in claim 6 with a reasonable expectation of success.
15. The non-transitory computer readable medium of claim 9, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
16. The non-transitory computer-readable medium of claim 10 with instructions operations, wherein at least one of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
16. The non-transitory computer readable medium of claim 9, wherein the operations further comprise:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
17. The non-transitory computer-readable medium of claim 10 with instructions operations, further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
17. A system for locking items stored within a number portability database during a database operation performed on one or more records stored within the number portability database comprising:
a memory storing instructions; and
a processor configured to process the stored instructions to:
access a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receive a request for a shared lock for updating the one or more records by the plurality of applications;
extract an object identifier and a value associated with the database operation;
lock the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
track the database operation of the plurality of applications;
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications;
in response to the request, report back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
18. A system for locking items stored within a number portability database during a database operation performed on one or more records stored within the number portability database comprising:
a processor configured to:
access a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receive a request for a shared lock for updating the one or more records by the plurality of applications;
extract an object identifier and a value associated with the database operation;
lock the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
lock a further record within the number portability database that does not include the extracted object identifier and the value;
upon locking the further record, create an initial entry comprising the extracted object identifier and the value;
wherein the one or more records stored form a hierarchy and wherein the locking is performed based on the hierarchy;
track the database operation of the plurality of applications;
in response to a crashed application, release the shared lock; and
a storage device, coupled to the processor, configured to:
store the one or more records.
The claims of Pat’223 do not disclose a memory storing instructions;
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications;
in response to the request, report back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses a memory storing instructions (Fig. 7; Col. 5, Line 65-Col. 6, Line 3);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
18. The system of claim 17, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
the processor is further configured to lock the one or more records
by locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
19. The system of claim 18, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein the processor is further configured to lock a ported numbers record
and a pending numbers record in response to identifying that data having a specific item type of a telephone number (TN) and an associated ten digit value for the telephone number is stored within the ported numbers record and the pending numbers record.
15. The non-transitory computer-readable medium of claim 10 with instructions operations, wherein locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 15 could readily be performed by instructions stored on the memory executed in claim 19. Accordingly, it would have been obvious to said artisan to modify claim 19 to also perform the steps of claim 15 so as to utilize the information therein for the purpose of porting numbers like in claim 15 with a reasonable expectation of success.
19. The system of claim 17,
wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
16. The non-transitory computer-readable medium of claim 10 with instructions operations, wherein at least one of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 18 could readily be performed by instructions stored on the memory executed in claim 16. Accordingly, it would have been obvious to said artisan to modify claim 18 to also perform the steps of claim 16 so as to utilize the information therein for the purpose of porting numbers like in claim 16 with a reasonable expectation of success.
20. The system of claim 17, wherein the processor is further configured to:
determine the database operation was performed by the plurality of applications; and
unlock the one or more records that include the extracted object identifier and the value.
17. The non-transitory computer-readable medium of claim 10 with instructions operations, further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 18 could readily be performed by instructions stored on the memory executed in claim 17. Accordingly, it would have been obvious to said artisan to modify claim 18 to also perform the steps of claim 17 so as to utilize the information therein for the purpose of porting numbers like in claim 17 with a reasonable expectation of success.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over 1-18 of U.S. Patent No. 11,977,512, hereinafter Pat‘512, in view of Nagaralu as set forth in the table with corresponding remarks below.
Instant Application
US Pat. No. 11,977,512
1. A method for locking a number portability database during a database operation performed on one or more records stored within the number portability database, the method comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
1. A method for locking a number portability database during a database operation performed on one or more records stored within the number portability database, the method comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation; and
locking the one or more records for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
locking a record within the number portability database that does not include the extracted object identifier and the value;
upon locking the record, creating an initial entry comprising the extracted object identifier and the value; and
wherein the one or more records form a hierarchy and wherein the locking is performed based on the hierarchy.
The claims of Pat’512 do not disclose tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses tracking the database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
2. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
2. The method of claim 1, wherein
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
3. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
3. The method of claim 1, wherein
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
4. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
4. The method of claim 1, wherein
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
5. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
5. The method of claim 1, wherein
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
6. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
6. The method of claim 1, wherein
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein locking the one or more records includes locking records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
7. The method of claim 1, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
7. The method of claim 1, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
8. The method of claim 1, further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
8. The method of claim 1, further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking one or more records that include the extracted object identifier and the value.
9. A non-transitory computer-readable medium with instructions stored thereon that, when executed by a system for locking a number portability database during a database operation performed on one or more records stored within the number portability database, cause the system to perform operations comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
9. A non-transitory computer-readable medium with instructions stored thereon that, when executed by a system for locking a number portability database during a database operation performed on one or more records stored within the number portability database, cause the system to perform operations comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation; and
locking the one or more records for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
locking a record within the number portability database that does not include the extracted object identifier and the value;
upon locking the record, creating an initial entry comprising the extracted object identifier and the value; and
wherein the one or more records form a hierarchy and wherein the locking is performed based on the hierarchy.
The claims of Pat’512 do not disclose tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses tracking the database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
10. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
10. The non-transitory computer-readable medium of claim 9,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
2. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 2 performs similar functions to that of claim 10, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 10. Accordingly, it would have been obvious to said artisan to modify claim 10 to also perform the steps of claim 2 so as to utilize the telephone number extracted for the purpose of porting numbers like in claim 2 with a reasonable expectation of success.
11. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
11. The non-transitory computer-readable medium of claim 9,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
3. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 3 performs similar functions to that of claim 11, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 11. Accordingly, it would have been obvious to said artisan to modify claim 11 to also perform the steps of claim 3 so as to utilize the LRN extracted for the purpose of porting numbers like in claim 3 with a reasonable expectation of success.
12. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
12. The non-transitory computer-readable medium of claim 9,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
4. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 4 performs similar functions to that of claim 12, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 12. Accordingly, it would have been obvious to said artisan to modify claim 12 to also perform the steps of claim 4 so as to utilize the SP extracted for the purpose of porting numbers like in claim 4 with a reasonable expectation of success.
13. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
13. The non-transitory computer-readable medium of claim 9,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
5. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 5 performs similar functions to that of claim 13, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 13. Accordingly, it would have been obvious to said artisan to modify claim 13 to also perform the steps of claim 5 so as to utilize the NPA-NXX extracted for the purpose of porting numbers like in claim 5 with a reasonable expectation of success.
14. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
14. The non-transitory computer-readable medium of claim 9, wherein locking the one or more records includes locking records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
6. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein locking the one or more records includes locking records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 6 performs similar functions to that of claim 14, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 14. Accordingly, it would have been obvious to said artisan to modify claim 14 to also perform the steps of claim 6 so as to utilize the information therein for the purpose of porting numbers like in claim 6 with a reasonable expectation of success.
15. The non-transitory computer readable medium of claim 9, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
15. The non-transitory computer-readable medium of claim 9,
wherein at least one of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
16. The non-transitory computer readable medium of claim 9, wherein the operations further comprise:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
16. The non-transitory computer-readable medium of claim 9, the operations further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking one or more records that include the extracted object identifier and the value.
17. A system for locking items stored within a number portability database during a database operation performed on one or more records stored within the number portability database comprising:
a memory storing instructions; and
a processor configured to process the stored instructions to:
access a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receive a request for a shared lock for updating the one or more records by the plurality of applications;
extract an object identifier and a value associated with the database operation;
lock the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
track the database operation of the plurality of applications;
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications;
in response to the request, report back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
17. A system for locking items stored within a number portability database during a database operation performed on one or more records stored within the number portability database, the system comprising:
a processor configured to:
access a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receive a request for a shared lock for updating the one or more records by the plurality of applications;
extract an object identifier and a value associated with the database operation; and
lock the one or more records for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
lock a record within the number portability database that does not include the extracted object identifier and the value; and
upon locking the record, create an initial entry comprising the extracted object identifier and the value;
wherein the one or more records form a hierarchy and wherein the locking is performed based on the hierarchy; and
a storage device, coupled to the processor, configured to:
store the one or more records.
The claims of Pat’512 do not disclose a memory storing instructions;
tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses a memory storing instructions (Fig. 7; Col. 5, Line 65-Col. 6, Line 3);
tracking the database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
18. The system of claim 17, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
the processor is further configured to lock the one or more records by locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
18. The system of claim 17, wherein
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein the processor is further configured to lock a ported numbers record and a pending numbers record in response to identifying that data having a specific item type of a telephone number (TN) and an associated ten digit value for the telephone number is stored within the ported numbers record and the pending numbers record.
14. The non-transitory computer-readable medium of claim 9, wherein locking the one or more records includes locking records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 14 could readily be performed by instructions stored on the memory executed in claim 18. Accordingly, it would have been obvious to said artisan to modify claim 18 to also perform the steps of claim 14 so as to utilize the information therein for the purpose of porting numbers like in claim 14 with a reasonable expectation of success.
19. The system of claim 17, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
15. The non-transitory computer-readable medium of claim 9, wherein at least one of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 15 could readily be performed by instructions stored on the memory executed in claim 17. Accordingly, it would have been obvious to said artisan to modify claim 17 to also perform the steps of claim 15 so as to utilize the information therein for the purpose of porting numbers like in claim 15 with a reasonable expectation of success.
20. The system of claim 17, wherein the processor is further configured to:
determine the database operation was performed by the plurality of applications; and
unlock the one or more records that include the extracted object identifier and the value.
16. The non-transitory computer-readable medium of claim 9, the operations further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking one or more records that include the extracted object identifier and the value.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 16 could readily be performed by instructions stored on the memory executed in claim 17. Accordingly, it would have been obvious to said artisan to modify claim 17 to also perform the steps of claim 16 so as to utilize the information therein for the purpose of porting numbers like in claim 16 with a reasonable expectation of success.
Claims 1-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over 1-8 and 10-19 of U.S. Patent No. 11,675,738, hereinafter Pat‘738, in view of Nagaralu as set forth in the table with corresponding remarks below.
Instant Application
US Pat. No. 11,675,738
1. A method for locking a number portability database during a database operation performed on one or more records stored within the number portability database, the method comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
1. A method for locking a number portability database during a database operation performed on one or more records stored within the number portability database, the method comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by an application when updating the one or more records;
extracting an object identifier and a value associated with the database operation; and
locking the one or more records stored within the number portability database that include the extracted object identifier and the value and, in a cascading manner, the one or more records related to the extracted object identifier and the value, while the database operation is performed on the one or more records;
locking a record within the number portability database that does not include the extracted object identifier and the value;
upon locking the record, creating an initial entry comprising the extracted object identifier and the value; and
wherein the one or more records stored form a hierarchy and wherein the locking in the cascading manner is performed based on the hierarchy.
The claims of Pat’738 do not disclose a memory storing instructions;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications;
in response to the request, report back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses a memory storing instructions (Fig. 7; Col. 5, Line 65-Col. 6, Line 3);
receive a request for a shared lock for updating the one or more records by the plurality of applications (Figs. 3-5; Col. 4, Lines 4-12 and 26-43; Col. 5, Lines 2-22, A Shared lock is requested and granted for a group of applications to enable them to access and update resources while preventing applications outside the group from doing so.);
tracking the database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
2. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
2. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
3. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
3. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
4. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
4. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
5. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
5. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
6. The method of claim 1, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
6. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
7. The method of claim 1, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
7. The method of claim 1, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
8. The method of claim 1, further comprising:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
8. The method of claim 1, further comprising:
determining the database operation was performed by the application; and
unlocking the one or more records that include the extracted object identifier and the value.
9. A non-transitory computer-readable medium with instructions stored thereon that, when executed by a system for locking a number portability database during a database operation performed on one or more records stored within the number portability database, cause the system to perform operations comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
extracting an object identifier and a value associated with the database operation;
locking the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications; and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
10. A non-transitory computer-readable medium with instructions stored thereon that, when executed by a system for locking a number portability database during a database operation performed on one or more records stored within the number portability database, cause the system to perform operations comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by an application when updating the one or more records;
extracting an object identifier and a value associated with the database operation; and
locking the one or more records stored within the number portability database that include the extracted object identifier and the value and, in a cascading manner, the one or more records related to the extracted object identifier and the value, while the database operation is performed on the one or more records;
locking a record within the number portability database that does not include the extracted object identifier and the value;
upon locking the record, creating an initial entry comprising the extracted object identifier and the value; and
wherein the one or more records stored form a hierarchy and wherein the locking in the cascading manner is performed based on the hierarchy.
The claims of Pat’738 do not disclose a memory storing instructions;
receiving a request for a shared lock for updating the one or more records by the plurality of applications;
tracking the database operation of the plurality of applications;
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications;
in response to the request, report back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses a memory storing instructions (Fig. 7; Col. 5, Line 65-Col. 6, Line 3);
receive a request for a shared lock for updating the one or more records by the plurality of applications (Figs. 3-5; Col. 4, Lines 4-12 and 26-43; Col. 5, Lines 2-22, A Shared lock is requested and granted for a group of applications to enable them to access and update resources while preventing applications outside the group from doing so.);
tracking the database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
10. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
11. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
2. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 2 performs similar functions to that of claim 11, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 11. Accordingly, it would have been obvious to said artisan to modify claim 11 to also perform the steps of claim 2 so as to utilize the telephone number extracted for the purpose of porting numbers like in claim 2 with a reasonable expectation of success.
11. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
12. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
3. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 3 performs similar functions to that of claim 12, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 12. Accordingly, it would have been obvious to said artisan to modify claim 12 to also perform the steps of claim 3 so as to utilize the LRN extracted for the purpose of porting numbers like in claim 3 with a reasonable expectation of success.
12. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
13. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
4. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 4 performs similar functions to that of claim 13, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 13. Accordingly, it would have been obvious to said artisan to modify claim 13 to also perform the steps of claim 4 so as to utilize the SP extracted for the purpose of porting numbers like in claim 4 with a reasonable expectation of success.
13. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
14. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
5. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 5 performs similar functions to that of claim 14, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 14. Accordingly, it would have been obvious to said artisan to modify claim 14 to also perform the steps of claim 5 so as to utilize the NPA-NXX extracted for the purpose of porting numbers like in claim 5 with a reasonable expectation of success.
14. The non-transitory computer readable medium of claim 9, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
15. The non-transitory computer-readable medium of claim 10 with instructions operations,
wherein locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
6. The method of claim 1, wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method of claim 6 performs similar functions to that of claim 15, and that the method recited therein could readily be performed by instructions executed that are stored on a non-transitory medium like claim 15. Accordingly, it would have been obvious to said artisan to modify claim 15 to also perform the steps of claim 6 so as to utilize the information therein for the purpose of porting numbers like in claim 6 with a reasonable expectation of success.
15. The non-transitory computer readable medium of claim 9, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
16. The non-transitory computer-readable medium of claim 10 with instructions operations, wherein at least one of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
16. The non-transitory computer readable medium of claim 9, wherein the operations further comprise:
determining the database operation was performed by the plurality of applications; and
unlocking the one or more records that include the extracted object identifier and the value.
17. The non-transitory computer-readable medium of claim 10 with instructions operations, further comprising:
determining the database operation was performed by the application; and
unlocking the one or more records that include the extracted object identifier and the value.
17. A system for locking items stored within a number portability database during a database operation performed on one or more records stored within the number portability database comprising:
a memory storing instructions; and
a processor configured to process the stored instructions to:
access a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records;
receive a request for a shared lock for updating the one or more records by the plurality of applications;
extract an object identifier and a value associated with the database operation;
lock the one or more records stored within the number portability database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications;
track the database operation of the plurality of applications;
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications;
in response to the request, report back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
18. A system for locking items stored within a number portability database during a database operation performed on one or more records stored within the number portability database comprising:
a processor configured to:
access a database operation, including a read operation, a write operation, or a combination thereof to be performed by an application when updating the one or more records,
extract an object identifier and a value associated with the database operation, and lock the one or more records stored within the number portability database that include the extracted object identifier and the value and, in a cascading manner, the one or more records related to the extracted object identifier and the value, while the database operation is performed on the one or more records;
lock a record within the number portability database that does not include the extracted object identifier and the value;
upon locking the record, create an initial entry comprising the extracted object identifier and the value;
wherein the one or more records stored form a hierarchy and wherein the locking in the cascading manner is performed based on the hierarchy; and
a storage device, coupled to the processor, configured to:
store the one or more records.
The claims of Pat’738 do not disclose a memory storing instructions;
receive a request for a shared lock for updating the one or more records by the plurality of applications;
track the database operation of the plurality of applications;
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications;
in response to the request, report back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses a memory storing instructions (Fig. 7; Col. 5, Line 65-Col. 6, Line 3);
receive a request for a shared lock for updating the one or more records by the plurality of applications (Figs. 3-5; Col. 4, Lines 4-12 and 26-43; Col. 5, Lines 2-22, A Shared lock is requested and granted for a group of applications to enable them to access and update resources while preventing applications outside the group from doing so.);
tracking the database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have bene obvious to a person having ordinary skill in the art to combine the teachings of Pat’223 with Nagaralu by modifying Pat’223 such that when an application outside the partner applications that have a shared lock on a resource attempts to also lock the resource and the lock is thus not available, then the application is not granted the lock and notified as such like in Nagaralu. Said artisan would have been motivated to do so in order to ensure data stays consistent for the applications of the lock group and also avoid deadlocks (Nagaralu, Col. 1, Line 51-Col. 2, Line 2).
18. The system of claim 17, wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
the processor is further configured to lock the one or more records by locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
19. The system of claim 18,
wherein the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier; and
wherein the processor is further configured to lock a ported numbers record and a pending numbers record in response to identifying that data having a specific item type of a telephone number (TN) and an associated ten digit value for the telephone number is stored within the ported numbers record and the pending numbers record.
15. The non-transitory computer-readable medium of claim 10 with instructions operations, wherein locking the one or more records includes locking the records that include:
a ported numbers record that stores information associated with telephone numbers previously ported between carriers; and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 15 could readily be performed by instructions stored on the memory executed in claim 19. Accordingly, it would have been obvious to said artisan to modify claim 19 to also perform the steps of claim 15 so as to utilize the information therein for the purpose of porting numbers like in claim 15 with a reasonable expectation of success.
19. The system of claim 17, wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
16. The non-transitory computer-readable medium of claim 10 with instructions operations, wherein at least one of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 16 could readily be performed by instructions stored on the memory executed in claim 18. Accordingly, it would have been obvious to said artisan to modify claim 18 to also perform the steps of claim 16 so as to utilize the information therein for the purpose of porting numbers like in claim 16 with a reasonable expectation of success.
20. The system of claim 17, wherein the processor is further configured to:
determine the database operation was performed by the plurality of applications; and
unlock the one or more records that include the extracted object identifier and the value.
17. The non-transitory computer-readable medium of claim 10 with instructions operations, further comprising:
determining the database operation was performed by the application; and
unlocking the one or more records that include the extracted object identifier and the value.
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to recognize that the method performed by the instructions of claim 17 could readily be performed by instructions stored on the memory executed in claim 18. Accordingly, it would have been obvious to said artisan to modify claim 18 to also perform the steps of claim 17 so as to utilize the information therein for the purpose of porting numbers like in claim 17 with a reasonable expectation of success.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
As to claims 1, 9, and 17, where applicant acts as his or her own lexicographer to specifically define a term of a claim contrary to its ordinary meaning, the written description must clearly redefine the claim term and set forth the uncommon definition so as to put one reasonably skilled in the art on notice that the applicant intended to so redefine that claim term. Process Control Corp. v. HydReclaim Corp., 190 F.3d 1350, 1357, 52 USPQ2d 1029, 1033 (Fed. Cir. 1999). The term “shared lock” in independent claims 1, 9, and 17 is used by the claims to mean a lock used “for updating the one or more records,” while the accepted meaning is a lock used to “ensure that any read data will be consistent (or, unchanged) until the lock is released” [emphasis added] as stated in Applicant’s specification (See [0053]), and further reiterated via the example in [0057], and is the accepted meaning in the art for a shared lock. I.e. a shared lock enables multiple entities to read the same data while preventing changes to the data for consistency. A shared lock is generally understood to not be used for updating data, but in contrast to prevent updates and ensure consistency of the data being read. The term is indefinite because the specification does not clearly redefine the term, and in fact contradicts the claims’ meaning of the term. As such, it is unclear what the request received is intended to be. Accordingly, independent claims 1, 9, and 17 are indefinite. For the purpose of examination, the claims will not be interpreted as receiving a shared lock, but instead any lock that enables updating a record.
As to claims 2-8, 10-16, and 18-20, the claims inherit the deficiencies of claims 1, 9, and 17 above under 35 USC §112(b) without curing them. Accordingly, claims 2-8, 10-16, and 18-20 are rejected for the same reasons as claims 1, 9, and 17 above.
Specification
The specification is objected to as failing to provide proper antecedent basis for the claimed subject matter. See 37 CFR 1.75(d)(1) and MPEP § 608.01(o). Correction of the following is required:
There is no antecedent basis in the specification for “a shared lock for updating the one or more records” as recited in independent claims 1, 9, and 18. As set forth in the rejections of 1, 9, and 18 under 35 USC §112(b) above, the specification only recites a shared lock for leaving data “unchanged” (See [0053]), i.e. not for updating.
Claim Rejections - 35 USC § 103
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Verma et al. (US 7,555,481 B2), hereinafter Verma, in view of Karau et al. (previously presented)(US 6,473,503 B1), hereinafter Karau, and further in view of Nagaralu et al. (US 8,566,298 B1), hereinafter Nagaralu.
As to claim 1, Verma discloses a method for locking a database during a database operation performed on one or more records stored within the database, the method comprising:
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records (Fig. 5; Col. 3, Lines 33-43; Col. 4, Lines 18-19, 29-32, 49-59, and 63-57; Col. 5, Lines 1-10; A transaction, i.e. a database operation, comprises read and/or write operations performed by a plurality of activities as part of updating tuples. Each activity corresponding to different program code designed to perform differing functions, and thus the activities are ‘applications’ as claimed. An example database operation of Fig. 5 includes reading and retrieving tuples with Data values between 10 and 16, and modifying those having ParentID=4.);
receiving a request for a shared lock for updating the one or more records by the plurality of applications (Fig. 5; Col. 5, Lines 5-10 and 17-30. A shared lock is requested by Activity #1 which provides access for Activity#2 to update the one or more records. Thus, the plurality of activities take part in the updating process of the overall transaction/database operation.);
extracting an object identifier and a value associated with the database operation (Fig. 5; Col. 4, Line 49-Col. 5, Line 16, E.g. extracting Data and ParentID as object identifiers with corresponding values to match.);
locking the one or more records stored within the database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications (Col. 5, Lines 7-25, E.g. the tuples locked under the shared and exclusive locks.);
tracking the database operation of the plurality of applications (Col. 5, Line 26-30, The transaction is tracked to determine when the activities are complete so as to release the locks.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Col. 7, Line 56-Col. 8, Line 5, Other transactions and other associated activities are prevented from accessing the locked tuples.); and
Verma does not disclose that the database is a number portability database; and in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Karau discloses the database is a number portability database that stores information associated with porting of telephone numbers from one carrier to another carrier (Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
a plurality of applications accessing the same number porting data (Fig. 1C; Col. 8, Lines 59-67; Col. 13, Line 66-Col. 14, Line 20; E.g. Various business applications and user GUI application accessing the database of IBAR 86. The number portability database data accessed from IBAR 86 being updated for porting telephone numbers (TN). (E.g. Col. 20, Line 60-Col. 21, Line 10).)
Before the effective filing date of the claimed invention, it would have been readily apparent to a person having ordinary skill in the art that Applicant’s claim is merely implementing known database record operations and locking as disclosed by Verma on a database having a specific set of data, i.e. a number portability database. Before the effective filing date of the claimed invention, it would have been obvious to said ordinarily skilled artisan recognize database operations and locking, such as transactions with activities and locks as used in Verma, can be applied to any database storing any type of data in tuples, direct queries to any field type and corresponding values stored therein, and lock found data accordingly to perform operations specified in received transactions, and that any specific column or data value would be an obvious variant of querying data in any other database, e.g. such as the data in Verma. Additionally, it would have thus been obvious to said ordinarily skilled artisan to combine the teachings of Verma with the teachings of Karau by modifying Karau to utilize database record locking in response to database operations requesting data and to perform updates, like as done by Verma, when the plurality of applications query and modify number portability data in the number portability database of Karau. Thus implementing the teachings of Verma on a number portability database as claimed. Said artisan would have been motivated to do so in order to avoid conflicts and interferences that could lead to invalid data between concurrent users and other applications accessing the LNP system and data of Karau (Verma, Col. 1, Lines 20-25; Karau; Col. 13, Lines 3-8).
Furthermore, as demonstrated in the citations of Karau above, as well as more visually in Figs. 1C and 4A-4AL, a variety of different fields and data in the number portability database are accessed concurrently and by multiple applications to perform various number porting operations. As such, it would have been obvious to said artisan that, like the transactions of Verma which retrieve a set of database data and then perform updates on a subset thereof utilizing locks for concurrency protection, the updates made to the number portability database would similarly need to retrieve data and select a subset therein to edit (e.g. query to retrieve and modify as old in Fig. 4N) to complete the porting operations. As such, it would have been obvious to implement the locking operations of Verma for the telephone number porting applications of Karau. Said artisan would have been motivated to do so again to avoid conflicts and interferences that could lead to invalid data between concurrent users and other applications accessing the LNP system and data of Karau (Verma, Col. 1, Lines 20-25; Karau; Col. 13, Lines 3-8).
Verma, as previously combined with Karau, does not disclose in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses receiving a request for a shared lock for updating the one or more records by a plurality of applications (Figs. 3-5; Col. 4, Lines 4-12 and 26-43; Col. 5, Lines 2-22, A Shared lock is requested and granted for a group of applications to enable them to access and update resources while preventing applications outside the group from doing so.);
tracking a database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to combine the teachings of Verma, as previously combined with Karau, with the teachings of Nagaralu by further modifying Verma such that when a further application of Verma, as previously modified with Karau, attempts to access a record already locked for updates and is prevented from doing so (Verma, Col. 7, Line 62-Col 8, Line 5), then the further application is reported of the lock being prevented like in Nagaralu. Said artisan would have been motivated to do so in order to notify the application that the operation failed and enable it to retry again later as is common practice in the art.
As to claim 9, Verma discloses a non-transitory computer-readable medium with instructions stored thereon that, when executed by a system for locking a database during a database operation performed on one or more records stored within the database, cause the system to perform operations comprising (Col. 2, Lines 53-59; Col. 8, Lines 7-8):
accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records (Fig. 5; Col. 3, Lines 33-43; Col. 4, Lines 18-19, 29-32, 49-59, and 63-57; Col. 5, Lines 1-10; A transaction, i.e. a database operation, comprises read and/or write operations performed by a plurality of activities as part of updating tuples. Each activity corresponding to different program code designed to perform differing functions, and thus the activities are ‘applications’ as claimed. An example database operation of Fig. 5 includes reading and retrieving tuples with Data values between 10 and 16, and modifying those having ParentID=4.);
receiving a request for a shared lock for updating the one or more records by the plurality of applications (Fig. 5; Col. 5, Lines 5-10 and 17-30. A shared lock is requested by Activity #1 which provides access for Activity#2 to update the one or more records. Thus, the plurality of activities take part in the updating process of the overall transaction/database operation.);
extracting an object identifier and a value associated with the database operation (Fig. 5; Col. 4, Line 49-Col. 5, Line 16, E.g. extracting Data and ParentID as object identifiers with corresponding values to match.);
locking the one or more records stored within the database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications (Col. 5, Lines 7-25, E.g. the tuples locked under the shared and exclusive locks.);
tracking the database operation of the plurality of applications (Col. 5, Line 26-30, The transaction is tracked to determine when the activities are complete so as to release the locks.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Col. 7, Line 56-Col. 8, Line 5, Other transactions and other associated activities are prevented from accessing the locked tuples.); and
Verma does not disclose that the database is a number portability database; and in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Karau discloses the database is a number portability database that stores information associated with porting of telephone numbers from one carrier to another carrier (Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
a plurality of applications accessing the same number porting data (Fig. 1C; Col. 8, Lines 59-67; Col. 13, Line 66-Col. 14, Line 20; E.g. Various business applications and user GUI application accessing the database of IBAR 86. The number portability database data accessed from IBAR 86 being updated for porting telephone numbers (TN). (E.g. Col. 20, Line 60-Col. 21, Line 10).)
Before the effective filing date of the claimed invention, it would have been readily apparent to a person having ordinary skill in the art that Applicant’s claim is merely implementing known database record operations and locking as disclosed by Verma on a database having a specific set of data, i.e. a number portability database. Before the effective filing date of the claimed invention, it would have been obvious to said ordinarily skilled artisan recognize database operations and locking, such as transactions with activities and locks as used in Verma, can be applied to any database storing any type of data in tuples, direct queries to any field type and corresponding values stored therein, and lock found data accordingly to perform operations specified in received transactions, and that any specific column or data value would be an obvious variant of querying data in any other database, e.g. such as the data in Verma. Additionally, it would have thus been obvious to said ordinarily skilled artisan to combine the teachings of Verma with the teachings of Karau by modifying Karau to utilize database record locking in response to database operations requesting data and to perform updates, like as done by Verma, when the plurality of applications query and modify number portability data in the number portability database of Karau. Thus implementing the teachings of Verma on a number portability database as claimed. Said artisan would have been motivated to do so in order to avoid conflicts and interferences that could lead to invalid data between concurrent users and other applications accessing the LNP system and data of Karau (Verma, Col. 1, Lines 20-25; Karau; Col. 13, Lines 3-8).
Furthermore, as demonstrated in the citations of Karau above, as well as more visually in Figs. 1C and 4A-4AL, a variety of different fields and data in the number portability database are accessed concurrently and by multiple applications to perform various number porting operations. As such, it would have been obvious to said artisan that, like the transactions of Verma which retrieve a set of database data and then perform updates on a subset thereof utilizing locks for concurrency protection, the updates made to the number portability database would similarly need to retrieve data and select a subset therein to edit (e.g. query to retrieve and modify as old in Fig. 4N) to complete the porting operations. As such, it would have been obvious to implement the locking operations of Verma for the telephone number porting applications of Karau. Said artisan would have been motivated to do so again to avoid conflicts and interferences that could lead to invalid data between concurrent users and other applications accessing the LNP system and data of Karau (Verma, Col. 1, Lines 20-25; Karau; Col. 13, Lines 3-8).
Verma, as previously combined with Karau, does not disclose in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses receiving a request for a shared lock for updating the one or more records by a plurality of applications (Figs. 3-5; Col. 4, Lines 4-12 and 26-43; Col. 5, Lines 2-22, A Shared lock is requested and granted for a group of applications to enable them to access and update resources while preventing applications outside the group from doing so.);
tracking a database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to combine the teachings of Verma, as previously combined with Karau, with the teachings of Nagaralu by further modifying Verma such that when a further application of Verma, as previously modified with Karau, attempts to access a record already locked for updates and is prevented from doing so (Verma, Col. 7, Line 62-Col 8, Line 5), then the further application is reported of the lock being prevented like in Nagaralu. Said artisan would have been motivated to do so in order to notify the application that the operation failed and enable it to retry again later as is common practice in the art
As to claim 17, Verma discloses a system for locking items stored within database during a database operation performed on one or more records stored within the database comprising (Fig. 1):
a memory storing instructions (Fig. 1; Col. 2, Lines 53-59); and
a processor configured to process the stored instructions to (Fig. 1; Col. 2, Lines 53-59):
access a database operation, including a read operation, a write operation, or a combination thereof to be performed by a plurality of applications when updating the one or more records (Fig. 5; Col. 3, Lines 33-43; Col. 4, Lines 18-19, 29-32, 49-59, and 63-57; Col. 5, Lines 1-10; A transaction, i.e. a database operation, comprises read and/or write operations performed by a plurality of activities as part of updating tuples. Each activity corresponding to different program code designed to perform differing functions, and thus the activities are ‘applications’ as claimed. An example database operation of Fig. 5 includes reading and retrieving tuples with Data values between 10 and 16, and modifying those having ParentID=4.);
receive a request for a shared lock for updating the one or more records by the plurality of applications (Fig. 5; Col. 5, Lines 5-10 and 17-30. A shared lock is requested by Activity #1 which provides access for Activity#2 to update the one or more records. Thus, the plurality of activities take part in the updating process of the overall transaction/database operation.);
extract an object identifier and a value associated with the database operation (Fig. 5; Col. 4, Line 49-Col. 5, Line 16, E.g. extracting Data and ParentID as object identifiers with corresponding values to match.);
lock the one or more records stored within the database for the plurality of applications while the database operation is performed on the one or more records by the plurality of applications (Col. 5, Lines 7-25, E.g. the tuples locked under the shared and exclusive locks.);
track the database operation of the plurality of applications (Col. 5, Line 26-30, The transaction is tracked to determine when the activities are complete so as to release the locks.);
receive a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Col. 7, Line 56-Col. 8, Line 5, Other transactions and other associated activities are prevented from accessing the locked tuples.); and
Verma does not disclose that the database is a number portability database; and in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Karau discloses the database is a number portability database that stores information associated with porting of telephone numbers from one carrier to another carrier (Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
a plurality of applications accessing the same number porting data (Fig. 1C; Col. 8, Lines 59-67; Col. 13, Line 66-Col. 14, Line 20; E.g. Various business applications and user GUI application accessing the database of IBAR 86. The number portability database data accessed from IBAR 86 being updated for porting telephone numbers (TN). (E.g. Col. 20, Line 60-Col. 21, Line 10).)
Before the effective filing date of the claimed invention, it would have been readily apparent to a person having ordinary skill in the art that Applicant’s claim is merely implementing known database record operations and locking as disclosed by Verma on a database having a specific set of data, i.e. a number portability database. Before the effective filing date of the claimed invention, it would have been obvious to said ordinarily skilled artisan recognize database operations and locking, such as transactions with activities and locks as used in Verma, can be applied to any database storing any type of data in tuples, direct queries to any field type and corresponding values stored therein, and lock found data accordingly to perform operations specified in received transactions, and that any specific column or data value would be an obvious variant of querying data in any other database, e.g. such as the data in Verma. Additionally, it would have thus been obvious to said ordinarily skilled artisan to combine the teachings of Verma with the teachings of Karau by modifying Karau to utilize database record locking in response to database operations requesting data and to perform updates, like as done by Verma, when the plurality of applications query and modify number portability data in the number portability database of Karau. Thus implementing the teachings of Verma on a number portability database as claimed. Said artisan would have been motivated to do so in order to avoid conflicts and interferences that could lead to invalid data between concurrent users and other applications accessing the LNP system and data of Karau (Verma, Col. 1, Lines 20-25; Karau; Col. 13, Lines 3-8).
Furthermore, as demonstrated in the citations of Karau above, as well as more visually in Figs. 1C and 4A-4AL, a variety of different fields and data in the number portability database are accessed concurrently and by multiple applications to perform various number porting operations. As such, it would have been obvious to said artisan that, like the transactions of Verma which retrieve a set of database data and then perform updates on a subset thereof utilizing locks for concurrency protection, the updates made to the number portability database would similarly need to retrieve data and select a subset therein to edit (e.g. query to retrieve and modify as old in Fig. 4N) to complete the porting operations. As such, it would have been obvious to implement the locking operations of Verma for the telephone number porting applications of Karau. Said artisan would have been motivated to do so again to avoid conflicts and interferences that could lead to invalid data between concurrent users and other applications accessing the LNP system and data of Karau (Verma, Col. 1, Lines 20-25; Karau; Col. 13, Lines 3-8).
Verma, as previously combined with Karau, does not disclose in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted.
However, Nagaralu discloses receiving a request for a shared lock for updating the one or more records by a plurality of applications (Figs. 3-5; Col. 4, Lines 4-12 and 26-43; Col. 5, Lines 2-22, A Shared lock is requested and granted for a group of applications to enable them to access and update resources while preventing applications outside the group from doing so.);
tracking a database operation of the plurality of applications (Figs. 5-6; Col. 5, Lines 15-28, The system tracks to see when the locks should be held and released.);
receiving a request from a further application to be granted access to the one or more records during the database operation of the plurality of applications (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.); and
in response to the request, reporting back to the further application that the one or more records currently have a lock on them which prevents the further application's request from being granted (Fig. 3, #308, 310; Col. 4, Lines 12-17, If an application requests a lock but it is not available, i.e. due to another application or set of partner applications having already obtained the lock, then the application is not granted the lock and informed that it is not available.).
Before the effective filing date of the claimed invention, it would have been obvious to a person having ordinary skill in the art to combine the teachings of Verma, as previously combined with Karau, with the teachings of Nagaralu by further modifying Verma such that when a further application of Verma, as previously modified with Karau, attempts to access a record already locked for updates and is prevented from doing so (Verma, Col. 7, Line 62-Col 8, Line 5), then the further application is reported of the lock being prevented like in Nagaralu. Said artisan would have been motivated to do so in order to notify the application that the operation failed and enable it to retry again later as is common practice in the art
As to claims 2 and 10, the claims are rejected for the same reasons as claims 1 and 9 above. In addition, Verma, as previously combined with Karau and Nagaralu, discloses wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier (Karau, Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number (TN) and the value that includes ten digits representative of a unique telephone number (Verma, Col. 4, Lines 49-67, Records are identified by extracting alphanumerical data referring to tuple keys and values. Karau, Figs. 2A, 4B-4D; Col. 16, Lines 25-29 and 39-64; Col. 119 (NANP), A query to search the LNP database can include US standard 10 digit telephone numbers. This is extracted and used to query the database to return matching results as shown.).
The motivations for combining the teachings of Verma, Karau, and Nagaralu are the same as set forth with respect to claims 1 and 9 above.
Additionally, while the prior art discloses the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier, this feature is directed to non-functional descriptive material and does not carry patentable weight. The limitation merely describes data stored in the database. However, the claims do not recite what the “information” is nor any specific required use of the “information” to perform any specific functions for porting telephone numbers. See MPEP §2111.05
As to claims 3 and 11, the claims are rejected for the same reasons as claims 1 and 9 above. In addition, Verma, as previously combined with Karau and Nagaralu, discloses wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier (Karau, Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a location routing number (LRN) and the value that includes ten digits representative of a unique location routing number (Verma, Col. 4, Lines 49-67, Records are identified by extracting alphanumerical data referring to tuple keys and values. Karau, Figs. 2A, 4B-4D, 4w-4x; Col. 16, Lines 25-29 and 39-64; Col. 23-63; Col. 109 (LRN), A query to search the LNP database can include a local routing number (LRN) which is a standard 10 digit number. This is extracted and used to query the database to return matching results as shown.).
The motivations for combining the teachings of Verma, Karau, and Nagaralu are the same as set forth with respect to claims 1 and 9 above.
Additionally, while the prior art discloses the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier, this feature is directed to non-functional descriptive material and does not carry patentable weight. The limitation merely describes data stored in the database. However, the claims do not recite what the “information” is nor any specific required use of the “information” to perform any specific functions for porting telephone numbers. See MPEP §2111.05
As to claims 4 and 12, the claims are rejected for the same reasons as claims 1 and 9 above. In addition, Verma, as previously combined with Karau and Nagaralu, discloses wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier (Karau, Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a service provider (SP) and the value that includes four digits representative of a unique service provider (Verma, Col. 4, Lines 49-67, Records are identified by extracting alphanumerical data referring to tuple keys and values. Karau, Figs. 2A, 4D, 4S, 4T; Col. 28, Lines 10-24; Col. 29, Lines 28-41, Col. 139 (SP), A query to search the LNP database can include a service provider ID which can be stored as a 4 digit number as shown in Fig. 4T. This is extracted and used to query the database to return matching results as shown.).
The motivations for combining the teachings of Verma, Karau, and Nagaralu are the same as set forth with respect to claims 1 and 9 above.
Additionally, while the prior art discloses the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier, this feature is directed to non-functional descriptive material and does not carry patentable weight. The limitation merely describes data stored in the database. However, the claims do not recite what the “information” is nor any specific required use of the “information” to perform any specific functions for porting telephone numbers. See MPEP §2111.05
As to claims 5 and 13, the claims are rejected for the same reasons as claims 1 and 9 above. In addition, Verma, as previously combined with Karau and Nagaralu, discloses wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier (Karau, Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
extracting the object identifier and the value associated with the database operation includes extracting an alphanumeric string as the object identifier that identifies an object type of a telephone number block (NPA-NXX) and the value that includes six digits representative of a unique telephone number block (Verma, Col. 4, Lines 49-67, Records are identified by extracting alphanumerical data referring to tuple keys and values. Karau, Figs. 2A, 4U, 4V, Col. 30, Lines 1-47, A query to search the LNP database can include US standard 6 digit NPA-NXX numbers. This is extracted and used to query the database to return matching results.).
The motivations for combining the teachings of Verma, Karau, and Nagaralu are the same as set forth with respect to claims 1 and 9 above.
Additionally, while the prior art discloses the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier, this feature is directed to non-functional descriptive material and does not carry patentable weight. The limitation merely describes data stored in the database. However, the claims do not recite what the “information” is nor any specific required use of the “information” to perform any specific functions corresponding thereto. See MPEP §2111.05
As to claims 6, 14, and 18, the claims are rejected for the same reasons as claims 1, 9 and 17 above. In addition, Verma, as previously combined with Karau and Nagaralu, discloses wherein:
the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier (Karau, Fig. 2A; Col. 4, Lines 16-48; col. 9, Lines 1-14; Col. 109 (LNP), Col. 119 (NANP)); and
locking the one or more records includes locking the records that include (Verma, Col. 5, Lines 7-2; Nagaralu, Figs. 3-5; Col. 4, Lines 4-12 and 26-43; Col. 5, Lines 2-22):
a ported numbers record that stores information associated with telephone numbers previously ported between carriers (Karau, Figs. 2a, 4B, 4C, 4AH, 4AI; Col. 16, Lines 25-29 and 39-67; Col. 39, Line 59-Col. 40, Line20. The status of all numbers queried are accessed which will include the status of those numbers, which includes pending or active, i.e. previously ported.); and
a pending numbers record that stores information associated with telephone numbers to be ported between carriers (Karau, Figs. 2a, 4B, 4C, 4AH, 4AI; Col. 16, Lines 25-29 and 39-67; Col. 39, Line 59-Col. 40, Line20. The status of all numbers queried are accessed which will include the status of those numbers, which includes pending or active, i.e. previously ported.).
The motivations for combining the teachings of Verma, Karau, and Nagaralu are the same as set forth with respect to claims 1 and 9 above.
Additionally, while the prior art discloses the number portability database stores information associated with porting of telephone numbers from one carrier to another carrier, this feature is directed to non-functional descriptive material and does not carry patentable weight. The limitation merely describes data stored in the database. However, the claims do not recite what the “information” is nor any specific required use of the “information” to perform any specific functions for porting telephone numbers. See MPEP §2111.05
As to claims 7, 15, and 19, the claims are rejected for the same reasons as claims 1, 9, and 17 above. In addition, Verma, as previously combined with Karau and Nagaralu, discloses wherein at least one record of the one or more records is created within the number portability database after the object identifier and the value are extracted from the database operation (Karau, Figs. 4H-4K, 4V, 4X; Col. 20, Lines 7-67; Col. 30, Lines 50-59, Col. 32, Lines 1-12; Various new records can be created corresponding to object identifiers and values included in a query to create the records. E.g. new LRN, new NPA-NXX, new subscribers being created or ported in.).
The motivations for combining the teachings of Verma, Karau, and Nagaralu are the same as set forth with respect to claims 1 and 9 above.
As to claims 8, 16, and 20, the claims are rejected for the same reasons as claims 1, 9, and 17 above. In addition, Verma, as previously combined with Karau and Nagaralu, discloses determining the database operation was performed by the plurality of applications (Verma, Col. 5, Lines 26-30, The activities are determined to be done and the locks are released.); and
unlocking the one or more records that include the extracted object identifier and the value (Verma, Col. 5, Lines 26-30, The activities are determined to be done and the locks are released.).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Hrle et al. (US 2002/0091694 A1)discloses accessing a database operation, including a read operation, a write operation, or a combination thereof to be performed by an application when updating the records ([0013], [0014]; [0032]-[0037], Queries, i.e. database operations, are received from applications to access records in a relational database. The queries are accessed to determine what operations need to be performed and which records to access, i.e. by analyzing the query, and extracting column(s), i.e. object identifiers, and value(s) associated with the column to identify records to access and lock. Queries can include UPDATE operations that write to identified records. E.g. while Tran1 locks the records associated with C1=3, Tran 1 will update those records as part of the query operation to write C2=P.);
extracting an object identifier and a value associated with the database operation ([0013], [0014]; [0032]-[0037], Queries, i.e. database operations, are received from applications to access records in a relational database. The queries are accessed to determine what operations need to be performed and which records to access, i.e. by analyzing the query, and extracting column(s), i.e. object identifiers, and value(s) associated with the column to identify records to access and lock. E.g. in Tran1, object identifier C1 is extracted along with corresponding value 3.); and
locking the records stored within the database that include the extracted object identifier and the value while the database operation is performed on the records ([0013]; [0015]-[0017]; [0032]-[0039], Records that have identified/extracted object identifier and values applicable to the query are locked while performing the transaction to ensure consistency of the data as well known in the art. E.g. Tran1 obtains an exclusive lock using records identified matching C1=3, and performs an update setting C2=P while the lock is in place. Tran2 acts similarly.).
Forster et al. (US 2012/0109920 A1) discloses locking records stored within a database that include an extracted object identifier ([0015]; [0016]; [0034]) and, in a cascading manner, records related to the extracted object identifier, while the database operation is performed on the records (Fig. 3; [0016]; [0020]; [0021]); wherein the records stored form a hierarchy and wherein the locking in the cascading manner is performed based on the hierarchy (Fig. 2; [0016]; [0019]-[0021]).
Bai (CN 113886097 A) discloses using a shared lock for multiple operation requests (Abstract, [0009], [0061]-[0062]), and if an application fails, then all business processes are notified to release the shared lock.
Bauer et al. (US 2004/0024765 A1) discloses auditing and reconciling number portability databases.
Bailey et al. (US 2005/0234989 A1) discloses lock hierarchy management in a database including shared locks.
Chen et al. (CN 114356888 A) discloses setting locks for data of a transaction group, i.e. a database operation, tracking the database operation, and preventing access to transactions not in the group.
Graefe (US 2008/0086470 A1) discloses establishing a lock hierarchy to protect hierarchical resources during database updates.
Lu et al. (US 2009/0119346 A1) discloses a database system that handles concurrent and possibly conflicting operations utilizing locks (Abstract, [0109]) and that an update operation can be implemented as a delete followed by an insert ([0086]).
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JAMES E RICHARDSON whose telephone number is (571)270-1917. The examiner can normally be reached Mon-Fri 9:00-5:30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Sherief Badawi can be reached at (571) 272-9782. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/James E Richardson/Primary Examiner, Art Unit 2167