Архитектура системы Oremax

Архитектура

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

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

  • надёжность обмена данными в условиях возможной потери или искажения сообщений, передаваемых от одного сервера другому;
  • целостность и непротиворечивость информации в базе данных;
  • минимальные затраты на настройку и сопровождение;
  • возможность работы через различные каналы связи, в том числе при отсутствии каналов связи (передача через файлы).

Это позволило значительно снизить требования к аппаратной части сервера, например, для нормальной работы сорока пользователей достаточно серверной аппаратной платформы начального уровня. Что касается требований к компьютеру пользователя, то клиентская часть работает с нормальной скоростью на компьютерах, на которых с приемлемой скоростью работает Microsoft Office 2003.

SQL сервер

Стандартно поставляется сервер Sybase SQL Anywhere версии 11 и выше. За период использования SQL Anywhere в различных проектах начиная с 1998 года этот сервер зарекомендовал себя с наилучшей стороны. К его достоинствам можно отнести:

  • высокая стабильность работы;
  • высокая производительность;
  • встроенный механизм репликаций;
  • максимальная простота установки, настройки, сопровождения;
  • он обладает широкими возможностями как средство программирования, как с точки зрения богатства языка программирования, так и с точки зрения среды разработки (Sybase Data Architect – case средство описания модели данных; Sybase Central -  средство визуального манипулирования объектами базы данных, отладчик, средства профилирования и диагностики);
  • низкая стоимость владения.

Sybase SQL Anywhere имеет версии для работы на различных программных платформах: Windows NT/200x/XP/Vista/7, Linux (Red Hat Enterprise, SuSE Enterprise, Ubuntu, SuSE 11), Unix (Solaris, HP-UX, AIX, Mac OS). Подробнее о платформах  можно прочитать здесь.
Сравнение Sybase SQL Anywhere с другими СУБД можно посмотреть здесь.
По специальному заказу может поставляться более мощный сервер Sybase Adaptive Server Enterprise.

Репликации

В территориально распределённой системе для передачи изменений из одной базы данных в другую используется встроенный в SQL серверы Sybase механизм репликаций. Распределённая сеть может быть построена по схеме многоуровневой звезды. Механизм репликаций осуществляет синхронизацию баз данных на основе журнала транзакций. При репликациях между серверами осуществляется передача только изменений, которые произошли в базе данных. Это означает, что если в какой-то таблице было модифицировано одно поле, то будет передано сообщение об изменении только этого поля. Кроме того, ведётся автоматический контроль за целостностью и последовательностью сообщений. При искажении сообщения (например, не полная передача) или потери сообщений механизм репликаций автоматически запрашивает необработанные сообщения.
Передача сообщений об изменениях может осуществляться по следующим каналам: FTP, e-Mail, File (через VPN канал или портативные носители).

Настройка системы

Настройка системы при вводе её в эксплуатацию и коррекция в процессе эксплуатации заключается в настройке взаимодействия объектов учёта между собой создании, настройке прав доступа пользователей и регистрации в системе отчётных форм.

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

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

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

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

Для создания печатных форм документов и отчётных форм может использоваться как поставляемый вместе с системой генератор отчётов, так и генератор отчётов Crystal Reports. Отчёты и печатные формы документов представляют собой отдельные файлы шаблонов отчётов, которые нужно лишь зарегистрировать в системе. Программа позволяет передавать в отчёт различные параметры, которые могут использоваться в отчётах для фильтрации данных выводимых отчётом. Кроме этого, в самом отчёте можно указать параметры, которые необходимо запросить у пользователя перед генерацией отчёта. При этом, из отчёта можно вызывать справочники системы для подстановки значений в запрашиваемые у пользователя параметры. Например, если в отчёте необходимо запросить значение из какого-либо справочника, то в отчёте нужно лишь указать имя параметра из зарегистрированного списка имён и у пользователя вместо необходимости вводить код появится возможность выбора значения из справочника. Это относится, в том числе и к отчётам, созданным Crystal Reports.

Разработка дополнительных модулей

Иногда заказчику требуется иметь возможность разрабатывать собственные специфические модули, которые были бы максимально интегрированы в систему Oremax. Максимальная интеграция означает возможность загрузки клиентских модулей непосредственно в контекст системы. Для этих целей поставляется API Oremax, представляющее собой набор runtime и designtime библиотек и интерфейсов классов. Созданные с помощью API Oremax библиотеки динамически загружаются при запуске системы и работают в общем контексте системы. Кроме этого, имеется возможность регистрировать и вызывать стандартным образом собственные объекты защиты, необходимые для создаваемых модулей.

© 2008-2017 Oremax LLC.
+7 (812) 449-87-07, cont@oremax.ru
Создание сайта: Ji-Touch