(57)【特許請求の範囲】
【請求項１】
非アンドロイドプラットフォームにおいてアンドロイドアプリケーションを実行する端末装置であって、
少なくとも一つのアンドロイドアプリケーションを含むアプリケーション層モジュールと、
前記端末装置のハードウェアリソースを動作させる前記非アンドロイドプラットフォームのネイティブプラットフォーム層モジュールと、
前記ネイティブプラットフォーム層モジュールと前記アプリケーション層モジュールとを媒介し、クラスライブラリ層モジュールと、ネイティブライブラリ層モジュールと、ポーティング層モジュールとを備えるミドルウェアモジュールとを含んで構成され、
前記クラスライブラリ層モジュールは、前記アンドロイドアプリケーションを実行させるのに必要なクラスライブラリを備えるアプリケーションフレームワークモジュール、およびＪａｖａＡＰＩ（アプリケーション・プログラム・インターフェース）を提供するコアクラスライブラリモジュールを含み、
前記ポーティング層モジュールは、前記ネイティブライブラリ層モジュールと前記ネイティブプラットフォーム層モジュールとを接続し、ファイルシステム、メモリ割り当てモジュール、ネットワークモジュール、基本ライブラリ、タイマー、デバイス制御モジュールのうちの１つ以上のハードウェア管理モジュールを含み、前記ハードウェア管理モジュールは、オペレーティングシステムを活用することにより、前記端末装置のハードウェアを管理するためのＬｉｎｕｘ標準ＡＰＩを提供し、
前記ネイティブライブラリ層モジュールは、仮想マシンおよびネイティブライブラリを含み、前記仮想マシンは、前記クラスライブラリと前記クラスライブラリ層モジュールに備えられた前記ＪａｖａＡＰＩとを介した前記アンドロイドアプリケーションの実行にあたり、前記ポーティング層モジュールで提供する前記Ｌｉｎｕｘ標準ＡＰＩを介してハードウェアを使用し、前記仮想マシンは、該仮想マシンに含まれ、かつプラットフォーム独立型モジュールであるスレッド管理モジュール、動的ライブラリ管理モジュール、他言語関数インターフェース、同期モジュール、メモリ管理モジュールを用いて、前記アンドロイドアプリケーションを、Ｌｉｎｕｘではない、前記ネイティブプラットフォーム層モジュールを介して実行するように構成され、前記ネイティブライブラリは、前記アプリケーションフレームワークモジュールのクラスライブラリを実現するために用いられ、
前記仮想マシンは、前記プラットフォーム独立型モジュールにより既存のアンドロイドのＬｉｎｕｘ依存的機能から脱してプラットフォームに影響を受けずに、前記ポーティング層モジュールを介して前記ネイティブプラットフォーム層モジュールと連動してシングルタスクで動作することを特徴とする、端末装置。
【請求項２】
前記ネイティブライブラリ層モジュールは、前記ポーティング層モジュールのハードウェア管理モジュールと連動して動作する１つ以上のネイティブライブラリを備えることを特徴とする、請求項１に記載の端末装置。
【請求項３】
前記アプリケーションフレームワークモジュールは、電話サービス、位置サービス、ブルートゥースサービス、ＷＩＦＩサービス、ＵＳＢサービス、センササービスのうちの１つ以上のサービスモジュールを含み、前記アンドロイドアプリケーションの実行によって当該サービスをバックグラウンドで実行することを特徴とする、請求項２に記載の端末装置。
【請求項４】
非アンドロイドプラットフォームにおいてアンドロイドアプリケーションを端末装置のコンピュータに実行させるプログラムを記録した非一時的コンピュータ読み取り可能な記録媒体であって、
前記プログラムは、コンピュータを
少なくとも一つのアンドロイドアプリケーションを含むアプリケーション層手段と、
前記端末装置のハードウェアリソースを動作させる前記非アンドロイドプラットフォームのネイティブプラットフォーム層手段と、
前記ネイティブプラットフォーム層手段と前記アプリケーション層手段とを媒介し、クラスライブラリ層手段と、ネイティブライブラリ層手段と、ポーティング層手段とを備えるミドルウェア手段として機能させ、
前記クラスライブラリ層手段は、前記アンドロイドアプリケーションを実行させるのに必要なクラスライブラリを備えるアプリケーションフレームワーク手段、およびＪａｖａＡＰＩ（アプリケーション・プログラム・インターフェース）を提供するコアクラスライブラリ手段を含み、
前記ポーティング層手段は、前記ネイティブライブラリ層手段と前記ネイティブプラットフォーム層手段とを接続し、ファイルシステム、メモリ割り当て手段、ネットワーク手段、基本ライブラリ、タイマー、デバイス制御手段のうちの１つ以上のハードウェア管理手段を含み、前記ハードウェア管理手段は、オペレーティングシステムを活用することにより、前記端末装置のハードウェアを管理するためのＬｉｎｕｘ標準ＡＰＩを提供し、
前記ネイティブライブラリ層手段は、仮想マシンおよびネイティブライブラリを含み、前記仮想マシンは、前記クラスライブラリと前記クラスライブラリ層手段に備えられた前記ＪａｖａＡＰＩとを介した前記アンドロイドアプリケーションの実行にあたり、前記ポーティング層手段で提供する前記Ｌｉｎｕｘ標準ＡＰＩを介してハードウェアを使用し、前記仮想マシンは、該仮想マシンに含まれ、かつプラットフォーム独立型手段であるスレッド管理手段、動的ライブラリ管理手段、他言語関数インターフェース、同期手段、メモリ管理手段を用いて、前記アンドロイドアプリケーションを、Ｌｉｎｕｘではない、前記ネイティブプラットフォーム層手段を介して実行されるように構成され、前記ネイティブライブラリは、前記アプリケーションフレームワーク手段のクラスライブラリを実現するために用いられ、
前記仮想マシンは、前記プラットフォーム独立型手段により既存のアンドロイドのＬｉｎｕｘ依存的機能から脱してプラットフォームに影響を受けずに、前記ポーティング層手段を介して前記ネイティブプラットフォーム層手段と連動してシングルタスクで動作することを特徴とする、記録媒体。
【請求項５】
前記ネイティブライブラリ層手段は、前記ポーティング層手段のハードウェア管理手段と連動して動作する１つ以上のネイティブライブラリを備えることを特徴とする、請求項４に記載の記録媒体。
【請求項６】
前記アプリケーションフレームワーク手段は、電話サービス、位置サービス、ブルートゥースサービス、ＷＩＦＩサービス、ＵＳＢサービス、センササービスのうちの１つ以上のサービス手段を含み、前記アンドロイドアプリケーションの実行によって当該サービスをバックグラウンドで実行することを特徴とする、請求項５に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末技術に関し、特に、グーグル（登録商標）のアンドロイド（登録商標）アプリケーションを、アンドロイド端末ではない、他のプラットフォームで動作する端末で実行させることができるように、アンドロイドフレームワークを、低スペックの簡易化されたデバイスに最適化させ、端末プラットフォームとミドルウェアとを接続するポーティング層を備え、ダルビック（ｄａｌｖｉｋ、登録商標）仮想マシンをシングルタスク上で実行されるように再構成した仮想マシンを含む端末技術に関する。
【背景技術】
【０００２】
グーグルアンドロイドプラットフォームとは、グーグル社が主導するＯＨＡ（Ｏｐｅｎ  Ｈａｎｄｓｅｔ  Ａｌｌｉａｎｃｅ）で公開したソフトウェアスタックで、Ｌｉｎｕｘ（登録商標）カーネル、仮想マシン、フレームワーク、アプリケーションをすべて含むソフトウェアパッケージを意味する。
【０００３】
グーグルアンドロイドプラットフォームは、主に解像度８００×４８０のＷＶＧＡ（ｗｉｄｅ  ＶＧＡ）クラスの大画面のディスプレイと、タッチスクリーン入力を提供する高スペックのスマートフォン端末とにのみ適用可能である。
【０００４】
グーグルアンドロイドアプリケーションを実行させるためには、端末装置にアンドロイドの全てのソフトウェアスタックを適用しなければならない。アンドロイドソフトウェアスタックは、Ｌｉｎｕｘカーネルを含み、システムデーモンのような基本サービスを多数含んでいるため、高スペックのハイエンドスマートフォンに好適なプラットフォームである。
【０００５】
したがって、アンドロイドアプリケーションは、高スペックのスマートフォンでしか実行させることができないという制約が伴うことから、他のプラットフォームで動作する一般のフィーチャーフォンではアンドロイドアプリケーションを実行させることができないという問題があった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、グーグルアンドロイドプラットフォームが設けられた高スペックのスマートフォンではない、より低いハードウェア仕様の一般の端末装置でもグーグルアプリケーションを実行させることができ、且つ一般の端末装置のプラットフォームによって支援されるネイティブアプリケーションも実行可能である、異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明の実施形態にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置は、第１のアプリケーションおよび第２のアプリケーションを含むアプリケーション層モジュールと、端末プロセッサに接続され、第１のアプリケーションを動作させるプラットフォーム層モジュールと、プラットフォーム層モジュールと第２のアプリケーションとを媒介するミドルウェアモジュールとを含んで構成され、ミドルウェアモジュールは、第２のアプリケーションを実行させるのに必要なクラスライブラリを備えるアプリケーションフレームワークモジュール、およびＪａｖａＡＰＩを提供するコアクラスライブラリモジュールを含むクラスライブラリ層モジュールと、クラスライブラリとＪａｖａＡＰＩとを介して第２のアプリケーションを動作させる仮想マシンを含み、アプリケーションフレームワークモジュールのライブラリを実現するための基盤となるネイティブライブラリを備えるネイティブライブラリ層モジュールと、ネイティブライブラリ層モジュールとプラットフォーム層モジュールとを接続し、プラットフォーム層モジュールを介して端末のハードウェアを管理する機能を提供するポーティング層モジュールとを含んで構成される。
【０００８】
また、本発明の実施形態にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置において、第１のアプリケーションは、ネイティブアプリケーションであり、第２のアプリケーションは、アンドロイドアプリケーションであり、仮想マシンは、ダルビック（Ｄａｌｖｉｋ）仮想マシンであることが好ましい。
【０００９】
さらに、本発明の実施形態にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置において、仮想マシンは、ポーティング層モジュールを介してプラットフォーム層モジュールと連動してシングルタスクで動作することが好ましい。
【００１０】
また、本発明の実施形態にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置において、仮想マシンは、スレッド管理モジュール、動的ライブラリ管理モジュール、外部関数インターフェース、同期化モジュール、メモリ管理モジュールのうちの１つ以上のプラットフォーム独立型モジュールを含み、ポーティング層モジュールを介してプラットフォーム層モジュールと連動して動作することが好ましい。
【００１１】
さらに、本発明の実施形態にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置において、ポーティング層モジュールは、ファイルシステム、メモリ割り当てモジュール、ネットワークモジュール、基本ライブラリ、タイマー、デバイス制御モジュールのうちの１つ以上のハードウェア管理モジュールを含み、端末装置の当該ハードウェアにアクセスして管理、制御することが好ましい。
【００１２】
また、本発明の実施形態にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置において、ネイティブライブラリ層モジュールは、ポーティング層モジュールのハードウェア管理モジュールと連動して動作する１つ以上のネイティブライブラリを備えることが好ましい。
【００１３】
さらに、本発明の実施形態にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置において、アプリケーションフレームワークモジュールは、電話サービス、位置サービス、ブルートゥースサービス、ＷＩＦＩサービス、ＵＳＢサービス、センササービスのうちの１つ以上のサービスモジュールを含み、第２のアプリケーションの実行によって当該サービスをバックグラウンドで実行させることが好ましい。
【発明の効果】
【００１４】
本発明によれば、グーグルアンドロイドアプリケーションを、グーグルアンドロイドプラットフォームの端末のみならず、他のオペレーティングシステムで動作する端末でも実行させることができる。従って、アンドロイドアプリケーションをより多くの端末を介して提供することにより、多様な付加価値を創出するという効果を有する。
【００１５】
また、アンドロイドプラットフォームを簡易化することにより、高スペックのスマートフォンではない、低スペックの一般のフィーチャーフォンを介してアンドロイドアプリケーションを提供することができるという効果を有する。
【図面の簡単な説明】
【００１６】
【図１】本発明にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置１００の全体構成を概略的に示すブロック図である。
【図２】図１におけるミドルウェアモジュール２０の構成をより詳細に示すブロック図である。
【図３】図２におけるクラスライブラリ層モジュール２１およびネイティブライブラリ層モジュール２２の左側の構成を拡大して示すブロック図である。
【図４】図２におけるクラスライブラリ層モジュール２１およびネイティブライブラリ層モジュール２２の右側の構成を拡大して示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を添付図面を参照して詳細に説明する。
図１は、本発明にかかる異種アプリケーション実行のための仮想マシン基盤の階層構造を有する端末装置１００の全体構成を概略的に示すブロック図である。
【００１８】
端末装置１００は、大別して、アプリケーション層モジュール１０と、ミドルウェアモジュール２０と、プラットフォーム層モジュール３０と、端末プロセッサ４０と、端末ハードウェア５０とを含んで構成される。
【００１９】
このとき、端末装置１００は、一般的に、携帯電話、ＭＰ３などのモバイル装置を意味するが、その他にも、端末プロセッサ４０によってプラットフォーム基盤で動作する一般的な端末装置をすべて含むことができる。
【００２０】
まず、アプリケーション階層モジュール１０は、第１のアプリケーションおよび第２のアプリケーションを含むが、ここで、第１のアプリケーションは、端末装置のプラットフォームで直ちに実行可能なネイティブアプリケーションであり、第２のアプリケーションは、ポーティング層と仮想マシンが備えられたミドルウェアを介して実行される追加のアプリケーションである。
【００２１】
例えば、ＬＧ社（登録商標）製のＷＩＳＥプラットフォーム基盤のモバイル端末の場合、ＷＩＳＥプラットフォーム基盤で動作するネイティブアプリケーションが第１のアプリケーションに相当し、グーグルアンドロイドアプリケーションが第２のアプリケーションに相当する。
【００２２】
プラットフォーム層モジュール３０は、端末プロセッサ４０に接続され、第１のアプリケーションを動作させる。
ミドルウェアモジュール２０は、プラットフォーム層モジュール３０とアプリケーション層モジュール１０との間に位置し、アプリケーション層モジュール１０に備えられた第２のアプリケーションを媒介する。
【００２３】
このとき、ミドルウェアモジュール２０には、第２のアプリケーションを実行させることができるように仮想マシンとライブラリが備えられ、且つプラットフォーム層と接続できるようにポーティング層が備えられる。ミドルウェアモジュール２０の具体的な細部事項については、以下、図２〜図４の説明によってさらに詳細に説明する。
【００２４】
端末プロセッサ４０は、中央処理装置であって、モバイル端末の場合は、多様なマルチメディアと通信することができ、かつ、簡易化されたモバイル専用プロセッサが使用可能である。
【００２５】
端末ハードウェア５０は、端末装置を構成する画面出力部、オーディオ出力部、ユーザ入力部などを含む。
図２は、図１におけるミドルウェアモジュール２０の構成を詳細に示すブロック図である。
【００２６】
ミドルウェアモジュール２０は、各階層ごとに、クラスライブラリ層２１と、ネイティブライブラリ層２２と、ポーティング層２３とに区分することができる。このとき、各階層は、下層にいくほど物理層に近くなり、最下層のポーティング層２３は、プラットフォーム層３０に隣接し、最上層のクラスライブラリ層２１は、アプリケーション層１０に隣接する。
【００２７】
クラスライブラリ層モジュール２１は、第２のアプリケーションを実行させるのに必要なクラスライブラリを備えるアプリケーションフレームワークモジュール２１−２と、Ｊａｖａ（登録商標）ＡＰＩを提供するコアクラスライブラリモジュール２１−１とを含む。
【００２８】
実際の実現例として、アプリケーションフレームワークモジュール２１−２は、グーグルアンドロイドプラットフォームにおいてアプリケーションフレームワーク層を修正または再使用して用いる。グーグルアンドロイドのアプリケーションフレームワーク層には、アンドロイドアプリケーションを実行させるのに必要なクラスライブラリやサービスが備えられている。このとき、一部のサービスは、アプリケーションの互換に必要ないことから、簡易化のために除去可能である。
【００２９】
また、コアクラスライブラリモジュール２１−１は、グーグルアンドロイドプラットフォームにおいてアンドロイドランタイムに属するコアライブラリを再使用する。アンドロイドのコアライブラリには、Ｊａｖａ言語でプログラミングを行うための基本的なＪａｖａＡＰＩが備えられる。
【００３０】
ネイティブライブラリ層モジュール２２は、アプリケーションフレームワークモジュール２１−２に備えられたクラスライブラリと、コアクラスライブラリモジュール２１−１に備えられたＪａｖａＡＰＩとを介して、アプリケーション層１０に位置する第２のアプリケーションを動作させる仮想マシン２２−１を含む。さらに、ネイティブライブラリ層モジュール２２には、アプリケーションフレームワークモジュール２１−２のライブラリを実現するための基盤となるネイティブライブラリ２２−２を備える。
【００３１】
実際の実現例として、仮想マシン２２−１は、グーグルアンドロイドプラットフォームのダルビック仮想マシンを修正して用いる。つまり、既存のダルビック仮想マシンからＬｉｎｕｘに依存的なモジュールを除去し、他のプラットフォームで提供していない機能を追加し、シングルタスク上においても実行できる構造として仮想マシンを再構成して用いる。
【００３２】
また、ネイティブライブラリ２２−２は、グーグルアンドロイドプラットフォームのアプリケーションフレームワーク層の下に位置するライブラリを再使用する。このとき、ネイティブライブラリ２２−２は、ほとんどが公開ソース基盤のソフトウェアを使用しており、これを必要に応じて修正、ポーティングしてネイティブライブラリ層モジュール２２に配置する。
【００３３】
ポーティング層モジュール２３は、ネイティブライブラリ層モジュール２２とプラットフォーム層モジュール３０とを接続し、プラットフォーム層モジュール３０を介して端末のハードウェアを管理する機能を提供する。
【００３４】
つまり、ポーティング層モジュール２３は、他のオペレーティングシステムに容易に移植することができるように、オペレーティングシステムに依存的なコードを整理した階層であって、ファイルシステム、メモリ割り当て、ネットワーク、基本ライブラリ（ｓｔｄｉｏ、ｓｔｄｌｉｂ、ｍａｔｈなど）、タイマー、デバイス制御（ディスプレイ、メディア、入力装置、３Ｄなど）、その他ユーティリティなどのハードウェア管理モジュールを含む。
【００３５】
そして、ポーティング層モジュール２３は、前記ハードウェア管理モジュールを介して端末装置１００の当該ハードウェアにアクセスして、これを管理、制御する。
例えば、ポーティング層モジュール２３には、カーネル（ＤＬＬ、ｐｔｈｒｅａｄ、ｅｔｃ）、システム（ファイル、メモリ、ソケット、ｓｔｄｉｏ、ｓｔｄｌｉｂ、ｓｔｒｉｎｇ、ｍａｔｈ、時間）、装置（フレームバッファ、メディア、インプット、３Ｄ、ｅｔｃ）、Ｕｔｉｌｓ（ログ、デバッグ、ｅｔｃ）などが備えられる。
【００３６】
第１のアプリケーションマネージャ６０および第２のアプリケーションマネージャ７０は、それぞれ当該アプリケーションをダウンロード、自動アップグレード、削除するといった多様な管理機能を提供する。
【００３７】
図３は、図２におけるクラスライブラリ層モジュール２１およびネイティブライブラリ層モジュール２２の左側の構成を拡大して示すブロック図である。
仮想マシン２２−１は、ダルビック仮想マシンを修正したものである。ダルビック仮想マシンは、グーグルアンドロイドプラットフォームで提供する仮想マシンであり、Ｊａｖａ仮想マシンより小さいメモリ環境で動作することができるように、Ｊａｖａ仮想マシンとやや相違する概念で作られた仮想マシンを意味する。
【００３８】
仮想マシン２２−１は、ｐｔｈｒｅａｄのようなスレッド管理モジュール、共用オブジェクトやＤＬＬのような動的ライブラリ管理モジュール、外部関数インターフェース（ＦＦＩ：ｆｏｒｅｉｇｎ  ｆｕｎｃｔｉｏｎ  ｉｎｔｅｒｆａｃｅ）、同期化モジュール、メモリ管理モジュールなどを含む。
【００３９】
前記仮想マシン２２−１に含まれたモジュールは、プラットフォーム独立型モジュールである。仮想マシン２２−１は、既存のアンドロイドのＬｉｎｕｘ依存的機能から脱してプラットフォームに影響を受けずに、ポーティング層モジュール２３を介してプラットフォーム層モジュール３０と連動して動作する。
【００４０】
また、仮想マシン２２−１は、端末装置１００に合わせてメモリ管理が行われるように、既存のダルビック仮想マシンを修正して構成される。
その他にも、仮想マシン２２−１は、マルチタスキングを支援することなく、シングルタスクで動作する端末装置１００でも動作することができるように、既存のダルビック仮想マシンを修正してシングルタスクで動作が可能である。つまり、仮想マシン２２−１は、ポーティング層モジュール２３を介してプラットフォーム層モジュール３０と連動してシングルタスクで動作する。
【００４１】
コアクラスライブラリ２１−１は、前述したように、Ｊａｖａ言語でプログラミングを行うための基本的なＪａｖａＡＰＩを提供する。
ネイティブライブラリ２２−２は、上位層のライブラリを実現するための基盤となり、Ｌｉｎｕｘ以外の他のプラットフォームに合わせてポーティングされて備えられる。
【００４２】
図４は、図２におけるクラスライブラリ層モジュール２１およびネイティブライブラリ層モジュール２２の右側の構成を拡大して示すブロック図である。
前述した図３に続いて、ネイティブライブラリ層モジュール２２には、ポーティング層モジュール２３のハードウェア管理モジュールと連動して動作する多様なネイティブライブラリ２２−２を備える。
【００４３】
アプリケーションフレームワークモジュール２１−２には、電話サービス、位置サービス、ブルートゥースサービス、ＷＩＦＩサービス、ＵＳＢサービス、センササービスなどの多様なサービスモジュールが含まれることが可能である。このとき、サービスモジュールで提供するサービスは、全体のシステム内においてサーバまたはデーモンのような役割を果たし、第２のアプリケーションの実行によって当該サービスをバックグラウンドで実行させる。
【００４４】
各サービスモジュールは、必要に応じて修正されて備えられ、簡易化のために無駄なサービスモジュールは除去される。
以上の説明は、本発明の技術思想を例示的に説明したものにすぎず、本発明の属する技術分野における通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正および変形が可能である。したがって、本発明に開示された実施形態は、本発明の技術思想を限定するためのものではなく、説明するためのものであり、このような実施形態により本発明の技術思想の範囲が限定されるものではない。本発明の保護範囲は、下記の請求の範囲によって解釈されなければならず、それと同等の範囲内にあるすべての技術思想は、本発明の権利範囲に属するものと解釈されなければならない。
【図１】
0005694301.tif 000002
【図２】
0005694301.tif 000003
【図３】
0005694301.tif 000004
【図４】
0005694301.tif 000005