Четыре колонки
Пропущенный урок
Георгий Кузнецов
Знаете ли вы, что такое "клиент-сервер"? Если да, то жму вашу руку! В наше трудное время, когда кокетливые признания в непонимании важнейших идей стали чуть ли не признаком профессиональной зрелости, мы с вами нашли друг друга. Только не надо переносить игру на другое поле. Если вы считаете, что "клиент-сервер" – род коммерческой приманки, вроде заверений о том, что продукт не повышает содержание холестерина в крови и озона в атмосфере, то я заранее не согласен. Нет, это технический термин, обозначающий способ решения инженерной проблемы.
Проблемой являлись PC, которые упорно не хотели обзаводиться многозадачной операционной системой, а пользователям необходимо было общаться – как по ходу основной работы, так и для администрирования сети. Без многозадачности общение невозможно, но этот факт с трудом доходил до сознания не только пользовательских масс, но и руководителей крупнейших "софтверных" корпораций. Даже – да нет, тем более – если эти руководители сами были программистами с большим опытом работы на PC.
Формула "клиент-сервер", в которой, конечно, не было ничего нового, давала решение проблемы при подстановке в нее PC. Если уж они ни на что более не способны, то пусть будут чистыми клиентами, а сервер возьмет на себя их общение между собой.
Попутно эта идея решала проблему плохо реализованной многозадачности – такой, как в популярных, дешевых, так называемых "сетевых" операционных системах. Прижмите любого их приверженца к стенке и проникновенно скажите ему – знаешь, парень, а за хорошие деньги не взялся ли бы ты администрировать на одном сервере доступ к плоским файлам, интегрированную многосредную почту, Oracle, Notes, WWW, доступ удаленных пользователей, разработчиков приложений и... и довольно, так как вам хватит произвольно выбранной половины этого списка, чтобы обратить в бегство самых стойких.
"Клиент-сервер" предоставляла решение и в случае подстановки на место сервера "сетевой" ОС. Сервер – это ведь не универсальная многоцелевая система в духе UNIX, и ничто не мешает выделить по отдельному серверу на каждую из перечисленных служб. Для приличия объясняют, что тем самым создаются "ниши" для компьютеров со специальной архитектурой, оптимизированной под определенные функции. На практике это означает, что на PC ставят побольше памяти, или лишний диск, или модем.
Приличия – это важно. Компьютерщикам необходимо не только как-то договариваться между собой, куда плыть, но и объяснять потребителям, куда приплыли. Как бы то ни было, любая рабочая станция с ее родной операционной системой может служить сервером, если только в ней нарочно что-нибудь не испортили (наметилась такая тенденция). Будем справедливы: UNIX-системы "падают", да и вообще морально разлагаются под дурным влиянием PC, но, по крайней мере, свойственная им философия призывает к тому, чтобы компьютер мог спокойно выполнять любую смесь программ, причем так, чтобы они не мешали друг другу ни случайно, ни намеренно.
Когда западный специалист утверждает, что вконец запутался в "клиент-серверах" или "объектно-ориентированном программировании", это скорее всего риторический прием, обозначающий протест против злоупотребления терминологией. Но в России, похоже, подобные заявления делаются искренне. Очень часто статьи ведущих специалистов корпораций-интеграторов или разговоры с ними оставляют ощущение белого пятна на карте их знаний. Примерно как если бы человек никогда не слышал об Америке – и вот пытается как-то свести концы с концами в собственном мировоззрении, чтобы объяснить себе, откуда берутся компьютеры.
Дело в том, что современная сетевая компьютерная культура шизофреническая. Она произошла от двух очень разных источников, и половинки до сих пор толком не срослись. Первым по времени источником были многопользовательские системы, иногда очень большие, на сотни терминалов. В них, например, само собой разумелось коллективное использование дисков и других устройств. Проблемой было не столько создание дорог, мостов и площадей, сколько дверей, заборов и замков. Программы и пользователей надо было защищать, изолировать друг от друга.
В идеале сеть таких систем должна была казаться единым компьютером, как современный кластер. В свое время этот подход хорошо выразили основатели фирмы SUN. В развитии Internet неизменно присутствует, наряду с объединительным, менее явный охранительный мотив. Характерно, что компании-представители второй струи сетевых идеологий и технологий, приходящие в Internet из сектора PC, постоянно подвергаются критике за то, что упускают из виду этот аспект.
Подобной беспечности от них действительно можно ожидать, поскольку главной для PC всегда была, употребляя хорошее американское словечко, проблема connectivity. PC под DOS неспособны полноценно реагировать на неизвестное заранее количество внешних запросов. Под Windows это в принципе возможно, однако "без удобств" и со всяческими дурацкими ограничениями. Под Windows 95 PC, наконец, приближается к сетевой машине в смысле SUN. Кстати, сказанное относится не только к?????, но и к Мас.
Развитие PC-сетей шло адаптивно, в форме поиска ответа на каждый частный вопрос. Пользователям надоело бегать друг к другу с дискетками. Им надо коллективно использовать дорогие принтеры. Они прослышали об электронной почте и сетевых факс-серверах. А теперь администраторы сетей не желают шнырять по зданию, как сталинские ткачихи, втыкая дистрибутивные дискетки в каждую PC и выковыривая из них нелегальный софт вместе с вирусами. Хотя ответ на все эти вопросы разом давно известен, и никакого другого не предвидится.
У нас в стране многопользовательские системы не успели расцвести. Когда американские университеты на деньги Пентагона насаждали UNIX и СУБД, наши внедряли в народное хозяйство ALGOL, PASCAL и PROLOG. Три богатыря, Минрадиопром, Мин-прибор и Минэлектронпром, бились над созданием клавиатуры для терминала, пока не разбились. Большинство перешло с отечественных мэйнфреймов прямо на тайваньские PC. Что делать? Да просто нанести на карту еще один материк, на котором каждый американский компьютерщик, получивший образование на уровне колледжа, а не заочных курсов программирования, скорее всего прожил хотя бы год.