使い方 — 演習・デモ運用

1台の PC (以下 PC-A) で ClimCanvas を起動し、複数の参加者が各自の PC のブラウザから接続する形態です。大学の演習・講習会・学会でのデモなどに向きます。1人で使う場合はローカル運用を、研究室サーバーで日常的に複数人が使う場合はリモート運用を参照してください。

CLASS

演習・デモ運用

1台に全員がブラウザで接続。画面は接続ごとに独立。ソースデータは共有。

1. アプリの起動方法 (接続の流れ)

PC-A でポートをネットワークに公開して起動し、参加者にはアドレスを伝えるだけです。接続 (ブラウザのタブ) ごとに独立したセッションが作られるため、参加者ごとの画面・パネル設定は互いに混ざりません。

# ① PC-A で — Python 環境を activate し、ネットワークに公開して起動 ($IDIR = インストール先ディレクトリ)
$ conda activate 環境名 # 普段の解析環境 (インストール 1.3)
$ cd $IDIR/climcanvas
$ streamlit run app.py --server.address=0.0.0.0 --server.headless=true
 
# ② 参加者は各自のブラウザで http://<PC-A の IP アドレス>:8501 を開く
 
# ③ 終了は PC-A で Ctrl+C (全員の接続が切れる)

2. 前提と注意点

この形態では、全参加者の操作が PC-A 上の1つのプロセスの中で処理されます。つまり誰の操作も「PC-A でアプリを起動したユーザーの権限」で実行され、接続に認証はありません。教室の LAN で・監督下で・教材データのみ、という条件で使う設計だと考えてください。

3. つながらないとき: クライアントアイソレーション

Wi-Fi で参加者から PC-A に接続できない場合、最も多い原因がクライアントアイソレーション (AP アイソレーション) です。同じネットワークに繋がった端末同士の直接通信を、アクセスポイントの段階で遮断する機能です。各端末の通信を「上流 (ルーター → インターネット) 向け」だけに限定し、端末どうし宛のパケットを破棄します。不特定多数が繋ぐネットワークで隣の端末からの盗聴・攻撃を防ぐ安全策として、ゲスト Wi-Fi・ホテル・大学のキャンパス Wi-Fi (eduroam 含む) で有効になっていることが多くあります。

症状と見分け方

回避策 (現実的な順)

  1. 演習室の有線 LAN を使う: 教室備え付けの有線ネットワークは通常アイソレーションがなく、最も確実です。
  2. ネットワーク管理者に相談する: 演習用にアイソレーションのない SSID/VLAN を用意してもらうか、PC-A への例外を設定してもらいます。大学ではこれが正攻法です。
  3. 自前のルーター/AP を持ち込む: ローカルな Wi-Fi を立てて、PC-A と参加者全員をそこに繋ぎます (インターネット接続は不要 — ClimCanvas は LAN 内で完結します)。持ち込み AP を禁止している大学もあるため、事前に確認してください。
  4. スマホのテザリング: 少人数なら、講師のスマホのホットスポットに全員で繋ぐ形でも動きます (ホットスポットは通常、端末間の通信を許可します)。
  5. トンネルサービスで一時公開する: ngrok や Cloudflare Tunnel などで PC-A から外向きにトンネルを張り、発行された公開 URL に参加者がインターネット経由で接続します。LAN 内の端末同士の直接通信を使わないため、アイソレーションの影響を受けません。ただし URL を知っていれば誰でも繋がる (可能ならサービス側の認証機能を併用する)・データが中継サーバーを経由する・無料プランには接続数の制限がある、という性質があるため、少人数・短時間・教材データのみの割り切った選択肢です。大学の利用規約も事前に確認してください。
  6. 学内サーバーで動かす: PC-A の代わりに、学内ネットワークから到達できるサーバーで起動します (実質リモート運用の変形になります)。

トンネルサービスの例。どちらも ClimCanvas は非公開 (127.0.0.1) のまま起動しておきます。cloudflared (Quick Tunnel) はアカウント不要・参加者は URL を開くだけですが、認証を付ける機能はありません。ngrok は無料アカウント登録が必要で、参加者の初回アクセス時に警告ページが挟まる (「Visit Site」を1回クリックさせる) 代わりに、--basic-auth で簡易認証を付けられます。

# PC-A で — Python 環境を activate し、まず ClimCanvas を非公開のまま起動
$ conda activate 環境名 # 普段の解析環境 (インストール 1.3)
$ streamlit run app.py --server.address=127.0.0.1 --server.headless=true
 
# 例1: cloudflared — アカウント不要
$ cloudflared tunnel --url http://localhost:8501
# → 表示された URL (https://xxxx.trycloudflare.com) を参加者に伝える
 
# 例2: ngrok — 認証を付けたい場合
$ ngrok http 8501 --basic-auth "user:pass"
# → 表示された公開 URL (https://xxxx.ngrok.app) を参加者に伝える
 
# 終了は Ctrl+C — トンネルを閉じれば公開も即座に終わる

4. 運用形態の使い分け

形態アプリが動く場所接続するのは向いている場面
ローカル運用手元の PC自分だけ (同じ PC)個人の日常利用
リモート運用研究室サーバー各利用者が SSH トンネルで、自分のプロセスに研究室での日常利用 (データ分離あり)
演習・デモ運用 (このページ)PC-A参加者全員が LAN 経由で、同じプロセスに演習・講習会・デモ (一時的・教材データのみ)

リモート運用が「利用者ごとに自分の権限のプロセスを持ち、認証を SSH に任せる」構成であるのに対し、演習・デモ運用は「1つのプロセスを無認証で共有する」構成です。ただし「同じプロセスに接続する」といっても、参加者全員が同じ画面を見て操作し合うわけではありません — 1章のとおり接続ごとに独立したセッションが作られるため、各参加者の画面・パネル設定は互いに独立です。共有されるのは画面ではなく、実行の主体 (起動したユーザーの権限)・PC-A の計算資源・「PC へ」保存の保存先です。手軽さと引き換えにこの部分の利用者間の分離がないため、日常運用にはリモート運用を、一時的な多人数利用にはこのページの形態を選んでください。