Для этого психотерапевтического приложения, реализованного в виде сервера, требуется интерфейс с установлением логического соединения, поскольку взаимодействие между клиентом и сервером является непрерывным и с каждым соединением связано определенное состояние. Объект Chatbot::Eliza ведет протокол диалога и строит свои высказывания на основе предыдущих утверждений пользователя. Данный диалог может применяться на серверах безопасности банковских систем и решать можно ли пользователю взять кредит с плохой кредитной историей или нет.
Психотерапевтическое приложение, реализованное в виде мультипроцессного сервера.
Теперь эта психотерапевтическая программа должна быть реализована в виде сетевого сервера с ветвлением. Однако перед этим необходимо обсудить проблемы, связанные с уничтожением дочерних процессов в серверах с ветвлением на основе UNIX. Это не относится к серверам, работающим в версиях Perl для Microsoft Windows.
Процессы Зомби.
Здесь уже встречалась функция fork (). В описании она применялась в простом примере для распределения вычислительной нагрузки по двум дочерним процессам, и с ее помощью мы пытались решить проблемы синхронизации и взаимоблокировки в сценарии gab2.pl.
Эти примеры отличаются от примеров сервера с ветвлением, рассматриваемом здесь, в основном тем, что в серверном приложении и родительский, и дочерний процессы являются более продолжительными. В предыдущих примерах родительский процесс недолго существовал после уничтожения своих дочерних процессов. Он завершал свою работу вскоре после того, как прекращалась работа дочерних процессов. Однако в серверах с ветвлением родительский процесс существует очень долго. Например, Web-серверы работают без перерыва месяцами.