「WAP」タグアーカイブ

2010-12
31
11:58:17
勝手に添削 – iモードが世界制覇できなかった本当の理由


iモードが世界制覇できなかった本当の理由

事実を正しく指摘してはいるけど、「本当の理由」ではないと思う。

「事実は正しく指摘」しようよ。
結論は、元の中島氏の結論も含めて携帯関係クラスタやらそうした関連記事ではさんざん出ている指摘なので特に異議もないのだけど、その「前振り部分」の事実誤認なのか無知なのか分からないが、事実無根の記述がこんなに短いエントリーなのに三つ(数え方により四つ)もあるよ。
はてブとか読む限り、勘のいい人たちは「何かおかしくね?」とちゃんと気付いてるみたいだけど、言葉のまま信じ切っている人も多いみたいなので、きちんと添削しておく。

ガラケー端末も遙か昔からTCP/IPぐらいサポートしている

WAP1.0の前世紀ならいざ知らず、少なくともiモードはその登場時からTCP/IPベースの携帯端末だった。 小飼氏が言っているのはその10年も昔のWAP1.0と取り違えたような話だ。
というよりWAP1.0のプロトコル・ゲートウェイ的なダサイ実装が嫌だったのでそもそも独自にiモードをTCP/IPベースにして開発した、というのは有名な話だ。
この端末からゲートウェイからもちろん外部のインターネットまで通信層をTCP/IPでデザインするというというアーキテクトはその後のWAP2.0へそのまま踏襲された(つまり現在世界的に見ても『IPアドレスが割り振られない』携帯端末はまず存在しない)。
そもそもガラケーでも問題なくSSLが出来ている(完全なピア・ツー・ピアという意味)時点でTCP/IPをサポートできていないはずが 無いのだが。
なおこれはEZWebやYahoo!ケータイでも(初期にはWAP1.0な時代があったかも知れないが、そこの歴史は僕には分からない。識者の教示を求む)同じことだ。

参考: WAP2.0で何が変わったのか

別にiPhoneだからと言って「グローバルIP」とは限らない

あいまいな論の文章なので判断しにくいのだけど、小飼氏の論やツイートを見ると「iPhoneにはグローバルIPが振られ、外部からも自由にアクセスされ得る」から「終端として主導権を握れる」のが他の端末との大きな違いとなった、とも読める。つまりグローバルIPを自由に使える点が重要だったという意味だろうか(正直こうしてまとめていても僕にはよく分からない)。
仮にそうだとして、日本ではソフトバンクのいわゆる「panda-world.ne.jp」と呼ばれる「iPhone専用網」でサービスされておりここではグローバルIPが割り振られる。IPがグローバルかプライベートかは通常は分からないが、JailBreakしていれば自機のIPが把握できるアプリもある。
しかし世界的にはそんなキャリアだけではない。
例えばこちらの資料をみれば一目瞭然だ。世界的にはグローバルIPを使用するキャリア、 プライベートIPを使用するキャリア(つまりキャリアグレードNATを導入しているキャリア)が混在している。

APN Settings for iPhone 3G | The iPhone User Guide

これらの国ではiPhoneの他の機種に対する魅力は無いのだろうか。ノキアは悠々自適なビジネス環境を生きているか。そんなことは無い。
更に言えば、そもそもスマートフォン網だのガラケー網などと分かれている(アクセスポイントが分けられている)国の方が珍しいので、従来の携帯端末でもグローバルIPが割り振られる場合も同様にある。
「日本のガラパゴス現象」を主題にしているのは理解しているが、しかしその論では「海外においてもiPhoneがスマート」になっている理由付けにはならないだろう。
論理的帰結として、iPhoneはまたはスマートフォンとはそうした「外的要因」からは分離されたところにその存在意義や魅力があると考えるべきだろう。

なお僕には詳細は分からないのだが、「そもそもiモードにも外部接続を受け付ける仕組みはあるよ?」という指摘もある。

定額データ料金はiPhone以前からずっと存在している

これまたあいまいな文章なので判断しにくいが、「iPhoneは定額データ(=常時接続)が無ければこれほど浸透しなかった」は自明としても「定額データを導入したからiPhoneが浸透した」なら成り立たない。既に多くの人が理解するようにiPhone以前の何年も前からガラケーで定額データは一般的だったからだ。
今に始まった経緯では無いのだから「iPhone『だけ』を特別なものにした」論の論拠としては甚だ疑問だし、では何故ガラケー(やその他従来端末)がiPhoneになれなかったかの論としては成り立っていない。

ガラケーがiPhoneになれなかった訳もしくはキャリアがiPhoneを企画できなかった理由

このブログでは、あるいはTwitterでも散々ツイートしているし長くなる話なのでかなり簡単にまとめるが、僕自身は「肝」はいわゆる固有端末ID(uid, X-UP-SUBNO、X-JPHONE-UIDなど)をベースにしたモバイルECが想像以上に成功しそれ以外の方向性に舵を切る必然性がキャリア・メーカーともに無くなったからだと思っている。つまり「イノベーションのジレンマ」かも知れないし、中島・小飼両氏の「結論」も別に異議はない。それ故にキャリアはメーカーを飼い慣らす(実は飼い慣らしたかったのはユーザーだろうが)必要があったしメイドにもならざるを得なかった(つまり両氏の「結論」は「結果論」)、というのが本質論だと思っている。
もし興味があるのなら以下の以前のエントリーも参照して欲しい。

日本のケータイWEBはどうしてこんな仕様になったのか
結局SIMロック論議もオープンプラットフォーム構想も端末IDの話に尽きるのかも知れないなぁ
Appleは本当に垂直統合なのか – 日本の携帯キャリアとの違い
ガラケー機能は須くクラウドを目指せ

ともあれ。エンジニアたる者、事実に立脚せず思い込みだけで論陣を張るなど以ての外だし、知らないことは知らないでよいのではないか。その上で知りたいのなら(議論したいのなら)きちんと新たに学べばいいだけだ。これはネットだけでなくリアルにおいても「技術屋」としては最低限の矜持である。

ROCA,  the mere engineer.

2010-11
23
22:12:27
w3cもケータイ認証には困惑している件


以前Twitterでもツイートしてたんだけど一部誤解があったのでこちらでまとめてみる。

Global Authoring Practices for the Mobile Web (Luca Passani)
http://www.passani.it/gap/

上記をもって「w3cが個体識別番号に駄目出し」としていたんだけど、多少事情が違った。
実は上記には元になる対象文書がある。それがw3cのベストプラクティスだ。

Mobile Web Best Practices 1.0
http://www.w3.org/TR/mobile-bp/#d0e1925

上記のGlobal Authoring Practices for the Mobile Web(以下GAP)はこのw3cのベストプラクティス(以下MWBP)への一種の「アンチテーゼ」として書かれている感が強い。
それらの比較についてはこちらのページが詳しい。
そのほとんどはモバイルWEBでの実装方法についてなので本稿の趣旨とは外れる部分も多いのだが、例えばMWBPではCookieについてこのように解説している。

5.4.14 Cookies
[COOKIES] Do not rely on cookies being available.
5.4.14.1 What it means
Cookies are frequently used to carry out session management, to identify users and to store user preferences. Many mobile devices do not implement cookies or offer only an incomplete implementation. In addition, some gateways strip cookies and others simulate cookies on behalf of mobile devices.

(参考訳)
[Cookies]Cookieが必ず使えると考えるな
Cookieはよくセッション管理やユーザーの特定に使用されるが多くのデバイスでは利用できなかったり正しい実装がされていない。更にはゲートウェイによってはCokkieを削除したりエミュレーションしている。

これだけだ。ベストプラクティスと言いながら実は解決策は何も提示していない。

これに対しGAPは非常に現実的だ。

Practice: If an application only relies on cookies for improved service, but is not essential to the well-functioning of the service itself, then cookie support can be safely assumed.
If cookies availability is essential to the correct functioning of the application (typically for supporting user sessions), then alternative mechanisms should be assumed. URL-Rewriting is the common way to by-pass the lack of cookie support ([URLREWRITING]).

(参考訳)
アプリケーションがCookieのみをベースにできるならそれは安全と見なしていいだろう。
Cookieの利用が機能の要であるならその代替機能も必要とされるだろう(訳注:恐らくCookieが使えない場合のことを言っている)。URL-RewriteはCookieの代替に使用できる共通した方法だ。

そしてよく知られたセッションIDをURLへ付加しURL-RewriteでCookieと共存する方法を述べているのだが、その最後でこのようなことを提示している。

Finally, in many cases, operator gateways and independent portals attach unique headers and values to each HTTP request, such as phone number headers (x-wap-msisdn, x-nokia-msisdn, x-up-calling-line-id) and subscribeer id headers (x-up-subno). The headers can be exploited as unique keys to track users and the foundation for session management.
Some detailed techniques to track users are presented here [TRACKUSERS]

(参考訳)
最後に、多くの場合キャリアのゲートウェイなどは特別なHTTPヘッダーを付加する。x-wap-msisdn, x-nokia-msisdn, x-up-calling-line-id, x-up-subnoといったもので電話番号や契約者番号を示している。
これらのヘッダーをユーザートラッキングのためのユニークキーにしたりセッション管理のベースにすることは脆弱性をもたらしかねない

ここでいうX-UP-SUBNOとは日本ではauで利用されているサブスクライバーIDと同じだ。当然言及はないが、docomoのuid、SoftbankのX-JPHONE-UIDも同列と考えていいだろう。つまりこのコンテキストにおいては「日本のガラケー界は根本から駄目出しをされている」と言えるだろう。

たとえ米国でもディベロッパーがユーザーの特定をあまり行っていない、そういうニーズが無いとは思わない。
ではw3cが何故ここまで踏み込んだ言及が出来ないかは幾つか理由もあると思うのだけど(個別製品への言及は馴染まないとか。X-UP-SUBNOはクアルコムOpenwaveのWAPゲートウェイでの仕様である)、大きな理由として「ベストな方法が考えつかなかった」という点も大きいだろう。
米国ではそもそも個体識別IDを送出しているキャリアばかりではない。つまり共通した手法として利用できる環境ではない。またCookieに対応する機種や環境も(日本と同じく)100%では無いようなので結局のところよい方法が示せなかったのではないか。

一方でこういうテクニカル文書もある。ユーザーをトラックするためのTIPSという感じだが 詳しくは参照してもらうとして、日本での脆弱な「ガラケー界」を見ている者としては少し口出ししたい気持ちにもなる。
つまりは問題ではあるがよい方法が見つからなくて複数の手法を組み合わせる、または端末の特性によって切り替えるしかない、というのは日本と同じ状況とも言えるかも知れない。
かくもモバイル環境(あえて言えば従来までのモバイル機器と環境) でのユーザートラッキングや認証については米国(あるいは世界)においても共通した手法は確立されていないし誰もが困惑しているということになるではないか。

翻って日本だ。幸い(?)日本の「ガラケー界」はベストプラクティスならぬ「バッドプラクティス」の宝庫だ。
しかし見方を変えればそれはベストプラクティスの種の宝庫とも言える。
こうした情報や経験が自由に交換され、国際的に包括されたベストプラクティスが熟成される環境が何とか作れないものか。そうした貢献が出来ていない点でも日本は「ガラパゴス」と呼ばれるのだろう。

(追記 2010/11/25)
“can be exploited..”について、コメント欄でも「単に使用できると言っているだけでは」との意見を幾つか頂いていました。
個人的にも気になったので、筆者であるLuca Passani氏へ直接メールして聞いてみました。以下がその最初の返信です。

(悪意されうると言いたかったのか?との質問に対して)
not really. I just meant that, if a developer needs to track users and cookies
are not available, other headers are an option.
Regards
Luca

との返答でした。
ということで、まずは「脆弱性になり得る」との参考訳を示したことについてお詫び申し上げます。
Passani氏とはその後少し話をして、僕からは日本での簡単ログインという方法が脆弱だと言われているんだよと伝え、彼に(恐らく彼が知る限りの)海外ではどのように捉えられているか尋ねたのですが、
「プライバシーの問題は特にヨーロッパ(彼はローマ在住の恐らくはイタリア人)では問題視される。但しオペレーターはパートナー(恐らく日本における公式サイトよりも厳しい業務提携先と推測)にしか『電話番号』は通知していないし、パートナー以外はIdentifier(例えばX-UP-SUBNOなどの個体識別番号)しか受け取れない」とのことでした。
電話番号というのは多少驚くところですが欧米(他の地域は言葉の問題でよく分かりませんが)では一部のキャリアではパートナーへのサービスとして行っているようです。また個体識別番号の取り扱いについては全く意に介していない様子でもありました。これはそもそも日本での「簡単ログイン」やセッション管理としての利用は一般的ではないため逼迫した問題化していないからだろうと推測します。
以上より、本文については「日本のガラケー界は特に興味も持たれていなかった」として訂正しご解釈下さい。
(であれば”can be exploited”なんて微妙な表現しないでよー、とは思いますがそれはそれとして)

ただ付け加えると、彼の経歴を見ると分かるのですが、実は長年Openwaveでエンジニアとして働いていた人物でもあります(現在はとある企業のCEOのようです)。つまり元々のX-UP-SUBNOを生み出した会社です(その他の通知ヘッダー類についても)。故に個体識別番号のプライバシーやセキュリティ問題について聞くのはそもそも野暮だったのだろうというのが印象です。

最後に、はてブのコメントなども見て多少気になったのですが、現時点において、ではモバイル認証によい方法がないのかと言えばそれは違います。単にCookieを使えば良いだけです(Passani氏も指摘している通り)。これは日本でももちろん同様です。
但しCookieが全面的には利用できないというある意味限定された環境下でのプラクティスの話と言うことになりますので誤解無きようにお願いします。
また個体識別番号の取り扱いについては国や地域で状況やプライバシーへの考えなども違うので一概には言いにくいかも知れませんが、しかし日本での経験が有意義なものに転嫁できるはず、という点はやはり変わりないだろうとも思います。
今回は相手が悪かったところもあるのですが(笑)、逆に如何に日本の実情が知られていないか伝えられていないかと言うことも肌で感じられたので、そうした取り組みが業界全体で行われるなら喜ばしいことだし重要な貢献であろうと思います。
以上、ご報告まで。