1. Field
The invention relates to virtual system configuration. More specifically, the invention relates to abstracting configuration data to reduce administration.
2. Background
With various enterprise software solutions improved scalability and reduced administration have been the goal. One countervailing force to this goal is the distribution of configuration data within the system. Existing systems redundantly store static values for system dependent information distributed across a cluster configuration tree. These system dependent settings are statically determined within the configuration database. This requires manual intervention responsive to system change. For example, with system copy, the requirement of manual adaptation makes it impossible to use a configuration as it is from one system to another. Even minor changes, such as a change in Java Home, System Name, Instance Number, Host Name, etc., requires manual adjustment. Moreover, changes in configuration data often necessitate onsite visits by software technicians to provide the correct configuration data for an appropriate system operation. This drives up the cost of changing, scaling or even maintaining a system.
A system and method to reduce configuration redundancy using system independent configuration references is disclosed. A persistent storage unit returns system independent configuration entries. Some of the entries contain reference to other entries. A configuration resolver resolves the references to obtain a static value for the configuration entry that may be passed to a configuration consumer.
The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
In one embodiment, configuration resolver includes a resolver handler 118, which filters incoming configuration data from database 102 using a filter 126 to identify if the configuration should be passed to a parser 128 within the resolver handler. Parser 128 identifies the semantic of various abstract configuration components and calls an appropriate resolver within the configuration resolver 110 to resolve those components.
For example, in one embodiment, configuration resolver 110 includes a parameter resolver 112, a reference link resolver 114 and an expression calculator 116. In one embodiment, parameters are semantically reflected as ${identifier}. When the parser finds that semantic within a configuration entry, the call is made to the parameter resolver 112 to obtain a static value for that parameter. To obtain a static value for the parameter, parameter resolver 112 uses a matching module 122 to match the identifier against an identical identifier in the system context 108 and retrieve the corresponding static value from the system context 108. The static value is then substituted for the parameter in the configuration entry. The static value may then be returned to the resolver handler 110 or if a particular configuration data is fully resolved by virtue of the resolution of the parameter, the resulting static value may be passed to configuration consumer 104.
If the parser 128 finds a reference link abstraction within the configuration entry, a call is made to reference link resolver 114. In one embodiment, the semantic for a reference link is $link {pathname}. Reference link resolver 114 follows the path and substitutes the value obtained at the end of the path using substitution module 124 to provide a static value or possibly substitute a parameter as explained below. The path can be either absolute or relative. Relative paths facilitate inheritance. For example, a configuration B is derived from configuration A. A contains a config entry a=‘a’ and a reference link alink=‘.#a’ Configuration B overwrites value “a” to a=‘b’. Therefore, value alink in configuration A will be resolved to ‘a’, but the inherited value alink in configuration B it will be resolved to ‘b’. In one embodiment, the path generally points to another configuration entry in the configuration tree, which may itself be an abstract configuration entry requiring further resolution. Thus, for example, $link{#nodeCount} points to the configuration entry node count, which is equal to ${cpu_count}. In this case, node count will finally resolve to 4, but maxHeap is discerned by first calling the parameter resolver 112 to obtain the Amount Memory which is 4,096. Then resolver manager 118 calls the reference resolver link 114 to follow the link to nodeCount, which returns the parameterized value CPU_COUNT. The resolver manager 118 again calls the parameter resolver 112 to which resolver context CPU_COUNT to 4 with reference to the system. Then the two static values for AMOUNT_MEMORY (4096) and CPU_COUNT (4) are passed with the call to expression calculator 116 to conduct the division.
Expression calculator 116, in one embodiment, performs simple arithmetic functions such as, add, subtract, multiply, divide, min, max, round and truncate. More or fewer arithmetic operations may be supported. In the above example, when the static value of maxHeap is finally calculated by the expression calculator 116, it may be passed to configuration consumer 104. Thus, in one embodiment, resolver handler 118 calls the individual resolvers 112, 114 and 116 sequentially as needed to resolve abstract configuration data into a static value that may be passed to a configuration consumer 104 at run time. It should be noted that the resolver handler 118 need not call every resolver and calls in parallel or a different order than the example above may occur.
In one embodiment, when the system starts up, a system context is created. In one embodiment, the system context is stored in main memory. This activity is all part of the initialization process and is decoupled from the subsequent steady state operation of the system.
At block 208, abstract configuration data is retrieved from a persistent store. In one embodiment, the persistent store is a database. At decision block 210, the determination is made whether the configuration data obtained from the persistent store should be parsed. For example, it is possible that configuration data may have a form that is analogous to the semantic that would require parsing, but should otherwise not be parsed because it is already the value that should be passed as the static configuration value to the configuration consumer. In such case, the filter bypasses the parser and forwards the configuration data to the configuration consumer without parsing.
If the configuration data should be parsed, at block 212 the configuration is parsed to identify the expected semantic. While one possible semantic for parameters and reference links is set forth above, any suitable semantic identifiable by the parser may be used. At block 214, a determination is made whether a parameter semantic is found. If so, the parameter is resolved with reference to the system context at block 216. At block 218, a determination is made if a reference link semantic is found. If so, at block 220, the reference link is resolved. Resolution of the reference link is described in further detail with reference to
While embodiments of the invention are discussed above in the context of flow diagrams reflecting a particular linear order, this is for convenience only. In some cases, various operations may be performed in a different order than shown or various operations may occur in parallel. It should also be recognized that some operations described with respect to one embodiment may be advantageously incorporated into another embodiment. Such incorporation is expressly contemplated.
Elements of embodiments of the present invention may also be provided as a machine-readable medium for storing the machine-executable instructions. The machine-readable medium may include, but is not limited to, flash memory, optical disks, compact disks read only memory (CD-ROM), digital versatile/video disks (DVD) ROM, random access memory (RAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic or optical cards, propagation media or other type of machine-readable media suitable for storing electronic instructions. For example, embodiments of the invention may be downloaded as a computer program which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
In the foregoing specification, the invention has been described with reference to the specific embodiments thereof. It will, however, be evident that various modifications and changes can be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
5479599 | Rockwell et al. | Dec 1995 | A |
5608865 | Midgely et al. | Mar 1997 | A |
5758154 | Qureshi | May 1998 | A |
5832503 | Malik et al. | Nov 1998 | A |
5996012 | Jarriel | Nov 1999 | A |
6041347 | Harsham et al. | Mar 2000 | A |
6055227 | Lennert et al. | Apr 2000 | A |
6148277 | Asava et al. | Nov 2000 | A |
6161176 | Hunter et al. | Dec 2000 | A |
6209018 | Ben-Shachar et al. | Mar 2001 | B1 |
6314460 | Knight et al. | Nov 2001 | B1 |
6341372 | Datig | Jan 2002 | B1 |
6397378 | Grey et al. | May 2002 | B1 |
6421719 | Lewis et al. | Jul 2002 | B1 |
6490690 | Gusler et al. | Dec 2002 | B1 |
6567849 | Ludovici et al. | May 2003 | B2 |
6735691 | Capps et al. | May 2004 | B1 |
6832298 | Fujii et al. | Dec 2004 | B2 |
6871221 | Styles | Mar 2005 | B1 |
6898703 | Ogami et al. | May 2005 | B1 |
6925646 | Korenshtein et al. | Aug 2005 | B1 |
6950931 | Wedlake | Sep 2005 | B2 |
6996517 | Papaefstathiou | Feb 2006 | B1 |
7051097 | Pecina | May 2006 | B1 |
7054924 | Harvey et al. | May 2006 | B1 |
7167974 | Roth et al. | Jan 2007 | B2 |
7188335 | Darr et al. | Mar 2007 | B1 |
7246345 | Sharma et al. | Jul 2007 | B1 |
7260818 | Iterum et al. | Aug 2007 | B1 |
7320007 | Chang | Jan 2008 | B1 |
7343601 | Azagury et al. | Mar 2008 | B2 |
7373661 | Smith et al. | May 2008 | B2 |
7412687 | Goodwin et al. | Aug 2008 | B2 |
7447701 | Agarwal et al. | Nov 2008 | B2 |
7480643 | Barsness et al. | Jan 2009 | B2 |
8539496 | Anand et al. | Sep 2013 | B1 |
20030041235 | Meyer | Feb 2003 | A1 |
20030055529 | Aosawa | Mar 2003 | A1 |
20030055905 | Nishiyama et al. | Mar 2003 | A1 |
20030221094 | Pennarun | Nov 2003 | A1 |
20030225793 | Chakraborty | Dec 2003 | A1 |
20030225867 | Wedlake | Dec 2003 | A1 |
20040059811 | Sugauchi et al. | Mar 2004 | A1 |
20040098408 | Gensel | May 2004 | A1 |
20040117452 | Lee et al. | Jun 2004 | A1 |
20040139193 | Refai et al. | Jul 2004 | A1 |
20040162930 | Forin et al. | Aug 2004 | A1 |
20040187140 | Aigner et al. | Sep 2004 | A1 |
20040205584 | Pezzanite | Oct 2004 | A1 |
20040230787 | Blumenau et al. | Nov 2004 | A1 |
20050005005 | Styles et al. | Jan 2005 | A1 |
20050050175 | Fong et al. | Mar 2005 | A1 |
20050065993 | Honda et al. | Mar 2005 | A1 |
20050071195 | Cassel et al. | Mar 2005 | A1 |
20050076005 | Chefalas et al. | Apr 2005 | A1 |
20050085937 | Goodwin et al. | Apr 2005 | A1 |
20050091291 | Kaler et al. | Apr 2005 | A1 |
20050144428 | Rothman et al. | Jun 2005 | A1 |
20050144528 | Bucher et al. | Jun 2005 | A1 |
20050144610 | Zenz | Jun 2005 | A1 |
20050177827 | Fong et al. | Aug 2005 | A1 |
20050182831 | Uchida et al. | Aug 2005 | A1 |
20050188367 | Oberholtzer | Aug 2005 | A1 |
20050240667 | Koegel | Oct 2005 | A1 |
20050289169 | Adya et al. | Dec 2005 | A1 |
20060041595 | Taguchi et al. | Feb 2006 | A1 |
20060041881 | Adkasthala | Feb 2006 | A1 |
20060047792 | Dharmarajan et al. | Mar 2006 | A1 |
20060047798 | Feinleib et al. | Mar 2006 | A1 |
20060064673 | Rogers et al. | Mar 2006 | A1 |
20060123409 | Jordan, III et al. | Jun 2006 | A1 |
20060150178 | Jerrard-Dunne et al. | Jul 2006 | A1 |
20060165123 | Jerrard-Dunne et al. | Jul 2006 | A1 |
20060190579 | Rachniowski et al. | Aug 2006 | A1 |
20060200552 | Beigi et al. | Sep 2006 | A1 |
20060242626 | Pham et al. | Oct 2006 | A1 |
20060242634 | Fleischer et al. | Oct 2006 | A1 |
20070094359 | Lamoureux | Apr 2007 | A1 |
20070118654 | Jamkhedkar | May 2007 | A1 |
20070118888 | Styles | May 2007 | A1 |
20070136548 | Mane | Jun 2007 | A1 |
20070143480 | Arroyo et al. | Jun 2007 | A1 |
20070156388 | Kilian et al. | Jul 2007 | A1 |
20070156389 | Kilian et al. | Jul 2007 | A1 |
20070156641 | Mueller | Jul 2007 | A1 |
20070156715 | Mueller | Jul 2007 | A1 |
20070156717 | Zenz et al. | Jul 2007 | A1 |
20070157010 | Zenz | Jul 2007 | A1 |
20070157172 | Zenz et al. | Jul 2007 | A1 |
20070157185 | Semerdzhiev | Jul 2007 | A1 |
20070162892 | Zenz et al. | Jul 2007 | A1 |
20070165937 | Markov et al. | Jul 2007 | A1 |
20070168965 | Zenz | Jul 2007 | A1 |
20070257715 | Semerdzhiev et al. | Nov 2007 | A1 |
Number | Date | Country |
---|---|---|
1486867 | Dec 2004 | EP |
2374687 | Oct 2002 | GB |
WO-9626588 | Aug 1996 | WO |
WO2004109978 | Dec 2004 | WO |
WO-2004109978 | Dec 2004 | WO |
WO2005045670 | May 2005 | WO |
WO-2007076944 | Jul 2007 | WO |
Entry |
---|
Int'l Application No. PCT/EP2006/012357, Int'l Search Report and Written Opinion dated Mar. 29, 2007, 5 pages. |
Int'l Application No. PCT/EP2006/012358, Int'l Search Report and Written Opinion dated Jun. 14, 2007, 5 pages. |
Int'l Application No. PCT/EP2006/012421, Int'l Search Report and Written Opinion dated Oct. 2, 2007, 14 pages. |
Office Action mailed Feb. 20, 2008 for U.S. Appl. No. 11/322,608, (Feb. 20, 2008), Whole Document. |
Office Action mailed Jan. 8, 2008 for U.S. Appl. No. 11/322,607, (Jan. 18, 2008), Whole Document. |
Office Action mailed Mar. 19, 2008 for U.S. Appl. No. 11/322,701, (Mar. 19, 2008), Whole Document. |
Anonymous, “Using a Template Processor to Simplify Programming”, Research Disclosure, Mason Publications, Hampshire, GB, vol. 41, No. 413, (Sep. 1, 1998), 1-3. |
Heiss, Kurt, Oracle Process Manager and Notification Server Administrator's Guide, 10g Release 2 (10.1.2), Dec. 2004, XP002449016; Redwood City, CA, USA, Retrieved from the Internet: URL: http://download.oracle.com/docs/cd/B14 [ret'd on Aug. 31, 2007], (Dec. 2004), pp. 1-1 to pp. 1-26 and pp. 3-1 to pp. 3-30. |
Non-Final Office Action for U.S. Appl. No. 11/322,400 mailed May 23, 2008, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/322,401 mailed May 22, 2008, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/322,607 mailed Jun. 26, 2008, whole document. |
Final Office Action for U.S. Appl. No. 11/322,608 mailed Sep. 4, 2008, whole document. |
Final Office Action for U.S. Appl. No. 11/322,401 mailed Nov. 19, 2008, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/323,110 mailed Nov. 26, 2008, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/322,509, mailed Jan. 14, 2009, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/324,125, mailed Jan. 23, 2009, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/322,511, mailed Jan. 22, 2009, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/322,608, mailed Feb. 13, 2009, whole document. |
Final Office Action for U.S. Appl. No. 11/322,701, mailed Sep. 2, 2008, whole document. |
Non-Final Office Action for U.S. Appl. No. 11/322,969, mailed Apr. 1, 2009, whole document. |
BIS Techdev, “J2EEEngineBoostrap J2EE Engine Bootstrap”, printed on Sep. 26, 2005, https://bis.wdf.sap.corp/twiki/bin/view/Techdev/J2EEEngineBootstrap, pp. 1-15. |
Accomazzi, Alberto, et al., “Mirroring the Ads Bibliographic Databases”, Astronomical Analysis Software and Systems VII, ASP Conference Series, vol. 145, (1998), 395-399. |
Bartell, Randy L., et al., “The Mediaxact System—A Framework for Personalized Electronic Commerce Systems”, Bell Labs Technical Journal, vol. 4, Issues 153-173, (Apr.-Jun. 1999). |
Cutler, Ellie, “Sco Unix in a Nutsell”, O'Reilly & Associates, Inc., Cambridge, MA, (Jan. 1994), 154-158. |
Duquette, William H., et al., “Data Definition and Code Generation in TCL”, RIDE-VE '99, Sydney, Australia, (Mar. 23-24, 1999), pp. 1-10. |
Feiler, Peter H., “Software Process Support Through Software Configuration Management”, 1990, IEEE, pp. 58-60. |
Fernandez, Mary, et al., “Silkroute: Trading Between Relations and XML”, Computer Networks, vol. 33, Issues 1-6, (Jun. 2000), 723-745. |
Hatley, John W., “Automatically Generating Procedure Code and Database Maintenance Scripts”, Ingres World, Chicago, IL, (Oct. 2-6, 1994), pp. 1-11. |
Microsoft Press, “Microsoft Computer Dictionary”, 4th Edition, Redmond, WA, (1999), pp. 123 and 183. |
Schlee, Max, et al., “Generative Programming of Graphical User Interfaces”, 2004, ACM, pp. 403-406. |
U.S. Appl. No. 11/322,400, Non Final Office Action mailed May 23, 2008, 9 pgs. |
U.S. Appl. No. 11/322,400, Notice of Allowance mailed May 18, 2009, 7 pgs. |
U.S. Appl. No. 11/322,401, Advisory Action mailed Feb. 26, 2009, 5 pgs. |
U.S. Appl. No. 11/322,401, Final Office Action mailed Nov. 19, 2008, 7 pgs. |
U.S. Appl. No. 11/322,401, Non Final Office Action mailed May 21, 2009, 10 pgs. |
U.S. Appl. No. 11/322,401, Non Final Office Action mailed May 22, 2008, 7 pgs. |
U.S. Appl. No. 11/322,401, Notice of Allowance mailed Dec. 31, 2009, 4 Pgs. |
U.S. Appl. No. 11/322,401, Preliminary Amendment filed Mar. 16, 2009, 11 pgs. |
U.S. Appl. No. 11/322,401, Response filed Feb. 19, 2009 to Final Office Action mailed Nov. 19, 2008, 7 pgs. |
U.S. Appl. No. 11/322,401, Response filed Aug. 22, 2008 to Non Final Office Action mailed May 22, 2008, 17 pgs. |
U.S. Appl. No. 11/322,401, Response filed Sep. 16, 2009 to Non Final Office Action mailed May 21, 2009, 10 pgs. |
U.S. Appl. No. 11/322,607, Non Final Office Action Jun. 26, 2008, 15 pgs. |
U.S. Appl. No. 11/322,607, Non Final Office Action mailed Jan. 8, 2008, 10 pgs. |
U.S. Appl. No. 11/322,608, Final Office Action mailed Jul. 8, 2009, 9 pgs. |
U.S. Appl. No. 11/322,701, Final Office Action mailed Sep. 2, 2008, 16 pgs. |
U.S. Appl. No. 11/322,701, Non-Final Office Action mailed Jul. 6, 2009, 15 pgs. |
U.S. Appl. No. 11/322,969, Non-Final Office Action mailed Apr. 1, 2009, 11 pgs. |
U.S. Appl. No. 11/322,969, Response filed Jun. 9, 2009 to Non Final Office Action mailed Apr. 1, 2009, 11 pgs. |
U.S. Appl. No. 11/323,110 , Notice of Allowance mailed Oct. 10, 2009, 6 pgs. |
U.S. Appl. No. 11/323,110, Non Final Office Action mailed Nov. 26, 2008, 10 pgs. |
U.S. Appl. No. 11/323,110, Notice of Allowance mailed May 29, 2009, 9 pgs. |
U.S. Appl. No. 11/323,110, Response filed Feb. 25, 2009 to Non Final Office Action mailed Nov. 26, 2008, 9 pgs. |
U.S. Appl. No. 11/323,110, Response filed Oct. 27, 2008 to Restriction Requirement mailed Aug. 27, 2008, 10 pgs. |
U.S. Appl. No. 11/323,110, Restriction Requirement mailed Aug. 27, 2008, 7 pgs. |
International Application Serial No. PCT/EP2006/012356, International Search Report and Written Opinion mailed Mar. 29, 2007, 8 pgs. |
Feller, Peter H., “Software Process Support Through Software Configuration Management”, IEEE, (1990), 58-60. |
Hall, et al., “Design: A Generic Configuration Shell, Proc of the 3rd International Conf. on industrial and engineering applications of artificial intelligence and expert systems”, vol. 1, Charleston, SC 1990, 500-508 pgs. |
Karlsson, et al., “Method Configuration: Adapting to situational characteristics while creating reusable assets”, Information and software technology, vol. 46, Issue 9, (Jul. 1, 2004), 619-633 pgs. |
Leffler, et al., “Building Berkeley UNIX Kernels with Config”, Computer Systems research Group, (Apr. 17, 1991), 2-1 and 2-31 pgs. |
Robbins, et al., “Unix in a nutshell”, 3rd edition, O'Reily & Associates, Inc, (Aug. 1999), 215-221 and 265-266 pgs. |
Schwanke, et al., “Configuration Management in BiiN SMS”, Proc. of the 11th International Conf. on software engineering Pittsburgh, (383-393 pgs), 1989. |
Symantec, Corp., “Norton Ghost™ User's Guide”, Norton Ghost™ User's Guide—Symantec. Norton Ghost The fast pc cloning solution., (1999), 138 pgs. |
Williams, et al., “Embedded Linux as a platform for dynamically self-reconfiguration systems-On-Chip”, (21-24 pgs), 163-169 pgs. |
U.S. Appl. No. 11/322,401, Ex-Parte Reexamination Office Action Mailed Mar. 30, 2010, 9 pgs. |
Number | Date | Country | |
---|---|---|---|
20070156432 A1 | Jul 2007 | US |