GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Masoud Kalali , 翻訳者 佐野 徹郎 投稿日 2008年6月2日
Mule 2.0のリリース告知(source)からおよそ2週間後、「軽量で非常にスケーラブルなESB」、Mule(source)の創設者であるRoss Masonは、JBI(Java Business Integration)(source)とMuleのアーキテクチャを、どのように比較するかについて論じた(source)。
Rossは、JBIを実装する代わりに、彼自身のアーキテクチャに取り組ませた、JBI 1.0仕様に不足している、いくつかの点について述べた。彼が懸念する点の中で、もっとも注目すべき項目は、とてもXMLに依存すること、JBIアーキテクチャ(バインディングコンポーネント、サービスエンジン)の再利用性の欠如、重厚なAPIのセットだ。
Ross Mason(source)は、JBIの広範なスコープが、JBIアーキテクチャの再利用性を低減する、理由の一つだと考えている。:
それらの性質によってベンダーは、競争のために彼ら自身を差別化する必要があります。JBIはすべてがどのように動作すべきかを定義しようとするので、ベンダーは彼らのサービスコンテナを差別化するために、仕様を超えた機能や次善策を組み込む必要があります。これは再利用のストーリーを壊すので、もし私が一つのコンテナでJBIバインディングコンポーネントを利用しても、それが別のコンテナで同じ方法で動作することを意味しません。
JBIコミュニティ内部の各ベンダーは、ベンダーがいつもやるように、その他の競争相手から彼らの製品を差別化しようとするが、パフォーマンス、信頼性および業界全体の標準サポートのレベルについては、より良いアーティファクトを実装しようとするだろう。JBI 1.0は、統合要求に対する答えを提供しようとする最初の試みで、確かに、JBI 2.0(source)で取り組まれると考えられていた、いくつかの欠点がある。
Rossはまた、JBIの重厚なAPIと、JBIアーティファクトを開発するために開発者が持っていなければならない、JBI仕様に関する必要以上の知識について、懸念を述べた。
あなたはサービスを実装するために、とても重厚なAPIを実装しなければなりません。ssary. これはあなたのサービスを書くために、JBIに関して必要以上に理解しなければならないという意味です。Muleはサービスが、POJO、EJBセッションビーンあるいは別のコンポーネントへのプロキシなど、どんなオブジェクトでもよいと常に信じてきました…
Accenture(サイト・英語)のシニアコンサルタントであるJames Lorenzen(source)は、JBIの重厚なAPIに関するRossの見解に対して、以下のように答えた。:
私は、JBIユーザがJBIについて必要以上に知らなければならないという意見には賛成できません。しかしながら、私もまたコンポーネント開発者なので、その個人を演じるのは難しいでしょう…
そして、
さらに私は、仕様を一気に飛ばして、どのようにJBIを利用できるかのデモンストレーションを行いますが、それでも、非JBIユーザに、JBIについて教えるのに苦労したことはありません。
Rossのブログの投稿で、もう一つの重要な点は、NMR(Normalized Message Router)(サイト・英語):
XMLメッセージはデータをあちこち移動するために利用されるでしょう。これはいくつかのシステムについては真実ですが、それらを構築するときにXMLが存在しなかった、ほとんどのレガシーシステムでは、COBOLコピーブック、CSV、バイナリレコード、カスタムフラットファイルなど、さまざまなメッセージタイプを利用します。
James Lorenzenは、このXML中心の性質による、NMRのメリットについて説明する。
すべてはNMRを通るためにXMLにコンバートされるので、そのために必要な変換はXMLだけです。あなたの話は真実ですが、それはJBIユーザにとって問題ではないと思います。逆に、もしNMRがその他のメッセージタイプを許可したなら、さらなる変換機能が必要になるでしょう。しかし私は、JBIにおける変換機能は、バインディングコンポーネントだと思います。
バインディングコンポーネントは、別のコンポーネントによってNMRにインジェクションされた情報を、それぞれのバインディングコンポーネントに送ることができるようにするため、よく知られていて、よく記述された形式で、NMRと簡単に相互作用できなければならない。そうでなければ、バインディングコンポーネントの間のコミュニケーションを持続させるのは、とても複雑になるだろう。
Ross Masonは、オープンソースに勝利をもたらす問題空間に対するベンダー視点について、彼の関心を述べた。
この世界の「ベンダー視点」は、オープンソースがうまくやってこれた主な理由の一つです。伝統的にオープンソースは、取り組まれる問題により近い開発者によって書かれてきました。それらの開発者はドメインの知識、経験、より良くするのに必要な何かを利用して、問題を解決するより良い方法を提供することができます。これはMuleとプロジェクトの成功における最終的なゴールで、そのゴールは(私たちの続けていることが)常に改善できるという警告によって実現されると信じています。
各ベンダーが実装する新しい標準を開発するため、仕様の策定に参加する異なるベンダーのコミュニティリーダーによって、仕様は開発されると主張する人がいるかもしれない。通常この「専門家グループ」を形成するグループは、開発者コミュニティから来るので、問題のドメインに取り組むJSRと非標準のオープンソース製品の間に、深い相違があってはならない。
Ross MasonとJames Lorenzenのどちらも、NMRやJBIアーティファクトの間でストリーミングコンテンツを扱うにはJBI仕様は不足しており、特にNMRに入るものはなんでもXMLにコンバートされるので、リソースを消費する処理になるだろうと主張する。
原文はこちらです:
【豆蔵】大好評のため、Jenkins講座を追加開催致します!Jenkins作者の川口氏が講師です。
【豆蔵】「オブジェクト指向を現場で活かすリファクタリング入門」新規講座キャンペーン中
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信