ビジネスロジック

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ビジネスロジック: Business logic)は、データベースとユーザーインタフェース間の情報のやりとりを制御するアルゴリズムを指す(技術的でない)用語である。どんなプログラミング言語の仕様を見ても、APIを見てもビジネスロジックという用語は出てこないし、学術論文にも現われない。基本的には、エンタープライズ系(業務支援系)ソフトウェアを開発する企業が内部的に、もしくは顧客への販売促進のために用いる用語である。この用語は、主にプログラムが3層構造となるWebアプリケーション開発で使われる。ビジネスロジックは3層の中の中間層(アプリケーションサーバ)に相当する。いずれにしても、ビジネスロジックという用語は明確な定義がなく、人によって意味が異なる可能性がある。

ビジネスロジックの範囲[編集]

  • 実世界のビジネスオブジェクト(勘定、貸付金、旅程表、在庫目録などなど)をモデル化したもの
  • そのようなビジネスオブジェクト間の相互作用を示したもの
  • ビジネスオブジェクトにアクセス・更新する経路と方法を示したもの

ビジネスロジックは以下の部分からなる[1]:

  • ビジネスルール - ビジネスに関する方針を表現したもの(経路、位置、輸送、価格、製品など)
  • ワークフロー - ある関係者(人間またはソフトウェア)から他の関係者へと文書やデータを渡す仕事の順序

ビジネスロジックの位置[編集]

3層アーキテクチャでのビジネスロジックの位置づけ

単層アプリケーションでは、プレゼンテーション部分とビジネスロジックとデータベース部分が融合し、相互に知識を共有し、結合度が高い。この状態では、一部の修正が他の部分に影響を与えるため、一箇所の変更のためにシステム全体を再度テストし直さなくてはならなくなる。また、データベース部やビジネスロジックの再利用性も低下する[2]

多層アーキテクチャでは、ビジネスロジックは分離されたモジュールとなる。一般的な3層アーキテクチャでは、ビジネスロジックは中間層を形成する(ビジネス層、ビジネスロジック層などと呼ぶ)。実際には、ストアドプロシージャや入力チェックおよび表示形式などの決定という形でビジネスロジックの一部は、他の2つの階層(ユーザサービス層とデータベースサービス層)にも織り込まれる。Hower[3] らはこのような方式を批判し、ビジネスロジックは全てビジネス層で保持すべきで、ユーザサービス層やデータベースサービス層にビジネスロジックを含めないようにすべきだと主張している。

脚注[編集]

  1. ^ Steven Minsky (2005年3月27日). “The Challenge of BPM Adoption”. eBizQ. 2008年1月28日閲覧。
  2. ^ 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. 
  3. ^ Chad Z. Hower. “Dude, where's my business logic?”. The Code Project. 2008年1月28日閲覧。

参考文献[編集]

関連項目[編集]