Бизнес-логика

Концепция в компьютерном программном обеспечении

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

Подробности и пример

Бизнес-логика:

  • Предписывает, как бизнес-объекты взаимодействуют друг с другом
  • Обеспечивает соблюдение маршрутов и методов доступа к бизнес-объектам и их обновления.

Правила ведения бизнеса:

  • Моделируйте реальные бизнес-объекты (например, счета, кредиты, маршруты и запасы)

Бизнес-логика включает в себя: [1]

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

Бизнес-логику следует отличать от бизнес-правил. [2] Бизнес-логика — это часть корпоративной системы, которая определяет, как данные преобразуются или вычисляются, и как они направляются людям или программному обеспечению (рабочий процесс). Бизнес-правила — это формальные выражения бизнес-политики. Все, что является процессом или процедурой, является бизнес-логикой, а все, что не является ни процессом, ни процедурой, является бизнес-правилом. Приветствие нового посетителя — это процесс (рабочий процесс), состоящий из шагов, которые необходимо выполнить, тогда как утверждение, что каждый новый посетитель должен быть приветствован, является бизнес-правилом. Кроме того, бизнес-логика является процедурной, тогда как бизнес-правила — декларативными. [3]

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

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

Также будут действовать бизнес-правила сайта:

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

Программное обеспечение веб-сайта также содержит другой код, который не считается частью бизнес-логики или бизнес-правил:

  • Периферийный контент, не связанный с основными бизнес-данными, например, HTML-код , определяющий цвета, внешний вид, фоновое изображение и навигационную структуру сайта.
  • Общий код обработки ошибок (например, который отображает страницу HTTP Error Code 500)
  • Код инициализации, который запускается, когда веб-сервер запускает сайт, который настраивает систему
  • Мониторинг инфраструктуры, чтобы убедиться, что все части сайта работают правильно (например, доступна ли система выставления счетов)
  • Универсальный код для создания сетевых подключений, передачи объектов в базу данных , анализа пользовательского ввода через события HTTP POST и т. д.

Бизнес-логика и уровни/слои

Бизнес-логика в теории занимает средний уровень трехуровневой архитектуры.

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

Бизнес-логика часто меняется. Например, набор допустимых форматов адресов может измениться, когда интернет-магазин начинает отправлять продукты в новую страну. Таким образом, часто считается желательным сделать код, реализующий бизнес-логику, относительно изолированным или слабосвязанным . Это повышает вероятность того, что изменения в бизнес-логике потребуют небольшого набора изменений кода, только в одной части кода. Отдаленный, но сильно связанный код также создает больший риск того, что программист внесет только некоторые необходимые изменения и пропустит часть системы, что приведет к неправильной работе. [4]

Многоуровневая архитектура формализует это разделение, создавая уровень бизнес-логики , который отделен от других уровней или слоев, таких как уровень доступа к данным или уровень обслуживания . Каждый уровень «знает» только минимальное количество о коде в других уровнях — ровно столько, сколько необходимо для выполнения необходимых задач. Например, в парадигме модель–представление–контроллер уровни контроллера и представления могут быть сделаны максимально малыми, а вся бизнес-логика будет сосредоточена в модели. В примере с электронной коммерцией контроллер определяет последовательность веб-страниц в последовательности оформления заказа, а также отвечает за проверку того, что электронная почта, адрес и платежная информация соответствуют бизнес-правилам (вместо того, чтобы оставлять все это на усмотрение самой базы данных или кода доступа к базе данных более низкого уровня).

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

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

Инструменты и методы

Бизнес-логику можно извлечь из процедурного кода с помощью системы управления бизнес-правилами (BRMS). [5]

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

Модель предметной области — это абстрактное представление типов хранения данных, требуемых бизнес-правилами.

Смотрите также

Ссылки

  1. ^ Стивен Мински (27.03.2005). «Проблема внедрения BPM». Techtarget . eBizQ.
  2. ^ «Определение бизнес-логики». 2013-12-24.
  3. ^ Уильям Ульрих. "OMG Business Rules Symposium" (PDF) . Архивировано из оригинала (PDF) 2013-12-24.
  4. ^ Хавар Заман Ахмед и Кэри Э. Умриш (2001-10-17). "Введение в корпоративное программное обеспечение". Разработка корпоративных приложений Java с J2EE и UML. Addison-Wesley. ISBN 0-201-73829-5.
  5. ^ Оуэн, Джеймс (19 сентября 2003 г.). «Вынесите бизнес-логику на свет». Enterprise Java. InfoWorld . Получено 21 июля 2020 г.

Дальнейшее чтение

  • Бретт Маклафлин (март 2002 г.). "Бизнес-логика, часть 1". Создание корпоративных приложений Java, том I: Архитектура . O'Reilly and Associates. ISBN 0-596-00123-1.— Маклафлин обсуждает шаблон фасада для реализации бизнес-уровня приложения.
  • Кэти Борер (ноябрь 1997 г.). «Промежуточное ПО изолирует бизнес-логику». Object Magazine . 7 (9). Нью-Йорк, США: SIGS Publications, Inc.: 41– 46. ISSN  1055-3614.
  • Harumi Kuno; Mike Lemon; Alan Karp & Dorothea Beringer (2001). «Conversations + Interfaces = Business Logic». В F. Casati; D. Georgakopoulos & M.-C. Shan (ред.). Technologies for E-Services: Second International Workshop, TES 2001, Рим, Италия, 14–15 сентября 2001 г., Proceedings . Lecture Notes in Computer Science. Vol. 2193. Springer Berlin / Heidelberg. ISSN  0302-9743.
  • Volker Turau (2002). "Структура для автоматического создания веб-приложений ввода данных на основе XML". Труды симпозиума ACM 2002 года по прикладным вычислениям, Мадрид, Испания: веб-приложения и приложения для электронного бизнеса . ACM Press. С.  1121– 1126. ISBN 1-58113-445-2.— Турау представляет структуру приложения, реализованную с использованием Java Servlets и JavaServer Pages , которая позволяет разделить бизнес-логику и логику представления, позволяя разрабатывать каждую из них параллельно по относительно независимым, но взаимодействующим направлениям.
  • Пау, Л.-Ф. и Вервест, П. Х. М. (2003-12-08). «Управление бизнес-процессами на основе сети: внедрение бизнес-логики в коммуникационные сети». Серия отчетов ERIM Исследования в области менеджмента. Университет Эразма . hdl :1765/1070. {{cite journal}}: Cite journal required |journal=( помощь ) — Пау и Вервест разрабатывают подход для встраивания бизнес-логики в коммуникационную сеть, лежащую в основе распределенного приложения с множеством участников , с целью оптимизации распределения бизнес-ресурсов с точки зрения сети.
  • Руководящие принципы бизнес-уровня
Взято с "https://en.wikipedia.org/w/index.php?title=Бизнес_логика&oldid=1245154257"