レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

OSGi for Beginners翻訳(2)

前回(http://d.hatena.ne.jp/iad_otomamay/20080513/p1)の続き。

Getting Started with OSGi(OSGiをはじめよう)


Basically, running OSGi is very simple, and fundamentally uninteresting: one grabs one of the OSGi container implementations (Equinox, Felix, Knopflerfish, and ProSyst, among others) and executes the container's boot process, much like one runs a Java EE server. Like Java EE, each container has a different startup environment and slightly different capabilities; check your container of choice for details and options. For the sake of clarity, we'll use Equinox in this article.

基本的に、OSGiを実行することや、基本を理解することはとても簡単です。

そのためには、OSGiコンテナの実装の1つ
(Equinox, Felix, Knopflerfish, そして、ProSystといったものは特に)

を選んで、コンテナの起動プロセスを実行します。

JavaEEのサーバーを実行するのとよく似ています。

それぞれのコンテナは、異なる起動環境となっています。

また、わずかに能力も異なりますので

選択したコンテナの詳細やオプションはチェックしておいてください。

分りやすさのために、ここの記事ではEquinoxを使うことにします。



Equinox is an OSGi container, of course, and it can be downloaded from http://download.eclipse.org/eclipse/equinox/. The downloaded bundle is a ZIP file that extracts into a directory called "eclipse," which shouldn't be surprising: Equinox is the OSGi container Eclipse uses internally. (I'll refer to this directory - "/eclipse," the top-level directory contained in the Equinox distribution - as $EQUINOX.) As documented on the Equinox Quickstart page , looking in $EQUINOX/plugins shows a pretty large collection of jars:

Equinoxは、Eclipseが内部で使用しているOSGiコンテナです。

("/eclipse"というディレクトを、Equinoxディストリビューションが含まれる

 トップレベディレクトリとして$EQUINOXとして参照します )

Equinoxのクイックスタートページを参照し、

「$EQUINOX/plugins」を見ると、とてもたくさんのJarがあります。:

実行結果

/opt/tools/eclipse/plugins> ls
javax.servlet.jsp_2.0.0.v200706191603.jar                    org.eclipse.equinox.jsp.jasper_1.0.1.R33x_v20070816.jar
javax.servlet_2.4.0.v200706111738.jar                        org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar
org.apache.commons.el_1.0.0.v200706111724.jar                org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar
org.apache.commons.logging_1.0.4.v200706111724.jar           org.eclipse.equinox.log_1.0.100.v20070226.jar
org.apache.jasper_5.5.17.v200706111724.jar                   org.eclipse.equinox.metatype_1.0.0.v20070226.jar
org.eclipse.equinox.app_1.0.1.R33x_v20070828.jar             org.eclipse.equinox.preferences_3.2.100.v20070522.jar
org.eclipse.equinox.common_3.3.0.v20070426.jar               org.eclipse.equinox.preferences_3.2.101.R33x_v20080117.jar
org.eclipse.equinox.device_1.0.0.v20070226.jar               org.eclipse.equinox.registry_3.3.1.R33x_v20070802.jar
org.eclipse.equinox.event_1.0.100.v20070516.jar              org.eclipse.equinox.servletbridge_1.0.1.R33x_v20070816.jar
org.eclipse.equinox.http.jetty_1.0.1.R33x_v20070816.jar      org.eclipse.equinox.source_3.3.1.R33x_r20070918-7n7LECgEKVsLIM1aGBO4b00
org.eclipse.equinox.http.registry_1.0.0.v20070608.jar        org.eclipse.equinox.source_3.3.1.R33x_r20070918-7n7LEClEIdwb-bbP_z--EYAO
org.eclipse.equinox.http.registry_1.0.1.R33x_v20071231.jar   org.eclipse.equinox.useradmin_1.0.0.v20070226.jar
org.eclipse.equinox.http.servlet_1.0.1.R33x_v20070816.jar    org.eclipse.osgi.services_3.1.200.v20070605.jar
org.eclipse.equinox.http.servletbridge_1.0.0.v20070523.jar   org.eclipse.osgi.util_3.1.200.v20070605.jar
org.eclipse.equinox.http_1.0.100.v20070423.jar               org.eclipse.osgi_3.3.1.R33x_v20070828.jar
org.eclipse.equinox.http_1.0.101.R33x_v20071016.jar          org.eclipse.osgi_3.3.2.R33x_v20080105.jar
org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20070607.jar  org.mortbay.jetty_5.1.11.v200706111724.jar


Starting Equinox is simple: in this directory, execute java -jar org.eclipse.osgi_3.3.2.R33x_v20080105.jar -console (in a console window), and you'll soon see a prompt:


Equinoxを実行するのは簡単です、コンソールでこのディレクトリを指定し、

java -jar org.eclipse.osgi_3.3.2.R33x_v20080105.jar

を実行します。すると以下のようなプロンプトがすぐに現れます。


プロンプト

osgi> 


This is the OSGi console for Equinox. From it, you can install new bundles, start them, stop them, uninstall them, check their dependencies, check registered services, or any number of other things. The first command you should probably try is "ss," for "short status." For a new installation, the interaction looks like this:


これはEquinoxのためのOSGiコンソールです。

そこから、新しいバンドルをインストールすることや、

起動、停止、アンインストール、依存性のチェック、登録されたサービスの確認、

などかなり多数のことができます。

初めのコマンドとしてやってみるべきなのはたぶん、

"short status"(短いステータス)と言う意味の"ss"コマンドがいいでしょう。

初期状態では、以下のように応答します。

osgi> ss
Framework is launched.

id      State       Bundle
0       ACTIVE      org.eclipse.osgi_3.3.2.R33x_v20080105

osgi>


This shows that the container is running, with a single bundle installed. This bundle has an id of "0," which is going to be pretty relevant, because you use that id to control the bundle's lifecycle.

この結果は、コンテナが1つのバンドルを

インストールして実行していることを表しています。

このバンドルはとても意味のある"0,"というIDをもっています。

なぜなら、そのIDはバンドルのライフサイクルを

コントロールするために使うからです。



So what's a bundle good for? Well, a bundle provides a lifecycle and exported services, as our friendly twenty-seven second summary mentioned.

それでは、バンドルはどのような効果があるのでしょうか?

それは、親切な27秒の概要説明でのべたとおり、

バンドルは、ライフサイクルと取り外されたサービスを提供します。