РЕЦЕНЗИИ

Камер Дуглас Э., Стивенс Дэвид Л. Сети TCP/IP. Т. 3. Разработка приложений типа клиент-сервер для Linux/POSIX. - М.; СПб.; Киев: Издательский дом “Вильямс”, 2002. - 592 с.

Сегодня программисты все чаще сталкиваются с необходимостью создания распределенных приложений. Однако алгоритмы, хорошо себя зарекомендовавшие при использовании в обычных программах, зачастую оказываются малоэффективными, а то и вовсе неработоспособными в приложениях типа клиент-сервер, особенно в крупных сетях. Необходимость же поиска и реализации новых алгоритмов полностью своими силами в лучшем случае приводит к увеличению продолжительности разработки и стоимости проекта.

Рассматриваемая книга призвана оказать помощь программисту, не имеющему опыта в разработке распределенных приложений. Она является третьим томом серии “Сети TCP/IP”, но может использоваться и без ознакомления с двумя предшествующими книгами. Хотя изложение ведется применительно к операционным системам Linux/POSIX и набору протоколов TCP/IP, принципиальные положения применимы для любых ОС и сетевых протоколов.

Книга состоит из 31 главы, двух приложений, обширного списка литературы и предметного указателя.

Первые пять глав являются вводными. В них рассматриваются основные понятия, используемые при разработке распределенных приложений, параллельная обработка, интерфейс прикладного программирования сокетов и другие вопросы общего характера.

Главы 6-19 посвящены разработке клиентских и серверных программ. Как правило, приводятся две реализации одной и той же программы - с применением протокола с установлением логического соединения TCP и без установления соединения UDP. Обсуждаются преимущества и недостатки того и другого протоколов, даются рекомендации по их использованию. В главах 18 и 19 рассказывается о создании распределенных приложений, работающих в разнородных средах.

В трех последующих главах (20-22) описываются внешнее представление данных (XDR) и удаленный вызов процедур (RPC), позволяющие программистам использовать средства взаимодействия типа клиент - сервер. Глава 23 подводит итог всему ранее изученному материалу, иллюстрируя процесс создания распределенного приложения на базе обычной нераспределенной прикладной программы.

В главах 24-29 рассматриваются стандартные протоколы сетевой файловой системы (NFS), дистанционного доступа (Telnet) и потоковой передачи информации (RTR).

Две заключительные главы (30-31) содержат практические рекомендации по улучшению функционирования серверов Linux и рассказ о тупиковых ситуациях, возникающих в системах типа клиент - сервер.

Приложения носят справочный характер и посвящены системным вызовам, связанным с сокетами, и операциям с дескрипторами файлов и сокетов в ОС Linux.

Книга написана ясным языком и снабжена достаточным количеством примеров. Изложение ведется с практической точки зрения - не рассматриваются теоретические основы построения сетей, знание которых не обязательно для прикладного программиста, однако большое внимание уделяется особенностям распределенных приложений и подводным камням, которые ожидают их разработчиков.

К сожалению, к книге не приложен CD-ROM, содержащий тексты приводимых в ней примеров. Правда, они доступны через Интернет, однако все же удобнее пользоваться “личной” копией.

В целом издание может служить неплохим учебником по разработке приложений типа клиент-сервер, рассчитанным на программистов, достаточно хорошо владеющих языком Си и не испытывающих сложностей при разработке обычных прикладных программ.

Версия для печати