OSGi
ソースコードの分かりやすさは、「単一責務の原則」と「関心毎の分離」により適切に構造を分割した、バランスのいいところにあると前のエントリに書いた。では、そこにモジュラリティが加わるとどうなるだろうか。モジュラリティとは、システムを幾つかのモ…
GW中にOSGiのチュートリアルというか、最初の一歩を書き始めました。 http://kompiro.org/osgi/ そのうち、もう少し踏み込んだ概略を書くつもりです。
QConTokyo 2010に登壇させていただきました。InfoQの翻訳業をする傍ら、このネタがQConにないのはもったいない、と直談判してお話させていただいたのが真相なので、他のスピーカーとは毛色が違います。でなければ、自分が登壇できるはずもないイベントですか…
先日翻訳した、Jeff氏のインタビューの中では、モジュール化によるコラボレーションについて軽く触れられています。広い意味でとらえれば、SOAなど、分散システムも大きなモジュールと言うこともできるでしょう。しかし、OSGiのように、一つの環境の中に閉じ…
少し前になりますが、EquinoxのプロジェクトリーダのJeff McAffer氏にJames Sugrue氏がインタビューした記事が、DZoneに上がってました。で、内容があまりに面白かったので、こそっと翻訳しました。DIを考慮したプログラミングモデルがbundle開発にとてもマ…
ゆうすけさんから聞いた、モジュール指向開発の「再利用の二つの軸」が素晴らしかったのでまとめます。ただ、ブログに書いている時点で、自分がモジュール指向開発を進めている経験もあって、その考えも練り込まれてしまっているので、その辺りはご了承を。…
GroovyのBundleを見て驚いたのが、MANIFEST.MFに DynamicImport-Package: *と書かれていたこと。これを見て頭がクラクラした。 何が問題? こう書かれてしまうと、OSGi実行環境上で動いているBundleがExport-Packageで宣言しているパッケージのクラスに全てア…
Eclipseベースのツールを開発し始めてから3年近く立ちました。1年半くらい前に、SeasarプロジェクトでOSGiサポートをしないのはなぜだろうと、はてダに書いたところ、OSGiはプラットフォームを構成するにはとてもよい仕様だけれど、Webアプリケーションには…
OSGiのサービス連携にはいくつかの方法がありますが、今日はDeclarative Service(通称DS)を見ていきます。 Declarative Serviceとは Declarative Serviceとは、端的にいうと、そのBundleが提供するサービス/利用するサービスをXMLに記述するBundle間のサービ…
HTTP Serviceが立ち上がった事を確認した後は、Web Consoleを入れてみましょう。下記の二つのBundleを、pax-import-bundleを使って追加してみてくだし。 <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.osgi.compendium</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.…</artifactid></dependency>
今度はPax Constructを使ってFelix Web Consoleを起動するところまでやってみた。Felix Web Consoleについて触れると、稼働中のOSGiコンテナの状況をブラウザを使ってみることができます。 例えばServiceの稼働状況、参照関係、とかもみられます。Felixを起…
Pax Constructの次はPax Exam、ということで試してみました。今回はを参照しながらやってみました。 Pax Examの目的 Pax ExamはOSGi環境における試験用の環境を構築してくれるものです。*1例えばPax Examを用いてベースとなるOSGiコンテナを切り替えてもBund…
Pax ConstructはOSGi bundleの作成や、ビルド等々を助けてくれるスイスアーミーナイフと紹介されています。これからOSGi Bundleを作成するのに便利そうですね!ということで、試してみました。Pax系のツールはMaven2と組み合わせる事で有効にプロジェクトの…
今月初め、OSGi勉強会を東京でやるよー。と英語でつぶやいてみたところ、Neil Bartlettさんから、年末に日本に行くから、トークする場所ないかい?という返信をいただき、準備期間が3週間ない中、開催しました。Neilさん、奥様の里帰りで日本に来られた、と…
もう一本告知です。明日OSGiの勉強会をやります。たぶんOSGiって何がうれしいの、とか、何ができんの?それ。とか、こんなことできるん?とか、ざっくばらんに語る会になりそうです。Spring DMの話もあれば、Eclipse RCPやらEquinoxやらの話になりそう。人数…
今回のテーマは「クラウド」という事でしたが、空気を読まずに熊沢先生の「Modularityを考える - 複雑系のアーキテクチャ」への自分の考えを発表してきました。多分に電波を含んでいたので、質問されるとしどろもどろになっていましたが、今回伝えたかった「…
今年最後(と言われている)Spring勉強会で話をします。テーマはクラウドでしたが、8月の勉強会で熊澤さんが講演してくれた「Modularityを考える - 複雑系のアーキテクチャ」を聞いて、なぜソフトウェアにModularityが必要なのか、もんもんとしていたものをは…
JavaOne2008で取り上げられたようですね。といってもモジュールリポジトリの話で、JAM、OSGiバンドルそれぞれのモジュールリポジトリがJDKに組み込まれるということのようです。少し前からJava Module Systemとモジュールリポジトリがシステム的に分離し、JA…
koichik氏からまたまたコメントをいただきました。ありがとうございます。改めて考えてみるとDIコンテナとOSGiコンテナは違ったレイヤの話だと気づきました。個人的にはOSGiを使うということはパラダイムシフトを起こせるくらいアプリケーション開発に影響を…
koichik氏からコメントを頂きました。Seasarはほんとにまったく使ったことがSeasarがOSGiをサポートするとどんな人がどううれしいか語れとの事なんで、語ってみます。S2Containerはほとんど使ったことがないため、「違うよ」ってツッコミポイントは多々ある…
えーっと、自分の気の抜けている間にOSGi関連で結構でかい動きがありましたね。JSR277にも乗っかりそうな雰囲気でてきわ、SpringSource Application PlatformにはEquinoxだわってな感じでだんだんと勢いがついてきたきがしますなー。4月になってOSGi関連のエ…
Service Mix KernelはApacheで開発されているOSGiコンテナらしいです。OverViewを見ただけだとFelixとどう違うのかわかりませんでした。内部ではFelixを使ってますし。 ServiceMixはオープンソースのESBとして開発されてきましたが、次バージョンの4でOSGiコ…
PlanetEclipse経由で知ったんですが、GMFを使ってOSGiのBundleの依存関係を可視化するツールができたんですね。ちょっと試せていませんので操作性とかは判りません。みてみた感じ、あるBundleをOSGiの実行環境にインストールして、startすると出力されるファ…
GlassFish v3もOSGi上で動くようになるらしいですね。 http://blogs.sun.com/dochez/entry/glassfish_v3_runs_on_osgiApache FelixやKnopflerFishが出ているのにEquinoxが出てこないのがさすがとは思うんですが、Javaで作られたAPサーバーにOSGiが組み込まれ…
僕自身がただいまウィルスにやられているようです。3回お休みケテーイなので軽くメモを残しておこう。 Platform.isRunnable() BundleClassNameIterator 以上。
相変わらず体調はよろしくないので、軽めに。(でもタイトルは結構重い気が…。)OSGiって何がうれしいか考えてみてるんですが、一つはその場にインストールされている「サービス」をトラッキングできることがうれしいんじゃないかと。ということで、こんな状況…
DZoneでもOSGiZoneが新たに開設されました。昨年末にOSGiのpresentationがJavaPoli2007というところで行われましたが、それがきっかけで開設されました。http://osgi.dzone.com/ただいまOSGiZoneのリーダーは暫定でSebastien Arbogastさんがなっていますが、…
全世界のEclipseプラグイン開発者が待ちに待っていたであろうプラグインがついに公開されました。というか、正直今までPDEに含まれていなかったのが不思議。 プラグイン開発をしていると、時たまプラグイン同士の依存性に悩まされることがあります。なんか良…
以前JSUGの勉強会で話させていただいたSpring Dynamic Modulesが正式版としてリリースされました。1.0リリース前に触ったときの資料ですが、貼っときます。 | View | Upload your ownただねー。リリース前のものだったから仕方がないのかも分かりませんが、…
http://buglabs.net/products ごめ。超期待。このBUGっていうものはハードウェアモジュールを追加したり削除できるもんです。ユーザーは何でもプログラミングできるハードウェアだとうたってます。製品を最終的に組上げるのはユーザーだと。もう大好きです。…