Unlted States Patent (10) Patent No.: US 8,423,989 B2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

US008423989B2

(12) Unlted States Patent


Fedok et a].
(54)
(75)

(10) Patent No.:


(45) Date of Patent:
7,305,395 B1 *
7,457,926 B2 *
>I<
*

US 8,423,989 B2
Apr. 16, 2013

SOFTWARE PARAMETER MANAGEMENT


Inventors: Eric Fedok, Catasauqua, PA (US); Jay

12/2007 Umamageswaran et a1. ....... .. 1/1


11/2008 Shen et a1. .................. .. 711/156
gem '''''''''''''' '''''''''" l/l

rown et a1.

..

..

345/541

C0150,BeIh1ehem,PA0J$);Dn
Deasey, Easton, PA (US)

2002/0133504 Al*
2003/0105838 A1*

9/2002 Vlahos et a1. ..


6/2003 Presley ..........

707/104.1
. . . . . .. 709/220

2003/0204525 A1*

10/2003 Toume et a1. ..

707/103 R

(73) Assignee; synchonoss Technologiesalncu


Bridgewater NJ (Us)

_ _ _ _ _

2004/0205307 Al* 10/2004 Pullen etal.


2005/0091651 A1*
2005/0144267 A1*
2005/0268038 A1*

711/158
717/168
709/223
711/118

4/2005 Curtls et a1.


6/2005
12/2005

Maron ...... ..
Yasue ....... ..

(*)

Not1ce:

Subject to any disclaimer, the term of th1s


patent is extended or adjusted under 35

2006/0020689 A1*
2007/0050548 A1*

1/2006 Roman et a1
3/2007 Bali et a1

709/220
..... .. 711/118

U_S_C_ 154(1)) by 1005 days_


_

2007/0140460 Al*
2007/0226715 A1*
2008/0027948 A1*

6/2007 Cai et a1
9/2007
1/2008

.. 379/21801
..... .. 717/148
. . . .. 707/10 ......

Kimura et a1. .
Corley et a1.

(21)

APPLNO" 12/114153
_

2008/0147675 Al*
2008/0147974 A1*

6/2008 Engehausen et a1. ..


6/2008 Madison et a1. ..... ..

707/10
711/118

(22)
(65)

Flledl

May 2, 2008
Prior Publication Data

2009/0125228 Al*
2009/0182941 A1*

5/2009 Dicke etal.


7/2009

701/201

Turk ........................... .. 711/118

* cited by exam1ner

US 2009/0276768 A1
(51) Int. Cl.

Nov. 5, 2009
Primary Examiner * Lewis A Bullock, Jr. Assistant Examiner * Francisco Aponte

G06F 9/44

(2006-01)
717/168

(74) Attorney, Agent, or Firm * Kaplan Breyer SchwarZ &

(52)
(58)

US. Cl.
USPC ........................................................ ..

Ottesen, LLP
(57) ABSTRACT

Field of Classi?cation Search ........ .. 7l7/l0lil78;

701/201; 707/600 607; 711/118119 133


_ _ 711/158 220; 799/220 226

A method and apparatus is disclosed for allowing the updat


ing and overriding of software parameters used by one or

(56)

See apphcanon ?le for Complete Search hlstory References Cited


U.S. PATENT DOCUMENTS
6,006,034 A * 6,061,693 A *
6,487,547 B1 * 6,615,253 B1*

more software programs. The parameters are preferably in cache. When the system needs any such parameter, it ?rst checks cache, then a preferably remotely located database,
and then, preferably a ?at ?le on the same computer as the

cache. The checking is done in the foregoing order, and the


.. 707/600 .... .. 709/219

12/1999 5/2000
11/2002 9/2003

Heath et a1. ................. .. 717/170 Carneyetal. ........ .. 1/1


Ellison et a1. ...... .. Bowman-Amuah .

parameter is used upon locating a current Version of it. If the current Version is obtained from anywhere other than the

cache, it is put into cache.

6,651,142 B1* 11/2003 Gorelik et a1.


6,901,483 B2 * 5/2005

711/119

Robinson et a1. ........... .. 711/133

14 Claims, 2 Drawing Sheets

102

l l I
I

I
I

I
I I

I
I 2. if not in cache, check
daiabasa

I I DATABASE SERVER II
1

3, if data exists in database, share in cache


103

APPLICATION SERVER I
I

4. If no data found yet, check Vile


110 I
I 5. if data exists In ?le. I

g
|

: Application:

I I | I I | I
1
I

store In cache

6. reiurn retrieved data

I I

l I I
I

Rlirim vaius ic/ /

105

IppIImAInn

I I
I

US. Patent

Apr. 16, 2013

Sheet 1 012

US 8,423,989 B2

FIG. 1
I" n _ m H w _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

/\_r 108
_ _ _ _ _ _ _ _ "" _ I

' '

| |

I
l

102
A

:
I

'

V/

I I
lI

f: g
\j

| i
Is

: 2. if not in cache, check


|
database

I
DATABASE SERVER I

APPLICATION SERVER |

3. If data exists m

database, store in
cache
103
_ _ _ _ _ _ _ _ _ _ _ _

104
4. if no data found yet,

VF
l |n~
memory I
I

r
: Flat?la

I
: 1 10

check file
4 5. if data exists in ?le, I 5

I: ApplicationlI

Itcache

store in cache

1. check cache
I

6. return retrieved data

1O5
Retrieve value for /

application

I I | l I | I I I l I I i l I I l | l I I

US. Patent

Apr. 16, 2013

Sheet 2 of2

US 8,423,989 B2

FIG. 2

209 DB Server

108 DB Server

104 107

103 AS

205

206

207

US 8,423,989 B2
1
SOFTWARE PARAMETER MANAGEMENT TECHNICAL FIELD

2
In view of the foregoing competing requirements, there
exists a need in the art to optimiZe software concurrently both in terms of its ?exibility to permit alterations of parameters without taking the system out of service for an extended

This invention relates to computer software, and more spe ci?cally, to an improved method for managing one or more parameters that may be used by one or more software appli

length of time, and also to provide type intertwining of the


parameters needed with the actual software, in order to maxi miZe speed at minimiZe response time. To date, there exists no

cations.
BACKGROUND OF THE INVENTION

known method of properly balancing these requirements.


BRIEF DESCRIPTION OF THE DRAWINGS

Software applications are ubiquitous in modern business. Such software applications are often designed to be ?exible
so that business users may customiZe them to their own par

FIG. 1 shows a conceptual diagram of an exemplary embodiment of the present invention, along with an exem

plary set of steps for implementing one sample methodology


in accordance with the invention; and FIG. 2 depicts the components of the present invention in a network environment.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

ticular needs.

Often, the speci?c customiZation required varies through


out an organization, and may vary over time even within one

organiZation as the organiZation uses the software. For


example, software may be installed to provide one or more
20

report formats, but a business entity may decide that other


formats are needed after some time. Error messages can be

?xed at the time of software installation, but as the organiZa tion discovers other potential error conditions, the need may arise to be able to easily alter the error conditions. Generally, software applications may require one or more parameters than they need to be altered. The manner, frequency, and speci?cs of how the software will need to be altered and customiZed is often unknown at the time of installation.

FIG. 1 depicts a conceptual diagram with an exemplary embodiment of the present invention. The arrangement of FIG. 1 includes a computer system 100 that comprises at least
25

an application server 107 and database server 108. Not shown in FIG. 1 are optional local client PCs or terminals which may
connect with the application server to execute one or more

applications. It is noted that the arrangement in FIG. 1 also does not show a variety of other computers and terminals that
30

Many times it is required to take the software application


out of service in order to update these parameters. In situa tions where the parameters are hard coded into the software, this requirement mandates that the application be taken out of
service. Moreover, if the software is running on a server with other applications, or is otherwise intertwined with such other

may be connected to the database server 108.

The arrangement of FIG. 1 is exemplary only, and is not intended to limit the nearly in?nite variety of computer net
works that may be con?gured to implement the same func tionality. Each of the database server and application server
35

may be distributed among plural computers. Moreover, the


application and database server may be implemented on the
same or different computers.

applications, they may have to be taken off line also. For mission critical software, this presents a problem for an orga niZation. Even when parameters used by the software application are
not hard coded, if such parameters are placed in a ?at ?le on an application server where the software application is run
40

In operation, an exemplary application represented by


block 110 executes on the application server 107. When the

application requires a particular parameter, the application


?rst checks cache memory 103 if the parameter is found in cache memory 1 03, and if the cache is deemed current enough

ning, the software application may still need to be taken out of service in order to update the parameters. Adding to the problem is that there is always a need to maximiZe the speed at which such software applications execute. This is particularly true in a multiuser environment,
where many users are accessing a single application server. In

to be useful, the application 110 simply utiliZes the parameter


from cache.
45

Whether or not a parameter in cache is deemed current

enough may vary by parameter. Speci?cally, the system designed and typically knows in advance approximately how
often the cache memory should be updated with a new value. The value that is to replace the cache value comes from
50

such an environment, in order to maximiZe the speed and thus minimize response time of the software application, it is bene?cial to have the needed parameters either hard coded
into the software or stored locally on a ?at ?le in the comput ers memory. This allows the fastest access to such param

another source, for example, database 102. Thus, if the


desired parameter is either not found in cache memory 103, or

the application determines that, although the parameter is


55

eters, and thus, most e?icient execution of the software. How ever, intertwining these parameters so closely with the actual

application also operates against the idea of providing ?ex


ibility so that such parameters can be altered as needed with

found in cache memory 103, it has timed out, the next step described below is executed. If either the parameter has timed out in cache, or if it is not
present at all in cache, then an additional source such as

out taking the system out of service.

Thus, the need to provide ?exibility operates against the


requirement that the parameters be available as quickly as possible to the software application. Speci?cally, the more intertwined the parameters needed by the software are with the actual software code (e.g., hard coded), the more di?icult it is to alter the parameters without taking down the system,
60

database 102 (or other ?le) is checked for a current version of the necessary parameter. Database 102 is preferably, but not necessarily, a database and is also preferably implemented on
a separate database server as shown in FIG. 1. By implement
ing database 102 on a separate server 108, new data can be

populated into the database without taking down the system,


and this data will ?nd its way into the cache as a result of the

and thus, the less ?exible the software system is. Generally
however, the less intertwined the parameters are with the software application, the more easily they can be altered as needed.
65

methodology described herein. Moreover, if the database is


not operable, the system can simply move to the next step shown in FIG. 1, just the same as if it did not ?nd the data in database 102.

US 8,423,989 B2
3
If the required parameter is located in database 102, it is Written to cache memory 103 and also utilized by application 1 10. However, if the parameter is not found in database 102, the ?at ?le 104 is then checked, and the data presumably located. In all events, hoWever, the value of the parameter is
retrieved at block 105 and placed into cache memory 103 for subsequent use. FIG. 2 depicts and additional embodiment of the present invention in Which the application server includes plural ter minals 205-207, and tWo database servers 209 and 108. In such a case, a parameter in cache memory may also specify, in
the cache, Which of the database servers the 209 or 108 to use

4
it is desired to permit even faster access by placing the param eter in ?at ?le 104, at least tWo methodologies can be utiliZed. First, the ?at ?led can be updated With the neW value at a time When the application is not used, or at least less critical (e. g.; overnight). Alternatively, the softWare itself can be pro grammed, and the parameter in database 102 tagged, so that the softWare itself is instructed to place the neW parameter into the ?at ?le after it is ?rst read into cache from the database 102. The system may also keep track of the number of times a parameter is replaced With information from the database. In this manner, if a parameter Was designated by the developer for the ?at ?le, but the system detects that it is changing too often, it can alert the developer to reallocate such parameter to the database ?le 102. While the above describes the preferred embodiment of the present invention, various other modi?cations can be imple

for the updated parameter. In this manner, if the needed parameter is not in the cache at all, the next step Would be to
check the database servers 108 and/or 109. These tWo servers

may represent one live and one backup, or, they may represent multiple servers for storing a large amount of data, such that the database is implemented betWeen the tWo of them. Alternatively, if the parameter is in cache 103 but has time out, the cache version could include a pointer to the speci?c database server to check, thereby eliminating the need to check plural servers.

mented Without departing the spirit and scope of the inven


20

tion. What is claimed:

1. A method comprising:
executing a softWare application on an application server,

Preferably, the system designer Will ascertain in advance Which of numerous softWare parameters change often enough
to use the database or other ?le 102, and Which do not change
25

Wherein the application softWare comprises a sequence of steps;

automatically monitoring the frequency of changes made


to a set of predetermined parameters needed by the soft Ware application, Wherein if a ?rst predetermined parameter is updated at a frequency loWer than a prede

so frequently. Thus, for parameters like passWords, for


example, Which users tend to maintain long term, the ?at ?le
or hard coding can be used. For parameters such as a customer balance in an account, the database server 108 and database 102 can be used as the source of these. Thus, all parameters

termined frequency threshold, the application server


30

recommends to store said ?rst predetermined parameter


in a ?at ?le on said application server, otherWise the

Will gradually be moved into cache as the softWare applica tion(s) that need them are run on the application server 107,

and the cache Will by kept up to date using the timeout


features described above. In one embodiment, all parameters that may be used by the softWare application and Which vary are divided into groups in advance of use. Parameters expected to be updated more
35

application server advises to store said ?rst predeter mined parameter in a database of the application server;

in response of the recommendation, overriding, by the developer, the designation of storage of said ?rst prede
termined parameter from the ?at ?le, to storage in the

database;
When a step in the sequence of steps is executed and

frequently than the predetermined threshold are placed into the database 102, Whereas, parameters expected to be updated less frequently than the predetermined threshold are placed
into the ?at ?le. In this manner, once the application(s) are up

requires said ?rst predetermined parameter from said set


40

of predetermined parameters, obtaining said ?rst prede termined parameter by performing the operations of:
checking a cache on said application server for a valid

and running, the parameters gradually migrate into cache, and


the ones that need to be updated more frequently than the the

threshold can be changed While the softWare applications using them are live. Notably, parameters in the ?at ?le 104 can also be put into
the database ?le 102. Such a situation Will arise When a

value associated With said ?rst predetermined param eter Without taking said softWare application out of
45

service;
if said valid value of said ?rst predetermined parameter

is in said cache, obtaining said ?rst predetermined


50

parameter Was previously selected for the ?at ?le, but the developer Wishes to override the value. Rather than have to take the application out of service to update the ?at ?le, the parameter can just be put into the database 102. Due to the
order in Which the sources for the parameter are checked, as

described above, the system Will continue to operate, but the database ?le Will trump the ?at ?le because it is checked ?rst.
The above technique can also be used to alloW a parameter
55

parameter from said cache, Wherein said valid value is deemed present and valid in said cache if said ?rst predetermined parameter is located in cache and if an expiration time associated With said ?rst predeter mined parameter has not lapsed; if said ?rst predetermined parameter is not contained in
said cache, checking said database on a database server for said ?rst predetermined parameter Without

in the ?at ?le, and Which can thus be accessed very quickly by the softWare application, to be altered Without having to take

taking said softWare application out of service,


Wherein the application server and the database server
are different servers;

doWn a softWare application using those parameters. Speci?


cally, consider the case Where the desired parameter is one that does not vary all that often, so it is placed in ?at ?le 104. If a time comes that such a parameter must be changed, the
60

if said ?rst predetermined parameter exists in said data

base, moving said ?rst predetermined parameter from


the database into said cache on said application
server; and

system can then change it by placing the parameter in data base 102, even though it is not normally kept there.
Due to the order in Which the softWare application checks for sources of the parameter (described above), the softWare application Will continue operating, hoWever, it Will do so using the neW value of the parameter in database 102. Then, if
65

if said ?rst predetermined parameter does not exist in

said database, obtaining said ?rst predetermined


parameter from said ?at ?le on said application server,

and moving said ?rst predetermined parameter from


said ?at ?le into said cache; and

US 8,423,989 B2
5
using said ?rst predetermined parameter in said step regardless of Where said ?rst predetermined parameter
Was obtained Wherein updated values of the predeter mined parameter are used in lieu of the original values. 2. The method of claim 1, Wherein the expiration time associated With said ?rst predetermined parameter is different from the expiration time associated With at least one other of
01
server.

6
frequency level; and relocating said identi?ed param
eters from said ?at ?le to said remote ?le in said database

5. A method comprising:
executing a softWare application on an application server,

Wherein the application softWare comprises a sequence of steps;

said predetermined parameters.


3. A method comprising:
executing a software application on an application server,

automatically monitoring the frequency of changes made


to a set of predetermined parameters needed by the soft Ware application, Wherein if a ?rst predetermined parameter is updated at a frequency loWer than a prede

Wherein the application softWare comprises a sequence of steps;

termined frequency threshold, the application server


recommends to store said ?rst predetermined parameter
in a third memory source on said application server,

automatically monitoring the frequency of changes made


to a set of predetermined parameters needed by the soft Ware application, Wherein if a ?rst predetermined parameter is updated at a frequency loWer than a prede

otherWise the application server advises to store said

termined frequency threshold, the application server


recommends to store said ?rst predetermined parameter
in a ?at ?le on said application server, otherWise the application server advises to store said ?rst predeter
20

?rst predetermined parameter in a second memory source of the application server;

in response of the recommendation, overriding, by the developer, the designation of storage of said ?rst prede
termined parameter from the third memory source, to storage in the second memory source; When a step in the sequence of steps is executed and

mined parameter in a database of the application server;

storing said ?rst predetermined parameter in said ?at ?le of


said application server based on said recommendation;

requires said ?rst predetermined parameter from said set


25

creating an update value for said ?rst predetermined parameter of said set of predetermined parameters; stor ing said update value for said ?rst predetermined param
eter in said database of the application server; When a step in the sequence of steps is executed and

of predetermined parameters, obtaining said ?rst prede termined parameter by performing the operations of:
checking a ?rst memory source on said application server for a valid value associated With said ?rst pre

requires said ?rst predetermined parameter from said set

30

of predetermined parameters, obtaining said ?rst prede termined parameter by performing the operations of:
checking a cache on said application server for a valid

determined parameter Without taking said softWare application out of service; if said valid value of said ?rst predetermined parameter is in said ?rst memory source, obtaining said ?rst predetermined parameter from said ?rst memory
source, Wherein said valid value is deemed present and valid in said cache if said ?rst predetermined
parameter is located in ?rst memory source and if an

value associated With said ?rst predetermined param eter Without taking said softWare application out of

35

service;
if said valid value of said ?rst predetermined parameter

is in said cache, obtaining said ?rst predetermined


parameter from said cache, Wherein said valid value is deemed present and valid in said cache if said ?rst predetermined parameter is located in cache and if an expiration time associated With said ?rst predeter mined parameter has not lapsed; if said ?rst predetermined parameter is not contained in
said cache, checking said database on a database server for said ?rst predetermined parameter Without
40

expiration time associated With said ?rst predeter mined parameter has not lapsed; if said ?rst predetermined parameter is not contained in said ?rst memory source, checking said second
memory source on a database server for said ?rst

predetermined parameter Without taking said soft


Ware application out of service, Wherein the applica
45

tion server and the second memory source are differ ent servers;

if said ?rst predetermined parameter exists in said sec

ond memory source, moving said ?rst predetermined


parameter from the second memory source into said ?rst memory source on said application server; and
50

taking said softWare application out of service,


Wherein the application server and the database server
are different servers;

if said ?rst predetermined parameter exists in said data

if said ?rst predetermined parameter does not exist in said second memory source, obtaining said ?rst pre
determined parameter from said third memory source on said application server, and moving said ?rst pre determined parameter from said third memory source into said ?rst memory source; and

base, moving said ?rst predetermined parameter from


the database into said cache on said application
server; and

if said ?rst predetermined parameter does not exist in

55

said database, obtaining said ?rst predetermined


parameter from said ?at ?le on said application server,

and moving said ?rst predetermined parameter from


said ?at ?le into said cache; and

using said ?rst predetermined parameter in said step regardless of Where said ?rst predetermined parameter Was obtained; Wherein updated values of the predeter
60

using said ?rst predetermined parameter in said step regardless of Where said ?rst predetermined parameter Was obtained; Wherein updated values of the predeter
mined parameter are used in lieu of the original values. 4. The method of claim 3, further comprising: identifying one or more parameters con?gured for storage
on said ?at ?le and stored on said ?at ?le that are being

mined parameter are used in lieu of the original values. 6. The method of claim 5, Wherein the expiration time associated With said ?rst predetermined parameter is different
from the expiration time associated With at least one other of

said predetermined parameters.


7. A method comprising:
65

executing a softWare application on an application server,

updated at a frequency that exceeds an expected update

Wherein the application softWare comprises a sequence of steps;

US 8,423,989 B2
7
automatically monitoring the frequency of changes made
to a set of predetermined parameters needed by the soft Ware application, Wherein if a ?rst predetermined parameter is updated at a frequency loWer than a prede

8
parameter is updated at a frequency loWer than a prede

termined frequency threshold, the application server


recommends to store said ?rst predetermined parameter
in a ?at ?le on said application server, otherWise the application server advises to store said ?rst predeter

termined frequency threshold, the application server


recommends to store said ?rst predetermined parameter
in a third memory source on said application server,

mined parameter in a database of the application server;

otherWise the application server advises to store said

in response of the recommendation, overriding, by the developer, the designation of storage of said ?rst prede
termined parameter from the ?at ?le, to storage in the

?rst predetermined parameter in a second memory source of the application server;

database;
When a step in the sequence of steps is executed and

storing said ?rst predetermined parameter in said third


memory source of said application server based on said

requires said ?rst predetermined parameter from said set

recommendation;
creating an update value for said ?rst predetermined parameter of said set of predetermined parameters; stor ing said update value for said ?rst predetermined param
eter in said second memory source of the application
server;

of predetermined parameters, obtaining said ?rst prede termined parameter by performing the operations of:
checking a cache on said application server for a valid

value associated With said ?rst predetermined param eter Without taking said softWare application out of

service;
if said valid value of said ?rst predetermined parameter
20

When a step in the sequence of steps is executed and

requires said ?rst predetermined parameter from said set

is in said cache, obtaining said ?rst predetermined


parameter from said cache, Wherein said valid value is deemed present and valid in said cache if said ?rst predetermined parameter is located in cache and if an expiration time associated With said ?rst predeter mined parameter has not lapsed; if said ?rst predetermined parameter is not contained in
said cache, checking said database on a database server for said ?rst predetermined parameter Without

of predetermined parameters, obtaining said ?rst prede termined parameter by performing the operations of:
checking a ?rst memory source on said application server for a valid value associated With said ?rst pre

determined parameter Without taking said softWare application out of service; if said valid value of said ?rst predetermined parameter
is in said ?rst memory source, obtaining said ?rst

25

predetermined parameter from said ?rst memory


source, Wherein said valid value is deemed present and valid in said cache if said ?rst predetermined parameter is located in ?rst memory source and if an
30

taking said softWare application out of service,


Wherein the application server and the database server
are different servers;

expiration time associated With said ?rst predeter mined parameter has not lapsed; if said ?rst predetermined parameter is not contained in said ?rst memory source, checking said second
memory source on a database server for said ?rst

if said ?rst predetermined parameter exists in said data base, moving said ?rst predetermined parameter from
the database into said cache on said application
35

server; and

if said ?rst predetermined parameter does not exist in

said database, obtaining said ?rst predetermined


parameter from said ?at ?le on said application server,

predetermined parameter Without taking said soft


Ware application out of service, Wherein the applica
tion server and the second memory source are differ ent servers;
40

and moving said ?rst predetermined parameter from


said ?at ?le into said cache; and

if said ?rst predetermined parameter exists in said sec

ond memory source, moving said ?rst predetermined


parameter from the second memory source into said ?rst memory source on said application server; and
45

using said ?rst predetermined parameter in said step regardless of Where said ?rst predetermined parameter Was obtained; Wherein updated values of the predeter
mined parameter are used in lieu of the original values. 10. The system of claim 9, Wherein the expiration time associated With said ?rst predetermined parameter is different
from the expiration time associated With at least one other of

if said ?rst predetermined parameter does not exist in said second memory source, obtaining said ?rst pre
determined parameter from said third memory source on said application server, and moving said ?rst pre determined parameter from said third memory source into said ?rst memory source; and

said predetermined parameters.


50

11. A system comprising a processor executing instruc tions to perform the functions of:

automatically monitoring the frequency of changes made


to a set of predetermined parameters needed by the soft Ware application, Wherein if a ?rst predetermined parameter is updated at a frequency loWer than a prede
55

using said ?rst predetermined parameter in said step regardless of Where said ?rst predetermined parameter Was obtained; Wherein updated values of the predeter
mined parameter are used in lieu of the original values. 8. The method of claim 7, further comprising:
identifying one or more parameters con?gured for storage on said ?at ?le and stored on said ?at ?le that are being

termined frequency threshold, the application server


recommends to store said ?rst predetermined parameter
in a ?at ?le on said application server, otherWise the application server advises to store said ?rst predeter

updated at a frequency that exceeds an expected update

mined parameter in a database of the application server;


60

frequency level; and relocating said identi?ed param


eters from said ?at ?le to said remote ?le in said database
server.

storing said ?rst predetermined parameter in said ?at ?le of


said application server based on said recommendation;

9. A system comprising a processor executing instructions to perform the functions of:

creating an update value for said ?rst predetermined parameter of said set of predetermined parameters; stor ing said update value for said ?rst predetermined param
65

automatically monitoring the frequency of changes made


to a set of predetermined parameters needed by the soft Ware application, Wherein if a ?rst predetermined

eter in said database of the application server; When a step in the sequence of steps is executed and

requires said ?rst predetermined parameter from said set

US 8,423,989 B2
10
of predetermined parameters, obtaining said ?rst prede termined parameter by performing the operations of:
checking a cache on said application server for a valid

?rst predetermined parameter in a second memory source of the application server;

value associated With said ?rst predetermined param eter Without taking said softWare application out of

in response of the recommendation, overriding, by the developer, the designation of storage of said ?rst prede
termined parameter from the third memory source, to storage in the second memory source; When a step in the sequence of steps is executed and

service;
if said valid value of said ?rst predetermined parameter

is in said cache, obtaining said ?rst predetermined


parameter from said cache, Wherein said valid value is deemed present and valid in said cache if said ?rst predetermined parameter is located in cache and if an expiration time associated With said ?rst predeter mined parameter has not lapsed; if said ?rst predetermined parameter is not contained in
said cache, checking said database on a database server for said ?rst predetermined parameter Without

requires said ?rst predetermined parameter from said set

of predetermined parameters, obtaining said ?rst prede termined parameter by performing the operations of:
checking a ?rst memory source on said application server for a valid value associated With said ?rst pre

determined parameter Without taking said softWare application out of service; if said valid value of said ?rst predetermined parameter
is in said ?rst memory source, obtaining said ?rst predetermined parameter from said ?rst memory
20

taking said softWare application out of service,


Wherein the application server and the database server
are different servers;

if said ?rst predetermined parameter exists in said data

source, Wherein said valid value is deemed present and valid in said cache if said ?rst predetermined
parameter is located in ?rst memory source and if an

base, moving said ?rst predetermined parameter from


the database into said cache on said application
server; and

if said ?rst predetermined parameter does not exist in

said database, obtaining said ?rst predetermined


parameter from said ?at ?le on said application server,

25

expiration time associated With said ?rst predeter mined parameter has not lapsed; if said ?rst predetermined parameter is not contained in said ?rst memory source, checking said second
memory source on a database server for said ?rst

and moving said ?rst predetermined parameter from


said ?at ?le into said cache; and

predetermined parameter Without taking said soft


Ware application out of service, Wherein the applica
tion server and the second memory source are differ ent servers;

using said ?rst predetermined parameter in said step regardless of Where said ?rst predetermined parameter Was obtained; Wherein updated values of the predeter
mined parameter are used in lieu of the original values. 12. The system of claim 11, further comprising:
identifying one or more parameters con?gured for storage on said ?at ?le and stored on said ?at ?le that are being

if said ?rst predetermined parameter exists in said sec

ond memory source, moving said ?rst predetermined


parameter from the second memory source into said ?rst memory source on said application server; and

updated at a frequency that exceeds an expected update

if said ?rst predetermined parameter does not exist in said second memory source, obtaining said ?rst pre
determined parameter from a said third memory source on said application server, and moving said

frequency level; and relocating said identi?ed param


eters from said ?at ?le to said remote ?le in said database
server.

?rst predetermined parameter from said third memory


source into said ?rst memory source; and

13. A system comprising a processor executing instruc tions to perform the functions of:

automatically monitoring the frequency of changes made


to a set of predetermined parameters needed by the soft Ware application, Wherein if a ?rst predetermined parameter is updated at a frequency loWer than a prede- 45

using said ?rst predetermined parameter in said step regardless of Where said ?rst predetermined parameter Was obtained; Wherein updated values of the predeter
mined parameter are used in lieu of the original values. 14. The system of claim 13, Wherein the expiration time associated With said ?rst predetermined parameter is different
from the expiration time associated With at least one other of

termined frequency threshold, the application server


recommends to store said ?rst predetermined parameter
in a third memory source on said application server,

said predetermined parameters.


* * * * *

otherWise the application server advises to store said

UNITED STATES PATENT AND TRADEMARK OFFICE

CERTIFICATE OF CORRECTION
PATENT NO.
APPLICATION NO.

2 8,423,989 B2
: 12/114153

Page 1 Ofl

DATED INVENTOR(S)

: April 16, 2013 : Eric Fodok, Jay Colson and Don Deasey

It is certified that error appears in the above-identi?ed patent and that said Letters Patent is hereby corrected as shown below:

On the Title page of the patent, to the right of identi?cation item (73) (the assignee), the Word
Synchonoss should be changed to -- Synchronoss --.

Signed and Sealed this

Twenty-fourth Day of September, 2013


M

QZT/EL)
Teresa Stanek Rea

Deputy Director afthe United States Patent and Trademark O?ice

You might also like