|
По нажатию кнопки получать данные из другой базы. COM vs WS vs Другое? | ☑ | ||
---|---|---|---|---|
0
cube033
14.04.15
✎
05:33
|
Что бы вы выбрали?
Есть Центральная база (серверная) и несколько периферийных баз (файловых) на локальных (умеренно удаленных) машинах. Конфигурации совпадают (самописные). Обмены проходят каждые 15 минут. Появилась необходимость в центре получить актуальную информацию из периферии по нажатию кнопки. Первое, что приходит в голову - запрос по COM. Препятствие только в том что базы файловые на локальных компах, до них надо достучаться - надо расшаривать в сеть папки с базами, вроде и взлететь должно без проблем, но и костылями попахивает. Второй вариант напоминает стрельбу из пушки по воробьям. Поднять на локальных машинах Апач, опубликовать базу в WEB, создать объект XDTO и пользоваться WSПрокси итд. Или может есть что-то лучше? |
|||
1
Cube
14.04.15
✎
05:38
|
(0) Сделай им большую кнопку "Выполнить обмен прям щас!" и всё.
|
|||
2
Cube
14.04.15
✎
05:40
|
(0) О, это опять ты!))) Плагиаторщик...))
|
|||
3
cube033
14.04.15
✎
05:42
|
(2) Ага - как-то вот нам не повезло жить в похожих часовых поясах)
|
|||
4
cube033
14.04.15
✎
05:44
|
(1) Обмен же дело двусторонее. Проходит он через файлы, а значит удаленная база сначала должна провести обмен и отдать свой файл. И когда мы захотим из центральной базы заставлять переферийную делать обмен, тогда столкнёмся с той же проблемой.
|
|||
5
Маратыч
14.04.15
✎
06:01
|
(0) Сделать обмены каждые 5 минут и объяснить бухам, что секунда в секунду данные они увидят только при терминальном доступе к центральной базе.
По моему опыту, подобные хотелки в абсолютном большинстве случаев не имеют никакого разумного обоснования, кроме "внезапно взбрендило". |
|||
6
Cube
14.04.15
✎
06:01
|
(4) Так ты добавь своему обмену функционала. Сейчас у тебя обмен по расписанию, сделай ещё и по событию: наличие файла-маркера. И мониторь этот файл-маркер каждые 30 сек.
Появился фай-маркер - пошел обмен. Создать файл-маркер можно в пару строк кода из любой базы. |
|||
7
cube033
14.04.15
✎
06:33
|
(5) здесь есть немного логики в хотелке. На периферийных точках грузят вагоны на весах, а из центра нужно получать текущую инфу и корректировать дальнейшую загрузку состава.
(6) Идея интересная конечно. В общем специфика такова, что вся система состоит из 5 центральных и более 15 периферийных баз и обмены - это одно из слабых мест. И нагружать их больше я бы не хотел. При этом мы стремимся к идентичности конфигураций, поэтому решение принятое для этих баз - будет актуальным и для всех остальных. И хоть решение (6) довольно оригинальное, но по моим ощущениям: файлы пустышки, дополнительные чтение/запись/удаление файлов, учащение обменов, дополнительный обработчик ожидания не намного изящнее подключения по COM Плюс при использовании (6) я бы пытался наверное сверять дату последнего обмена и дату файла в папке обмена (если это получится), а не создавать файлы-маркеры, а потом удалять их. |
|||
8
Маратыч
14.04.15
✎
06:37
|
(7) Есть мысля, что с такими частыми обменами и запросами данных по COM может еще и куча коллизий из-за блокировок организоваться в центральных базах. Впрочем, это лишь предположение.
|
|||
9
Cube
14.04.15
✎
06:42
|
(7) Ну так а почему бы им онлайн не поработать? Зачем обмены?
Можно ведь сделать и онлайн и оффлайн одновременно. Пока связь есть, все работают онлайн, когда со связью проблемы, запускают оффлайн базу и работают в ней, пока связь не наладится. |
|||
10
Cube
14.04.15
✎
06:50
|
(9) И вообще, в современных реалиях, мне кажется, проще и правильнее резервные каналы связи организовать (через GSM модем тот же), чем ждать, когда обмен приподнесет очередной сюрприз...
|
|||
11
cube033
14.04.15
✎
06:56
|
(8) Действительно сейчас в центральной базе (в той, в которой возникла необходимость получения инфы по кнопке) периодически фоновое задание обменов блокирует всю работу. Мы боремся с этим. Именно поэтому дополнительный функционал я хотел бы возложить на клиента. Т.е клиент делает запрос по COM в файловую базу - тырит оттуда инфу и показывает в виде отчета - на первый взгляд никакой доп нагрузки на сервер.
(9) Опять же в системе не достаточно гибкости. Переферийных точек много, качество сети у всех разное, к тому же на каждой надо работать с оборудованием. Решение использовать отдельную базу для каждой точки было принято ещё до меня, но мне оно кажется логичным. Да и всех такая система устраивает. С этими 15 базами работает близко к 100 человек - и объяснять каждому, что вы работайте с этой базой, а если сеть печалька, то запускайте эту и продолжайте с такого-то места. (10) опять же менять/дооборудовать надежную систему потому что так правильнее никто не станет - хотя бы ИБП на всех локальных машинах поставить - уже счастье) |
|||
12
0xFFFFFF
14.04.15
✎
07:29
|
(0) Первое что приходит в голову - это нормальный интернет канал, RDP и отключение периферийных баз.
|
|||
13
cube033
14.04.15
✎
07:44
|
(12) Это конечно идеальный вариант)
У самой крупной центральной базы 9 перифирийных узлов, на периферийном узле от 1 до 3 устройств на com портах, общение происходит через разные dll-ки. периодичность общения 1 секунда. Видиться мне, что это всё нестабильный гемморой будет, если всё это запустить по RDP. |
|||
14
arsik
гуру
14.04.15
✎
07:47
|
Еще можно по кнопке создавать флаг и опрашивать этот флаг периодически из периферийной. На сервере поднять WS, когда флаг появился, периферийная через WS отдает нужные данные в центр.
|
|||
15
Cube
14.04.15
✎
07:50
|
(13) Ну так можно же не RDP, а TCP/IP... Поднял VPN-туннель и работаешь, как по сети...
|
|||
16
cdiamond
14.04.15
✎
07:56
|
Мне одному кажется, что выбранный инструмент (1С) не соответствует масштабу задач?
|
|||
17
Cube
14.04.15
✎
07:58
|
(16) В смысле, надо вести в Экселе? Или в том смысле, что надо САП внедрять?
В любом случае, я с тобой не согласен :) |
|||
18
cdiamond
14.04.15
✎
08:01
|
(17) САП конечно вариант, но возможно тут что-то самописное нужно или поискать готовое решение. Критериям информационной безопасности такое решение не отвечает. Чуть что упадет и предприятие (я так понимаю серъезное, если вагонами грузят) целиком или частично встанет.
|
|||
19
cube033
14.04.15
✎
08:01
|
(15) Что не сообщение, так интересная идея)
Жаль, что не эффективно в условиях нестабильной сети. (16) Отчего же. Нужна учетная программа по производству и продаже и мониторингу качества продукции. 1С как раз прям. Причем конфа не крупная получилась и всё работает. Просто потребности растут постоянно, но даже на уровне прогнозов не выходят за пределы возможностей 1С. |
|||
20
cube033
14.04.15
✎
08:05
|
(18) Пока всё лежит в отдельных базах и есть бэкапы - всё не так страшно. Сейчас, чтобы не случилось с сетью - можно спокойно продолжать работать.
|
|||
21
cube033
14.04.15
✎
08:07
|
Скажите уже кто-нибудь, какие недостатки есть в способах, описанных в (0)?
|
|||
22
APXi
14.04.15
✎
08:10
|
Могу предложить что то типа такого http://infostart.ru/public/297399/
Конечно придется под себя переделывать, зато апач не надо поднимать и настраивать. |
|||
23
cdiamond
14.04.15
✎
08:24
|
(20) Бэкапы это хорошо. А ты проводил моделирование падения сервера и проводишь ли регулярные тренировки по восстановлению? Сколько времени ушло на восстановление? А со стороны бизнеса это время восстановления их устроило? :)
Моих вот не устроило и вопрос стоит про полностью отказоустойчивый кластер и как здесь ведет себя 1С пока не могу сказать, изучаю только тему :) |
|||
24
cdiamond
14.04.15
✎
08:30
|
(21) Я WS поднимал, скажу что это вовсе несложно, но отлаживать трудно, зато работает железобетонно даже при плохих условяих связи. Правда клиент для 1С был на Java написан.
|
|||
25
Fragster
гуру
14.04.15
✎
08:34
|
у меня схема с вебсервисами работала, правда немного по другому - вебсервер был только в центре, а периферийки спрашивали периодически, нет ли чего для них. При отправке данных из центра - данные ставились на обмен, и заливались в ПБ при её запросе. При отправке из периферийки данные сразу заливались в центр.
плюсом накручена система удаленного выполнения кода на внешних обработках. |
|||
26
Fragster
гуру
14.04.15
✎
08:34
|
периодически - раз в минуту
|
|||
27
cube033
14.04.15
✎
09:01
|
(23) У меня тут чит) Я только разрабатываю ПО - администрируют другие люди.
(25) ну вот это уже логично и не из пушки по воробьям |
|||
28
Бубка Гоп
14.04.15
✎
09:11
|
(0) я бы сделал на com
|
|||
29
Зеленый пень
14.04.15
✎
09:18
|
Апач недолго поднять - удобно и надежно.
|
|||
30
cube033
14.04.15
✎
09:35
|
(22) Крутое решение. Я так понимаю написана собственная служба.
(28) похоже и правда самый простой, а главное подходящий путь (29) Да вроде, но на локальных машинах конечных исполнителей мне кажется, что это уже лишнее. |
|||
31
Web00001
14.04.15
✎
09:40
|
Где то независимый сервис всегда онлайн который опрашивается регламентным заданием из 1С. На get запрос, прилетает ответ, "выгружайся", post запросом туда выгрузиться, флаг "выгрузился" устанавливать автоматом после успешной выгрузки.
|
|||
32
Остап Сулейманович
14.04.15
✎
09:51
|
"к тому же на каждой надо работать с оборудованием." ЦЫ(11) Для работы с оборудованием перейти на нормальную SCADA и не пытаться подставлять костыли в виде 1С.
1С - учетная система и с оборудованием да еще распределенным работает только на костылях. Изобретать лисапед конечно можно. Только колеса в таком варианте всегда будут квадратными. |
|||
33
Лефмихалыч
14.04.15
✎
09:54
|
(0) перевести периферийки в терминал, чтобы они работали в онлайне там, где данные нужны, - не вариант?
|
|||
34
Лефмихалыч
14.04.15
✎
09:55
|
просто, если данные нужны в онлайне, а там файловые на каких-то офисных цыфрогрызах, то любое решение по подключению туда - костыли и не серьезно
|
|||
35
cube033
14.04.15
✎
10:45
|
(33) собственно (13) об этом
(34) надо понимать, что получение данных онлайн - это очень маленький % функционала. Это далеко не основная схема работы - это просто спросить "как дела?" у удаленной базы. Просто передать УИД документа, а в ответ получить 30 строк табличной чати этого документа - не надо сразу всю систему под это перекраивать |
|||
36
hhhh
14.04.15
✎
12:33
|
(35) и для этого вы планируете каждый раз запускать отдельный экземпляр 1с-Предприятия?
|
|||
37
Serginio1
14.04.15
✎
13:05
|
Есть еще более быстрый вариант по TCP/IP
v8: v8: Использование сборок .NET в 1С 7.x и 8.x |
|||
38
Serginio1
14.04.15
✎
13:06
|
Промахнулся
v8: v8: Использование сборок .NET в 1С 7.x и 8.x |
|||
39
cube033
14.04.15
✎
13:26
|
(36) Ну вроде меньшее из рассматриваемых зол
(38) Навреняка это очень круто, но для данной задачи - это кажется перебор. |
|||
40
Popkorm
14.04.15
✎
13:50
|
(0) Это все равно будет костыль, делай одно базу, и пусть все коннектится,через web/RDP....
|
|||
41
Serginio1
14.04.15
✎
13:57
|
(39) Это значительно легковеснее чем Ole or Web
|
|||
42
Nykos
14.04.15
✎
14:07
|
Только недавно выполнял похожую задачу, делал через ком, может и не так виртуозно, но я бы не сказал что 3 секунды затупа при подключении это критично...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |