Чем программисты могут помочь бухгалтерам
24 февраля 2003
Рубрика: Обзоры и мнения.
Автор: Андрей Андрощенко, Алексей Вотинов, Сергей Литвак.
pic

Некоторые аспекты прикладного программирования при решении задач бухгалтерского учета.

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

В немалой степени все вышеизложенное справедливо для проектирования и разработки программного обеспечения бухгалтерского назначения. Здесь жесткие требования по отношению к точности: при больших объемах информации необходимо достаточно высокое быстродействие, которое создает комфортные условия для работы, сокращая непроизводительные потери рабочего времени бухгалтерского персонала. Интерфейс программы также должен отражать ее направленность, то есть разработчику необходимо строить его с учетом потребностей конкретной категории пользователей, для которых ведется разработка, а не исходя из более простой возможности реализации и воплощения в «металле».

Групповая работа может обеспечиваться широким спектром вариантов, реализующих наилучшим образом тот или иной принцип взаимодействия отдельного пользователя и общей базы данных. Здесь накладывает свой отпечаток технология работы каждой клиентской части программы. В зависимости от подходов к решению данной проблемы выбирается наиболее подходящее сетевое решение.
Остановимся на рассмотрении каждого из перечисленных аспектов более подробно.

Простота интерфейса

Как часто в практике разработки программного обеспечения бывает, что ценность программы с точки зрения полезности ее для рядового пользователя, труд которого она призвана облегчить, сводится на нет сложным, не очень понятным и «занаученным» интерфейсом. Сумбурное нагромождение кнопок, пунктов меню, иконок, подсказок и прочих «помощников» настолько утомляет, что пользователь перестает видеть в программе своего «железного» друга, возникает подсознательное отторжение. С другой стороны, необходимо как-то обеспечивать всю полноту и функциональность программы, заложенной при проектировании, так, чтобы пользователь без ущерба для себя мог без проблем выполнять текущую работу с наибольшей эффективностью и качеством в сжатые сроки.

pic

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

Средства обеспечения гибкости

В проектировании программного обеспечения при определении и теоретической разработке каркаса очень важно учитывать сферу или отрасль его действия. На выбор подхода накладывает отпечаток то, насколько неизменной или, напротив, гибкой должна быть вся конструкция в целом или ее отдельные составляющие части. Иногда может понадобиться раз и навсегда серьезно проработанная модель будущего продукта, необходимость в изменении которой может возникнуть лишь со сменой платформы или технологии производства в целом. Это если речь идет об автоматизированных системах управления технологическими или производственными процессами. Примером таковых являются станки с числовым программным управлением, в память которых заносятся исходные или какие-то рабочие параметры при неизменном алгоритме их обработки. В отличие от вышеупомянутых в системах автоматизации управлением предприятий, в их числе бухгалтерское программное обеспечение, более подвержено не столько воздействию с технической стороны, сколько со стороны технологии документооборота. Здесь и достаточно часто изменяющееся законодательство, что характерно для стран с еще неустоявшейся рыночной экономикой, и широкий набор вариантов ведения бухгалтерского учета, и бухгалтерская политика предприятия в целом. Поэтому требования к гибкости бухгалтерского программного обеспечения — наиболее актуальный вопрос при его разработке.
Теоретически можно под каждое изменение в функциональности программы, скажем, при обновлении внешнего вида или содержания какого-то отчета, выпускать новую версию, но данный путь порочен изначально. Ни о каком массовом спросе на данную программу и говорить не приходится. Следовательно, программа должна сочетать в себе качества надежной, цельной по сути сердцевины и гибкого инструментария, позволяющего быстро адаптироваться к текущим изменениям, не касающимся основополагающих принципов.

pic

Для этой цели подходит весьма удачное сочетание требуемых свойств, которое было на практике реализовано и апробировано в программе «БИС2000». Здесь в основу положено практически не требующее изменений ядро, которое на деле создает и реализует операционную среду, в которой, в свою очередь, исполняются достаточно простые с точки зрения традиционного профессионального программирования прикладные модули. Данные модули и реализуют наиболее подверженные изменениям части бухгалтерской программы. Они являются неким симбиозом Бейсик-подобных исходных текстов, но с предварительной компиляцией и отладкой, и графических форм, которые создаются в средах визуальной разработки, таких как Builder или Delphi. Таким образом, при желании пользователь может, не приобретая новую версию и без особых забот, изменить под себя выходную отчетность или метод какого-либо расчета. С другой стороны, модульное построение программы позволяет масштабировать приложение под конкретные задачи, используя разнообразные наборы составных частей модулей, которые решают узконаправленные подзадачи. Ввиду малого физического размера таковых модулей возможна их беспроблемная пересылка по электронной почте с целью обновления, что очень важно при использовании программы в удаленных от мегаполисов местах с плохим качеством линий связи и недостаточным уровнем квалификации специалистов.

Сетевое решение

Наиболее простое и уже довольно устаревшее, но все еще присутствующее в программах, в которых имеется необходимость тесного взаимодействия нескольких пользователей, сетевое решение — это файл-серверная работа клиентской части программы. Данный вариант использует простое разделение общей базы данных, реализованной информационным файлом, с конкурентным доступом и блокировкой отдельных записей. Ввиду своей простоты он оказался весьма привлекательным для программ ввода данных, в которых не было особой необходимости в каждый момент времени видеть общую картину, то есть отображение всей базы данных в целом. Такие программы в свое время получили большое распространение в банковской среде. Они были просты, надежны и не требовали каких-то программных надстроек.

pic

На смену данной системе с появлением систем управления базами данных, применяющих язык системных запросов, пришла двухзвеньевая архитектура «клиент-сервер». Она решила некоторые проблемы, присущие предыдущей архитектуре, ослабила нагрузку на сетевое оборудование, повысила надежность работы с базой данных благодаря механизму транзакций. Но осталась проблема использования сетевого трафика и возникновения неопределенных ситуаций вследствие низкого уровня изоляции транзакций, когда несколько клиентов используют одни и те же записи.

pic

В настоящий момент одной из новейших и совершенных является технология CORBA, которая разработана группой компаний OMG, представляет собой открытый проект и базируется на решениях нескольких, а не одной компании, что добавляет привлекательности, устойчивости и доверия к нему. Эта технология является продолжением ряда многозвеньевых служб распределенных приложений. Она открывает для проектировщиков простор в выборе операционных систем, позволяет создавать распределенные приложения, разработанные в различных средах на различных платформах. Кроме того, технология CORBA изначально разрабатывалась для приложений, работающих в режиме 24×7 (двадцать четыре часа в сутки семь дней в неделю), то есть круглосуточно, с возможностью перезагрузки сервера без остановки работы всех клиентов.
Ее преимущества помимо вышеописанных использованы в полной мере в программе «БИС2000». Используя механизм брокера объектных запросов, клиентская и серверная части многозвеньевой системы устанавливают канал передачи сообщений в независимости от предыстории, то есть от того, были они соединены до этого или нет. Важно, чтобы были между ними физический сетевой канал и загруженный брокер объектных запросов (Smart Agent) на любой из машин данной сети. Это выгодно отличает CORBA от других многозвеньевых технологий — таких, как DCOM, MIDAS, и других.

pic

В программе «БИС2000», спроектированной под использование новой сетевой технологии, удачно решена проблема «золотой середины». Вся текущая работа, ведущаяся на клиентских машинах, совершенно ничем не отличается от работы в локальном режиме, как если бы пользователь работал один. На машине пользователя хранится «слепок» с базы данных (так называемая модель Breafcase, реализующая, образно говоря, некий «стоп-кадр» базы данных в момент запроса изменений с сервера). После проработки данных локальный пользователь может по своему желанию или в автоматическом режиме (зависит от настройки) отправить измененные данные на сервер. При отправке без автоматики используется определенный пункт меню, предназначенный для передачи наработанных изменений на сервер. Вся остальная работа по передаче информации выполняется средствами технологии CORBA и полностью прозрачна для клиента. Данные упаковываются и передаются через специализированный буфер, так называемой «заглушке» на клиентской машине. Далее через локальную сеть посредством службы брокера объектных запросов информация передается «скелету» сервера приложений. «Скелет» обращается к специальному буферу, получает, распаковывает данные и передает вызов серверу, тем самым реконструируя вызов клиента в адресном пространстве сервера. Таким образом, спарка «заглушка» и «скелет» маскируют сетевую работу для клиентского приложения и сервера приложений. В результате сервер и клиент как бы работают в одном адресном пространстве. Причем клиенту «кажется», что сервер приложений работает в его процессе, а сервер приложений «пребывает» в уверенности, что клиент функционирует в его адресном пространстве. То же самое, но в обратном направлении происходит при обновлении данных на клиентской машине, если серверная база данных претерпела изменения. В этом случае используется пункт меню, инициирующий прием изменений с сервера.
Особенностью реализации данного сетевого решения является снижение сетевого трафика и отсутствие какой-либо блокировки базы данных во время текущей работы клиентских машин. Необходимость в блокировке возникает лишь на короткое время при отправке проработанных данных на сервер.

pic

Вследствие параллельной работы с едиными данными возможно появление конфликтных ситуаций. В таком случае каждый конфликт рассматривается по отдельности и по каждому принимается решение. Для уменьшения вероятности возникновения таких ситуаций важно разграничение между пользователями прав доступа и полномочий на осуществление каких-либо действий в отношении групповой базы данных, которое настраивается в рабочем порядке и может быть в любой момент изменено. Настройку сервера приложений, на который возложена регламентация прав доступа клиентов, отличают простота и удобство администрирования. На клиентской же части вовсе отсутствует понятие администрирования и настройки сетевого режима работы. Это огромная экономия времени для предприятий с большим числом клиентов (бухгалтеров).

pic

Серьезное преимущество вышеописанного сетевого решения в программе «БИС 2000» — это высокая надежность системы в целом. Наличие «слепков» серверной базы данных на клиентских машинах увеличивает возможность полного восстановления информации при сбоях в серверном оборудовании и недосмотре обслуживающего сервер персонала.

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В Одноклассники
ВКонтакте