Порой сталкиваешься с ситуациями, когда необходимо ответственно наблюдать за работоспособностью какого-либо приложения. Всвязи с этим, можно продумать некоторое решение, которое будет балансировать как на качелях: оно будет следить за своим подопечным приложением и, в случае его неработоспособности, перезапускать его, либо проводить восстановительные работы.
В данном случае приложение-хост — это главное приложение, за которым необходимо «присматривать», а приложение-контроллер — это маленькая программа (выточенная до блеска), которая следила бы за приложением-хостом. При таком раскладе, приложение-контроллер (клиент) каким-либо удобным методом (сокеты, RPC) будет спрашивать приложение-хост о его работспособности (сервер). Если реакции от сервера нет, то контроллер будет вынужден принять меры. Подобным образом можно выделить и организацию два-два сбалансированной системы, где приложение-хост и приложение-контроллер будут опрашивать друг друга. Подобным способом можно избежать нерабоспособноть двух частей сбалансированной системы.