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.
Настройки же сервисов выполняются в системе.

Best regards,
Peter Shepetko - http://erp.fina2.net