ホームページ > よくある問題 > 一般的なソフトウェア アーキテクチャにはどのようなものがありますか?

一般的なソフトウェア アーキテクチャにはどのようなものがありますか?

青灯夜游
リリース: 2020-08-29 11:31:40
オリジナル
18901 人が閲覧しました

一般的なソフトウェア アーキテクチャ パターン: 階層化アーキテクチャ パターン、クライアント/サーバー パターン、マスター/スレーブ パターン、パイプライン フィルター パターン、プロキシ パターン、ポイントツーポイント パターン、イベント バス パターン、モデル ビュー コントローラー ( MVC)モード、黒板モード、インタプリタモードなど。

一般的なソフトウェア アーキテクチャにはどのようなものがありますか?

#10 の一般的なソフトウェア アーキテクチャ パターン

#大企業レベルのパターンを知りたいシステムはどのように設計されたのですか?ソフトウェア本体を開発する前に、必要な機能と品質特性を提供するために適切なアーキテクチャを選択する必要があります。したがって、設計に適用する前に、さまざまなアーキテクチャを理解する必要があります。


#アーキテクチャ パターンとはWikipedia:

アーキテクチャ パターンは一般的なものです、ソフトウェア アーキテクチャの特定のコンテキスト内で一般的に発生する問題に対する再利用可能なソリューション。アーキテクチャ パターンはソフトウェア デザイン パターンに似ていますが、範囲はより広いです。

この記事では、次の 10 個の一般的なアーキテクチャ パターンの用途、利点、欠点について簡単に説明します。

1. レイヤードモード

2. クライアントサーバーモード

3. マスタースレーブモード
4. パイプフィルターモード
5. プロキシモード
6. ポイント-to-point モード
7. イベント バス モード
8. モデル ビュー コントローラー モード
9. ブラックボード モード
10. インタプリタ モード


1. 階層パターン

このパターンは、複数のサブタスク グループに分解できるプログラムを構築するために使用されます。各サブタスクは特定の抽象化レイヤーにあり、各レイヤーはサービスは前の上位レベルによって提供されます。一般的な情報システムで最も一般的な4層構造は以下のとおりです。


プレゼンテーション層 (UI 層とも呼ばれます)

    アプリケーション層 (サービス層とも呼ばれます)
  • ビジネス ロジック層 (ドメイン層とも呼ばれます)
  • データ アクセス層 (永続層とも呼ばれます)
  • アプリケーション シナリオ
一般的なデスクトップ プログラム
    電子商取引 Web ページ プログラム


2. クライアントサーバー モード

このモードは次のもので構成されます。 2 部分的な構成: 単一のサーバーと複数のクライアント。サーバー コンポーネントは、複数のクライアント コンポーネントにサービスを提供します。クライアントはサーバーにサービスを要求し、サーバーはこれらのクライアントに対応するサービスを提供します。さらに、サーバーはクライアントのリクエストをリッスンし続けます。

#アプリケーション シナリオ

電子メール、ドキュメント共有、バンキングなどのオンライン アプリケーション



3. マスター/スレーブ モード

このモードは、マスター ノードと複数のスレーブ ノードの 2 つの部分で構成されます。マスター ノード コンポーネントは、複数の独立したスレーブ ノード コンポーネントにタスクをディスパッチし、スレーブ ノードから返された結果に基づいて最終結果を計算します。

アプリケーション シナリオ

データベース レプリケーション。マスター データベースが信頼できるソースとみなされ、スレーブ データベースに同期されます。

システムの周辺機器(マスター・スレーブドライバー)への接続

4. パイプフィルターモード

このパターンは、データ ストリームを生成および処理するシステムを構築するために使用されます。各処理ステップはフィルター コンポーネントにカプセル化されます。処理されるデータはパイプに送信され、バッファリングや同期に使用できます。 # アプリケーション シナリオ


#コンパイラー、後続のフィルターが単語の意味分析、構文分析、意味分析、コード生成を実行します

workflowバイオデータ分野の

#5. エージェント モード


# このパターンが使用されますコンポーネントを分離した分散システムを構築します。これらのコンポーネントは、リモート呼び出しを通じて相互に対話します。プロキシ コンポーネントは複数のコンポーネントの通信調整を担当します。サーバーはその機能 (サービスと機能) をプロキシに公開します。クライアントはプロキシからサービスを取得し、プロキシはクライアントを登録済みの適切なサービスにリダイレクトします。サービスライブラリ。

# アプリケーション シナリオ

#Apache ActiveMQ、Apache Kafka、RabbitMQ、JBoss Messaging などのメッセージ キュー ソフトウェア


6. ポイントツーポイント モード

このモードでは、各独立したコンポーネントはピアと呼ばれます。ピアは、クライアントとして機能して他のピアからサービスを取得することも、サーバーとして機能して他のピアにサービスを提供することもできます。ピアはクライアント、サーバー、またはその両方として機能し、いつでも動的に役割を切り替えることができます。

アプリケーション シナリオ

  • Gnutella や G2 などのファイル共有ネットワーク
  • P2PTV や PDTP などのマルチメディア プロトコル
  • Spotify などのプライベート メディア プログラム


7. イベント バス モード ## このモードは主にイベントを処理し、イベント ソース、イベント リスナー、チャネル、イベント バスの 4 つの主要コンポーネントがあります。イベント ソースはイベント バス上のチャネルにメッセージをパブリッシュし、リスナーはチャネルにサブスクライブし、サブスクライブされたチャネルでパブリッシュされたメッセージについて学習します。


アプリケーション シナリオ

Android 開発
  • 通知サービス


8. Model-View-Controller パターン このパターンは MVC パターンとも呼ばれ、対話型プログラムを 3 つの部分に分割します。 : モデル - コア機能とデータが含まれます。ビュー - ユーザーに情報を表示します (複数のビューを定義できます)。コントローラー - ユーザー入力を処理します。これは、ユーザー情報の内部表現を、それが提示および受信される方法から分離し、コンポーネントを分離し、効率的なコードの再利用を可能にすることによって実現されます。


アプリケーション シナリオ

主流プログラミング言語の World Wide Web プログラム アーキテクチャ
  • Web ページ フレームワーク (Django や Rails など)


9. ブラックボード モード このモードは問題に非常に適しています。決定的な解決戦略がない場合でも、それは機能します。ブラックボード パターンは、ソリューション スペース オブジェクトを含む構造化されたグローバル メモリである黒板、独自の表現を持つ特殊なモジュールである知識ソース、および選択、構成、および実行モジュールである制御コンポーネントの 3 つの主要なコンポーネントで構成されます。すべてのコンポーネントは黒板にアクセスでき、新しいデータ オブジェクトを生成して黒板に追加できます。 Blackboardでは、既存の知識ソースからの一致ルールに基づいて特定の種類のデータを見つけることができます。


アプリケーション シナリオ

音声認識
  • 車両認識と追跡
  • タンパク質構造の同定
  • ソナー信号の解釈


10. インタープリターモードこれパターンは、特定の言語で書かれたプログラムを解釈するコンポーネントを設計するために使用されます。このコンポーネントは主に、特定の言語で書かれたプログラムコードの行、いわゆる文や式をどのように評価するかを規定するものであり、言語記号を分類することが基本となります。


# アプリケーション シナリオ

#SQL などのデータベース クエリ言語

通信プロトコルの記述に使用される言語


アーキテクチャ パターンの比較

次の表は、各アーキテクチャ パターンの長所と短所をまとめたものです。

# この記事があなたのお役に立てば幸いです。また、皆様のご意見もお聞きしたいです。読んでくれてありがとう。 ^_^

以上が一般的なソフトウェア アーキテクチャにはどのようなものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート