Liner Note

情報(ユーザー中心デザイン・ユーザビリティ)と技術(ウェブプログラミング・ウェブサービス)についてのメモ書き

要約:ウェブを使っていると出くわすあの光景、制作者がテンプレートにするあのやり方って本当にそれでいいのか、ということを考えるために2つの具体例を挙げて考えます

ウェブ上でシステムやウェブサイトを作っていると、技術的な慣習というか、だいたいこうしてやってるよ、というのがありますよね。でも、それで本当にいいのかな、もっといいやり方があるんじゃないの?というのがこの記事の趣旨です。それを説明するために2つの例を挙げたいと思います。いつもながら少し長いですよ。

たとえばセッション切れ(タイムアウト)問題

セッションタイムアウトの例

たとえば、ECサイトなどを作るときにはセッションを使いますよね。サーバ資源を有効に使うために、セッションの管理(保持しているセッションが多くなりすぎないためにセッションのタイムアウト処理をする)というのもごく一般的にされていることでしょう。しかし、ここでの処理方法って本当に正しいんでしょうか(といっても、私個人がセッション処理を実装したことがないので、経験がない分誤りがあるかもしれません。その際はご指摘お願いします)

このブログの読者にセッションを解説する意味もあまりないかと思いますが、自分の理解力を晒す意味で中学生でもわかるくらいにかみ砕いておこう(知っている人は読み飛ばしてください)

まず、ウェブ上で通信するときのお約束の一つとなっているHTTPはステートレス、つまり何回かの通信を行っても各々の通信は独立していて、前にやったことを考慮しないという性質があるんですね。先のリンク先のたとえ話を借りるならば、ファーストフード店で注文するにしても、店員の記憶力が(直前に言ったことを覚えていないくらいに)悪いので、逐一すべての注文内容を書いたメモを渡す必要があるというようなことです。

それで、その内容を書いたメモを「Cookie(クッキー)」と呼んでいて、顧客番号がつけられて従業員カウンターに並べられています(牛丼チェーン店みたいですね)。このときの顧客番号を「セッションID」と言い、お店での一連の流れ(牛丼屋で言えば注文してから、注文内容に応じたものを用意し(出てきたものを食べて)お金を払って、さようならまで)を「セッション」と言います。

このときに同じお客さんの注文受付に何十分もかけていると、店が混雑して入りたい人が入れなくなるので、ある一定以上の時間を過ぎたら、お客さんに列の最後尾に回って注文をやり直してもらうようにします。この一定時間が短すぎると、逆にたとえば注文の途中で悩んでいる時に「お時間がきたので並び直してください」と言われるように、冷たいサービスになってしまいます。ウェブの話に言い換えると、セッションの有効期限を長くしすぎると、サーバの接続数(=店のキャパシティ)が限界を超えて、サイトに接続できなくなるかもしれないですし、逆に短すぎるとじっくり買い物することができなくなります。

参考URL:HTTP cookie – Wikipedia

セッションタイムアウトの例はGoogleで検索してみるといくつか見つけられます。これは、ウェブ上で買い物をしていて、ある程度の時間(30分にしているのをよく見かけます)反応がないと、今までの買い物かごが空になり、初めからやり直さなければならなくなるということです。

このセッションタイムアウト処理は、上の解説でも話したように、現実的にも技術的にも妥当な慣習である気はするのですが、果たして本当にそうなのでしょうか。

まず、インターネットはセルフ・サービスなメディアなので、「客層」は能動的に動く人に偏りますよね(『ユーザ中心ウェブサイト戦略』, p22あたり)。ECサイト、つまりウェブ上の買い物では、カートに入れてすぐにレジに持っていくような人ばかりではなくて、比較のために他の商品を見に行くような人も観察できるのではないかと思います[要出展]。たとえば、Amazonで本を買うときにとりあえず精算の一歩手前まで来たけど、本当にこの本でいいのか、他にいい本がないのか、評判を検索してみたことはないでしょうか。

現実的には30分もカウンター前で精算を迷っていたら、「また後で」というのは至極当然ですが、遠慮不要なウェブ上では精算前に30分検索していても、特段おかしいとまでは言えないでしょう。

30分後に比較が終わって商品をレジで精算しようとしたら、買い物かごが店員に撤去されていた。買い物かごがあった場所にはそれに加えて、「セッションの有効期限が切れました。買い物を始めからやり直してください」とのメモ書きが1 。現実の買い物よりもお客の流動性が高いウェブで、果たしてお客さんは買い物かごにまた商品をせっせと入れ直すのでしょうか。

どう解決するか

私はこの状況を肯定できないので、解決策を考えます。セッションの有効期限を長くすると言うのはサーバの資源の問題もあって簡単に「サーバ増強で」ともいえないので、そうですね、お客さんが場を離れるときは、買い物かごに「ちょっとこの場を離れますが、購入を完全に諦めたわけではないので買い物かごはここに置いていてください」というお取り置きカードを置いてもらうのはどうでしょうか。

そうやって、明示的に購入する意志を表明してくれた利用者はセッションの有効期限を特別に長くしておきます。また、精算プロセス(発送情報の入力など)に入っている利用者もセッションの有効期限を長くしておきます。エラーでブラウザが落ちる可能性も考慮して、そういう人は特別にブラウザが終了してもセッションが無効にならないようにしておく必要もあるでしょう。

要するに、どの人にも一律に○○分と設定するのではなく、その人のサイト上での関わり具合によってセッションの有効期限を柔軟に設定する仕組みが必要ではないかなと思います(こういう処理って一般的ですか?だとしたら恥ずかしいですが‥)

たとえば本の書影の表示方法

Amazonでの検索結果における書影の表示

Amazonをはじめ、オンライン書店では、本の書影(ジャケット画像)を表示するというのはごく一般的になりました。個人的な感覚としても、モバイル版オンライン書店ですら画像が出なかったら不思議に思うくらいになりました。

でも、この書影の表示方法ってこれがベストで、これ以上改善できるところはないかと言うと全然そうではないわけです。ちょっとそれを説明しましょう。

僕らは本棚からどういう情報を得ているのか

さて、ユーザビリティの経験則(ヒューリスティック)として、実際の大きさがイメージできる商品写真を置くということが言われます。リンク先の記事では、ECサイト訪問者が家具や家電の購入を検討する際に、その製品が家の中に置くことができるかイメージをつかみたいという背景心理があるので、実際に使われている様子など大きさをイメージできる写真を掲載するといいと仰っています。

それで、この場合は家具・家電が対象になっているんですが、これは本も同じだというか、よりそうした情報が重要になると思うんですね。なぜなら本の場合、判型や厚み(ページ数)により本の内容(難易度や目的など)をある程度推定することができるからです。

えっと、論より証拠‥ですね。たとえば以下の2冊は高等教育に関する本2 です。

  1. 潮木 守一『世界の大学危機―新しい大学像を求めて』
  2. 荒井 克弘, 橋本 昭彦『高校と大学の接続―入試選抜から教育接続へ』

これをまず単純に並べてみましょう。

単純に書影・書誌事項を並べた場合のイメージ

次に、本の付随情報を書影画像に反映してみます。

上記に厚みや大きさなど現実的なイメージを与えた画像

前者と後者では、印象がだいぶ違うなと感じられたのでしたら、それは後者に本を選ぶときの重要な判断材料になりうる(と思われる)ものを加えているからです。

棚に上記の図書が並んでいる画像

ちょっとこの写真を‥これは実際に棚に本を収めた写真なんですが、ここからどのような情報が読み取れるでしょうか。書名、著者名、出版社名、本の色、あるいは本の手触り‥もありますが、加えて、厚さ・高さ・書誌形態(文庫/新書/単行本、ソフトカバー/ハードカバー)も読み取れるでしょう。

そしてこうした情報によって、その本での伝え方や書いてあることが難しいか簡単かがだいたい推定できるんですね。たとえば、新書なら極度にハードルは高く設定していない、逆に専門書ならある程度の前提知識を求められると思っているのではないでしょうか。実際に、大学生に伺ってみても、レポートの締め切りまで時間がないときは新書で適当な図書を探すなど、書誌形態で本を選ぶ傾向も見られました。ですから、上述した本の大きさ、厚さ、書誌形態などの情報は本を選ぶ上で結構重要な情報で、そういう情報を半ば無意識的に本棚から得ているんですね。

しかし、翻って先ほどの検索結果から、僕らはこうした情報を得られるでしょうか。書影画像はだいたい似たような高さで、ペラペラな画像として表現されています。もちろん、本の詳細(個別)画面からそれらを文字情報として確認することはできます。

しかし、であるよりも一覧画面でそれが確認できた方がより直感的なのは間違いないでしょう(それが現実の情報行動なのですから)。現在制作中の図書館蔵書検索システムでは、こうした考察を反映したものにしています。

編集後記

紙面の関係上3 、今回、いろいろ思った中の一例をまとめました。総じて、リアル店舗で行ったらハテナと思われるようなことが、ウェブ上ではほいほいまかり通っているのはいつも疑問に思います。

啓蒙というのは苦手なので4 、個人の考え方、あるいは「そうあってほしい論」にとどめますが、ウェブを作る人間としてウェブで何か作るにあたっては、そのサービスを利用する人がどういう人なのかを考えてサービスするのは当然として、加えて現実での類似行動に照らしてみて、おかしいところはないのか。またインターネットという媒体の性質を考慮すると、この行動は妥当といえるのか、をクリアにしてからだろうと思います(といっても、設計による解決策からじゃなく、使っている人の利用状況をきちんとわかってからじゃないと=コミュニケーションを取る上で相手が誰なのか知ることが必要だろうと一応注釈しておきます)。

  1. 図書館情報学をかじってない人に「機関リポジトリから論文をダウンロードできます」と言うようなものですね[戻る]
  2. 子細な分類になると全然違うんですが[戻る]
  3. あんまり長いと誰も読まないので[戻る]
  4. 正確には啓蒙のやり方にもいろいろ方法があるんじゃないかということです[戻る]

Popularity: 4% [?]

キーワード:

似たもの記事

読者の皆さんの反応サイト内コメントの更新情報(RSSフィード)

読者のコメント

8

ブックマークコメント

5

他サイトの関連記事

0

読者のコメント

  1. お名前

    もぎゃ

    投稿日時
    2008年11月21日
    11時ごろ
    Comment No
    #1

    セッションタイムアウトの必要性は、サーバの能力の問題というよりは、セキュリティ上の必要性なのでは。

    ・ユーザーAがユーザー名とパスワードを入れてある商品を買おうとしました。
    ・ユーザーAは何らかの原因で、清算前にパソコンを離れてしまいました
    ・そこへふらりとユーザーBがやってきて、清算前のカゴに他の商品を追加して、そのまま精算してしまいました。

    というような事態を防ぐためにタイムアウトさせるのだと理解しています。

    なので、カゴに商品を追加した後、店内を見て回っている間はタイムアウトしないようにするのが普通だと思うのですけど…そうなっていないですか?

  2. お名前

    もぎゃ

    投稿日時
    2008年11月24日
    21時ごろ
    Comment No
    #3

    おっしゃる通りです。適切なタイミングでパスワード聞くようにするのが正しいと自分も思います。

    ただ、
    >セッションの有効期限を長くしすぎると、
    >サーバの接続数(=店のキャパシティ)が限界を超えて、サイトに接続できなくなるかもしれない
    という説明だと、まるで技術的制限(たとえば、サーバへの同時接続数の制限のような)によりタイムアウトせざるを得ないように読めてしまったので、そうじゃないと思う、という指摘でした。

  3. お名前

    とよだ

    投稿日時
    2011年08月19日
    13時ごろ
    Comment No
    #5

    興味深い記事でした。
    システム屋としては制約にとらわれず、使い勝手を重視していきたいものです。(セキュリティなどの基本部分は当たり前ですが。)

  4. お名前

    投稿日時
    2011年09月09日
    15時ごろ
    Comment No
    #6

    ECサイトでセキュリティを高めるために利用されるSSLという暗号通信の保証する安全というのは「短い時間の間に、その暗号を解くことは難しい」ということが根拠となっています。
    逆にいえば、長い時間をかけてしまえばその暗号は安全じゃなくなるかもしれないわけです。
    暗号化されて送信されているはずのセッションIDを第三者に利用されることは、店にとってだけではなく、ユーザにとっても大きな被害をもたらすことは明らかです。

    あとこちらは推測になりますが、セッションがタイムアウトする時間はある程度根拠があると思いますよ。
    つまり「このくらい時間が経ったら、大体の人は購入に戻ってこない」という統計情報があるんじゃないかと思います。
    そこを無視してサーバ上に情報を保持し続けるのは、「1人のために100万人の行動を阻害する」ことにつながりかねません。

    ちなみに、記事が書かれた当時がどうだったかは分かりませんが、今Amazonで確認すると、SSLに入る前(要するに決済や送り先の入力する前)であれば、何日か経っていてもカートの中身が空になったりはしていませんね。

    > なぜなら、その場合このリスクに限らず、パスワードを保存していた場合など、
    > 利用者個人の管理体制のもろさに起因する様々なリスクが存在するのではないかと。
    > Amazonに行ったらワンクリック・ノーインプットで買えるように
    > パスワードを自動設定していたら、同じようなリスクがありますよね。

    客側がゆるゆるのセキュリティでいることと、店側がセキュリティを緩めてもいいかどうかは別問題かと。

  5. お名前

    のん

    投稿日時
    2011年09月20日
    14時ごろ
    Comment No
    #7

    はじめまして。
    私はまさに、いきなりの「セッション切れ」に何度も苦痛を味わってきました。

    病気による中途障害を持ち、パソコン操作・文字入力をWACOMタブレットで行うようになりました。

    文字入力は、スクリーンキーボードをカーソルでつっつきます。
    直に手で本物のキーボードを打っていた頃に比べ、数倍の時間と体力が要ります。

    このような状況で、例えばあるサイトのフォームに、商品の質問や意見を書いて、やっとできた・・・と思い送信ボタンを押すと「セッション切れのため、もう一度はじめから行ってください」と出て、泣きたくなることがあります。

    意見を書く場合は、ローカル上でテキストエディタ等に書いてから、それをコピペすればいいとしても、フォームの最初に名前、住所etc…個人情報を書かねば送れない場合は、どんなに頑張っても時間は費やします。(たとえば、辞書登録して、1文字打てば名前が出るようにしたり、という工夫はしています)

    提案されているように、全ての人に同じ長さのタイムアウトを設定するのではなく、事情がある場合は延ばせるようにしてもらえたら、どんなに助かるかわかりません!!(^_^)

    または、せめて、アクセスした時、タイムアウト時間が設定してある旨、事前に知らせて欲しいです。そうすれば、そのサイトへの入力は健常者に頼むなどできるのですが。

    その他、パソコン慣れしていない知り合い(40代後半)の話です。
    仕事場で、とある財団のブログへの新規登録を頼まれたものの、
    入力項目が異常なほど多く、何度もタイムアウト。
    スムーズに入力しても、彼女にとっては1時間はかかるような内容でした。本当に困っていました。

    提案されているように、全ての人に同じ長さのタイムアウトを設定するのではなく、事情がある場合は延ばせるようにしてもらえたら、どんなに助かるかわかりません!!(^_^)

    または、せめて、アクセス時、タイムアウト時間が設定してある旨、事前に知らせて欲しいです。そうすれば、そのサイトへの入力は健常者に頼むなどできるのですが。

    私も、WEB制作に携わっていたことがあるのですが、まだまだこの業界、発展途上だと思うことがしょっちゅうでした。もっといろんな立場のユーザーを想定した作りが
    「技術的な慣習というか、だいたいこうしてやってるよ」
    になればいいなと思います。日本はどんどん高齢化していますし、安全かつ優しいページ作りは今後一層、重要課題になるでしょうね。

  6. お名前

    のん

    投稿日時
    2011年09月29日
    14時ごろ
    Comment No
    #8

    コメント、掲載してくださってありがとうございます(^^)。

    なぜか、数カ所、文章が重複していて、
    送った文面の控えと違っているので、
    もう一度送らせてくださいm(__)m

    お手数ですが、9/20の投稿を削除していただけたら幸いです。

    ==========
    はじめまして。
    私はまさに、いきなりの「セッション切れ」に何度も苦痛を味わってきました。

    病気による中途障害を持ち、パソコン操作・文字入力をWACOMタブレットで行うようになりました。

    文字入力は、スクリーンキーボードをカーソルでつっつきます。
    直に手で本物のキーボードを打っていた頃に比べ、数倍の時間と体力が要ります。

    このような状況で、例えばあるサイトのフォームに、商品の質問や意見を書いて、やっとできた・・・と思い送信ボタンを押すと「セッション切れのため、もう一度はじめから行ってください」と出て、泣きたくなることがあります。

    意見を書く場合は、ローカル上でテキストエディタ等に書いてから、それをコピペすればいいとしても、フォームの最初に名前、住所etc…個人情報を書かねば送れない場合は、どんなに頑張っても時間は費やします。(たとえば、辞書登録して、1文字打てば名前が出るようにしたり、という工夫はしています)

    その他、パソコン慣れしていない知り合い(40代後半)の話です。
    仕事場で、とある財団のブログへの新規登録を頼まれたものの、
    入力項目が異常なほど多く、何度もタイムアウト。
    スムーズに入力しても、彼女にとっては1時間はかかるような内容でした。本当に困っていました。

    提案されているように、全ての人に同じ長さのタイムアウトを設定するのではなく、事情がある場合は延ばせるようにしてもらえたら、どんなに助かるかわかりません!!(^_^)

    または、せめて、アクセス時、タイムアウト時間が設定してある旨、事前に知らせて欲しいです。そうすれば、そのサイトへの入力は健常者に頼むなどできるのですが。

    私も、WEB制作に携わっていたことがあるのですが、まだまだこの業界、発展途上だと思うことがしょっちゅうでした。もっといろんな立場のユーザーを想定した作りが
    「技術的な慣習というか、だいたいこうしてやってるよ」
    になればいいなと思います。日本はどんどん高齢化していますし、安全かつ優しいページ作りは今後一層、重要課題になるでしょうね。

はてなブックマークでつけられたコメント

hiro_yさんのプロフィール画像  hiro_y
現実で世界での行動に即して考えること。
その行動は本当に妥当なのか考えること。
isaisstillaliveさんのプロフィール画像  isaisstillalive
書影に厚みやカバーなどの情報を付与させるという発想には目から鱗
faultierさんのプロフィール画像  faultier
単順にサーバ資源の問題というよりも、セキュリティに関わる設計の問題だと思うのだけども / ってコメントにちゃんと書いてた。
そうそう、そういう話ですね。
/ 書影画像は良いなぁ
kkbt2さんのプロフィール画像  kkbt2
非常にためになるお話。
ECサイトについては、カートページ/購入完了ページからもといた商品閲覧ページに戻るボタン以外で立ち戻れる方法が欲しいなあ。
ageha0さんのプロフィール画像  ageha0
ブクログはわりとたのしいと思う。
http://booklog.jp/

他サイトの関連記事

トラックバックはまだ寄せられていません


トラックバックとは
この記事に言及したサイトをこちらに掲載する仕組みをトラックバックと言います。ここでは、このサイトに頂いたトラックバックを一覧表示しています。
トラックバックしてくださる方へ
この記事への言及がない記事など、トラックバック受信方針に沿っていないものは、読者にお見せしても仕方ないこともあり削除させていただいることをご了承ください。
トラックバックを受け取るためのURI

コメント書き込みフォーム

  • メールアドレスはウェブ上で公開したり、連絡以外で使うことはありません
  • コメントを公開したくないが、作者に連絡を取りたい場合は メールで連絡してください
  • 本文中にHTMLコードは使用できません(URLはそのままお書きください)