「エンタープライズアプリケーションアーキテクチャ」書評

1.エンタープライズアプリケーションアーキテクチャ

  • アーキテクチャ

    • アーキテクチャの定義:システム分解の最高レベルは、システムが部分を変更することは容易ではありません。

    • フレームワークの最も貴重な部分がある:階層設計。

  • エンタープライズ・アプリケーションの特性

    • 一般的に永続的なデータを必要とします

    • 通常、大量のデータを必要とします

    • 通常、それは同時にシステムにアクセスするために多くの人々が関与しました

    • データ操作の大量さらにユーザインターフェース画面に関する

    • 通常、企業の周りの他のエンタープライズ・アプリケーションと統合

    • データの矛盾の概念もあります

    • 複雑なビジネス、「ノーロジック」

    • 巨大なシステムは、「分割統治」の考え方を持っている必要があります

  • エンタープライズアプリケーションの種類(抽象的、精製)

    • データ処理システムの大量

    • 要求の厳しいユーザーインターフェースシステム

    • データ管理システム

  • パフォーマンスに関する考慮事項

    • 応答時間

    • 応答:プログレスバー

    • 待ち時間

    • スループット

    • ロード

    • 効率

    • スケーラビリティ

  • モード

    • メインモードは、「意思」と「概要」であります

    • すべてのモデルは、抽象化行動している不完全で、改善することを学ぶ必要があります。

 

2.成層

  • プロ物事を行うには専門の人

  • メリット成層

    • 一つの層は、有機全体が理解されるべきであってもよいです

    • 内側の層が達成されると、限り、同じサービスを提供することができるように交換することができます

    • カップリングは、様々なレベルの依存性を最小限にするために、低減することができます

    • 標準化の賛成でレイヤード

  • アプリケーションレベルの企業の進化

    • 三つの基本的なレベル:プレゼンテーション層、フィールド層、データ層のソース

 

ビジネスロジックの3組織

  • ビジネスロジックモデル

    • 三つのモード:トランザクションスクリプト、ビジネスモデル、テーブルモジュール。

    • トランザクションスクリプト:アクションのプロセス制御ロジック。

    • ビジネスモデル:各オブジェクトは、関連するロジックの一部を負担します。

    • テーブルモジュール:テーブルユニット設計パターン。

  • サービス層、サービス層へのビジネス・ロジック

    • サービス層:場所のトランザクション制御やセキュリティチェックは、使いやすいAPIを提供しています。

 

リレーショナル・データベースにマッピングされた4

  • 建築パターン

    • データベースにアクセスするために、論理ドライブのフィールドを解決するための主な方法

    • ドメインモデルとデータベースの完全に独立したので、ドメインオブジェクトとデータベーステーブルの間のマッピングを完了するために間接の層

  • 問題行動

    • データベースからのデータのデータの読み取り、および変更時にアクションの動作

    • データの整合性を確保する必要性

    • レイジーローディングはまた、必要なアイデアですが、それは、参照されるオブジェクトのプレースホルダを読み込むに大きな遅延を持つことです

  • データを読みます

    • データを読み出す方法は、ファインダとして見ることができます

    • 重要な問題は、データのパフォーマンスの問題を読むことです

    • ガイドラインは、繰り返しのクエリに同じテーブルを避けるために、データのバッチ操作を読み取ることが可能です

  • 構造マッピングモード

    • マッピング:オブジェクトとキーのマッピング

    • 依存関係のマッピングは、マッピング関係を簡素化することができます

  • 受け継ぎます

    • 単一テーブル継承:すべてのクラスのテーブルを構築

    • コンクリートテーブル継承:具象クラスごとのテーブルを作成します

    • クラステーブル継承:テーブルを作成するために、各クラスのレベル

  • マッピングを確立

    • マッピング二工程:第一のプログラムメモリは、論理的なデータ記憶方式に変換され、論理データが物理データ・ストレージに格納されます。

  • メタデータ

    • メタデータのマッピング:ドメインマップの欄にデータベースオブジェクト。

  • データベース・リンク

    • 大規模なデータベース・リンクのオーバーヘッドを構築し、接続プールを確立する必要があります

    • トランザクションは、各コマンドは、リンクで送信されたことを確認する必要があります

    • リンクは、使用後にクローズする必要があり、ガベージコレクションのメカニズムと通常密接なリンク

    • SQLインジェクションを防ぐためにプリコンパイルされたメカニズムを使用して、選択*を使用しないでください。

 

5.Webプレゼンテーション層

  • ウェブ・サーバ・アプリケーション

    • スクリプトを使用する:ストリームの形式で書かれた文字列でHTTPリクエストデータの出力を受け入れます

    • サーバーページ:プログラムと一緒にテキストページへのリターン

    • 非プレゼンテーションロジックが取り除か

  • ビューモード

    • 変換ビュー、ビューテンプレートと二段階のビュー

    • スイッチビュー:変換プログラムのスタイル

    • テンプレートビュー:ページタグに埋め込まれたページ記述されたプレゼンテーション層構造。しかし、これは維持するのが難しいコードを混乱につながります。

    • 二段階の表示:フロントとリアの端が明確に独立した2つの別々のビジネスロジックとして理解することができますが、パフォーマンスのいくつかの損失があります。

  • 入力コントローラモード

    • コントローラのページを準備します

    • コントローラは、単一のオブジェクト、ページに対応するアクションを単離しました。

 

6.同時

  • 同時実行の問題

    • 開発者は、単にそれがトランザクションマネージャためである並行性の問題を回避することができます。

    • オフライン並行性:複数のデータベース・トランザクション・データの同時実行制御動作。

    • 1まず、更新データ、及び、完全な更新データの前にデータB 1、およびBを更新:更新を失いました。そして、B更新されたデータにつながるが、開始後にBの初め以来、失われたが、Aの終了前に終了され、Bは、更新を読んでいないリード。

    • 矛盾読む:読み取りプロセスデータ、Bはデータではなく、最新のデータリードの読み取りを変更します。

  • 実行コンテキスト

    • 要求:ソフトウェアの仕事の問題に対処するための単一の呼び出し外部環境。

    • セッション:長い対話型のクライアントとサーバー

    • サービス:単一の要求と見られて複数のリクエスト

  • 孤立不変性

    • データをロックします

    • 同じデータの識別

  • 楽観と悲観的同時実行制御の同時実行制御

    • オプティミスティック・ロック:衝突検出、アプリケーションシナリオは、紛争と紛争の結果は深刻ではない小さいです。

    • ペシミスティック・ロック:衝突回避、同時実行の程度を減らすが、大きな閉塞がパフォーマンスに影響を与える生成されます。

  • 矛盾読書避けてください

    • ペシミスティック・ロック・ストラテジーは、データを読み出すプラスリードロック(共有ロック)、データを書き込むプラス書き込みロック(排他ロック)することです。

    • オプティミスティック・ロック・ストラテジーは、タグデータのバージョンに基づいて、衝突検出です。

  • デッドロック

    • 悲観的ロックの技術は、特別な問題は、デッドロックであります。

    • デッドロック:ロックデータに加えてデータを使用する後者のA 2、B 1と、データの使用ロック1、B 2データ、。ラッチB 2は、データに付加されたので、Bは、AとBは、Aが実行されるデータ取得を待つ必要が実行を待ちます。したがって、AとBの間には、デッドロックが登場しました。

    • デッドロックを処理する方法は、検出およびタイムアウト制御機構です。

    • 同じ順序ですべてのロックの取得を開始、またはロックを取得するために:最も効果的なソリューションであるデッドロックを避けるようにしてください。

  • 業務

    • ACID:原子性、一貫性、分離性、耐久性。

    • 長いトランザクション:長いトランザクションと呼ばれる複数のリクエストにまたがるトランザクション。

    • 遅延トランザクション:できるだけ遅く取引、取引の実行時間を短縮することができるように開くが、矛盾した読み取りをもたらすことができます。

    • ロック・エスカレーション:トランザクションは複数行のデータをロックされている場合は、非常に多くのロックを扱うことができないデータベースは、それがテーブルロックにエスカレートします。

    • トランザクション分離の削減:直列化可能、反復可能読み取りを、コミット読み、コミットされていないお読みください。

      • シリアライズ可能:すべての取引の完全に分離され、シリアライズされた実行。

      • 反復読出し:Bは、データの一部のみを読み取るようにしながら、ファントムは、ファントムリード要素のコレクションにバッチAに添加される読み取り可能。これは通常、データの挿入によって引き起こされます。

      • コミット読む:既に提出されたデータを読み込む再

      • 非コミット読み取り:ダーティリードが許可され、読み出しデータが送信されていないが、データはロールバックされており、この状況は、ダーティ・リードと呼ばれています。

    • ビジネストランザクションとシステム・トランザクション

      • システムサービスは:多くの場合、データベーストランザクションと言いました

      • ビジネスサービス:事業活動の集合である、ビジネスにも、それはACID特性を有することを期待し、この問題を解決するには、オフラインで複雑になっています。

      • オフライン同時実行:短い一連のトランザクションへのビジネストランザクション。

      • 最大の問題は、ビジネス・トランザクション分離です。

  • 同時実行制御モードはオフラインです

    • 好ましい処理は、楽観的並行性の問題オフラインオフラインロックです。それは実装が容易であるので、それは最高の柔軟性を提供します。

  • 並行アプリケーション・サーバ

 

おすすめ

転載: www.cnblogs.com/wuchangliang/p/11129775.html