346
Задачи студентов / Re: ИС Учета ГСМ. Use case и другие
« : 04 Июня 2010, 18:56:49 »
опять извиняюсь за задержку с ответом - не было возможности ответить раньше
Вот и сделайте в своей пояснительной записке сравнение этих вариантов архитектур. Основы ведь Вы, в принципе, понимаете. А конкретика - почему такое-то решение в данном случае будет предпочтительнее? - это Ваше решение.
Кстати, поправка: с точки зрения использования нескольких реплицируемых баз, когда базы реплицируются один к одному, то каждая их них в момент работы с нею является "как бы" единственной и полной (как будто других нет). Поэтому использование репликации для пользователя прозрачно - ее вроде бы и не видно, да и выполняется она в нерабочее время. Останется вопрос в увеличивающемся объеме базы, но IMHO это не Ваш случай. Думаю, что основная проблема скорее в том, что у Вас МНОГО точек, где должна быть копия базы. Но сама система централизованная. Если Вы нарисуете архитектурную схему системы, показав на ней пользовательские модули и сами базы, которые соединены стрелочками репликации, а потом обведете все базы рамочкой, то Вам это должно броситься в глаза.
Поправка формулировки: помимо проблем с функциональностью системы, существуют проблемы с построением архитектуры системы, в частности при взаимодействии с 1С.
Но это нестрашно, Вы ведь для того и работаете/учитесь, чтобы [научиться] решать такого рода проблемы.
И потом у Вас по определению две базы: 1С и системы учета. "Тупо" выгружайте из 1С то, что поменялось, разделив предварительно на области видимости (ГСМ - не ГСМ), и не думайте выгружалось оно раньше или нет, нужно только чтобы оно легло на то же место с тем же кодом (чтобы дублей не было) - и всё!
Уж не знаю почему возникла такая схема, но не избавившись от нее, будет трудно поставить реальный учет - много сил будет уходить именно на сверку. С точки зрения бизнеса это должно сильно мешать. Возможно она (такая схема) как раз возникла из-за того, что невовремя приходили ПЛ, а сроки оплаты по счетам истекали, или может кому-то было лень разбираться с путевками. Кто знает???
Зачем Вам нужен двойной учет? Заводите в систему факты хозяйственной деятельности и будет Вам счастье и не будет нужна никакая сверка, кроме сравнения физических объемов ГСМ в бензобаке и написанного на бумаге - даже в формуле 1 такое делают :о))
Вы же ставите задачей ускорить доставку информации, вот и решайте ее, а полученное решение позволит устранить "перегибы на местах" и уменьшить дополнительную работу.
Вся система реализует некую специализированную схему документооборота. Не грузитесь пока синтаксисом DFD (тем более Вы ведь на UML вроде собирались моделировать, зачем Вам смешанное моделирование из разных методологий?), нарисуйте в понятных картинках. А когда разберетесь с суть задачи, найдете время нарисовать в виде семантически правильных моделей выбранной методологии.
Ну вот Вы уже пытаетесь ставить вопросы к своей системе - продолжайте в том же духе, только разделите их на бизнес-уровень (про документы и их заполнение/движение) и на уровень реализации (классы/объекты/данные/процедуры). Что будет, если произойдет то-то событие или какое-то другое - как это должно будет отразиться в системе (с помощью системы).
Ваша ответственность - Ваше и решение. Или наоборот :о)))
Если во всех местах, где он используется, класс остается неизменным - то "отражать распределенность" не надо. Подумайте лучше над тем, "где экземпляр появляется", "куда и как он перемещается", соответственно, где будут его копии. И нарисуйте это на территориально распределенной схеме. Вот тут и проявится Ваша распределенная архитектура.
Цитата: Лопушок
Одна центральная база и зеркала это однако немножко не то (ИМХО), так как при таком варианте данные меняются в центре, а участки выступают получателями, но ничего не передают центру. Такая схема может быть реализована в том же Microsoft SQLServer'е. В моём же случае требуется двусторонний обмен, да ещё и желательно с офф-лайн репликацией, чтобы можно было файл выгрузки на дискете привезти или по электронной почте отправить.
Насколько я поняла, тот же MS SQLServer такого уже не поддерживает. Офф-лайн репликацию поддерживает, например, Sybase ASA и какой-то из очень дорогих вариантов Oracle. В моём дипломе предлагается бюджетный вариант реализации ИС на базе СУБД Firebird + IBReplicator от IBPhoenix. Хотя, честно говоря, сейчас сразу смотрела бы в сторону Sybase ASA.
В пользу зеркальных баз вижу следующие доводы:
- Справочники для выписки документов нужны все. В задаче ставится, чтобы водитель мог получить историю своего подотчета по ГСМ у диспетчера на любом участке. Поэтому документы тоже нужны практически все. Да в общем-то их не так уж и много, у меня в логической модели данных около 30 сущностей получается, штук 10 справочников, и 4-5 видов документов.
- Кроме того, на мой взгляд, репликацию зеркальных баз проще настраивать, да и в случае обвала какой-то из баз большая часть информации останется.
Довод в пользу не зеркальных баз – уменьшение трафика. Но Интернет там не то чтобы дохлый, скорее возможны перебои. Т.е. когда интернет есть, то скорость обычно нормальная.
Вот и сделайте в своей пояснительной записке сравнение этих вариантов архитектур. Основы ведь Вы, в принципе, понимаете. А конкретика - почему такое-то решение в данном случае будет предпочтительнее? - это Ваше решение.
Кстати, поправка: с точки зрения использования нескольких реплицируемых баз, когда базы реплицируются один к одному, то каждая их них в момент работы с нею является "как бы" единственной и полной (как будто других нет). Поэтому использование репликации для пользователя прозрачно - ее вроде бы и не видно, да и выполняется она в нерабочее время. Останется вопрос в увеличивающемся объеме базы, но IMHO это не Ваш случай. Думаю, что основная проблема скорее в том, что у Вас МНОГО точек, где должна быть копия базы. Но сама система централизованная. Если Вы нарисуете архитектурную схему системы, показав на ней пользовательские модули и сами базы, которые соединены стрелочками репликации, а потом обведете все базы рамочкой, то Вам это должно броситься в глаза.
Цитировать
Другое дело, что из 1С справочники можно выгружать не полностью. Например, справочник «Номенклатура», где нужны-то только разные бензин и дизтопливо. Здесь да, надо предусмотреть какую-то форму выгрузки, чтобы бухгалтер ставил галочки и выгружал выбранные элементы или группу, а не все 150 видов гвоздей и бруса, только потому, что у них поменялась одна буква в наименовании или их перенесли в другую группу.
Ой, только сейчас поняла, что мне придётся ещё и в 1С как-то отслеживать изменение справочников с последней выгрузки. Ужас-то какой .
В общем-то получается, что проблемы основные не столько с основной функциональностью системы, сколько с необходимостью взаимодействия с 1С и распределенностью.
Поправка формулировки: помимо проблем с функциональностью системы, существуют проблемы с построением архитектуры системы, в частности при взаимодействии с 1С.
Но это нестрашно, Вы ведь для того и работаете/учитесь, чтобы [научиться] решать такого рода проблемы.
И потом у Вас по определению две базы: 1С и системы учета. "Тупо" выгружайте из 1С то, что поменялось, разделив предварительно на области видимости (ГСМ - не ГСМ), и не думайте выгружалось оно раньше или нет, нужно только чтобы оно легло на то же место с тем же кодом (чтобы дублей не было) - и всё!
Цитировать
О дублировании информации и сверке.
Допустим, наша организация решила закупить ГСМ и оплатила счет компании-поставщика.
Поставщик отгружает ГСМ, но не нам, а организации, с которой у нас заключен договор ответственного хранения (на каждом участке разные организации).
Затем с участка на склад организации хранящей ГСМ едет водитель бензовоза с доверенностью на получение ГСМ, где и заливает Дизтопливо в бензовоз. Там он получает расходную накладную, выписанную организацией-посредником, на основании которой в диспетчерской системе приходуется топливо (там указано только количество). Таких расходных накладных несколько на один оплаченный счет.
Поступление ГСМ по бухгалтерии оформляется в 1С документом «Поступление материалов» на основании счета-фактуры и расходной накладной выписанных организацией-поставщиком (там указаны и количество и сумма). Такие счет-фактура и расходная накладная по одному на один оплаченный счет.
Таким образом, пока у меня получается, что одно и то же поступление ГСМ учитывается 2 раза – в диспетчерской системе и в 1С. Причем количество поступивших ГСМ в документах и количество самих документов не совпадают. Тут необходима сверка.
Уж не знаю почему возникла такая схема, но не избавившись от нее, будет трудно поставить реальный учет - много сил будет уходить именно на сверку. С точки зрения бизнеса это должно сильно мешать. Возможно она (такая схема) как раз возникла из-за того, что невовремя приходили ПЛ, а сроки оплаты по счетам истекали, или может кому-то было лень разбираться с путевками. Кто знает???
Зачем Вам нужен двойной учет? Заводите в систему факты хозяйственной деятельности и будет Вам счастье и не будет нужна никакая сверка, кроме сравнения физических объемов ГСМ в бензобаке и написанного на бумаге - даже в формуле 1 такое делают :о))
Вы же ставите задачей ускорить доставку информации, вот и решайте ее, а полученное решение позволит устранить "перегибы на местах" и уменьшить дополнительную работу.
Цитировать
Получится такая схема документооборота. Наверное, надо почитать про DFD, что-то мы их очень невнятно проходили…
Вся система реализует некую специализированную схему документооборота. Не грузитесь пока синтаксисом DFD (тем более Вы ведь на UML вроде собирались моделировать, зачем Вам смешанное моделирование из разных методологий?), нарисуйте в понятных картинках. А когда разберетесь с суть задачи, найдете время нарисовать в виде семантически правильных моделей выбранной методологии.
Цитировать
Возможно, когда я до этого дойду (если дойду), то в голове уже сложится картина, как это должно выглядеть.
Ну вот Вы уже пытаетесь ставить вопросы к своей системе - продолжайте в том же духе, только разделите их на бизнес-уровень (про документы и их заполнение/движение) и на уровень реализации (классы/объекты/данные/процедуры). Что будет, если произойдет то-то событие или какое-то другое - как это должно будет отразиться в системе (с помощью системы).
Цитировать
Пока пришла к выводу, что таблицы остатков и движений на диаграмме классов опущу, так как для задачи они не принципиальны. В общем-то остатки и движения для отчетов можно и по документам собирать. Чувствую, что так и будет .
Ваша ответственность - Ваше и решение. Или наоборот :о)))
Цитировать
Что касается особенностей реализации, возможно на диаграмме классов стоит отразить будущую распределенность базы. Поэтому рассмотрю возможность добавления справочника информационных баз и атрибутов принадлежности документов к базам.
Если во всех местах, где он используется, класс остается неизменным - то "отражать распределенность" не надо. Подумайте лучше над тем, "где экземпляр появляется", "куда и как он перемещается", соответственно, где будут его копии. И нарисуйте это на территориально распределенной схеме. Вот тут и проявится Ваша распределенная архитектура.