摘要:
A method and apparatus for providing process-pair protection to complex applications is provided. The apparatus of the present invention includes a process-pair manager or PPM. The PPM is replicated so that a respective PPM is deployed on each of two computer systems. Each computer system also hosts a watchdog process that monitors and restarts the PPM in case of PPM failures. Each PPM communicates with a respective instance of an application. The application instances may include one or more processes along with associated resources. During normal operation the primary application provides service and periodically checkpoints its state to the backup application. The backup application functions in a standby mode. The two PPMs communicate with each other and exchange messages as state changes occur. The apparatus also includes in each computer system a node watcher that is the PPM of failures of the remote computer system. This way, each monitor the state of the other application instance and the health of the computer system on which it is resident. If a failure of the primary application or of the computer system where it runs is detected, the PPM managing the backup application takes steps to cause its instance of the application to become primary. The failover operation is faster (between 5 and 20 seconds) than corresponding operations provided by other existing methods (between one and 40 minutes depending on the application initialization time) because the backup application does not need to be started and initialized to become primary. The failover is stateful because the backup application receives periodic updates of the state of the primary application.
摘要:
An system and method for creating applications having look and feel providing dynamically extensible languages for describing application look and feel. Engines are provided for executing programs written in the languages, and methods for extending the languages by creating new language operators are also provided. Methods for joining modules of functionality to new operators allow display of, and interaction with, functionality to be expressed in the extensible languages. The engines and languages permit language operators and functionality modules to be dynamically loaded.