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

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

Детали и пример

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

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

Бизнес правила:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Инструменты и техники

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

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

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

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

использованная литература

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

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

  • Бретт Маклафлин (март 2002 г.). «Бизнес-логика, часть 1». Создание корпоративных приложений Java, Том I: Архитектура. O'Reilly and Associates. ISBN  0-596-00123-1. - Маклафлин обсуждает узор фасада для реализации бизнес-уровня приложения.
  • Кэти Борер (ноябрь 1997 г.). «Промежуточное ПО изолирует бизнес-логику». Журнал Object. Нью-Йорк, США: SIGS Publications, Inc. 7 (9): 41–46. ISSN  1055-3614.
  • Харуми Куно; Майк Лемон; Алан Карп и Доротея Берингер (2001). «Разговоры + Интерфейсы = Бизнес-логика». В Ф. Касати; Д. Георгакопулос и М.-К. Шан (ред.). Технологии для электронных услуг: второй международный семинар, TES 2001, Рим, Италия, 14–15 сентября 2001 г., Труды. Конспект лекций по информатике. 2193. Springer Berlin / Heidelberg. ISSN  0302-9743.
  • Фолькер Турау (2002). «Фреймворк для автоматического создания веб-приложений для ввода данных на основе XML». Материалы симпозиума ACM по прикладным вычислениям 2002 г., Мадрид, Испания: веб-приложения и приложения для электронного бизнеса. ACM Press. С. 1121–1126. ISBN  1-58113-445-2. - Turau представляет структуру приложения, реализованную с использованием Сервлеты Java и JavaServer Pages Это позволяет разделить бизнес-логику и логику представления, позволяя развивать каждую из них параллельно по относительно независимым, но взаимодействующим направлениям.
  • По, слева направо. И Vervest, P.H.M. (2003-12-08). «Сетевое управление бизнес-процессами: внедрение бизнес-логики в сети связи». ERIM Report Series Research in Management. Университет Эразма. HDL:1765/1070. Цитировать журнал требует | журнал = (Помогите) - По и Вервест разрабатывают подход к встраиванию бизнес-логики в сеть связи, которая лежит в основе распределенного приложения с множеством актеры, чтобы оптимизировать распределение бизнес-ресурсов с точки зрения сети.

внешние ссылки