throbber
(12) United States Patent
`Pinera et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,171,661 B1
`Jan. 30, 2007
`
`US007 171661B1
`
`(54) REALTIME CONFIGURATION UPDATES
`AND SOFTWARE DISTRIBUTION TO
`ACTIVE CLIENT POSITIONS
`(75) Inventors: Carlos V. Pinera, Boca Raton, FL
`(US); Paul G. Ringhof, Boca Raton,
`FL (US); Jeff Slutzky, Lake Worth, FL
`(US)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 311 days.
`
`(21) Appl. No.: 09/691.968
`y x- - -
`9
`Oct. 19, 2000
`
`(22) Filed:
`(51) Int. Cl.
`(2006.01)
`G06F 9/44
`(2006.01)
`G06F 5/16
`(52) U.S. Cl. ....................... 717/172; 709/202; 709/203
`(58) Field of Classification Search ................ 717/172,
`717/171, 173, 176 178; 709/203, 217, 219
`See application file for complete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`
`(56)
`
`5/1998 Cole et al. .................. 717/173
`5,752,042 A *
`5,920,725 A * 7/1999 Ma et al. .................... 717/171
`5,960.204 A * 9/1999 Yinger et al. ............... 717/176
`6,029, 196 A
`2/2000 Lenz .......................... TO9,221
`6,074,434. A
`6/2000 Cole et al. .................. 717/173
`6,123,737 A
`9/2000 Sadowsky ...
`... T17.11
`6,151,643 A * 1 1/2000 Cheng et al. ...
`... 710,36
`6,167,567 A * 12/2000 Chiles et al. ............... 717/173
`6,202,207 B1
`3/2001 Donohue .................... 717/173
`
`6,301.710 B1* 10/2001 Fujiwara ..................... 717/175
`6,314,088 B1 * 1 1/2001 Yamano ....
`... 370,254
`6,408,434 B1* 6/2002 Fujiwara ..................... 717/170
`FOREIGN PATENT DOCUMENTS
`0809183
`11, 1997
`O969359
`1, 2000
`04-175952
`6, 1992
`08-095760
`4f1996
`OTHER PUBLICATIONS
`
`EP
`EP
`JP
`JP
`
`“JNDI Java Naming & Directory InterfaceTM,” Jan. 1998, JavaSoft,
`pp. 1-2.*
`V. Ryan, et al., “Schema for Representing JavaTM Objects in an
`LDAP Directory.” Oct. 1999, Sun Microsystems, Inc., RFC 2713,
`pp. 1-21.*
`Andrew S. Tanenbaum, “Computer Networks.” 1996, Prentice Hall
`PTR, 3 ed., pp. iii., iv. 36-37, 542.*
`* cited by examiner
`Primary Examiner Tuan Dam
`Assistant Examiner Eric B. Kiss
`(74) Attorney, Agent, or Firm—Akerman Senterfitt
`
`ABSTRACT
`(57)
`A system for updating active client positions can include a
`platform for managing active application components; a
`configuration server for storing updates; and, a configuration
`client for receiving updates from the configuration server
`and communicating the received updates to the platform.
`The platform can receive the updates from the configuration
`client. Subsequently, the platform can terminate selected
`ones of the active application components. Then, the plat
`form can apply the received updates to the terminated
`application components. Finally, the platform can reload the
`updated application components.
`
`27 Claims, 4 Drawing Sheets
`
`
`
`
`
`
`
`
`
`
`
`
`
`207
`
`Client Position
`
`
`
`
`
`A Configuration
`Client
`
`Application
`Component n
`
`Application
`Component 2
`
`Application
`Component 1
`
`Loader
`
`Instacart, Ex. 1011
`
`1
`
`

`

`U.S. Patent
`U.S. Patent
`
`Jan. 30, 2007
`Jan. 30, 2007
`
`Sheet 1 of 4
`Sheet 1 of 4
`
`US 7,171,661 B1
`US 7,171,661 B1
`
`
`
`
`
`2
`
`

`

`U.S. Patent
`
`Jan. 30, 2007
`
`Sheet 2 of 4
`
`US 7,171,661 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Z '50IH
`
`
`
`3
`
`

`

`U.S. Patent
`
`Jan. 30, 2007
`
`Sheet 3 of 4
`
`US 7,171,661 B1
`
`301
`
`
`
`306
`
`302
`Configuration
`
`303
`
`304
`
`305A
`App
`
`305B
`App
`
`305C
`App
`
`instantiate
`
`
`
`312
`
`Instantiate all
`aggregated classes
`such as the Loader
`
`34
`
`D addConfiglistener(String)
`D getConfig(String)
`
`316
`
`O
`
`
`
`
`
`
`
`
`
`
`
`inquiry-ge client types 322
`
`induiry= et client data 324
`
`inquiry-get client 2 data 328
`
`serializeNE 326
`
`serialize NE 2330
`
`serialize NEn 334
`
`enumeration returned 338
`
`FIG 3A
`
`4
`
`

`

`U.S. Patent
`
`Jan. 30, 2007
`
`Sheet 4 of 4
`
`US 7,171,661 B1
`
`301
`
`306
`Bootstrap
`
`
`
`302
`Configuration
`
`303
`Platform
`
`304
`Loader
`
`30SA
`305B
`305C
`Ap Ap App
`
`
`
`For each class name
`contained in the
`configuration data,
`the following
`sequences occur.
`
`load(Platfornterface) 340
`
`
`
`
`
`create 348
`
`
`
`setup(reference to Platform) 350
`
`getInstance() 354
`
`
`
`O
`
`
`
`register(EnumCmdDescriptor, EnumDataDescriptor) 360
`
`startO 36
`subscribe(EnumDataSubscription) 364
`pass 2 initialization 366
`
`activateO 368
`
`
`
`FIG. 3B
`
`5
`
`

`

`US 7,171,661 B1
`
`1.
`REALTIME CONFIGURATION UPDATES
`AND SOFTWARE DISTRIBUTION TO
`ACTIVE CLIENT POSITIONS
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`(Not Applicable)
`
`STATEMENT REGARDING FEDERALLY
`SPONSORED RESEARCH OR DEVELOPMENT
`
`10
`
`(Not Applicable)
`
`BACKGROUND OF THE INVENTION
`
`15
`
`1. Technical Field
`The present invention relates to the field of client server
`applications and the distribution of application updates.
`More particularly, the instant invention relates to a method
`and apparatus for distributing application updates while a
`host platform for the application is still active.
`2. Description of the Related Art
`In typical computing environments, there is often a need
`to provide an automated method for distributing software
`from a server to one or more client applications. Computing
`environments are typically composed of one or more servers
`which provide localized or specialized services to one or
`more clients. These distributed environments result in infor
`mation being spread across various heterogenous data
`stores. One of the consequences of having information
`spread across heterogeneous data stores is that data can
`easily be duplicated. However, spurious duplication often
`results in inconsistent updating.
`Various methods have been employed to provide an
`efficient solution for performing operations on data in a
`distributed computed environment. In particular, operations
`can include, locating, adding, deleting, and modifying the
`data. One Solution involves utilizing a directory service
`acting as a central repository for storing all data within an
`environment. In this solution, the directory service is the
`single point from which the data contained therein is
`manipulated.
`The use of a directory service for storing and accessing
`data in a distributed environment can be advantageous in
`several respects. A directory service provides a single central
`resource for managing resources that may be localized as in
`a local area network (LAN), or distributed as in a wide area
`network (WAN). Additionally, since there is only a single
`central repository, resources within the environment can be
`replicated to ensure peak performance and also for redun
`dancy purposes.
`Since the directory service defines a single format for
`storing data, other applications having disparate storage
`formats can, through a single interface, communicate with
`the directory service. Since the single open format allows
`interoperability among various vendors, applications from
`other vendors can easily be shared with the directory service.
`Moreover, the single format is flexible enough that it can
`easily be extended to permit future growth that might occur
`as a result of technical advances or simply due to a need to
`scale the size of the operating environment.
`Given these advantages, several directory service tech
`nologies have been created to access data stores. Among
`these methodologies is a Lightweight Directory Access
`Protocol (LDAP). LDAP defines a model for storing entries
`in a directory service and a method for accessing these
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`entries in a directory service. LDAP provides access to the
`directory service through the use of a TCP/IP connection.
`The data stored in a directory service can include, but is not
`limited to, user information, application updates and con
`figuration information.
`An entry is the basic data unit entity in the LDAP
`technology. An entry is an object that contains persistent
`information about a specific resource. Each entry has a
`unique identifier referred to as a distinguished name (DN),
`and belongs to a directory information tree (DIT). Each
`entry of the LDAP is composed of a collection of attributes
`with each attribute defining some specific characteristic of
`the entry. Each attribute is associated with a specific value
`type.
`Many attempts have been made to automate the distribu
`tion of software in the client-server environment. However,
`present solutions lack the capability to perform realtime
`application updates and Software distribution to active appli
`cations without having to reboot the Supporting platform.
`Additionally, present automated Software distribution sys
`tems do not support realtime updates of configuration data
`without first shutting down all active applications and Sub
`sequently rebooting the platform. Thus, there exists a need
`for efficiently distributing application updates and configu
`ration to a host platform while the host platform is still
`actively running other applications.
`
`SUMMARY OF THE INVENTION
`
`The present invention is a system, method and apparatus
`for distributing realtime updates to active application com
`ponents in an active client position. A method in accordance
`with the present invention can include establishing a first
`communications connection between a platform managing
`the active application components and a configuration client;
`establishing a second communications connection between
`the configuration client and a configuration server, and,
`delivering updates to the configuration client over the sec
`ond communications connection. Notably, each update can
`correspond to at least one particular application component.
`Subsequently, the platform can be notified that updates
`have become available. Responsive to receiving Such a
`notification, the execution of the particular active applica
`tion components can be terminated. Following termination,
`each update can be delivered over the first communications
`connection to the platform, and each update can be applied
`to the particular application components. Finally, each
`updated application component can be re-executed.
`In one aspect of the present invention, the termination step
`can include identifying the particular corresponding appli
`cation component to be updated based on the notification;
`terminating instances of each identified application compo
`nent; and, removing interdependencies between the termi
`nated application component instances and other application
`components. Additionally, the re-executing step can include
`instantiating each updated application component; and ini
`tializing each updated application component instance.
`Moreover, the initializing step can include communicating
`configuration information to the configuration client; and
`reinitializing state information internal to each updated
`application component based on the configuration informa
`tion. Finally, the method can further include requesting from
`the configuration client update notifications, the update
`notifications notifying the platform of application compo
`nent updates as the updates become available in the con
`figuration server.
`
`6
`
`

`

`3
`In another aspect of the present invention, the method can
`further include transmitting update notifications over the
`second communications connection to the configuration
`client. In particular, the update notifications can notify the
`configuration client of application component updates as the
`updates become available in the configuration server. Addi
`tionally, the step of transmitting update notifications over the
`second connection can include packetizing the update noti
`fications according to the User Datagram Protocol (UDP);
`and transmitting the UDP packets to the configuration client.
`That is, update notifications can be packetized into data
`grams that can be conveyed from the configuration server to
`the configuration client. Finally, in yet another aspect of the
`present invention, the configuration server can be an LDAP
`server. Accordingly, the method can include storing the
`15
`application component updates in an LDAP-based database
`in the LDAP server.
`In yet another aspect of the method of the invention, a
`method for distributing realtime updates to active applica
`tion components executing in an active client position can
`include first receiving updates to the active application
`components from a communicatively linked configuration
`client, wherein each update corresponds to at least one
`particular application component. Second, execution of each
`particular active application component having a received
`corresponding update can be terminated. Third, the received
`updates can be applied to the corresponding application
`components. Finally, the updated application components
`can be re-executed.
`The terminating step can include terminating instances of
`each particular active application component having a
`received corresponding update; and removing interdepen
`dencies between the terminated application component
`instances and other application components. The re-execut
`35
`ing step can include instantiating each updated application
`component; and initializing each updated application com
`ponent instance. Finally, the method also can include Sub
`scribing to update notifications from the configuration client,
`wherein the update notifications notify the active client
`position of application component updates as the updates
`become available.
`A system for updating active client positions can include
`a platform for managing active application components; a
`configuration server for storing updates; and, a configuration
`client for receiving updates from the configuration server
`and communicating the received updates to the platform.
`The platform can receive the updates from the configuration
`client. Subsequently, the platform can terminate selected
`ones of the active application components. Then, the plat
`form can apply the received updates to the terminated
`application components. Finally, the platform can reload the
`updated application components.
`In one aspect of the present invention, the configuration
`server can be an LDAP server. In another aspect of the
`present invention, the active application components can be
`instances of JAVA programming language classes (hence
`forth Java classes) classes. In yet another aspect of the
`present invention, the configuration client can include a
`notifier object and a listener interface. In consequence, the
`active application components can be configured to receive
`update notifications from the configuration client through
`the listener interface. Similarly, the configuration server also
`can include a notifier object and a listener interface. Like
`wise, the configuration client can be configured to receive
`update notifications from the configuration server through
`the listener interface.
`
`25
`
`30
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 7,171,661 B1
`
`10
`
`4
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`There are presently shown in the drawings embodiments
`which are presently preferred, it being understood, however,
`that the invention is not so limited to the precise arrange
`ments and instrumentalities shown, wherein:
`FIG. 1 is a high-level schematic illustrating a system for
`performing realtime configuration updates and software
`distribution to active client positions.
`FIG. 2 is a network architecture diagram for use in the
`system of FIG. 1; and
`FIGS. 3A and 3B, taken together, are a UML sequence
`diagram illustrating a process for performing realtime con
`figuration updates and Software distribution to active client
`positions in the system illustrated in FIG. 2.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`The present invention is a system for performing realtime
`configuration updates and software distribution to active
`client positions in a client-server environment. In particular,
`the system of the present invention can distribute software
`and configuration data to client positions without having to
`reboot each client position. FIG. 1 illustrates a network
`architecture configured for use with the system of the
`invention. As shown in FIG. 1, the system for performing
`realtime configuration updates and Software distribution to
`active client positions can include a configuration server
`105, a computer communications network 115, and a plu
`rality of client positions 110A, 110B, 110C connected to the
`configuration server 105 through the computer communica
`tions network 115.
`As each client position 110A, 110B, 110C undergoes
`bootstrap, a communications link can be established
`between the configuration server 105 and the client positions
`110A, 110B, 110C. Subsequently, each booted client posi
`tion 110A, 110B, 110C can query the configuration server
`105 to identify the application components which are to be
`installed in the client position 110A, 110B, 110C. Upon
`identifying the application components, each client position
`110A, 110B, 110C can install the identified application
`components.
`Significantly, upon initialization each application compo
`nent can request that the application component be notified
`of any future updates. When updates become available at the
`configuration server 105, messages can be broadcast to the
`client positions 110A, 110B, 110C notifying the positions of
`the update. In response, a communications link again can be
`established between affected client positions 110A, 110B,
`110C. Subsequently, the updates, including configuration
`data and updated modules, can be retrieved through the
`communications link. Following retrieval, the application
`components to which the updates are to be applied can be
`terminated, updated and re-loaded. Notably, once re-loaded,
`the application components will have incorporated the
`updates. Hence, the system of the present invention can
`perform realtime application updates of application compo
`nents in active client positions.
`FIG. 2 depicts the interaction between a configuration
`server 201 and a single client position 207 through a network
`206. The network 206 can be a LAN, WAN a data bus, or
`other suitable medium for communicatively linking distrib
`uted processes. As shown in the figure, the single client
`position 207 can include a configuration client 202, at least
`one application component 205, an application platform 203
`for managing the application components 205, and an appli
`
`7
`
`

`

`US 7,171,661 B1
`
`10
`
`15
`
`5
`cation loader 204 for loading and unloading the application
`components 205. Still, the invention is not limited in this
`regard and the configuration client 202 can be included as an
`application component external to the client position 207 in
`a distributed environment.
`Notably, the invention is limited neither in the number of
`application components 205 managed by the platform 203,
`nor in the number of platforms 203 for managing the
`application components 205. Moreover, the loader 204 can
`be included as part of the platform 204 or can exist inde
`pendently of the platform 203. Finally, the configuration
`client 202 can be included as an application component
`managed by the platform 203 along with the application
`components 205. The configuration server 201 can store
`both configuration data 214 and software modules 216 for
`distribution to the client positions. Specifically, the configu
`ration server 201 can store the data 214 and modules 216 in
`an LDAP file server 210. However, the invention is not
`limited in this regard. Rather, the data 214 and modules 216
`can be stored and accessed through any suitable means, for
`example an XML file server.
`As shown in FIG. 2, the configuration client 202 can be
`managed separately from the platform 203. Moreover, in one
`aspect of the invention, the configuration client 202 can be
`implemented as a JAVA BEAN software object. In conse
`quence, the configuration client 202 JAVA BEAN software
`object implementation can be reused by other applications.
`Notably, the platform 203 can be a JAVA programming
`language-based platform for managing application compo
`nents 205. As such, the platform 203 can behave as an object
`request broker (ORB) for the various application compo
`nents 205 installed on the platform 203.
`In operation, when the client position 207 undergoes
`bootstrap, the platform 203 can start the configuration client
`202. Once started, the configuration client 202 can read a
`bootstrap properties file containing only the uniform
`resource locator (URL) of the configuration server 201 and
`a client position identifier. Subsequently, the configuration
`client 202 can establish a communications connection to the
`configuration server 201. In particular, the communications
`connection can be an LDAP connection to an LDAP server
`using a JAVA Naming and Directory Interface (JNDI/
`LDAP). Still, the invention is not limited in regard to the
`particular communications connection. Rather, any suitable
`communications connection can Suffice. For example, the
`communications connection can be a point-to-point TCP/IP
`connection to a CGI interface to a flat-file database using
`HTTP
`Once a communications connection has been established,
`the configuration client 202 can perform an initial inquiry of
`the configuration server 201 using the position identifier as
`the search argument. A response to the initial inquiry can
`include a list of application components 205 to be installed
`in the client position 207. Subsequently, the configuration
`client 202 can inspect the list and can perform secondary
`inquiries for each of application components 205 in the list.
`AS before, secondary responses to the secondary inquiries
`can include executable modules for the application compo
`nents 205 as well as configuration data that can include
`server addresses necessary for the execution of the applica
`tion components 205.
`The secondary responses can be received in the platform
`203. Once received, the application components 205 can be
`executed. More particularly, the platform 203 can retrieve a
`list of each application component 205 to be installed in the
`client position 207. Subsequently, each application compo
`nent 205 can be installed by performing appropriate instan
`
`6
`tiations and calling required initialization methods defined in
`a corresponding application component interface.
`During initialization, each application component 205 can
`request corresponding configuration data from the configu
`ration client 202. Examples of configuration data can
`include option settings, screen definitions, and server
`addresses. When received, the requesting application com
`ponent 205 can perform an appropriate initialization. Each
`application component 205 also can request that the con
`figuration client 202 notify the application component 205
`of future updates for utilization by the application compo
`nent 205. Notably, in one aspect of the invention the
`application component notification facility can include an
`implementation of an observer design pattern. Notwith
`standing, the invention is not limited in this regard. Rather,
`other implementations of the application component notifi
`cation facility can Suffice, including storing a list of appli
`cation components in a database and notifying selected
`application components each time an update is received
`which is directed to an application component in the list.
`When updates become available in the configuration
`server 201, an update message can be transmitted to client
`positions 207 containing application components 205 to
`which the update is directed. Still, the invention is not
`limited in this regard. Rather, the messages can be broadcast
`messages or UDP narrow-cast messages directed to client
`positions 207 regardless of the application components 205
`contained therein. In any case, once the configuration client
`202 receives an update message, the configuration client 202
`can establish a new communications connection to the
`configuration server 201. As before, the communications
`connection can be an LDAP connection where the configu
`ration server 201 is an LDAP server. Subsequently, updates
`in the form of updated configuration data and software
`modules can be transmitted to the configuration client 202
`through the communications connection.
`Once the updated configuration data and Software mod
`ules have been retrieved, the configuration client 202 can
`notify the platform 203 that updates have been received. For
`example, in a JAVA programming language or a C++ pro
`gramming language implementation, the configuration cli
`ent 202 can generate an update received event and transmit
`the same to the platform 203. In response, if updated
`software modules have been received, the platform 203 can
`identify application components to which the updates are
`directed. Where an update is updated configuration data
`which does not require the termination of the targeted
`application component 205, the platform 203 can simply
`deliver the update to the targeted application component
`205. Specifically, the configuration client 202 can notify the
`targeted application component 205 that updated configu
`ration data has been received. In response, the targeted
`application components 205 can retrieve the updated con
`figuration data from the configuration client 202 and can
`reinitialize associated internal States appropriately.
`In contrast, where an update is either an updated Software
`module or updated configuration data which requires the
`termination and re-instantiation of the application compo
`nent 205, the platform 203 can terminate the targeted
`application component 205 prior to applying the update to
`the targeted application component 205. In one aspect of the
`invention, the platform 203 can terminate the execution of
`the targeted application component 205 by accessing a
`terminate method associated with the targeted application
`component 205 and exposed by an interface to the targeted
`application component 205. Significantly, when applying an
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`
`

`

`US 7,171,661 B1
`
`10
`
`15
`
`7
`update to a targeted application component 205, a two
`phased startup and shutdown approach can be implemented.
`In consequence of this approach, application components
`205 can remove any interdependencies without necessarily
`affecting program execution of other application compo
`nents 205. Once the application component 205 has been
`terminated, the platform can apply the update according to
`configuration data associated with the update. Subsequently,
`the platform 203 can re-instantiate the targeted application
`component 205. Additionally, the platform 203 then can call
`the initialization method of the targeted application compo
`nent 205 so that the targeted application component 205 can
`properly reload.
`Turning now to FIGS. 3A and 3B, a communications
`sequence is illustrated in which the system of FIGS. 1 and
`2 can be configured to distributed real time updates to active
`client positions. As in FIGS. 1 and 2, the system can include
`a configuration server 301, a configuration client 302, a
`platform 303, a loader 304, and application components
`305A-305C. Additionally, the system can include a boot
`strap probe 306 for assisting the configuration client 302
`during bootstrap.
`Turning now to FIG. 3A, when the platform 303 under
`goes bootstrap, the platform 304 can perform an instantia
`tion 310 of the loader 304 and the configuration client 302.
`The platform 303 then can perform a series of runtime
`communication routines with the configuration client 302
`Such as getinstance() 312 to acquire a particular instance of
`the configuration client 302, addConfig|Listenter(string) 314
`to instruct the configuration client 302 to add the platform as
`a listener/observer and getConfig(string) 316 to retrieve
`configuration data. Once this initial phase of bootstrap has
`completed, the configuration client 302 can read 318 a
`bootstrap properties file and can extract therefrom an
`address for the configuration server 301. In one aspect of the
`invention, the bootstrap properties file can contain a URL of
`the configuration server 301 and a position identifier.
`Once the bootstrap operation has completed, the configu
`ration client 302 can establish a communications connection
`to the configuration server 301. In particular, where the
`configuration server 301 is an LDAP server, the configura
`tion client 302 can establish an LDAP connection to the
`configuration server 301 using JNDI/LDAP. Subsequently, a
`getContext() method 320 can be used by the configuration
`client 302 to acquire the context of the configuration server
`301. An initial inquiry then can be made to the configuration
`server 301 by the configuration client 302 to retrieve a list
`of client application component types. The initial inquiry
`322 can use the position identifier of the configuration client
`302 as a search argument.
`In response to the initial inquiry 322, the configuration
`server 301 can return a response containing a list of client
`application component types to be installed in the platform
`303. In one embodiment, a separate inquiry 324 can specify
`data within the configuration server 301 that is to be pro
`vided to the platform 303. Subsequently, the configuration
`client 302 can cycle through the list of client application
`component types and can issue corresponding secondary
`inquiries 328 and 332 for each of the application component
`types defined, in order to retrieve related client configuration
`data. The responses to the secondary inquiries 328,332 can
`contain executable modules for the application components
`305A, 305B, 305C. To complete this initial stage, an enu
`meration 338 of the responses from the configuration client
`302 can be returned to the platform 303. The configuration
`client 302 can convey an instruction to close 336 the
`
`8
`communication connection with the configuration server
`301 once initialization tasks have been performed.
`It should be noted that different application components
`may need to be installed within the platform 303 in a serial
`fashion. That is, the installation of particular application
`components can require other components to have already
`been installed and/or activated. Therefore, the configuration
`client 302 can submit instructions to the configuration server
`301 detailing an order in which inquires are to be handled.
`For example, a serialization instruction 326 can specify that
`inquiry 324 is to be processed before inquiry 328; a serial
`ization instruction 330 can specify that inquiry 328 is to be
`processed before inquiry 332, and, a serialization instruction
`334 can specify that inquiry 328 is to be processed before
`closing 336 the communication connection.
`Turning now to FIG. 3B, the platform 303, using the
`configuration data, can load and initialize an appropriate
`platform interface to the loader 304 using the load (Platfor
`mInterface) method 340. Once initialized, the loader 304 can
`perform a series of communication routines with the con
`figuration client 302. Specifically, the loader 304 can access
`a getInstance() method 342 in order to acquire the particular
`instance of the configuration client 302. Additionally, the
`loader 304 can access an addConfiglistenter(string) 344 in
`order to instruct the configuration client 302 to add the
`loader 304 as a listener/observer. Finally, the loader 304 can
`access a getConfig(string) method 346 to retrieve the con
`figuration data containing the names of classes to instantiate.
`For each of the class names of application components
`305A, 305B, 305C listed in the configuration data provided
`by the configuration server 301 in the inquiries, 324, 328,
`and 332, the following sequence of events can occur. First,
`the loader 304 can instantiate 348 the application component
`305A, 305B, 305C and can provide to the application
`component 305A, 305B, 305C a reference to the platform
`303 through the setup(reference to Platform) method 350.
`Subsequently, the application component 305A, 305B,305C
`can undergo initialization.
`Specifically, in accordance with the two-phased startup
`and shutdown approach described above, a first phase 352 of
`the initialization process can follow the completion of the
`setup(reference to Platform) method 350 in which an exist
`ing instance of the application component 305A, 305B,
`305C is shutdown and the application component 305A,
`305B, 305C is updated. Subsequently, the application com
`ponent

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket