Казалось бы, исследование операций – весьма отдаленная от интересов 1С-ников сфера. Попробуем показать, что это не всегда так. А скоро будет всегда не так.
Взглянем на публикацию о "страшных" трехбуквенных системах от anig99 и вспомним, что восьмерка позиционировалась как ERP. Типа «все в одном».
Когда-нибудь человек приходит к тому, что ни «лоскутная автоматизация», ни монструозная система «все в одном» не справляются с требуемым объемом работы – первая, поскольку требует непомерных затрат на обмен данными, а вторая – поскольку не дает возможности гибко подстраиваться под ситуацию. Становится понятным, что комплексная автоматизация и конфигурация КА не очень-то друг с другом соотносятся.
Возьмем даже не очень многопрофильную фирму, скажем, сеть из трех магазинов стройматериалов и два цеха - по раскройке профлистов и по изготовлению заборных секций. Естественно, с соответствующим складским хозяйством, автопарком и непромсферой вроде санатория-профилактория и фитнес-центра. Справится с этим единая конфигурация – пусть даже проблем связи нет, все компьютеры в одной оптоволоконной сети? Вот УПП к примеру, ориентированный на «сборочное», а отнюдь не «разборочное» производство?
Тут мы и приходим к распределенным вычислениям. К разбиению общей задачи сбора и обработки информации на относительно самостоятельные подзадачи и упорядочиванию обмена информацией между подзадачами. Не экстенсивный подход 1С8, (неоправданное наращивание «железа», из пушки по воробьям), но интенсификация имеющихся вычислительных ресурсов. Ну, или, шаг на пути от WWW к GRID (стОит погуглить это словосочетание).
Еще один аргумент в пользу распределенных вычислений – известный принцип Оккама. Сформулируем его как «не умножай трафик без необходимости». Ну например, комплект кассовых чеков магазина никому не нужен, кроме самого магазина. Ну и пусть он остается в подсистеме фронт-офис этого магазина, подсистеме логистики передадим только итоговые данные за день.
Терминальная технология с мейнфреймами как-то слабо вяжется с ситуацией, когда вычислительная мощность терминала (ПК пользователя) отличается от вычислительной мощности мейнфрейма (сервера) всего на порядок. Скорее, следует рассматривать имеющиеся вычислительные мощности как мультимикропроцессорную систему, для которой, к сожалению, нет операционки, способной к автораспределению ресурсов.
Надо сказать, что с распределением/освобождением ресурсов и в существующей платформе не все гладко – можно хоть посмотреть обсуждение публикации Освобождение переменных в 1С .
На самом деле, не так уж сложно построить на мьютексах систему разделения вычислительных ресурсов «ручками». Вряд ли она будет оптимальной, но уж во всяком случае, в разы оптимальней, чем клиент-серверная технология, применяемая бездумно. Полной методики не существует (вернее, методики существуют, но нет их программной реализации). Поэтому вооружимся теоретическими навыками, и будем действовать интуитивно. Вот тут-то и появляются графы.
Посмотрите вот эту лекцию, а там, глядишь, и весь курс. В далекие 80-е я занимался графическим представлением сложных вычислительных задач и автоматизацией распараллеливания вычислений под научным руководством автора. Поверьте на слово, впоследствии очень пригодилось!
Примечание: Текст анонса принадлежит Alraune