Терминальные решения
В мире насчитывается огромное количество так называемой "наследуемой" техники — компьютеров на базе процессоров 286/386/486. Вся эта техника обычно пылится где-то на складе или, в редких случаях, используется в качестве роутеров и для подобных целей.
И это далеко не лучший выход — ведь эти компьютеры (на первый взгляд бесполезные) можно успешно использовать в терминальных системах или в системах распределенных вычислений.
Историческая справка
Но сначала обратимся к истории вопроса, ибо в ней и лежит ответ.
Когда-то персональных компьютеров не было (вообще). Существовали лишь огромные ящики (а чаще — совокупность ящиков), именовавшиеся Компьютерами, они были сверхмощными и почти достигали скорости XT (впрочем, никого это не удивляло — ведь ничего более мощного всё равно не было). А использовать их уже тогда желали многие. Поэтому машинное время приходилось арендовать — пользоваться компьютером только в определенные часы.
Постепенно такое положение дел пользователям надоело, и были придуманы первые терминалы и первые системы разделения времени. Терминал — простой "компьютер", который не производил ни каких вычислений, а только выводил ответы Компьютера.
В дальнейшем стоимость персонального Компьютера стала уменьшаться, с каждым годом становилось всё проще и проще купить быстрый Компьютер…
К сожалению, операционные системы тоже не остались в долгу и постепенно приспособились к прогрессу, начиная поглощать всё больше и больше ресурсов и заставляя пользователей покупать новые, еще более мощные компьютеры.
Всё это великолепие сегодня привело к тому, что большую часть времени пользователь использует микропроцессор персоналки в среднем на 5-6 %. Например, пока я "барабанил" этот текст в Ворде, уровень загрузки процессора ни разу не превысил 15 %, а в среднем составлял 6-8 %. Кстати говоря в тот момент, когда Вы читаете эти строки в броузере, уровень загрузки микропроцессора наверняка не превышает и 10 % (если, конечно, на фоне не запущен MPEG-кодер).
Остальные 90 % компьютерных ресурсов уходят в никуда — просто не используются ни коим образом. Немного улучшить ситуацию можно использованием фоновых задач, но не так уж их и много у среднего пользователя (особенно в офисе).
Так что бороться с этим можно лишь одним способом — предоставлять другим компьютерам внутри локальной сети свободные мощности вашей рабочей станции.
Отделение серверов приложений от тонких клиентов (терминалов)
Как данная задача была реализована на практике? Ответ дала теоретическая концепция распределённых вычислений:
Концепция распределенных вычислений предполагает, что результат вычислений может быть передан на любою персоналку внутри сети. Причём это относится не только к конкретным результатам работы (к примеру, изображения буквы на экране), но и к внутреннему отображению операций (на уровне объектов). То есть, программист не знает и не должен знать, на каком компьютере будет выполняться отдельный объект.
Практическая же реализация данной идеи, пошла по принципу отделения серверов приложений (компьютеров, отвечающих за вычисления) от компьютеров, отвечающих только за отображение информации — клиентов. Вспоминаете историю?
Это разделение может быть совершенно прозрачным для пользователя — он может работать за "трёшкой", а пользоваться результатами работы машины соседа (с РIII или ему подобным), или, наоборот, отдавать часть ресурсов соседу…
К примеру: на экране Вы видите, как движется Ваша мышь, её положение просчитывается на Вашем компьютере, изображение курсора создаётся на другом компьютере, и только на третьем компьютере запускается объект, отвечающий за нажатие кнопки мыши.
Плюсы и минусы данного решения
В чём плюсы такого подхода:
1. Вычислительные возможности нескольких компьютеров в сети объединяются.
2. Так как терминалами могут служить практически любые компьютеры, вы сможете использовать компьютеры класса 286/386/486 (теоретически даже XT; однако возможны проблемы, связанные с видеоадаптерами).
3. Резкое уменьшение стоимости рабочего места: только на серверах приложений нужны дисководы, винчестеры, большие объемы памяти и так далее. Обычное рабочее место, оборудованное новым компьютером, стоит около $500, в случае использования тонких клиентов из новых деталей — $240-250, а в случае использования маломощной техники — около $120.
4. Значительно снижаются расходы на администрирование, приобретение и обновление программного обеспечения. Так как ПО устанавливается и обновляется только на серверах приложений, то сокращается стоимость лицензий, а также уменьшается стоимость администрирования
5. Большая скорость работы с дисками: одинаковая информация чаще оказывается в кеше. Причём влияние этого фактора очень велико: к примеру, если хотя бы одна копия IE5.0 загружена в память, то все последующие загружаются мгновенно; то же самое относится и к другим приложениям (Microsoft Office и т. п.).
6. Существенная экономия памяти: код программы не дублируется при вызове второй копии. Пример: сервер приложений, имеющий всего 64 Мбайт памяти, полностью хранит в ней Windows NT4.0 и при запуске новых копий операционной среды не дублирует код.
7. Большая безопасность: Администратор может посмотреть, чем занимаются сотрудники, лишить их права на определённые вычислительные ресурсы (занимаемые играми и тому подобными приложениями, напрямую не относящимися к работе), а так как обычно клиентов не оборудуют ни дисководами, ни винчестерами, то уменьшается вероятность хищения информации.
8. Не нужен источник бесперебойного питания на каждом рабочем месте.
9. Потеря терминала — это потеря терминала, а никак не данных или всей предыдущей работы.
10. Сотрудники могут быть по настоящему мобильны: для того, чтобы получить доступ к информации, не нужно обращаться к удаленной станции. Вся информация может быть доступна как общий дисковый ресурс.
11. Более удобное обеспечение совместной работы сотрудников: со своего терминала Вы можете подключиться под логином коллеги и использовать его данные или сразу его файлы (очень, кстати, удобно, если ваш коллега находится в другом городе).
12. Терминал или клиент может работать под любой операционной системой: либо он может быть подключен по протоколу X-windows, либо можно будет найти специфического клиента для протокола ICA или RDP.
13. Средний трафик между клиентами и серверами редко превышает 100 кбайт/с. Это значение может быть намного меньше, чем трафик запросов/ответов в больших базах данных. Следовательно, можно сэкономить если Вы используете коммерческое подключение к Вашим удалённым базам данных
14. Асимметричность трафика: клиенты обыкновенно посылают серверам в 10-15 раз меньше трафика, чем возвращают им сервера приложений.
15. Терминалы не нуждаются в улучшении технических характеристик, а проще говоря — в апгрейде (и могут также не подвергаться моральной амортизации).
16. На одном компьютере Вы сможете одновременно "запустить" приложения нескольких операционных систем.
Тонкие клиенты
Для того чтобы разобраться, кто такой клиент, следует посмотреть, что он делает.
Тонкие клиенты получают несжатый поток "видео" от сервера (телевизоры :)), а в ответ посылают только нажатия на клавиши и изменения положения курсора мыши. Таких клиентов большинство.
Далее идут тонкие клиенты. В их обязанности входит умение распаковывать информацию — они должны уметь обрабатывать сжатую графическую информацию, правильно воспроизводить анимацию и поддерживать разные курсоры мыши.
Третья группа — нечто большее, чем тонкие, и меньшее, чем жирные. Данные клиенты использует вызовы собственной операционной среды для прорисовки экрана, мыши, соединения с сервером и так далее. Практически все программные клиенты являются такими.
Итоги
Подведём итоги. Технология, описанная выше, сможет реанимировать устаревшую вычислительную технику, причем легко и с затратами меньшими чем стоимость апгрейда.
Также надо отметить, что данные решения позволяют большим компаниям сэкономить на администрировании и закупке техники, а средним и малым получить прекрасные рабочие места по $150-250 каждое.
Если Вам требуется консультация по вопросам построения корпоративных систем или по другим вопросам — пишите.


