14 сент. 2007 г.

Сетевой модуль

Это не совсем готовый программный продукт, это скорее мысли по поводу того, как надо делать продукты для работы в сети, особенно корпоративной. Хотя такого программного обеспечения может быть и много, базовый принцип работы, методы развертывания и особенности применения - одинаковые. Сразу предупреждаю, некоторые термины и методы очень специфичны, но и ценность того что я расскажу - огромна. Это как минимум готовое решение для многомиллионного стартапа! Заинтриговал? :)

Сети разные - проблемы одни и те же

Все продукты, которые связаны с работой на 2х и более компьютерах, одинаково неприятны в эксплуатации как для сетевых админов, так и конечных (не путать с кОнчеными :) пользователей.

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

Обычные пользователи, даже с продвинутыми знаниями, чувствуют себя полными идиотами, когда начинают получать сообщения о каких-то сетевых интерфейсах, сокетах, пайпах, TCP/IP портах (сами то хоть что-то из этого поняли? :), и прочей около-сетевой белиберде. Максимум, что нормальный юзер точно понимает в сети - это то, что у разных компьютеров есть имена, а на некоторых еще и папка "Обменка", куда можно скопировать файл, чтобы другие его могли посмотреть. Все! Остальные тумба-юмбы для него - зло!

Так же стоит помнить, что с админами советуются при решении поставить какой-то сетевой продукт. И если ваш продукт не админ-френдли, то никакая майка, кружка или билетик в цирк (ну или на курсы обучения :) в подарок, не склонят к положительному решению по поводу приобретения.

Что же на самом деле надо

Бутылка надо! На самом деле, нужен универсальный хост модуль. Такой модуль должен устанавливаться, как с пользовательского компьютера, так и удаленно. В идеале что бы ставился вместе с системой или при первом заходе на корпоративный Intranet (а не Internet :) сайт.

Хост модуль должен уметь автономно работать с сервером (или серверами), открывать необходимые порты у Firewall, регистрироваться при включении компьютера, логироваться при входе пользователя, и т д. Так же он обязан уметь обновлять самого себя, продукты, которые он знает, и, возможно, даже операционную систему. И все это без угрозы по безопасности и перезагрузки системы!

Самое интересное, что одного такого модуля достаточно для любого количества сетевых программ. Один и тот же модуль может подключить и Remote Desktop, и Messenger, и Hardware monitor, и многое другое. Достаточно лишь указать порты, правила и сами исполняемые программы. Этот же модуль можно использовать для установки программ, бекапа данных, обновления базы антивируса и многих других задач, причем на всех компьютерах сети одновременно!

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

Если предполагается частая работа из-за пределов корпоративной сети, да еще из разных мест - не обойтись без публичного сервера регистрации. Иначе катавасия со сменными IP и закрытыми наружу портами (как со стороны компании, так и из гостиницы, например) сведет на нет нормальную возможность работы. Не плохо бы иметь индикатор скорости соединения для таких случаев, а то не все корректно будет работать на узком канале и долгом пинге.

Как это выглядит на пальцах

Хост модуль загружается при старте системы автоматически. Пытается зарегистрироваться на сервере хостов с указанием своего IP и/или сетевого имени. Запускает другие зарегистрированные и установленные системные модули, такие как: мониторы железа (температура, SMART у винчестеров), remote desktop, и т д.

При входе пользователя, в зависимости от настройки, запускает дополнительные модули: мессенжер, VoIP клиент, remote assistance, и другие. Так же, пытается зарегистрироваться на сервере, если до этого не удалось (нотик включили дома, а залогировались уже на работе)

Модуль имеет свою простенькую панель управления. Это позволяет запускать/останавливать модуль если надо (дорогой трафик, например). А так же изменить параметры связи в случаи работы из публичного места, где не все открыто или надо использовать прокси.

По внешнему запросу, модуль может провести какую-то задачу: обновить базу антивирусов, установить какой-то софт, или даже заменить себя на более новую версию :)

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

Какие продукты могут это использовать

Сам по себе, такой сетевой модуль, самостоятельным продуктом быть не может. Хотя, возможен вариант, этакого "конструктора" для интеграторов, но скорее всего в комплекте с каким-то функциональным сервером.

А вот разных продуктов, которые могут взаимодействовать с таким модулем, великое множество. Я не буду их детально описывать, это темы для отельных статей. Но перечислю самые востребованные и интересные:

  1. Hardware monitor - отслеживание работоспособности и учета hardware. Позволяет учитывать железки по всей сети, а так же заменять вентиляторы и винчестеры до того, как компьютер окончательно сдохнет :) Так же позволяет собирать логи, драйвера и обновления в одном месте.
  2. Remote Desktop и все что с этим связано. Удаленная помощь, копирование файлов, перенос клипборда, печать на чужой принтер, перенос звука и т д.
  3. Месенжер, видео чат, и другие методы коммуникации. VoIP и Skype выходы.
  4. Ретранслятор веб-камер, удобно для секьюрити в нерабочее время и других задачек.
  5. Система глобальной замены файлов. Для обновления антивирусных баз, драйверов, клиентского программного обеспечения. Так же, для синхронизации общих документов и настроек.
  6. Сетевые игры :)

Будем дополнять.

Как это продавать

Лучше всего инвесторам с последующим выводом компании на IPO! Я серьезно.

Имея отлажены модуль под все популярные системы, можно строить абсолютно любые сетевые продукты, да еще и интегрировать чужие. Деньги будут приносить как продажи программного обеспечения, так и сопутствующие сервисы. Например, аренда публичного сервера для поддержки внешних соединений (gateway). Можно зарабатывать на лицензировании технологии или создания совместных продуктов с уже существующими игроками на рынке. Заказы на специальные решения - тоже деньги.

P.S. Если кто-то решится запустить это в виде серьезного стартапа - свистните. С удовольствием поучаствую и как идейный вдохновитель, и как консультант.

5 комментариев:

Mykhailo Kondratiuk комментирует...

Хм... Не понимаю, зачем это надо все-таки. Ладно понимаю схему для организаций, когда надо чтобы админ попу от стула не отрывал, а юзеры не пугались. Если статья именно обэтом, то ИМХО это все достигается эволюционно - сначала делается одна фича, потом другая... третья не делается никогда, т.к. нафиг никому не нужна. ;-)

Mykhailo Kondratiuk комментирует...

Ну, а всякие файрволы, уведомления о логинах, удаленный инстал / деплой - это все оказывается весьма тривиально в реализации. ;-)

AYA комментирует...

2 mikhail:
Тривиально? Да ну? Зубы не сломаете о количество файерволов?
"суметь" открыть порт программно можно только для Windows Firewall, остальные тщательно прячут API, уже тут обломитесь...

Анонимный комментирует...

Кстати самая интересная из опубликовнных тобой идей. Есть конечно готовые программы, которые могут удовлетворить почти любого админа, например Landesk, но стоимость в 75$ на КЛИЕНТСКИЙ комп - это ахтунг.

Анонимный комментирует...

It is certainly interesting for me to read that post. Thanx for it. I like such topics and anything that is connected to them. I would like to read more soon.
Alex
Phone jammers