SlideShare una empresa de Scribd logo
1 de 31
   @aomoriringo

   雑用プログラマ@forschooner

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

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

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

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

    ◦ リソースを利用できる

    ◦ 透明性

    ◦ 開放性

    ◦ 拡張性
   リソースの例
    ◦ コンピュータ, プリンタ, データ, フゔ゗ル, ウェブページ 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 (耐久性, 持続性)
    ◦ トランザクションがコミットされると、その結果は永続する
   企業内の既存のゕプリケーション群を連携/統合する
   携帯電話、情報家電、カーナビなど、あらゆる機器が
    ネットワークにゕクセスし、情報が普通の人々の生活の
    あらゆる面に深く「浸透」していくような環境

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

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

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

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

Más contenido relacionado

La actualidad más candente

自律連合型基盤システムの構築
自律連合型基盤システムの構築自律連合型基盤システムの構築
自律連合型基盤システムの構築Kazuhiko Kato
 
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみるCocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみるMasayuki Nii
 
Cocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionCocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionMasayuki Nii
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
Wakame-vnet / Open Source Project for Virtual Network & SDN
Wakame-vnet / Open Source Project for Virtual Network & SDNWakame-vnet / Open Source Project for Virtual Network & SDN
Wakame-vnet / Open Source Project for Virtual Network & SDNaxsh co., LTD.
 
OpenVNet Updates 2013/11 in TremaDay#04
OpenVNet Updates 2013/11 in TremaDay#04OpenVNet Updates 2013/11 in TremaDay#04
OpenVNet Updates 2013/11 in TremaDay#04axsh co., LTD.
 
小規模環境におけるNutanix Filesの活用を考える
小規模環境におけるNutanix Filesの活用を考える小規模環境におけるNutanix Filesの活用を考える
小規模環境におけるNutanix Filesの活用を考えるAkiraMasago
 
OpenVNet at Vyatta Users Group
OpenVNet at Vyatta Users GroupOpenVNet at Vyatta Users Group
OpenVNet at Vyatta Users Groupaxsh co., LTD.
 
社内サーバインフラ勉強会(DB)
社内サーバインフラ勉強会(DB)社内サーバインフラ勉強会(DB)
社内サーバインフラ勉強会(DB)Masahiro NAKAYAMA
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
Windows Azure Storage:Best Practices and Internals
Windows Azure Storage:Best Practices and InternalsWindows Azure Storage:Best Practices and Internals
Windows Azure Storage:Best Practices and InternalsTakekazu Omi
 
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティSaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティKuniyasu Suzaki
 
地理分散DBについて
地理分散DBについて地理分散DBについて
地理分散DBについてKumazaki Hiroki
 
about Eucalyptus (20121026) NII
about Eucalyptus (20121026) NIIabout Eucalyptus (20121026) NII
about Eucalyptus (20121026) NIIOsamu Habuka
 
Windows2000におけるコンピュータ室環境の構築
Windows2000におけるコンピュータ室環境の構築Windows2000におけるコンピュータ室環境の構築
Windows2000におけるコンピュータ室環境の構築Tokai University
 
PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)stibear (stibear1996)
 

La actualidad más candente (18)

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

Similar a Distributed Systems 第1章 Introduction

使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指してToshiharu Harada, Ph.D
 
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu HaraD35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu HaraInsight Technology, Inc.
 
クラウドサービスの安全性を考える
クラウドサービスの安全性を考えるクラウドサービスの安全性を考える
クラウドサービスの安全性を考えるDaisuke Nakazawa
 
190418 titech robotics
190418 titech robotics190418 titech robotics
190418 titech roboticsNoriakiAndo
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdf230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdfNoriakiAndo
 
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)NoriakiAndo
 
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげるaitc_jp
 
Windows Server Community Meetup#1 : Windows Server 2019 networking update
Windows Server Community Meetup#1 : Windows Server 2019 networking updateWindows Server Community Meetup#1 : Windows Server 2019 networking update
Windows Server Community Meetup#1 : Windows Server 2019 networking updatewind06106
 
ディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指してディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指してKazuhiko Kato
 
東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェア東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェアNoriakiAndo
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssTakahiro Iwase
 
統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューション
統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューション統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューション
統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューションHinemos
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~Masanori Itoh
 

Similar a Distributed Systems 第1章 Introduction (20)

使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して使いこなせて安全なLinuxを目指して
使いこなせて安全なLinuxを目指して
 
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu HaraD35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
D35 NonStop SQLはなぜグローバルに分散DBを構築できるのか、データの整合性を保てるのか、その深層に迫る byToshimitsu Hara
 
クラウドサービスの安全性を考える
クラウドサービスの安全性を考えるクラウドサービスの安全性を考える
クラウドサービスの安全性を考える
 
190418 titech robotics
190418 titech robotics190418 titech robotics
190418 titech robotics
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
CLOUD M1-japanese.pdf
CLOUD M1-japanese.pdfCLOUD M1-japanese.pdf
CLOUD M1-japanese.pdf
 
Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説Oracle Cloud Infrastructure Streaming Service 技術詳説
Oracle Cloud Infrastructure Streaming Service 技術詳説
 
230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdf230420_東工大授業「ロボット技術」資料.pdf
230420_東工大授業「ロボット技術」資料.pdf
 
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
2024年度 東京工業大学「ロボット技術」 ロボットミドルウェア (2024年4月11日)
 
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる3-1)『空気を読む家』とメタバース駆動開発構想   空間OS モノと社会をつなげる
3-1)『空気を読む家』とメタバース駆動開発構想 空間OS モノと社会をつなげる
 
Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07
 
Windows Server Community Meetup#1 : Windows Server 2019 networking update
Windows Server Community Meetup#1 : Windows Server 2019 networking updateWindows Server Community Meetup#1 : Windows Server 2019 networking update
Windows Server Community Meetup#1 : Windows Server 2019 networking update
 
Goudo m
Goudo mGoudo m
Goudo m
 
ディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指してディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指して
 
東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェア東京工業大学「ロボット技術」ロボットミドルウェア
東京工業大学「ロボット技術」ロボットミドルウェア
 
BP Study #16
BP Study #16BP Study #16
BP Study #16
 
Okuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ssOkuyama説明資料 20120119 ss
Okuyama説明資料 20120119 ss
 
統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューション
統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューション統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューション
統合運用管理ソフトウェア Hinemos SDN/OpenFlowによるネットワーク運用効率化ソリューション
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~
 

Más de aomori ringo

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

Más de aomori ringo (7)

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

Último

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Último (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Distributed Systems 第1章 Introduction

  • 1.
  • 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) ◦ ユーザは単一システムとして扱うと考える
  • 5.
  • 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. 携帯電話、情報家電、カーナビなど、あらゆる機器が ネットワークにゕクセスし、情報が普通の人々の生活の あらゆる面に深く「浸透」していくような環境  浸透システムの要件 ◦ 文脈の変化を受け入れる ◦ ゕドホックな構成を促す ◦ 基本的に共有を許可する
  • 29.
  • 30.
  • 31. 分散システムは複数の自律システムから成り、 一貫したシステムを提供する  異なるコンピュータで動く異なるゕプリケーションを 1つのシステムにまとめることができる  分散透過性を達成する方法は分散システムのデザ゗ン 固有なので、分散システムは難しい  計算、情報処理、浸透性を指向する分散システムが 存在する