理工学部Faculty of Science and Engineering
COT200XE(計算基盤 / Computing technologies 200)分散システムDistributed system
藤井 章博Akihiro FUJII
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 理工学部Faculty of Science and Engineering |
添付ファイル名Attached documents | |
年度Year | 2021 |
授業コードClass code | H6019 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 春学期授業/Spring |
曜日・時限Day/Period | 火4/Tue.4 |
科目種別Class Type | |
キャンパスCampus | 小金井 |
教室名称Classroom name | |
配当年次Grade | |
単位数Credit(s) | |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) | |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
SDGsCPSDGs CP | |
アーバンデザインCPUrban Design CP | |
ダイバーシティCPDiversity CP | |
未来教室CPLearning for the Future CP | |
カーボンニュートラルCPCarbon Neutral CP | |
千代田コンソ単位互換提供(他大学向け)Chiyoda Campus Consortium | |
カテゴリー<理工学部>Category |
応用情報工学科 学科専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
Distributed Computing System fundamentals are taught. Issues are TCP/IP, HTTP protocol and Web service basics. IoT is considered as variations of distributed system. Python code are used for better understandings.
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
本講義では、分散処理の基本構成を概観し、分散処理を実現している通信基盤技術とその上に構成されるアプリケーションソフトウエア技術について学習する。TCP/IP、HTTP、HTML, Web サービス、IoTを実現する要素技術を学ぶためのツールとして、Pythonプログラミング環境を利用し、オープンソースで提供されるいくつかのライブラリを用いて学習する。IoT等、分散システムを実装できる能力を涵養することを目的とする。
到達目標Goal
プロセス概念、トランザクションの一貫性の理論、複数プロセス制御のためのメカニズム、メッセージの順序関係など古典的な分散処理に関する理解を第一の到達目標とする。その上で、21世紀に入ってからのWebアプリケーションを構築するための基本的な概念、クラウドコンピューティングやその上でのクライアントサーバシステム、の理解を第二の目標とする。
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
ディプロマポリシーのうち、「DP1」と「DP2」と「DP4」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
複数地点を意識した時刻の制御や、分散環境での排他制御を可能にするアルゴリズムなどの数理的側面を中心に講義する。さらに、分散環境での処理の扱いを容易にするためのオブジェクトの概念、および、サービスを提供する技術として、Webの機能も取り扱う。感染対策のためのオンライン、オンデマンド講義を併用する。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
あり / Yes
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
※各回の授業形態は予定です。教員の指示に従ってください。
分散システムの概要:分散システムの定義、目的、分散透過性、開放、分散システムの制約。
・身近なWebについて
クラウドコンピューティング、Web2.0などの用語解説。fork/join
分散システムの種類:分散コンピューティングシステム、分散情報システム、パーベイシブシステム、Webの基礎
今後のコンピュータ環境の発展はどうなるか。LHBR
アーキテクチャ:アーキテクチャ型、システムアーキテクチャ
・ハイパーメディアとHTML
プロセスの概念。プロセス間の通信による情報処理の成り立ち。VC
プロセス:プロセスとスレッド、仮想化、コードマイグレーション。・HTMLとCSS
並行プロセスが動作するための基礎は、分散アルゴリズムの正当性、複雑度によって決まる。Graph、SPT
クライアントサーバ:クライアント、サーバおよびソケット通信について。
・HTTP について(1)
実装された分散システムのメカニズムを学ぶ。DSPT
分散システムの通信:ネットワークアーキテクチャ、OSI参照モデル、TCP/IP参照モデル
・HTTP について(2)
アプリケーションの観点から分散システムはどのように利用されているか。Bully
名前付け:名前・アドレス・識別子フラットな名前付け、構造化、最近の事例
・動的なWebサイト
前回の続き。ARQ
同期:クロック同期、論理クロック、排他制御、リーダ選出。
・クライアントサイドの技術
前回の続き。特に近年のウェッブやスマートフォンのアプリケーションの仕組みに触れる。Dijkstra
複製と一貫性:複製とスケーラビリティ、データ中心一貫性モデル、複製管理、一貫性プロトコル。
・リレーショナルデータベース
クラウドコンピューティングの基礎となるサーバ側テクノロジーの概要
・トランザクションの例
フォールトトレラント性:フォールトトレラント性の導入、高信頼クライアントサーバ間通信、高信頼グループ間通信、分散コミット。
・SQLとデータベース管理システムSerialize
分散システムを利用したビジネスの概要
・直列実行性
セキュリティ:暗号、情報セキュリティの特性・制御・管理
・認証とセッション管理
情報システム設計の工程の概要
・2PLの説明
分散ファイルとオブジェクト:分散ファイルシステムアーキテクチャ、分散オブジェクト技術
・Webのセキュリティ
Webベースのシステム設計の概要、Security
分散Web システム:歴史、システム形態と動作の仕組み。
・Webの応用 (1):クラウド
セマンティックWebとWebサービス、RPC
パーベイシブシステム:・パーベイシブシステムとは何か。組み込みシステムとは何か。
・Webの応用 (2):セマンティックWeb
ソフトエウアエージェントと推論機構IoT/WoT
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
【本授業の準備・復習等の授業時間外学習は、4時間を標準とする】配布するコードの実装と動作確認は各自行うこと。
テキスト(教科書)Textbooks
水野忠則監修「分散システム(第2版)」共立出版社(2900円)
参考書References
谷口秀夫「分散処理」オーム社
森口容介「Webのしくみと応用」NHK出版
成績評価の方法と基準Grading criteria
授業内で数回の課題を課す予定である。その評価割合は、20%である。
また、学期末に試験を実施する。その評価割合は、80%である。
学生の意見等からの気づきChanges following student comments
難解な概念に対しては、丁寧な説明を心がける。
説明に使用する図等は、板書にせず、PPTの形で授業支援システムを通じて提供する。