Казалось бы, исследование операций – весьма отдаленная от интересов 1С-ников сфера. Попробуем показать, что это не всегда так. А скоро будет всегда не так.
Взглянем на публикацию о «страшных» трехбуквенных системах от anig99 и вспомним, что восьмерка позиционировалась как ERP. Типа «все в одном».
Когда-нибудь человек приходит к тому, что ни «лоскутная автоматизация», ни монструозная система «все в одном» не справляются с требуемым объемом работы – первая, поскольку требует непомерных затрат на обмен данными, а вторая – поскольку не дает возможности гибко подстраиваться под ситуацию. Становится понятным, что комплексная автоматизация и конфигурация КА не очень-то друг с другом соотносятся.
Возьмем даже не очень многопрофильную фирму, скажем, сеть из трех магазинов стройматериалов и два цеха — по раскройке профлистов и по изготовлению заборных секций. Естественно, с соответствующим складским хозяйством, автопарком и непромсферой вроде санатория-профилактория и фитнес-центра. Справится с этим единая конфигурация – пусть даже проблем связи нет, все компьютеры в одной оптоволоконной сети? Вот УПП к примеру, ориентированный на «сборочное», а отнюдь не «разборочное» производство?
Тут мы и приходим к распределенным вычислениям. К разбиению общей задачи сбора и обработки информации на относительно самостоятельные подзадачи и упорядочиванию обмена информацией между подзадачами. Не экстенсивный подход 1С8, (неоправданное наращивание «железа», из пушки по воробьям), но интенсификация имеющихся вычислительных ресурсов. Ну, или, шаг на пути от WWW к GRID (стОит погуглить это словосочетание).
Еще один аргумент в пользу распределенных вычислений – известный принцип Оккама. Сформулируем его как «не умножай трафик без необходимости». Ну например, комплект кассовых чеков магазина никому не нужен, кроме самого магазина. Ну и пусть он остается в подсистеме фронт-офис этого магазина, подсистеме логистики передадим только итоговые данные за день.
Терминальная технология с мейнфреймами как-то слабо вяжется с ситуацией, когда вычислительная мощность терминала (ПК пользователя) отличается от вычислительной мощности мейнфрейма (сервера) всего на порядок. Скорее, следует рассматривать имеющиеся вычислительные мощности как мультимикропроцессорную систему, для которой, к сожалению, нет операционки, способной к автораспределению ресурсов.
Надо сказать, что с распределением/освобождением ресурсов и в существующей платформе не все гладко – можно хоть посмотреть обсуждение публикации Освобождение переменных в 1С .
На самом деле, не так уж сложно построить на мьютексах систему разделения вычислительных ресурсов «ручками». Вряд ли она будет оптимальной, но уж во всяком случае, в разы оптимальней, чем клиент-серверная технология, применяемая бездумно. Полной методики не существует (вернее, методики существуют, но нет их программной реализации). Поэтому вооружимся теоретическими навыками, и будем действовать интуитивно. Вот тут-то и появляются графы.
Посмотрите вот эту лекцию, а там, глядишь, и весь курс. В далекие 80-е я занимался графическим представлением сложных вычислительных задач и автоматизацией распараллеливания вычислений под научным руководством автора. Поверьте на слово, впоследствии очень пригодилось!
Примечание: Текст анонса принадлежит Alraune
(1) Словоблудие, проистекающее от незнания терминологии.
http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0 %BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D 1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F
Вот распределенные вычисления
Если используется одна СУБД (конфигурация в нашем случае) — это уже не распределенные вычисления. А вот в случае БП+ЗУП+УчетПроизводства — возможно, распределенные. И в этом случае они должны взаимодействовать, не блокируя бруг друга — вот тут-то мьютексы и пригодятся.
Клиент-серверная технология, конечно, не отстой. Просто идеологически она неотличима от систем разделения времени центральной (единственной) ЭВМ 60-х годов. И получается, что с полусотней компьютеров в сети, каждый из которых превосходит по производительности ту самую ЭВМ в десятки раз, мы имеем хорошо если двукратное увеличение скорости вычислений. Мы успешно снизили эффективность компьютеров на три порядка ради сомнительного удовольствия от посещения игровых и порносайтов, заодно отстегивая деньги, в том числе, из собственного кармана в пользу Билли и, в нашем случае, Бори. Не нравится мне это — вот и статья.
И погугли все же от WWW к GRID
Мой вопрос :
Твой ответ :
Комментариев не будет .
(1) или ,например, три конфигурации БП+ЗУП+СпециализированныйУчетПроизводства ?
иш, давай в личку, где ты это видел?
если ответишь (содержательно), я в личку скажу, где я это видел
(0) не справляются с требуемым объемом работы
извини, Арчи, изначальная кривизна целеполагания
(4) Давай так . Если для тебя это чудо , кинь вопрос на Мисту :
где вы видели БП+ЗУП+СпециализированныйУчетПроизводства ?
Получишь уже полную,исчерпывающую картину.
Теперь тебе вопрос на понимание :
УПП работает в классической трехвенке «клиент-сервер приложений- сервер БД» . Разумеется, Сервер приложений и Сервер БД — отдельно стоящие.
Можно ли считать это примером реализации распределенных вычислений ?
Да или нет ?
(4)(6)Что-то я не понял вопроса. По-моему, это обычное дело — три конфы. У меня в межсезонье пять крутится, а в сезон добавляется еще три.
(7) Я тоже не понял , чем его так напугало : БП+ЗУП+СпециализированныйУчетПроизводства ?
Миша имел ввиду Ээ… опять что-то очень глубокое, что-то очень своё.
Но это мелочи. Интереснее другое.
Сможет ли он ответить на вопрос в (6)?
(8) Могу пока я ответить. И ответ — отрицательный.
(9) В (3) я уже отказался комментировать такие заявления.
Цитата из анонса «Освещаются две основные, взаимно обратные задачи исследования операций: нахождение минимального количества исполнителей для завершения комплекса работ за заданное время и нахождение плана выполнения работ за минимальное время заданным составом исполнителей.»
А пишешь совершенно о другом 🙁
Поменяй анонс,плиз, путаешь народ.
Пока что минусую, хотя само содержание интересно.
ЗЫ по анонсу я честно говоря подумал, что ты приводишь готовое решение на 1С с графами 🙂
Его бы я с удовольствием изучил бы.
(11) Публикация имеет тип «ссылка» — на лекцию, которая в конце. И анонс — анонс этой лекции.
Мой текст — это попытка разъяснить, почему это может потребоваться одноэсникам.
ИМХО анонс нужно как-то поменять 🙁 сейчас идет путаница.
(13) Сейчас что-нибудь придумаю.
(13) Может быть, такой колор? © Мимино
Ужасная подача анонса. Все смешано в кучу, не понятно что с чем соотносить.
> Взглянем на публикацию о «страшных» трехбуквенных системах от anig99 и вспомним, что восьмерка позиционировалась как ERP. Типа «все в одном».
Вспомним? Речь шла только о «позиционировании» УПП как ERP, не просто восьмерки.
(1) Пожалуйста, если хвалите, то обращайтесь на «ты», на «вы» — как Вам хочется.
Если критикуете, то лучше на «вы». А то как-то агрессивно получается.
Скажу в защиту статьи: мало кто связывает разные технологии в одну целостную картину… для этого необходим как минимум широкий кругозор, продолжительный опыт работы и системное мышление. Идея статьи мне понравилась.
(18) Э… с Арчибальдом тут старые счеты. Строго на «ты».
А «агрессивность» — это напускное . От симпатии.
Больно уж расстроил своими «семерочными» размышлизмами.
(«семерочный» — слово ругательное в данном контексте)
Впрочем , если бы Арчибальд был знаком с «клиент-серверной технологией»
— уверен, этой статьи бы не появилось.
Когда Арчибальд все-таки перейдет на «восьмерку» — я обязательно подсуну ему эту статью
и мы вместе похихикаем.
(0)УПП к примеру, ориентированный
на торговлю оно ориентировано, а не на производство.
на разборочное — ровно в той же мере, что и не сборочное (вход и выход спецификаций — в тч)
Вариант названия статьи: «Параллельное программирование и 1С. Когда-нибудь они пересекутся…»
+(11) готовое решение на 1С с графами — сильно не хватает для + статье
(17) Вот цитата 2004 года
Но речь идет чисто о терминологической разнице. БОрис и сейчас избегает термина «ERP». Но появление восьмерочной платформы анонсировалось как ответ западным системам комплексной автомотазации. Мало того, я тоже считаю, что задача построения полноченной КИС на восьмерке стала гораздо более решабельной. Только вот решений что-то не видно — методологии нет.
(19) Суть (идеология) системы клиент-сервер приложений-сервер БД сугубо последовательная, только что с разделением времени. Клиент инициирует приложение, сервер приложений его выполняет, обращаясь время от времени к (серверу) БД, по завершении приложения клиент получает результат. Все клиенты при этом «толкутся» одновременно в пределах одной физической БД, и сколь хороша бы ни была СУБД, они друг другу мешают.
Распределенные вычисления, напротив, подразумевают автономную работу (групп) клиентов с различными базами, в различных сегментах сети. Реляционные связи между базами гораздо «слабей», чем связи внутри баз, что позволяет актуализировать их гораздо реже, а не постоянно, именно, когда появляется возможность/необходимость актуализации, т.е. когда одной базе потребуются данные от другой, а в этой другой данные будут готовы (технология «dana flow»). Когда ты проникнешься идеей параллелизма, мы вместе похихикаем 😉
😮
(24) Уж цитируешь, так цитируй полностью. Разделение времени пропустил, подменив тем самым реальный параллелизм псевдопараллелизмом. А заодно перепутал распределенные вычисления с распределенным вычислителем.
Занятно, как ты ухитряешься смотреть на мир исключительно через замочные скважины? Как можно отвергать (вместе в Василь Иванычем) танк за отсутствие уздечки?
Я толкую про распределение вычислительных ресурсов между подзадачами. Ты толкуешь о распределении серверного времени между клиентами. Твоя задача важная, конечно, и лежит в русле проблемы параллельных вычислений, но очень частная. Примерно как задача изготовления кирпичей в проблеме градостроительства.
Речь идет не о псевдопараллельности вычислений (т.е. процессор попеременно выполняет то одну ,
то другую задачу) , а речь идет о ЯВНОЙ ПАРАЛЛЕЛЬНОСТИ. В многопроцессорной системе ( а сервер приложений именно таков) В КАЖДЫЙ МОМЕНТ ВРЕМЕНИ ВЫПОЛНЯЕТСЯ НЕСКОЛЬКО ПРОЦЕССОВ ПАРАЛЛЕЛЬНО.
То же самое в сервере БД. Несколько запросов могут выполняются параллельно — одновременно.
А чтобы они чего -то не накуролесили в БД при одновременной работе с одними и теми же данными применен
механизм блокировок : Раз я изменяю , ты — постой покури. ( в твоём понимании — это те самые семафоры-мьютексы)
Так вот : клиент -серверная технология и есть воплощение идей распределенности и параллельности вычислений.
Ты стучишься в открытую дверь.
примерно так:
несколько машин, на каждой — своя база.
в одной общие НСИ, другие — по подсистемам
клиенты шуруют каждый в своей базе.
общение между базами — только внутри скулей
Поехали дальше :
И я о том же . В УПП один клиент запустил какой либо расчет по себестоимости ,
другой клиент проводит начисление зарплаты . И представь себе они друг другу совсем не мешают(не замедляют друг друга) . Вот что такое клиент-серверная технология в действии :
происходит «распределение вычислительных ресурсов».
В твоем же «семерочном» понимании распределение — это зарлата на одном компьютере , расчет на другом,
а потом они где то сливаются. Такое понимание распределенности вычислений соответствует примерно 25-летней давности.
Все смешалось в кучу кони, люди….Параллельные вычисления
Существуют различные способы реализации параллельных вычислений. Например, каждый вычислительный процесс может быть реализован в виде процесса операционной системы, либо же вычислительные процессы могут представлять собой набор потоков выполнения внутри одного процесса ОС. Параллельные программы могут физически исполняться либо последовательно на единственном процессоре — перемежая по очереди шаги выполнения каждого вычислительного процесса, либо параллельно — выделяя каждому вычислительному процессу один или несколько процессоров (находящихся рядом или распределённых в компьютерную сеть).
Подвид параллельных вычислений — распределенные, а подвид распределенных — клиент-сервер. Про какую параллельность идет речь — ежели она в одном из видов может быть на стареньком однопневом компе?
Я толкую про распределение вычислительных ресурсов между подзадачами.
Это какие ресурсы вычислительные? Они вроде все вычислительные(компьютерные equal вычислительные — по русски compute — вычислять)…Аппаратные?
Оффтоп.
Продолжайте-продолжайте…
Пойду еще за чипсами сбегаю…
(27) По моей ссылке в (2):
Вот так то. А то
— поздравляю Вас, сударь, соврамши. Распределенные вычисления не требуют вообще многопроцессорности (еще бы они требовали, будучи примененными еще в 18 веке, задолго до машины Беббиджа). А трехуровневая логическая архитектура «клиент-сервер приложений-сервер данных» в те же 70-е годы уже применялась на однопроцессорных ЭВМ.
Тут не о семерочном понимании надо говорить, а о восьмерочной зашоренности (бедная восьмерка! Знай она, что у нее такие невежественные апологеты будут, она бы не родилась)
(32) Исходная цитата , в которой я «соврамши» по твоему :
1. В том , что сервер приложений — многопроцессорный ?
2. В том , что «В КАЖДЫЙ МОМЕНТ ВРЕМЕНИ ВЫПОЛНЯЕТСЯ НЕСКОЛЬКО ПРОЦЕССОВ ПАРАЛЛЕЛЬНО» ?
Из того, что «..трехуровневая логическая архитектура «клиент-сервер приложений-сервер данных» в те же 70-е годы уже применялась на однопроцессорных ЭВМ» — ЧТО СЛЕДУЕТ ? Что я «соврамши» в п.1. или 2 ?
Фи.. логическая невежливость хуже грубости.
Бросай ты «семерку» , и теоретизирование о «клиент-серверной технологии» — перейди на 8 , напиши хотя бы пару запросов — мы с тобой поговорим поплотнее. А сейчас — всё в пустоту…
(33) В том, что «сервер приложений именно таков» (многопроцессорный). Возможно, именно таков (единственный?) знакомый тебе сервер приложений. А у меня восьмерочная конфигурация (есть и такая с 9 года, и при внедрении пару запросов я написал для выгрузки) крутится на однопроцессорном сервере приложений, совмещенном с сервером БД.
«Поговорим поплотнее» о запросах — совсем уж неинтересно. Может еще форматы операторов цикла обсудим?
(33)
http://www.1c.ru/rus/products/1c/predpr
1) «Бросай ты «семерку» , и теоретизирование о «клиент-серверной технологии» — перейди на 8″(с)
Игорь. Это про «семерку» написано:
…представляет собой расширение системы «1С:Предприятие», позволяющее организовать работу с базой данных в режиме «клиент-сервер».
Вот тут:
2) «напиши хотя бы пару запросов»(с)
Вот оно — «смотреть на мир исключительно через замочные скважины»(с). 😉
Какая связь «запросов» с обсуждаемой темой?
Но, даже, если говорить о «клиент-сервер», то бывают «запросы» без «клиент-сервер». А бывает «клиент-сервер» без «запросов».
(36)
1. Ну , на заборе много чего написано. А вы не читайте рекламные проспекты про 77 в SQL-варианте.
2. Запросы приведены лишь в качестве примера практической работы. Так сказать ощутить «естество и плоть» клиент-серверного варианта работы. И ничего более не имелось ввиду.
Вы по существу вопроса-то что можете сказать ?
Прочитайте вопрос в (6).
Миша струхнул отвечать , за него вступился Арчибальд в (9) , а Вы ответите ?
На всякий случай . Я сам на него ответил в (24).
(37)
1) «А вы не читайте рекламные проспекты про 77 в SQL-варианте»(с)
Игорь. Я читаю не только рекламные проспекты. И не только — читаю… 😉
2) «Прочитайте вопрос в (6)»(с)
Я прочитал внимательно всю тему.
3) «… а Вы ответите ?»(с)
На вопрос «Можно ли считать это примером…» — да. Это, действительно, только — «пример».
На вопрос «…реализации распределенных вычислений» — нет, если в контексте обсуждаемой публикации.
Т.к. эта «классическая трехвенка» является переходником между схемой БД и алгоритмами обработки информации потребными предметной области и убогими возможностями запросной/реляционной модели СУБД. Но при внимательном разглядыванием «трехзвенки» можно усмотреть элементы похожие на «распределенные вычисления». Они там появились случайно, как побочный продукт… 😉
Мне представляется, что автор публикации сделал акцент на: «…приходим …к разбиению общей задачи … на … самостоятельные подзадачи и упорядочиванию обмена информацией между подзадачами». И, думаю, под словами «задача» и «подзадача» подразумевается не «ОДНОВРЕМЕННО выполнять несколько запросов от разных клиентов»(с).
Т.е. в публикации идет речь о более высоком уровне распределенных вычислений.
Хотя пример про «комплект кассовых чеков»(с), больше, в духе продуктов от 1С. Слишком упрощено. На самом деле мало передавать «только итоговые данные за день»(с). Требуется постоянно отслеживать остатки, «дисконт», возврат и т.д.
(38) Угумс…
Полный вопрос : Можно ли считать это примером реализации распределенных вычислений ?
Ответ :
На вопрос «Можно ли считать это примером…» — да. Это, действительно, только — «пример».
На вопрос «…реализации распределенных вычислений» — нет, если в контексте обсуждаемой публикации.
Ясный вопрос один , ответа два.
Это чтоб Арчибальда не сильно обидеть ?
Вроде да , но , вообщем -то нет…
Тихо отползаю.
Ок.
как бы почитал, прикольно, если прикинуть к 1с
таки одна конфа или несколько (более одной)?- две разницы
обмен по почте — тогда можно попробовать что-то замутить офлайн
скажем, такая задача.
две фирмы с разной ставкой на прибыль.
два или более узла (это сколько участников наберем)
в каждом узле ведется деятельность обеих фирм.
надо иметь сумму налога «в реальном времени» — на любой машине
расходы, для простоты, только прямые = цена закупа, прибыль = выручка — закуп.
два документа, ПНК и РНК, оплата считается совершенной по факту отгрузки.