Skip to Content

Какая архитектура данных систем?

Страница для печатиСуществуют такие понятия, как однозвенные, двухзвенные и многозвенные архитектуры. К какому классу относятся Adempiere и Compiere? Если есть отдельная база данных, значит, точно не однозвенная. Но доступ к БД осуществляется непосредственно с компьютера клиента, и логика работы ("бизнес логика") выполняется тоже на клиенте, значит двухзвенка? А как же тогда быть с Web интерфейсом и jboss? Короче, я запутался! Кто в теме, может объяснит?
Была бы классическая двухзвенка, если бы не некоторые оговорки.
  1. Некоторые обработки данных выполнены в виде хранимых процедур на SQL сервере.
  2. Диалоговые формы реализованы с использованием MVC шаблона, что позволяет заменить отображение на WEB интерфейс. А это в свою очередь превращает систему в 3-х звенную.
Мне кажется, что из-за указанных нюансов, архитектуру системы следует обозначить как 2+ или даже 2+1, но насколько это правильно?
1. Архитектуру системы нельзя назвать "классической двухзвенкой". При использовании Linux ничего не мешает запустить сервер X Window на клиентской машине. Это уже и многозвенная архитектура. 2. Наличием WEB интерфейса лучше выделить технологии "тонкого" и "толстого" клиента, а не количество звеньев в архитектуре самого приложения.
X Window - это не звено в архитектуре приложения. Это способ отображения графического интерфейса.

Классическое разделение архитектуры приложения:

  • Однозвенная архитектура - Логика работы программы и система хранения данных в одном приложении. Классический пример - 1Сv7.7 с хранением данных в DBF файлах.
  • Двухзвенная архитектура - Разделение логики работы и системы хранения данных на разные подсистемы. Классический пример - 1Сv7.7 и MS SQL сервер для хранения данных.
  • Многозвенная архитектура - Более чем два уровня. Например SAP. База данных, Сервер Приложений, Клиент для подключения к серверу приложений.
Хочу заметить, что указана именно МНОГОзвенная архитектура. В частности в SAP может быть как три, уже указанных уровня, так и может добавляться четвертый, WEB сервер для работы "тонких" клиентов. А с учетом того, что сам сервер приложений можно разделить на сервер сообщений, сервер печати и т.д., то можно со счета сбиться подсчитывая уровни.
Наверно из-за таких нюансов и не выделяется в классификации архитектуры более чем 2 звена, т.к. дальнейшее деление становиться очень условным и зачастую идет не от технических специалистов, а от маркетологов. ;-)
Поэтому предлагаю остановиться на определении "Многозвенная архитектура".
Если 1С 7.7 запускать на терминальном сервере, она от этого не станет приложением с "трехзвенной (или многозвенной) архитектурой". Так же и у приложение X Window не добавляется уровень, при запуске X сервера на отдельном компьютере. Это "терминальный" доступ, а не "сервер приложений". У Compiere/ADempiere нет кода "для выполнения на сервере" и "для выполнения на клиенте" как в случае восьмерки 1С или того же SAP. Поэтому правильнее будет остановиться на определении “2+” ;-)
Доброго времени суток, Хочу заметить, что в Adempiere на сервере приложений (в моем случае JBoss) выполняются следующие основные сервисы:
  • ClientName Accounting Processor
  • ClientName Request Processor
  • System Workflow Processor
  • System Alert Processor
  • Delete Old Notes
На стороне сервера есть Adempiere Server Monitor, который позволяет как просмотреть статус, детальную статистику работы и перезапустить данные сервисы. С работой Adempiere Server Monitor можно ознакомиться на тестовом сервере Adempiere Пользователь=SuperUser/Пароль=System. Настройки же сервисов выполняются в системе.

___________________

FINA LTD.
Peter Shepetko

RSS-материал RSS-материал