2. Who am I?(1)
: [@FDDaioh, @9_6_42]
: @2222-42
Affiliation: "matsuri technologies",
Positions: ["philosopher", "backend engineer", "consultant"]
補足: 発表者はTLA+も形式手法も業務で使っていない初心者で
すので,本資料には間違いがある惧れがあります.
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
2
3. Who am I? (2: 今季最高のアニメ)
serial experiments lain
(1998年放送で今世紀ですらない)
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
3
4. What is TLA+?(1)
略称: Temporal Logic of Actions
開発: Leslie Lamportが開発(メンテナーは別の人が引継ぎ)
分類: 形式手法の1つ
補足: 定理証明もできるが,モデル検査がメイン.
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
4
5. What is TLA+?(2: モデル検査)
システムやアルゴリズムについて,その状態(States)と遷移
(Actions)をモデル化して,それの検査をする.
1. 疑似コードを作り,アルゴリズムやシステムなどの仕様をモ
デル化
2. Actionsによって変化するStatesを追いかけ
3. Invariantsや(Safety/Liveness)Propertiesが満たされている
か,デッドロックが起きないかなどのチェック
2と3には自動でやるため数万の状態をすぐに確認できる
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
5
6. What to Use?(1)
何のために使うのか?
● 仕様策定プロセス(Design Process)の補助
● 仕様(Design)共有の補助
○ 数学的な形式なので,不明な箇所をないようにする必要があるから,
策定と共有がやりやすい
● エラー発見とテスト実施の補助
○ アルゴリズム自体のものと,実際に動いているものとの検証との両方
で役立つ
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
6
7. What to Use?(2: Examples)
素晴らしい事例: Paxos Commitなど合意プロトコルの検証
有名な事例: S3,DynamoDB,Azure Cosmos DB等の検証にも
採用
一般: Micro Service Architectureで課題となっているサービス
間でのやりとりのモデル検査
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
7
8. What is My Goal for This Year?
自社サービスへのマイクロサービスアーキテクチャ導入に伴う以
下の3つの課題に取り組む
● ビジネスロジックの明確化
○ モノリスサービスからマイクロサービスに移行したら,サービスが崩れ
るとかあったら困る
● サービス間不整合の発生契機の確認
○ 通知順序の前後や,多重送信,通知漏れなど色々考えられる.
● 不整合解消ロジックの検証
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
8
9. What is Doned(/Doing) for Goal?
TLA+の入門コースを進めたり相談相手を用意したり.
● ☑Leslie LamportのVideo Courseを終える
○ Youtubeにも上がっているよ!
● ☑Wayne “Practical TLA+”を読み終える
○ PlusCalというC-Likeに書いて,それをTLA+で実行可能にしてくれる
ツールの詳細を含む入門書
● ☑形式手法に詳しい人を上司にした
● Leslie Lamport “Specifying Systems”を読んでいる
○ 筆者ホームページで PDFが公開されてます.
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
9
10. Appendix: おすすめ理由
発表者が始めた理由と皆さまにお勧めする理由
1. 必要な前提知識が少ない
a. (集合論 or 論理学)の初歩 or 状態遷移くらい
2. 職人でなくても,エラー発見とエラートラッキングが簡単にで
きる
a. 時間があればサンプルを見せます
3. 形式手法のビジネスはブルーオーシャン
4. コミュニティの治安がめちゃくちゃいい
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
10
11. Appendix: 参考文献
● L. Lamport(2003), Specifying Systems, Addison Wesley
● H. Wayne(2018), Practical TLA+, Apress
● 中島震(2007), “ソフトウェア工学の道具としての形式手法”,
NII Technical Report
Who am I?
What is TLA+?
What to Use?
What is Goal?
Appendix
Start TLA+
11