(57)【特許請求の範囲】
【請求項１】
無線アプリケーションを端末に設置するための無線アプリケーションパッケージを利用した無線アプリケーション配布方法であって、
無線アプリケーションパッケージを生成する段階と、
前記無線アプリケーションパッケージをサーバーにアップロードする段階とを含み、
前記無線アプリケーションパッケージは、無線コントローラーコード、機能ブロックコード及びパイプライン構成メタデータを含むことを特徴とする無線アプリケーション配布方法。
【請求項２】
前記機能ブロックコードは、
前記端末の無線プロセッサに含まれた専用のハードウェア加速器を利用して実現された機能ブロックを呼び出すコードであるか、または前記端末の無線プロセッサのコア上で動作する実行コードである標準機能ブロックコードと、
前記標準機能ブロックコードとして提供されないか、または前記標準機能ブロックコードが提供する機能をカスタマイズしたユーザ定義機能ブロックコードとを含むことを特徴とする、請求項１に記載の無線アプリケーション配布方法。
【請求項３】
前記無線アプリケーションパッケージは、前記標準機能ブロックコードが前記端末の無線プロセッサ上で動作可能な実行コードとして提供される場合、前記実行コードで構成された無線ライブラリをさらに含むことを特徴とする、請求項２に記載の無線アプリケーション配布方法。
【請求項４】
前記ユーザ定義機能ブロックコードは、前記端末の無線プロセッサによって実行される実行コード形態、前記端末の無線プロセッサによって実行される実行コードにコンパイル可能なソースコード形態及び中間表現（ＩＲ：Intermediate Representation）形態のうち少なくとも１つであることを特徴とする、請求項２に記載の無線アプリケーション配布方法。
【請求項５】
前記ユーザ定義機能ブロックコードがソースコード形態または中間表現形態の場合、暗号化されて前記無線アプリケーションパッケージに含まれることを特徴とする、請求項４に記載の無線アプリケーション配布方法。
【請求項６】
前記パイプライン構成メタデータは、前記無線アプリケーションのデータ送信または受信機能のための前記無線コントローラーコード、前記ユーザ定義機能ブロック、標準機能ブロックの連結関係を定義することを特徴とする請求項２に記載の無線アプリケーション配布方法。
【請求項７】
前記無線コントローラーコードは、前記端末のアプリケーションプロセッサまたは無線プロセッサによって実行される実行コード形態であり、前記無線アプリケーションの状況情報（context information）をユーザアプリケーションに提供するか、または前記端末のアプリケーションプロセッサまたは無線プロセッサに存在する通信サービス階層のネットワーキングスタックとデータを送受信することを特徴とする、請求項１に記載の無線アプリケーション配布方法。
【請求項８】
無線アプリケーションパッケージを利用してユーザ端末に無線アプリケーションを設置する方法であって、
無線アプリケーションパッケージをサーバーからダウンロードする段階と、
前記無線アプリケーションパッケージに含まれた無線アプリケーションを前記ユーザ端末に設置する段階とを含み、
前記無線アプリケーションパッケージは、無線コントローラーコード、機能ブロックコード及びパイプライン構成メタデータを含むことを特徴とする無線アプリケーション設置方法。
【請求項９】
前記機能ブロックコードは、
前記端末の無線プロセッサに含まれた専用のハードウェア加速器を利用して実現された機能ブロックを呼び出すコードであるか、または前記端末の無線プロセッサのコア上で動作する実行コードである標準機能ブロックコードと、
前記標準機能ブロックコードとして提供されないか、または前記標準機能ブロックコードが提供する機能をカスタマイズしたユーザ定義機能ブロックコードとを含むことを特徴とする、請求項８に記載の無線アプリケーション設置方法。
【請求項１０】
前記無線アプリケーションパッケージは、前記標準機能ブロックコードが前記端末の無線プロセッサのコア上で動作可能な実行コードとして提供される場合、前記実行コードで構成された無線ライブラリをさらに含むことを特徴とする、請求項９に記載の無線アプリケーション設置方法。
【請求項１１】
前記ユーザ定義機能ブロックコードは、前記端末の無線プロセッサによって実行される実行コード形態、前記端末の無線プロセッサによって実行される実行コードにコンパイル可能なソースコード形態及び中間表現（ＩＲ：Intermediate Representation）形態のうち少なくとも１つであることを特徴とする、請求項９に記載の無線アプリケーション設置方法。
【請求項１２】
前記ユーザ定義機能ブロックコードがソースコード形態または中間表現形態の場合、前記ユーザ定義機能ブロックコードは、前記端末のアプリケーションプロセッサまたは無線プロセッサによって実行されるコンパイラーによってコンパイルされることを特徴とする、請求項１１に記載の無線アプリケーション設置方法。
【請求項１３】
前記ユーザ定義機能ブロックコードがソースコード形態または中間表現形態の場合、暗号化されて前記無線アプリケーションパッケージに含まれることを特徴とする、請求項１１に記載の無線アプリケーション設置方法。
【請求項１４】
前記無線コントローラーコードは、前記端末のアプリケーションプロセッサまたは無線プロセッサによって実行される実行コード形態であり、前記無線アプリケーションの状況情報（context information）をユーザアプリケーションに提供するか、または前記端末のアプリケーションプロセッサまたは無線プロセッサに存在する通信サービス階層のネットワーキングスタックとデータを送受信することを特徴とする、請求項８に記載の無線アプリケーション設置方法。
【請求項１５】
前記設置する段階は、前記パイプライン構成メタデータを参照して、前記無線コントローラーコード及び前記機能ブロックコードを前記端末のアプリケーションプロセッサ及び無線プロセッサのうち少なくとも１つがアクセス可能な格納装置に設置するように構成されることを特徴とする、請求項８に記載の無線アプリケーション設置方法。
【請求項１６】
アプリケーションプロセッサと無線プロセッサを具備した端末で、機能ブロックコード及び無線コントローラーコードで構成された無線アプリケーションの実行方法であって、
前記無線アプリケーションに対する実行命令を受信する段階と、
前記無線アプリケーションのパイプライン構成メタデータを参照して、前記無線コントローラーコードと前記機能ブロックコードを保存部からローディングする段階とを含み、
前記無線コントローラーコードは、前記アプリケーションプロセッサまたは、前記無線プロセッサによって実行され、前記ユーザ定義機能ブロックは、前記無線プロセッサによって実行され、
前記機能ブロックコード、無線コントローラーコード及びパイプライン構成メタデータは、無線アプリケーションパッケージに含まれて前記端末に配布されることを特徴とする無線アプリケーション実行方法。
【請求項１７】
前記機能ブロックコードは、
前記端末の無線プロセッサに含まれた専用のハードウェア加速器を利用して実現された機能ブロックを呼び出すコードであるか、または前記端末の無線プロセッサのコア上で動作する実行コードである標準機能ブロックコードと、
前記標準機能ブロックコードとして提供されないか、または前記標準機能ブロックコードが提供する機能をカスタマイズしたユーザ定義機能ブロックコードとを含むことを特徴とする、請求項１６に記載の無線アプリケーション実行方法。
【請求項１８】
前記アプリケーションプロセッサと前記無線プロセッサのうち少なくとも１つで実行される無線コントロールフレームワークが前記無線コントローラーコード及び前記機能ブロックコードに動作環境を提供することを特徴とする、請求項１６に記載の無線アプリケーションの実行方法。
【請求項１９】
前記無線コントロールフレームワークが前記アプリケーションプロセッサと前記無線プロセッサで動作する場合、前記無線コントロールフレームワークは、前記アプリケーションプロセッサ上で実行される実行部分と前記無線プロセッサ上で実行される実行部分とで分離構成されることを特徴とする、請求項１８に記載の無線アプリケーションの実行方法。
【請求項２０】
前記無線コントロールフレームワークが前記アプリケーションプロセッサと前記無線プロセッサで動作する場合、前記無線コントローラーコードは、前記アプリケーションプロセッサ上で動作することを特徴とする、請求項１８に記載の無線アプリケーションの実行方法。
【請求項２１】
前記無線コントロールフレームワークが前記無線プロセッサでのみ動作する場合、前記無線コントローラーコードは、前記無線プロセッサ上で動作することを特徴とする、請求項１８に記載の無線アプリケーションの実行方法。
【請求項２２】
前記無線コントロールフレームワークは、
前記端末に対する前記無線アプリケーションのインストール／アンインストール及びインスタンス（instance）生成／削除を行い、前記無線アプリケーションの無線パラメータを管理する設定マネージャー（ＣＭ：Configuration Manager）と、
前記無線アプリケーションの活性化／非活性化及び無線アプリケーション間のユーザデータフロースイッチを管理する無線連結マネージャー（ＲＣＭ：Radio Connection Manager）と、
ユーザデータパッケージの送受信及びフローを制御するフローコントローラー（ＦＣ：Flow Controller）と、
無線アプリケーションからのスペクトル資源に対する要請をスケジューリングするマルチ無線コントローラー（ＭＲＣ：Multi-Radio Controller）と、
無線アプリケーションの間に無線資源の共有させるリソースマネージャー（ＲＭ：Resource Manager）のうち少なくとも１つを含むことを特徴とする請求項１８に記載の無線アプリケーションの実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア定義無線（ＳＤＲ：Software-defined Radio）端末機のための無線アプリケーションの配布、設置及び実行方法に関し、より詳細には、ハードウェアとユーザアプリケーションに対して独立的に動作するソフトウェア定義無線（ＳＤＲ：Software-Defined Radio）無線アプリケーションの配布、設置及び実行方法に関する。
【背景技術】
【０００２】
通信技術が発達するに伴い、ユーザの嗜好や目的によって様々な新しい種類の無線アプリケーションが使用されている。ＬＴＥ（登録商標）、ＷＣＤＭＡ（登録商標）、ＷＩＭＡＸ（登録商標）、ＧＳＭ（登録商標）などのような無線アプリケーション大部分は、モデムと相互作用しながら端末機上で実行される。
【０００３】
このような無線アプリケーションがモデムを制御するためには、モデム製造社またはモデルによってモデムが有する固有の命令語を理解し、これに適合するモジュールが開発されて適用されなければならない。これは、結果的に、或る無線アプリケーションは、ただ特定の製造社や特定のモデムのみで実行される結果をもたらす。これを解決するために、様々な種類のモデムに符合するそれぞれ異なる制御命令をすべてアプリケーションに含むか、各モデム別に異なる実行ファイルを製作して配布しなければならない。
【０００４】
しかし、このような方法では、現在市販されている多様なモデムのハードウェアに合わせて個別的に最適化しなければならないので、すべての端末機で作動が可能な無線アプリケーションを製作することは、事実上不可能であるだけでなく、１つの無線アプリケーションを製作するために莫大な人力が投入されなければならない問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述したような問題点を解決するために、本発明の目的は、ハードウェアとユーザアプリケーションに非依存的に動作するソフトウェア定義無線アプリケーションの配布方法を提供する。
【０００６】
前述したような問題点を解決するために、本発明の他の目的は、ハードウェアとユーザアプリケーションに非依存的に動作するソフトウェア定義無線アプリケーションの設置方法を提供する。
【０００７】
前述したような問題点を解決するために、本発明のさらに他の目的は、ハードウェアとユーザアプリケーションに非依存的に動作するソフトウェア定義無線アプリケーションの実行方法を提供する。
【課題を解決するための手段】
【０００８】
前記目的を達成するために、本発明は、無線アプリケーションを端末に設置するための無線アプリケーションパッケージを利用した無線アプリケーションの配布方法であって、無線アプリケーションパッケージを生成する段階と、無線アプリケーションパッケージをサーバーにアップロードする段階とを含み、前記無線アプリケーションパッケージは、無線コントローラーコード、機能ブロックコード及びパイプライン構成メタデータを含むことを特徴とする無線アプリケーション配布方法を提供する。
【０００９】
ここで、前記機能ブロックコードは、前記端末の無線プロセッサに含まれた専用のハードウェア加速器を利用して実現された機能ブロックを呼び出すコードであってもよく、前記端末の無線プロセッサのコア上で動作する実行コードである標準機能ブロックコードおよび前記標準機能ブロックコードとして提供されなくてもよく、前記標準機能ブロックコードが提供する機能をカスタマイズしたユーザ定義機能ブロックコードを含んでもよい。
【００１０】
この際、前記無線アプリケーションパッケージは、前記標準機能ブロックコードが前記端末の無線プロセッサ上で動作可能な実行コードとして提供される場合、前記実行コードで構成された無線ライブラリをさらに含むことができる。
【００１１】
この際、前記ユーザ定義機能ブロックコードは、前記端末の無線プロセッサによって実行される実行コード形態、前記端末の無線プロセッサによって実行される実行コードにコンパイル可能なソースコード形態及び中間表現（ＩＲ：Intermediate Representation）形態のうち少なくとも１つであってもよい。この際、前記ユーザ定義機能ブロックコードがソースコード形態または中間表現形態の場合、暗号化され、前記無線アプリケーションパッケージに含まれてもよい。
【００１２】
この際、前記パイプライン構成メタデータは、前記無線アプリケーションのデータ送信または受信機能のための前記無線コントローラーコード、前記ユーザ定義機能ブロック、標準機能ブロックの連結関係を定義することができる。
【００１３】
ここで、前記無線コントローラーコードは、前記端末のアプリケーションプロセッサまたは無線プロセッサによって実行される実行コード形態であり、前記無線アプリケーションの状況情報（ｃｏｎｔｅｘｔ  ｉｎｆｏｒｍａｔｉｏｎ）をユーザアプリケーションに提供するか、または、前記端末のアプリケーションプロセッサまたは無線プロセッサに存在する通信サービス階層のネットワーキングスタックとデータを送受信するように構成されてもよい。
【００１４】
前記他の目的を達成するために、本発明は、無線アプリケーションパッケージを利用してユーザ端末に無線アプリケーションを設置する方法であって、無線アプリケーションパッケージをサーバーからダウンロードする段階と、前記無線アプリケーションパッケージに含まれた無線アプリケーションを前記ユーザ端末に設置する段階とを含み、前記無線アプリケーションパッケージは、無線コントローラーコード、機能ブロックコード及びパイプライン構成メタデータを含むことを特徴とする無線アプリケーション設置方法を提供する。
【００１５】
ここで、前記機能ブロックコードは、前記端末の無線プロセッサに含まれた専用のハードウェア加速器を利用して実現された機能ブロックを呼び出すコードであってもよく、前記端末の無線プロセッサのコア上で動作する実行コードである標準機能ブロックコードおよび前記標準機能ブロックコードとして提供されなくてもよく、前記標準機能ブロックコードが提供する機能をカスタマイズしたユーザ定義機能ブロックコードを含んでもよい。
【００１６】
この際、前記無線アプリケーションパッケージは、前記標準機能ブロックコードが前記端末の無線プロセッサのコア上で動作可能な実行コードとして提供される場合、前記実行コードで構成された無線ライブラリをさらに含むことができる。
【００１７】
ここで、前記ユーザ定義機能ブロックコードは、前記端末の無線プロセッサによって実行される実行コード形態、前記端末の無線プロセッサによって実行される実行コードにコンパイル可能なソースコード形態及び中間表現（ＩＲ：Intermediate Representation）形態のうち少なくとも１つであってよい。前記ユーザ定義機能ブロックコードがソースコード形態または中間表現形態の場合、前記ユーザ定義機能ブロックコードは、前記端末のアプリケーションプロセッサまたは無線プロセッサによって実行されるコンパイラーによってコンパイルされてもよい。前記ユーザ定義機能ブロックコードがソースコード形態または中間表現形態の場合、暗号化され、前記無線アプリケーションパッケージに含まれてもよい。
【００１８】
ここで、前記無線コントローラーコードは、前記端末のアプリケーションプロセッサまたは無線プロセッサによって実行される実行コード形態であり、前記無線アプリケーションの状況情報（context information）をユーザアプリケーションに提供するか、または、前記端末のアプリケーションプロセッサまたは無線プロセッサに存在する通信サービス階層のネットワーキングスタックとデータを送受信するように構成されてもよい。
【００１９】
ここで、前記設置する段階は、前記パイプライン構成メタデータを参照して、前記無線コントローラーコード及び前記機能ブロックコードを前記端末のアプリケーションプロセッサ及び無線プロセッサのうち少なくとも１つがアクセス可能な格納装置に設置するように構成されてもよい。
【００２０】
前記さらに他の目的を達成するために本発明は、アプリケーションプロセッサと無線プロセッサを具備した端末において、機能ブロックコード及び無線コントローラーコードで構成された無線アプリケーションの実行方法であって、前記無線アプリケーションに対する実行命令を受信する段階と、前記無線アプリケーションのパイプライン構成メタデータを参照して、前記無線コントローラーコードと前記機能ブロックコードとを格納部からローディングする段階とを含み、前記無線コントローラーコードは、前記アプリケーションプロセッサまたは前記無線プロセッサによって実行され、前記ユーザ定義機能ブロックは、前記無線プロセッサによって実行されることを特徴とする無線アプリケーション実行方法を提供する。
【００２１】
ここで、前記機能ブロックコードは、前記端末の無線プロセッサに含まれた専用のハードウェア加速器を利用して実現された機能ブロックを呼び出すコードであってもよく、前記端末の無線プロセッサのコア上で動作する実行コードである標準機能ブロックコードおよび前記標準機能ブロックコードとして提供されないかまたは前記標準機能ブロックコードが提供する機能をカスタマイズしたユーザ定義機能ブロックコードを含んでもよい。
【００２２】
ここで、前記アプリケーションプロセッサと前記無線プロセッサのうち少なくとも１つで実行される無線コントロールフレームワークが前記無線コントローラーコード及び前記機能ブロックコードに動作環境を提供することができる。
【００２３】
この際、前記無線コントロールフレームワークが前記アプリケーションプロセッサと前記無線プロセッサで動作する場合、前記無線コントロールフレームワークは、前記アプリケーションプロセッサ上で実行される実行部分と前記無線プロセッサ上で実行される実行部分とに分離して構成されてもよい。この際、前記無線コントロールフレームワークが前記アプリケーションプロセッサと前記無線プロセッサで動作する場合、前記無線コントローラーコードは、前記アプリケーションプロセッサ上で動作するように構成されてもよい。
【００２４】
ここで、前記無線コントロールフレームワークが前記無線プロセッサでのみ動作する場合、前記無線コントローラーコードは、前記無線プロセッサ上で動作するように構成されてもよい。
【００２５】
ここで、前記無線コントロールフレームワークは、前記端末に対する前記無線アプリケーションのインストール／アンインストール及びインスタンス（instance）生成／削除を行い、前記無線アプリケーションの無線パラメータを管理する設定マネージャー（ＣＭ：Configuration Manager）、前記無線アプリケーションの活性化／非活性化及び無線アプリケーション間のユーザデータフロースイッチを管理する無線連結マネージャー（ＲＣＭ：Radio Connection Manager）、ユーザデータパケットの送受信及びフローを制御するフローコントローラー（ＦＣ：Flow Controller）、無線アプリケーションからのスペクトル資源に対する要請をスケジューリングするマルチ無線コントローラー（ＭＲＣ：Multi-Radio Controller）及び無線アプリケーションの間に無線資源の共有させるリソースマネージャー（ＲＭ：Resource Manager）のうち少なくとも１つを含むことができる。
【発明の効果】
【００２６】
前述したような本発明によるソフトウェア定義無線端末装置を利用すれば、標準ベースバンドＡＰＩを利用して互いに異なる構造のモデムチップを有する端末機で同一の無線アプリケーションを実行することができる。また、最適のデジタル信号処理実行のために無線デジタル通信に必要な様々なデジタル信号処理アルゴリズムを標準ベースバンドＡＰＩで提供することによって、モデムハードウェア製作社は、標準ベースバンドＡＰＩに含まれた各ブロックの複雑度または電力消費によってハードウェアまたはソフトウェア的実現を選択することができ、無線アプリケーション製作社は、標準ベースバンドＡＰＩを利用してモデムチップに独立的な無線アプリケーションを製作することができる。また、標準ベースバンドＡＰＩに含まれない機能を実現するために、ユーザ定義形態のブロックを提供することによって、標準ベースバンドＡＰＩの多様な拡張を可能にする。
【図面の簡単な説明】
【００２７】
【図１】図１は、本発明による無線アプリケーションが動作するソフトウェアアーキテクチャー環境を説明するためのブロック図である。
【図２】図２は、本発明による無線アプリケーションが動作するソフトウェアアーキテクチャー環境を説明するためのブロック図である。
【図３】図３は、本発明による無線アプリケーションの配布から実行までの過程を示す概念図である。
【図４】図４は、本発明による無線アプリケーションの配布から実行までの過程を示す概念図である。
【図５】図５は、本発明による無線アプリケーションの配布から実行までの過程を示す概念図である。
【図６】図６は、本発明による無線アプリケーションパッケージの構成例を説明するためのブロック図である。
【図７】図７は、本発明による無線アプリケーションがオンラインストアで配布される例を示す概念図である。
【図８】図８は、本発明の一実施例によるソースコード形態のユーザ定義機能ブロックコードの配布及び設置過程を説明するブロック図である。
【図９】図９は、本発明の一実施例によるソースコード形態のユーザ定義機能ブロックコードの配布及び設置過程の他の例を説明するブロック図である。
【図１０】図１０は、本発明の一実施例による標準ベースバンドインターフェースの例を示す概念図である。
【図１１】図１１は、本発明の一実施例による無線アプリケーションの配布過程を説明するためのフローチャートである。
【図１２】図１２は、本発明の一実施例による無線アプリケーションの設置過程を説明するためのフローチャートである。
【発明を実施するための形態】
【００２８】
本発明は、多様な変更を行うことができ、様々な実施例を有することができるところで、特定の実施例を図面に示し詳細に説明する。しかし、これは、本発明を特定の実施形態に限定しようとするものではなく、本発明の思想及び技術範囲に含まれるすべての変更、均等物ないし代替物を含むものと理解しなければならない。各図面を説明するに際して、類似の参照符号を類似の構成要素について使用した。
【００２９】
第１、第２、Ａ、Ｂなどの用語は、多様な構成要素を説明するのに使用されてもよいが、前記構成要素は、前記用語によって限定されるべきではない。前記用語は、１つの構成要素を他の構成要素から区別する目的でのみ使用される。例えば、本発明の権利範囲を逸脱することなく、第１構成要素は、第２構成要素として命名されることができ、同様に、第２構成要素も第１構成要素として命名されることができる。及び／またはという用語は、複数の関連された記載された項目の組み合わせまたは複数の関連された記載された項目のうちいずれかの項目を含む。
【００３０】
任意の構成要素が他の構成要素に“連結されて”いるか、“接続されて”いると言及されたときには、他の構成要素に直接的に連結されているか、または接続されていることもできるが、中間に他の構成要素が存在することもできると理解しなければならない。一方、任意の構成要素が他の構成要素に“直接連結されて”いるか、“直接接続されて”いると言及されたときには、中間に他の構成要素が存在しないものと理解しなければならない。
【００３１】
本出願で使用された用語は、ただ特定の実施例を説明するために使用されたものであって、本発明を限定しようとする意図ではない。単数の表現は、文脈上、明白に異なって意味しない限り、複数の表現を含む。本出願で、“含む”または“有する”などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定しようとするものであって、１つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在または付加可能性をあらかじめ排除しないものと理解しなければならない。
【００３２】
異なって定義しない限り、技術的や科学的な用語を含んでここで使用されるすべての用語は、本発明の属する技術分野における通常の知識を有する者によって一般的に理解されるものと同一の意味を有している。一般的に使用される辞書に定義されているもののような用語は、関連技術の文脈上有する意味と一致する意味を有するものと解釈しなければならないし、本出願で明白に定義しない限り、理想的または過度に形式的な意味として解釈しない。
【００３３】
以下、本発明による好ましい実施例を添付の図面を参照して詳細に説明する。本発明を説明するに際して、全体的な理解を容易にするために図面上の同一の構成要素については、同一の参照符号を使用し、同一の構成要素について重複された説明を省略する。
【００３４】
本発明を説明するために全般的に使用される用語に関する簡略な定義を整理する。下記の用語以外の用語については、本明細書内の適切な部分で定義を提供する。
【００３５】
−無線アプリケーション（ＲＡ：Radio Application）：本発明による配布、設置、動作フレームワークの対象となる、具体的なハードウェア構成及びユーザアプリケーションに非依存的な無線通信環境を提供するためのアプリケーションである。無線アプリケーションは、無線プロセッサ上で動作するか、無線プロセッサ実行部分とアプリケーションプロセッサ実行部分とで構成され、２つのプロセッサ上で動作するように構成されることができる。無線アプリケーションは、無線コントローラー及び機能ブロックで構成される。機能ブロックには、標準機能ブロックとユーザ定義機能ブロックがある。
【００３６】
−無線アプリケーションパッケージ（ＲＡＰ：Radio Application Package）：無線アプリケーションの配布形態として、無線アプリケーションの構成要素である無線コントローラー、機能ブロックとともにパイプライン構成メタデータを含む。また、無線アプリケーションパッケージは、追加的に無線ライブラリ（Radio Library）を含むことができる。
【００３７】
−標準機能ブロック（ＳＢＦ：Standard Function Block）：標準機能ブロックは、各ブロックの機能と、当該ブロックを実行するための関数の名前が標準化された標準的機能ブロックである。標準機能ブロックは、無線プラットホームチップベンダーが標準機能ブロックを製作する場合、ハードウェア製造社が実現した標準機能ブロックの集合体になり、ドライバーとともに提供されることができる。無線プロセッサのコアで動作する実行コードで実現される場合、無線ライブラリ（Radio Library）と指称することもできる。標準機能ブロックは、専用のハードウェア加速器を利用して実現されるか、または無線プロセッサのコアで動作する実行コードで実現されることができる。標準機能ブロックは、各関数の名前と機能が標準化されており、標準ベースベンドＡＰＩヘッダー（standard baseband API header）ファイルによって定義されることができる。
【００３８】
−ユーザ定義機能ブロック（ＵＤＦ：User Defined Function Block）：標準機能ブロックとして提供されないか、または標準機能ブロックで存在する機能をさらにカスタマイズ（customizing）する必要性がある場合、無線アプリケーション提供者によって提供されることができる機能ブロックであって、無線プロセッサのコアで実行されるように実現されることができる。ユーザ定義機能ブロックは、実行コード、ソースコード、中間表現形態のコードとして提供されることができる。
【００３９】
−ユーザ定義機能ブロック（User Defined Function Block、ＵＤＦＢ）集合：無線アプリケーション提供者が提供したユーザ定義機能ブロックの集合体である。
【００４０】
＜無線アプリケーションの構成及びソフトウェアアーキテクチャー＞
図１及び図２は、本発明による無線アプリケーションが動作するソフトウェアアーキテクチャー環境を説明するためのブロック図である。
【００４１】
図１及び図２を参照すれば、本発明による無線ソフトウェアアーキテクチャーは、アプリケーションプロセッサ（ＡＰ：Application Processor）上で動作するアプリケーションプロセッサ階層１１０と無線プロセッサ（ＲＰ：Radio Processor；ＢＰ（Baseband Processor）とも言う）上で動作する無線プロセッサ階層１２０とで構成されることができる。
【００４２】
図１は、後述する無線コントロールフレームワーク（ＲＣＦ；Radio Control Framework）がアプリケーションプロセッサ実行部分と無線プロセッサ実行部分とに分離し、２つのプロセッサ上で動作するソフトウェアアーキテクチャー環境を例示したものであり、図２は、後述する無線コントロールフレームワークが無線プロセッサ上で動作するソフトウェアアーキテクチャー環境を例示したものである。
【００４３】
アプリケーションプロセッサ上には、グーグル（Ｇｏｏｇｌｅ：登録商標）のアンドロイド（Ａｎｄｒｏｉｄ：登録商標）ＯＳとアップル（Ａｐｐｌｅ：登録商標）のｉＯＳ（登録商標）のような非リアルタイム（non-realtime）オペレーティングシステム（Operating Systems、ＯＳ）が動作し、無線プロセッサ上には、以下で無線ＯＳと指称されるリアルタイムオペレーティングシステム（（Realtime  ＯＳ）が動作する。以下では、明確な区別のために、アプリケーションプロセッサ階層で動作する非リアルタイムオペレーティングシステムを「オペレーティングシステム（ＯＳ）」、無線プロセッサ階層で動作するリアルタイムオペレーティングシステムは、「リアルタイムオペレーティングシステム（Ｒａｄｉｏ  ＯＳ）」に区分して名称する。
【００４４】
以下は、アプリケーションプロセッサ階層、無線プロセッサ階層及び無線コントロールフレームワークを構成する構成要素に関する詳細である。
【００４５】
（１）アプリケーションプロセッサ階層
アプリケーションプロセッサ階層は、図１及び図２に示されたように、次の構成要素を含む。
【００４６】
−ドライバー（driver）１１１、２１１は、与えられたオペレーティングシステム上でハードウェアデバイス（カメラ、スピーカーなど）を駆動する。
【００４７】
−オペレーティングシステム１１２、２１２は、アンドロイド、ｉＯＳのように通常的なモバイルデバイスで動作する非−リアルタイムオペレーティングシステム（non-realtime ＯＳ）を意味する。
【００４８】
無線コントロールフレームワークがアプリケーションプロセッサと無線プロセッサで動作する構成（すなわち、図１で例示される構成）なら、オペレーティングシステム上に無線コントロールフレームワークのアプリケーションプロセッサ階層実行部分１１４が存在してもよい。もし、無線コントロールフレームワークが無線プロセッサのみで動作する構成（すなわち、図２で例示される構成）なら、アプリケーションプロセッサ階層には、無線コントロールフレームワークが存在しない。
【００４９】
無線コントロールフレームワークがアプリケーションプロセッサと無線プロセッサで動作する構成（図２）で、アプリケーションプロセッサのオペレーティングシステム上に通信サービス階層（Communication service Layer）１１３が存在してもよい。
【００５０】
通信サービス階層は、後述する３種サービスのうち少なくとも一部を無線コントロールフレームワークに提供する階層である。
【００５１】
第一のサービスは、administrativeに関連したサービスであって、無線アプリケーションのインストール／アンインストール、インスタンス（instance）の生成／削除、そして、各ステータス（status：インストール、instance、活動）の無線アプリケーションのリスト獲得に関連したサービスである。
【００５２】
第二のサービスは、接続制御に関連したサービスであって、無線アプリケーションを実行／非実行、データフロー生成、ネットワーク割り当て生成、そして各ステータス（インストール、instance、活動）の無線アプリケーションのリスト獲得に係わるサービスである。
【００５３】
最後に、第三のサービスは、データフローに関連したサービスであって、ユーザデータを送受信するのに関連したサービスである。
【００５４】
前述した３つのサービスのうち少なくとも一部のサービスを提供するための通信サービス階層構成の１つの例として、通信サービス階層は、管理者（administrator）アプリケーション、移動性政策（mobility policy）マネージャーアプリケーション、ネットワーキングスタック（networking stack）（通信サービス階層で動作するプロトコルスタック（protocolstack））及びモニターアプリケーションのうち少なくとも一部を含んで構成されてもよい。
【００５５】
しかし、通信サービス階層は、前述した構成要素のうち一部だけを含んでもよく、前述した構成要素以外の追加的な構成要素を含んでもよい。または、通信サービス階層内には、少なくとも２つ以上の前述した構成要素の機能が統合された構成要素で構成されてもよい。また、前述した構成要素は、通信サービス階層が行わなければならないサービスを支援するために通信サービス階層が備えなければならない構成要素の一例に過ぎないものである。すなわち、通信サービス階層は、通信サービス階層が行う役目によって定義され、前述した構成要素の例示によって通信サービス階層の構成が限定されるものではない。
【００５６】
無線コントロールフレームワークがアプリケーションプロセッサと無線プロセッサで動作する構成（図１）で、本発明の配布、設置及び動作方法の対象となる無線アプリケーション１３１、１３４、１３７は、それぞれアプリケーションプロセッサ階層実行部分１３２、１３５、１３８と無線プロセッサ階層実行部分１３３、１３６、１３９とで構成されてもよい。無線アプリケーションのアプリケーションプロセッサ階層実行部分である無線コントローラー（ＲＣ：Radio Controller）は、通信サービス階層（communicationservice layer）のモニターに状況情報（context information）を送るか、または通信サービス階層のネットワーキングスタックとデータを交換する役目を行うように構成されてもよい。
【００５７】
（２）無線プロセッサ階層
無線プロセッサ階層は、図１及び図２に示されたように次の構成要素を含む。
【００５８】
−無線ＯＳ  １２１、２２１は、リアルタイムオペレーティングシステムである。
無線コントロールフレームワークがアプリケーションプロセッサと無線プロセッサで動作する構成（すなわち、図１で例示される構成）なら、無線ＯＳ上には、無線コントロールフレームワークの無線プロセッサ実行部分１２４が存在することができる。もし、無線コントロールフレームワークが無線プロセッサのみで動作する構成（すなわち、図２で例示される構成）なら、アプリケーションプロセッサ階層には、無線コントロールフレームワークが存在せず、無線プロセッサ階層のみに無線コントロールフレームワーク２３０が存在する。
【００５９】
−無線コントロールフレームワークが無線プロセッサのみで動作する構成（すなわち、図２で例示される構成）なら、無線ＯＳ  ２２１上に通信サービス階層（Communication service Layer）２２２が存在する。
【００６０】
図２に例示された通信サービス階層２２２の役目及び構成例は、図１で例示された通信サービス階層１１３の役目及び構成例と同一のなで説明を省略する。
【００６１】
−無線プラットホームドライバー（Radio Platform Driver）１２２、２２３は、一般的なハードウェアドライバーのようにハードウェア無線プラットホームを認識するために無線ＯＳによって要求される構成要素である。
【００６２】
−無線プラットホームハードウェア（Radio Platform Hardware）１２３、２２４は、一般的に無線プロセッサのコアとベースバンド加速器とで構成されることができる。標準機能ブロックのために用意するベースバンド加速器は、しばしばＡＳＩＣ（Application-Specific Integrated Circuit）の形態で提供される。
【００６３】
−無線コントロールフレームワークが無線プロセッサでのみ動作する構成（すなわち、図２で例示される構成）なら、本発明の配布、設置及び動作方法の対象となる無線アプリケーション２３１、２３４、２３７は、無線プロセッサ階層で動作する。
【００６４】
それぞれの無線アプリケーションの無線コントローラー（ＲＣ：Radio Controller）１３２、１３５、１３８は、通信サービス階層（communicationservicelayer）のモニターに状況情報（context information）を送るか、または通信サービス階層のネットワーキングスタックとデータを交換する役目を果たす。
【００６５】
マルチ無線インターフェース（Multi Radio Interface、ＭＵＲＩ）は、前記通信サービス階層とコントロールフレームワークとの間のインターフェースであり、統合無線アプリケーションインターフェース（Unified Radio Application Interface、ＵＲＡＩ）は、無線アプリケーションとコントロールフレームワークとの間のインターフェースである。
【００６６】
無線アプリケーションは、モバイル端末の通信を可能にするアプリケーションであって、無線アプリケーションパッケージ（ＲＡＰ：Radio Application Package）形態で配布することができる。無線アプリケーションパッケージの構成要素は、次の通りである。
【００６７】
１）ユーザ定義機能ブロック（User defined Function Block、ＵＤＦＢ）
２）パイプライン構成メタデータ（Metadata）
３）無線コントローラーコード（ＲＣ code）
４）無線ライブラリ（Radio Library）：無線ライブラリは、標準機能ブロックが実行コード形態で配布される場合に、無線アプリケーションパッケージに実行コード形態で一緒に含まれて配布される。
【００６８】
無線アプリケーションパッケージは、アプリケーションプロセッサ階層のＯＳにダウンロードされ、ユーザ定義機能ブロックコードと無線ライブラリは、パイプライン構成メタデータを参照してアプリケーションプロセッサから無線プロセッサにローディングされる過程を経て無線プロセッサ階層の無線ＯＳにローディングされてもよい。
【００６９】
（３）無線コントロールフレームワーク
無線コントロールフレームワーク（ＲＣＦ：Radio Control Framework）１３０、２３０は、無線アプリケーションの動作環境を提供する構成要素である。
【００７０】
無線コントロールフレームワークがアプリケーションプロセッサと無線プロセッサで動作する構成（すなわち、図１で例示される構成）なら、無線コントロールフレームワークは、２つのグループ１１４、１２４に分けられる。すなわち、１つのグループは、アプリケーションプロセッサ上で動作し、他の１つのグループは、無線プロセッサ上で動作する。無線コントロールフレームワークのどんな構成要素がリアルタイムで動作（無線プロセッサ上で動作）とどんな構成要素が非−リアルタイムで動作（アプリケーションプロセッサ上で動作）するかは、それぞれのベンダーによって異なるように決定されることができる。
【００７１】
無線コントロールフレームワークが無線プロセッサでのみ動作する構成（すなわち、図２で例示される構成）なら、無線コントロールフレームワークは、無線プロセッサ実行部分とアプリケーション実行部分との区分なく無線プロセッサ階層でのみ存在する。
【００７２】
無線コントロールフレームワーク（Radio Control Framework、ＲＣＦ）は、基本的に次の５つの構成要素の少なくとも一部を含み、無線アプリケーションを管理するように構成されでもよい。
【００７３】
しかし、無線コントロールフレームワークは、後述する５つの構成要素のうち一部だけを含んでもよく、５つの構成要素以外の構成要素をさらに含んでもよい。または、無線コントロールフレームワークは、少なくとも２つ以上の後述する構成要素の機能が統合された構成要素で構成されてもよい。
【００７４】
無線コントロールフレームワークの機能及び役目は、後述する構成要素が行う機能によって定義され、後述する例示的構成要素によって無線コントロールフレームワークの構成が限定されるものではない。すなわち、無線コントロールフレームワークは、後述する構成要素の機能のうち少なくとも一部を行うための多様な構成を有することができる。
【００７５】
１）設定マネージャー（ＣＭ：Configuration Manager）：マルチ無線端末装置に対する無線アプリケーションのインストール／アンインストール、インスタンスの生成／削除と無線アプリケーションの無線パラメータに対するアクセス管理。
【００７６】
２）無線連結マネージャー（ＲＣＭ：Radio Connection Manager）：ユーザ要求に応じた無線アプリケーションの活性化／非活性化及び１つの無線アプリケーションから他の無線アプリケーションにスイッチングされることができるユーザデータフローの全体的な管理。
【００７７】
３）フローコントローラー（ＦＣ：Flow Controller）：ユーザデータパッケージの送信と受信及びフロー制御。
【００７８】
４）マルチ無線コントローラー（ＭＲＣ：Multiradio Controller）：無線アプリケーション間の相互運用性問題をあらかじめ感知するために、同時に実行される無線アプリケーションから提起される無線資源（radio resources）に対する要求をスケジューリングする。
【００７９】
５）リソースマネージャー（ＲＭ：Resource Manager）：リアルタイム要求事項を充足させると同時に、活性化された無線アプリケーション間にマルチ無線資源を共有するためのマルチ無線資源の管理。
【００８０】
＜本発明による無線アプリケーションの配布、設置及び動作方法＞
図３〜図５は、本発明による無線アプリケーションの配布から実行までの過程を示す概念図である。
【００８１】
本発明の無線アプリケーションに含まれるユーザ定義機能ブロックコード（user-defined function block code）は、ソースコード（sourcecode）形態、実行コード（executable code）形態（すなわち、object code）及び中間表現（ＩＲ：IntermediateRepresentation）形態のうち少なくとも１つの方法で提供されることができ（２つの以上の形態が混合して提供されてもよい）、その提供形態によって図３〜図５のうち少なくとも１つに示す配布、設置及び動作方法が選択されることができる。
【００８２】
例えば、図３は、ユーザ定義機能ブロックコードがソースコードの形態として配布されて実行される過程を示し、図４は、ユーザ定義機能ブロックコードが標準機能ブロックコード（無線ライブラリ）とともに実行コードの形態として配布され実行される過程を示し、図５は、ユーザ定義機能ブロックコードが中間表現形態として配布され実行される過程を示す。
【００８３】
以下ではまず、本発明による無線アプリケーションの配布のための無線アプリケーションパッケージ（ＲＡＰ：Radio Application Package）の構成について詳述する。
【００８４】
図６は、本発明による無線アプリケーションパッケージの構成例を説明するためのブロック図である。
【００８５】
前述したように、本発明の一実施例による無線アプリケーションは、機能ブロックと無線コントローラーとで構成することができ、無線アプリケーションパッケージ５１０は、これらのためのユーザ定義機能ブロックコード５１１、無線ライブラリと無線コントローラーコード５１２を含んで構成されてもよい。したがって、無線アプリケーションの配布のための無線アプリケーションパッケージは、ユーザ定義機能ブロックコード５１１及び無線コントローラーコード５１２を基本的に含み、パイプライン構成メタデータ（pipeline configuration meta-data）５１３をさらに含んで構成することができる。
【００８６】
無線コントローラーコードは、図１及び図２を通じて前述したソフトウェアアーキテクチャー環境によって無線プロセッサとアプリケーションプロセッサのうちいずれかのプロセッサの実行コードの形態で無線アプリケーションパッケージに含まれるかが決定される。すなわち、無線コントロールフレームワークがアプリケーションプロセッサ実行部分と無線プロセッサ実行部分とに分離した場合は、無線コントローラーコードは、アプリケーションプロセッサで実行されるコードで構成されてもよく、無線コントロールフレームワークが無線プロセッサのみで実行される場合には、無線コントローラーコードは、無線プロセッサに実行されるコードで構成されてもよい。一方、ユーザ定義機能ブロックコードは、前述したように、いずれの場合でも、無線プロセッサで実行されるコードとして無線プロセッサで実行可能な実行コード、ソースコード、中間表現形態のコードとして無線アプリケーションパッケージに含まれてもよい。
【００８７】
パイプライン（pipeline）とは、無線アプリケーションの送信または受信機能を実現するための無線アプリケーションの無線コントローラー、ユーザ定義機能ブロック及び標準機能ブロックの組合とその連結関係を意味するものであって、パイプライン構成メタデータによって定義されてもよい。
【００８８】
また、標準機能ブロックコードが無線プロセッサのコアで実行可能な実行コード形態で構成されたら、アプリケーションパッケージ５１０は、実行コード形態（無線プロセッサのコアが実行可能な実行コード）の無線ライブラリ５１４をさらに含んで構成されてもよいことは、前述した通りである。
【００８９】
無線アプリケーションパッケージ５１０は、サーバー５３０からアプリケーションプロセッサ階層のＯＳにダウンロードされ、ユーザ定義機能ブロックコード５１１と無線ライブラリ５１４は、パイプライン構成メタデータ５１３を参照してアプリケーションプロセッサから無線プロセッサにローディングされる過程を経て無線プロセッサ階層の無線ＯＳにローディングされてもよい。
【００９０】
図３〜図５を参照すれば、本発明による無線アプリケーションの配布から実行までの過程はデザイン及び配布段階、設置段階及び実行段階を含む３段階で構成されてもよい。
【００９１】
（１）デザイン／配布段階（design/distribution time）
デザイン／配布段階（図３の２１０、図４の３１０、図５の４１０）は、無線アプリケーションを製作し配布する段階であって、無線アプリケーションの供給者は、無線アプリケーションを実現するための無線コントローラーコード（Radio Controller Code）２１２とユーザ定義機能ブロックコード（User-definedfunction code）２１３を含む無線アプリケーションパッケージ（Radio ApplicationPackage）２２０を生成する。この際、無線コントローラーコードとユーザ定義機能ブロックコードは、標準ベースバンドインターフェースを定義した標準ベースバンドＡＰＩヘッダー（standard baseband interface header）２１４を利用して標準機能ブロックを呼び出すように作成することができる。一方、無線コントローラーコードは、コンパイラー２１５を経て実行コードの形態で無線アプリケーションパッケージ２２０に含まれる。
【００９２】
図４の場合、ユーザ定義機能ブロックコード３１４もまた、コンパイラー３１６−１、…、３１６−３を経て実行コードの形態で無線アプリケーションパッケージ３１７−１、…、３１７−３に含まれ、図５の場合、ユーザ定義機能ブロックコード４１３がフロントエンド（front-end）コンパイラー４１６によって中間表現形態でコンパイルされ、無線アプリケーションパッケージ４２０に含まれる。
【００９３】
また、図３の場合のように、ユーザ定義機能ブロックコードがソースコードの形態で配布される場合、選択的な（optional）構成要素である暗号化器（encryptor）２１６による暗号化過程を経て暗号化されたソースコードとして配布されてもよい。このようにユーザ定義機能ブロックコードがソースコード形態で配布されれば、ユーザ定義機能ブロックコードが実行される端末でコンパイルされるようにして、ユーザ定義機能ブロックコードの装置独立性を向上することができる。
【００９４】
一方、図４に示されたように、ユーザ定義機能ブロックコードが端末ですぐ実行可能になるように実行コードの形態で配布される場合、ユーザ定義機能ブロックコード３１４を複数のコンパイラー３１６−１、…、３１６−３のうち端末の実行環境に符合するコンパイラーでコンパイルし、実行コード形態でアプリケーションパッケージに含ませることができる。また、無線プロセッサのコアで動作する標準機能ブロックの集合である無線ライブラリ（radio library）３１３も、端末の実行環境に符合するコンパイラーによってコンパイルされ、実行コード形態でアプリケーションパッケージ３１７−１、…、３１７−３に含まれてもよい。
【００９５】
このように生成された無線アプリケーションパッケージは、配布サーバー（例えば、無線アプリストア）２８０、３８０、４８０にアップロードされ、当該無線アプリケーションを実現しようとする端末からダウンロードされてもよい。
【００９６】
図７は、本発明による無線アプリケーションがオンラインストアで配布される例を示す概念図である。
【００９７】
図７を参照すれば、ユーザは、端末装置６１０を利用してオンラインアプリストア６２０に接続し、アプリストアが提供する多様な無線通信方式を支援する無線アプリケーションのリストから所望の無線アプリケーションを選択し、当該無線アプリケーションの無線アプリケーションパッケージをダウンロードすることができる。
【００９８】
多様な無線方式は、ＬＴＥ（登録商標：Longterm Evolution）、ＷＣＤＭＡ（登録商標：Wideband CodeDivision Multiple Access）、ＷｉＭＡＸ（登録商標：WorldwideInteroperability for MicrowaveAccess）、ＧＳＭ（登録商標：GlobalSystem for Mobile Communications）、ＲＦＩＤ（Radio-FrequencyIdentification）などを含むことができる。ユーザは、自分の端末に複数の無線アプリケーションをダウンロードして設置し、状況に応じて必要な無線アプリケーションを自由に行うことができる。
【００９９】
（２）設置段階（install time）
設置段階（図３の２３０、図４の３３０、図５の４３０）は、アプリケーションパッケージをダウンロードして端末に設置する段階である。この際、アプリケーションパッケージに含まれたユーザ定義機能ブロックコード、無線コントローラーコード及びパイプライン構成メタデータがアプリケーションプロセッサ階層または無線プロセッサ階層に設置されてもよい。すなわち、無線コントローラーコードは、アプリケーションプロセッサ階層または無線プロセッサ階層に設置され、ユーザ定義機能ブロックコードは、無線プロセッサ階層に設置されてもよい。標準機能ブロックコードが無線プロセッサの実行コード形態なら、アプリケーションパッケージに、前記実行コードが含まれた無線ライブラリがさらに含まれてもよいことは前述した通りである。
【０１００】
この際、図３に示されたように、ユーザ定義機能ブロックコードがソースコード形態なら、コンパイラー（ＲＰコンパイラー）２３５を経て端末で実行可能なユーザ定義機能ブロックが生成することができる。コンパイラー２３５は、アプリケーションプロセッサまたは無線プロセッサ上で実行されてもよい。すなわち、コンパイラー２３５は、ソースコード形態のユーザ定義機能ブロックコードを無線プロセッサの実行コードにコンパイルする役目を果たし、無線プロセッサまたはアプリケーションプロセッサで実行されてもよい。
【０１０１】
もしユーザ定義機能ブロックコードが暗号化されていれば、選択的（ｏｐｔｉｏｎａｌ）構成要素である復号化器（decryptor；２３６）によってソースコードが復号化された後にコンパイルされてもよい。
【０１０２】
図８は、本発明の一実施例によるソースコード形態のユーザ定義機能ブロックコードの配布及び設置過程を説明するブロック図である。
【０１０３】
図８を参照すれば、無線アプリケーションの製作時に作成されるユーザ定義機能ブロックコード７１１は、高級言語、例えばＣ／Ｃ＋＋で作成されてもよい。ユーザ定義機能ブロックコード７１１は、選択的に暗号化器７１４によって暗号化されたソースコード７１５に変更されてもよい。
【０１０４】
このように暗号化されたソースコード７１５は、無線アプリケーションパッケージに含まれ、各端末に配布することができる。この際、端末での設置過程で復号化器７３１〜７３５及びコンパイラー７４１〜７４５によって端末に内蔵された無線プロセッサで作動可能な機械語（Machine Code）７５１〜７５５に変換することができる。コンパイラー７４１〜７４５は、各端末に設置されたモデムハードウェアに最適化された機械語を生成しなければならないので、モデムハードウェアに依存的な部分である。無線プロセッサ製造社では、自分の無線プロセッサに最適化されたコンパイラーを製作し、自分の無線プロセッサに内蔵するか、または自分の無線プロセッサを使用した端末機会社に提供することができる。無線プロセッサに最適化されたコンパイラーは、無線プロセッサまたはアプリケーションプロセッサ上で実行されるように実現することができる。
【０１０５】
一方、ユーザ定義機能ブロックコードが端末に合わせてコンパイルされて配布された実行コード形態なら、図４に示されたように設置段階でコンパイル過程を経る必要はない。
【０１０６】
図９は、本発明の一実施例によるソースコード形態のユーザ定義機能ブロックコードの配布及び設置過程の他の例を説明するブロック図である。
【０１０７】
図９を参照すれば、無線アプリケーションの製作時に作成されるユーザ定義機能ブロックコード８１１は、Ｃ／Ｃ＋＋のような高級言語で作成することができ、対象無線プロセッサに適したデザイン／配布段階でコンパイラー８４１〜８４５を通じて実行可能な形態であるマシンコード８５１〜８５５に変換することができる。このようなマシンコード８５１〜８５５は、それぞれ別途の無線アプリケーションパッケージに含まれて無線アプリケーションサーバーに格納され、端末機は、自分の無線プロセッサ８６１で動作可能な無線アプリケーション８５１をダウンロードすることができる。したがって、モデムハードウェア製造社は、自分のモデムに最適化されたコンパイラー９４１〜９４５を製作し、無線アプリケーション製作者に提供することができる。
【０１０８】
図３〜図５を参照すれば、無線アプリケーションの設置過程は、アプリケーションプロセッサまたは無線プロセッサにおいて行うことができる。すなわち図３〜図５に表したコンパイラーと保存部は、アプリケーションプロセッサと無線プロセッサのうち少なくとも１つのプロセッサ階層に存在してもよく、または、２つのプロセッサ階層皆に存在してもよい。
【０１０９】
（３）実行段階（run time）
実行段階（図３の２５０、図４の３５０、図５の４５０）は、設置された無線アプリケーションが実際端末で動作する段階であって、無線信号処理をするための無線アプリケーションの対応する構成要素がアプリケーションプロセッサまたは無線プロセッサにローディングされ、実際的な無線通信を行う段階である。
【０１１０】
例えば、端末機に設置された無線アプリケーションの実行命令を受信する場合、ローダー（loader）２５１、２６１、３５１、３６１、４５１、４６１は、パイプライン構成メタデータ２３１、３３１、４３１を参照してアプリケーション実行に必要な機能ブロックが何であるかを判断することができる。これに基づいて無線コントローラーとユーザ定義機能ブロック（user defined function block）は、端末機の格納装置 ２４１、３４１、４４１でローディングされる。また、ローダーは、無線コントローラーコードをアプリケーションプロセッサ階層または無線プロセッサ階層にロードし（無線コントロールフレームワークの動作階層によって無線コントローラーコードがどのプロセッサ階層にロードされるかが決定されることは、前述した通りである）、パイプライン構成メタデータを参照してユーザ定義機能ブロックと標準機能ブロックを無線プロセッサ階層にローディングする。
【０１１１】
標準機能ブロックＰＯＯＬ２４２、３４２、４４２は、標準機能ブロックの集合で無線プロセッサ階層またはアプリケーションプロセッサ階層に存在する。標準機能ブロックＰＯＯＬには、専用のハードウェアを利用して実現された標準機能ブロックと無線プロセッサのコアで実行される標準機能ブロックが存在することができる。標準機能ブロックＰＯＯＬは、設置段階でインストーラーがパイプライン構成メタデータを参照して無線アプリケーションを設置する過程で、当該無線アプリケーションが使用する標準機能ブロックを選択して格納装置に設置するために使用されることができる。
【０１１２】
図１０は、本発明の一実施例による標準ベースバンドインターフェースの例を示す概念図である。
【０１１３】
図１０を参照すれば、標準ベースバンドインターフェースは、モデム内部のベースバンド領域で必要なデジタル信号処理アルゴリズムを標準化したＡＰＩであって、標準インターフェース９１０〜９５０と「変換」標準インターフェースに属する標準機能ブロック９１１−９１４が例示されている。
【０１１４】
例えば、標準インターフェース類型として変換９１０、チャネルコーディング９２０、ネットワークマッパー９３０、インターリビング９４０、ソースコーディング９５０が含まれることができる。また、変換９１０に対する標準機能ブロックでスプレディング９１１、デスプレディング９１２、スクランブリング９１３、デスクランブリング９１４、高速フーリエ変換（ＦＦＴ：Fast Fourier Transform）９１５、逆高速フーリエ変換（ＩＦＦＴ：InverseFast Fourier Transform）９１６が定義されることができる。
【０１１５】
標準機能ブロックであるフーリエ変換９１５を通じて入出力されるデータと属性、メンバー関数などが定義されることができる。また、同じ類型の機能ブロックには、共通的な属性を付与して、無線アプリケーションのオブジェクト志向設計が可能である。
【０１１６】
一方、本発明の実施例は、前述した標準ベースバンドインターフェースを高級言語で作成した標準インターフェースＡＰＩヘッダーを利用する。したがって、無線アプリケーション製作者は、標準インターフェースＡＰＩヘッダーを参照して、無線アプリケーションを製作することができる。
【０１１７】
＜無線アプリケーション配布方法に対する実施例＞
以下、本発明の一実施例によるソフトウェア定義無線端末装置のための無線アプリケーションの配布方法をより詳細に説明する。
【０１１８】
図１１は、本発明の一実施例による無線アプリケーションの配布過程を説明するためのフローチャートである。
【０１１９】
図１１を参照すると、本発明の一実施例による無線アプリケーションの配布過程は、ユーザ定義機能ブロックコード暗号化段階Ｓ１００１、アプリケーションパッケージ生成段階Ｓ１０１０、アプリケーションパッケージ配布段階Ｓ１０２０を含んで構成されてもよい。
【０１２０】
また、アプリケーションパッケージ生成段階Ｓ１０１０は、ユーザ定義機能ブロックコード生成及びコンパイル段階、無線コントローラーコード生成及びコンパイル段階、パイプライン構成メタデータ生成段階及びパッケージ生成段階を含んで構成されてもよい。
【０１２１】
前述したように、本発明の一実施例による無線アプリケーションは、ユーザ定義機能ブロックコード、無線コントローラーコード、パイプライン構成メタデータで構成されたアプリケーションパッケージの形態で配布される。ユーザ定義機能ブロックコードが実行コード形態で構成されるなら、アプリケーションパッケージは、実行コード形態の無線ライブラリをさらに含んで構成されてもよいことは、前述した通りである。
【０１２２】
以下、本発明の一実施例による無線アプリケーションの配布過程の各段階についてより詳細に説明する。
【０１２３】
ユーザ定義機能ブロックコード暗号化段階Ｓ１００１は、アプリケーションパッケージに含まれるユーザ定義機能ブロックコードを暗号化する段階である。ユーザ定義機能ブロックコードは、無線アプリケーション製作者の選択によってソースコード形態、中間形態、実行コードの形態に配布されてもよい。ユーザ定義機能ブロックコードがソースコードの形態に配布される場合、様々な端末機でコンパイル可能になるように標準言語を使用して作成されなければならない。一方、一般ソースコード形態で配布される場合、ソースコードがそのまま露出するので、暗号化して配布することによって、ソースコードの外部露出を防ぐことができる。
【０１２４】
アプリケーションパッケージ生成段階Ｓ１０１０は、ソフトウェア定義無線端末で行われる無線アプリケーションを生成する段階である。アプリケーションパッケージは、図５に示されたように、ユーザ定義機能ブロックコード５１１、無線コントローラーコード５１２、パイプライン構成メタデータ５１３で構成されることができ、ユーザ定義機能ブロックコードが実行コード形態の場合、アプリケーションパッケージは、無線ライブラリ５１４をさらに含んで構成されてもよい。
【０１２５】
ユーザ定義機能ブロックコード５１１は、実行しようとする無線アプリケーションを実現するために必要な機能ブロックを定義するコードであり、無線コントローラーコード５１２は、前述した無線コントローラーの機能を行うように作成されたコードである。また、ユーザ定義機能ブロックコードで定義する機能ブロックは、標準ベースバンドＡＰＩヘッダー５２０に定義された標準機能ブロックに実現されないベースバンドデジタル信号処理における処理実現と関連してもよい。
【０１２６】
一方、ユーザ定義機能ブロックコード５１１は、アプリケーションパッケージ５００が設置された端末装置の無線プロセッサで直接実行可能なコード、実行のためのコンパイルを要するソースコード（source code）、中間表現コードまたは実行コードのうちいずれか１つの形態で構成されてもよい。
【０１２７】
したがって、ユーザ定義機能ブロックコード５１１が実行コードの形態なら多様な端末に適用可能になるように、様々なコンパイラーによってコンパイルされたものであってもよい。
【０１２８】
無線コントローラーコード５１２には、アプリケーション階層のモニターに状況情報（context information）を伝達し、アプリケーション階層のネットワーキングスタックとデータを交換するためのコードが含まれることができる。無線コントローラーコード５１２は、アプリケーションプロセッサまたは無線プロセッサで実行可能な形態でコンパイラーによってコンパイルされたコードであることができる。
【０１２９】
一方、パイプライン構成メタデータ５１３は、当該無線アプリケーションを実現するために必要な機能ブロック及び機能ブロック間の連結を定義することができ、標準ベースバンドＡＰＩヘッダー５２０に含まれた標準機能ブロックとユーザ定義機能ブロックコード５１１で定義する機能ブロック間の連結及び各機能ブロックが有する属性の初期値に対する記述を含むことができる。
【０１３０】
このように生成されたユーザ定義機能ブロックコード５１１、無線コントローラーコード５１２及びパイプライン構成メタデータ５１３は、サーバーにアップロードされ、当該無線アプリケーションを必要とする端末にダウンロードされて設置され得るようにアプリケーションパッケージ５００の形態で生成される。
【０１３１】
アプリケーションパッケージ配布段階Ｓ１０２０は、上記のように生成されたアプリケーションパッケージ５００を無線アプリケーション配布サーバーにアップロードし、当該無線アプリケーションを必要とするソフトウェア定義無線端末でダウンローディングできるようにする。
【０１３２】
＜無線アプリケーション設置方法に対する実施例＞
以下、本発明の一実施例による無線アプリケーションの設置過程について説明する。
【０１３３】
図１２は、本発明の一実施例による無線アプリケーションの設置過程を説明するためのフローチャートである。
【０１３４】
図１２を参照すると、本発明の一実施例による無線アプリケーションの設置過程は、アプリケーションパッケージのダウンローディング段階Ｓ１１１０及びアプリケーションパッケージ設置段階Ｓ１１２０を含んで構成することができる。
【０１３５】
以下、図１２を参照して本発明の一実施例による無線アプリケーションの設置過程の各段階についてより詳細に説明する。
【０１３６】
アプリケーションパッケージダウンローディング段階Ｓ１１１０は、ソフトウェア定義無線端末で行われる無線アプリケーションを配布サーバーからダウンローディングする段階であって、図４に示されたように、ユーザ定義機能ブロックコード５１１、無線コントローラーコード５１２、パイプライン構成メタデータ５１３で構成されたアプリケーションパッケージ５００を配布サーバーからソフトウェア定義無線端末にダウンロードすることができる。この際、アプリケーションパッケージは、ユーザ定義機能ブロックコードが実行コード形態の場合、実行コードにコンパイルされた無線ライブラリを含んで構成されてもよいことは、前述した通りである。
【０１３７】
アプリケーションパッケージ設置段階Ｓ１１２０は、配布サーバーからダウンローディングしたアプリケーションパッケージを端末で実行できる形態で設置する段階であって、ユーザ定義機能ブロックコードコンパイル段階Ｓ１１２１、保存部に設置する段階Ｓ１１２５、ユーザ定義機能ブロックローディング段階Ｓ１１２７を含んで構成されてもよい。
【０１３８】
ユーザ定義機能ブロックコードコンパイル段階Ｓ１１２１は、ダウンロードされたアプリケーションパッケージ５００に含まれたユーザ定義機能ブロックコード５１１が端末の無線プロセッサのコアで直接実行可能なコードではなく、ソースコードまたは中間表現コードの場合、端末の無線プロセッサのコアで実行可能なコードの形態でコンパイルし、ユーザ定義機能ブロックを生成する段階である。
【０１３９】
また、もしユーザ定義機能ブロックコードが暗号化されていたら、復号化しコンパイルすることができる（図示せず）。
【０１４０】
また、保存部に設置する段階Ｓ１１２５は、ダウンされたアプリケーションパッケージ５００に含まれたパイプライン構成メタデータ５１３、ユーザ定義機能ブロックコード５１１に含まれたユーザ定義機能ブロック、無線コントローラーコード５１２及びあらかじめ定義された標準ベースバンドインターフェースに基づいて作成された標準的な命令語が明示された標準機能ブロックを、パイプライン構成メタデータ５１３を参照して端末の保存部に設置する段階である。
【０１４１】
ユーザ定義機能ブロックローディング段階Ｓ１１２７は、ダウンしたアプリケーションパッケージ５００のユーザ定義機能ブロックコード５１１に含まれたユーザ定義機能ブロックを無線プロセッサ階層に直接ローディングする段階である。この際、ユーザ定義機能ブロックコード５１１が無線プロセッサで直接実行可能なコードの形態で作成されていたら、ユーザ定義機能ブロックコードコンパイル段階Ｓ１１２１を経ず、ユーザ定義機能ブロックコード５１１に含まれたユーザ定義機能ブロックを無線プロセッサ階層に直接ローディングすることができる。
【０１４２】
上記では、本発明の好ましい実施例を参照して説明したが、当該技術分野における熟練された当業者は、下記の特許請求の範囲に記載された本発明の思想及び領域を逸脱しない範囲内で本発明を多様に修正及び変更できることを理解することができる。
【図６】
0005977438.tif 000002
【図７】
0005977438.tif 000003
【図１１】
0005977438.tif 000004
【図１】
0005977438.tif 000005
【図２】
0005977438.tif 000006
【図３】
0005977438.tif 000007
【図４】
0005977438.tif 000008
【図５】
0005977438.tif 000009
【図８】
0005977438.tif 000010
【図９】
0005977438.tif 000011
【図１０】
0005977438.tif 000012
【図１２】
0005977438.tif 000013