IP Library › Granted Patent US 12,198,076
Granted Patent B2
US 12,198,076 · App. 16/797,562 · Granted Jan 14, 2025

Service management in a DBMS

Inventors: Reinhold Geiselhart (Rottenburg-Ergenzingen, DE); Knut Stolze (Hummelshain, DE); Felix Beier (Haigerloch, DE); Luis Eduardo Oliveira Lizardo (Böblingen, DE)
Assignee: International Business Machines Corporation
G06N7/01G06F9/44526G06F16/168G06F16/21G06F16/252G06F16/9024
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,198,076
App. No.
16/797,562
Granted
Jan 14, 2025
Kind
B2
Abstract

The invention relates to a computer-implemented method for managing multiple services in a DBMS. The services respectively are configured to process data that is stored in or is received for being stored in a database managed by the DBMS. The method comprises providing a service manager operatively coupled to the DBMS; registering the multiple services automatically and dynamically at runtime of the DBMS at the service manager; and automatically managing, by the service manager, dependencies between different ones of the multiple registered services.

Claims (75)

1. A computer-implemented method comprising:

providing a service manager operatively coupled to a database management system (DBMS), wherein the DBMS is a software application designed to allow for the definition, creation, querying, updating, and administration of databases;

registering, at the service manager, multiple DBMS services automatically and dynamically at runtime of the DBMS, wherein:

each of the multiple DBMS services, respectively, processes data stored to a database managed by the DBMS;

each of the multiple DBMS services is implemented as a singleton, wherein a singleton is a software object implemented such that it is ensured that only one instance of a particular type of software object can be instantiated at a time; and

a first service of the multiple DBMS services enables the service manager to check whether a cached singleton instance has already been initialized; and

managing, by the service manager, dependencies between the multiple registered DBMS services, wherein:

the dependencies are managed based on source code of the DBMS service specifying dependency services required by the DBMS service;

a class name of each dependency service undergoes an automated conversion into a string to be used as an argument by the service manager for managing the service;

the dependencies are represented in a single data structure and identified and updated at runtime of the DBMS based on performing a depth-first search over a dependency tree representing dependencies of DBMS services registered at the service manager;

the global variable corresponds to a particular DBMS service to be registered at, and managed by, the service manager; and

managing the dependencies further comprises:

responsive to creating the global variable, executing a constructor of a type associated with the global variable; and

detecting cyclic dependencies based on the dependencies of the DBMS services being represented in the form of a directed acyclic graph (DAG).

2. The computer-implemented method of claim 1 , wherein the management of the dependencies comprises instantiating the DBMS services in accordance with the dependencies such that all DBMS services required by a particular one of the DBMS services is already instantiated when the particular DBMS service is instantiated by the service manager.

3. The computer-implemented method of claim 1 , wherein at least some of the DBMS services represent steps within a workflow of a product manufacturing process and wherein at least some dependencies represent equipment dependencies, workflow dependencies, material dependencies, and supply-dependencies of physical objects involved in the product manufacturing process.

4. The computer-implemented method of claim 1 , wherein the management of the dependencies comprises shutting down one or more of the DBMS services in accordance with the dependencies, wherein before any one of the one or more DBMS services is shut down, the shutdown of a first DBMS service is delayed until all DBMS services depending from the first DBMS service are shut down.

5. The computer-implemented method of claim 1 , wherein each of the DBMS services is implemented in accordance with a singleton design pattern.

6. The computer-implemented method of claim 1 , further comprising adding an additional DBMS service to the DBMS comprising:

registering the additional DBMS service at runtime of the DBMS at the service manager; and

updating the dependencies of the DBMS services such that the dependencies represent the dependencies of the existing and the additional DBMS service.

7. The computer-implemented method of claim 1 , wherein the registration of the DBMS services at the service manager is implemented in the form of a decentralized registration process.

8. The computer-implemented method of claim 1 , wherein each of the multiple DBMS services implements an interface comprising a method for registering the DBMS service at the service manager.

9. The computer-implemented method of claim 1 , wherein each of the multiple DBMS services comprises an instantiateService function and a shutdownService function, the instantiateService function and the shutdownService accessible by the service manager, the method further comprising:

using, by the service manager, the instantiateService function and the shutdownService function of the multiple DBMS services for dynamically orchestrating the instantiation and shutdown of the DBMS multiple services in accordance with the dependencies.

10. The computer-implemented method of claim 1 , wherein each of the multiple DBMS services comprises a getRequiredServices function, the getRequiredServices function being accessible by the service manager, the getRequiredServices function being configured to return the names of one or more required DBMS services, each required DBMS service being a DBMS service that needs to be instantiated before the DBMS service comprising the getRequiredServices function is instantiated, the registration of each of the multiple DBMS services comprising:

calling, by the service manager, the getRequiredServices function of the DBMS service to be registered;

automatically checking if the names of the required DBMS services returned by the getRequiredService function identify an already registered DBMS service; and

automatically performing, by the service manager, a registration of any DBMS service returned by the getRequiredService function that has not yet been registered DBMS service.

11. The computer-implemented method of claim 10 , the getRequiredServices function being configured, upon being called, for:

converting the class names of each of the one or more required DBMS services into a respective string;

converting the one or more strings into a compiler-checkable object; and

returning the compiler-checkable object to the service manager having called the getRequiredServices function.

12. The computer-implemented method of claim 1 , wherein at last one of the multiple DBMS services specifies one or more other DBMS services required by the at least one DBMS service, the specification of the one or more other DBMS services having the form of a list of class names that are checked by a compiler during compile time, wherein an error is thrown upon compiling a DBMS service class in case the DBMS service class comprises a name of a required DBMS service and the compiler cannot identify a class whose name matches the name of the required DBMS service.

13. The computer-implemented method of claim 12 , wherein responsive to the DBMS service class comprising the name of a required DBMS service and the compiler being unable identify a class whose name matches the name of the required DBMS service, the name of the required DBMS service is highlighted in the DBMS service class program code upon design time.

14. The computer-implemented method of claim 1 , further comprising:

during registration of one of the DBMS services at the service manager, automatically identifying, by the service manager, one or more other DBMS services required by the one DBMS service to be registered; and

updating the dependencies between the multiple registered DBMS services, the DBMS service to be registered and the DBMS services identified during the registration of the one DBMS service such that the dependencies also comprise the dependencies of the DBMS service to be registered and of the required other DBMS services.

15. The computer-implemented method of claim 1 , the service manager being a component of an application that is implemented as a selection from the group consisting of: an extension application of the DBMS and an integral component of the DBMS.

16. The computer-implemented method of claim 1 , further comprising:

receiving, by the DBMS, a DBMS service request for a particular DBMS service;

identifying, by the service manager, the requested DBMS service within the multiple DBMS services;

identifying, by the service manager, one or more other ones of the registered DBMS services required by the requested DBMS service; and

for each of the identified one or more other DBMS services:

responsive to this other DBMS service not yet being instantiated, instantiating this other DBMS service.

17. A computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to execute a method comprising:

providing a service manager operatively coupled to a database management system (DBMS), wherein the DBMS is a software application designed to allow for the definition, creation, querying, updating, and administration of databases;

registering, at the service manager, multiple DBMS services automatically and dynamically at runtime of the DBMS, wherein:

each of the multiple DBMS services, respectively, processes data stored to a database managed by the DBMS;

each of the multiple DBMS services is implemented as a singleton, wherein a singleton is a software object implemented such that it is ensured that only one instance of a particular type of software object can be instantiated at a time; and

a first service of the multiple DBMS services enables the service manager to check whether a cached singleton instance has already been initialized; and

managing, by the service manager, dependencies between the multiple registered DBMS services, wherein:

the dependencies are managed based on source code of the DBMS service specifying dependency services required by the DBMS service;

a class name of each dependency service undergoes an automated conversion into a string to be used as an argument by the service manager for managing the service;

the dependencies are represented in a single data structure and identified and updated at runtime of the DBMS based on performing a depth-first search over a dependency tree representing dependencies of DBMS services registered at the service manager;

the global variable corresponds to a particular DBMS service to be registered at, and managed by, the service manager; and

managing the dependencies further comprises:

responsive to creating the global variable, executing a constructor of a type associated with the global variable; and

detecting cyclic dependencies based on the dependencies of the DBMS services being represented in the form of a directed acyclic graph (DAG).

18. A computer system comprising:

a database management system (DBMS), wherein the DBMS is a software application designed to allow for the definition, creation, querying, updating, and administration of databases;

a service manager operatively coupled to the DBMS; and

the service manager being configured to:

register, at the service manager, multiple DBMS services automatically and dynamically at runtime of the DBMS, wherein:

each of the multiple DBMS services, respectively, process data stored to a database managed by the DBMS;

each of the multiple DBMS services is implemented as a singleton, wherein a singleton is a software object implemented such that it is ensured that only one instance of a particular type of software object can be instantiated at a time; and

a first service of the multiple DBMS services enables the service manager to check whether a cached singleton instance has already been initialized; and

manage, by the service manager, dependencies between the multiple registered DBMS services, wherein:

the dependencies are managed based on source code of the DBMS service specifying dependency services required by the DBMS service;

a class name of each dependency service undergoes an automated conversion into a string to be used as an argument by the service manager for managing the service;

the dependencies are represented in a single data structure and identified and updated at runtime of the DBMS based on performing a depth-first search over a dependency tree representing dependencies of DBMS services registered at the service manager;

the global variable corresponds to a particular DBMS service to be registered at, and managed by, the service manager; and

managing the dependencies further comprises:

responsive to creating the global variable, executing a constructor of a type associated with the global variable; and

detecting cyclic dependencies based on the dependencies of the DBMS services being represented in the form of a directed acyclic graph (DAG).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2020
From: GEISELHART, REINHOLD; STOLZE, KNUT; BEIER, FELIX; OLIVEIRA LIZARDO, LUIS EDUARDO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 051888/0644 →
Priority Claims (1)
EP 19173726 · May 10, 2019 · regional
Continuity (1)
Related Publication 20200356885A1 · Nov 12, 2020
References Cited (57)
US 7444621B2 · Pletcher · 2008 [cited by applicant]
US 8020034B1 · Shrivastava · 2011 [cited by examiner]
US 8024740B2 · Kawato · 2011 [cited by applicant]
US 8434087B2 · Degenaro · 2013 [cited by applicant]
US 8527458B2 · Park · 2013 [cited by applicant]
US 9009101B2 · Bhatt · 2015 [cited by applicant]
US 9348630B2 · Shimogawa · 2016 [cited by applicant]
US 9921878B1 · Schuster · 2018 [cited by applicant]
US 20030018825A1 · Johnson, Jr. · 2003 [cited by examiner]
US 20060036773A1 · Syrtsov · 2006 [cited by examiner]
US 20080276231A1 · Huang · 2008 [cited by examiner]
US 20090299979A1 · Suh · 2009 [cited by examiner]
US 20100149583A1 · Tian · 2010 [cited by examiner]
US 20110167142A1 · Patel · 2011 [cited by examiner]
US 20120030680A1 · Chang · 2012 [cited by examiner]
US 20120200412A1 · Boettner · 2012 [cited by examiner]
US 20140289638A1 · Becker · 2014 [cited by applicant]
US 20140320917A1 · Changsong · 2014 [cited by examiner]
US 20150154233A1 · Lightner · 2015 [cited by applicant]
US 20170003675A1 · Reichle · 2017 [cited by applicant]
US 20180052718A1 · Demulder · 2018 [cited by examiner]
CN 101763428A · 2010 [cited by applicant]
CN 102455937A · 2012 [cited by applicant]
CN 102844754A · 2012 [cited by applicant]
CN 104657447A · 2015 [cited by applicant]
CN 108123996A · 2018 [cited by applicant]
CN 108153547A · 2018 [cited by applicant]
CN 108475360A · 2018 [cited by applicant]
CN 109710220A · 2019 [cited by applicant]
IN 201817023784A · 2018 [cited by examiner]
JP 2001034493A · 2001 [cited by applicant]
JP 2005025383A · 2005 [cited by applicant]
JP 2005235221A · 2005 [cited by applicant]
JP 2005266917A · 2005 [cited by applicant]
JP 2007538313A · 2007 [cited by applicant]
JP 2009037271A · 2009 [cited by applicant]
JP 2014191776A · 2014 [cited by applicant]
WO 2005106666A1 · 2005 [cited by applicant]
WO 2011123096A1 · 2011 [cited by applicant]
WO 2020229900A1 · 2020 [cited by applicant]
Automatic management of cyclic dependency among web services, Omer et al, IEEE International Conference on Computational Science and Engineering. (Year: 2011). [cited by examiner]
Response to Official Action of the United Kingdom Intellectual Property Office, Jan. 14, 2022, 1 pg., United Kingdom Application No. GB2116491.8. [cited by applicant]
Baseke, “Registry of Singletons”, Code Project, Jan. 6, 2004 [accessed on Feb. 10, 2020], 5 pages, Retrieved from the Internet: <URL: https://www.codeproject.com/Articles/5794/Registry-of-Singletons>. [cited by applicant]
CRYPTO++, “Static Initialization Order Fiasco”, Crypto++ Wiki, [accessed on Feb. 10, 2020], 7 pages, Retrieved from the Internet: <URL: https://www.cryptopp.com/wiki/Static_Initialization_Order_Fiasco>. [cited by applicant]
Lenahan, “Turnaround Shutdown and Outage Management”, Second Edition, ISBN: 0750667877, Dec. 2005, 270 pages, Elsevier Science & technology Books. [cited by applicant]
Levitt, “Managing maintenance shutdowns and outages”, Abstract, 2004 [accessed on Feb. 20, 2020], 2 pages, ISBN: 083113173X; 9780831131739, New York: Industrial Press, Retrieved from the Internet: <URL: https://www.worl… [cited by applicant]
Sahoo, “Process plants: shutdown and turnaround management”, CRC Press Taylor & Francis Group, 2014, 398 pages, International Standard Book No. 13: 978-1-4665-1734-9, Boca Raton, FL, USA. [cited by applicant]
Wikipedia, “Manufacturing resource planning”, The Free Encyclopedia, [accessed on Feb. 10, 2020], 5 pages, Retrieved from the Internet: <URL: https://en.wikipedia.org/wiki/Manufacturing_resource_planning>. [cited by applicant]
Wikipedia, “Material requirements planning”, The Free Encyclopedia, [accessed on Feb. 10, 2020], 8 pages, Retrieved from the Internet: <URL: https://en.wikipedia.org/wiki/Material_requirements_planning>. [cited by applicant]
Wikipedia, “Singleton pattern”, The Free Encyclopedia, [accessed on Feb. 10, 2020], 7 pages, Retrieved from the Internet: <URL: https://en.wikipedia.org/wiki/Singleton_pattern>. [cited by applicant]
United Kingdom Intellectual Property Office, Patents Act 1977: Examination Report Under Section 18(3), Application No. GB2116491.8, Date of Mailing Feb. 2, 2022, 3 pgs. [cited by applicant]
International Searching Authority, “International Search Report,” Patent Cooperation Treaty, Jul. 15, 2020, 7 pages, International Application No. PCT/IB2020/053259. [cited by applicant]
United Kingdom Intellectual Property Office Examination Report dated Dec. 8, 2021, application No. GB2116491.8, 4 pgs. [cited by applicant]
“Notice of Reasons for Refusal”, International Search Report, Application number: Japanese Patent Application No. 2021-566436, Date of Drafting: Reiwa 5(2023) Jun. 28, Toshio 4178 Five B00, Representative/Applicant: TAI… [cited by applicant]
National Intellectual Property Administration, PRC, “Notification of the First Office Action”, Application Number or Patent No. 202080032396.1, Issue No. 2023120701702890, Date of Issue: Dec. 7, 2023, 4 pages. [cited by applicant]
The State Intellectual Property Office of People's Republic of China, “The Second Office Action”, Application No. or Publication No. 202080032396.1, Application or Patentee: International Business Machines Corporation, … [cited by applicant]
The State Intellectual Property Office of People's Republic of China, “The Third Office Action”, Jun. 12, 2024, 4 pages, Chinese Application No. 202080032396.1. [cited by applicant]