第1回― 分散システム概説 ―
分散システムとは
ユーザに対して 単一の首尾一貫した(coherent)システム として見える
利用者はその詳細は知らない(知る必要がない)
→ 個々のコンピュータは協調しなければならない
独立したコンピュータの集合である
--- 単体でも自律している(autonomous) コンピュータの集合
分散システムの目的
- 可用性 (availability)
システムのサービスを利用したいときに利用できる 故障代替
- リソースへのアクセス可能性向上
ユーザ(またはアプリケーション)が遠隔地にある資源(リソース)へのアクセスをすることを 可能にする
リソースの例:プリンタ、コンピュータ、 ストレージ、装置、データ、ファイル、 Webページ、ネットワーク グループウェア(groupware)
- 局所性 (locality)
保護すべき情報を局所的に保存
- スケーラビリティ (scalability)
コンピュータの数を増やすことで 変化に柔軟に対応
分散システムの例
WWW、電子メール 銀行のオンラインシステム クラウドアプリケーション
分散システムの種類
- 分散コンピューティングシステム
高性能計算、信頼性の高いデータ保管等
クラスタコンピューティング cluster computing 集群计算
LANで各マシンが結合される
グリッドコンピューティング grid computing 网格计算
ネットワーク上に分散した複数のサブグループ により構成される
- 分散情報システム
大学・企業等による ネットワークアプリケーションの提供
トランザクション処理システム transaction processing
エンタプライズアプリケーション統合(EAI)
( E nterprise A pplication I ntegration,企业应用集成)
ACID特性
- 原子性 (Atomic)
トランザクションは外部から見て分割不可
- 一貫性 (Consistent)
トランザクションはシステム不変性を侵蝕しない
- 独立性 (Isolated)
並トランザクションは互いに干渉しない
- 永続性 (Durable)
トランザクションがコミットするとその変更は永久
- 分散パーベイシブシステム (pervasive: 遍在する)
小型のセンサやその他の機器を 互いに連結
- 無線アクセス (無線LAN、Bluetooth等)
- RFID(radio frequency identification)
無線認証を用いて物体の認証を行う
- センサネットワーク
- 位置特定技術 (GPS等)
分散システムの設計目標
分散透過性 (distribution transparency)
分散されている事実をユーザ(やアプリケーション) から見えなくすること
- アクセス透過性
ファイルの名前付け規約の違い
位置に関する透過性
- 位置透過性 (location transparency)
(例)http://www.ritsumei.ac.jp/では,立命館の サーバがどこにあるのかを意 識させない
- 移動透過性(migration transparency)
リソースを移動
- 再配置透過性(relocation transparency) WiFi
利用中の移動
システム構成に関する透過性
- 複製透過性 (replication transparency)
可用性や性能を向上させるために配置する コピーを意識させない
- 並行透過性 (concurrency transparency)
共有リソースへの同時アクセスに対して 一貫性を保証する
- 障害透過性 (failure transparency)
リソースの障害と回復を意識させない
開放性 (openness)
プロトコル(protocol)が開かれていることにより、
機器の置き換えや拡張が容易になる
誰でも参照できるようにプロトコルが公開されていること
第2回 ― アーキテクチャ ―
ソフトウェアアーキテクチャ
- 階層型アーキテクチャ
- オブジェクトベースアーキテクチャ (Object-based)
- データ中心型アーキテクチャ
- イベントベースアーキテクチャ(Event-based architecture)
システムアーキテクチャ
集中型(centralized)
クライアントサーバモデル Client server 客户端服务器
-
- サーバ(server) ファイルサーバ、印刷サーバ、Webサーバ
- クライアント(client)
- プロトコルprotocol
- メッセージmessage
- ファットクライアント (fat client) クライアントに比較的多くの役割を持たせる
- シンクライアント (thin client) クライアントの機能を比較的限定した
非集中型(decentralized)
ピアツーピア(peer-to-peer)
垂直分散では、役割が異なる構成要素に分割する。
水平分散では、対等な役割を持つ構成要素に分割する
サーバの分類
- 反復サーバ (iterative server)
- 並行サーバ (concurrent server)
エンドポイント(endpoint) / ポート(port) クライアントからの要求の伝達先
- ウェルノウンポート (well-known port)を使用
クライアントに明示的に通知しなくても接続可能
よく知られたサービスについては固定的 な番号が割り振られており
- 窓口となるサーバに問い合わせる
- ステートフル (stateful) サーバが接続に関する状態管理を行う
- ステートレス (stateless) サーバが接続に関する状態管理を行わない
第3回 ― プロセス ―
プロセス
プログラムに従ってプロセッサが行う一連の処理。
OSによって実行状態が管理される。
マルチプロセスmulti process
一つのOS上では複数のプロセスが実行される
スレッド(thread): プロセス内部の実行の筋(線) 並列的に実行する
分散システムにおけるスレッド
Webブラウザ browser
ファイルサーバ file server
仮想化 (virtualization)
見せかけ”の処理
1つのCPUを高速に複数プロセス間で切り替え、 仮想的に複数のCPUがあるように見せる。
仮想化の目的
分散システムにおける種々の透過性の提供
仮想化とインターフェース(interface)
コード移動 (code migration)
プログラムを他のマシンに移動
- 処理待ちを減らしたり、負荷の集中を避けるため、
CPUが空いている所へプロセスを移動
- 通信量を削減
データの処理はデータの近くで行う
- 柔軟性の向上
システム構成を動的(dynamic)に変化
コード移動とリソース
プロセス・リソースバインディング [Fuggetta-98]