項 1 / 9
目的と使う場面を知る
何ができるようになるか、何のために学ぶかを確認します。
今回できるようになること
他人の書類を返した操作と、保存が完了した処理を、ログのIDでつないで報告する。確認できない人物や原因は断定しない。
この節で学ぶ理由と、前後の節とのつながり
このセクションの位置づけ
なぜ、今これを学ぶのか
ここまで学んだ通信や読む許可の知識を使い、アプリに残った操作の記録を読みます。何が起きたか、まだ何が分からないかを分けて伝えます。
ここまでの知識をどう使うか
依頼を受け付けたことと、保存まで終わったことは違いました。ログインと読む許可も別でした。この違いを使い、同じ操作に関係する記録をつなぎます。
この後、何につながるか
記録から分かったことを説明できたら、次は書類が勝手に変更された場面で、報告・原因の修正・データの復旧の手順を考えます。
この実習で確かめること
説明の根拠にした記録と、まだ分からないこと、次に調べたいこと
実務では、どんな場面?
書類アプリの調査担当として、誤って書類を返した操作と、その後の報告書の保存状況を調べます。架空の10行を一つの調査報告にまとめます。エラーの件数や受付の返事だけでは、何が起きたか確定しません。
読み始める前に:この節の前提と言葉
は処理の途中や結果を残した記録です。events.jsonlの行をanalyze.pyで絞り、他人へ書類を返した記録と、同じ処理の保存完了をたどります。事実と推測は分けて説明します。
- ・イベントID
- は出来事の記録です。今回のe1などのIDは行の目印です。IDだけでは成功したか分からないため、statusやuser・ownerなどの値も読みます。
- ・
- 同じ瞬間でも地域により時刻の表記が違います。+09:00は日本時間などより9時間進んだ表記、Zはです。表示の09時と00時だけを比べず、時差をそろえます。
- 通信元などを表すアドレス。同じ回線を複数人で使うことや、接続先・回線が変わることもあります。アドレスの一致・不一致だけでは人物を断定できません。
- ・対象ID
- は一つの要求、対象IDは書類などの対象を区別します。同じ時刻の別要求や、同じ要求に関連する複数の記録を区別するために使います。
- 事実・仮説・未確認
- 事実は記録から直接確認したこと。仮説は説明の候補。未確認はその候補を裏付ける情報が足りない状態です。仮説を報告の結論にすり替えません。
- ・・
- は受け付けた後で進める処理。はログイン後の利用状態を管理する仕組み。は待ち時間を超えた状態で、内部処理が終わっていない証明ではありません。
は、アプリが残した処理の記録です。起きた出来事のすべてが書かれているわけではありません。ログイン成功の記録は、アカウントの確認が通ったことを示します。それだけで、現実の誰が操作したかまでは決まりません。
同じ回線を複数の人が使うと、同じに見えることがあります。記録する機器によって時刻がずれることもあります。一つの違いだけで結論を出さないようにします。
並んだ項目を見比べ、違う点と同じ点を読み取ります。
- ログイン成功:アカウントの確認が通った
- 現実の操作した人:この記録だけでは決まらない
IPアドレスや時刻の違いだけで、不正アクセスだと決めません。
日本時間となど、時刻の基準を揃えて、起きた順に並べます。次に、一回の要求を見分ける、操作、対象の書類、応答を見ます。
が違うという理由だけで、不正アクセスだとは決めません。この実習では架空の10行を読み、誰の書類をどのアカウントへ返したかと、同じ要求に関係する保存処理を調べます。
並んだ項目を見比べ、違う点と同じ点を読み取ります。
- 日本時間09:00:UTCより9時間進んだ表記
- UTC 00:00:日本時間と同じ日・同じ瞬間
二つの出来事ではなく、一つの時刻の表し方を比べています。時刻をそろえた後、要求ID・対象・結果も照合します。時刻が近いだけでは同じ要求とはいえません。
時刻の図:見かけの9時間差をそろえる
以下は説明用の同じ日の二つの記録です。日本時間の09:00:00との00:00:00は同じ瞬間です。
この例の項目と手順を詳しく読む
- 記録T1:09:00:00+09:00
- に直すと00:00:00Z。
- 記録T2:00:00:10Z
- すでになのでそのまま。
- 比較した結果
- T1の10秒後がT2。9時間前後の出来事と取り違えない。
202は、依頼を受け付けたという返事です。ファイルを作ったり保存したりしたことまでは示しません。に対応する作業番号(ID)を探し、次にその作業で作ったファイルのIDを探して、保存完了の記録を探します。
逆に、504など、待ち時間が切れたという返事でも、裏では注文などが確定している場合があります。返事だけを見て同じ要求を送り直すと、二重に注文する恐れがあります。
矢印の順に、何が行われるかを読みます。
- 要求Qを受付:202だけでは未完了
- 作業Jで作成:要求Qと対応するか
- 書類Oを保存:作業Jとの対応も確認
待ち時間切れでも裏で完了する場合があります。すぐ再送せず、記録で結果を照合します。
時刻が近くても、や書類のIDが違えば別の処理です。「要求Qで書類Oを作った」という記録と、「書類Oの保存を確定した」という記録を、同じIDでつなぎます。
たくさん選べば証拠が強くなるわけではありません。報告したいことを決め、その事実に直接必要な記録を選びます。調査の背景として役立つ情報と、結論を直接示す記録は分けて扱います。
矢印の順に、何が行われるかを読みます。
- 要求Q:どの作業を頼んだか
- 作業J→書類O:何を作ったか
- 書類Oの保存確定:同じ書類が保存されたか
別のIDの記録は、時刻が近くてもこの結論の直接の証拠にはしません。
例:同じ時刻ではなく、つながる識別子を見る
同時刻に成果物O-9の記録があっても、下のO-5とは別の対象です。時間が近いだけでO-5の完了を示す記録として使わないでください。
説明用に受付・作成・確定の記録を並べます。これは実習欄のE1〜E4とは別の例です。
この例の項目と手順を詳しく読む
- 受付:要求Q-7 → J-2
要求を受け付けたことが分かる。まだ保存完了ではない。
- 作成:J-2 → 成果物O-5
対象となる成果物が分かる。まだ確定の記録が必要。
- 確定:成果物O-5 → 保存確定
この記録と前の対応を結び付けて、要求Q-7の成果物の確定を説明する。
本人への聞取り、ログイン状態を作った・無効にした記録、返った本文、保存データを変更した記録などを追加で調べます。何を知りたいかによって、必要な情報は変わります。
残っていない記録を推測で補わず、「ここまでは確認できた」「この点はまだ確認できていない」と分けて伝えます。
並んだ項目を見比べ、違う点と同じ点を読み取ります。
- 記録で確認済み:書類Oの保存が確定
- まだ確認できない:操作した人物など
足りない情報を推測で埋めず、誰への聞取りやどの記録が必要かを決めます。
依頼を受け付けてから保存するまで、記録をたどる
画像生成の要求T1が処理M1になり、M1が成果物F1を作り、保存先がF1の保存を確定したなら、識別子の対応で連結します。近い時刻の別成果物は混ぜません。COMMITはDBの確定、ROLLBACKは取消を表します。504は応答待ちの失敗で、DBの取消を意味しません。
- どの依頼について、受付・作成・保存のどこまでを確かめたいか決めます。
- 依頼の番号から作業の番号、作られた書類や注文の番号をたどり、その保存が確定した記録を探します。
- 説明を直接支える記録と、参考になる背景を分ける。操作した人物、別の窓口での処理、残っていない記録は、まだ分からないこととして残す。
ここでは実務で条件が増えた場合の考え方も紹介しました。今回の実習で操作する範囲は、次の「自分のパソコンで確かめる」で確認します。追加の別課題を提出する必要はありません。
操作ログから他人の書類を返した記録を探す
本文の知識を、この実習でどう使うか
は処理の記録です。時刻が近いだけで結び付けず、同じ要求・・保存対象のIDをたどります。
- 記録のIDと時刻
- 同じ処理をつなぐ
- 返却と保存完了の証拠
結果が違ったときに考えること:202は受付で、504は待ち時間切れです。保存完了は同じ対象の後続記録で確かめ、人物や全期間の被害は断定しません。
他人の書類を返した操作と、保存が完了した処理を、ログのIDでつないで報告する。確認できない人物や原因は断定しない。
WindowsまたはMacの操作手順、準備に失敗したときの確認方法、実行コマンドは実習画面に用意しています。ページ下部の「準備から実習を始める」から進んでください。
架空の10件だけを調べます。記録漏れや時刻のずれはこの例では再現していません。200の意味はこの書類アプリの仕様であり、他のアプリへ無条件に当てはめません。