Имя: Пароль:
IT
 
Эффективно и быстро программный сервер (не 1С)
,
0 pavig
 
04.09.18
09:16
Есть потребность предприятия на своих удаленных точках, связь с которыми очень нестабильна, запустить мини-сервера.

Сервер, в общих чертах, умеет:

1. Сам стучаться на облачный сервер и запрашивать и передавать необходимые данные
2. У себя в базёнке хранить текущие данные. Грубо - сутки.
3. Пользователи через веб-интерфейс (то есть придется писать еще фронтенд) считывают и вносят какую-то информацию. Веб-интерфейс должен быть в высокой степени удобным и быстрым. Но функциональность планируется не сложная и не богатая
4. Предоставлять API для офф-лайн мобильного приложения
5. По неким простым алгоритмам обрабатывать текущую внесенную информацию, фиксировать её у себя
6. Сам может "складывать" необходимые файлики на локальный файл-сервер и считывать их оттуда же
7. Количество одновременных пользователей каждого сервачка: 2-3 + одно офф-лайн мобильное приложение
8. Планируется, что тираж этих сервачков составит 200 и более экземпляров (в зависимости от успешности реализации)
9. Объем информации небольшой


Естественно, первым делом напрашивается локальная базёнка на 1С.
Скажу сразу, мы этот вопрос уже прокурили, есть свои как плюсы (быстрая разработка, есть сильная команда разработчиков 1С), так и минусы (ненадежность файловой базы, высокая стоимость серверного варианта, стоимость лицензий и т.п.).

Сейчас начинаю изучать вопрос в сторону того чтобы делать всё это не на 1С. Для этого либо нанять временных разработчиков, либо нанять разработчиков в штат.

Вот тут и возникает вопрос - на чем эффективнее писать подобную забубулину?


Вижу варианты:

1. Метнуться в сторону Metadata.js. Есть у кого реальный опыт?
Плюсы: CouchDB сама очень хорошо умеет в репликацию (не придется писать сервисы), обмен с 1С (основная учетная система) вроде бы есть из коробки.
Минусы: Кому-то придется изучать этот фреймворк. И не факт что он пригодится в будущем. Хотя, имея такой тиражируемый продукт, вроде бы разработчику вполне себе кусок хлеба с икрой (красной) вроде бы обеспечен...
Самый тяжелый минус: мало проектов на этом фреймворке, вообще непонятны трудозатраты. Причем никто не сможет это оценить, пока не начнется разработка. А время - деньги, как говорится. Ну и, естественно, происходит сильная привязка проекта к разработчику. Потом найти замену в случае чего будет ой как непросто.

2. Нанять двух-трех "студентов" на PHP и быстро прототипировать и смотреть что получается.
Плюсы: порог вхождения в PHP вроде бы пониже чем на остальных языках, значит, первые версии программы должны выйти подешевле. Это для меня самый жирный плюс. Плюс не придется использовать такой радикально-специфический продукт как Metadata. Разработчик не становится уникальным, снижается зависимость.
Минусы: Нужно будет отдельно заказывать фронтенд.

В общем, задача интересная. Но мало знаний.


Камрады, покритикуйте, предлагая. Кто как решал бы подобную задачу?
41 Вафель
 
04.09.18
10:35
А зачем тебе 200 серверов? делай SaaS
42 AquaMan
 
04.09.18
10:36
Нанимать знающего человека, либо аутсорс компанию на этот проект. На студентов, которые на php напишут что-то толковое, я бы не рассчитывал, они могут только типовые задачи делать. Python или ASP.Net напрашивается под эти задачи.
43 pavig
 
04.09.18
10:37
(41)
Подробнее плиз....
У меня на точках канала толком может не быть. Но приложение работать в это время ДОЛЖНО.
44 Fragster
 
гуру
04.09.18
10:37
(41) не все готовы свои данные отдавать кому-то
45 ansh15
 
04.09.18
10:38
(0) >>удаленных точках, связь с которыми очень нестабильна
Улучшать качество связи не планируется? Это будет сильно дороже 200 мини серверов или разработки чего-то своего?
46 Garikk
 
04.09.18
10:39
(40) ага, только в теории все просто
а потом начнется интересное. поменяли структуру базы например и надо её  на 200 серверов реплицировать... а потом оп и ошибка и все 200 упали...поднимать вручную? бекап?
47 APXi
 
04.09.18
10:40
(0) Вы же там не ERP будет ставить, а как понимаю самописную конфу, интерфейс будет летать, если правильно сделаете.
48 Garikk
 
04.09.18
10:40
или половина обновилась, половина нет, приложение с одним апи, некоторые сервера со старым...надо их поддерживать паралельно
49 pavig
 
04.09.18
10:41
(42)
У нас в команде есть чувак который был аналитиком в одном крупном уникальном и очень успешном проекте на питоне.
Он озвучил минусы питонцев:
1. Дорого
2. Внеконтекстное выполнение. "Не вникают в то что делают". Нужен высокий уровень формализации задания.
3. Дефицитно

Он больше топит за PHP на эту задачу в угоду доступности специалистов.
50 pavig
 
04.09.18
10:44
(45)
К сожалению, не везде это возможно. Поэтому думаем о локальном сервере "сам с усам".
Мы сейчас используем (упоминал выше) мобильное приложение на всех этих точках, так что все проблемы со связью мы уже собрали и проблему знаем очень хорошо и прямо в лицо, а не сбоку.
51 AquaMan
 
04.09.18
10:46
(49) На волне хайпа нейронных сетей и машинного обучения питон сейчас стал очень популярным языком. Может конечно от города зависит. Но мне показалось средний уровень разработчика на php очень низкий, сделать что-то без использования CMS нереальная проблема для большинства. Хотя вам проще самим проверить, пообщавшись с потенциальными исполнителями.
52 Garikk
 
04.09.18
10:47
(49) в PHP доступность не специалистов, а джунов которые код пишут внутри html как "по старинке"

а "Внеконтекстное выполнение. "Не вникают в то что делают" -- так и должно быть на самом деле
другой подход это получится мешанина из самодеятельности и костылей которую невозможно будет поддерживать
53 pavig
 
04.09.18
10:48
(46) (48)
Риски, согласен.
Есть какая-то альтернатива?
54 pavig
 
04.09.18
10:50
(52)
"другой подход это получится мешанина из самодеятельности и костылей которую невозможно будет поддерживать"
То есть так, как это происходит у нас в 1С?)
55 Garikk
 
04.09.18
10:53
(54) именно, в 1С как раз подход "сам себе архитектор, программер и РП" потому что "денег нет"
56 Вафель
 
04.09.18
10:54
кстати есть минисерверы 1с на 5 пользователей. вполне по деньгам наверно
57 Вафель
 
04.09.18
10:54
в вашем случае лучше писать на 1с, ибо не на 1с вы запорете обязательно
58 Garikk
 
04.09.18
10:55
(53) дело не в альтернативе, а в том что это сложнее чем кажется, не "бац бац и работает"
59 Сияющий в темноте
 
04.09.18
10:55
php вполне потянет в связке с MySql,это как раз для него задача,ну и запуск обменов по таймеру,и,самое главное,что можно убунту на миникомп вкострячить и будет работать.

Если есть программисты java,то можно нарисовать приложение
60 Остап Сулейманович
 
04.09.18
10:55
(56) Какое оно имеет отношение к задаче в (0)?
61 Вафель
 
04.09.18
10:56
(60) там 1 из пунктов было - что сервер 1с - это дорого
62 Остап Сулейманович
 
04.09.18
10:58
(61) Вы еще кассовый сервер предложите. Ну а че? Слово же сервер есть. И не дорого ))))
63 Сияющий в темноте
 
04.09.18
10:58
(58)если описать через обьекты интерфейс к базе,то при изменении структуры мы только меняем описание обьекта.

php вещь замечательная,параллельные потоки,сокеты на низком уровне и т.п.интересные вещи,а главное,что все просто и работает.
64 Вафель
 
04.09.18
10:59
(62) а что такого то? ведь предполагаетсяф всего 2-3 пользователя
65 Остап Сулейманович
 
04.09.18
10:59
(64)
Что из этого
"1. Сам стучаться на облачный сервер и запрашивать и передавать необходимые данные
2. У себя в базёнке хранить текущие данные. Грубо - сутки.
3. Пользователи через веб-интерфейс (то есть придется писать еще фронтенд) считывают и вносят какую-то информацию. Веб-интерфейс должен быть в высокой степени удобным и быстрым. Но функциональность планируется не сложная и не богатая
4. Предоставлять API для офф-лайн мобильного приложения
"
умеет сервер 1с?
66 arsik
 
гуру
04.09.18
10:59
(33) Я тоже за такой подход. Не обязательно всю метадату тащить. Можно коуч базу + апи к ней.
67 Вафель
 
04.09.18
11:00
(65) абсолютно все это умеет. плюс быстрая разработка и спецы уже есть
68 Dmitry1c
 
04.09.18
11:01
(0)

ты: ЛПР, дай бабла
ЛПР: зачем?
ты: сервер купить
ЛПР: зачем?
ты: ну чтобы нормально было
ЛПР: дак итак все работает

тут голова болит у тебя, и это твои проблемы.
69 Сияющий в темноте
 
04.09.18
11:01
Если пользователи через браузер,то файловая 1с через хттп сервис вполне пригодна для работы,но,единственный возникающий вопрос-зачем
да и лицензию нужно на каждого пользователя,если читать их правила лицензирования.
70 Остап Сулейманович
 
04.09.18
11:04
(67) Сервер 1С это всего лишь прокладка между сервером БД и тонким клиентом. Все.
Нифига он не умеет
"стучаться на облачный сервер" - это клиент
"в базёнке хранить текущие данные" - это сервер БД
"Пользователи ... считывают и вносят какую-то информацию" - это клиент
"Предоставлять API для офф-лайн мобильного приложения" - это клиент.
Ничего из этого не умеет минисервер. Да и "взрослый" сервер приложений 1с тоже.
Понятно, что все выше сказанное относится к экосистеме 1С.
71 pavig
 
04.09.18
11:05
(57)
А почему ты считаешь что не на 1С мы запорем обязательно?)
72 Остап Сулейманович
 
04.09.18
11:06
(69) "единственный возникающий вопрос-зачем"
ИМХО - от неумения нарисовать HTML форму и обработать запрос от фронта.
73 pavig
 
04.09.18
11:06
(56)
Я писал математику в (10)
74 Вафель
 
04.09.18
11:06
(71) у вас нет опыта таких проектов. в таком масштабном проекте куча подводных камней будет
75 Вафель
 
04.09.18
11:07
(73) что-это за точка что 23 тыщи - это дорого? Что это за холдниг такой, что степлеры в лизинг берет
76 Вафель
 
04.09.18
11:09
вы 2 млн на разработку съедите легко и не подпавитесь и ничего не сделаете
77 pavig
 
04.09.18
11:09
(33) (66)
а логику на чем?
Вариант интересный, тоже думал об этом. Но это решит вопрос репликации и хранения, но останеся вопрос логики.
78 Вафель
 
04.09.18
11:10
(77) логику на клиенте всю делать: типа реакт-вью или какие спецы есть
79 elCust
 
04.09.18
11:11
(0) Уже давно проходили: Краилово ведет к попадалову, т.к не взлетит.
80 агент смит
 
04.09.18
11:11
(75) обычный провинциальный колхоз с соотв мышлением бизнеса и ИТ
81 Вафель
 
04.09.18
11:12
самая проблема что с вашей стороны нет того кто бы смог оценить качество не 1сного продукта
82 агент смит
 
04.09.18
11:15
(81) какого продукта, тут требования внятно тс сформулировать не может
83 Вафель
 
04.09.18
11:18
(82) тот, который им напишет приглашенный пхпшник или другой кто
84 pavig
 
04.09.18
11:18
(78)
Не эффективнее будет написать прокладку, организующую объектную логику и предоставляющую API?
Чем писать логику сначала на веб-клиенте, потом то же самое на мобилке, потом то же самое на роботах интеграции?
85 Вафель
 
04.09.18
11:19
(84) на мобилке тоже можно веб юзать
87 Вафель
 
04.09.18
11:24
(86) Это уже совершенно другой вопрос
88 Oftan_Idy
 
04.09.18
11:24
(0) Используй классику - "php + mysql + ngnix(apache) + cron" и будет тебе счастье.

Бесплатный софт плюс бац бац и в продакшн
89 ptiz
 
04.09.18
11:32
Кстати, а не дешевле выйдет более устойчивую связь наладить в точках? И работать с центром?
90 arsik
 
гуру
04.09.18
11:34
Кстати наверно через коуч-поуч можно и логику по базам раскидывать, а не только данные.
91 Garykom
 
гуру
04.09.18
11:35
(0) Не зная точных требований невозможно выбрать на чем реализовывать этот "сервер".

Стоимость/распространенность специалистов по разработке это одно из при выборе.
Выбор из php/C#/java/js/python и т.д. как и какую бд использовать и прочее.

Если у вас уже есть сильная команда 1С-ников то не парьтесь и берите http://oscript.io/docs/page/http
Еще допом наймите С# спеца на постоянку или фри чтобы http://oscript.io/docs/page/libraries дописал требуемые если что.
92 pavig
 
04.09.18
11:36
(89)  
см. (50)
Пока - изучаем вопрос о софте.
93 pavig
 
04.09.18
11:37
(90)
кстати может быть и да
94 Garykom
 
гуру
04.09.18
11:39
(90) В продакшен этот CouchDB имеет огромную кучу проблем и основная что оно NoSQL и хреново ложится на обычные реляционные (табличные) данные.
95 pavig
 
04.09.18
11:39
(91)
что скажешь про (14)?
96 Asmody
 
04.09.18
11:41
(0) Посмотри на https://firebase.google.com/
Если данных действительно немного, может хватить бесплатного плана.
Простенького веб-клиента с аутентификацией и плюшками можно написать за пару часов на vue или react.
97 Garykom
 
гуру
04.09.18
11:43
(95) Ничего не скажу ибо не знаю Go и эту штуку.
98 Garykom
 
гуру
04.09.18
11:44
(91)+ В качестве БД можно взять классику в виде Postgres, есть готовые решения по репликации между серверами.
99 Garykom
 
гуру
04.09.18
11:46
(96) Каким образом оно поможет если ТС требуются распределенные локальные сервера, которые выступают промежуточными "узлами РИБ" между мобильным приложением, веб-клиентами и центральной БД.

У них центральная БД не проблема и засовывать ее в облако нет никакого смысла.
100 Asmody
 
04.09.18
11:49
101 Garykom
 
гуру
04.09.18
11:51
(100) "Note: Offline persistence is supported only in Android, iOS, and web apps."

Особенно смешно с "For the web, offline persistence is an experimental feature that is supported only by the Chrome, Safari, and Firefox web browsers."
102 ssz84
 
04.09.18
11:52
(0) Дойдёт до фактической реализации - готов участвовать в реализации на php - веб клиент, серверная часть, api для 1с и мобилок
103 ГеннадийУО
 
04.09.18
11:53
(0) С  метадатой одна большая проблема - нет актуальной и полной документации. Поэтому раскуривать придется долго...
104 Asmody
 
04.09.18
11:53
(101) Чего смешного? Веб и мобайл. Все ьраузеры поддерживаются.
105 Garykom
 
гуру
04.09.18
11:54
(98)+ Как вариант берем Postgres к нему добавляем http://postgrest.org/en/v5.0/tutorials/tut0.html и пишем еще фронт на HTML5/CSS/JS.

Это пожалуй самый быстрый вариант для запуска, очень энтерпрайзный и гибкий.
106 Garykom
 
гуру
04.09.18
11:54
(104) Объясни каким местом и откуда мобильное приложение их будет получать и куда отправлять данные, если связь того?

В какой браузер?
107 Asmody
 
04.09.18
11:56
(106) Там все написано в примерах.
108 Вафель
 
04.09.18
11:59
файрбейз вроде умеет оффлайн работать
109 Garykom
 
гуру
04.09.18
12:00
(107) У Firebase есть один минус, который перекрывает все плюсы.

Он не в РФ хостится.
110 Nyoko
 
04.09.18
12:01
Любая разработка будет дороже чем локальная базка на 1с.
Студентов 2 взять??? они тебе за год ее напишут, с той зп которую ты планируешь им платить..
Если без 1с, то разработал бы без облак всяких кошерных. просто на fpc программулину exe
111 Garykom
 
гуру
04.09.18
12:01
(109)+ Даже не могу представить заграничные VPN по падающим каналам связи ))
112 Остап Сулейманович
 
04.09.18
12:08
(111) Канал - он стсуко штука двусторонняя. И падать вполне может на твоей стороне. Не обязательно на стороне заграничного VPS. Но эффект будет тот же.
113 pavig
 
04.09.18
12:08
(96) (100)
Штука крутая, но оффлайн должно работать не просто одно устройство.
На устройствах внутри точки связь должна быть всегда (там wi-fi). Если что-то изменилось в мобилке, то на веб-клиенте это должно тоже измениться, не важно - интернет есть или нет.
На Firebase я не увидел этого.
114 tesseract
 
04.09.18
12:09
(110) Поэтому 1С и популярен. Все готовенькое и дешево.


>>Плюсы: порог вхождения в PHP вроде бы пониже чем на остальных языках, значит, первые версии программы должны выйти подешевле.

Такой софт сейчас задаром раздают :-)  Всяких eCommerce с BI - вагон и три тележки.
115 pavig
 
04.09.18
12:10
(114)
"Такой софт сейчас задаром раздают"
какой такой софт?
116 Garykom
 
гуру
04.09.18
12:18
(112) Скорее он будет падать ровно посередине по вине провайдера по приказу от РКН ))
117 pavig
 
04.09.18
12:34
(91)
Я, признаюсь, тоже подумывал в сторону oscript но чет не ожидал что кто-то его прямо порекомендует)
118 Garykom
 
гуру
04.09.18
12:41
(117) OneScript пока еще в процессе роста из пеленок, маловато библиотек на все случаи жизни.
Но это компенсируется тем что оно легко расширяемо на отличном, популярном C#/.Net.
119 Garykom
 
гуру
04.09.18
12:43
(118)+ Имхо фирме 1С надо было давным-давно выпустить свой интерпретатор языка 1С для командной строки.
120 Вафель
 
04.09.18
13:00
(119) Зачем?
121 Garykom
 
гуру
04.09.18
13:05
(120) Для начального обучения в школах/вузах, чтобы алгоритмы на языке 1С проходили а не "школьном алгоритмическом"
122 Вафель
 
04.09.18
13:06
(121) в школах 1С? да кому нужен этот 1с? все хотят жаву и свалить отсюда
123 uno-group
 
04.09.18
13:48
ИМХО Клюшки + УРБД, а дальше экспортируйте в свой снеговик.
124 pavig
 
04.09.18
13:54
(123)
Потому что восьмерка еще сырая?))
125 Asmody
 
04.09.18
14:40
(113) Тогда можно подождать чуток. Монга зарелизит мобильную версию, которая будет "сама" с большой монгой снюхиваться. Или записаться на закрытую бету.
126 Casey1984
 
04.09.18
14:50
Ужасное слово "базёнка", подавился и не смог дочитать.
127 Nyarlathotep
 
04.09.18
14:59
(0) Для начала я бы посоветовал не гнаться за дешевизной, это путь в ад. А так PHP+Apache+Mysql (+javascript, если нужно) вполне себе вариант.
128 Новиков
 
04.09.18
15:16
Чел тоже начал с 10 посещений в день. Чем кончилась вся музыка можно полюбопытствовать тут:
https://habr.com/post/421765/

И еще мне кажется, что фраза "По неким простым алгоритмам обрабатывать текущую внесенную информацию, фиксировать её у себя " - в данный момент сильно упрощена. Ну и + скорее всего вы придете к рибу, который никогда не напишите сами. Не потому что вы тупые, у вас просто до старости не хватит времени отладиться.

И еще кажется, что если денег на лицензирование нет, то наколхоживание задачи автоматизации по типу 0 - это риск, который автоматом закладывает предлагающий его автор. Т.е. это как ружье, оно потом обязательно со стенке упадет и прострелит кому-то ухо. И еще немножечко доставляет, что написать такое на пхп сможет любой студент за горсточку пшенки.
129 Локи-13
 
04.09.18
15:20
(127) +1
Наиболее доступный и понятный многим стек
130 Fragster
 
гуру
04.09.18
15:22
на самом деле если есть уровня "архитектор" ребята на 1с, сделать вменяемое API на php (например laravel) им будет не сложно (и интересно ;)).
131 pavig
 
04.09.18
15:36
(128)
Великолепная статья!
132 sapphire
 
04.09.18
15:38
(0) Node.js + redis
133 tesseract
 
04.09.18
15:45
(128) ТС скорее как раз вот-это нужно  : https://habr.com/post/422151/


Ему просто "разруливать очередь сообщений" нужно.
134 Злопчинский
 
04.09.18
19:12
136 pavig
 
04.09.18
21:08
(134) Боюсь это совсем про другое...
137 tesseract
 
04.09.18
21:32
(134) Вообще не понял смысл тестировать webpack для 1С.
138 Сияющий в темноте
 
04.09.18
21:46
(133) там о том,как изобретать велосипеды,т.к.у Frontol есть встроенный сервер синхронизации,позволяющий синхронизировать несколько баз.
Кроме того,внезапно,в базе FireBird есть события,то есть из триггера можно отправить событие и не лезть в javascript вообще.
То,что прикрутили очередь событий,это понятно,просто,они забыли о том,что в 1с чеки с кассы никакой полезной нагрузки не несут,а все движения делает отчет о розничных продажах.
139 Z1
 
04.09.18
22:02
(0) С пяток решений тебе накидали.
Теперь тебе надо найти исполнителей ( желательно с опытом )
и делать на том что лучше всего знают исполнители.
140 tesseract
 
04.09.18
22:24
(138) Он отдельных денег стоит. Основной на SQLite и сильно локальный. Чеки нагрузку несут оборотную, например "какого  не прокружен выставленный товар на POS".