アーキテクチャー

アーキテクチャーの様式

一般的に代表的なアーキテクチャーとして知られているのか以下の形式です。

Pipe-Filter

構成要素

pipe:入出力のデータストリーム
filter:データの変換

引用:https://ja.wikipedia.org/wiki/ソフトウェアアーキテクチャ

特徴

・システムの処理をフィルターの重ね合わせと考える
・各フィルターは独立した単位=再利用が可能
・システムの保守と機能的拡張が容易
・並列実行を表しやすい

欠点

・バッチ処理的システムに陥りやすい
・インタラクティブなシステムには向かない
・フィルター間で共通する処理に冗長性が生まれる

Client-Server

構成要素

Client:サービスを利用
Server:サービスを提供

引用:https://ja.wikipedia.org/wiki/ソフトウェアアーキテクチャ

ClientとServerでのやり取り方法

要求・応答

Clientがサービスを要求してSerberがサービスを提供する

コールバック

Clientは、Serverの準備ができたら呼び出してもらう

特徴

 

欠点

 

Peer-to-Peer(P2P)

構成要素

コンポーネント
→コンポーネントはServerとクライアントの役割を両方備える
→全てのコンポーネントが他のコンポーネントに要求を出せる

引用:https://ja.wikipedia.org/wiki/ソフトウェアアーキテクチャ

特徴

・拡張性が高い(特に規模的な)
・高い処理能力のシステムを実現しやすい
・耐障害性が非常に高い

欠点

Peer間での信頼が必要



Publish-Subscribe(発行者-読者)

構成要素

 

 

特徴

・システムの拡張が容易:コンポーネントの“着脱”が他に影響しない
・再利用性に優れている
・データ通信が難しい:共有メモリが必要
・妥当性検証が難しい:通知する側は受信側の事情を知らない

欠点

 

Repository

構成要素

・中央データ
・コンポーネント
→データの格納、取得、更新を行う

 

コンポーネント間のやり取り方法

データベース型

データベースはServerの役割を果たす
コンポーネントは能動的に動作する

黒板型

中央データの状態に応じてコンポーネントが動作する
• データを取得し、処理し、戻す(例、Wikipedia)
• コンポーネントはデータに対して受動的に動作する

特徴

高い公開性: 広く利用できる
– 中央管理がしやすい:品質、セキュリティー
– 広く利用しやすいデータ構造を維持するのが難しい

欠点

 

Layering

構成要素

 

 

通信方法

層間でプロトコルを決める

特徴

 

利点

・抽象度での整理がしやすい:複雑な問題を階層に分割する
・拡張が容易:依存関係が前後の層に限られる

欠点

・階層構造に整理するのは難しい
・パフォーマンス:層ごとに通信することが負荷や遅延になる

 

ソフトウェア開発おすすめ本

created by Rinker
¥3,520
(2020/10/01 06:42:56時点 楽天市場調べ-詳細)