ビジネスロジック (英 : business logic )、あるいはドメインロジック (英 : domain logic )、業務ロジック は、どのようにデータが作成され、保存され、変更されるかについてを表現するプログラムにおける部分であり、アプリケーション固有の処理を指す[ 1] [ 2] 。データベースの管理やUIの表示、システムインフラ、プログラム全体における各部の接続などを表現する、プログラムにおけるより低水準な残りの部分とは対照的な概念である。
ドメインロジックという場合、あるドメイン に関するビジネスロジックのことを指す場合が多い[要出典 ] 。
この用語は、主にプログラムが層構造となるアプリケーション開発で用いられる[独自研究? ] 。三層アーキテクチャ においては、ビジネスロジックは中間層に位置する。
アルゴリズム は問題が与えられた時の具体的な情報の処理手順であり、アプリケーション固有のものではない一方で、ビジネスロジックはアプリケーション固有の処理であるという点で、これらは異なる概念である。ビジネスロジックには、アプリケーションの目的を達成するための処理を定義する、一連のルール、アルゴリズム、計算処理が含まれる[ 3] 。
ビジネスロジックの範囲
実世界のビジネスオブジェクト (勘定、貸付金、旅程表、在庫目録などなど)をモデル化したもの
そのようなビジネスオブジェクト間の相互作用を示したもの
ビジネスオブジェクトにアクセス・更新する経路と方法を示したもの
ビジネスロジックは以下の部分からなる[ 4] :
ビジネスルール - ビジネスに関する方針を表現したもの(経路、位置、輸送、価格、製品など)
ワークフロー - ある関係者(人間またはソフトウェア)から他の関係者へと文書やデータを渡す仕事の順序
ビジネスロジックの位置
3層アーキテクチャでのビジネスロジックの位置づけ
単層アプリケーションでは、プレゼンテーション部分とビジネスロジックとデータベース 部分が融合し、相互に知識を共有し、結合度 が高い。この状態では、一部の修正が他の部分に影響を与えるため、一箇所の変更のためにシステム全体を再度テストし直さなくてはならなくなる。また、データベース部やビジネスロジックの再利用性も低下する[ 5] 。
多層アーキテクチャ では、ビジネスロジックは分離されたモジュールとなる。一般的な3層アーキテクチャでは、ビジネスロジックは中間層を形成する(ビジネス層、ビジネスロジック層などと呼ぶ)。実際には、ストアドプロシージャ や入力チェックおよび表示形式などの決定という形でビジネスロジックの一部は、他の2つの階層(ユーザサービス層とデータベースサービス層)にも織り込まれる。Hower[ 6] らはこのような方式を批判し、ビジネスロジックは全てビジネス層で保持すべきで、ユーザサービス層やデータベースサービス層にビジネスロジックを含めないようにすべきだと主張している。
脚注
参考文献
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 .
関連項目