Annexソフトウェア技術系を中心に掲載していきます。最近は自分の情報Indexと化しているかも。フリーコメントは「コメント&足あとBox」カテゴリー記事にて歓迎します。[アーキテクト]2011年12月20日にdocomoの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のような仕組みなんだろうな。Acountの認証Tokenのようなものがないので、そこに何か代替手段を考えないといけないのかもしれない・・・。今回の事故を教訓に、何か問題があっても最悪の事態にならないフェールセーフな設計を心掛けなければいけないな・・と実感しております。(それにしてももし本当にspモードを設計していたら、自分はどんな解決をしただろうか・・)--当然のことながら、ここで仮定している仕組みはspモードの本当の仕組みではありません(と思いたい・・・)。事故原因報道および私自身の想像でつくりあげた架空のものです。[アーキテクト]まだご記憶の方も多いと思いますが、2011年3月にみずほ銀行で大きなシステム障害が発生しました。発端は1つの振込用口座から・・・。技術的にはこの口座の制限値を超える振込が発生しそれを処理しきれなかったためにさまざまなところに問題が波及、大きな障害へとつながったのですが。(技術的側面だけをみれば、「自分も経験あるなー」といったものだったりしました)本書でも述べているとおり、根本的な問題はみずほ経営陣のITに対する取り組み、理解のなさではないかと思います。多くのことをコンピュータで行っている現代では、ごく小規模の企業を除いてITを利用していないところはないといってもいいと思います。現代はデータは企業の血液であり、ITシステムは頭脳・心臓となります。そのような重要な部分にかかわっている企業経営者はどれだけいるでしょうか?もちろん、ITの技術的側面を理解しろといっているのではありません。その点は専門部隊に任せればよい。今自企業のITシステムはどういったもので、どういった点が弱点なのかといったところは経営陣のレベルからしっかり理解しなければならない。その代表格がCIOの存在であり、CIOは企業の存亡にかかわるといってもいい。日本ではCIOがいない企業もあり、いたとしてもとても権限が弱いことが多い・・・。みずほ銀行のシステム障害は公共サービスだから大きく報道されただけのことで、同様の問題は実は各企業内でも結構発生しているのではありませんか?こうした視点から本書を読んでいくと、日本の企業で何をしなければいけないのか、が見えてくるのではないかと思います。[アーキテクト]みなさんはUMLモデリングをプロジェクトのどの段階から行っていますか?適用しようと思えばビジネス分析段階から採用できるのがUMLです。「アナリシスパターン」などを読んでもいまひとつぴんと来ない。実装レベルのUMLは理解できるのですが、どうして「アナリシスパターン」のようになるのか、これが実装レベルとどう関係するのか今一つ理解できずにずっと来ました。その今までの悩みが本書「UMLモデリングの本質」で解決されました。本書では分析レベルから実装レベルまでのUMLモデリングの方法を丁寧に解説しています。1つのシステムを対象に分析から実装まで解説しているので、それぞれの関係がわかりやすい。『本質』と銘打つだけあります。単行本(ソフトカバー)本書に関係する書籍もまとめてみました。[アーキテクト]もう業務的にITアーキテクト的なことはやっていないんですが、やっぱり気になり購入してしまいました。「ITアーキテクトのためのシステム設計実践ガイドVOL.3」どうしても毎年購入してしまう・・・・。今回の特集は非機能要件の設計に関するもの。この分野の要件定義をするのに苦労している方は多いのではないでしょうか。今回の特集が参考になると思います。・・・そして、今回の非機能要件の設計を読んで、CMMIのレベル3以降の必要性がやっとわかった気がしました(遅いって・・・)別にCMMIに限ったことではないですが、組織として情報を集め基準やパターンを持っていないと非機能要件なんて定義できないよね、と実感しました。何のために設計・開発とは関係のなさそうなことをやる必要があるのか、それを理解していてればCMMI等の取り組み方が違っただろうに。[アーキテクト]ネットで検索してもらえばわかりますが、ここ数か月でHadoop関連のビジネス情報って増えましたよね。非構造化データの取り扱いやデータ分散化に対応するためのNoSQLサーバも増えてきました。NoSQLを適用しなければならないケースには出会わないけれど、今後のシステムでNoSQLはRDBMSと同じくらいに重要性が増すものと考えています。そんなとき、NoSQLとはどんな特性のものか、数あるNoSQLサーバはどんな点が違うのか、そういった基礎情報は常時認識していたい。そんな欲求を満たすのがこの書籍です。Cassandraはかなりの紙面をさいて説明しているのでそちらに興味のある方はうれしい内容です。今までバッチ処理していた業務システムのいくつか、特に大量データを扱う部分はもしかするとHadoopやそれに類するシステムに置き換わっていくかもしれない。いくつかのベンダーがHadoopソリューションの提供を開始しているのは業務システムのリプレースという側面があるだろう、と個人的には理解しています。これも逃せない内容ですよ。[アーキテクト]OracleからJDK7の公式サポートプラットフォームが発表になりました。気づいたのがMacOXが入っていないこと。商用サポートを期待しているわけではない(つまり個人利用)なのでOpenJDKでも動いてくれればそれでOKかな~。そのあと気づき、ちょっと問題かな~と思ったのは仮想環境(の一部)がサポート対象外であること。Hypervisorが対象外なんですよね~。商用サポートを期待しているところがどれだけあるか・・・てことになるとは思うけどやっぱり気になる。最悪VM上では動かないようになる・・・・ってこともあるのかな~(ないとは思うけど)。その時はOpenJDKか・・・。いや・・・ここはWindowsAzureやその他Javaをサポートするクラウドに移行しろってことか。(あ、IaaSとかはJavaサポートしてくれないのか??)(というかOpenOffice同様OracleからJavaを切り離してほしいと切に願っております・・・)http://journal.mycom.co.jp/news/2011/04/29/013/index.htmlで、最後に気が付いた・・・。JavaプラグインとかJavaWebStartってWindows以外サポートしなくなっていくのかな~。Firefoxならサポートするようですけどね。FXトレーディングとかJavaWebStartを使っているところもあったからな~、どうなることやら。[アーキテクト]数年前まではどちらかといえば工学的なアプローチで開発を進めていたのですが、最近はアートなプロジェクトで作業しているのですっかり忘れてしまった『システム設計』。勉強し直しの意味もあって読んでみました。前半半分はソフトウェア開発に携わる若手エンジニアに読んで欲しい内容ですね。マネージャーにならないとしても責任ある開発をしていくには必ず必要です。後半は・・・業務システムを長年携わってきた私でもあまり細かいところは気にしたことないなー、、、という内容でした。気にしたことがない事自体が問題だったのかもしれませんけど、知らなくてもなんとかなったんだよな~。役割分担がない今のほうがこうした内容をちゃんと知らないといけないかもしれない。総合的に言うと・・・記載されている内容がちょっと古いか??という印象があります。内容を知っていて損はないけどね。いえ、日本の業務システム開発の主役ってまだまだこうした古いものなのかもしれない(新しいものはリスクがあるとかいって変えようとしないし)。いずれにしても内容的にはソフトウェアサイエンス以外の学校からシステム開発に携わることになった若手エンジニア向けな内容であることには間違いないと思います。Design)」の日本語訳が出るらしいです。原著は分厚かったのでそれを反映してか5000円超(驚)。原著を持っているんだけど、買うかどうか悩むなー。それにしても日本語訳が出るまでにずいぶんと時間がかかりましたね。Design」もう3ヶ月以上もかけて読んでいる本ですが、いかんせん厚い・・・。そんなとき、オージス総研でよくまとめたページがあることを知りました。このページをみると本の大筋はわかると思います。私もDDD難民なようですね。私も最初のほうを忘れてきたのでいったん読むのを中止し、このページを見てから再度読み直しをしたいと思います。最初のものは比較的ソフトウェアプロセス全般をカバーしていましたが、今回は”クラウド””仮想化”そして”スマートフォンやWebのUI”に多くのページを割いています。”と”基本設計”・・・。”のアンチパターンで、『業務機能のサイズをばらばらにしてはいけない』というのがあるのですが本書籍は『記述レベルがばらばら』という印象です。アンチパターンを並べているものなのでいいんですけどね。”クラウドや”仮想化”は登場してまだ時間が経過しておらず、インテグレーションするこちらも多くの経験がないだけにアンチパターンがいくつも掲載されている本書はとても参考になると思います。サーバ/インフラを支える技術」の続編的な本「[Web開発者のための]大規模サービス技術入門」。以前の「サーバ/インフラを~」を紹介したとき、『あとはハイパフォーマンスWeb~を読めばばっちり・・・』なんて言っていましたが、ぜんぜんばっちりじゃありません。あまりにも自分が浅はかだったことが本書を読んでよくわかりました。~、大規模システムってこういうところに注力していくんだ~という内容満載です。最近のITはハードとソフトを分離していく(互いに抽象化していく)動きがありますが、本当に大規模対応になると両者は密接な関係になっていくんですね。正しくはハード/OS/ソフトが密接に絡み合っていく。ハードやOSのことをよく知らないと本当にいいソフトウェア(というかシステム)は作れないんだ・・・と痛感いたしました。大規模システムなんて作らないから関係なーいと思う方もいらっしゃるかもしれませんが、これからの時代はソフトウェアがどんどん凝集化されて嫌でも大規模化していくんじゃないかな~と感じています。大規模システムというのはごく一部かもしれませんが、そんな時だからこそキャッチアップしやすいとも言える。本書で大規模システムとはどんなものか、どうやって作っていくのかを感じ取ってほしいと思います。大規模なWebサイトを24時間365日運用するためのインフラを構築したい人必見。はてなやKLabが実際に採用しているサーバ/インフラのスケーラビリティ・アベイラビリティ確保のための技術を惜しみなく紹介している、そんな本です。普段はソフトウェア開発を主としている私自身も久々に、「あ~やってみて~」と思う内容でした。どこかで活用できるようなサービスを立ち上げることができればいいのですが。この本ではWebサーバ、DBサーバ、ファイルサーバ、DNSについて紹介しています。最近のWebサイトであればこれだけ紹介されていれば十分でしょう。インフラ担当者にもWebアプリケーション開発者にも絶対お薦めです。あとは「ハイパフォーマンスWebサイト」でコンテンツの中身を改善すればバッチリ。プロフェ..最近のコメントおはようございます。ソネットポイントこの広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。この広告は180日新規投稿のないブログに表示されます。