(57)【要約】【課題】マニフェストファイルを自動生成し、モジュール作成を自動化することで工程の削減を図ると共に、開発者のミスの誘発を防止することができるOSGiバンドル及びデプロイメントパッケージ自動作成システムを提供する。【解決手段】FW１６を起動する制御装置１１を備えたコンピュータで構成されるOSGiバンドル及びデプロイメントパッケージ自動作成システムであって、モジュールとして固めるディレクトリが指定されると、モジュールがデプロイメントパッケージでない場合は、バンドル用のマニフェストファイルを作成する手段と、デプロイメントパッケージである場合は、ディレクトリ内に既成バンドルが存在すれば既成バンドルを解凍し、デプロイメントパッケージ用のマニフェストファイルを作成する手段と、作成されたマニフェストファイルに不備がない場合、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する手段とを備える。【選択図】図１
2012093979.tif 000002
【特許請求の範囲】
【請求項１】
フレームワークを起動する制御装置を備えたコンピュータで構成されるOSGiバンドル及びデプロイメントパッケージ自動作成システムであって、
前記コンピュータは、前記フレームワークが起動され、モジュールとして固めるディレクトリが指定されると、作成するモジュールがデプロイメントパッケージであるかどうかを判断する手段と、
デプロイメントパッケージでない場合は、バンドル用のマニフェストファイルを作成する手段と、
デプロイメントパッケージである場合は、その指定したディレクトリ内に既成バンドルが存在するかどうかを判断する手段と、
既成バンドルが存在する場合は、その既成バンドルを解凍し、解凍したバンドルのマニフェストファイルとその他の全てのデータからデプロイメントパッケージ用のマニフェストファイルを作成する手段と、
既成バンドルが存在しない場合、デプロイメントパッケージ用のマニフェストファイルを作成する手段と、
開発者が、作成されたマニフェストファイルでモジュールを作成するのに不備がないかどうかを判断する手段と、
不備がない場合、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する手段とを備えることを特徴とするOSGiバンドル及びデプロイメントパッケージ自動作成システム。
【請求項２】
前記コンピュータは、作成されたマニフェストファイルでモジュールを作成するのに不備がある場合、不備が修正されると、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する手段を備えることを特徴とする請求項１記載のOSGiバンドル及びデプロイメントパッケージ自動作成システム。
【請求項３】
フレームワークを起動する制御装置を備えたコンピュータを用いたOSGiバンドル及びデプロイメントパッケージ自動作成方法であって、
前記コンピュータは、モジュールとして固めるディレクトリが指定されると、作成するモジュールがデプロイメントパッケージであるかどうかを判断するステップと、
デプロイメントパッケージでない場合は、バンドル用のマニフェストファイルを作成するステップと、
デプロイメントパッケージである場合は、その指定したディレクトリ内に既成バンドルが存在するかどうかを判断するステップと、
既成バンドルが存在する場合は、その既成バンドルを解凍し、解凍したバンドルのマニフェストファイルとその他の全てのデータからデプロイメントパッケージ用のマニフェストファイルを作成するステップと、
既成バンドルが存在しない場合、デプロイメントパッケージ用のマニフェストファイルを作成するステップと、
開発者が、作成されたマニフェストファイルでモジュールを作成するのに不備がないかどうかを判断するステップと、
不備がない場合、全てのデータをコンパイルし、ビルドすることによりモジュールを作成するステップとを実行することを特徴とするOSGiバンドル及びデプロイメントパッケージ自動作成方法。
【請求項４】
前記コンピュータは、作成されたマニフェストファイルでモジュールを作成するのに不備がある場合、不備が修正されると、全てのデータをコンパイルし、ビルドすることによりモジュールを作成するステップを実行することを特徴とする請求項３記載のOSGiバンドル及びデプロイメントパッケージ自動作成方法。
【請求項５】
フレームワークを起動する制御装置を備えたコンピュータにインストールされるOSGiバンドル及びデプロイメントパッケージ自動作成ツールであって、
前記OSGiバンドル及びデプロイメントパッケージ自動作成ツールは、前記フレームワークにインストールされて起動され、モジュールとして固めるディレクトリが指定されると、作成するモジュールがデプロイメントパッケージであるかどうかを判断する機能と、
デプロイメントパッケージでない場合は、バンドル用のマニフェストファイルを作成する機能と、
デプロイメントパッケージである場合は、その指定したディレクトリ内に既成バンドルが存在するかどうかを判断する機能と、
既成バンドルが存在する場合は、その既成バンドルを解凍し、解凍したバンドルのマニフェストファイルとその他の全てのデータからデプロイメントパッケージ用のマニフェストファイルを作成する機能と、
既成バンドルが存在しない場合、デプロイメントパッケージ用のマニフェストファイルを作成する機能と、
開発者が、作成されたマニフェストファイルでモジュールを作成するのに不備がないかどうかを判断する機能と、
不備がない場合、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する機能とを備えることを特徴とするOSGiバンドル及びデプロイメントパッケージ自動作成ツール。
【請求項６】
前記OSGiバンドル及びデプロイメントパッケージ自動作成ツールは、作成されたマニフェストファイルでモジュールを作成するのに不備がある場合、不備が修正されると、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する機能を備えることを特徴とする請求項５記載のOSGiバンドル及びデプロイメントパッケージ自動作成ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、OSGi(Open Services Gateway initiative)バンドル及びデプロイメントパッケージというソフトウェアコンポーネントの開発時の工程を削減することができるOSGiバンドル及びデプロイメントパッケージ自動作成システム、自動作成方法及び自動作成ツールに関する。
【背景技術】
【０００２】
IT技術の発展に伴い、開発者の技術水準も高くなり、その中で、遠隔管理が可能となったJava（登録商標）ベースのサービスプラットフォームが出現した。そこで使用されるのは、バンドル及びデプロイメントパッケージ(以下、モジュールとする)というソフトウェアコンポーネントであり、モジュールは、OSGiフレームワーク(以下FWとする)上でリブートすることなく、インストール・起動・停止・アンインストールが出来る。それ故に、その操作の容易性、様々な分野への適用性などが注目されている。モジュールの特徴は、ただ複数のクラスファイルとリソースファイルをアーカイブとしてまとめるだけでなく、マニフェストファイルにOSGiの仕様特有の属性を加える点である。
モジュールのようなソフトウェアコンポーネントを開発するにあたっての、従来の技術としては、オペレーティングシステム機能をそのパッケージ中へとマッピングし、実行可能コードが、再配置の目的のために処理されるものがある(例えば、下記特許文献１参照)。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2005-182790号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、モジュールも開発者が作成するものであり、その作成時にはマニフェストファイルと呼ばれるメタデータの作成が必要である。そのマニフェストファイルの作成工程で、しばしばミスが起こり、作業の手戻りによる遅延が引き起こされている。
これは、作業の見直しを他の開発者とともにチェックするという方法で解決することも出来るが、それだと作業工程の増加が引き起こされるだけである。
【０００５】
以上の現状に鑑み、本発明は、モジュール作成時に必要とされるマニフェストファイルを自動生成し、モジュール作成を自動化することで工程の削減を図ると共に、デプロイメントパッケージをクラスファイルの状態から作り出すことも可能にし、これにより、さらなる開発者のミスの誘発を防止することができるOSGiバンドル及びデプロイメントパッケージ自動作成システム、自動作成方法及び自動作成ツールを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は以下の構成を提供する。
請求項１に係る発明は、フレームワークを起動する制御装置を備えたコンピュータで構成されるOSGiバンドル及びデプロイメントパッケージ自動作成システムであって、
前記コンピュータは、前記フレームワークが起動され、モジュールとして固めるディレクトリが指定されると、作成するモジュールがデプロイメントパッケージであるかどうかを判断する手段と、
デプロイメントパッケージでない場合は、バンドル用のマニフェストファイルを作成する手段と、
デプロイメントパッケージである場合は、その指定したディレクトリ内に既成バンドルが存在するかどうかを判断する手段と、
既成バンドルが存在する場合は、その既成バンドルを解凍し、解凍したバンドルのマニフェストファイルとその他の全てのデータからデプロイメントパッケージ用のマニフェストファイルを作成する手段と、
既成バンドルが存在しない場合、デプロイメントパッケージ用のマニフェストファイルを作成する手段と、
開発者が、作成されたマニフェストファイルでモジュールを作成するのに不備がないかどうかを判断する手段と、
不備がない場合、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する手段とを備えることを特徴とするOSGiバンドル及びデプロイメントパッケージ自動作成システムを提供するものである。
【０００７】
請求項２に係る発明は、前記コンピュータは、作成されたマニフェストファイルでモジュールを作成するのに不備がある場合、不備が修正されると、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する手段を備えることを特徴とする請求項１記載のOSGiバンドル及びデプロイメントパッケージ自動作成システムを提供するものである。
【０００８】
請求項３に係る発明は、フレームワークを起動する制御装置を備えたコンピュータを用いたOSGiバンドル及びデプロイメントパッケージ自動作成方法であって、
前記コンピュータは、モジュールとして固めるディレクトリが指定されると、作成するモジュールがデプロイメントパッケージであるかどうかを判断するステップと、
デプロイメントパッケージでない場合は、バンドル用のマニフェストファイルを作成するステップと、
デプロイメントパッケージである場合は、その指定したディレクトリ内に既成バンドルが存在するかどうかを判断するステップと、
既成バンドルが存在する場合は、その既成バンドルを解凍し、解凍したバンドルのマニフェストファイルとその他の全てのデータからデプロイメントパッケージ用のマニフェストファイルを作成するステップと、
既成バンドルが存在しない場合、デプロイメントパッケージ用のマニフェストファイルを作成するステップと、
開発者が、作成されたマニフェストファイルでモジュールを作成するのに不備がないかどうかを判断するステップと、
不備がない場合、全てのデータをコンパイルし、ビルドすることによりモジュールを作成するステップとを実行することを特徴とするOSGiバンドル及びデプロイメントパッケージ自動作成方法を提供するものである。
【０００９】
請求項４に係る発明は、前記コンピュータは、作成されたマニフェストファイルでモジュールを作成するのに不備がある場合、不備が修正されると、全てのデータをコンパイルし、ビルドすることによりモジュールを作成するステップを実行することを特徴とする請求項３記載のOSGiバンドル及びデプロイメントパッケージ自動作成方法を提供するものである。
【００１０】
請求項５に係る発明は、フレームワークを起動する制御装置を備えたコンピュータにインストールされるOSGiバンドル及びデプロイメントパッケージ自動作成ツールであって、
前記OSGiバンドル及びデプロイメントパッケージ自動作成ツールは、前記フレームワークにインストールされて起動され、モジュールとして固めるディレクトリが指定されると、作成するモジュールがデプロイメントパッケージであるかどうかを判断する機能と、
デプロイメントパッケージでない場合は、バンドル用のマニフェストファイルを作成する機能と、
デプロイメントパッケージである場合は、その指定したディレクトリ内に既成バンドルが存在するかどうかを判断する機能と、
既成バンドルが存在する場合は、その既成バンドルを解凍し、解凍したバンドルのマニフェストファイルとその他の全てのデータからデプロイメントパッケージ用のマニフェストファイルを作成する機能と、
既成バンドルが存在しない場合、デプロイメントパッケージ用のマニフェストファイルを作成する機能と、
開発者が、作成されたマニフェストファイルでモジュールを作成するのに不備がないかどうかを判断する機能と、
不備がない場合、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する機能とを備えることを特徴とするOSGiバンドル及びデプロイメントパッケージ自動作成ツールを提供するものである。
【００１１】
請求項６に係る発明は、前記OSGiバンドル及びデプロイメントパッケージ自動作成ツールは、作成されたマニフェストファイルでモジュールを作成するのに不備がある場合、不備が修正されると、全てのデータをコンパイルし、ビルドすることによりモジュールを作成する機能を備えることを特徴とする請求項５記載のOSGiバンドル及びデプロイメントパッケージ自動作成ツールを提供するものである。
【発明の効果】
【００１２】
本発明のOSGiバンドル及びデプロイメントパッケージ自動作成システム、自動作成方法及び自動作成ツールによれば次のような効果がある。
モジュール作成時に必要とされるマニフェストファイルを自動生成し、モジュール作成を自動化することで工程の削減を図ると共に、デプロイメントパッケージをクラスファイルの状態から作り出すことも可能にし、これにより、さらなるソフトウェア開発者のミスの誘発を防止することができ、ミスによる作業の手戻り、遅延を防ぎ、より計画通りにシステム開発をすることが出来るOSGiバンドル及びデプロイメントパッケージ自動作成システム、自動作成方法及び自動作成ツールの提供を可能とする。
また、OSGiバンドルとして提供することで、OSGiフレームワークの動作環境ならば環境を選ばず使用することができ、更に作成したモジュールをすぐに使用することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明のOSGiバンドル及びデプロイメントパッケージ自動作成システムのシステム構成図である。
【図２】本発明のマニフェストファイル作成の一例図である。
【図３】本発明のディレクトリ構成の一例図である。
【図４】本発明のOSGiバンドル及びデプロイメントパッケージ自動作成の手順を示すフローチャート図である。
【発明を実施するための形態】
【００１４】
以下、実施例を示した図面を参照しつつ本発明の実施の形態を説明する。
尚、上記各機能又はステップは、コンピュータのＣＰＵが必要なコンピュータプログラムを読み込んで実行することにより実現される機能又はステップであり、そのフローチャート図が図４である。
【００１５】
以下、本発明の好ましい実施の形態を添付図面に基づいて説明する。
図１は、本発明の一実施例のOSGiバンドル及びデプロイメントパッケージ自動作成システムのシステム構成図である。この実施例では、FW（フレームワーク）１６を起動することの出来る制御装置１１とそれを持つPC（Personal Computer）本体１０、それに接続された表示装置１４、入力装置１５、そして本発明である自動作成ツール１７として固められたバンドルが必要である。
PC本体１０本体上でFW１６を起動し、それに本発明のバンドル（自動作成ツール１７）をインストールし、スタートさせる。尚、図１に於いて、１２は、PC本体１０が備える主記憶装置、１３は、PC本体１０が備える演算装置である。
【００１６】
図２はマニフェストファイル作成例、図３はそのディレクトリ構成例である。
マニフェストファイルは、図２の例に示されるように、Bundle-ManifestVersion2.1.1、Bundle-Name2.1.2、Bundle-SymbolicName2.1.3、Bundle-Version2.1.4、Bundle-Activator2.1.5、Import-Package2.1.6、Export-Package2.1.7、Bundle-Classpath2.1.8のようなマニフェストヘッダを持つ。これらマニフェストヘッダをもつマニフェストファイルを作成できるよう、事前に、モジュール開発ツールには、設定されうる全てのマニフェストヘッダをデータとして与えておく。その設定されうるマニフェストヘッダは、OSGi AllianceのHPで入手可能なOSGiのCore仕様書に記載されている（2010/08/26 現在、Release4 Version 4.2まで入手可能）。
【００１７】
現在のバンドル開発において、必ず必要なマニフェストヘッダはBundle-Symbolicname2.1.3、デプロイメントパッケージ開発ではDeploymentPackage-Symbolicnameである。Bundle-SymbolicName2.1.3とは、モジュールのファイル名とは別のモジュール固有で不変の名前である。
DeploymentPackage-Sybolicnameも同等の意味をもつマニフェストヘッダである。そのマニフェストヘッダをマニフェストファイルにどのように記述するかは、ディレクトリ構造とその名前から判断する。
【００１８】
図３で、モジュールとして固めるディレクトリを2.2.1とした時、そのディレクトリ2.2.1の名前がDP_**のように、”DP”から始まる場合、デプロイメントパッケージを作成する。また、ディレクトリ2.2.1の名前がBD_**のように、”BD”から始まる場合、バンドルを作成する。そしてそれらディレクトリ名の「**」の部分をBundle-SymbolicNameとして使用する。これらは後述のようにモジュールとして固めるディレクトリの名前から指定する。
【００１９】
また、バンドルをサービスとして起動する場合、Bundle-Activatorが必要だが、これはソース内でBundle-Activatorを実装しているクラスを検索し、指定することが可能である。検索方法はこのツール内でプログラムとして記述する。その他のマニフェストヘッダは、Manifest-Versionは現在デフォルトが1.0であり、これは毎回この値を指定するようにする。Bundle-Manifest-Versionは2であるが、これはOSGiの仕様を表しているので、バージョンが変われば使用者が１度変更する必要がある。だが、１度変更すればそれ以降は、そのバージョンで指定されるようにする。
【００２０】
Bundle-Versionのデフォルトは0.0.0である。違うバージョン値を入れたい場合は１度開発者が指定する必要がある。それ以降、バンドルを作成する際には、1度設定したことのある値を選択出来るようにする。Bundle-Classpathは、ビルドする際に必要なクラスファイルがZip形式やJar形式で固められている際に必要とする。従って、そういったファイルはlibと名前をつけたディレクトリに配置し、そこにあるファイルに対してクラスパスが通るようにファイル名を読み取り、Bundle-Classpathのマニフェストヘッダの値として指定されるようプログラムを作成する。
【００２１】
それ以外にもヘッダは多数存在し、OSGiのバージョンが更新されるたびにヘッダも増える可能性がある。それら増えたヘッダに対しては、ツールを起動中に使用者が更新出来るようにツールを作成する。また、上記以外のマニフェストヘッダを指定するか否かの選択は用途に合わせて出現する項目にYes、Noを割り振れるようにする。そして、Yesを割り振った項目に対してはソース内検索、ディレクトリ検索、履歴、絶対値の4種の方法を駆使し、マニフェストヘッダを作成することが可能である。マニフェストヘッダの中で注意しなければならならいヘッダが、Import-Package2.1.6とExport-Package2.1.7である。
【００２２】
クラスファイルをImport、Exportする場合、固めるディレクトリ内に指定したクラスが存在する場合は問題ないのだが、違うモジュールの中のクラスファイルを使用する際には、開発者が記述する必要がある。なお、図３上での○はソースファイルを表している。つまり、例で示すならば、ディレクトリ2.2.6の直下のソースが、2.2.4の直下のクラスを必要としている場合は問題ないのだが、全く違うモジュールから参照する場合は、開発者が記述しなければならないということである。
【００２３】
図４は、本発明のOSGiバンドル及びデプロイメントパッケージ自動作成の手順を示すフローチャート図である。ステップ３１０でこのツールを起動する。起動方法としては、FWに本発明のバンドルをインストールし、スタートさせる。ステップ３２０でモジュールとして固めるディレクトリを指定する。ステップ３３０では、作成するモジュールがデプロイメントパッケージなのかどうかを判断し、デプロイメントパッケージでないなら、ステップ３４０に移り、バンドルのマニフェストファイルを作成する。デプロイメントパッケージならステップ３５０に移る。
【００２４】
ステップ３５０では、その指定したディレクトリ内に既成バンドルが存在するかどうかを判断し、既成バンドルが存在するなら、ステップ３５１でそのバンドルを１度解凍し、解凍したバンドルのマニフェストファイルとその他の全てのデータからステップ３６０でデプロイメントパッケージ用のマニフェストファイルを作成する。
既成バンドルが存在しない場合、ステップ３５２でデプロイメントパッケージ用のマニフェストファイルを作成する。
その後ステップ３７０で作成されたマニフェストファイルでモジュールを作成するのに不備がないかどうかを開発者が判断し、不備がない場合、最後にステップ３８０で全てのデータをコンパイルし、ビルドすることにより、モジュールを作成する。
不備がある場合、ステップ３７１に移動し、データが修正されると、ステップ３８０で全てのデータをコンパイルし、ビルドすることにより、モジュールを作成する。
【００２５】
ステップ３３０でデプロイメントパッケージかどうかを判断することで、本発明では、3種類のモジュール作成を可能とする。即ち、純粋なソースのみからデプロイメントパッケージの作成、指定したディレクトリ以下に既成バンドルが存在する場合のデプロイメントパッケージ作成、そしてバンドル作成を可能とする。そしてそれらの為のマニフェストファイルを開発者がミスすることなく作成出来るよう誘導することが出来る。
【符号の説明】
【００２６】
１１制御装置
１６FW
１７自動作成ツール
【図１】
2012093979.tif 000003
【図２】
2012093979.tif 000004
【図３】
2012093979.tif 000005
【図４】
2012093979.tif 000006