クライアントサーバシステム構成
2層アーキテクチャ:サーバ側にデータベース、クライアント側にファンクション・プレゼンテーションの役割を持たせる。クライアント側の機能が重いので保守作業の負担が大きい。高性能なPCが必要。(ファットクライアント)
3層アーキテクチャ:データベースサーバ側にデータベース、アプリケーションサーバ側にファンクション、クライアント側にプレゼンテーションをそれぞれ役割分担させる。「どの層にどの機能を持たせるか」という論理的な概念である。クライアント側の負荷が低いので、保守性が高い(シンクライアント)
- SOA(サービス思考アーキテクチャ):ソフトウェアの機能をサービスという部品とみなし、サービスモジュールを組み合わせてシステム構築する設計手法。
SOAP:SOAを実現するWebサービス。相互にXML形式のメッセージを送受信するやり取りに必要な規約をまとめたプロトコルのこと。HTTPで伝送する。
WSDL:プログラムからWebサービスを呼び出すためのインタフェース情報
- マイクロサービスアーキテクチャ:SOAをより発展させたもの。APIによる疎結合化を強く推し進めた形である。デプロイの柔軟性、拡張性を高める。
システム評価
スループット:単位時間あたりに処理できる処理件数
レスポンスタイム:処理の要求を出し終えた時点から、その応答が始まるまでの時間(応答時間)主にリアルタイムしょるで用いられる指標。
ターンアラウンドタイム:処理要求を送ってから結果の出力が終了するまでの時間。主にバッチ処理で用いられる。
RASIS:信頼性(MTBF)、可用性(稼働率)、保守性(MTTR)、完全性(矛盾せず一貫性を保つ)、安全性(災害やセキュリティ耐性)
障害対策に対する考え方
- フォールトアボイダンス:障害の発生自体を防ぎ、回避する
- フォールトトレランス:障害を許容し、障害時にも運転を継続させる↓下記の2つ
- フェイルソフト:機能を低下させても継続を重視する
- フェイルセーフ:被害が拡大しない方に制御する
- フォートマスキング:外部から分からないように隠蔽しながら、自律的に障害修復も行う
- フォールバック:不具合部分を運用から切り離し、残りの部分で限定的に運用継続
- フェイルオーバ:待機系システムに処理を引継ぎ、処理を継続する
- フールプルーフ:ユーザがミスしてもそのミスをカバーする設計にする
障害対策の技術
ストライピング:複数台のハードディスクに分散して書き込む
パリティ:データ復旧用の冗長情報で、ハードディスクに障害が発生して内容が失われた場合には、パリティから元データを逆算して求めて復元を行う。RAID5に1か所、RAID6に1か所。
ロードシェアシステム(負荷分散システム):2つ以上の複数の処理系を持ち、ロードバランサなどを用いて各処理系に負荷分散させることで、処理効率や信頼性の向上を図るシステム。
クラスタリング:複数のコンピュータを相互に接続し、あたかも1台の高性能コンピュータのようする。処理性能と信頼性を向上させる。※同じ敷地内で繋げるイメージ
グリッドコンピューティングシステム:ネットワーク上の複数のコンピュータを接続して、仮想的な高性能な1台のコンピュータとして利用する。大規模な計算処理を実行する。※世界中から集めるイメージ