トップスポーツチームの監督に教わる秘訣
この論文では、氏が発見した原則を要約し、その原則をいかにしてソフトウェア開発に応用するかを説明します。
作者 Gavin Terrill, 翻訳者 編集部 投稿日 2008年3月9日 午後12時5分
著者であり、ITコンサルタントのGojko Adzic氏(サイト・英語)が、拡張が容易なWebアプリケーション向けの静的コンテンツを分割するアーキテクチャー上の利点に関して、動的コンテンツとの比較を交えて、興味深い記事(source)を書いた。
拡張が容易なWebサイトプロジェクトで早期にしなければならない、重要なアーキテクチャー上の決断は、データフローを2つに分割することである。1つはユーザ固有で、もう1つは総称である。
このようにデータを区分する主な論理的根拠は、それぞれのデータ使用に関する制約がそれぞれ別のキャッシュと状態管理アプローチに基礎を置いているからである。
たとえば、ほとんどの総称データフローは完全にステートレスだが、ユーザ固有のアクションはステートフルであることがよくある。この2つのフローが明確に 分けられていれば、総称アクションをステートレスサービスやサーバで処理することができる。ステートレスサービスはステートフルサービスよりも管理および スケールがずっと容易であるが、それはシステム操作に影響を与えずに簡単に置換されるからである。パワーがさらに必要な場合、さらに多くのチープサーバを スタックして、ラウンドロビンや単純なロードバランシングで要求することができる。ステートフルサービスはそのように簡単にスケールできないのか?リソー スロックに依存し、ロードバランサーは1つのセッションにつきすべての要求を同じサーバに送信しなければならない。ステートフルサーバが利用不可になる と、システム操作に明らかに影響が出る。そこでこれらのサービスは、ステートレスサーバよりも相当回復力がなくてなならない。
Gojko氏は、データストリームを分ける方法について説明している。2層アプリケーションの場合、別のデータソースを作成する。静的データがあるデータ ストリームの場合、キャッシュをオンに、トランザクションをオフにする。3層アプリケーションではさらに複雑な設定が提案されている。
3層アーキテクチャーでは、最初からミドルウェアをユーザ固有および総称サーバに分けるようにしている。Webサーバが最上位に、最初のミドルウェアグ ループから総称データを取得 し、2番目のミドルウェアグループを使用してトランザクションを処理する。総称データフローのサーバは容易にクラスターおよびスケール可能で、難しい設定 などは一切なしでロードバランシングシステムは適切に作動する。システムに一切影響を与えることなく、リスタートや、クラスターから取り出したり、元に戻 したりできる。透過キャッシュをこれらのサーバに簡単に適用することができる。その一方、ユーザ固有のサーバはこの点においてさらに扱いにくく、決して透 過的にキャッシュされるべきではない。この分割は今後のスケーリングやキャッシュのための準備である。総称データサーバは製品の範囲やタイプによって領域 的に分割し、キャッシュサーバの層の下に置かれ、垂直に分けられるからである。ユーザ固有のサーバに関する機能は、集約かつ隔離されている。それであとで パーティションが必要になったときに、それほど集中しないですむ。
AJAXでユーザ固有のコンテンツを総称ページにロードしたり、 各ページの上部に表示されるユーザの詳細をCookieで保存するテクニックを引用しながら、Gojko氏は可能な限り総称サーバに移行して、キャッシュ のパワーを利用することを提案している。総称データストリームは、LightHttpd(サイト・英語)などの高性能httpサーバによって運用される。
原文はこちらです:http://www.infoq.com/news/2008/03/twostreams
セキュアなIT基盤と付帯運用サービス”SecureOnline”
12/5 CSQ会員限定技術情報交換会にてJCP議長が標準化について語る
12/16 ~野村総合研究所が提案~ 「不況を乗り切る!効果的なIT投資を考えるセミナー」
この記事では、私達がどのようにして大規模(240人月、10万行強)でインドとオランダの開発者も参加したスクラム・プロジェクトを成功させたのかを示しています。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。参加者はカンファレンスで各々の発表や、各セッションへの参加、諸外国のエンジニアとの出会い、ステージ上で DearXPを熱演などの様々な思い出を抱えて、無事日本に戻ってきました。
マイクロソフトのRobert Bellが、SilverlightとJavaを使用したインターオペラビリティのシナリオを紹介し、サンプルコードを例にとってアーキテクチャの手引きを提供します。
Agileカンファレンスに「参加者としてだけでなく、発表者として参加しよう」を掲げたチームgoyattomは、サブミッションを提出し、7つのセッションが日本から選択されました。サブミッションが選択された人、そうでない人も含めて、個々の目的意識の確認、膨大なプログラムから聞きたいセッションの選択、旅行の準備、プレゼンテーションの準備の期間を終えて、無事当日を迎えました。
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
No comments
返信