なぜspモードはIPアドレスの紐付を行っていたかを考えてみる [アーキテクト]
2011年12月20日にdocomoのspモードで、「メールアドレスの置き換え」という障害が発生しました。
本当の原因等はメディアにお任せいたします。
(例えばITProなどはいかがでしょうか)
どうやら原因は、ドコモのセンター側でIPアドレスとメールアドレスを紐付していたが、センター側が高負荷状態となり紐付に不整合が発生してしまった・・ということ。
ということで、「なんでIPアドレスを紐付たのだろう??」と勝手に考えてみるのが本稿の趣旨。
まずはじめに携帯のメールと通常のSMTP(POP/IMAP)メールとの違いを把握してみたい。
通常のメール(POP/IMAP)はメールの着信確認を、クライアントサイドから行う。1分とか極端に短い確認間隔を設定しない限り、送信後ほぼリアルタイムに着信することはない。
それに対して携帯のメールは、センター側から携帯端末にメールをプッシュすることで(通信可能状態にあれば)ほぼリアルタイムに着信する(と聞いたことがある)。このリアルタイム性がうけたのか携帯のメールってほぼチャットのように利用されていることがありますよね。
さて、ここでどうやって携帯端末にプッシュするか、その仕組みを考えてみたい。仮定として、利用するネットワークは純粋なIPネットワークであること。
センターからプッシュするためには送信したいメールアドレスのIPアドレスを知らなければならない。端末側からのメール着信確認のアクションがない以上、何らかのかたちで端末側のIPアドレスを把握しておく必要がある。
ここでおそらくspモードではメール->IPアドレスに変換するダイナミックDNSのような仕組みを作り上げたんでしょう。端末側のIPアドレスが変更された場合は自動的に変換テーブルを更新しちゃんと同期がとれていれば問題はないはずだと。
IPアドレスではなく、端末固有のIDで管理すればよかったのではないか、と私もはじめは考えたのですが2つの理由からそれはできないと考えられたものと思います。
こうして今までのspモードの仕組みができあがったと・・・。
では、どうすれば今回のような問題は起きなかったのかを考えてみると・・・、意外と解決策は難しい?
なんらかの形でメールアドレス->IPアドレス変換は必要になるのはほぼ間違いない(はず)。
とはいえIPアドレスとメールアドレス変換テーブルが完全に同期する保証はないことが今回証明されている。
・・・端末ID-IPアドレスの組み合わせもセンター側で管理し、メールをプッシュする際に端末IDを送信し端末側で受信する際端末IDが異なっていたらrejectする、という案もあるかもしれない。これで99%は問題がなくなるはず。(センター側の同期は相当のことがない限り、破たんしないようなので)けれど、今回のような問題が発生することを想定し、かつ受信側でcrackされてどんな端末IDでも受け入れられる仕組みを作られたら、と思うと100%完全ではない。
おそらく回答に近いものはAndroidのC2DMのような仕組みなんだろうな。ただ、ユーザGoogle Acountの認証Tokenのようなものがないので、そこに何か代替手段を考えないといけないのかもしれない・・・。
今回の事故を教訓に、何か問題があっても最悪の事態にならないフェールセーフな設計を心掛けなければいけないな・・と実感しております。(それにしてももし本当にspモードを設計していたら、自分はどんな解決をしただろうか・・)
--
当然のことながら、ここで仮定している仕組みはspモードの本当の仕組みではありません(と思いたい・・・)。事故原因報道および私自身の想像でつくりあげた架空のものです。
本当の原因等はメディアにお任せいたします。
(例えばITProなどはいかがでしょうか)
どうやら原因は、ドコモのセンター側でIPアドレスとメールアドレスを紐付していたが、センター側が高負荷状態となり紐付に不整合が発生してしまった・・ということ。
ということで、「なんでIPアドレスを紐付たのだろう??」と勝手に考えてみるのが本稿の趣旨。
まずはじめに携帯のメールと通常のSMTP(POP/IMAP)メールとの違いを把握してみたい。
通常のメール(POP/IMAP)はメールの着信確認を、クライアントサイドから行う。1分とか極端に短い確認間隔を設定しない限り、送信後ほぼリアルタイムに着信することはない。
それに対して携帯のメールは、センター側から携帯端末にメールをプッシュすることで(通信可能状態にあれば)ほぼリアルタイムに着信する(と聞いたことがある)。このリアルタイム性がうけたのか携帯のメールってほぼチャットのように利用されていることがありますよね。
さて、ここでどうやって携帯端末にプッシュするか、その仕組みを考えてみたい。仮定として、利用するネットワークは純粋なIPネットワークであること。
センターからプッシュするためには送信したいメールアドレスのIPアドレスを知らなければならない。端末側からのメール着信確認のアクションがない以上、何らかのかたちで端末側のIPアドレスを把握しておく必要がある。
ここでおそらくspモードではメール->IPアドレスに変換するダイナミックDNSのような仕組みを作り上げたんでしょう。端末側のIPアドレスが変更された場合は自動的に変換テーブルを更新しちゃんと同期がとれていれば問題はないはずだと。
IPアドレスではなく、端末固有のIDで管理すればよかったのではないか、と私もはじめは考えたのですが2つの理由からそれはできないと考えられたものと思います。
- 携帯時代の「かんたんログイン」で端末固有のIDを利用していたが、この方式はセキュリティ上問題があるとされ、その利用をためらった。端末固有IDが偽装されたら・・という思いもあったかも。
- こちらのほうが仕組み上問題なのだが、端末固有IDをつかっても送信先を特定できない。メールアドレス->端末固有ID→IPアドレスの変換の仕組みが結局必要。
こうして今までのspモードの仕組みができあがったと・・・。
では、どうすれば今回のような問題は起きなかったのかを考えてみると・・・、意外と解決策は難しい?
なんらかの形でメールアドレス->IPアドレス変換は必要になるのはほぼ間違いない(はず)。
とはいえIPアドレスとメールアドレス変換テーブルが完全に同期する保証はないことが今回証明されている。
・・・端末ID-IPアドレスの組み合わせもセンター側で管理し、メールをプッシュする際に端末IDを送信し端末側で受信する際端末IDが異なっていたらrejectする、という案もあるかもしれない。これで99%は問題がなくなるはず。(センター側の同期は相当のことがない限り、破たんしないようなので)けれど、今回のような問題が発生することを想定し、かつ受信側でcrackされてどんな端末IDでも受け入れられる仕組みを作られたら、と思うと100%完全ではない。
おそらく回答に近いものはAndroidのC2DMのような仕組みなんだろうな。ただ、ユーザGoogle Acountの認証Tokenのようなものがないので、そこに何か代替手段を考えないといけないのかもしれない・・・。
今回の事故を教訓に、何か問題があっても最悪の事態にならないフェールセーフな設計を心掛けなければいけないな・・と実感しております。(それにしてももし本当にspモードを設計していたら、自分はどんな解決をしただろうか・・)
--
当然のことながら、ここで仮定している仕組みはspモードの本当の仕組みではありません(と思いたい・・・)。事故原因報道および私自身の想像でつくりあげた架空のものです。
GARNET CROW 「JUDY (Engllish ver.)」 [雑感]
「JUDY (English Ver.)」のPVがYouTubeに公開されてた。
GARNET CROW 12月に New Album 「メモリーズ」 Release
GARNET CROWのNew Albumが12月7日に発売決定
Beingの音楽ダウンロードサービスによるとアルバムの内容は
2011年第1弾シングルとして発表された「Smiley Nation」を始め、読売テレビ・日本テレビ系全国ネット土曜よる6:00放送 アニメ「名探偵コナン」オープニングテーマ「Misty Mystery」など、全11曲を収録。
そして初回限定盤には
★初回限定盤特典DVD:Music Clip 4曲
「Smiley Nation」「Misty Mystery」
その他2曲収録予定
12月が待ち遠しいですね~。
<<ジャケットが公開されたのでリンク更新>>
YouTubeでちょこっと公開されているので追加!!
「プロマネやってはいけない 計画・管理編」 [プロジェクト管理]
プロジェクトの失敗要因、特に統計情報を持っているわけではありませんが、原因は
要件定義および変更が管理できない
スケジュールの問題
見積もり
といったところではないでしょうか。本書では見積り以外が対象になっていると思います。
本書のテーマと失敗要因をマッピングすると
見積もり => 見積もり
計画 => スケジュール
進捗管理 => スケジュール
リスク管理 => スケジュール、要件定義・変更管理
課題・変更管理 => 要件定義・変更管理
クロージング => スケジュール、要件定義・変更管理
失敗事例が多数あるだけあって、書籍では事例がたくさんあります。私の経験と照らし合わしても「これが失敗要因だった」と合致するものがたくさん・・・。
では、その『突破術』として記載されている内容は・・・正論が多いんですよねー。正直、「それができれば苦労しない」「そもそも自社側の上司の指示・命令でそうせざるをえない」というものも結構ある。正論を押し通すことができれば苦労しないと言いたいところも多数ありました。
さらに言えば、これをまじめにやったらアジャイル開発は難しいだろうなーという感もあります。もちろん、何らかの方法はあるのでしょうけれど。アジャイル開発に向かないのが日本の商慣習という面もあるかもしれません。
とはいえ、やっぱりこうした失敗事例と「本来どうあるべきか」ということは知っておかなければなりませんから、本書のような内容はマネジメントを行う人にとっては結構参考になると思います。
ちなみに、本書は「計画・管理編」となっていますが、それ以外の「~編」が出るんですかね~。
要件定義および変更が管理できない
スケジュールの問題
見積もり
といったところではないでしょうか。本書では見積り以外が対象になっていると思います。
本書のテーマと失敗要因をマッピングすると
見積もり => 見積もり
計画 => スケジュール
進捗管理 => スケジュール
リスク管理 => スケジュール、要件定義・変更管理
課題・変更管理 => 要件定義・変更管理
クロージング => スケジュール、要件定義・変更管理
失敗事例が多数あるだけあって、書籍では事例がたくさんあります。私の経験と照らし合わしても「これが失敗要因だった」と合致するものがたくさん・・・。
では、その『突破術』として記載されている内容は・・・正論が多いんですよねー。正直、「それができれば苦労しない」「そもそも自社側の上司の指示・命令でそうせざるをえない」というものも結構ある。正論を押し通すことができれば苦労しないと言いたいところも多数ありました。
さらに言えば、これをまじめにやったらアジャイル開発は難しいだろうなーという感もあります。もちろん、何らかの方法はあるのでしょうけれど。アジャイル開発に向かないのが日本の商慣習という面もあるかもしれません。
とはいえ、やっぱりこうした失敗事例と「本来どうあるべきか」ということは知っておかなければなりませんから、本書のような内容はマネジメントを行う人にとっては結構参考になると思います。
ちなみに、本書は「計画・管理編」となっていますが、それ以外の「~編」が出るんですかね~。
「Xcode 4 入門 for iOS/Mac OS X」 [プログラミング]
iPhoneアプリケーションプログラミングを以前から行っている方はXcode3からXcode4に変わったときに驚かれたと同時に戸惑われたのではないでしょうか。私はまるでeclipseに合わせたのかと思いました(VisualStudioもシングルウィンドウ方式ですが、見た目がなんとなくeclipseに似ていたもので)
iPhoneやMacのアプリケーション開発をご存知ない方にもわかりやすく言うとXcode3はエディタが複数立ち上がるマルチウィンドウ方式の開発環境でした。ページを複数閲覧する際複数のウィンドウが起動する少し前のブラウザに似ていますね。
これに対し最近リリースされたXcode4は1つのウィンドウの中でタブを切り替えながら使うシングルウィンドウ方式に変更になりました。最近のブラウザもタブで切り替えるようになっているという意味で同様ですよね。
個々の機能はXcode3もXcode4もあまり違わないのですが、ところどころ指定方法や起動方法が違い、かなり戸惑いました。時間をかければ慣れてくるとは思いましたが、その時間をかけるのも惜しいと思い本書を購入しました。
本書ではObjective-Cに関する記述はほぼ皆無で、Xcode4の使い方に絞って解説しています。Xcode3利用者が困らないような配慮もあって、わりと簡単にキャッチアップできました。
また、Xcode3では日本語メニューが提供されていましたが、Xcode4では日本語化されない模様です。そうした意味でも慣れるのにはちょっと時間がかかりました。その時間を本書で短縮できると思えば安いものです。
もちろん新規にXcode4を利用する方も、本書があればどこからはじめて、どんな機能があるのかがわかりますからきっと役にたつと思います。
なかなかXcode4に特化した書籍はありませんから貴重な内容ですよ。
iPhoneやMacのアプリケーション開発をご存知ない方にもわかりやすく言うとXcode3はエディタが複数立ち上がるマルチウィンドウ方式の開発環境でした。ページを複数閲覧する際複数のウィンドウが起動する少し前のブラウザに似ていますね。
これに対し最近リリースされたXcode4は1つのウィンドウの中でタブを切り替えながら使うシングルウィンドウ方式に変更になりました。最近のブラウザもタブで切り替えるようになっているという意味で同様ですよね。
個々の機能はXcode3もXcode4もあまり違わないのですが、ところどころ指定方法や起動方法が違い、かなり戸惑いました。時間をかければ慣れてくるとは思いましたが、その時間をかけるのも惜しいと思い本書を購入しました。
本書ではObjective-Cに関する記述はほぼ皆無で、Xcode4の使い方に絞って解説しています。Xcode3利用者が困らないような配慮もあって、わりと簡単にキャッチアップできました。
また、Xcode3では日本語メニューが提供されていましたが、Xcode4では日本語化されない模様です。そうした意味でも慣れるのにはちょっと時間がかかりました。その時間を本書で短縮できると思えば安いものです。
もちろん新規にXcode4を利用する方も、本書があればどこからはじめて、どんな機能があるのかがわかりますからきっと役にたつと思います。
なかなかXcode4に特化した書籍はありませんから貴重な内容ですよ。
「ビジネスマンのための「行動観察」入門」 [自己研鑽]
みなさんも『エスノグラフィー』という言葉を聞いたことがあると思います。
もともとの意味は異なるのですが、最近ではこの言葉は行動観察の手法という意味で使われます。
つまり本書はエスノグラフィーの一端を紹介したものでもあります。ただ、本書で紹介しているのはエスノグラフィー”だけ”に限ったものではなく字義どおり、そこにいる人の行動を観察し、さまざまなことを発見していくというものです。
「行動観察」をすると何がわかるのか。それはいろいろなことがわかります。
新しいビジネスアイディアが見つかることもありますし、できる人/できない人の違いを発見することもある。また、作業効率の改善に役立つこともある。
ただ「見る」(see)ではなく、「観察」(observe)することでいろいろなことがわかるのです。
(お気づきの方もいると思います。本書で紹介されている言葉ですが、もともとはシャーロック・ホームズの言葉ですね。やっぱりシャーロック・ホームズは素晴らしい!!)
本格的に「行動観察」をし、分析し・発見・改善するというのは少し難しいところもありますが、知っていると知らないとでは大きな違いがあります。きっとあなたのビジネスでも役にたつことがあると思います。
それほど高い本でもありません。ぜひご一読を。
もともとの意味は異なるのですが、最近ではこの言葉は行動観察の手法という意味で使われます。
つまり本書はエスノグラフィーの一端を紹介したものでもあります。ただ、本書で紹介しているのはエスノグラフィー”だけ”に限ったものではなく字義どおり、そこにいる人の行動を観察し、さまざまなことを発見していくというものです。
「行動観察」をすると何がわかるのか。それはいろいろなことがわかります。
新しいビジネスアイディアが見つかることもありますし、できる人/できない人の違いを発見することもある。また、作業効率の改善に役立つこともある。
ただ「見る」(see)ではなく、「観察」(observe)することでいろいろなことがわかるのです。
(お気づきの方もいると思います。本書で紹介されている言葉ですが、もともとはシャーロック・ホームズの言葉ですね。やっぱりシャーロック・ホームズは素晴らしい!!)
本格的に「行動観察」をし、分析し・発見・改善するというのは少し難しいところもありますが、知っていると知らないとでは大きな違いがあります。きっとあなたのビジネスでも役にたつことがあると思います。
それほど高い本でもありません。ぜひご一読を。
GARNET CROW 12月に New Album 「メモリーズ」 Release [雑感]
GARNET CROWのNew Albumが12月7日に発売決定
Beingの音楽ダウンロードサービスによるとアルバムの内容は
そして初回限定盤には
12月が待ち遠しいですね~。
<<ジャケットが公開されたのでリンク更新>>
YouTubeでちょこっと公開されているので追加!!
Beingの音楽ダウンロードサービスによるとアルバムの内容は
2011年第1弾シングルとして発表された「Smiley Nation」を始め、読売テレビ・日本テレビ系全国ネット土曜よる6:00放送 アニメ「名探偵コナン」オープニングテーマ「Misty Mystery」など、全11曲を収録。
そして初回限定盤には
★初回限定盤特典DVD:Music Clip 4曲 「Smiley Nation」「Misty Mystery」 その他2曲収録予定
12月が待ち遠しいですね~。
<<ジャケットが公開されたのでリンク更新>>
YouTubeでちょこっと公開されているので追加!!
「会計士さんの書いた情シスのためのIFRS」 [業務知識]
適用がいつになるかわからないのにすっかり話題になっているIFRS。その中身をご存知ですか?
意外と知られていないものです。IFRSは大きな会社になればなるほど適用する可能性は高くなる(小さい会社が無条件対象外というわけではありませんので念のため)。となると企業の会計システムを運用する情報システム部の皆さんには無縁ではないはずです。まずはIFRSとはどういったものなのかをちゃんと理解しましょう。
それには本書がちょうどよいと思います。システム面を中心に書かれている本もありますが、IFRSは原則主義、まずは原則をちゃんと理解しないと意味がありません。そういった意味では本書はまずはIFRSの内容をわかりやすく説明している。一部でシステム面の例を示していますが、一部です。まずはちゃんとした会計の内容から入りましょう。これが理解できればシステム面での変更をしなければならない時も、なぜそのように変更するのかがわかるのではないかと思いますし、無駄な変更箇所もわかると思います。
ついでに言えば、全面適用になるまでの流れも説明されているので、周囲の情報に惑わされずに自分自身で判断ができるようになります。IFRSという言葉に踊らされないようしっかり勉強しましょう。
意外と知られていないものです。IFRSは大きな会社になればなるほど適用する可能性は高くなる(小さい会社が無条件対象外というわけではありませんので念のため)。となると企業の会計システムを運用する情報システム部の皆さんには無縁ではないはずです。まずはIFRSとはどういったものなのかをちゃんと理解しましょう。
それには本書がちょうどよいと思います。システム面を中心に書かれている本もありますが、IFRSは原則主義、まずは原則をちゃんと理解しないと意味がありません。そういった意味では本書はまずはIFRSの内容をわかりやすく説明している。一部でシステム面の例を示していますが、一部です。まずはちゃんとした会計の内容から入りましょう。これが理解できればシステム面での変更をしなければならない時も、なぜそのように変更するのかがわかるのではないかと思いますし、無駄な変更箇所もわかると思います。
ついでに言えば、全面適用になるまでの流れも説明されているので、周囲の情報に惑わされずに自分自身で判断ができるようになります。IFRSという言葉に踊らされないようしっかり勉強しましょう。
「Android Application Testing Guide」 [スマートフォン]
洋書ですが・・・数少ないAndroidでのテスト専門の書籍。
みなさんご存じのとおり、AndroidのSDKでは単体テストの仕組みも用意されています。
本書では半分くらいはその内容がいろいろ紹介されています。
(ここではじめて知ったんですが、AndroidのテストってJUnit'3'をベースにしていたんですね。どうりでJUnit4のテストと違うわけだ・・・)
後半からは・・・こんなのも使えるんだ、という内容。
例えば「FITNESSE」を使ったテストのこと、そしてプロジェクトになれば当然必要になるCI(継続的インテグレーション)のことなど。とっても参考になります。
まだすべてを実践できていませんが、きっとこれからの作業に役立つ内容だと確信しています。
とりあえず今回はKindle版でご紹介(だってPaperの半額以下なんですから)
みなさんご存じのとおり、AndroidのSDKでは単体テストの仕組みも用意されています。
本書では半分くらいはその内容がいろいろ紹介されています。
(ここではじめて知ったんですが、AndroidのテストってJUnit'3'をベースにしていたんですね。どうりでJUnit4のテストと違うわけだ・・・)
後半からは・・・こんなのも使えるんだ、という内容。
例えば「FITNESSE」を使ったテストのこと、そしてプロジェクトになれば当然必要になるCI(継続的インテグレーション)のことなど。とっても参考になります。
まだすべてを実践できていませんが、きっとこれからの作業に役立つ内容だと確信しています。
とりあえず今回はKindle版でご紹介(だってPaperの半額以下なんですから)
「SEのための会計の教科書」 [自己研鑽]
先日の「この1冊ですべてわかる 会計の基本」に関連して、図書館で入手してきました「SEのための会計の教科書」
会計の部分は同じような内容ですが、さすがは「SEのための」というだけあって会計「システム」に関する記述が結構ありますね。書籍の構成もシステム寄りで書かれているような気がします。(「会計の基本」とは登場順序が違ったりとかします)
会計システムそのものを作るのでないなら、「SEのための」のほうがSEにはとっつきやすいでしょう。
現場の人と会計の話をちゃんとできるようにしたい!!そのためにシステム視点ではなく、純粋に会計視点で学びたいという場合には「会計の基本」のほうが私はおすすめです。
私自身ソフトウェア屋ですが、こと会計に関しては「会計の基本」の順序で読んだほうがわかりやすかったです。
(知りたいのがシステム面ではないから当然なのですが)
でもソフトウェア屋ですから・・やっぱり両方必要なのかな~。
会計の部分は同じような内容ですが、さすがは「SEのための」というだけあって会計「システム」に関する記述が結構ありますね。書籍の構成もシステム寄りで書かれているような気がします。(「会計の基本」とは登場順序が違ったりとかします)
会計システムそのものを作るのでないなら、「SEのための」のほうがSEにはとっつきやすいでしょう。
現場の人と会計の話をちゃんとできるようにしたい!!そのためにシステム視点ではなく、純粋に会計視点で学びたいという場合には「会計の基本」のほうが私はおすすめです。
私自身ソフトウェア屋ですが、こと会計に関しては「会計の基本」の順序で読んだほうがわかりやすかったです。
(知りたいのがシステム面ではないから当然なのですが)
でもソフトウェア屋ですから・・やっぱり両方必要なのかな~。
「この1冊ですべてわかる 会計の基本」
本当に会計の基本中の基本をやさしく解説してくれる本。これでわからなかったら、もう専門の学校で懇切丁寧に教えてもらうしかない。もしかすると学校で教えてもらってもここまで基本だけ、ということにはならないかもしれない。それほどに『基本』にフォーカスした内容です。
そんな内容でもしっかりと税務・財務・管理会計の内容に言及していますし、IFRSに関しても解説している。IFRSの説明なんてこんなときでもなければ、「そもそも何が違うの???」というところをわかりやすく教えてもらえる機会ってないと思う。
今はITの世界でも会計の知識は必要とされています。しかし、ほとんどの人はそんなことを教えてもらう機会がない。勉強する機会もない。「IT技術者のための~」と銘打った会計の本もありますけど、その前にまずこの本で基本中の基本を覚えたほうが絶対にわかりやすいと思う。
まさにおすすめです。
















