BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する
現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。
- Java,
作者 Jon Rose, 翻訳者 佐野 徹郎 投稿日 2008年1月7日 午後6時5分
先日、AdobeがAMFの仕様やコードを含むLiveCycle Data Servicesの大部分を、BlazeDSプロジェクトとしてオープンソース化すると発表(サイト・英語)したことで、Adobe Flexプラットフォームは大きく変化した。この変化はFlexプラットフォームの採用を検討している人々から、最終的なコストやライセンシングの障壁を取り除くだろう。1. ファイルサイズ - AMFのオブジェクトはzlibを利用してとても小さく圧縮される。AdobeがAMFとBlazeDSのオープンソース化を発表する前から、開発者がAMFプロトコルを利用するために、コミュニティによってリバースエンジニアリングされた、いくつかのオープンソースの選択肢があった。オープンソースプロジェクトにはRubyAMF(source)、AMFPHP(source)、SabreAMF(source)、OpenAMF(source)、およびGranite Data Services(GraniteDS)(サイト・英語)がある。公開されたAMFの仕様は、これらの実装を改善するのに役立つだろう。RubyやPHPのプロジェクトはいまだに、JavaアプリケーションのためのBlazeDSのように、リモーティングとメッセージングの技術を利用するアプリケーションでAMFを利用するための第一の選択肢だ。
2. 高速なシリアライズとデシリアライズ - AMFはFlash Player内のネイティブなCのコードを利用してとても高速に変換される。AMFフォーマットは、解釈や解析による遅延をなくし、オブジェクトの生成を単一のパス上で行うことで、少ないメモリや低速なCPUの下でも、高速にシリアライズとデシリアライズできるように設計されている。
3. ネイティブな型とカスタムクラスのサポート - ディスプレイオブジェクトを除く、Flash Player内のあらゆるオブジェクトをシリアライズできる。またデシリアライズのためのカスタムクラスをFlash Playerに提供して、シリアライズされたオブジェクトをカスタムクラスのインスタンスに戻すこともできる。
やあ。その後、Wolff氏はGraniteDSの将来(source)について、すこし考えを変えた。オープンソース事業の手本として、彼はBlazeDSプロジェクトに多くの機能を寄贈できる、あるいはGrainteDSプロジェクトを独立して継続できると信じている。
ええと...これは大きなニュースです(たとえ私がすこし奇妙に感じるとしても)!
GDSにできる唯一のことは、BlazeDSに欠けている機能のために、いくつかのコード(私が主に考えているのは、透過的な外部化(externalization)、レイジーローディングのサポート、コードの生成)を提供することです。
今のところ、私はさらなるGDSの開発を中止しようと考えています...(この件についての)コメントを歓迎します。
それでは。
Franck.
やあ、みんな(私に新しい考えがあります)。GraniteDSには、FlexアプリケーションとJavaを統合するのに有利な、いくつかの興味深い機能がある。加えて、BlazeDSは単にAMFの仕様を実装するだけでなく、GraniteDSに欠けているプッシュやメッセージングの機能を提供する。実装はどうあれ、Flex開発者がAdobeのFlexプラットフォームから、よりメリットのあるオープンソースに移行するのは明らかだ。
ありがとう。
- ちょっとした歴史。: GDSを作成したのは、FDSがとても高価であったのと、さらに重要なのは、よく知られた永続化のためのAPI(EJB3/Hibernate)と統合されておらず、レイジーローディングの仕組みも提供されていなかったからです。なので私は最初から、シリアライズおよび、関連するビーンのすべてのフィールド(id、version、など)を永続化する「透過的な外部化」の機能(特にHibernateExternalizer)を作成しました。それから、gas3(GDSコードジェネレータ)は、手作業でExternalizableインタフェースを実装したAS3ビーンを書くという、退屈な作業を避けるために設計されました。
- どうBlazeDSをGDSと比較するか。: 意外にも、厳密なリモーティングの観点からは、BlazeDSはGDSが常に望むとおりに正確です。リモートオブジェクトによる古典的なAMF3リモーティングと、AMF3オブジェクトによる新しいCometベースのチャネルは、(RTMP上ではなく)HTTP上のプロデューサとコンシューマの間で変換されます。その一方で、永続化の観点からは、BlazeDSはいかなるデータ管理の機能も含まないので、GDSはレイジーローディングによるEJB3の永続化のように、とても重要な欠けた機能を提供します。
- ちょっとした戦略。: BlazeDSの最初のリリース(ソース付きのLGPL3)は、2008年の初め(正確なスケジュールではありませんが...)に発表されます。私たちにとって最善の戦略は、可能な限り早く(1月末より前に)GDS 1.0をリリースして、BlazeDSのソースが公開されるのを待つことです。そうすれば私たちは、BlazeDSのいくつかの良いコードを(同様にライセンスも!)GDSにコピー&ペーストするか、外部化とレイジーローディングとgas3の機能を(AdobeがOKすれば)BlazeDSに寄贈するか、あるいはGDSを(実現可能か分かりませんが)BlazeDSのプラグインみたいなかんじでリリースするかを選択できるでしょう。(この件についての)コメントを(とても)歓迎します。
Franck.
現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。
ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。
Google Chartは、チャートを作成するためのWebサービスです。本稿では、Google Chartのインターフェースと、Rubyコードから簡単にチャートを生成することができるgchartrbライブラリの説明をします。
全二回からなるこの記事では、ダイナミックビジネスアプリケーション(Dynamic Business Applications:DBAs)の開発についての全体的な眺望を、アーキテクチャと方法論の観点から見ていくことになります。我々のゴールは、「ビジネスの変化や、その他に必要とされる変更に対して、いかにして容易に適応できるアプリケーションを構築していくか」を導きだすことです。
本稿では、Adrien Louis氏がESBベースのSOAに対する2つの接続形態についての賛否について説明しています。その2つとは、会社での単一のESB対「部門毎」に相互接続するESBによるシステムです。
誕生から2年を経てCometは「何が出来るのか」という議論から、「いかに実現するか」という議論に関心が移ってきたように見えます。そこで本稿では同じくJavaOneで数多く取り上げられたNetBeans 6.1とGlassFish v3を使いながら、サンプルを交えてCometを解説していく事にします。
この記事では、WSS3とMOSS 2007に難しい設定など一切せず、すぐに利用可能なWebサービスと、Javaと.NETからそのWebサービスを消費する方法に目を向けます。
この記事の始まりは、知的で思慮深い人たちの魅力的なグループが食事会を終えて話をしているところです。話はレトロスペクティブ(振り返り)プロセスの要であるプライムディレクティブ(最初の指示)に及んでいます。
No comments
返信