Agile2008 チーム参加レポート - 動機/準備編
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
作者 Gavin Terrill, 翻訳者 大田 緑 - (株)チェンジビジョン 投稿日 2008年9月4日 午後6時35分
EhCache(リンク)チームのGreg Luck氏が、キャッシングにSOAPとRESTful API(リンク)を使用できることを8月の初めに発表した(リンク)。説明は以下のように記述されている(リンク)。
Ehcacheは、Cache Serverを提供します。ほとんどのウェブコンテナのWARファイルとして、または、スタンドアロンサーバとして利用できます。Cache Serverには2つのAPIがあります。: RESTfulリソース指向とSOAPです。両方とも、どのプログラミング言語でもクライアントをサポートします。
これに続く投稿で、Greg氏は、理論上1テラバイトのキャッシュをデプロイするオプションに関する彼の考えの概要をまとめている。
ehcache単独の最大のインスタンスは、メモリで約20GBで実行されます。最大のディスク記憶装置は、各々100GBで動きます。分割したキャッシュデータを持つノードを一つにまとめ、さらに大きなサイズにします。20GBのノードが50個で、1テラバイトを利用できるようになります。
最初のもっとも簡単なアプローチは、ehcacheサーバで実行する複数のノードの設定を含む。そして、オブジェクトのハッシュコードに基づいて使用するサーバをクライアントに決定させる。
String[] cacheservers = new String[]{"cacheserver0.company.com", "cacheserver1.company.com", "cacheserver2.company.com", "cacheserver3.company.com", "cacheserver4.company.com", "cacheserver5.company.com"};
Object key = "123231";
int hash = Math.abs(key.hashCode());
int cacheserverIndex = hash % cacheservers.length;
String cacheserver =cacheservers[cacheserverIndex];
冗長化をサポートするため、ロードバランサが導入され、各ノードは2つのehcacheサーバのインスタンスを実行する。既存の分散キャッシュオプション (RMIやJGroups)を使って可能になったインスタンスの複製を利用するのだ。このアプローチでは、クライアントは、まだハッシュコードを使ってサーバを決定している。しかし、今、エラーは、ロードパランサによって割り当てられた仮想IPの後ろでユーザに気付かれずに扱われる。
Gregが説明した3番目のオプションは、ロードバランサへルーティングの要求の責任を移すことに関係する。
EhCache ServerのRESTful版は、Jersey - JSR 311 リファレンスの実装 - に基づく。Jerseyの開発者の一人、Paul Sandoz氏が、サンプルのXMLドキュメントを作成して取り出すため、jerseyのクライアントAPIがキャッシュにアクセスするのにどのように使われたかを議論した(リンク)。
// retrieving a node
Node n = r.accept("application/xml").get(DOMSource.class).getNode();
// creating a node
String xmlDocument = "...";
Client c = Client.create();
WebResource r = c.resource(http://localhost:8080/ehcache/rest/sampleCache2/2);
r.type("application/xml").put(xmlDocument);
それでは、RESTfulのキャッシュはどんなシナリオで役に立つのか?James Webster氏が、大企業でこのアーキテクチャスタイルの導入の増加が見られることを報告している(リンク)。
HTTP.私が見た2、3の投資銀行が実装するアーキテクチャパターンは、分散メモリキャッシュです。それは、市場データ (例えば、株価、金利カーブ、乱高下が現れたり関係したりするような派生価値) や静的データ (例えば、取引先企業の詳細や決済の不履行) にアクセスを提供するために、HTTP越しにRESTfulなフロントエンドを経由してアクセスされます。分散キャッシュは、膨大なデータセットを保持するために「簡単に」調整することができる。そして、クライアントがHTTPを介してさえいれば、フロントエンドで技術にこだわらないやり方でデータにアクセスできる。
James氏が指摘する通り、商業ベンダ (OracleやGigaspaces) が製品の中でRESTfulなインターフェースをサポートするのにどれくらい時間がかかるのか見るのは興味深いだろう。
原文はこちらです:http://www.infoq.com/news/2008/08/restful-ehcache
InfoQ Japanはコンポーネントスクエアが運営しています
UTI 不合格なら再受験無料!秋のチャレンジキャンペーン実施中
【無償】「Google Apps 企業向けソリューションセミナー」のご案内
筆者はアジャイルソフトウェア開発についての年に一度の国際会議であるAgile2008に初めて参加してきました。今年の日本からの参加者の数は14名にも及び、発表者は5名、受け持ったセッションは8つに及び、例年にない活躍を見せました。なぜ今年のAgile2008では、これほど多くの日本人が参加し発表に至ったのか? そのレポートをお届けします。
エスエムジーでは、Java全般を対象にしたトラブルシューティングサービス「JaTS」を提供しています。この記事では、前回に引き続き、JaTSにて蓄積したトラブル事例とその解決ノウハウの一部をお送りしている「Javaトラブルシューティングメールマガジン」(JTSMM)の総集編として、過去2ヶ月のトラブル事例と追加情報をダイジェストとして提供いたします。
この記事では、モデル駆動アプローチがうまく機能しない、または機能しなくなることによって期待した結果が実現できなくなる 8 つの理由について書きたいと思います。
InfoQ.com向けのこのバーチャルパネルでは、大企業やプロジェクトからスケーラビリティやパフォーマンスの著名人を招待し、みんなが夢に描いているような結果を達成するための秘密を明かしてもらいました。
Craig Larman氏とBas Vodde氏は、どのように、そして、なぜ機能チームがうまくいくのかを説明し、この主要な組織の変化が価値あるものであることを主張します。
最近リリースされたRuby 1.8.7のプレビューリリースをウオッチしていたRails開発者はすぐに1.8.7プレビュー1に関してあることに気がつきました。それは、1.8.7プレビュー1がRailsを破壊してしまうということです。
No comments
返信