ビジネスロジック

ビジネスロジック（英: business logic）、あるいはドメインロジック（英: domain logic）、業務ロジックは、どのようにデータが作成され、保存され、変更されるかについてを表現するプログラムにおける部分であり、アプリケーション固有の処理を指す。データベースの管理やUIの表示、システムインフラ、プログラム全体における各部の接続などを表現する、プログラムにおけるより低水準な残りの部分とは対照的な概念である。 ドメインロジックという場合、あるドメインに関するビジネスロジックのことを指す場合が多い[要出典]。 この用語は、主にプログラムが層構造となるアプリケーション開発で用いられる[独自研究?]。三層アーキテクチャにおいては、ビジネスロジックは中間層に位置する。 アルゴリズムは問題が与えられた時の具体的な情報の処理手順であり、アプリケーション固有のものではない一方で、ビジネスロジックはアプリケーション固有の処理であるという点で、これらは異なる概念である。ビジネスロジックには、アプリケーションの目的を達成するための処理を定義する、一連のルール、アルゴリズム、計算処理が含まれる。 実世界のビジネスオブジェクト（勘定、貸付金、旅程表、在庫目録などなど）をモデル化したもの そのようなビジネスオブジェクト間の相互作用を示したもの ビジネスオブジェクトにアクセス・更新する経路と方法を示したもの ビジネスロジックは以下の部分からなる: ビジネスルール - ビジネスに関する方針を表現したもの（経路、位置、輸送、価格、製品など） ワークフロー - ある関係者（人間またはソフトウェア）から他の関係者へと文書やデータを渡す仕事の順序 単層アプリケーションでは、プレゼンテーション部分とビジネスロジックとデータベース部分が融合し、相互に知識を共有し、結合度が高い。この状態では、一部の修正が他の部分に影響を与えるため、一箇所の変更のためにシステム全体を再度テストし直さなくてはならなくなる。また、データベース部やビジネスロジックの再利用性も低下する。 多層アーキテクチャでは、ビジネスロジックは分離されたモジュールとなる。一般的な3層アーキテクチャでは、ビジネスロジックは中間層を形成する（ビジネス層、ビジネスロジック層などと呼ぶ）。実際には、ストアドプロシージャや入力チェックおよび表示形式などの決定という形でビジネスロジックの一部は、他の2つの階層（ユーザサービス層とデータベースサービス層）にも織り込まれる。Hower らはこのような方式を批判し、ビジネスロジックは全てビジネス層で保持すべきで、ユーザサービス層やデータベースサービス層にビジネスロジックを含めないようにすべきだと主張している。 ^ “ビジネスロジックとは - IT用語辞典”. IT用語辞典 e-Words. 2024年10月4日閲覧。 ^ “「ビジネスロジック」とは何か、どう実装するのか”. Qiita (2021年5月23日). 2024年10月3日閲覧。 ^ “Business Logic - CIO Wiki”. cio-wiki.org. 2024年10月5日閲覧。 ^ Steven Minsky (2005年3月27日). “The Challenge of BPM Adoption”. eBizQ. 2008年1月28日閲覧。 ^ Khawar Zaman Ahmed and Cary E. Umrysh (2001年10月17日). “Introduction to Enterprise Software”. Developing Enterprise Java Applications with J2EE™ and UML. Addison-Wesley. ISBN 0-201-73829-5. http://www.awprofessional.com/articles/article.asp?p=24260&seqNum=3&rl=1  ^ Chad Z. Hower. “Dude, where's my business logic?”. The Code Project. 2008年1月28日閲覧。 Brett McLaughlin (2002年3月). “Business Logic, Part 1”. Building Java Enterprise Applications, Vol I: Architecture. O'Reilly and Associates. ISBN 0-596-00123-1. http://www.onjava.com/pub/a/onjava/excerpt/bldgjavaent_8/index1.html  — McLaughlin はFacade パターンを使ってビジネスロジック層を実装する手法を論じている。 Kathy Bohrer (1997年11月). “Middleware isolates business logic”. Object Magazine (New York, USA: SIGS Publications, Inc.) 7 (9): 41–46;. ISSN 1055-3614. http://portal.acm.org/citation.cfm?id=284112.284140.  Harumi Kuno, Mike Lemon, Alan Karp, and Dorothea Beringer (2001年). "Conversations + Interfaces = Business Logic". In F. Casati, D. Georgakopoulos, and M.-C. Shan (ed.). Technologies for E-Services: Second International Workshop, TES 2001, Rome, Italy, September 14-15, 2001, Proceedings. Lecture Notes in Computer Science. Vol. 2193. Springer Berlin / Heidelberg. ISSN 0302-9743。 Volker Turau (2002年). "A framework for automatic generation of web-based data entry applications based on XML". Proceedings of the 2002 ACM symposium on Applied computing, Madrid, Spain: Web and e-business application. ACM Press. pp. 1121–1126. ISBN 1-58113-445-2。 — Java Servlet と JavaServer Pages を使ったアプリケーションフレームワークの解説。ビジネスロジックとプレゼンテーションの分離ができ、双方の開発がスムーズになる。 Pau, L-F. and Vervest, P.H.M. (2003年12月8日). Network-based business process management: embedding business logic in communications networks. ERIM Report Series Research in Management. Erasmus University. https://hdl.handle.net/1765/1070.  ソフトウェア工学 Enterprise JavaBeans ユーザインタフェース管理システム(UIMS) Magic pushbutton - アンチパターンの一種 ビジネスロジック層 プレゼンテーションロジック