|
|
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
Задача такая. Имеется сеть магазинов, в каждом магазине будет установлен клиент (pos + программа склад), в офисе центральная база, где будет храниться информация по всем магазинам. Центральная база будет покупной (скорее всего 1С 8), а софт в магазиннах самописный (скорее всего будет исопльзоваться java + javadb). Вопрос: как лучше организовать обмен данными между магазином и центральным офисом. Магазин будет посылать офису продажи, поставки, перемещения. Офис будет отсылать цены, измененные остатки товара. Какой формат файлов использовать не в смысле: текстовый или xml, а в смысле - струкуры - есть же какие универсальные форматы данных для подобных задач? Требования: бесперебойная работа магазина (то есть возможность работать, если пропадет интернет соединение - поэтому вариант, что клиенты будут использовать цетнральную базу - не подходит - если я не прав - поправьте меня), актуальные цены и остатки в магазине. Я это все вижу, как эспорт из магазинов текстовых файлов, закачка их на фтп и принятие их центральным офисом через определенный промежуток времени. Заранее спасибо за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 16:26 |
|
||
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
Мне кажется так можно делать, но при этом те операции где возможны коллизии (например, резервирование товара), должны работать отдельно и только в он-лайне. Здесь асинхронный вариант грозит тем, что два магазина одновременно зарезервируют больше товара, чем есть на складе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 21:59 |
|
||
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
ну а какие еще могут быть варианты? Все сводится либо к схемам с репликацией (как ее не назови - на уровне БД, файлов и фтп...), либо к обмену сообщениями (в случае с java, например, используя JMS - рассмотрите как вариант) + паттерны обмена сообщениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 22:18 |
|
||
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы! Уточну: такого понятия, как "центральный склад", на котором магазины заказывают товар нет. Товар приходит прямо в магазин, там же принимается и потихоньку выносится в зал, следовательно у магазинного склада и магазинной кассы должна быть единная база. Поэтому пока вижу так: склад и касса - репликация БД (для надежности, касса ни в коем случае не должна остановится!), магазин и центральная база - репликация файлов. С этим понятно, тогда вопросы насчет репликации: Репликация файлов - есть ли какие-то стандартные форматы обмена подобной информацией (справочники, продажи, поступления) - очень не хочется придумывать новый велосипед. Репликация бд (javadb она же derby и сloudscape в данном случае) - с чего начать? Никогда не делал подобного. Как это обычно делается - пишется отдельная программа, которая переодически реплицирует данные, ставит галочки, что все реплицировано или используется какой-нибудь сторонний продукт, который руководит этим процессом? Заранее спасибо за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 11:55 |
|
||
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
В данном случае в магазине лучше использовать одну единственную центральную БД, и для кассы и для склада. Меньше гемора, и надежнее будет. Сначала надо поискать в возможностях 1С, возможно там будет что-то для интеграции данных из реляционных баз. Если нет, то для репликации офисной 1С с магазинной базой лучше сразу писать свои приложения. Врядли в офисе будет использоваться реляционная БД совместно с 1С. Да и потом управлять легче. Далее, не уверен вообще, что стоит Derby использовать для магазина. Если нужна бесплатная бд, то наверное резоннее перейти на MySQL. Derby хороша тем, что её можно использовать для отладки приложений и она хорошо совместима с DB2. Если все-же решено будет использовать Derby, то её нужно запускать в многопользовательском режиме, как отдельный процесс. Там есть два режима работы, по умолчанию работает однопользовательский. ad marginemСпасибо за ответы! Уточну: такого понятия, как "центральный склад", на котором магазины заказывают товар нет. Товар приходит прямо в магазин, там же принимается и потихоньку выносится в зал, следовательно у магазинного склада и магазинной кассы должна быть единная база. Поэтому пока вижу так: склад и касса - репликация БД (для надежности, касса ни в коем случае не должна остановится!), магазин и центральная база - репликация файлов. С этим понятно, тогда вопросы насчет репликации: Репликация файлов - есть ли какие-то стандартные форматы обмена подобной информацией (справочники, продажи, поступления) - очень не хочется придумывать новый велосипед. Репликация бд (javadb она же derby и сloudscape в данном случае) - с чего начать? Никогда не делал подобного. Как это обычно делается - пишется отдельная программа, которая переодически реплицирует данные, ставит галочки, что все реплицировано или используется какой-нибудь сторонний продукт, который руководит этим процессом? Заранее спасибо за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 15:05 |
|
||
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
Сергей Горбачев, спасибо за ответ. Насчет использования одной БД для склада и кассы - я с Вами согласен, что так проще и лучше (насчет вариантов работы Derby в серверном режиме я знаю), НО, как я уже сказал - недопустимо, если остановится касса. Если БД будет крутиться на складском компьютере, то появляется зависимость от него (он может сломаться, может сетевое оборудование подвести), если на кассе (в магазине обычно 2 кассы), то при поломкке "главной" перестанет работать и вторая.. Да, риск минимальный, но существует и его очень хочется избежать... MySQL мне честно говоря не нравится: все-таки прежде всего оно для веба http://openacs.org/philosophy/why-not-mysql.html - статья устаревшая, но опыта работы с недостатками, на мой взгляд, у них поменьше чем у других ОС СУБД. Derby в этом плане кажется более зрелой - процедуры и триггеры там уже сто лет... От БД хочется 2ух вещей: опенсоурсность и возможность репликации.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 16:15 |
|
||
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
В магазине у Вас случай, когда нужно применять репликацию транзакций. Но, я не знаю реализовали ли уже их для open-source баз данных. В MySQL есть что-то подобное. На соурсфорже нашел вот такой интересный проект: http://escada.sourceforge.net/ Там есть в списках и Дерби. Они пишут что в их системе есть возможность надежной репликации для кластеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 19:52 |
|
||
|
Синхронизация данных между клиентами и цетральным сервером.
|
|||
|---|---|---|---|
|
#18+
ad marginem От БД хочется 2ух вещей: опенсоурсность и возможность репликации.. пару вопросов: 1. Откуда такое желание копаться в исходниках СУБД. У меня вот валяются, просто принимал участие, но, чтобы считать это хотелкой... хм? Зачем, интересно просто..? 2. Задачу синхронизации можно решить даже если СУБД не имеет таких механизмов, возможно даже проще. Зачем искать "все в одном" даже если это куча? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 00:11 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=114&tid=1544293]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 415ms |

| 0 / 0 |
