SlideShare a Scribd company logo
Distributed Systems 第1章 Introduction
   @aomoriringo

   雑用プログラマ@forschooner

   Pythonとか
   分散システムの定義

   分散システムの目標
    ◦ 拡張性の問題点
    ◦ 拡張手法

   分散システムの種類
   A distributed system is a collection of independent
    computers that appears to its users as a single
    coherent system.

   ユーザに対して一貫性のあるシステムを提供する
    独立したコンピュータの集合
    ◦ 各ノードが自律している(autonomous)
    ◦ ユーザは単一システムとして扱うと考える
Distributed Systems 第1章 Introduction
   分散システムを構築する際、対処すべき問題

    ◦ リソースを利用できる

    ◦ 透明性

    ◦ 開放性

    ◦ 拡張性
   リソースの例
    ◦ コンピュータ, プリンタ, データ, フゔ゗ル, ウェブページ etc...

   ユーザが簡単にリソースを使用/共有できる

   ただし、接続性がよくなると・・・
    ◦ 盗聴/侵入される
    ◦ パスワード、クレジットカード番号などの保存方法
    ◦ スパムもたくさん来る

    →セキュリテゖへの対応が重要
   透過的(transparent)
    ◦ 分散システムであることをユーザが意識しなくてもよい


   透明性の種類
    Access        データ表現、リソースへのアクセス方法を隠蔽する
    Location      リソースの位置を隠蔽する
    Migration     リソースが他の場所に移動することを隠蔽する
    Relocation    リソースが使用中に他の場所に移されることを隠蔽する
    Replication   リソースが複製されることを隠蔽する
    Concurrency   リソースが複数のユーザで共有されることを隠蔽する
    Failure       リソースの故障、復旧を隠蔽する
   完全に透明にしない方がよい/できない場合もある
    ◦ 時差による問題
    ◦ 物理的な距離による問題
    ◦ パフォーマンスの問題



   例:フゔ゗ルの複製を(物理的に離れた)複数の場所で
      管理している場合
    ◦ フゔ゗ルを完全にゕップデートするのに数秒かかる
   標準的なルールに従って提供されている
    ◦ プロトコル
    ◦ APIを形式的に記述する



   仕様が明確ならば、相互運用性と携帯性が高まる

    ◦ 相互運用性 (Interoperability)
       システム同士が連携できる能力
    ◦ 携帯性/移植性 (Portability)
       環境を移行する際の容易さ
   システムの拡張性を図る3つの指標

    ◦ システムにユーザやリソースを簡単に追加できるか?

    ◦ ユーザとリソースがはるかに離れていても
      地理的に拡張性があるか?

    ◦ 管理が簡単にできるか?
Concept                 Example
集中型サービス                 A single server for all users
Centralized services
集中型データ                  A single on-line telephone book
Centralized data
集中型アルゴリズム               Doing routing based on complete
Centralized algorithm   information
   集中型サービス
    ◦ サービス中の特定の処理を1台のマシンのみで行う、など
    ◦ 処理の集中を避けられないこともある
      (医療情報、口座情報など、機密性の高い情報を扱う場合)

   集中型データ
    ◦ DBがあるマシンにゕクセスが集中する

   集中型ゕルゴリズム
    ◦ 分散システムであることを前提としたゕルゴリズムを
      使用しなければいけない
    ◦ 例:ルーテゖングの最適化
       全ての機器から情報を集める
       1つのマシンで計算する
       すべての機器に結果を送信する
   システムの状態の完全な情報を持った機器はない。

   機器はローカルな情報のみに基づいて判定をする。

   機器1台が故障してもゕルゴリズムに影響しない。

   グローバルな時計が存在するという仮定を置かない。
    ◦ 正確に時刻を同期することができない
   同期を前提とした設計ができない
    ◦ 1回の通信にLANの1000倍ぐらいかかる


   LANより接続の信頼性が低い

   異なる管理領域にまたがる分散システムの拡張
    ◦ 別ドメ゗ンからの攻撃の遮断
   通信待ち時間の隠蔽

   分散

   反復
   できるだけリクエストへの反応を待たない
    →非同期通信
   入力フォームの例
   要素を小さなパーツに分け、システム全体に広げる

   例: Domain Name System (DNS)
    ◦ 地域ごとに名前空間が分けられている
   システム全体に構成要素を複製する
    ◦ 可用性を高める
    ◦ 負荷を分散する
    ◦ 複製フゔ゗ルが多いと一貫性の問題が発生
      (更新がすぐに反映されないと困る)


   複製と一貫性のどちらをとるかは、リソースの使用法に
    依存
    ◦ ウェブブラウザ
      →複製により可用性を重視
    ◦ 電子証券取引所、オークション
      →強い一貫性が求められる
   分散システムを開発するときにしてはいけない仮定

    ◦ ネットワークが信頼出来る

    ◦ ネットワークが安全である

    ◦ ネットワークが均一である

    ◦ トポロジー(接続形態)が変化しない

    ◦ 待ち時間が0である

    ◦ 帯域幅が無限である

    ◦ 転送コストが0である

    ◦ 管理者は1人である
   分散コンピューテゖングシステム
    ◦ クラスタコンピューテゖングシステム
    ◦ グリッドコンピューテゖングシステム

   分散情報システム
    ◦ トランザクション処理システム
    ◦ Enterprise Application Integration


   分散浸透システム
    ◦ Home Systems
    ◦ Electronic Health Care Systems
    ◦ Sensor Networks
   高性能計算用

   クラスタコンピューテゖングシステム
    ◦ 同じようなPC + 高速LAN
    ◦ 各ノードが同じOS

   グリッドコンピューテゖングシステム
    ◦ 各ノードのハードウェゕ、ソフトウェゕ、
      ネットワークが大きく異なる
   スーパーコンピュータ
   例: Beowulf clusters
   ハードウェゕ、OS、ネットワーク、管理ドメ゗ン、セ
    キュリテゖポリシーなどを仮定しない
   ネットワーク上の複数のホストが関連する1まとまりの
    操作(トランザクション)を処理する

   トランザクションの基本操作
   トランザクション特有の性質 (ACID特性)

   Atomic (原子性, 不可分性)
    ◦ トランザクションは分けられない
      トランザクションは「全て実行される」or「1つも実行されない」

   Consistent (一貫性)
    ◦ トランザクションの前後ではデータの整合性が保たれる

   Isolated (独立性)
    ◦ 並列のトランザクションはお互いに干渉しない

   Durable (耐久性, 持続性)
    ◦ トランザクションがコミットされると、その結果は永続する
   企業内の既存のゕプリケーション群を連携/統合する
   携帯電話、情報家電、カーナビなど、あらゆる機器が
    ネットワークにゕクセスし、情報が普通の人々の生活の
    あらゆる面に深く「浸透」していくような環境

   浸透システムの要件
    ◦ 文脈の変化を受け入れる
    ◦ ゕドホックな構成を促す
    ◦ 基本的に共有を許可する
Distributed Systems 第1章 Introduction
Distributed Systems 第1章 Introduction
   分散システムは複数の自律システムから成り、
    一貫したシステムを提供する

   異なるコンピュータで動く異なるゕプリケーションを
    1つのシステムにまとめることができる

   分散透過性を達成する方法は分散システムのデザ゗ン
    固有なので、分散システムは難しい

   計算、情報処理、浸透性を指向する分散システムが
    存在する

More Related Content

PPT
第2回 分散システム本読書会
PPTX
第2章アーキテクチャ
PDF
P2Pネットワークを利用した分散ファイルシステムの開発
PPTX
分散システム第7章(前半)
PDF
一歩進んだXen仮想化環境構築
PDF
CloudStack User Inferface
PDF
Data Center As A Computer 2章前半
PDF
第17回「サーバーとネットワークをもっと仲良しに – その間を取持つネットワーク仮想化技術」(2012/05/24 on しすなま!)
第2回 分散システム本読書会
第2章アーキテクチャ
P2Pネットワークを利用した分散ファイルシステムの開発
分散システム第7章(前半)
一歩進んだXen仮想化環境構築
CloudStack User Inferface
Data Center As A Computer 2章前半
第17回「サーバーとネットワークをもっと仲良しに – その間を取持つネットワーク仮想化技術」(2012/05/24 on しすなま!)

What's hot (18)

PDF
自律連合型基盤システムの構築
PDF
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
PDF
Cocoa勉強会#61-メインスレッド外でNSURLConnection
PDF
Linux女子部 systemd徹底入門
PDF
Wakame-vnet / Open Source Project for Virtual Network & SDN
PDF
OpenVNet Updates 2013/11 in TremaDay#04
PPTX
小規模環境におけるNutanix Filesの活用を考える
PDF
OpenVNet at Vyatta Users Group
PDF
Osc2009 Do Xen Hara
PDF
社内サーバインフラ勉強会(DB)
PPT
Linux/DB Tuning (DevSumi2010, Japanese)
PDF
OpenStackとPythonと私
PPTX
Windows Azure Storage:Best Practices and Internals
PDF
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
PPTX
地理分散DBについて
PDF
about Eucalyptus (20121026) NII
PDF
Windows2000におけるコンピュータ室環境の構築
PDF
PXE @第一回成果報告会(2012/12/17)
自律連合型基盤システムの構築
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#61-メインスレッド外でNSURLConnection
Linux女子部 systemd徹底入門
Wakame-vnet / Open Source Project for Virtual Network & SDN
OpenVNet Updates 2013/11 in TremaDay#04
小規模環境におけるNutanix Filesの活用を考える
OpenVNet at Vyatta Users Group
Osc2009 Do Xen Hara
社内サーバインフラ勉強会(DB)
Linux/DB Tuning (DevSumi2010, Japanese)
OpenStackとPythonと私
Windows Azure Storage:Best Practices and Internals
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
地理分散DBについて
about Eucalyptus (20121026) NII
Windows2000におけるコンピュータ室環境の構築
PXE @第一回成果報告会(2012/12/17)
Ad

Similar to Distributed Systems 第1章 Introduction (20)

PDF
クラウドを支える基盤技術の最新動向と今後の方向性
PDF
RM-ODP 概要
PPT
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
PPTX
分散システムについて語らせてくれ
PDF
マイニング探検会#10
PDF
クラウドセキュリティ基礎
PDF
Oracle設計
PDF
【18-C-3】システムアーキテクチャ構築の実践手法
PDF
TokyoWebMining#18_nukamu
PDF
Vcn daylive-2020 nsx-didps
PPTX
Distributed Systems 第10章 Distributed Object-Based Systems
PPTX
MicroServiceArchitecture
PDF
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
PDF
分散システム読書会 13章-分散協調ベースシステム
PDF
As-Isシステム分析は入出力から始めよ
PPTX
要求開発を補完する現状分析
PDF
DSL駆動によるクラウド・アプリケーション開発
PDF
CCGrid2012 参加報告
PDF
要求管理を確実に行うための知識と方法
PDF
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
クラウドを支える基盤技術の最新動向と今後の方向性
RM-ODP 概要
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
分散システムについて語らせてくれ
マイニング探検会#10
クラウドセキュリティ基礎
Oracle設計
【18-C-3】システムアーキテクチャ構築の実践手法
TokyoWebMining#18_nukamu
Vcn daylive-2020 nsx-didps
Distributed Systems 第10章 Distributed Object-Based Systems
MicroServiceArchitecture
クラウドセキュリティ基礎 @セキュリティ・ミニキャンプ in 東北 2016 #seccamp
分散システム読書会 13章-分散協調ベースシステム
As-Isシステム分析は入出力から始めよ
要求開発を補完する現状分析
DSL駆動によるクラウド・アプリケーション開発
CCGrid2012 参加報告
要求管理を確実に行うための知識と方法
設計/アーキテクチャ設計 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第19回】
Ad

More from aomori ringo (6)

PDF
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
PDF
Mathematicaでgolf
PDF
Mathematicaをはじめよう
PDF
Source monitorと複雑度のはなし
PPTX
md5のアルゴリズム
PDF
すごいHaskell楽しく学ぼう 第6章
Distributed Systems 第10章 Distributed Object-Based Systems (後編)
Mathematicaでgolf
Mathematicaをはじめよう
Source monitorと複雑度のはなし
md5のアルゴリズム
すごいHaskell楽しく学ぼう 第6章

Distributed Systems 第1章 Introduction

  • 2. @aomoriringo  雑用プログラマ@forschooner  Pythonとか
  • 3. 分散システムの定義  分散システムの目標 ◦ 拡張性の問題点 ◦ 拡張手法  分散システムの種類
  • 4. A distributed system is a collection of independent computers that appears to its users as a single coherent system.  ユーザに対して一貫性のあるシステムを提供する 独立したコンピュータの集合 ◦ 各ノードが自律している(autonomous) ◦ ユーザは単一システムとして扱うと考える
  • 6. 分散システムを構築する際、対処すべき問題 ◦ リソースを利用できる ◦ 透明性 ◦ 開放性 ◦ 拡張性
  • 7. リソースの例 ◦ コンピュータ, プリンタ, データ, フゔ゗ル, ウェブページ etc...  ユーザが簡単にリソースを使用/共有できる  ただし、接続性がよくなると・・・ ◦ 盗聴/侵入される ◦ パスワード、クレジットカード番号などの保存方法 ◦ スパムもたくさん来る →セキュリテゖへの対応が重要
  • 8. 透過的(transparent) ◦ 分散システムであることをユーザが意識しなくてもよい  透明性の種類 Access データ表現、リソースへのアクセス方法を隠蔽する Location リソースの位置を隠蔽する Migration リソースが他の場所に移動することを隠蔽する Relocation リソースが使用中に他の場所に移されることを隠蔽する Replication リソースが複製されることを隠蔽する Concurrency リソースが複数のユーザで共有されることを隠蔽する Failure リソースの故障、復旧を隠蔽する
  • 9. 完全に透明にしない方がよい/できない場合もある ◦ 時差による問題 ◦ 物理的な距離による問題 ◦ パフォーマンスの問題  例:フゔ゗ルの複製を(物理的に離れた)複数の場所で 管理している場合 ◦ フゔ゗ルを完全にゕップデートするのに数秒かかる
  • 10. 標準的なルールに従って提供されている ◦ プロトコル ◦ APIを形式的に記述する  仕様が明確ならば、相互運用性と携帯性が高まる ◦ 相互運用性 (Interoperability)  システム同士が連携できる能力 ◦ 携帯性/移植性 (Portability)  環境を移行する際の容易さ
  • 11. システムの拡張性を図る3つの指標 ◦ システムにユーザやリソースを簡単に追加できるか? ◦ ユーザとリソースがはるかに離れていても 地理的に拡張性があるか? ◦ 管理が簡単にできるか?
  • 12. Concept Example 集中型サービス A single server for all users Centralized services 集中型データ A single on-line telephone book Centralized data 集中型アルゴリズム Doing routing based on complete Centralized algorithm information
  • 13. 集中型サービス ◦ サービス中の特定の処理を1台のマシンのみで行う、など ◦ 処理の集中を避けられないこともある (医療情報、口座情報など、機密性の高い情報を扱う場合)  集中型データ ◦ DBがあるマシンにゕクセスが集中する  集中型ゕルゴリズム ◦ 分散システムであることを前提としたゕルゴリズムを 使用しなければいけない ◦ 例:ルーテゖングの最適化  全ての機器から情報を集める  1つのマシンで計算する  すべての機器に結果を送信する
  • 14. システムの状態の完全な情報を持った機器はない。  機器はローカルな情報のみに基づいて判定をする。  機器1台が故障してもゕルゴリズムに影響しない。  グローバルな時計が存在するという仮定を置かない。 ◦ 正確に時刻を同期することができない
  • 15. 同期を前提とした設計ができない ◦ 1回の通信にLANの1000倍ぐらいかかる  LANより接続の信頼性が低い  異なる管理領域にまたがる分散システムの拡張 ◦ 別ドメ゗ンからの攻撃の遮断
  • 16. 通信待ち時間の隠蔽  分散  反復
  • 17. できるだけリクエストへの反応を待たない →非同期通信  入力フォームの例
  • 18. 要素を小さなパーツに分け、システム全体に広げる  例: Domain Name System (DNS) ◦ 地域ごとに名前空間が分けられている
  • 19. システム全体に構成要素を複製する ◦ 可用性を高める ◦ 負荷を分散する ◦ 複製フゔ゗ルが多いと一貫性の問題が発生 (更新がすぐに反映されないと困る)  複製と一貫性のどちらをとるかは、リソースの使用法に 依存 ◦ ウェブブラウザ →複製により可用性を重視 ◦ 電子証券取引所、オークション →強い一貫性が求められる
  • 20. 分散システムを開発するときにしてはいけない仮定 ◦ ネットワークが信頼出来る ◦ ネットワークが安全である ◦ ネットワークが均一である ◦ トポロジー(接続形態)が変化しない ◦ 待ち時間が0である ◦ 帯域幅が無限である ◦ 転送コストが0である ◦ 管理者は1人である
  • 21. 分散コンピューテゖングシステム ◦ クラスタコンピューテゖングシステム ◦ グリッドコンピューテゖングシステム  分散情報システム ◦ トランザクション処理システム ◦ Enterprise Application Integration  分散浸透システム ◦ Home Systems ◦ Electronic Health Care Systems ◦ Sensor Networks
  • 22. 高性能計算用  クラスタコンピューテゖングシステム ◦ 同じようなPC + 高速LAN ◦ 各ノードが同じOS  グリッドコンピューテゖングシステム ◦ 各ノードのハードウェゕ、ソフトウェゕ、 ネットワークが大きく異なる
  • 23. スーパーコンピュータ  例: Beowulf clusters
  • 24. ハードウェゕ、OS、ネットワーク、管理ドメ゗ン、セ キュリテゖポリシーなどを仮定しない
  • 25. ネットワーク上の複数のホストが関連する1まとまりの 操作(トランザクション)を処理する  トランザクションの基本操作
  • 26. トランザクション特有の性質 (ACID特性)  Atomic (原子性, 不可分性) ◦ トランザクションは分けられない トランザクションは「全て実行される」or「1つも実行されない」  Consistent (一貫性) ◦ トランザクションの前後ではデータの整合性が保たれる  Isolated (独立性) ◦ 並列のトランザクションはお互いに干渉しない  Durable (耐久性, 持続性) ◦ トランザクションがコミットされると、その結果は永続する
  • 27. 企業内の既存のゕプリケーション群を連携/統合する
  • 28. 携帯電話、情報家電、カーナビなど、あらゆる機器が ネットワークにゕクセスし、情報が普通の人々の生活の あらゆる面に深く「浸透」していくような環境  浸透システムの要件 ◦ 文脈の変化を受け入れる ◦ ゕドホックな構成を促す ◦ 基本的に共有を許可する
  • 31. 分散システムは複数の自律システムから成り、 一貫したシステムを提供する  異なるコンピュータで動く異なるゕプリケーションを 1つのシステムにまとめることができる  分散透過性を達成する方法は分散システムのデザ゗ン 固有なので、分散システムは難しい  計算、情報処理、浸透性を指向する分散システムが 存在する