第16話:怨嗟の声
[地下万博・中央管制室]
「……これって、一体どういうことなのかしら」
静寂に満ちた中央管制室に、星影燈の冷静な、しかしわずかに困惑を滲ませた声が響いた。
彼女の現在の公式な肩書は二つ。春凪共和国『先端現象研究部門 室長』、そして、この地下万博における『プロジェクト・アーク AI部門 総括』。春凪共和国での大きな事件がようやく収束した途端、プロジェクト・アークで利用される各種AIの総括責任者に任命されたのだ。
今、彼女は眼前のホログラムディスプレイに、25年前に開催された大阪・関西万博の膨大なアーカイブを投影し、過去のシステムについての把握に努めていた。
彼女の細く美しい眉がひそめられたのは、当時の「万博入場予約システム」の基本設計書に目を通した時だった。
「URLパラメーター渡し……?そんな古典的な手法を?これでは、パラメーターの日付部分を未来の日付に書き換えて該当URLにあらかじめアクセスしておいて、日付が変わった瞬間に検索すれば、人気の予約枠を一番乗りで取り放題になるんじゃないかしら……いやいや、普通は遷移先の表示時に運用日付とパラメーターの日付のチェックをしてエラー対象に……していないわね!もしも、こんな大きい穴を仕様だと言うのなら、エンジニアやちょっと詳しい人は無意識のまま『狡いことをした人』という烙印を押されてしまいそうね」
額に少し汗を浮かばせながら、指先で軽くスワイプして次のページへ。そこに記された負荷分散の設計思想に、燈はさらに深く、美しい顔を顰めた。
「このロードバランサーの設計も甘いわね。この構成では、うーん、そうね、同時接続が1万セッションを超えたあたりでサーバーが応答を停止するはず。……ああ、一応はキューに放り込んでチケットウェイティングルームに飛ぶようにしてるのね。でも、ユーザーエクスペリエンスとしては最悪だわ。この仕組みだと、チケットの内容を確認するだけでも待つことになるもの。当時の来場者数は……えっ?」
燈は表示していた別ウィンドウの公式記録を再確認する。
「毎日、平均で10万人以上が来場しているじゃない。だとしたら、予約が集中する時間帯は、ほぼ毎回チケットウェイティングルームでしばらく待ってから表示される計算になるけれど……そんなことって、あるのかしら?」
半信半疑のまま設計書をスクロールすると、UIの仕様ページが開いた。
「へえ、通期パスと一日券で予約枠の表示レイアウトが変わるのね。通期パスの場合は三つの枠が横に並ぶ……これは分かりやすいじゃない。……あら、でも、こちらの画面では縦に並ぶの?う、うん……。何というか、ユニークな設計思想ね」
さらに読み進めると、燈は思わず「あっ」と小さな声を漏らした。
「この『満員』を示すアイコン、デザインは可愛らしいわね。……でも、このボタン、処理をきちんと殺していない。スタイルシートで選択の可不可を切り替えているだけで、要素そのものは生きているわ……。これでは、少し知識のある人間なら、ユーザー定義スタイルシートを置くだけで簡単に予約画面にアクセスできてしまう」
次に進むと、データ操作の仕様が表示された。
「データ操作仕様ね。うーん、あまり細かいところまで見るつもりはないんだけど……ここだけは重要だから見ようかな。これは一覧用のヘッダーデータと予約詳細用のディテールデータね。まぁ普通の仕様……ではないわね。このコミットタイミングだと、すでに予約が埋まっている状態でも、一覧上はまだ予約が取れるように見えてしまうんじゃないかしら。一分間だけ見えるゴーストね……えーっ、本当にこんな実装なの?実際の動作は違ったのかしら……」
ダメ押しだったのは、パビリオン予約時の検索条件だった。
「パビリオン予約の検索ロジックは……部分一致の文字列検索……だけ?まさか。画面には出力されていないけど、ステータスで絞り込んで……ないわね!これでは、すでに満員で予約できないパビリオンも、検索結果に予約不可能としてずらずらと表示されてしまうんじゃないかしら?いや、25年前の設計だとしても、いくらなんでもそれは……」
燈は、一度思考を中断した。2050年の常識で、25年前の技術を断罪するのはフェアではない。過去の技術に自分が明るくないだけかもしれない。そう自戒しつつも、どうしても腑に落ちない彼女は、プロジェクト・アークのサーバーを経由し、2025年当時のSNSのログデータをディープサーチにかける。
――ビンゴだった。検索結果には、当時のユーザーたちの怨嗟の声が、まるで地層のように積み重なって表示されていく。
「予約が一つも取れないまま、最初で最後の万博に行くことになりました(涙)」
「当日予約の◎を押しても、毎回エラーでトップ画面に戻されます。心が折れそう」
「予約の画面の△マークは空席が少しだけあるという意味だと思うんだけど、何回試しても取れなかった。押し負けてるってことだよね。残念!」
「大屋根リングには本当に感動しました!でも、結局予約は一つも取れませんでした!」
「人気のパビリオンにどうしても入りたかったので、朝から7時間並んで入りました!とても疲れたけど、パビリオンは素晴らしかったです!予約が取れていればこんなことにはならなかったのかな?」
「スタッフの皆さんの優しさには本当に癒されました!でも、私の入場記録がシステムに登録されなかったみたいで、しばらくの間、当日予約が取れなくて困りました」
「通期パスを持っていたのに突然BANされました!希望の入場時間が取れるまでひたすらポチポチしてたのが過剰なアクセスだったみたいです。待ってた全部のチケットが無効だなんて、そんなのアリ?」
無数の悲しみの声。それをスクロールする燈の銀色の瞳が、わずかに潤む。
「……なるほど。システム的には未熟だったけれど、それを補って余りあるほど、施設そのものや、現場のスタッフの方々は優れていた、と。そういう結論で良さそうね」
彼女はそう呟くと、ディスプレイに表示されたSNSの文字を、まるで傷ついた小動物を労わるかのように、そっと指先で撫でた。そう、いつの間にか彼女の膝の上で寝ている、猫の頭を撫でるのと同じように。
「地下万博では、春凪の基盤システムにアドオンするだけだから、こんな悲劇は起こらないけれど……。当時は、本当に大変だったみたいね……人の善意を前提にしているシステムは……ダメね」
その憐れむような瞳は、もはや総括責任者のものではなく、一人の優しい母親のものだった。




