Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

九鹿四十二「TLA+をはじめたい」@とらのあなLT_20200218

144 views

Published on

2020年はTLA+をはじめたいという意気込みで作ったスライドです.
間違いや誤謬があればご指摘いただければ幸いです.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

九鹿四十二「TLA+をはじめたい」@とらのあなLT_20200218

  1. 1. TLA+をはじめたい Date: 2020-02-17 At: とらのあなLT By: 九鹿四十二
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  12. 12. ご清聴 ありがとうございました 12

×